网络层

网络层(network layer)的主要功能是控制子网的运行。一个关键的设计问题是如何将 数据包从源端路由到接收方。路由可以建立在静态表的基础上,这些表相当于网络内部的“布线”,而且很少会改变;或者,更常见的情况是路由可以自动更新,以此来避免网络中 的故障组件。路由也可以在每次会话(例如一次终端会话)开始时就确定下来,比如登录 到一台远程机器上。最后,路由可以是高度动态的,针对每一个数据包都重新确定路径, 以便反映网络当前的负载情况。

如果有太多的数据包同时出现在一个子网中,那么这些数据包彼此之间会相互阻碍, 从而形成传输瓶颈。处理拥塞也是网络层的责任,一般要和高层协议结合起来综合处理拥 塞才有效,高层协议必须适应它们注入网络中的负载。更普遍的是网络所提供的服务质量 (延迟、传输时间、抖动等)也是网络层的问题。

当一个数据包必须从一个网络传输到另一个网络才能够到达它的目的地时,可能会发 生很多问题。比如,第二个网络所使用的寻址方案可能与第一个网络不同;第二个网络可 能无法接受这个数据包,因为它太大了;两个网络所使用的协议也可能不一样,等等。网 络层应该解决所有这些问题,从而允许异构网络相互连接成为互联网络。 在广播式网络中,路由问题比较简单,所以网络层往往比较单薄,甚至根本不存在。