Chapter 04

网络层

实现不同网络之间的互连通信,核心任务:路由选择与分组转发

4.1网络层功能

网络层核心功能 HOT

  • 实现不同网络之间的互连通信(跨网段通信)
  • 路由选择(全局视角)和分组转发(本地操作)
  • 拥塞控制:防止过多分组注入网络
  • 传输单位:分组(数据报)

异构网络互连

  • 路由器连接不同类型的网络
  • 虚电路服务 vs 数据报服务
对比项 虚电路服务 数据报服务
连接建立必须建立连接无需建立连接
目的地址仅建立时使用每个分组携带
路由选择同一条虚电路每个分组独立
可靠性网络保证有序不保证有序

SDN基本概念 KEY

  • 软件定义网络(Software-Defined Networking),核心思想:数据平面与控制平面分离
  • SDN控制器集中管理路由决策,集中式控制取代传统分布式控制
  • 三大层次:
    • 数据平面:网络设备(交换机/路由器)负责高速转发数据流
    • 控制平面:SDN控制器,逻辑集中,下发流表项指导转发
    • 应用平面:网络应用(路由、防火墙、负载均衡)通过北向接口编程
  • 南向接口(控制器 → 数据平面):
    • 控制器与数据平面设备之间的通信接口
    • OpenFlow协议是SDN最典型、最标准的南向接口协议
    • OpenFlow通过流表(Flow Table)下发转发规则,交换机按流表项匹配转发
  • 北向接口(控制器 → 应用层):
    • 控制器向上层网络应用提供的可编程接口(通常为REST API)
    • 允许开发者通过编程方式调用控制器能力,实现自定义网络服务
  • SDN控制器架构:
    • 核心层:维护网络状态、拓扑信息、主机信息
    • 功能模块:路由计算、转发策略、安全策略等
    • 接口层:北向接口(对应用)+ 南向接口(对设备)
    • 典型控制器:OpenDaylight、Floodlight、POX、RYU等

网络层拥塞控制

  • 拥塞:注入网络的分组过多,超出网络处理能力,导致时延增大、吞吐量下降
  • 与流量控制的区别:
    • 流量控制:点到点,防止发送方过快淹没接收方
    • 拥塞控制:全局,防止过多分组注入网络导致路由器过载
  • 开环控制(预防):
    • 准入控制:新流量拥塞时拒绝接入
    • 流量整形:平滑突发流量(漏桶、令牌桶)
  • 闭环控制(反馈):
    • 监测:路由器监测队列长度和利用率
    • 报告:源点收到拥塞通知后减慢发送速率
    • 调整:根据反馈调整发送速率
  • 方法:
    • 慢启动和拥塞避免(TCP)
    • 随机早期检测(RED):队列达阈值时随机丢弃分组
    • 显式拥塞通知(ECN):标记拥塞而非丢弃

4.2IP协议

IPv4分组 HOT

  • 首部关键字段:版本、首部长度、总长度、TTL、协议、源IP、目的IP
  • TTL:每经过一个路由器减1,减到0则丢弃(防止无限循环)
  • 协议字段:TCP=6,UDP=17,ICMP=1

IPv4地址与NAT HOT

  • IP地址:32位,点分十进制
  • A类:1.0.0.0~126.255.255.255,网络位8位
  • B类:128.0.0.0~191.255.255.255,网络位16位
  • C类:192.0.0.0~223.255.255.255,网络位24位
  • 特殊地址:127.0.0.1(环回)、0.0.0.0(本机)、255.255.255.255(广播)
  • NAT:将私有地址转换为公有地址,缓解IPv4地址不足
  • 私有地址范围(RFC 1918,不在公网路由):
    • A类私有:10.0.0.0/8(10.0.0.0 ~ 10.255.255.255)
    • B类私有:172.16.0.0/12(172.16.0.0 ~ 172.31.255.255)
    • C类私有:192.168.0.0/16(192.168.0.0 ~ 192.168.255.255)
  • NAT转换方式:静态NAT(一对一)、动态NAT(地址池)、NAPT/PAT(端口多路复用,最常用)
类别 范围 网络位 主机位 最大主机数
A类1~1268位24位2^24-2
B类128~19116位16位2^16-2
C类192~22324位8位2^8-2

子网划分与CIDR HOT

  • 子网掩码:区分网络位和主机位
  • 网络地址 = IP地址 AND 子网掩码
  • CIDR:无类域间路由,取消传统分类,使用/xx表示前缀长度
  • 路由聚合:将多个子网合并为一条路由
网络地址 = IP AND 子网掩码   |   广播地址 = 网络地址 OR (~子网掩码)

子网划分计算器

请输入IP地址和子网掩码

ARP / DHCP / ICMP KEY

  • ARP:IP地址 → MAC地址,同一子网内解析
  • ARP跨子网解析过程:
    • 同子网通信:主机直接发送ARP广播请求,目标主机单播应答其MAC地址
    • 跨子网通信:
      1. 源主机发现目的IP不在本子网,需通过网关路由器转发
      2. 源主机先发送ARP请求,获取网关路由器的MAC地址
      3. 源主机将数据报封装为目的MAC=网关MAC、目的IP=最终目的IP发送给网关
      4. 网关路由器收到后,再通过ARP解析下一跳或目的主机的MAC,逐跳转发
  • DHCP:动态获取IP地址,四步:Discover → Offer → Request → ACK
  • ICMP:互联网控制报文协议,ping命令基于ICMP回送请求/应答
  • ICMP类型:终点不可达、时间超过、参数问题、改变路由(重定向)
  • ICMP典型应用:
    • Ping:基于ICMP回送请求/应答报文,测试目的主机可达性
    • Traceroute(路由追踪):基于ICMP时间超过报文实现
      • 原理:依次发送TTL=1,2,3...的数据报
      • 每个路由器收到TTL减为0时,返回"ICMP时间超过"报文
      • 源主机据此记录沿途各跳路由器的IP,最终到达目的主机时返回"ICMP回送应答"

4.3IPv6

IPv6主要特点 HOT

  • 128位地址空间
  • 简化首部格式,固定40字节
  • 支持即插即用:IPv6支持无状态地址自动配置(SLAAC),也可使用有状态DHCPv6
  • 取消了首部校验和
  • IPv4到IPv6过渡:双栈策略、隧道技术
对比项 IPv4 IPv6
地址长度32位128位
首部长度可变(20~60B)固定40B
校验和取消
即插即用需DHCP支持(SLAAC / DHCPv6)

IPv6地址表示与分类 KEY

  • 地址表示法:冒号分隔的8组4位十六进制
    • 完整格式:2001:0db8:85a3:0000:0000:8a2e:0370:7334
    • 每组前导0可省略:2001:db8:85a3:0:0:8a2e:370:7334
  • 零压缩法(双冒号法):连续的零可用::缩写(仅能用一次)
    • 例:2001:db8:0:0:0:0:0:12001:db8::1
    • 例:FF02:0:0:0:0:0:0:1FF02::1(所有节点组播)
    • 注意:一个地址中::只能出现一次,否则会产生歧义
  • 特殊地址:
    • ::1(即0:0:0:0:0:0:0:1):环回地址,相当于IPv4的127.0.0.1
    • ::(全0):未指定地址,不能作为目的地址
    • FE80::/10:链路本地地址(仅本链路有效)
    • FC00::/7:唯一本地地址(私有地址)
  • IPv6地址分类:
    • 单播(Unicast):一对一通信,标识一个接口(全球单播、链路本地、唯一本地等)
    • 任播(Anycast):一对最近,发往一组接口中"最近"的一个(IPv6新增)
    • 组播(Multicast):一对多,发往一组所有接口,地址前缀FF00::/8
    • 注意:IPv6取消了广播,原广播功能由组播实现

4.4路由协议

路由算法 HOT

  • 静态路由:手动配置,不随网络变化
  • 动态路由:自动学习,适应网络变化
  • 距离-向量算法:RIP,定期交换路由表
  • 链路状态算法:OSPF,泛洪链路状态信息
  • 层次路由:将网络分为自治系统(AS)

RIP协议

  • 基于距离向量算法,跳数为度量
  • 最大跳数15,16为不可达
  • 每30秒交换一次路由表
  • 缺点:慢收敛、可能路由环路

OSPF协议

  • 基于链路状态算法(Dijkstra)
  • 以带宽为度量值
  • 收敛速度快,适合大型网络
  • 支持区域划分

BGP协议

  • 外部网关协议,AS间路由
  • 基于路径向量,非距离向量
  • 交换可达性信息,选择较好路由

OSPF最短路径算法演示 (Dijkstra)

步骤 0 / 6
点击播放按钮开始动画演示

4.5IP多播

多播的概念

  • 单播:一对一通信,每对源目的独立传输
  • 多播(组播):一对多通信,同一数据发送给一组接收者
    • 同一分组只在链路分叉处复制,大大节省带宽
    • 适用于视频会议、在线直播、软件分发等场景
  • 广播:一对所有,只在局域网内有效,路由器不转发广播包
  • 多播地址:D类IP地址(224.0.0.0 ~ 239.255.255.255)

IP多播地址

  • D类地址范围:224.0.0.0 ~ 239.255.255.255
    • 224.0.0.0 ~ 224.0.0.255:预留组地址(永久组),如224.0.0.1所有主机
    • 224.0.1.0 ~ 238.255.255.255:全局多播地址
    • 239.0.0.0 ~ 239.255.255.255:本地管理地址,用于私网
  • 以太网多播:MAC地址最高字节最低位为1表示多播
    • IP多播到MAC多播的映射:D类地址低23位映射到MAC地址低23位
    • 有2^5=32个不同的多播IP映射到同一MAC地址(有5位重叠)
  • 注意:多播地址只能作为目的地址,不能作为源地址

IGMP与多播路由协议 KEY

  • IGMP(互联网组管理协议):
    • 工作在主机与本地路由器之间
    • 功能:主机加入/离开多播组,路由器维护组成员关系
    • 版本:IGMPv1(查询+报告)、IGMPv2(增加离开组消息)、IGMPv3
    • 查询器选举:网段中IP最小的路由器作为查询器
  • 多播路由协议:
    • 密集模式(DVMRP):反向路径广播+剪枝,适合成员密集
    • 稀疏模式(PIM-SM):基于汇集点RP,按需建立分发树,适合成员稀疏
    • 核心:构建多播分发树,以最少的链路复制将数据送达所有组成员

4.6移动IP

移动IP的概念

  • 问题:主机移动到新的网络后,IP地址改变,TCP连接会中断
  • 目标:移动节点在改变接入点时,无需改变IP地址,保持通信不中断
  • 核心思想:使用固定的"归属地址"标识移动节点,通过转交地址实际通信

移动IP通信过程

  • 实体:
    • 移动节点(MN):从一个网络移动到另一个网络的主机
    • 归属代理(HA):移动节点归属网络中的路由器
    • 外地代理(FA):移动节点当前所在网络的路由器
    • 通信对端(CN):与移动节点通信的节点
  • 关键技术:
    • 代理发现:移动节点通过ICMP路由器发现消息找到代理
    • 注册:移动节点向归属代理注册当前的转交地址
    • 隧道技术:归属代理将发给移动节点的数据报,封装后转发到转交地址
    • 解封装:外地代理收到封装的数据报,解封装后交给移动节点
  • 通信流程:
    1. CN→HA:数据报发给移动节点的归属地址
    2. HA→FA:归属代理通过隧道封装转发到转交地址
    3. FA→MN:外地代理解封装,交付移动节点
    4. MN→CN:移动节点直接向通信对端发送(路由优化)

4.7网络层设备

冲突域和广播域

  • 冲突域:同一时间只能有一台设备发送数据,否则产生冲突的区域
    • 集线器所有端口在一个冲突域
    • 交换机每个端口是一个独立冲突域(隔离冲突域)
    • 路由器每个接口是一个独立冲突域
  • 广播域:广播帧所能到达的范围
    • 集线器不隔离广播域
    • 交换机不隔离广播域(所有端口同属一个广播域)
    • 路由器隔离广播域(每个接口一个广播域)
    • VLAN可以在交换机上划分多个广播域
  • 总结:集线器是冲突域+广播域都不隔离;交换机隔离冲突域不隔离广播域;路由器两者都隔离

路由器的组成和功能 KEY

  • 功能:
    • 路由选择:运行路由协议,构建和维护路由表
    • 分组转发:根据路由表转发IP数据报
    • 异构网络互连:连接不同类型的网络
    • 拥塞控制、网络管理
  • 组成:
    • 路由选择部分(控制平面):
      • 路由选择处理机
      • 运行路由协议(RIP/OSPF/BGP等)
      • 构造和更新路由表
    • 分组转发部分(数据平面):
      • 交换结构:将输入端口的分组转移到输出端口
      • 输入端口:物理层+数据链路层+查找转发表
      • 输出端口:排队+链路层+物理层
  • 路由表 vs 转发表:
    • 路由表:由路由选择算法生成,包含到各网络的完整路由信息
    • 转发表:由路由表推导而来,结构优化用于快速查找转发

路由表与分组转发

  • 路由表内容:目的网络地址、子网掩码、下一跳地址、出接口、度量值
  • 最长前缀匹配:当有多条路由匹配时,选择前缀最长(子网掩码最具体)的路由
  • 默认路由:0.0.0.0/0,当没有更具体的路由匹配时使用
  • 转发过程:
    1. 路由器收到IP数据报
    2. 提取目的IP地址
    3. 逐行与子网掩码做AND运算,与目的网络比较
    4. 匹配成功则转发到下一跳或直连网络
    5. 都不匹配则走默认路由,没有默认路由则丢弃并发送ICMP不可达
  • 路由聚合(CIDR):将多个连续子网合并为一条路由,减小路由表大小
设备 工作层次 隔离冲突域 隔离广播域 主要功能
集线器物理层信号放大、多端口连接
网桥/交换机数据链路层按MAC地址转发帧
路由器网络层按IP地址转发分组、路由选择