网络层服务:转发、路由、数据平面、控制平面与SDN
网络层的作用
在网络中,每一台主机和路由器都有网络层。网络层提供了在发送主机与接收主机之间传送段的服务,在发送端将段封装到数据报中,在接收端将段上交给传输层实体。
传输层的段只在两台端系统之间“端到端”地处理,而网络层的数据报要经过沿途的每一台路由器。路由器不需要应用层和传输层,它只关心数据报首部,并据此把数据报送往下一跳。
数据平面与控制平面
网络层可以分解为数据平面(data plane)和控制平面(control plane)这两个互相作用的部分。数据平面指每台路由器的功能,决定从路由器的输入端口如何转发(forwarding)到输出端口。控制平面指的是数据包如何在路由器之间路由(routing),决定了数据报从源到目标主机之间的端到端路径。
可以用一次自驾旅行来理解二者的区别:在每个路口选择驶入哪条出口车道,相当于转发;出发前规划从起点到终点经过哪些城市和道路,相当于路由选择。转发是单台路由器内部的局部动作,通常在纳秒级完成,一般由硬件实现;路由选择涉及全网,通常在秒级完成,一般由软件实现。
| 转发(数据平面) | 路由选择(控制平面) | |
|---|---|---|
| 作用范围 | 单台路由器内部 | 整个网络 |
| 处理对象 | 每一个到达的分组 | 路由信息与转发表 |
| 时间尺度 | 纳秒级 | 秒级 |
| 典型实现 | 硬件 | 软件 |
每台路由器都有一个转发表(forwarding table),路由器使用分组首部的字段值在转发表中索引,指出该分组将被转发的输出端口。
走进一台路由器:查表,再交换
解锁完整互动实验、进阶解析与精选参考答案。
知识测验
传统路由选择与SDN
配置路由器转发表的传统方法是,根据路由器中的路由选择算法与其它路由器中的路由选择算法通信,从而计算出它的转发表的值,这种通信根据路由选择协议交换包含路由选择信息的路由选择报文。
另一种方法称为软件定义网络SDN(Software-Defined Networking),通过由ISP或第三方管理的远程控制器计算并分发转发表以供每台路由器使用。路由器只执行转发,没有选择功能。因为计算转发表并与路由器交互的控制器是用软件实现的,故得其名。
转发表由谁计算?
解锁完整互动实验、进阶解析与精选参考答案。
知识测验
网络层的服务模型
因特网的网络层只提供尽力而为(best-effort)服务:它会尽力把数据报交付到目的主机,但不保证一定交付,不保证按序交付,也不保证带宽和端到端时延。可靠传输、按序交付等功能由上层协议(例如TCP)在端系统中实现。这种简单的服务模型让路由器保持简单,也让因特网能够连接各种不同类型的链路。
把任务分到数据平面与控制平面
判断下列每项任务属于数据平面还是控制平面,并说明它发生在单台路由器内部还是跨越全网:
- 读取分组的目的地址并索引转发表
- 链路故障后重新计算路径
- 把分组经交换结构送到输出端口
- 与相邻路由器交换路由选择报文
- SDN控制器向路由器下发新转发表
- 输出缓存已满时丢弃分组