3.4 KiB
3.4 KiB
1. 网络层概述
- 网络层中两个关键功能:
- 转发:(数据平面)实际传输数据包。纳秒内操作
- 路由:(控制平面)规划路径。包括传统路由算法(在路由器中实现,计算转发表,第5章)和软件定义网络SDN(服务器集中远程控制,第5章)。毫秒内操作
2. 路由器工作机理
-
最长前缀匹配:转发表存地址范围到链路接口号的影射。查找给定目标地址的转发表条目时,使用与目标地址匹配的最长地址前缀
-
交换
- 经内存交换:数据包复制到系统内存然后再转发,速度受内存带宽限制
- 经总线交换:数据报通过共享总线从输入端口存储器到输出端口存储器,速度受总线带宽限制
- 经互连网络交换:连接多处理器,将数据报碎片化为固定长度的单元,通过交换结构交换单元
-
排队:到达速率超过线路速度时进行缓存
- 输入端口排队:输入缓冲区溢出导致排队延迟和丢失;线路前部(HOL) 阻塞(队列前面的排队数据报阻塞,后面的数据报就堵住了,一个输出端口的阻塞可能导致多个输出端口阻塞)
- 输出端口排队:可能输出缓存溢出导致丢失
-
缓存量计算:RTT * 链路容量C(单流或少流适合);或$\frac{RTT\times C}{\sqrt{N} }$,N为流的数量(适合多流)
-
调度:先进先出;设置优先级;分类,每个类轮流调度;加权的分类轮流调度
3. IP:互联网协议
-
IP数据包格式
-
分片:网络链路具有最大可能的链路级帧,所以要将IP数据报分片
- e.g. 4000B(20B报头+3980B数据)的数据报拆成(20B+1480B)+(20B+1480B)+(20B+1020B)的形式。另外还需要设置offset=字节偏移量/8
-
子网:具有相同子网部分 IP地址,可以不靠中间路由器物理相互联系
- 地址表示:a.b.c.d/x,x是子网掩码,表示子网共同的IP有x位
- 有限广播地址255.255.255.255,该报文会交付给相同子网中的所有主机(常用于DHCP);定向广播地址:将IP和子网掩码相与计算出网络号,然后子网掩码取反后与网络号或运算,即为广播地址,用于向特定子网内的所有设备发送广播
-
DHCP:动态主机配置协议
- 主机加入网络,255.255.255.255广播寻找DHCP服务器
- DHCP服务器广播回复该主机,提供一个IP
- 主机广播回复DHCP服务器,确认占用该IP
- DHCP服务器广播回复主机,同意主机占用该IP
还会提供第一跳路由器的地址、DNS 服务器的名称和 IP 地址、网络掩码
-
NAT:网络地址转换
- 传出时:将内网主机的源(内网IP,Port)对外转换为路由器的源(外网IP,新Port)
- 传入时:将外网主机的目的(路由器外网IP,新Port),转换回内网主机(内网IP,Port)
-
IPv6:IP地址16字节。头部固定长度 40 字节,不允许分片
4. 通用转发和SDN
- OpenFlow:每个路由器都包含一个流表,该流表由逻辑集中式路由控制器计算和分发
- 流表:匹配+动作转发表(e.g. 路由器匹配为最长的目标IP前缀,动作为转发链接;交换机匹配目标 MAC地址,动作为转发或洪泛)