网络层网际协议IP
目录
网络层的几个重要概念
网络层的任务与地位
网络层提供的两种服务
网络层的两个层面
软件定义网络(SDN)
网际协议IP
网络协议 IP(Internet Protocol)
与 IP 配套使用的协议
虚拟互连网络
中间设备的类型与作用
IP 网络的逻辑抽象
分组的传输方式
IP 地址
分类的 IP 地址
无分类编址 CIDR
IP 地址的特性
IP 地址与 MAC 地址
地址解析协议 ARP(Address Resolution Protocol)
IP 数据报格式
网络层的几个重要概念
网络层的任务与地位
网络层是计算机网络互连的核心层次,它的主要任务是在不同的网络之间实现数据分组的传输与路由选择。
网络层向上提供两种基本服务:
面向连接的虚电路服务
无连接的数据报服务
核心协议是 IP(Internet Protocol),它是 TCP/IP 体系结构中最重要的协议之一。
网络层提供的两种服务
虚电路服务
思想来源:借鉴了传统电话网的通信模式。
连接建立:在通信前必须先建立一条虚拟电路,通信双方在该电路上占用一定的网络资源。
通信过程:所有分组沿着相同的路径传输,顺序固定。
优点:可靠、有序、面向连接。
缺点:连接建立与维护成本高,网络灵活性较差。
数据报服务
思想来源:面向分组交换的计算机网络,采用无连接模式。
连接建立:不需要事先建立连接,每个分组独立发送。
通信过程:每个分组可选择不同的路由到达目的地,路径不固定,顺序可能改变。
优点:灵活、高效、适合突发数据传输。
缺点:不保证可靠到达,需上层(如TCP)保证可靠性。

两种服务的比较
| 对比方面 | 虚电路服务 | 数据报服务 |
|---|---|---|
| 思路 | 可靠通信由网络保证 | 可靠通信由用户主机负责 |
| 连接建立 | 必须事先建立 | 不需要 |
| 路由选择 | 在建立连接时确定 | 每个分组单独选择路径 |
| 分组发送顺序 | 总是按序发送 | 可能乱序到达 |
| 通信代价 | 较高 | 较低 |
网络层的两个层面
网络层可以抽象为两个逻辑层面:
数据层面
功能:负责实际的数据分组转发。
表现:每个分组沿着路径在路由器中一跳一跳地被转发。
特点:高速、频繁、面向实时。
控制层面
功能:负责路由的计算、网络拓扑的维护和路由表的更新。
表现:各路由器之间通过路由协议交换信息,建立转发表。
特点:逻辑复杂、相对低频。

软件定义网络(SDN)
SDN(Software Defined Networking)是网络层的最新架构思想。
它将控制层面与数据层面彻底分离。
在传统网络中,每个路由器同时具有转发功能与控制功能。
在SDN中,路由器仅保留转发功能,控制功能集中在一个远程控制器中,由它统一管理整个网络。
SDN的优势
逻辑集中控制、管理灵活
可通过软件实现动态配置
便于全局优化与策略更新
提高资源利用率与网络可编程性
图4-3 展示了这种结构:所有转发设备受远程控制器统一调度。

网际协议IP
网络协议 IP(Internet Protocol)
定义与地位
IP(Internet Protocol) 是 TCP/IP 协议体系中最核心、最基础的协议之一,负责在互联网络中实现分组的传输与路由选择。
它是整个互联网的骨架,在 TCP/IP 模型中处于网络层。
IP 的功能在于:向上提供无连接的数据报服务,即尽力而为(Best-effort)的传输服务,不保证分组必定到达、不保证顺序、不提供差错恢复。
IP 协议的版本
目前最常用的是 IPv4(Internet Protocol version 4),
新一代版本为 IPv6(Internet Protocol version 6),用于解决地址耗尽和性能扩展等问题。
与 IP 配套使用的协议
为了使 IP 能完成地址解析、差错报告、多播控制等功能,还需要一些辅助协议:
ARP(Address Resolution Protocol)地址解析协议
作用:实现 IP 地址 → 物理地址(MAC 地址)的映射。
用途:用于同一局域网内通信时,将目标 IP 地址解析为其对应的硬件地址。
ICMP(Internet Control Message Protocol)互联网控制报文协议
作用:用于主机与路由器之间传递差错报告和网络状态信息。
举例:ping 命令即基于 ICMP 工作。
IGMP(Internet Group Management Protocol)网际组管理协议
作用:用于多播通信,管理主机加入或退出多播组。
(历史上还有)RARP(Reverse ARP)反向地址解析协议,现已被废弃。
图4-4 所示结构表明:
IP 协议位于网络层
ARP 与物理接口相关
ICMP、IGMP 同属于网络层
IP 之上运行 TCP/UDP
TCP/UDP 之上运行 HTTP、FTP、SMTP 等应用层协议

虚拟互连网络
1. 概念与必要性
为了让全世界数以百万计的异构网络互连,需要一个统一的逻辑抽象网络,这就是虚拟互连网络。
它通过 IP 协议将不同的物理网络封装成一个逻辑上统一的网络体系,所有主机都可以通过虚拟的 IP 网络互相通信。
2. 各网络间的差异
不同网络之间差异巨大,包括:
不同寻址方案
不同最大分组长度
不同的接入机制
不同的差错控制方式
不同的传输方式(面向连接或无连接)
不同的报文格式等
因此,必须引入中间设备进行互连和协议转换。
中间设备的类型与作用
| 层次 | 设备 | 功能 |
|---|---|---|
| 物理层 | 中继器(Repeater) | 放大信号,延长传输距离 |
| 数据链路层 | 网桥(Bridge)或交换机(Switch) | 分割广播域,转发帧 |
| 网络层 | 路由器(Router) | 负责不同网络间的数据报转发 |
| 网络层以上 | 网关(Gateway) | 连接不同协议体系的网络 |
路由器的地位
路由器是实现互联的核心设备,是互联网的节点。它决定数据报的传输路径。
IP 网络的逻辑抽象
由于各种物理网络(以太网、Wi-Fi、卫星网等)差异很大,为实现互通,IP 协议将这些网络统一在一个逻辑层上形成虚拟 IP 网络。
也就是说,从上层看来,整个互联网就是一个统一的 IP 网络。
图4-5 显示:
(a) 实际上网络由许多路由器互连;
(b) 从逻辑上看,它们都属于一个虚拟的IP网络。

分组的传输方式
如图4-6所示,主机 H₁ 要向 H₂ 发送 IP 数据报:
若 H₁ 与 H₂ 在同一网络中:直接交付。
若 H₁ 与 H₂ 不在同一网络中:间接交付,需经过多个路由器逐跳转发。
每经过一个路由器称为一跳(Hop)
图4-7 展示了这种多跳传输的路径模型。


IP 地址
定义与分配
IP 地址是互联网中每一个接口的唯一标识符。
在 IPv4 中,IP 地址为 32 位二进制数,每个地址分配给主机或路由器的接口。
分配机构:由 ICANN统一管理,区域机构如 APNIC、CNNIC 负责区域分配。
表示方法
采用点分十进制表示法:
将 32 位二进制分为4个字节,每字节转为十进制,用“.”隔开,例如:
128.11.3.31
这比直接写二进制形式更易读。

IP 地址的结构
一个 IP 地址由两部分组成:
网络号(Network ID):标识该主机所属的网络
主机号(Host ID):标识该网络中的具体主机
公式:
IP地址::={网络号,主机号}
如图4-9,前 n 位为网络号,后 (32−n) 位为主机号

分类的 IP 地址
在早期互联网中采用分类编址法
地址类别与范围
| 类别 | 网络号位数 | 主机号位数 | 起始比特 | 用途 |
|---|---|---|---|---|
| A 类 | 8 | 24 | 0 | 特大型网络 |
| B 类 | 16 | 16 | 10 | 中型网络 |
| C 类 | 24 | 8 | 110 | 小型网络 |
| D 类 | 多播地址 | - | 1110 | 组播 |
| E 类 | 保留 | - | 1111 | 实验用途 |
见图4-10(a),(b) 显示了比例分布。

各类地址数量与用途
A 类:网络号7位,可分配 2⁷−2=126 个网络,每个网络可有 2²⁴−2≈1677 万主机。
特殊地址:127.x.x.x 保留为环回地址。
B 类:网络号14位,可分配 16384 个网络,每个网络可有 65534 个主机。
C 类:网络号21位,可分配约 209 万个网络,每个网络可有 254 个主机。
特殊保留地址(表4-2)
网络号或主机号全 0:表示本网络
网络号或主机号全 1:表示广播
网络号 127:环回测试

分类地址的局限与无分类编址(CIDR)
分类编址的缺陷
传统分类方法网络号固定,导致:
地址浪费:很多单位用不到整个 A 或 B 类地址空间
地址不足:C 类网络太小,大型机构不够用
路由表庞大:每个网络独立记录,增加路由表规模
因此在 1993 年引入无分类域间路由选择(CIDR, Classless Inter-Domain Routing)
无分类编址 CIDR
CIDR 由 RFC 4632 定义,核心思想是:不再使用A/B/C类的固定边界,而用“网络前缀+主机号”灵活划分。
网络前缀
CIDR 用:
IP地址 ::= <网络前缀, 主机号>
并采用斜线记法,表示前缀长度。
例如:128.14.35.7/20
表示前20位为网络前缀,后12位为主机号。
![]()

地址块
具有相同网络前缀的连续地址组成一个CIDR地址块
例:128.14.35.7/20
网络前缀(前20位)表示地址块
该块最小地址为 128.14.32.0
最大地址为 128.14.47.255
可用地址数为 2¹²−2 = 4094 个
![]()

地址掩码(Address Mask)
为计算网络地址,引入子网掩码(Subnet Mask):一串由 1 和 0 组成的32位数,
1 表示网络前缀部分,0 表示主机部分。
例如:/20 → 子网掩码 255.255.240.0
计算方法:
将 IP 地址与子网掩码按位 AND 运算,结果即网络地址。
图4-12 演示:128.14.35.7 AND 255.255.240.0 = 128.14.32.0

常用CIDR掩码长度


CIDR 的优势
地址利用率高:可灵活分配,不浪费。
路由表更小:可将多个网络合并为一个条目(称为路由聚合)
分层结构清晰:方便 ISP、企业层级规划。
例:图4-13
ISP 拥有 206.0.64.0/18 地址块,可分配给大学一个 /22 块,再划分给学院 /24、系 /25、/26。
从结构上实现了高效聚合。

IP 地址的特性
分层与层次性
IP 地址是由网络前缀(网络号)与主机号两部分组成的,具有明显的层次结构。这种结构带来两个直接优势:
(1) 管理方便:
网络层次结构使得 IP 地址可以按网络前缀分配。地址分配时,只需给网络管理员分配一个网络前缀(一级),然后该网络内的单位可自行为其主机(第二级)分配主机号。这大大简化了全球地址管理。
(2) 路由高效:
路由器根据目的地址的网络前缀即可进行转发,而无需考虑主机号,从而减少路由表项目数量,缩短查找时间,提高转发效率。
网络前缀对应的范围(或称地址块)越大,聚合效果越好。
多归属主机
有时,一台主机(或路由器)可能同时连接到多个网络,如图所示:
若一台主机同时连入两个网络,它必须具有两个不同的 IP 地址,对应各自网络的前缀不同。
这种主机称为多归属主机,路由器通常都是多归属设备(因为每个接口连接一个网络,接口数 ≥2)
类比现实生活中,一个建筑物有“北京xx号”和“上海xx号”两种地址,代表它分别位于两个街区的交叉点。
网络的集合特性
从互联网整体来看,一个网络(或子网)实际上是具有相同网络前缀的一组主机集合。
路由器在转发时,把这些集合看作单个逻辑网络。即若干局域网互连后仍属于一个 IP 网络,只要它们共享相同网络前缀。
等价地位与统一地址空间
无论局部网络规模多大,所有网络在互联网中都是平等的,都有自己唯一的网络号。
例如图4-14中,LAN₁、LAN₂、LAN₃ 三个局域网经路由器互联形成虚拟网。每个局域网中:
主机和路由器的 IP 地址必须具有相同的网络前缀
其网络号对应的主机号部分可自由分配

IP 地址与 MAC 地址
区别与层次关系
MAC 地址(Media Access Control Address):
属于数据链路层使用的物理地址,是网卡固化在硬件中的唯一标识。
常称为硬件地址或物理地址。
IP 地址(Internet Protocol Address):
属于网络层的逻辑地址,由软件分配,可变、可配置。
因此也称为逻辑地址或虚拟地址。
地址的作用层次
数据在传输时,逐层封装:
应用层数据 → TCP/UDP 报文段 → IP 数据报 → MAC 帧 → 物理信号
在每一层:
网络层处理 IP 地址
数据链路层处理 MAC 地址
图4-15 展示:
IP 地址位于网络层首部中,而 MAC 地址位于帧首部中。
当主机发送 IP 数据报时,它被封装在 MAC 帧的数据部分中。

层间交互与传输机制
在发送端:
IP 层将数据报交给链路层;链路层需根据目的 IP 地址确定对应的 MAC 地址,再封装成帧后发送
在中间路由器:
路由器接收到帧后,剥去原 MAC 帧首部,根据 IP 地址进行转发,再重新封装新的 MAC 帧发送。
因此 MAC 地址在每一跳都会变化,但 IP 地址始终不变。
地址在多跳传输中的表现(图4-16)
(a) 网络配置层次:
主机 H₁ → 路由器 R₁ → R₂ → 主机 H₂
每个节点既有 IP 地址又有 MAC 地址。
(b) 传输过程层次:
IP 层上:数据报始终显示源IP=H₁,目的IP=H₂
MAC 层上:每一跳的源/目的 MAC 地址不断更新。

表4-4 明确列出了:

IP 与 MAC 的关系
IP 地址:标识逻辑位置(网络层抽象)
MAC 地址:标识物理接口(链路层具体)
IP 负责跨网络通信;MAC 负责局域传输
IP 是全球逻辑标识,MAC 是局部物理标识
地址解析协议 ARP(Address Resolution Protocol)
协议功能
ARP 用于根据 IP 地址获取对应的 MAC 地址,解决逻辑地址到物理地址的映射问题。
工作层次:在网络层与数据链路层之间
图4-17 显示:
IP 模块向下发送数据报时,会调用 ARP 模块以获取目标 MAC 地址,并在帧首部填入。

ARP 的工作机制
1.每台主机维护一个 ARP 高速缓存(ARP Cache),存放最近通信过的 IP–MAC 映射。
若缓存中无目标地址,则需通过 ARP 请求。
2. ARP 请求分组:
由源主机广播发送
含有我是谁(源IP, 源MAC)和我要找谁(目标IP)
局域网内所有主机都能接收
3. 匹配主机的 ARP 响应:目标主机收到请求后,若 IP 地址匹配,立即单播回应,告诉请求方自己的 MAC 地址
4. 源主机更新缓存后,即可封装 MAC 帧,完成后续通信
图4-18(a)(b) 展示了 ARP 请求与响应的完整流程

典型工作场景(图4-19)
1. 主机 → 主机(同一局域网)
2. 主机 → 路由器(跨网通信时)
3. 路由器 → 主机(转发目标网络)
4. 路由器 → 路由器(网络互连中间跳)
在每种情况下,发送方必须先解析出下一跳的 MAC 地址,才能发送。

ARP 缓存的优化机制
每个缓存项有生存时间(10–20分钟)
超时未用则自动删除
每次通信更新缓存
这样可减少广播,提高效率
相关旧协议:RARP(Reverse ARP)
RARP 用于从 MAC 地址反查 IP 地址,已被 DHCP(动态主机配置协议)取代。
IP 数据报格式
总体结构
如图4-20所示:IP 数据报 = 首部(Header) + 数据部分(Data)

首部又分为固定部分(20字节)与可变部分(选项字段)
首部固定字段说明
| 字段 | 位数 | 说明 |
|---|---|---|
| 版本 | 4 | 当前为 IPv4(值为4) |
| 首部长度 | 4 | 表示首部占用的 32位字数(最少5即20字节) |
| 区分服务(DS) | 8 | 表示服务优先级,用于 QoS(以前称TOS) |
| 总长度 | 16 | 报文总长(首部+数据),最大65535字节 |
| 标识(Identification) | 16 | 报文编号,用于分片重组 |
| 标志(Flag) | 3 | 控制分片,DF=禁止分片,MF=更多分片 |
| 片偏移(Fragment Offset) | 13 | 分片在原报文中的位置 |
| 生存时间(TTL) | 8 | 跳数限制,经过一个路由器减1 |
| 协议号(Protocol) | 8 | 指示上层协议(如6→TCP,17→UDP,1→ICMP) |
| 首部校验和 | 16 | 对首部计算校验值(接收端校验一致性) |
| 源地址 | 32 | 发送方 IP 地址 |
| 目的地址 | 32 | 接收方 IP 地址 |
“最少5”指的是首部长度字段的值最小是5,而这个 5 代表 5个32位的字,换算成字节就是 5 × 4字节 = 20字节
数据报分片机制
若数据报长度超过链路层 MTU(Maximum Transmission Unit),则必须进行分片:
1. 每个分片都有独立的首部
2. 使用相同标识字段
3. 片偏移按 8 字节倍数记录
4. 接收方根据标识与偏移重组原始数据


第一轮分片
1. 原始数据包:
总数据长度:3800字节(图中字节0到3799)
路径上有一个网络的MTU是1420字节(其中IP首部占20字节,所以数据部分最多1400字节)
2. 分片结果:
数据报片1:携带第0-1399字节的数据。它的“片偏移”是 0(因为从第0字节开始)
数据报片2:携带第1400-2799字节的数据。它的“片偏移”是 175
(因为 1400 / 8 = 175。偏移量的单位是8字节)
数据报片3:携带第2800-3799字节的数据。它的“片偏移”是 350(因为 2800 / 8 = 350)
3. 关键字段如何变化:
标识:所有碎片都是同一个号(如12345),这样接收方就知道这些碎片是属于同一个原包的。
MF(More Fragments):对于不是最后一片的碎片(片1和片2),MF=1,意思是后面还有碎片对于最后一片的碎片(片3),MF=0,意思是这是最后一片了
片偏移:指明这个碎片的数据在原包中的起始位置(以8字节为单位)
计算偏移量时,忽略每个分片自身的IP首部。我们站在原始数据报的视角,只关心数据块在原始数据部分的起始位置
嵌套分片(第二轮分片)
图片最后描述了一个更复杂的情况:碎片本身还可以再次被分片。
数据报片2(携带1400字节数据)在传输中又遇到一个更小的MTU网络,需要再次分片。
分片结果:
数据报片2-1:携带片2的前800字节数据。它的片偏移和片2一样,是 175。MF=1(因为后面还有片2-2)
数据报片2-2:携带片2的后600字节数据。它的片偏移是 175 + (800/8) = 175 + 100 = 275。MF=1(因为它不是整个原包的最后一片,原包的最后一片是片3)
TTL 与路由跳数
TTL(Time To Live)用于防止分组在网络中无限循环。
初值常为64或128,每经一跳减1;减为0即丢弃,发送ICMP超时报文。
首部校验和
对首部的16位字计算反码和,接收端验证一致性
若出错则丢弃并通知发送方(图4-22)

可变部分
提供额外控制与调试功能,如:
记录路由(Record Route)
时间戳(Timestamp)
安全标识(Security)
该部分长度可变,但 IPv6 已简化此机制
