4.1 IPv4 地址与子网划分

IPv4 地址
32 位全球唯一逻辑地址,由网络号 + 主机号组成,用点分十进制表示。分为 A、B、C、D、E 五类。
类别前缀网络号范围默认掩码主机数
A01~126255.0.0.0 (/8)2²⁴−2
B10128~191255.255.0.0 (/16)2¹⁶−2
C110192~223255.255.255.0 (/24)2⁸−2
D1110224~239组播地址
E1111240~255保留
特殊地址:主机号全 0 = 网络地址;主机号全 1 = 广播地址;127.x.x.x = 环回;0.0.0.0 = 本主机;255.255.255.255 = 受限广播。每个网络主机数 = 2^主机位 − 2。

子网划分

从主机号中借用若干位作为子网号,将一个网络划分为多个子网。借用 n 位可划分 2ⁿ 个子网。

子网掩码
32 位,网络号和子网号全 1、主机号全 0。IP 与子网掩码按位与即得子网网络地址。

子网划分计算动画

速度 1x
步骤 0/0
计算步骤:①确定子网数 N,求 n 使 2ⁿ ≥ N;②从主机号借 n 位;③新掩码 = 原掩码 + n 位;④每个子网块大小 = 2^(主机位);⑤各子网网络地址依次累加,主机范围 = 网络地址+1 ~ 广播地址−1。

IP 数据报分片过程动画

MTU=800字节,原始数据报 2000 字节(首部 20 字节 + 数据 1980 字节)。演示分片为 3 个片段。

IP 分片(MTU=800)

交互式动画
速度 1x
步骤 0/0

4.2 ARP 协议

ARP (Address Resolution Protocol)
地址解析协议,将 IP 地址解析为 MAC 地址。同一局域网内,主机通过广播 ARP 请求获取目标 IP 对应的 MAC 地址。

ARP 工作过程:

跨网段通信:A 发现目标不在同子网,则 ARP 请求的是默认网关(路由器)的 MAC,由路由器逐跳转发。

4.3 路由算法与协议

路由算法决定分组从源到目的的路径,分为静态与动态两大类。动态路由算法主要有:

算法原理代表协议特点
距离矢量 (DV)各节点仅与邻居交换距离矢量,迭代更新RIP实现简单;收敛慢;可能计数无穷(坏消息传得慢)
链路状态 (LS)各节点洪泛链路状态,全网获知拓扑后用 Dijkstra 算最短路OSPF收敛快;全局视野;开销较大
RIP 协议
基于距离矢量,以跳数为度量,最大 15 跳,16 跳视为不可达。每 30s 与邻居交换完整路由表。
OSPF 协议
基于链路状态,使用 Dijkstra 算法计算最短路径,度量可为带宽/时延等,支持区域划分。
收敛:距离矢量算法中,所有节点经过若干轮交换后路由表不再变化,即达到收敛。下方动画展示线性拓扑 R1—R2—R3—R4(链路代价均为 1)的路由表收敛过程。

4.4 ICMP

ICMP (Internet Control Message Protocol)
网际控制报文协议,用于主机/路由器报告差错与询问。ICMP 报文封装在 IP 数据报中传输。

ICMP 报文类型:

类型报文用途
差错报告终点不可达路由器/主机无法交付数据报
差错报告源点抑制拥塞控制(已弃用)
差错报告超时TTL=0 丢弃,或分片超时
差错报告参数问题首部字段有错
差错报告改变路由更好的路由
询问回送请求/回答ping 测试连通性
询问时间戳请求/回答时钟同步
应用:ping 使用 ICMP 回送请求/回答;traceroute 利用 TTL 递增的 ICMP 超时报文探测路径。

4.5 NAT与网络地址转换

NAT(Network Address Translation,网络地址转换)是一种将私有(内部)IP地址映射为公有(外部)IP地址的技术,主要用于解决IPv4地址短缺问题。NAT使得多个内网主机可以共享一个或少量公网IP地址访问Internet。

NAT (Network Address Translation)
网络地址转换,运行在路由器或防火墙上,将内网主机的私有IP地址/端口转换为公网IP地址/端口,实现内外网的透明通信。NAT是IPv4地址紧缺时代的关键技术,也是家庭/企业上网的实际基础。

私有IP地址段

IETF在RFC 1918中定义了以下私有地址空间,这些地址只能在内部网络使用,不能出现在公网路由中:

地址段CIDR表示可用地址数典型应用
10.0.0.0 ~ 10.255.255.25510.0.0.0/82²⁴−2 ≈ 1600万大型企业/数据中心
172.16.0.0 ~ 172.31.255.255172.16.0.0/122²⁰−2 ≈ 100万中型组织
192.168.0.0 ~ 192.168.255.255192.168.0.0/162¹⁶−2 ≈ 6.5万家庭/小型办公网络

NAT转换表

NAT路由器维护一张转换表,记录每条内网连接与公网地址/端口的映射关系。每当内网主机向外发送数据包时,NAT路由器会动态创建表项:

方向源IP:端口目的IP:端口转换后源IP:端口
出站(内→外)192.168.1.2:50008.8.8.8:80203.0.113.5:1024
出站(内→外)192.168.1.3:60001.1.1.1:443203.0.113.5:1025
入站(外→内)8.8.8.8:80203.0.113.5:1024192.168.1.2:5000
转换表工作原理:外网回复包到达NAT路由器时,路由器查转换表找到对应的内网主机私有IP:端口,将目的地址/端口替换后转发到内网。表项在一定时间无流量后自动删除。

NAPT(网络地址端口转换)

NAPT (Network Address and Port Translation)
也称为PAT(Port Address Translation)或NAT过载(NAT Overload),是目前最常用的NAT形式。NAPT利用传输层端口号来区分不同的内网主机,使得成百上千的内网主机可以共享同一个公网IP地址。
端口映射:NAPT的核心思想是用"IP + 端口"二元组做标识,使得多个内网设备共享单个公网IP。这也是家用路由器(Wi-Fi路由器)实现多设备同时上网的底层机制。

静态NAT vs 动态NAT vs NAPT

特性静态NAT动态NATNAPT(PAT)
映射关系固定1:1(私有IP↔公网IP)临时1:1(从地址池分配)多:1(多私有IP共享1公网IP)
端口转换是(核心标识)
公网IP用量每个内网主机1个按并发数需多个仅需1个
内网→外网支持支持支持
外网→内网支持(固定映射)不支持(临时映射)需手动端口映射
应用场景内网服务器对外发布小型企业家庭/企业共享上网

NAT的优缺点

优点缺点
缓解IPv4地址枯竭:多个设备共享一个公网IP破坏端到端通信原则:外网无法主动访问内网
隐藏内网拓扑增强安全性:外网看不到内网地址影响某些应用:P2P、VoIP、IPSec穿越困难
便于网络管理:内部地址可任意规划不依赖ISP增加网络延迟:每个包需NAT设备做地址转换
ISP变更不影响内网:更换ISP时无需重新编址妨碍端到端QoS和追踪:源地址被改写
节省公网IP成本:企业无需为每个设备购买公网IP应用层协议需特殊处理:FTP、SIP等携带IP信息的协议需ALG支持
NAT穿越技术:为解决NAT对P2P应用的障碍,发展出多种NAT穿越技术:STUN(简单UDP穿透)、TURN(中继穿透)、ICE(交互式连通建立)、UPnP(通用即插即用端口映射)等。

4.6 CIDR 无分类编址

CIDR (Classful Inter-Domain Routing)
无分类编址,打破传统 A/B/C/D/E 类别的限制,采用变长前缀(Variable-Length Prefix)来灵活划分和分配 IP 地址块。CIDR 的核心思想是用"IP 地址 + 前缀长度"代替传统的固定类别划分。

CIDR 表示方法

CIDR 使用 IP/前缀长度 的形式表示地址块,例如 192.168.1.0/24 表示前 24 位为网络前缀,主机位为 8 位。前缀长度决定了地址块的大小:

CIDR 表示前缀长度主机位数可用地址数等价传统分类
10.0.0.0/88242²⁴−2 ≈ 1600万A 类
172.16.0.0/1212202²⁰−2 ≈ 100万
192.168.0.0/1616162¹⁶−2 ≈ 6.5万B 类
192.168.1.0/242482⁸−2 = 254C 类
192.168.1.0/303022点对点链路

CIDR 的优点与应用

路由聚合(超网)计算
将多个连续的 CIDR 前缀合并为一个聚合前缀。方法:①将各前缀写成二进制;②找相同的前缀位;③相同位数即为聚合前缀长度,IP 地址取共同前缀部分。
计算示例:将 192.168.0.0/24192.168.1.0/24192.168.2.0/24192.168.3.0/24 聚合。四个地址的前 22 位完全相同(192.168.0),故聚合结果为 192.168.0.0/22,共 4×256 = 1024 个地址。

4.7 IPv6

IPv6 (Internet Protocol version 6)
下一代网际协议,由 IETF 设计以替代 IPv4。IPv6 提供 128 位地址空间,解决 IPv4 地址耗尽问题,并在安全性、 mobility、multicast 等方面进行了增强。

IPv6 地址格式

IPv6 地址长度为 128 位,采用 冒分十六进制 表示法,将 128 位分为 8 组,每组 16 位,每组用 4 个十六进制数字表示,组间用冒号分隔:

格式示例2001:0db8:85a3:0000:0000:8a2e:0370:7334。简化规则:①每组前导零可省略(如 0db8db8);②连续全零组可用 :: 代替(仅能使用一次),如 2001:db8::1

IPv6 地址分类

类型前缀用途示例
单播地址 (Unicast)2000::/3全球可路由地址,一对一通信2001:db8::1
链路本地地址 (Link-Local)FE80::/10同一链路内通信,无需路由器fe80::1
组播地址 (Multicast)FF00::/8一对多通信ff02::1(所有节点)
任播地址 (Anycast)子网路由器任意地址最近节点响应,负载均衡子网内所有路由器共享
唯一本地地址 (ULA)FC00::/7私有网络内部使用fd00::1

IPv4 向 IPv6 过渡技术

技术原理特点
双栈(Dual-Stack)主机同时运行 IPv4 和 IPv6 协议栈,根据目的地址选择协议简单直接;需升级所有节点
隧道(Tunneling)将 IPv6 分组封装在 IPv4 报文中传输,穿越 IPv4 骨干无需中间网络升级;典型:6to4、ISATAP
NAT64 / DNS64IPv6-only 网络通过 NAT64 网关访问 IPv4 服务器实现 IPv6-only 网络与 IPv4 互联网互通
转换(Translation)SIIT(Stateless IP/ICMP Translation)无状态 IP 报头转换适用于特定场景

IPv6 与 IPv4 对比

特性IPv4IPv6
地址长度32 位128 位
地址表示点分十进制冒分十六进制
地址数量约 43 亿3.4×10³⁸
头部长度20 字节(可变)固定 40 字节 + 扩展头
安全性需 IPSec 可选内置 IPSec 支持
地址配置需 DHCP 或静态配置支持无状态自动配置(SLAAC)
多播有限支持原生支持
NAT广泛使用以缓解地址不足通常不需要
头部校验和无(简化处理)
分片处理路由器可分片仅源端分片

4.8 路由协议详解

RIP 协议

RIP (Routing Information Protocol)
基于距离矢量(Distance Vector)算法的内部网关协议(IGP)。以跳数(Hop Count)作为路由度量,最大 15 跳,16 跳表示不可达。每 30 秒与直接邻居交换完整路由表。

OSPF 协议

OSPF (Open Shortest Path First)
开放最短路径优先协议,基于链路状态(Link State)算法的内部网关协议。使用 Dijkstra 最短路径算法计算路由,支持多种度量(带宽、时延等),无路由环路问题。

BGP 协议

BGP (Border Gateway Protocol)
边界网关协议,自治系统(AS)间的外部网关协议(EGP),基于路径矢量(Path Vector)算法。BGP 不是基于 metric 选最优路径,而是基于策略(Policy)进行路由选择。

4.9 IP 多播

IP 多播 (IP Multicast)
一种网络通信方式,发送方将数据报发送到一个多播组地址,由网络中的路由器将数据报复制并转发给所有组成员。IP 多播实现了高效的一对一(发送方到多个接收方)通信。

多播的基本概念

IGMP 协议

IGMP (Internet Group Management Protocol)
网际组管理协议,运行在主机与本地路由器之间,用于:①主机通知路由器希望加入/离开某个多播组;②路由器查询本地网络上有哪些主机是哪些多播组的成员。
报文类型发送方用途
成员查询 (Membership Query)路由器周期性(默认 60s)查询本地主机的组成员状态
成员报告 (Membership Report)主机主机加入多播组时主动报告,或响应查询
离开组 (Leave Group)主机主机离开多播组时通知路由器
版本 2 查询 (Version 2 Query)路由器指定特定组的查询(Group-Specific Query)
IGMP 版本:IGMPv1 支持基本的组成员管理;IGMPv2 支持指定组查询、离开组报文;IGMPv3 支持源特定多播(SSM),主机可指定仅接收来自特定源的多播数据。

多播路由协议

协议类型原理特点
DVMRP距离矢量基于 RIP 的多播扩展,反向路径泛洪 + 截断简单;路由表膨胀;适合小型网络
MOSPF链路状态OSPF 的多播扩展,使用 Dijkstra 构建最短路径树需 OSPF 支持;适合单 AS 网络
PIM-DM协议无关(密集模式)推模式,源端开始泛洪,然后修剪(Prune)开销大;适合组成员密集的网络
PIM-SM协议无关(稀疏模式)拉模式,基于 RP(汇聚点)构建共享树,再切换到源树高效;适合组成员稀疏的大规模网络

4.10 移动 IP

移动 IP (Mobile IP)
一种允许移动节点在不同网络间移动时保持 IP 地址不变、维持通信连续性的协议。移动 IP 对上层应用透明,实现了网络层的移动性支持。

移动 IP 的基本组成

组件描述
移动节点 (Mobile Node)具有永久家乡地址的主机,能够在不同网络间移动。移动节点同时拥有一个临时的转交地址(Care-of Address)。
家乡代理 (Home Agent, HA)位于移动节点家乡网络上的路由器,维护移动节点的当前位置信息,负责接收发给移动节点家乡地址的分组并转发。
外地代理 (Foreign Agent, FA)位于移动节点当前访问网络上的路由器,为移动节点提供接入服务,协助家乡代理完成分组转发。
家乡地址 (Home Address)移动节点的永久 IP 地址,无论节点移动到何处,此地址保持不变。
转交地址 (Care-of Address, CoA)移动节点在访问网络上的临时地址,用于家乡代理向移动节点转发分组。

移动 IP 的工作流程

  1. 代理发现:移动节点通过广播 ICMP 路由通告报文,发现当前网络的外地代理。外地代理定期广播代理通告报文(Agent Advertisement)。
  2. 注册:移动节点向家乡代理注册当前的转交地址。注册过程通过 UDP 发送注册请求(Registration Request)和注册应答(Registration Reply)完成。
  3. 数据转发
    • 通信对端(Correspondent Node)向移动节点的家乡地址发送分组。
    • 家乡代理截获分组,封装后转发到移动节点的转交地址(隧道转发)。
    • 移动节点接收分组并解封装。
    • 移动节点直接向通信对端发送应答(三角路由问题)。
  4. 移动切换:当移动节点移动到新的网络时,获取新的转交地址,重新向家乡代理注册。家乡代理更新绑定信息。
优化路由:基本移动 IP 存在三角路由问题(家乡代理参与转发导致路径延长)。优化路由机制允许通信对端缓存移动节点的当前位置,直接向转交地址发送分组,避免家乡代理中转。

4.11 SDN 软件定义网络

SDN (Software-Defined Networking)
软件定义网络,一种新型网络架构,将网络的控制逻辑从网络设备(路由器、交换机)中解耦出来,由集中式的控制器(Controller)统一管理和编排,实现网络的可编程化和集中式控制。

SDN 的架构

层次组件功能
应用层SDN 应用通过北向接口(Northbound API)向控制器请求网络服务,实现路由优化、流量工程、安全策略等上层应用逻辑。
控制层SDN 控制器网络的"大脑",维护全局网络视图,根据应用需求计算流表规则,通过南向接口下发给数据层设备。
数据层SDN 交换机 / 路由器网络的"四肢",根据控制器下发的流表(Flow Table)规则进行数据转发。SDN 交换机本身无路由计算能力,仅负责数据转发。

OpenFlow 协议

OpenFlow
SDN 南向接口的标准协议,定义了控制器与 OpenFlow 交换机之间的通信规范。控制器通过 OpenFlow 协议向交换机下发流表规则,交换机将匹配的分组按照规则转发。

SDN 的优势与应用