网络层的作用
如果不设置网络层,那么转发数据时只有数据链路层。由于数据链路层使用的是MAC地址,并且不同设备的MAC地址格式不同(厂家不同并且人们需求不同)所以在寻址时不方便。而使用网络层可以把不同的网络看成一个虚拟互连网络(所以网络层讨论的是多个网络互连的情况,讨论分组从一个网络通过路由器转发到另一个网络),在这个虚拟互连网络中主机使用统一的IP地址。由于IP地址是二进制数(计算机计算二进数时很快 ),并且格式相同。所以可以使用统一的IP地址表示不同的网络(划分前缀),这样在转发数据时就可以很方便的找到下一个网络。
使用IP地址时,需要使用ARP找到MAC地址(由计算机软件自动进行)。
此外,IP地址存放在IP数据报的首部中。所以IP数据报首部的主要功能就是保存源主机IP和目的主机IP以便路由器可以进行前缀匹配,然后转发分组。此外,IP数据报首部还有切片、限制跳数TTL(防止兜圈子)、检验首部等功能。和IP数据报首部功能对应的有ICMP网际控制协议,当TTL=0,首部参数出错等情况,会向源主机或路由器发送差错情况。
此外,需要IP地址由IPV4过渡到IPV6。(IPV4不够用)
网络层的作用:所以网络层的作用就是在这个虚拟互连网络中转发分组。具体来说,
使用路由器连接不同的网络(网络号不同),路由器使用特定的路由选择协议构造转发表来转发分组。如果目的IP地址和源地址在同一个网络,直接使用ARP协议找到目的主机的MAC地址,然后交付给数据链路层。如果目的IP地址和源地址不在同一个网络,根据路由器的转发表转发到其他网络。
路由表的转发表由路由器根据路由转发协议生成。互联网采取分层次的路由转发协议,划分较小的自治系统,在自治系统内部采取内部网关协议IGP,在自治系统之间采取外部网关协议EGP。
内部网关协议有RIP(基于距离向量的路由选择协议)和OPSF(基于链路状态的协议)。
网络层应该向运输层提供怎么样的服务?
无连接的、尽最大努力交付的数据报服务。
网络在发送分组时不需要先建立连接。每一个分组独立发送,与其前后的分组无关。
网络层不提供服务质量的承诺(可能出错、丢失、重复、失序、超时)。
由主机中的运输层负责可靠通信。
路由器之间传送的信息:
(1)源主机和目的主机之间所传送的数据。
源主机所发送的数据,从一个路由器转发到下一个路由器,最后把分组传送到目的主机。
(2)传送路由信息:
根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表。
网路层的两个层面:
数据层面
数据层面关注于数据包的实际转发。这一层面上,每个路由器维护着一个转发表(Forwarding Table),用于直接指导数据包的下一步转发路径。
(1)转发表是从路由表中衍生出来的,通过简化路由表中的信息,使其更适合快速查找和转发。每个表项通常包含目的网络地址及其对应的输出接口。
(2)为了提高效率,现代路由器普遍采用专用硬件(如TCAM、ASIC芯片)来执行快速转发决策,这使得数据包的处理速度远超软件处理。硬件转发基于查表操作,一旦匹配到表项,即可立即将数据包从正确的接口转发出去,无需CPU介入。
控制层面
(1)控制层面负责网络层的策略制定和路由信息的管理,其核心任务是发现网络拓扑、计算最佳路径,并据此更新路由器的路由表。这一过程涉及复杂的路由协议,如RIP、OSPF、BGP等。
(2)不同的路由选择协议依据特定的路由算法来计算最合适的路径。这些算法考虑了多种因素,包括跳数、带宽、延迟、可靠性等,以确定到达目标网络的最佳路径。
(3)控制层面要求路由器之间定期或按需交换路由信息,这一过程称为路由通告或路由更新。通过这种方式,每个路由器能够获知整个网络或其自治系统内的可达性信息,从而动态调整其路由表。
(4)路由表的动态更新:随着网络状况的变化(如链路故障、新路径的发现),控制层面会及时调整路由表,确保数据转发的连通性和效率。这种动态性对于应对网络的不稳定性和变化至关重要。