网络层能够被分解为相互作用的两个部分,即数据平面和控制平面。
数据平面功能即网络层中每台路由器的功能,决定了到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
控制平面功能即网络范围的逻辑,控制着数据报沿着从源主机到目的主机的端到端路径中路由器之间的路由方式。
4.1网络层概述
网络层的目标:实现主机到主机的通信。
网络层在计算机网络中的地位:
为运输层提供支持:运输层实现进程到进程间的通信依赖于网络层提供的服务。 为实现源主机到目标主机成功的移动数据分组,整个路径上的每一台分组交换机上均需实现网络层。 网络层的主要功能:
转发:当一个分组到达路由器的一条输入链路时,路由器上的网络层根据转发表和分组头部信息,将分组向适当的链路转发。(数据层面) 选路:分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径,选路的结果反映为设备上的转发表,通过路由选择算法实现。(控制层面) 建立连接:对于面向连接的网络层服务,提供连接建立的功能。 转发是路由器本地动作,路由选择是网络范围过程。比如开车从北京到上海,转发相当于在某个路口选择某一条岔路,路由选择相当于规划从北京到上海所有线路的过程。
转发表:每台路由器都有一张转发表。路由器检查分组首部字段值(可能是目的地址或所属连接,依据网络层协议),使用该值在转发表索引查询,得到输出链路信息。也就是说该值指出了该分组将被转发到的路由器输出链路接口。
路由选择算法决定了插入路由器转发表中的值。路由器接收路由选择协议报文,来配置转发表。
两种分组交换机:
路由器:根据网络层首部字段值从输入链路接口转移分组到输出链路接口。 链路层交换机:基于链路层首部字段中的值做转发决定。 网络层可能提供的服务:
确保交付:确保分组到达最终目的地。 具有时延上界的确保交付:时延上限内交付。 有序分组交付:以发送顺序到达。 确保最小带宽:以低于特定比速率传输,分组不会丢失且会在预定时延内到达。 确保最大的时延抖动:连续分组间隔时间不超过特定值。确保发送方两个相继分组之间的时间 = 目的地接收到它们之间的时间。 安全性服务:机密性(使用仅由源和目的地主机知晓的密钥加密数据报,源主机加密,目的主机解密),此外还有数据完整性和源鉴别服务。 几种实际使用的网络层服务模型:
网络体系结构 服务模型 带宽保证 无丢失保证 排序 定时 拥塞指示 因特网 尽力而为 无 无 无 不维持 无 ATM CBR 保证恒定速率 是 有序 维持 无拥塞 ATM ABR 保证最小速率 无 有序 维持 提供指示
4.2 虚电路和数据报网络
仅在网络层提供有连接服务的计算机网络成为虚电路(需事先握手);仅在网络层提供无连接服务的计算机网络称为数据报(无需握手)。
网络层与运输层服务的区别 :
网络层是向运输层提供主机到主机的服务,而运输层是向应用层提供进程到进程的服务。 网络层仅提供虚电路和数据报两种服务中的一种,而运输层同时提供两种。 运输层的服务在网络边缘的端系统中实现,而网络层的服务则在整个网络中实现(还包含网络核心的路由器)。
4.2.1 虚电路网络
包括ATM、帧中继的体系结构是虚电路网络,在网络层使用连接;包含IP的是数据报网络。
虚电路的目标:使收发双方之间的路径表现的如同电话线路一样。
工作机制:
数据开始流动之间,呼叫建立;流动结束以后要断开。 每个分组携带虚电路的标识(而不是目的主机的地址)。 路径上的每一个路由器必须为进行中的连接维持连接状态信息。(注意运输层的连接仅涉及两个端系统) 链路,路由器资源(带宽,缓冲区)可以分配给虚电路。(目的是达到类似线路交换的性能) 虚电路的组成:
从源到目的主机的路径(一系列链路和路由器)。 VC号:沿着该路径的每段链路的一个号码。(一条虚电路的每段链路上具有不同的VC号;每台中间路由器必须用一个新的VC号替代每个传输分组的VC号) 沿着该路径的每台路由器中的转发表:(创建一条新的虚电路,转发表增加一个新表项;终止一条虚电路,表中相应项会被删除) 每台中间路由器必须用一个新的VC号替代每个传输分组的VC号:简单来说,当一个分组通过一台中间路由器时,首部VC号就会发生变化,变成下一条链路的VC号,原因如下:
每条链路VC号不同减少了分组首部VC字段长度。 大大简化虚电路建立。如果要求一个固定VC号,创建虚电路时路由器需要交换处理大量报文来约定VC号。 虚电路网络中的路由器必须为进行中的连接维护连接状态信息。创建一个连接,转发表加一项,释放一个连接,转发表删一项。该信息将VC号与输出接口号联系起来,让路由器知道应该把分组放到哪条链路输出。即使没有VC号转换,仍有必要维持状态信息,该信息将VC号和输出接口号联系起来。
信令协议:
用于建立,维护以及断开虚电路(端系统向网络发送的指令)。 用于ATM,帧中继,X.25网络。 如今的因特网不使用该协议。 如今的因特网所使用的协议:
一、建立虚电路
发送端运输层与网络层取得联系,指定接收方地址,等待网络层建立虚电路路径。 网络层决定发送方和接收方之间的路径,即虚电路要通过一系列链路和路由器,为每条链路设置vc号。 网络层为路径上每台路由器的转发表增加一个表项。 预留该虚电路路径上的资源。 二、数据传送
(发送端)启动呼叫-->(接收端)入呼叫-->(接收端)接收呼叫-->(发送端)呼叫连接-->(发送端)数据流开始-->(接收端)接收数据。
三、虚电路拆除
网络层通知网络另一侧端系统结束呼叫,更新删除路由器上转发表项以表明虚电路不存在(说明路由器转发表项是虚电路的物理体现)
4.2.2 数据报网络
1.在网络层没有建立连接的过程。
分组从源到目的地传输,通过一系列路由器传递。 路由器根据分组首部的目的地地址,将分组报文交给下一台路由器。 2.路由器在端到端的连接中不维护连接状态信息。
数据包网络中路由器不维持连接状态信息,但是维护转发状态信息。 实际上每1-5分钟,路由选择算法更新一次转发表。 3.传输报文时使用目的主机的地址信息。
因为在数据包网络中的转发表能在任何时刻修改,从一个端系统到另一个端系统发送的一系列分组可能在通过网络时走不同的路径,并可能无序到达。
4.2.3 虚电路和数据报网络的由来
1.虚电路网络:聪明的网络,愚笨的终端。
2.数据报网络:简单的网络,复杂的终端。
3.端系统设备复杂,网络层服务模型应尽可能简单,让复杂功能在更高级实现(按序、可靠数据传输、拥塞控制等)
4.数据报网络因为网络简单,互联不同类型的网络更加容易,并且启动新服务的速度更快,更简单