网络层的基本内容

  网络层要解决的问题是:如何在不同的网络之间传输数据,数据链路层已经解决了在一个局域网中传输数据的问题,但是如果跨了网段,就得网络层协议出马了,网络层讨论的是多个网络通过路由器互连成为一个互联网络,就好像连接在不同网络上的计算机连接在同一个网络上一样。

网络层提供的服务

  网络层向上只提供简单灵活的、面向无连接的、尽最大努力交付的数据报服务,也就是说网络层不保证可靠传输,数据有可能会丢失、出错、重复、失序,可靠传输由传输层来完成。由于网络层不提供可靠服务,那么网络中间设备就可以做的简单一些,比如说路由器相对于传统的电信网络的交换机就简单的多。
  一般的路由器包含网络层及以下层协议的内容,是不包含传输层的协议的,传输层协议一般在端系统中存在,这就使得路由器的造价降低了。

为什么网络层不提供可靠服务?
  因为计算网络的端系统是具有很强的差错处理能力的,与以往的传统电话机有很大的区别,电话机没有差错处理能力,所以电信网的网络就必须提供可靠服务,即面向连接的服务,但是计算机的差错处理能力使得端系统可以发现错误信息,并进行纠错,这样也保证了可靠的传输服务。端系统还具有网络流量控制的功能。

网际协议IP
  与IP协议配套使用的还有三个协议:

  • 地址解析协议ARP(Address Resolution Protocol)
  • 网际控制报文协议ICMP(Internet Control Message Protocol)
  • 网际组管理协议IGMP(Internet Group Management Protocol)

  IP协议需要使用ARP协议提供的服务,而ICMP和ICMP需要使用IP协议提供的服务

IP地址与硬件地址
  硬件地址是数据链路层和物理层使用的地址,IP地址是网络层使用的地址,IP地址是一种逻辑地址,在计算机中并没有什么硬件来特殊表示这个地址,但是硬件地址就不一样了。
  硬件地址固化在网络适配器(网卡)的ROM中,硬件地址又称MAC地址。IP地址是可以改变的,比如说你在家连的无线网,和在别的连的无线网,你的手机在进行网络通信时使用的IP地址是不同的,但是MAC一般都是固定的,在计算机中也是如此,虽然在计算机中可以修改MAC地址,但是一般都没有这个需求。
  IP地址放在IP数据报的首部,MAC地址放在MAC帧的首部,数据链链路层无法解读IP地址,只能解析MAC地址。
  IP地址决定数据最终到哪,而MAC地址决定下一跳的位置,就好比一个人想要去一个地方(主机),但是他不知道路怎么走,但是他知道要去的地方的地址(IP地址),他就边走边问,遇到一个人(路由器)就问路,路人一听他要去地方,脑海中思考了一下(路由表),告诉他你走这条路(MAC),然后到路的尽头了,又遇到一个路人(路由器),如此反复下去,最终到了想去的地方。

地址解析协议ARP
  一个问题?如何通过IP地址获得MAC地址,因为在数据链层MAC帧的首部中是要填入MAC地址的,通过IP地址找到MAC地址就是地址解析协议ARP的工作。
假设一台主机A要与不在同一个网段的主机B进行通信,首先A已经知道了B的IP地址,A想要跟B进行通信,那么分组必然要通过主机A的网关(在计算机中可以配网关),主机A将数据扔给网关,网关再将数据转发出去,但是我们首先要知道网关的MAC地址,由于我们在计算机中已经配置了网关的IP地址,所以此时的任务就是通过网关的IP地址找到对应的MAC地址,ARP这个时候就发挥作用了。
  ARP协议解决这个问题的方法是:
  主机的ARP高速缓存中存放着从IP地址到MAC地址的映射表,这个表会动态地更新或者超时删除一些表项,主机首先从ARP高速缓存中查看有无对应的IP地址到MAC地址的映射,如果有直接使用这个MAC地址,在MAC填入即可,如果没有就要使用ARP协议,进行地址解析,解析的过程如下:

  1. 主机中的ARP进程在主机所在的局域网上广播一个ARP请求分组,分组的主要内容是:"我的IP地址是-----,MAC地址是-----,我想知道IP地址是----的主机的MAC地址",
  2. 局域网上的所有的主机的ARP进程都会收到这个分组,
  3. 局域网上的所有的主机,都会检查这个请求的IP地址是否与自己的IP地址一致,如果不一致,不给予回应,如果一致,则发送一个ARP响应分组,响应分组的内容是:“我的IP地址是----,我的MAC地址是-----”,注意这个分组不是广播发送的,而是直接发送给主机A,因为网关已经知道了主机A的IP地址和MAC地址,
  4. 网关在收到分组之后,就相当于知道了主机A的IP地址到MAC地址的映射,所以网关在自己的ARP高速缓存中添加一个映射信息,或者更新映射信息,
  5. 主机A在收到ARP响应分组之后,也在自己的ARP高速缓存中添加一个映射信息,下次再要发送数据时,就直接从缓存中取MAC地址,就不用再使用ARP解析地址了,这样提高了效率。

  可见ARP高速缓存大大提高了通信的效率,若每一次发送数据,都要进行一次地址解析,那么整个网络的流量会大大增加,影响通信的质量。但是ARP高速缓存的中的每一个地址映射项目都必须要设置一个生存时间,若超过该时间,就将地址映射从缓存中删除,这是为了防止某个主机的IP地址或者MAC地址发生改变而别的主机还一直使用之前的地址给该主机发送数据分组。
  路由器转发分组也是需要在数据链路层填入MAC地址的,所以也需要ARP协议来进行地址解析工作,解析的过程与上面的过程是相同的。

猜你喜欢

转载自www.cnblogs.com/yusiming/p/9749923.html
今日推荐