跳转至

网络层

约 1641 个字 预计阅读时间 5 分钟

一、 网络层设计概述 (Network Layer Design Issues)

  1. 存储转发分组交换 (Store-and-Forward Packet Switching)
    • 解释:主机发送的分组先传送到最近的路由器,路由器验证并存储分组,待输出链路空闲时再转发到下一个路由器。
  2. 为传输层提供的服务
    • 设计目标:独立于路由器技术、屏蔽路由器的数量/类型/拓扑、使用统一的编址方案。
  3. 无连接服务 (Connectionless - 数据报子网)
    • 解释:每个分组独立路由,无需提前建立路径。类似电报。
  4. 面向连接服务 (Connection-Oriented - 虚电路子网)
    • 解释:在发送数据前必须先建立一条逻辑路径( VC )。类似电话系统。
  5. 对比总结 (关键例子/表格)
    • 数据报:路由器不持有连接状态,路径可能随分组变化,可靠性由主机负责。
    • 虚电路:每个连接在路由器中占用表空间,所有分组沿固定路径,易于提供 QoS 保证。

二、 路由算法 (Routing Algorithms)

  1. 最优化原则 (Optimality Principle)
    • 如果路由器 J 在从 I 到 K 的最优路径上,那么从 J 到 K 的最优路径也一定落在同一条路径上。由此产生的路径集合构成汇集树 (Sink Tree)
  2. 最短路径路由 (Shortest Path Routing)
    • Dijkstra 算法:用于计算单源最短路径。
    • 过程:节点标记为(距离, 前驱节点),分为临时(temporary)和永久(permanent)两种状态,不断选取距离最短的临时节点转为永久节点。
  3. 泛洪算法 (Flooding)
    • 解释:将入分组转发到除来路以外的所有出链路。通常配合跳数计数器 (Hop counter) 使用以防无限循环。
  4. 距离向量路由 (Distance Vector - DV)
    • 公式\(R\) 通过 \(X\) 到达 \(i\) 的延迟 = \(Estimate(X, i) + Delay(R, X)\)
    • 问题无穷大计数问题 (Count-to-infinity)。它对好消息反应快,对坏消息反应慢。
    • 尝试解决方法:毒性逆转 (Poisoned reverse)。
  5. 链路状态路由 (Link State - LS)
    • 步骤:发现邻居 \(\rightarrow\) 设置代价 \(\rightarrow\) 构造 LS 分组 \(\rightarrow\) 泛洪扩散 \(\rightarrow\) 计算最短路径。
    • 代表协议: OSPF, IS-IS。
  6. 分层路由 (Hierarchical Routing)
    • 解释:随着网络规模扩大,将路由器划分为区域、簇、区、组等,以减小路由表规模。
    • 公式:对于 \(N\) 个路由器的子网,最优层级数约为 \(\ln N\),每个路由器约需 \(e \ln N\) 条目。
  7. 其他路由
    • 广播 (Broadcast):发送给所有目的地(常用反向路径转发 RPF )。
    • 组播 (Multicast):发送给特定组(剪枝生成树)。
    • 选播 (Anycast):发送给组中最近的一个。
    • 移动主机路由:注册转交地址( Care-of address ),通过隧道( Tunnel )传输。
    • 自组织网络 (Ad Hoc):使用 AODV 协议 进行按需路由发现。

三、 网络互连 (Internetworking)

  1. 隧道技术 (Tunneling)
    • 例子:将 IPv6 分组封装在 IPv4 分组中,穿越 IPv4 网络(类似汽车装在火车车厢里穿过英吉利海峡隧道)。
  2. 分段 (Fragmentation)
    • 原因:不同网络有不同的 MTU (最大传输单元)
    • 透明分段:在出口路由器重组;非透明分段:在目的地主机重组。
    • 路径 MTU 发现 (Path MTU Discovery):通过探测找到路径上最小的 MTU ,避免中途分段。

四、 软件定义网络 (SDN)

  1. 核心思想:数据平面( Data Plane )与控制平面( Control Plane )分离。
    • 数据平面:本地、每台路由器执行,根据流表进行分组转发。
    • 控制平面:全网逻辑,决定分组如何路由。
  2. 实现方式
    • 传统方式:分布式路由算法( OSPF/BGP )运行在每个路由器中。
    • SDN 方式:远程控制器( Remote Controller )计算并安装流表到交换机中。
  3. OpenFlow 协议:控制器与交换机通信的标准协议。
    • 流表条目由 Match (匹配) + Action (动作) + Stats (统计) 组成。

五、 互联网中的网络层 (The Network Layer in the Internet)

  1. 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 上网,缓解地址枯竭。
  2. IPv6 协议
    • 特点: 128 位地址,简化首部(固定 40 字节),支持流标签,取消校验和。
    • 表示法:八组四位十六进制,:: 可代表一段全 0。
  3. 控制协议
    • ICMP:报告非正常事件(如 traceroute, ping)。
    • ARP:已知 IP 找 MAC 地址(广播请求)。
    • DHCP:动态获取 IP 地址。
  4. 路由协议
    • RIP:内部网关协议,基于 DV ,最大跳数 15。
    • OSPF:内部网关协议,基于 LS ,支持多路径、安全认证、分层。
    • BGP:外部网关协议,基于路径向量( Path Vector ),考虑政治和策略因素。

六、 拥塞控制 (Congestion Control)

  1. 起因:突发流量、内存不足、CPU 慢、带宽低。
  2. 与流量控制的区别:拥塞控制是全网性的;流量控制是端到端的。
  3. 方法
    • 流量感知路由:调整权重避开繁忙链路。
    • 准入控制:不满足 QoS 要求的连接不予建立。
    • 抑制包 (Choke Packets):路由器直接通知源端减速。
    • 显式拥塞通知 (ECN):在 IP 首部标记拥塞。
    • 负载脱落 (Load Shedding):直接丢弃包。RED (随机早期检测) 在缓冲区满之前随机丢包,促使 TCP 减速。

七、 服务质量 (Quality of Service - QoS)

  1. 四大参数:可靠性、延迟、抖动( Jitter )、带宽。
  2. 流量整形 (Traffic Shaping)
    • 漏桶 (Leaky Bucket):以恒定速率流出。
    • 令牌桶 (Token Bucket):允许某种程度的突发流量。
  3. 分组调度
    • 加权公平排队 (WFQ):根据权重分配带宽。
    • 完成时间计算公式 (Finish Time)\(F_i = \max(A_i, F_{i-1}) + L_i/W\)
      • \(i\): 第\(i\)个分组;\(F_i\): 完成时间;\(A_i\): 到达时间;\(L_i\): 分组长度;\(W\): 权重。
  4. 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 算法重新计算并安装流表。

评论