一、简述
在网络中每一台主机和每一个路由器都会有一个网络层部分。所以网络层是最复杂的协议栈,所以我们将网络层分为数据平面和控制平面。
数据平面:即网络层中每台路由器的功能,该数据平面功能决定到达路由器输入链路之一的数据报如何转发到该路由器的输出链路之一。
控制平面:网络范围的逻辑,该控制平面控制数据报沿着源主机到目的主机的端到端路径中路由器之间的路由方式。
二、数据平面
1. 网络层概述
1.网络层作用:每台路由器的数据平面主要作用是从其输入链路向其输出链路转发数据报,控制平面的主要作用是协调这些本地路由器转发动作,使得数据报沿着源和目的主机之间的路由器路径最终进行端到端传送。
2.转发和路由选择
-
转发:当一个分组到达某个路由器的一条输入链路时,将分组从一个输入链路接口转移到适当输出链路接口的路由器本地动作。转发是主数据平面总实现的唯一功能。
-
路由选择:当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路径,计算路径的算法被称为路由选择算法,路由选择是在控制平面实现的。
3.转发表:每台路由器中有一个关键元素-转发表。路由器检查到达分组首部的一个或者多个字段,进而使用这些首部值在其转发表中的索引,这些索引指出了该分组将被转发的路由器输出链路接口,通过这种方法来实现转发分组。
4.控制平面:SDN(软件定义网络)方法
如图所示:远程控制器计算和分发转发表以供每台路由器使用,控制平面路由选择功能与物理的路由是分离的,即路由选择设备仅仅执行转发,而远程控制器计算并分发转发表,远程控制器可能实现在具有高可靠性和高冗余性的数据中心或者ISP和某些第三方管理
5.网络服务模型:定义了分组在发送与接收端系统之间的端到端运输特性,网络层可提供的服务有:
-
确保交付:确保分组最终到达目的地
-
具有延时上界的分组:确保在延时之内到达目的地
-
确保最小带宽:模仿在发送和接收主机之间一条特定比率的传输链路行为。
-
有序分组交付:该服务确保分组以他们发送的顺序到达目的地
-
安全性:网络层能够在源加密所有数据报并在目的地解密这些分组。
6.分组交换机/链路层交换机:分组交换机是指一台通用分组交换设备,它根据分组首部字段中的值,从输入链路接口道输出链路接口转移分组。
2. 路由器工作原理
下图是路由器体系结构:
-
输入端口:它与要位于入链路远端的数据链路层交互来执行数据链路层功能,在输入端口还要执行查找功能,通过查询转发表来决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出端口。控制分组从输入端口转发到路由选择处理器。
-
交换结构:交换结构将路由器的输入端口连接到它的输出端口。
-
输出端口:输出端口存储从交换结构接收分组,并执行必要的物理层和链路层在输出链路上传输这些分组。当链路是全双工时候,输出链路和输入链路成对出现在同一线路卡上。
-
路由选择处理器:路由选择处理器执行控制平面功能,在传统路由器中,它执行路由选择协议,维护路由器表与关联链路信息并结算路由器转发表。在SDN路由器中,路由选择处理器负责与远程控制器通信,目的是接收由远程控制计算器计算的转发表项,并在路由器的输入端口安装这些表项。
1. 输入端口处理和基于目的转发
下图显示了一个更加详细的输入端口处理试图:
输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层。在输入端口中路由器使用转发表来查找输出端口,使到达的分组能经过交换结构转发到输出端口。转发表是由路由选择处理器计算和更新的。转发表从路由选择处理器经过独立的总线复制到线路卡。
2. 交换:交换结构位于路由器的中心,通过这种交换结构分组才能实际地从一个输入端口交换到一个输出端口中,交换有多种方式:
-
内存交换:在最早的路由器,他们的输入端口和输出端口的交换是在CPU的直接控制下完成的。他们就像传统的IO设备一样,当分组到达时从输入端口复制到内存中,然后通过路由选择处理器在转发表中找到输出端口,并将该分组复制到输出端口。
-
总线交换:输入端口经一根共享总线直接传输到输出端口,不需要路由选择处理器干涉。
-
互联网络交换:通过网络互联多个处理器,纵横交换机:由一种2N条总线组成的互联网络,N条输入总线和N条输出总线。
3. 输出端口处理:输出端口处理取出已经存放在输出端口内存中的分组并将其发送到输出链路上。如图
4. 排队:在输入端口和输出端口都有分组队列。排队的位置和程度取决于流量负载、交换结构的相对速率和线路速率,随着队列增长,路由器中缓冲最终将会耗尽