网络层¶
约 1641 个字 预计阅读时间 5 分钟
一、 网络层设计概述 (Network Layer Design Issues)¶
- 存储转发分组交换 (Store-and-Forward Packet Switching):
- 解释:主机发送的分组先传送到最近的路由器,路由器验证并存储分组,待输出链路空闲时再转发到下一个路由器。
- 为传输层提供的服务:
- 设计目标:独立于路由器技术、屏蔽路由器的数量/类型/拓扑、使用统一的编址方案。
- 无连接服务 (Connectionless - 数据报子网):
- 解释:每个分组独立路由,无需提前建立路径。类似电报。
- 面向连接服务 (Connection-Oriented - 虚电路子网):
- 解释:在发送数据前必须先建立一条逻辑路径( VC )。类似电话系统。
- 对比总结 (关键例子/表格):
- 数据报:路由器不持有连接状态,路径可能随分组变化,可靠性由主机负责。
- 虚电路:每个连接在路由器中占用表空间,所有分组沿固定路径,易于提供 QoS 保证。
二、 路由算法 (Routing Algorithms)¶
- 最优化原则 (Optimality Principle):
- 如果路由器 J 在从 I 到 K 的最优路径上,那么从 J 到 K 的最优路径也一定落在同一条路径上。由此产生的路径集合构成汇集树 (Sink Tree)。
- 最短路径路由 (Shortest Path Routing):
- Dijkstra 算法:用于计算单源最短路径。
- 过程:节点标记为(距离, 前驱节点),分为临时(temporary)和永久(permanent)两种状态,不断选取距离最短的临时节点转为永久节点。
- 泛洪算法 (Flooding):
- 解释:将入分组转发到除来路以外的所有出链路。通常配合跳数计数器 (Hop counter) 使用以防无限循环。
- 距离向量路由 (Distance Vector - DV):
- 公式:\(R\) 通过 \(X\) 到达 \(i\) 的延迟 = \(Estimate(X, i) + Delay(R, X)\)。
- 问题:无穷大计数问题 (Count-to-infinity)。它对好消息反应快,对坏消息反应慢。
- 尝试解决方法:毒性逆转 (Poisoned reverse)。
- 链路状态路由 (Link State - LS):
- 步骤:发现邻居 \(\rightarrow\) 设置代价 \(\rightarrow\) 构造 LS 分组 \(\rightarrow\) 泛洪扩散 \(\rightarrow\) 计算最短路径。
- 代表协议: OSPF, IS-IS。
- 分层路由 (Hierarchical Routing):
- 解释:随着网络规模扩大,将路由器划分为区域、簇、区、组等,以减小路由表规模。
- 公式:对于 \(N\) 个路由器的子网,最优层级数约为 \(\ln N\),每个路由器约需 \(e \ln N\) 条目。
- 其他路由:
- 广播 (Broadcast):发送给所有目的地(常用反向路径转发 RPF )。
- 组播 (Multicast):发送给特定组(剪枝生成树)。
- 选播 (Anycast):发送给组中最近的一个。
- 移动主机路由:注册转交地址( Care-of address ),通过隧道( Tunnel )传输。
- 自组织网络 (Ad Hoc):使用 AODV 协议 进行按需路由发现。
三、 网络互连 (Internetworking)¶
- 隧道技术 (Tunneling):
- 例子:将 IPv6 分组封装在 IPv4 分组中,穿越 IPv4 网络(类似汽车装在火车车厢里穿过英吉利海峡隧道)。
- 分段 (Fragmentation):
- 原因:不同网络有不同的 MTU (最大传输单元)。
- 透明分段:在出口路由器重组;非透明分段:在目的地主机重组。
- 路径 MTU 发现 (Path MTU Discovery):通过探测找到路径上最小的 MTU ,避免中途分段。
四、 软件定义网络 (SDN)¶
- 核心思想:数据平面( Data Plane )与控制平面( Control Plane )分离。
- 数据平面:本地、每台路由器执行,根据流表进行分组转发。
- 控制平面:全网逻辑,决定分组如何路由。
- 实现方式:
- 传统方式:分布式路由算法( OSPF/BGP )运行在每个路由器中。
- SDN 方式:远程控制器( Remote Controller )计算并安装流表到交换机中。
- OpenFlow 协议:控制器与交换机通信的标准协议。
- 流表条目由 Match (匹配) + Action (动作) + Stats (统计) 组成。
五、 互联网中的网络层 (The Network Layer in the Internet)¶
- IPv4 协议:
- 首部字段: Version, IHL(首部长度), Total length(最大 65535 字节), Identification/DF/MF/Offset(分段相关), TTL(生命周期), Protocol, Checksum, Source/Dest Address。
- CIDR (无分类域间路由):使用斜线表示法,如
/19。最长前缀匹配原则。 - NAT (网络地址转换):允许私有 IP ( 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 )通过一个公网 IP 上网,缓解地址枯竭。
- IPv6 协议:
- 特点: 128 位地址,简化首部(固定 40 字节),支持流标签,取消校验和。
- 表示法:八组四位十六进制,
::可代表一段全 0。
- 控制协议:
- ICMP:报告非正常事件(如
traceroute,ping)。 - ARP:已知 IP 找 MAC 地址(广播请求)。
- DHCP:动态获取 IP 地址。
- ICMP:报告非正常事件(如
- 路由协议:
- RIP:内部网关协议,基于 DV ,最大跳数 15。
- OSPF:内部网关协议,基于 LS ,支持多路径、安全认证、分层。
- BGP:外部网关协议,基于路径向量( Path Vector ),考虑政治和策略因素。
六、 拥塞控制 (Congestion Control)¶
- 起因:突发流量、内存不足、CPU 慢、带宽低。
- 与流量控制的区别:拥塞控制是全网性的;流量控制是端到端的。
- 方法:
- 流量感知路由:调整权重避开繁忙链路。
- 准入控制:不满足 QoS 要求的连接不予建立。
- 抑制包 (Choke Packets):路由器直接通知源端减速。
- 显式拥塞通知 (ECN):在 IP 首部标记拥塞。
- 负载脱落 (Load Shedding):直接丢弃包。RED (随机早期检测) 在缓冲区满之前随机丢包,促使 TCP 减速。
七、 服务质量 (Quality of Service - QoS)¶
- 四大参数:可靠性、延迟、抖动( Jitter )、带宽。
- 流量整形 (Traffic Shaping):
- 漏桶 (Leaky Bucket):以恒定速率流出。
- 令牌桶 (Token Bucket):允许某种程度的突发流量。
- 分组调度:
- 加权公平排队 (WFQ):根据权重分配带宽。
- 完成时间计算公式 (Finish Time):\(F_i = \max(A_i, F_{i-1}) + L_i/W\)
- \(i\): 第\(i\)个分组;\(F_i\): 完成时间;\(A_i\): 到达时间;\(L_i\): 分组长度;\(W\): 权重。
- QoS 架构:
- IntServ (综合服务):基于流量,使用 RSVP 协议预留资源。
- DiffServ (区分服务):基于类别,如加速转发( Expedited Forwarding )或确定转发( Assured Forwarding )。
例子总结¶
- 计算例子 (Page 120):如何将
192.24.0.0/19分配给不同需求的机构( Cambridge 2048 个, Oxford 4096 个等)。 - 路由例子 (Page 31/43): J 路由器如何通过邻居 A, H, I, K 的向量更新自己的延迟估计表。
- SDN 例子 (Page 102): S1 发生链路故障,发送 OpenFlow 消息通知控制器,控制器调用 Dijkstra 算法重新计算并安装流表。