文章目录
第四章 网络层:数据平面
4.1 导论
- 数据平面
- 控制平面
网络层服务
- 在发送主机和接收主机之间传送段(segment)
- 在发送段将段封装到数据报中
- 在接收端,将段上交给传输层实体
- 网路层协议存在于每一个主机和路由器
- 路由器检查每一个经过它的IP数据报的头部
网络层的关键功能
网络层功能:
- 转发:将分组从路由器的输入接口转发到合适的输出接口
- 路由:使用路由算法从发送主机到目标接收主机的路径
- 路由选择算法
- 路由选择协议
网路层:数据平面,控制平面
数据平面(局部)
- 决定从路由器输入端口到达的分组如何转发到输出端口
- 转发功能:
- 传统方式:基于目标地址+转发表
- SDN方式:基于多个字段+流表
流表方式可以做多个动作:转发或block(阻塞)
控制平面(全局)
决定数据报该怎么走?
- 网络范围的逻辑
- 决定数据报如何在路由器之间路由,决定数据报从源到目标主机之间端到端的路径
- 2个控制平面的方法:
- 传统的路由算法:在路由器中被实现
- soft-defined networking(SDN):在远程的服务器中实现
传统方式:每-路由器(Per-router)控制平面
在每一个路由器中的单独路由器算法元件,在控制平面进行交互。
SDN方式:逻辑集中的控制平面
一个不同的(通常是远程的)控制器与本地控制代(CAs)交互
- 改变不同的逻辑流表不同的网络应用会形成不同的流表。
网络服务模型(best offer:尽力而为)
对于单个数据报的服务
- 可靠传送
- 延迟保证,如:少于40ms的延迟
对于数据报流的服务: - 保序
- 保证流的最小带宽
- 分组之间的延迟差
连接建立
- 网络层和传输层连接服务区别:
- 网络层: 在2个主机之间,涉及到路径上的一些路由器
- 传输层: 在2个进程之间,很可能只体现在端系统上(TCP连接)
路由器组成
输入端口缓存
- 匹配的瞬时的输入,输出速率不一致需要一个池子。
- 排队延迟以及由于输入缓存溢出造成丢失!
- Head-of-the-Line (HOL) blocking(头端阻塞): 排在队头的数据报阻止了队列中其他数据报向前移动
交换结构
- 将分组从输入缓冲区传输到合适的输出端口
- 交换速率:分组可以按照该速率从输入传输到输出
- 运行速度经常是输入/输出链路速率的若干倍
- N 个输入端口:交换机构的交换速度是输入线路速度的N倍比较理想,才不会成为瓶颈
通过内存交换(通过系统总线两次:阻塞)
- 分组被拷贝到系统内存,CPU从分组的头部提取出目标
地址,查找转发表,找到对应的输出端口,拷贝到输出
端口 - 转发速率被内存的带宽限制 (数据报通过BUS两遍)
- 一次只能转发一个分组
通过总线交换
- 数据报通过共享总线,从输入端口转发到输出端口
- 总线竞争: 交换速度受限于总线带宽
- 1次处理一个分组
通过互联网络(crossbar等)的交换
- 同时并发转发多个分组,克服总线带宽限制
相当于A到Y的时候,就可以把B,C短路。
输出端口
数据报可能会被丢失,由于拥塞,缓冲区没有空间。
调度规则:将队列中哪一个分组选择然后打出去。
调度规则
- : 选择下一个要通过链路传输的分组
- 默认按照先进先出的次序发送
- 丢弃策略: 如果分组到达一个满的队列,哪个分组将会被抛弃?
- tail drop: 丢弃刚到达的分组
- priority: 根据优先权丢失/移除分组
- random: 随机地丢弃/移除
调度策略:
优先权调度:发送最高优先权的分组