网络层:数据平面
一、网络层概述
转发和路由选择:数据平面和控制平面
- 数据平面(转发)
- 本地
- 每个路由器自身的功能
- 控制平面(路由)
- 整个网络
- 路由器之间通过交互来实现
SDN
:一个分离的(通常是远程的)控制器和路由器本地的控制代理交互
IP
(Internet Protocol
)- 数据报格式
- 寻址
- 网络地址转换
IPv6
- 路由器
- 检查通过它的所有
IP
数据报中的头部字段。 - 沿着端到端的路径,将数据包从输入端口移动到输出端口。
- 检查通过它的所有
- 两个关键功能
- 转发
- 将数据包从路由器的输入链路移动到适当的路由器输出链路
- 路由
- 确定数据包从源到目标所采用的路由。
- 转发
网络层的服务模型
- 可能保证
- 确保交付
- 具有时延上限的确保交付
- 有序分组交付
- 确保最小带宽
- 确保最大时延抖动
- 尽力而为
- 尽力而为不保证
- 成功传送
- 定时或者按序
- 端到端的可用带宽
二、路由器的工作原理
- 输入端口
- 终结入物理链路的物理层功能,与位于入链路远端的数据链路层交互来执行数据链路层功能,在输入端口还要执行查找功能。
- 交换结构
- 将路由器的输入端口连接到它的输出端口。
- 输出端口
- 存储分组,传输分组。
- 路由选择处理器
- 控制平面功能。
输入端口处理器和基于目的地转发
- 路由器使用转发表来查找输出端口。
- 最长前缀匹配
交换
- 经内存交换
- 在
CPU
的直接控制下完成的 - 不能同时转发两个分组,即使他们有不同的目的端口
- 在
- 经总线交换
- 不需要理由选择处理器的干预
- 经互联网络交换
输出端口处理
- 取出已经存在输出端口内存中的分组并将其发送到输出链路上。
何处出现排队
- 输入排队
- 输出排队
- 交换结构
分组调度
- 先进先出
- 优先权排队
- 循环和加权公平排队
三、网际协议:IPv4、寻址、IPv6及其他
IPv4数据包格式
- 版本
4
比特IP
协议的版本
- 首部长度
4
比特- 使用单位来表示,一个单位为四字节。
- 故首部长度最大为
15
个单位,即60
个字节。
- 服务类型
- 数据报总长度
16
比特- 指首部和数据之和的长度。
- 故数据报最大可为
65535
字节。 - 总长度不能超过
MTU
。
- 标识(计数器)
- 标志
- 片偏移
- 分片后,某片在原分组中的相对位置。
- 生存时间
- 数据报在网络中可经过的路由器数的最大值。
- 上层协议
- 首部检验和
- 只检验数据报的首部不检验数据部分。
- 源/目的IP
- 各占
4
字节
- 各占
IP数据报分片和重组
- 一个大的分组可能在路由器中被分割为几个分片。
- 在最终的目的主机上,将这些分片重新组装成一个大的分组。
只针对
UDP
IPv4编址
IP
地址- 分配给主机或路由器接口的标识符
- 接口
- 主机/路由器与物理链路之间的边界
- 路由器有多个接口
- 主机可以有多个接口
- 每个接口有一个
IP
地址
IP
地址有两种IPv4
32
个二进制位长(4
字节)- 常用点分十进制表示
IPv6
128
个二进制位长(16
字节)- 常用冒号分隔表示
- 地址分类
IP | 作用 |
---|---|
127.x.x.x | 本地回环地址 |
10.x.x.x | 私有地址 |
172.16.x.x-172.31.x.x | 私有地址 |
192.168.x.x | 私有地址 |
0.0.0.0 | 无法识别的网络和主机 |
255.255.255.255 | 受限的广播地址 |
IP地址获取
- 手工指定
- 在系统配置中设置
DHCP
- 自动从一个
DHCP
服务器获得IP
- 还可分配客户的第一跳路由器的地址(网关)、
DNS
服务器的IP
或者域名、子网掩码。 - 是应用层协议
- 自动从一个
NAT:网络地址转换
- 外出的分组
- 替换每个外出的分组的 (源
IP
地址, 端口号) 为 (NAT
的IP
地址, 新端口号) - 远程客户/服务器用(
NAT
的IP
地址, 新端口号)作为目的地来响应。
- 替换每个外出的分组的 (源
- 在
NAT
转换表中)- 记录每个(源
IP
地址, 端口号)到 (NAT
的IP
地址, 新端口号) 转换配对。
- 记录每个(源
- 进来的分组
- 对每个进来的分组,用保存在
NAT
表中的对应的 (源IP
地址, 端口号) 替换分组中的目的域 (NAT
的IP
地址, 新端口号)。
- 对每个进来的分组,用保存在
IPv6
- 更大的地址空间
32
位到128
位。
- 扩展的地址层次结构
- 灵活的首部格式
IPv6
定义了许多可选的扩展首部。
- 改进的选项
IPv6
允许数据报包含有选项的控制信息,其选项放在有效载荷中。
- 允许协议继续扩充。
- 支持即插即用(即自动配置)。
- 因此
IPv6
不需要使用DHCP
。
- 因此
- 支持资源的预分配
IPv6
支持实时视像等要求,保证一定的带宽和时延的应用。
IPv6
首部改为8
字节对齐- 首部长度必须是
8
字节的整数倍。 - 原来的
IPv4
首部是4
字节对齐。
- 首部长度必须是
- 冒号十六进制记法
- 每个
16
位的值用十六进制值表示,各值之间用冒号分隔。68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
- 在十六进制记法中,允许把数字前面的 0 省略。
- 例如把
0000
中的前三个0
省略,写成一个0
。
- 例如把
- 冒号十六进制记法可以允许零压缩 (
zero compression
),即一连串连续的零可以为一对冒号所取代。FF05:0:0:0:0:0:0:B3
可压缩为:FF05::B3
- 每个
注意:在任一地址中只能使用一次零压缩。
四、通用转发和SDN
- 每个路由器都包含一个转发表 (
forwarding table
),也称为流表 (flow table
) - 匹配
- 数据包头字段中的值。
- 动作
- 对于匹配的数据包:丢弃,转发,修改匹配的数据包或将匹配的数据包发送到控制器。
- 优先级
- 消除重叠模式
- 计数器
- 计数
byte
和packet
数量。
- 计数