第 4 章 网络层

4.1 网络层的功能

4.1.1 异构网络互连

  • 定义
    • 互联网由全球范围内数以百万计的异构网络互连
    • 网络层任务之一是实现异构网络互连
    • 网络互连:将两个以上计算机网络通过中继系统相互连接
  • 中继系统分类(按层次)
    • 物理层中继系统
      • 转发器
      • 集线器
    • 数据链路层中继系统
      • 网桥
      • 交换机
    • 网络层中继系统
      • 路由器
    • 网络层以上中继系统
      • 网关
  • 网络互连特点
    • 通常指用路由器进行连接和路由选择
    • 路由器是专用计算机
    • 历史原因:路由器有时被称为网关
  • TCP/IP网络互连方案
    • 网络层采用标准化协议
    • 可连接异构网络
    • IP网络概念
      • 实际互连网络(通过路由器连接)
      • 虚拟IP网络(统一网络视图)
  • IP网络优势
    • 主机通信时如同在单个网络上
    • 隐藏底层网络异构细节

4.1.2 路由与转发

  • 路由器主要完成两个功能
    • 路由选择(确定哪一条路径)
      • 根据路由选择协议构造并维护路由表
      • 经常或定期与相邻路由器交换信息
      • 获取网络最新拓扑
      • 动态更新维护路由表
      • 决定分组到达目的地节点的最优路径
    • 分组转发(分组到达时所采取的动作)
      • 处理通过路由器的数据流
      • 关键操作
        • 转发表查询
        • 转发
        • 队列管理
        • 任务调度
  • 路由表与转发表的关系
    • 路由表根据路由选择算法得出
    • 转发表从路由表得出
    • 转发表结构优化查找过程
    • 路由表优化网络拓扑变化计算
  • 注意
    • 讨论路由选择原理时
      • 不区分转发表和路由表
      • 笼统使用路由表一词

4.1.3 网络层提供的两种服务

  • 网络层提供两种通信服务方式

    • 面向连接的虚电路服务
    • 无连接的数据报服务
  • ①. 虚电路(Virtual Circuit, VC)

    • 基本概念
      • 计算机通信前先建立网络层连接
      • 连接是一条逻辑上的路径(非物理专用)
      • 分为三个阶段:建立、传输、释放
    • 虚电路号(VCID)
      • 每次建立时分配唯一编号
      • 区分不同虚电路
    • 数据传输特点
      • 首部仅携带VCID,不重复目的地址
      • 每个节点维护虚电路表
        • 包含VCID、入链路、出链路、前后节点等信息
    • 工作流程
      • 建立连接:发送“呼叫请求”分组 → 接收方确认“呼叫应答”
      • 数据传输:通过已建立路径传输数据分组
      • 释放连接:发送“释放请求”分组 → 逐段拆除连接
    • 特点总结
      • 建立/拆除需要开销,适合长时间频繁通信
      • 路由选择在连接建立时确定
      • 提供可靠传输、有序到达、流量控制
      • 对网络故障适应性差
        • 节点或链路失效 → 所有相关虚电路中断
      • 分组首部开销小(只用VCID)
  • ②. 数据报(Datagram)

    • 基本概念
      • 发送前不需要建立连接
      • 每个分组独立路由转发
      • 网络层不承诺服务质量
    • 数据传输特点
      • 每个分组包含完整源和目的地址
      • 中间节点缓存并查找转发表进行转发
      • 不保证顺序、可靠性、流量控制
    • 工作流程
      • 主机A将分组发给相邻交换节点A
      • 节点A查找转发表决定下一跳
      • 其他节点类似转发,直到到达主机B
    • 特点总结
      • 无需连接建立,灵活高效
      • 尽最大努力交付,可能出错、丢失、乱序
      • 支持资源复用,利用率高
      • 对网络故障适应性强
        • 可动态更新路由避开故障节点
      • 分组需排队转发,可能造成延迟或丢包
  • ③. 数据报服务与虚电路服务比较

    • 连接的建立
      • 数据报服务:不需要
      • 虚电路服务:必须有
    • 目的地址
      • 数据报服务:每个分组都有完整的目的地址
      • 虚电路服务:连接阶段

4.1.4 SDN 的基本概念

  • 网络层抽象划分
    • 数据平面(转发层面)
      • 功能:转发
    • 控制平面
      • 功能:路由选择
  • SDN架构特点
    • 集中式的控制平面
    • 分布式的数据平面
    • 控制平面与数据平面分离
    • 控制平面通过控制-数据接口集中控制路由器
  • 传统路由器 vs SDN路由器
    • 传统路由器
      • 包含转发表和路由选择软件
      • 既有数据平面又有控制平面
    • SDN路由器
      • 简化设计
      • 无需路由选择软件
      • 路由器间不交换路由信息
  • SDN结构
    • 远程控制器
      • 逻辑上的控制中心
      • 掌握网络状态
      • 计算最佳路由
      • 通过Openflow协议下发流表
    • 路由器工作流程
      • 收到分组
      • 查找转发表
      • 转发分组
  • SDN应用场景
    • 大型数据中心之间的广域网
  • SDN接口
    • 北向接口
      • 面向应用开发者的编程接口
      • 提供丰富API
    • 南向接口
      • 控制器与转发设备间的双向会话接口
      • 协议示例:Openflow
    • 东西向接口
      • 控制器集群内部通信接口
  • SDN优点
    • 全局集中式控制和分布式高速转发
    • 灵活可编程与性能的平衡
    • 降低成本
  • SDN问题
    • 安全风险
      • 集中管理易受攻击
    • 瓶颈问题
      • 控制器可能成为性能瓶颈

4.1.5 拥塞控制

  • 定义
    • 因出现过量的分组而引起网络性能下降的现象
  • 判断方法
    • 观察吞吐量与网络负载的关系
      • 轻度拥塞:吞吐量明显小于正常值
      • 拥塞状态:吞吐量随负载增大而下降
  • 主要问题
    • 如何获取拥塞信息
    • 利用信息进行控制
  • 作用
    • 确保网络承载能力
    • 全局性过程
      • 涉及所有主机、路由器
    • 增加资源不能单独解决
  • 与流量控制的区别
    • 流量控制:点对点通信量控制
    • 目的:抑制发送速率使接收方来得及接收
  • 控制方法
    • 开环控制
      • 特点:静态预防
      • 手段:
        • 确定接收新流量时机
        • 分组丢弃策略
        • 调度策略
      • 特点:不考虑当前网络状态
    • 闭环控制
      • 特点:动态方法
      • 原理:基于反馈环路
      • 过程:
        • 监测网络状态
        • 检测拥塞
        • 传递拥塞信息
        • 调整系统运行

4.2 IPV4

4.2.1 IPv4分组

  • IPv4概述
    • IP定义数据传送的基本单元——IP分组及其确切的数据格式
    • 包含处理规则、错误控制机制
    • 实现非可靠投递和路由选择思想
  • IPv4分组格式
    • 组成
      • 首部
        • 固定部分(20B)
        • 可选字段(长度可变)
      • 数据部分
    • 重要字段
      • 版本(4位)
        • 值为4表示IPv4
      • 首部长度(4位)
        • 以4B为单位
        • 最大60B(15×4B)
        • 常用20B(5×4B)
      • 总长度(16位)
        • 首部+数据的总长度
        • 最大65535B
      • 标识(16位)
        • 数据报唯一标识
        • 分片时复制相同标识
      • 标志(3位)
        • MF(More Fragment)
        • DF(Don’t Fragment)
      • 片偏移(13位)
        • 以8B为单位
      • 生存时间(TTL)(8位)
        • 最大路由器跳数
      • 协议(8位)
        • 上层协议类型
        • 6:TCP,17:UDP
      • 首部检验和(16位)
        • 仅检验首部
      • 源地址(4B)
      • 目的地址(4B)
  • IP数据报分片
    • 分片原因
      • 链路层MTU限制
      • 不同链路MTU可能不同
    • 分片过程
      • 标识字段保持相同
      • 设置MF和DF标志
      • 计算片偏移
    • 重组过程
      • 目的主机重组
      • 使用标识、标志、片偏移字段
    • 分片示例
      • 4000B数据报(20B首部+3980B数据)
      • MTU=1500B
      • 分3片
        • 1480B+1480B+1020B

4.2.2 IPv4地址与NAT

  • IPv4地址
    • IP地址定义
      • 32位全球唯一标识符
      • 由ICANN分配
      • 点分十进制记法
    • IP地址结构
      • 分类IP地址(A、B、C类)
      • 组成:网络号 + 主机号
        • 网络号:互联网范围内唯一
        • 主机号:网络范围内唯一
    • IP地址特点
      • 分等级地址结构
        • 优点:
          • 方便管理
          • 减小路由表存储空间
      • 标志主机和链路接口
        • 多网络主机需多个IP地址
      • 同一LAN网络号相同
      • 所有网络平等
      • 同一局域网网络号相同
    • 特殊IP地址
      • 主机号全0:本网络
      • 主机号全1:直接广播地址
      • 127.x.x.x:环回测试
      • 0.0.0.0:本网络本主机
      • 255.255.255.255:受限广播地址
    • IP地址使用范围
      • A类:网络数2⁷-2
      • B类/C类:早期限制已取消
      • 主机数减2(全0/全1不指派)
  • NAT(网络地址转换)
    • 定义
      • 专用网络地址转公用地址
      • 隐藏内部管理IP
      • 节省IP地址
      • 提高安全性
    • 私有IP地址
      • 范围:
        • 10.0.0.0/8
        • 172.16.0.0/12
        • 192.168.0.0/16
      • 特点:
        • 仅用于LAN
        • 可重复使用
        • 需NAT转换才能上网
    • NAT工作原理
      • 转换表:{本地IP:端口} ↔ {全球IP:端口}
      • 多私有IP映射单一全球IP
      • 过程:
        • ①. 主机发送请求
        • ②. NAT修改源地址/端口
        • ③. 服务器响应NAT地址
        • ④. NAT转换返回主机
    • 服务器应用
      • 公网访问私网服务器
      • 配置特定端口映射

4.2.3 划分子网与路由聚合

  • 划分子网

    • 两级IP地址的缺点
      • IP地址空间利用率低
      • 路由表过大影响性能
      • 灵活性不足
    • 划分子网发展
      • 1985年成为标准协议
      • 增加子网号字段形成三级IP地址
    • 基本思路
      • 单位内部行为,对外表现单一网络
      • 从主机号借位作为子网号
      • 三级IP地址结构:{网络号,子网号,主机号}
      • 路由器转发流程
        • 先按目的网络号转发
        • 本单位路由器再按子网号转发
  • 子网掩码和默认网关

    • 子网掩码作用
      • 标识主机号借位情况
      • 32位二进制串(1对应网络/子网号,0对应主机号)
      • 通过AND运算获取网络地址
    • 默认网关
      • 子网与外部网络的连接点
      • 路由器接口IP地址
      • 转发非本子网数据
    • 使用规范
      • 所有网络必须使用子网掩码
      • 未划分子网时使用默认子网掩码
        • A类:255.0.0.0
        • B类:255.255.0.0
        • C类:255.255.255.0
    • 配置要求
      • 主机必须同时配置IP和子网掩码
      • 同一子网设备需配置相同子网掩码
      • 路由表关键字段:
        • 目的网络地址
        • 子网掩码
        • 下一跳地址
  • 无分类编址CIDR

    • 核心概念
      • 消除传统ABC类地址划分
      • 使用可变长网络前缀
      • 记法:IP地址/前缀位数(如128.14.32.5/20)
    • 地址块特性
      • 最小地址:主机号全0
      • 最大地址:主机号全1
      • 可用地址数:2^N-2(N=主机号位数)
    • 特殊说明
      • 仍可使用”掩码”概念
      • 单位内部可继续划分子网
      • 地址块大小必为2的整数次幂
  • 路由聚合

    • 原理
      • 用大CIDR地址块代替多个小地址块
      • 压缩路由表空间
    • 最长前缀匹配规则
      • 选择网络前缀最长的路由
      • 实现方式:层次式数据结构(如二叉线索)
  • 子网划分应用

    • 定长子网掩码
      • 特点
        • 统一子网掩码
        • 每个子网地址数相同
        • 可能造成浪费
    • 变长子网掩码
      • 特点
        • 不同子网使用不同掩码
        • 按需分配地址数量
        • 减少地址浪费
    • 特殊场景
      • 路由器间链路:使用/30地址块(2个可用地址)

4.2.4 网络层转发分组的过程

  • 分组转发基于目的主机所在网络
    • 原因:网络数远小于主机数,压缩转发表大小
    • 路由器根据目的IP地址网络前缀查找转发表
  • 转发表路由信息格式
    • (目的网络地址,下一跳地址)
  • CIDR编址时的转发规则
    • 最长前缀匹配原则
    • 转发表排序:前缀长度降序排列
  • 特殊路由类型
    • 特定主机路由
      • 格式:a.b.c.d/32
      • 用途:网络管理员控制和测试网络
      • 匹配优先级最高
    • 默认路由
      • 格式:0.0.0.0/0
      • 用途:路由器到互联网的路由
      • 匹配优先级最低
  • 分组转发算法步骤
    1. 提取目的IP地址D
    2. 检查特定主机路由
    3. 逐行检查转发表
    • 子网掩码与D进行AND操作
    • 匹配则转发
    1. 检查默认路由
  • 转发表特点
    • 不指明完整路径
    • 采用逐步查找下一跳的方式

4.2.5 地址解析协议(ARP)

  • 1.IP地址与硬件地址
    • IP地址
      • 网络层及以上使用
      • 分层式结构
      • 放在IP数据报首部
    • 硬件地址(MAC地址)
      • 数据链路层使用
      • 平面式结构
      • 放在MAC帧首部
    • 网络层特性
      • 只能看到IP数据报
      • 路由器只根据目的IP地址转发
      • 局域网链路层只能看到MAC帧
      • IP层屏蔽硬件地址细节
    • 路由器特性
      • 有多个IP地址
      • 有多个硬件地址
  • 2.地址解析协议(ARP)
    • 功能
      • IP地址到MAC地址的映射
      • 动态维护ARP表
    • 工作原理
      • 检查ARP缓存
      • 无缓存时广播ARP请求(目的MAC为FF-FF-FF-FF-FF-FF)
      • 目标主机单播响应
      • 更新ARP缓存
    • 工作层次
      • 网络层(能看到IP地址)
    • 四种典型情况
      • 主机→本网络主机
      • 主机→其他网络主机
      • 路由器→直连网络主机
      • 路由器→非直连网络主机

4.2.6 动态主机配置协议(DHCP)

  • 定义
    • 动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP)
    • 用于动态分配IP地址
    • 提供即插即用联网机制
    • 应用层协议,基于UDP
  • 配置项目
    • IP地址
    • 子网掩码
    • 默认路由器IP地址(默认网关)
    • 域名服务器IP地址
  • 工作原理
    • 客户/服务器模型
    • 主机启动时广播发送发现报文
    • 只有DHCP服务器能回应
    • 服务器查找配置信息
      • 找到:返回配置信息
      • 找不到:从地址池分配IP
  • 报文交换过程
    • DHCP发现
      • 客户广播”DHCP发现”消息
      • 源地址:0.0.0.0
      • 目的地址:255.255.255.255
    • DHCP提供
      • 服务器广播”DHCP提供”消息
      • 包含提供的IP地址
      • 源地址:DHCP服务器地址
      • 目的地址:255.255.255.255
    • DHCP请求
      • 客户广播”DHCP请求”消息
      • 源地址:0.0.0.0
      • 目的地址:255.255.255.255
    • DHCP确认
      • 服务器广播”DHCP确认”消息
      • 分配IP地址给客户
      • 源地址:DHCP服务器地址
      • 目的地址:255.255.255.255
  • 租用期
    • IP地址是临时的
    • 租用期由服务器决定
    • 客户可提出租用期要求
    • 客户可提前终止租用期
      • 发送释放报文
  • 通信方式
    • 采用广播方式的原因
      • 初期不知道服务器IP
      • 中间阶段客户未被分配IP
    • 采用UDP而非TCP的原因
      • TCP需要建立连接
      • 不知道对方IP无法建立连接

4.2.7 网际控制报文协议(ICMP)

  • 功能
    • 报告差错和异常情况
    • 封装在IP数据报中发送
    • 网络层协议
  • ICMP报文类型
    • ICMP差错报告报文
      • 常用类型
        • 终点不可达
        • 源点抑制
        • 时间超过
        • 参数问题
        • 改变路由(重定向)
      • 不发送ICMP差错报告报文的情况
        • 对ICMP差错报告报文
        • 对第一个分片的数据报片的所有后续数据报片
        • 对具有多播地址的数据报
        • 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报
    • ICMP询问报文
      • 常用类型
        • 回送请求和回答报文
        • 时间戳请求和回答报文
  • ICMP应用
    • 分组网间探测PING
      • 使用ICMP回送请求和回答报文
    • Traceroute/Tracert
      • 使用ICMP时间超过报文

4.3 IPV6

4.3.1 IPv6的特点

  • IPv4的问题
    • 地址耗尽问题
      • 解决措施
        • 采用无类别编址CIDR
        • 采用网络地址转换(NAT)
        • 采用IPv6
  • IPv6的主要特点
    • 更大的地址空间
      • 128位地址
      • 地址空间是IPv4的2^96倍
    • 扩展的地址层次结构
    • 灵活的首部格式
      • 可选的扩展首部
      • 提高路由器处理效率
    • 改进的选项
      • 固定首部长度
      • 选项放在有效载荷中
    • 允许协议继续扩充
    • 支持即插即用(自动配置)
      • 不需要使用DHCP
    • 支持资源的预分配
      • 支持实时音/视频应用
    • 分片机制
      • 只有源主机才能分片
      • 端到端分片
    • 固定首部长度
      • 40B固定长度
    • 增大了安全性
      • 身份鉴别和保密功能
  • IPv6兼容性
    • 与IPv4不兼容
    • 与其他互联网协议兼容
      • TCP
      • UDP
      • ICMP
      • IGMP
      • DNS

4.3.2 IPv6数据报的基本首部

  • IPv6 数据报组成
    • 基本首部
    • 有效载荷
      • 扩展首部
      • 数据部分
  • IPv6与IPv4首部字段对比
    • 取消的字段
      • 首部长度字段
      • 服务类型字段
      • 总长度字段
      • 标识、标志和片偏移字段
      • TTL字段
      • 协议字段
      • 检验和字段
      • 选项字段
    • 更改的字段
      • 跳数限制字段(原TTL字段)
      • 下一个首部字段(原协议字段)
  • IPv6基本首部特点
    • 字段数减少到8个
    • 长度增大到40B
  • IPv6基本首部字段
    • 版本(4位)
    • 通信量类(8位)
    • 流标号(20位)
    • 有效载荷长度(16位)
    • 下一个首部(8位)
    • 跳数限制(8位)
    • 源地址(128位)
    • 目的地址(128位)

4.3.3 IPv6地址

  • 基本类型
    • 单播
      • 点对点通信
    • 多播
      • 一点对多点通信
      • 数据报发送到一组计算机中的每一台
    • 任播
      • IPv6新增类型
      • 终点是一组计算机
      • 数据报只交付其中一台(通常距离最近)
  • 表示法
    • 冒号十六进制记法
      • 每4位用一个十六进制数表示
      • 冒号分隔每16位
      • 示例:4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170
    • 缩写表示法
      • 16位域开头有0时可缩写
      • 域中至少保留一个数字
      • 示例:4BF5:0:0:0:BA5F:39A:A:2176
    • 双冒号缩写
      • 用于相继的0值域
      • 一个地址中仅能出现一次
      • 示例:4BF5::BA5F:39A:A:2176
  • 地址分类
    • 未指明地址
      • 不能用作目的地址
      • 只能用于未配置IPv6地址的主机作为源地址
    • 环回地址
      • 作用与IPv4环回地址相同
      • IPv6仅此一个
    • 多播地址
      • 作用与IPv4相同
      • 占IPv6地址空间的1/256
    • 本地链路单播地址
      • 类似于IPv4的私有IP地址
    • 全球单播地址
      • 三级结构
        • 全球路由选择前缀(48位)
          • 相当于IPv4的网络号
        • 子网标识符(16位)
          • 用于机构构建子网
        • 接口标识符(64位)
          • 相当于IPv4的主机号
  • 接口标识符特点
    • 64位长度
    • 可直接编码硬件地址
    • 无需使用ARP进行地址解析

4.3.4 从IPv4 向IPv6过渡

  • 过渡特点
    • 逐步演进
    • 新安装的IPv6系统必须向后兼容
    • IPv6系统要求
      • 能接收和转发IPv4分组
      • 能为IPv4分组选择路由
  • 过渡策略(2023)
    • 双协议栈
      • 定义
        • 一台设备同时装有IPv4和IPv6协议栈
        • 分别配置IPv4和IPv6地址
      • 功能
        • 能与IPv4网络通信
        • 能与IPv6网络通信
      • 通信机制
        • 与IPv6主机通信:使用IPv6地址
        • 与IPv4主机通信:使用IPv4地址
      • DNS解析过程
        • 返回IPv4地址:使用IPv4地址
        • 返回IPv6地址:使用IPv6地址
    • 隧道技术
      • 实现方式
        • IPv6数据报进入IPv4网络时
          • 将整个IPv6数据报封装成IPv4数据报的数据部分
        • IPv4数据报离开IPv4网络时
          • 将数据部分交给主机的IPv6协议
      • 效果
        • IPv6数据报在IPv4网络中传输

4.4 路由算法与路由协议

4.4.1 路由算法

  • 定义
    • 路由选择协议的核心是路由算法
    • 目的是找到从源路由器到目的路由器的”最佳”路径
    • “最佳”通常指具有最低费用的路径
  • 分类
    • 静态路由与动态路由
      • 静态路由算法
        • 由网络管理员手工配置
        • 特点:简单、开销小
        • 缺点:不能及时适应网络状态变化
        • 适用场景:小型简单网络
      • 动态路由算法
        • 根据网络流量和拓扑变化动态调整
        • 特点:实现复杂、开销大
        • 优点:能适应网络状态变化
        • 适用场景:复杂大型网络
        • 子分类
          • 距离-向量路由算法
          • 链路状态路由算法
  • 距离-向量路由算法
    • 基础:Bellman-Ford算法
    • 基本思想
      • 每个节点维护:
        • 到直接邻居的链路费用
        • 自身距离向量(到其他节点的费用)
        • 邻居的距离向量
      • 定期交换距离向量
      • 使用公式更新:d(y)=min{c(x,v)+d(v)}
    • 实现过程
      • 初始化阶段
      • 第一次交换更新
      • 后续交换直至收敛
    • 特点
      • 更新报文大小与网络节点数量成正比
      • 典型实现:RIP协议(使用跳数作为度量)
    • 示例
      • 三节点网络示例
      • 初始状态
      • 第一次更新后
      • 第二次更新后收敛
  • 链路状态路由算法
    • 定义
      • 每个节点知道全网拓扑
      • 执行任务:
        • 测试相邻节点状态
        • 定期传播链路状态
    • 工作原理
      • 使用Dijkstra算法计算最短路径
      • 链路状态变化时重新计算
    • 优点
      • 适用于大型网络
      • 链路状态报文大小与网络规模无关
      • 易于故障排查
      • 保证一步汇聚
    • 典型实现:OSPF协议
  • 两种算法比较
    • 距离-向量算法
      • 仅与直接邻居通信
      • 发送整个路由表
      • 报文大小与节点数量相关
    • 链路状态算法
      • 与所有节点通信(广播)
      • 仅发送直接链路信息
      • 报文大小固定
    • 规模可伸展性:链路状态算法更优

4.4.2 分层次的路由选择协议

  • 互联网采用自适应的、分布式路由选择协议
  • 划分为许多较小的自治系统 (Autonomous System, AS)
    • 定义:在单一技术管理下的一组路由器
    • 特点:
      • 使用一种AS内部的路由选择协议
      • 共同的度量
      • 对外表现单一和一致的路由选择策略
  • 路由选择协议分类:
    • ①. 内部网关协议 (IGP)
      • 定义:在一个自治系统内部使用的路由选择协议
      • 特点:
        • 与其他自治系统选用的协议无关
        • 常用协议:
          • RIP
          • OSPF
    • ②. 外部网关协议 (EGP)
      • 定义:在不同自治系统间传递路由选择信息的协议
      • 应用场景:
        • 源主机和目的主机处在不同自治系统
        • 数据报传到自治系统边界时使用
      • 常用协议:
        • BGP-4
  • 路由选择类型:
    • 域间路由选择:自治系统之间的路由选择
    • 域内路由选择:自治系统内部的路由选择
  • 两个自治系统互连示意图
    • 自治系统A
      • 路由器R1
        • 运行:
          • 内部网关协议 (如RIP)
          • 外部网关协议 (如BGP-4)
    • 自治系统B
      • 路由器R2
        • 运行:
          • 内部网关协议 (如OSPF)
          • 外部网关协议 (如BGP-4)

4.4.3 路由信息协议(RIP)

  • RIP的规定

    • 每个路由器维护距离向量
    • 使用跳数衡量距离
      • 直接连接网络距离=1
      • 每经过一个路由器距离+1
    • 好的路由=跳数少
    • 最大跳数=15(16表示不可达)
      • 防止环路
    • 路由表项格式
      • <目的网络N, 距离d, 下一跳路由器地址X>
  • RIP的特点

    • 交换信息对象
      • 仅与直接相邻路由器交换
    • 交换内容
      • 整个路由表
    • 交换时机
      • 固定时间间隔(30秒)
      • 拓扑变化时及时通告
    • 收敛过程
      • 初始仅知直接连接网络
      • 通过周期性交换最终收敛
    • RIP协议特性
      • 应用层协议
      • 使用UDP传输(端口520)
      • 选择最少跳数路径
  • RIP的距离向量算法

    • 处理相邻路由器RIP报文步骤
      • 修改报文
        • 下一跳地址改为X
        • 所有距离字段+1
      • 更新路由表
        • 新目的网络:添加
        • 已有目的网络且下一跳相同:更新
        • 已有目的网络但下一跳不同:比较距离
        • 其他情况:不处理
      • 超时处理
        • 180秒未收到更新则标记为不可达(距离=16)
    • 路由表更新示例
      • R6和R4互为相邻路由器
      • R6收到R4路由表后的更新过程
  • RIP的优缺点

    • 优点
      • 实现简单
      • 开销小
      • 收敛较快
      • 好消息传播快
    • 缺点
      • 网络规模受限(最大15跳)
      • 交换完整路由表导致开销大
      • 坏消息传播慢(慢收敛)

4.4.4 开放最短路径优先(OSPF )协议

  • 基本特点
    • OSPF和RIP的比较(2024)
      • OSPF使用洪泛法向本自治系统中所有路由器发送信息
      • RIP仅向自己相邻的几个路由器发送信息
      • OSPF发送的信息是与本路由器相邻的所有路由器的链路状态
      • RIP发送的信息是本路由器所知道的全部信息
      • OSPF只有当链路状态发生变化时才发送信息
      • RIP不管网络拓扑是否变化都要定期交换信息
    • OSPF是网络层协议,直接用IP数据报传送(协议字段为89)
    • RIP是应用层协议,使用UDP传输
    • 其他特点
      • 允许对每条路由设置不同代价
      • 支持多路径负载均衡
      • 分组具有鉴别功能
      • 支持可变长度子网划分和CIDR
      • 链路状态带32位序号
  • 基本工作原理
    • 建立链路状态数据库(全网拓扑结构图)
    • 使用Dijkstra算法计算最优路径
    • 划分区域
      • 减少洪泛法交换范围
      • 区域边界路由器
      • 主干区域
      • 自治系统边界路由器
  • 分组类型
    • 问候分组(发现和维持邻站可达性)
    • 数据库描述分组(链路状态项目摘要)
    • 链路状态请求分组(请求详细信息)
    • 链路状态更新分组(全网更新链路状态)
    • 链路状态确认分组(确认更新)
  • 操作流程
    • 每10秒交换问候分组
    • 40秒未收到则认为不可达
    • 初始工作流程
      • 通过问候分组发现相邻路由器
      • 交换数据库描述分组
      • 请求缺少的链路状态信息
      • 建立同步链路数据库
    • 链路状态变化时
      • 使用洪泛法更新
      • 其他路由器发送确认
    • 定期刷新(如30分钟)

4.4.5 边界网关协议(BGP)

  • BGP的基本特点

    • 边界网关协议(Border Gateway Protocol, BGP)
      • 不同自治系统(AS)的路由器之间交换路由信息的协议
      • 属于外部网关协议
      • 常用于互联网网关之间
    • 与其他协议对比
      • RIP和OSPF只能在AS内工作
      • 没有BGP时,全球AS会成为孤岛
    • 使用环境特点
      • 互联网规模太大导致AS间路由选择困难
      • AS间路由需考虑政治、安全、经济等因素
    • 协议特性
      • 力求找到可达且不兜圈子的路由(非最佳路由)
      • 采用路径向量路由选择协议
      • 是应用层协议,基于TCP
  • BGP会话

    • 两种BGP会话定义
      • 外部BGP(eBGP)会话
        • 跨越两个AS的BGP会话
      • 内部BGP(iBGP)会话
        • 同一AS内两个路由器之间的BGP会话
    • 连接方式
      • 通过端口号179的半永久TCP连接
      • 交换信息后仍保持连接状态
  • BGP路由

    • 路由格式
      • <CIDR前缀, BGP属性>
    • 重要BGP属性
      • AS-PATH(自治系统路径)
        • 记录路由经过的自治系统
        • 使用ASN(自治系统号)标识
      • NEXT-HOP(下一跳)
        • 通告的BGP路由起点
    • 路由处理过程
      • 路由器收到BGP路由后需转换起点
      • 利用内部网关协议找到最佳路由中的下一跳
      • 在转发表中增加相应表项
  • BGP路由选择

    • 选择原则(按优先级顺序)
      ①. 本地偏好值最高的路由
      ②. AS跳数最少(AS-PATH最短)的路由
      ③. 热土豆路由选择算法
      • 选择最靠近NEXT-HOP路由器的路由
      • 让分组最快离开本AS
        ④. BGP标识符数值最小的路由
  • BGP的四种报文

    • Open(打开)报文
      • 建立BGP对等方关系
      • 初始化通信
    • Update(更新)报文
      • 通知路由信息
      • 列出要撤销的路由
      • 每次只能增加一条新路由
    • Keepalive(保活)报文
      • 周期性确认邻站连通性
      • 19字节大小
    • Notification(通知)报文
      • 发送检测到的差错
  • 三种路由协议比较

    • RIP
      • 类型: 内部
      • 路由算法: 距离向量
      • 传递协议: UDP
      • 路径选择: 跳数最少
      • 交换节点: 相邻路由器
      • 交换内容: 整个路由表
    • OSPF
      • 类型: 内部
      • 路由算法: 链路状态
      • 传递协议: IP
      • 路径选择: 代价最低
      • 交换节点: 网络中所有路由器
      • 交换内容: 相邻路由器链路状态
    • BGP
      • 类型: 外部
      • 路由算法: 路径向量
      • 传递协议: TCP
      • 路径选择: 较好(非最佳)
      • 交换节点: 相邻路由器
      • 交换内容:
        • 首次: 整个路由表
        • 非首次: 有变化的部分

4.5 IP多播

4.5.1 多播的概念

  • 定义
    • 让源主机一次发送的单个分组可以抵达用一个组地址标识的若干目的主机
    • 一对多的通信
    • 在互联网上进行的多播称为IP多播
  • 优势
    • 与单播相比
      • 大大节约网络资源
      • 示例:视频服务器向90台主机传送同样的视频节目
        • 单播:需要发送90次
        • 多播:仅发送一份数据,只需发送一次
    • 技术特点
      • 传送路径出现分岔时才将分组复制后继续转发
      • 大大减轻发送者负担和网络负载
  • 实现要求
    • 需要路由器支持
    • 能够运行多播协议的路由器称为多播路由器

4.5.2 IP多播地址

  • 多播数据报特点

    • 源地址:源主机的IP地址
    • 目的地址:IP多播地址(D类地址)
  • D类地址范围

    • 前四位:1110
    • 范围:224.0.0.0~239.255.255.255
  • 多播组

    • 每个D类IP地址标志一个多播组
    • 主机可随时加入或离开多播组
  • 多播数据报与普通IP数据报的区别

    • 目的地址:使用D类IP地址
    • 协议字段值:2(表示使用IGMP)

4.5.3 在局域网上进行硬件多播

  • 局域网支持硬件多播
    • 实现方式:将IP多播地址映射成多播MAC地址
      • 将IP多播数据报封装在MAC帧中
      • MAC帧目的地址设置为映射后的多播MAC地址
  • IANA分配的以太网多播地址范围
    • 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF
    • 可用位数
      • 总长度:48位
      • 可用部分:后23位
  • D类IP地址与以太网地址映射关系
    • D类IP地址可用位数:28位
    • 映射特点
      • 前5位无法映射到以太网地址
      • 结果:多对一映射关系
  • 接收端处理
    • 需要IP层软件过滤
      • 原因:多对一映射导致地址冲突
      • 处理方式:丢弃非目标主机的数据报

4.5.4 IGMP 与多播路由协议

  • IGMP协议
    • 作用: 让多播路由器获知局域网内主机加入/退出多播组
    • 特点
      • 不管理互联网范围内的多播组成员
      • 不知道组成员数量和分布
    • 报文封装: 封装在IP数据报中传送
    • 工作阶段
      • 第一阶段: 主机加入时发送IGMP报文
      • 第二阶段: 周期性探询组成员状态
  • 多播路由协议
    • 目的: 最小代价传送多播数据报给所有组成员
    • 多播转发树
      • 以源主机为根节点
      • 每个分组在每条链路上只传送一次
      • 不同多播组对应不同转发树
      • 同一多播组对不同源点有不同转发树

4.6 移动IP

4.6.1 移动IP 的概念

  • 移动IP技术
    • 定义
      • 移动站以固定的IP地址实现跨越不同网络的漫游功能
    • 目标
      • 把分组自动地投递给移动站
    • 移动站定义
      • 把其连接点从一个网络或子网改变到另一个网络或子网的主机
  • 功能实体
    • 移动节点
      • 具有永久IP地址的移动主机
    • 本地代理
      • 通常就是连接在归属网络上的路由器
    • 外地代理
      • 通常就是连接在被访网络上的路由器
  • 注意事项
    • 通过DHCP自动获取新IP地址不是移动IP
    • 移动IP需要保持TCP连接不中断
    • 移动IP要求IP地址在移动中保持不变

4.6.2 移 动IP 通信过程

  • 移动IP原理类比
    • 本科毕业通信例子
      • 留下家庭地址(永久地址)
      • 家长转交信件
  • 基本概念
    • 移动站永久地址(归属地址)
    • 归属网络
      • 例:移动站A永久地址131.8.6.7/16
      • 归属网络131.8.0.0/16
    • 归属代理
      • 连接归属网络的路由器
      • 应用层功能
    • 被访网络
      • 例:15.0.0.0/8
    • 外地代理
      • 连接被访网络的路由器
      • 功能
        • 创建转交地址
          • 例:15.5.6.7/8
        • 通知归属代理转交地址
  • 通信流程
    • 1)移动站在归属网络
      • 传统TCP/IP通信
    • 2)漫游到被访网络
      • 外地代理登记获取转交地址
      • 外地代理向归属代理登记
    • 3)归属代理操作
      • 构建通向转交地址隧道
      • 封装并转发IP分组
    • 4)外地代理操作
      • 拆封恢复原始IP分组
      • 发送给移动站
    • 5)移动站发送IP分组
      • 使用永久地址作为源地址
      • 直接通过外地代理
    • 6)移动到新被访网络
      • 新外地代理登记
      • 更新归属代理转交地址
    • 7)返回归属网络
      • 注销转交地址
  • 支持移动性的新功能
    • 移动站到外地代理登记协议
    • 外地代理到归属代理登记协议
    • 归属代理数据报封装协议
    • 外地代理拆封协议

4.7 网络层设备

4.7.1 冲突域和广播域

  • ①. 冲突域
    • 定义
      • 连接到同一物理介质上的所有节点的集合
      • 这些节点之间存在介质争用的现象
    • OSI层次
      • 第1层概念
    • 设备影响
      • 不能划分冲突域的设备
        • 集线器
        • 中继器等第1层设备
      • 可以划分冲突域的设备
        • 第2层设备
          • 网桥
          • 交换机
        • 第3层设备
          • 路由器
  • ②. 广播域
    • 定义
      • 接收同样广播消息的节点集合
    • OSI层次
      • 第2层概念
    • 设备影响
      • 属于同一广播域的设备
        • 第1层设备
          • 集线器等
        • 第2层设备
          • 交换机等
      • 可以划分广播域的设备
        • 路由器(第3层设备)
    • 局域网(LAN)定义
      • 特指使用路由器分割的网络
      • 也就是广播域

4.7.2 路由器的组成和功能

  • 路由器定义
    • 具有多个输入/输出端口的专用计算机
    • 任务:连接不同网络并完成分组转发
  • 网络连接特性
    • 连接异构网络
    • 多个逻辑网络互连时必须使用
    • 隔离广播域
  • 数据转发原理
    • 同网络通信:直接交付
    • 跨网络通信:间接交付(通过路由器)
    • 连接能力
      • 不同LAN
      • 不同VLAN
      • 不同WAN
      • LAN和WAN互连
  • 结构组成
    • 路由选择部分(控制部分)
      • 核心构件:路由选择处理机
      • 功能
        • 构造路由表
        • 更新维护路由表
    • 分组转发部分
      • 交换结构(交换组织)
        • 根据转发表处理分组
      • 输入端口组
      • 输出端口组
  • 层次实现
    • 实现网络模型下三层
      • 物理层
      • 数据链路层
      • 网络层
  • 端口处理机制
    • 输入端口处理流程
      • 物理层:接收比特流
      • 数据链路层:提取帧
      • 网络层:处理分组
    • 输出端口处理流程(反向操作)
    • 缓冲队列
      • 暂存分组
      • 进行差错检测
      • 可能发生缓冲区溢出

4.7.3 路由表与分组转发

  • 路由表
    • 根据路由选择算法得出
    • 主要用途是路由选择
    • 标准路由表项目
      • 目的网络IP地址
      • 子网掩码
      • 下一跳IP地址
      • 接口
  • 转发表
    • 从路由表得出
    • 表项与路由表项对应关系
      • 图4.27 转发表的示例
    • 格式与路由表不同
      • 结构优化查找过程
    • 内容
      • 分组发往的目的网络
      • 分组的下一跳(MAC地址)
      • 可设置默认路由
        • 匹配优先级最低
    • 实现方式
      • 软件实现
      • 特殊硬件实现
  • 转发与路由选择的区别
    • 转发
      • 单个路由器行为
      • 根据转发表转发IP数据报
    • 路由选择
      • 多个路由器协同
      • 使用复杂路由算法
      • 根据网络拓扑变化动态调整
      • 构造整个路由表
  • 关键区别
    • 路由表≠转发表
    • 分组实际转发
      • 直接查找转发表
      • 不查找路由表