引言
- 网络层关注的是如何将源数据包一路送到接收方,这一过程可能经过许多路由器,而数据链路层的目标只是将帧从一边传到另一边,因此网络层是处理端到端数据传输的最底层。为了实现这一目标,网络层必须知道网络拓扑结构(即所有路由器和链路的集合),并从中选择出适当的路径;选择路径的同时还要避免某些线路和路由器负载过重。最后,当源端和接收方位于不同网络时,还会出现新的问题,这些问题都需要由网络层来解决。
1、储存转发数据包交换
- 下图大致勾勒了网络层协议运行的环境。网络中最主要的组件是网络服务商(ISP)的设备(路由器)和客户端设备,图中路由器位于阴影内。主机H1直接连接到ISP的路由器A,通过DSL调制解调器接入;而H2则位于一个局域网内,其上还有一个路由器F,客户拥有这台路由器并负责其运行。路由器F通过一条租用线路连接到ISP的设备上,但本章将把客户端的路由器作为ISP网络的一部分来考虑,因为它们运行的算法与ISP路由器上运行的算法相同。
- 这种网络配置方法如下所述。如果一台主机要发送一个数据包,它就将数据包传输给最近的路由器,路由器可能在它自己的LAN上,也可能在一条通往ISP的点到点链路上。在该数据包到达路由器,并且路由器的链路层完成了它校检和的验证之后,它先被储存在路由器上;然后沿着路径被转发到下一个路由器,直至目标主机。这种机制即为储存-转发数据包交换。
2、提供给传输层的服务
- 网络层通过网络层/传输层接口向传输层提供服务。网络层的服务目标如下:(1)向上提供的服务应该独立于路由器技术(2)应该向传输层屏蔽路由器的数量、类型和拓扑关系(3)传输层可用的网络地址应该有一个统一编址方案,甚至可以跨越LAN和WAN。
- 网络设计者的讨论焦点集中在网络层应该提供面向连接的服务还是提供无连接的服务。一个阵营认为,路由器的任务仅仅是传送数据包,不用再做别的事情。按照他们的观点,不管如何设计网络,从本质上讲它总是不可靠的。因此主机自己需要