4-1 网络层概述
网络层的主要任务——网络互联
网络层的主要任务是实现网络互联,进而实现数据包在各网络之间的传输
如图所示,这些异构型网络如果只是需要各自内部通信,那他们只要实现各自的物理层和数据链路层即可。但是,如果需要将这些异构型网络互联起来,形成一个更大的互联网,就需要使用网络层互联设备路由器。

需要说明的是,为了简单起见,有时我们可以不用画出这些网络,而将它们看作是一条链路即可。

对于互联网而言,仅实现计算机网络体系结构中的物理层和数据链路层是不能实现数据包在互联网中各网络之间传输的,要实现该功能就必须实现网络层。
网络层需要解决的三个问题
网络层需要解决以下主要问题:
网络层向运输层提供怎样的服务
首要问题是网络层应该向其上面的运输层提供怎样的服务?是可靠传输服务还是不可靠传输服务?
我们在之前的课程中曾介绍过,
数据包在传输过程中可能会出现误码
也有可能由于路由器繁忙而被路由器丢弃
还有可能出现按序发送的数据包不能按序到达接收方
如果网络层对于上述传输错误不采取任何措施,则提供的是不可靠传输服务。
如果网络层对于上述传输错误采取措施,并使得接收方能正确接收发送方所发送的数据包,则提供的是可靠传输服务。
不同网络体系结构所提供的服务可能是不同的。例如因特网使用的 TCP/IP 协议体系的网际层(即网络层)提供的是无连接的、不可靠的数据报服务;而 ATM、 帧中继和 X. 25 的网络层提供的都是面向连接的可靠的虚电路服务。
网络层寻址问题
网络层需要解决的第二个主要问题是寻址问题

例如 TCP/IP 协议体系的网际层使用 IP 地址,我们来举例说明:
这是网络 N1 上两个路由器接口各自所分配的 IP 地址,他们的前三个数是相同的,可以看作是他们所在网络的网络编号,而第4个数各不相同,用于区分这两个不同的路由器接口,
这是网络 N3 上两个路由器接口各自所分配的 IP 地址,他们的前两个数是相同的,可以看作是他们所在网络的网络编号,而后两个数不完全相同,用于区分这两个不同的路由器接口,
这是网络 N7 上两个路由器接口各自所分配的 ip 地址,他们的第一个数是相同的,可以看作是他们所在网络的网络编号,而后三个数不完全相同,用于区分这两个不同的路由器接口。
路由选择问题
网络层需要解决的第三个主要问题是路由选择问题

我们来举例说明。如图所示,数据包从源站到达目的站,可以走这样一条路径,也可以走这样一条路径。对于本例还有其他路径可走,我们就不一一演示了,那么路由器收到数据包后是依据什么来决定将数据包从自己的哪个接口转发出去的?依据的是数据包中的目的地址和路由器中的路由表。

例如,这是路由器 R1 的路由表,里面记录着路由器 R1 所知道的网络,以及数据包要到达这些网络,应该从自己的哪个接口转发。假设 R1 知道数据包要到达网络N7,吓一跳,应将其转发给路由器R4,则路由表中应该有这样一条记录。而数据包要到达网络N6,下一跳应将其转发给路由器R2,则路由表中应该有这样一条记录。
刚才是我们假设 R1 知道这些路由记录,但在实践当中,路由器是如何得出这样的路由记录?有两种方法
- 一种是由用户或网络管理员进行人工配置,这种方法只适用于规模较小且网络拓扑不改变的小型互联网。
- 另一种是实现各种路由选择协议,由路由器执行路由选择协议中所规定的路由选择算法,而自动得出路由表中的路由记录。这种方法更适用于规模较大且网络拓扑经常改变的大型互联网。
TCP/IP协议栈中的网络层——网际层
因特网是目前全世界用户数量最多的互联网,它使用四层协议体系的 TCP/IP 协议栈,如图所示。

由于 TCP/IP 协议站的网络层使用网际协议IP,它是整个协议栈的核心协议,因此在 TCP/IP 协议栈中,网络层常称为网际层。由于 TCP/IP 协议站在全世界被广泛使用,因此在本章节的教学中,我们主要基于 TCP/IP 协议站的网际层来学习计算机网络体系结构中的网络层的理论知识和实践技术。另外需要说明的是, TCP/IP 协议站的网记层中除网记协议 IP 外,还包含有我们之前课程中已经介绍过的地址解析协议ARP,以及在本章后续课程中将要介绍的网系控制报文协议 ICMP 和网际组管理协议 IGMP 等。
本节小结
