4.1 网络层的几个重要概念
一、网络层提供的两种服务
- 面向连接的通信方式(虚电路服务)
- 无连接的通信方式(数据报服务)
网络层要设计得尽量简单,向其上层只提供简单的、无连接的、尽最大努力的数据报服务。网络层不提供服务质量的承诺。优点:便宜,灵活,适用于多种应用。
两种服务对比
- 虚电路:可靠,有连接,每个分组使用短虚电路号;线路出故障后整体无法工作。
- 数据报:不可靠,无需提前建立连接,每个分组携带完整 IP 地址;分组独立查找转发,网络故障可能造成分组丢失,分组到达顺序不一定与发送顺序一致。
二、网络层的两个层面
路由器之间主要传送两类信息:
- 转发源主机和目的主机之间所传送的数据
- 传送路由信息:依据路由协议与算法,路由器之间持续交换路由分组,最终在路由器内生成路由表。
网络层抽象划分为数据层面 和控制层面。数据层面逻辑简单,控制层面复杂度更高,因为路由表的生成需要多台路由器协同工作,不同路由选择协议定义了不同的协同规则。
部分网络架构存在逻辑上集中的远程控制器,统一掌握全网主机与网络状态,为分组计算最优路由,并在路由器中生成转发表。
路由器核心工作:接收分组,查询转发表,转发分组。
4.2 网际层 IP
网际协议 IP 是 TCP/IP 体系中核心协议之一,也是互联网最重要的标准协议。与 IP 协议配套使用的协议共三个:
- 地址解析协议 ARP
- 网际控制报文协议 ICMP
- 网际组管理协议 IGMP
协议层级关系:ARP 位于底层,IP 会频繁调用 ARP;ICMP、IGMP 位于上层,需要调用 IP 协议。因此 TCP/IP 体系中,网络层也常被称作网际层 或IP 层。
一、虚拟互连网络
单一网络无法满足所有用户需求,且网络技术处于持续更新迭代中。连接不同网络需要借助中间设备,按所属层次划分:
- 物理层:转发器
- 数据链路层:网桥 / 桥接器
- 网络层:路由器
- 网络层以上:网关
受历史因素影响,早期 TCP/IP 资料常将网络层的路由器称作网关。
所有互连网络统一使用 IP 协议后,这些异构网络可整体看作虚拟互连网络 ,简称IP 网。
- 直接交付:通信双方位于同一网络,无需经过路由器转发
- 间接交付:通信双方跨网络,需要经过路由器转发
互联网可由多种异构网络互连组成。分组每经过一次路由器转发,称为一跳(跃点)。
二、IP 地址
1. IP 地址及其表示方法
整个互联网是一个抽象的单一网络。IP 地址是为互联网中每台主机的每个接口分配的全球唯一 32 位标识符,由互联网名字和数字分配机构 ICANN 统一管理。
为提升可读性,采用点分十进制记法:将 32 位二进制按每 8 位分为一组,每组转换为十进制,组与组之间用小数点分隔。
IP 地址同时标识主机本身,以及该接口所连接的网络。IP 地址分为两个字段:网络号 + 主机号。同一网络内主机号唯一,因此整个互联网中 IP 地址全局唯一。
2. 分类的 IP 地址
早期采用固定分类方式,均以单播地址为主:
- A 类地址:网络号占 8 位
- B 类地址:网络号占 16 位
- C 类地址:网络号占 24 位
- D 类地址:多播地址
特殊 IP 地址规则:
- 网络号全 0:代表 "本网络"
- 网络号为 127:保留用于本地软件环回测试
各类地址主机容量:
- A 类:主机号占 3 字节。主机号全 0 代表本网网络地址,全 1 代表本网所有主机;单个 A 类网络最大主机数:224−2。
- B 类:网络号占 2 字节,可指派网络数为214;单个 B 类网络最大主机数:216−2。
- C 类:网络号占 3 字节,可指派网络总数为221;单个 C 类网络最大主机数:28−2。
随着网络规模扩大,先后出现划分子网 (将二级 IP 地址改为三级:网络号 + 子网号 + 主机号)、无分类编址技术,解决 IP 地址枯竭问题。
3. 无分类编址 CIDR
无分类域间路由选择 CIDR
(1)网络前缀
将原固定长度的网络号改为网络前缀 ,剩余部分为主机号(后缀)。格式:IP地址 = {网络前缀, 主机号}网络前缀位数 n 不再固定,取值范围为 0~32。CIDR 使用斜线记法 :IP 地址后加/,斜线后方数字代表网络前缀位数。
(2)地址块
网络前缀相同的连续 IP 地址构成一个地址块 。通常使用地址块内最小 IP 地址 + 前缀位数标识整个地址块。示例:128.14.32.0/20 代表一个地址块;仅使用128.14.32.0无法判定网络范围。
(3)地址掩码
计算机无法识别斜线记法,依靠地址掩码(子网掩码)计算网络地址。掩码由连续的 1 和连续的 0 组成,掩码中 1 的个数等于网络前缀位数。** ****运算规则:将 IP 地址与子网掩码做按位与运算**,得到对应的网络地址。传统 A、B、C 类地址拥有固定掩码,一般无需额外标注。
CIDR 特殊前缀地址:
- 前缀 n=32:无主机号,对应单个 IP 地址,用于主机路由
- 前缀 n=31:地址块仅包含 2 个 IP 地址,适用于点对点链路
- 前缀 n=0,且 IP 地址全 0:用于默认路由
路由聚合:用大地址块整合多个小地址块,压缩转发表规模,缩短查表时间。规则:网络前缀越短,地址块包含的 IP 地址数量越多。
4. IP 地址的特点
- 分级结构:由网络前缀 + 主机号组成。便于地址管理;路由器依据网络前缀转发分组,缩减转发表空间、提升转发效率。
- 标识接口:IP 地址绑定主机的网络接口。一台主机连接多个网络时,会拥有多个不同前缀的 IP 地址,这类主机称为多归属主机。
- 网络定义:拥有相同网络前缀的主机集合构成一个网络。转发器、交换机连接的多个局域网,仍属于同一个网络。
- 网络平等:所有分配网络前缀的网络地位平等。
补充:两台路由器直连的点对点链路,可选择不分配 IP 地址,这类网络称为无编号网络 / 匿名网络。
三、IP 地址与 MAC 地址
MAC 地址又称物理地址 ,固化在网卡 ROM 中;IP 地址是逻辑地址。层级划分:
- MAC 地址:数据链路层使用
- IP 地址:网络层及以上层级使用
封装规则:IP 数据报传递到数据链路层后,会被封装为 MAC 帧;IP 地址存放在 IP 数据报首部,MAC 地址存放在 MAC 帧首部。
核心要点:
- IP 层的虚拟互联网中,只能看见 IP 数据报。
- 路由器仅依据目的 IP 地址转发分组,不关注源 IP 地址。
- 局域网链路层中,只能看见 MAC 帧。
- IP 层屏蔽了底层不同 MAC 地址体系的差异,上层可统一使用 IP 地址完成通信。
四、地址解析协议 ARP
作用:已知 IP 地址,查询对应的 MAC 地址。配套旧协议:逆地址解析协议 RARP(已知 MAC 地址,反向查询 IP 地址)。
工作机制:每台主机维护ARP 高速缓存,存储本网段内 IP 地址与 MAC 地址的映射表,且映射表项设有生存时间,超时自动删除。
ARP 解析步骤:
- 主机在本局域网广播 ARP 请求分组;
- 局域网内所有主机接收请求;
- 对比请求中的目标 IP,匹配主机回复 ARP 响应分组,并携带自身 MAC 地址;
- 源主机收到响应后,更新本地 ARP 缓存。
补充:ARP 仅用于同一局域网内的地址解析,解析过程自动完成,用户无感知。IP 协议屏蔽了不同网络 MAC 地址的转换细节。
五、IP 数据报的格式
IP 数据报由首部 和数据两部分组成。首部包含固定 20 字节 + 可变可选字段。
1. 首部固定字段(共 12 项)
- 版本:4 位,标识 IP 协议版本(IPv4/IPv6)。
- 首部长度:4 位,单位为 4 字节,最大取值 15。
- 区分服务:8 位,实际未投入使用。
- 总长度:16 位,单位字节,指首部 + 数据的总长度。IP 数据报长度不能超过链路 MTU(默认 1500 字节),超长需分片;所有主机和路由器必须接收不超过 576 字节的数据报。
- 标识:16 位,分片时同一数据报的所有分片使用相同标识,用于分片重组。
- 标志:3 位,仅两位有效
- MF 位:MF=1 表示后续还有分片;MF=0 表示当前是最后一个分片
- DF 位:DF=1 表示禁止分片
- 片偏移:13 位,标识分片在原始数据报中的位置,以 8 字节为偏移单位。
- 生存时间 TTL:8 位,原代表数据报存活秒数,现改为跳数限制,防止分组环路转发。
- 协议:8 位,标识 IP 数据报的数据部分需交付给上层哪个协议处理。
- 首部检验和:16 位,仅校验 IP 首部,不校验数据部分。
- 源地址:32 位,发送方主机 IP 地址。
- 目的地址:32 位,接收方主机 IP 地址。
2. 首部可变部分
仅包含选项字段,用于排错、测量、安全拓展等功能。该字段使 IP 首部长度可变。
4.3 IP 层转发分组的过程
一、基于终点的转发
路由器提取分组首部的目的 IP 地址,查询转发表确定下一跳路由器。转发流程:网络接口将 IP 地址解析为 MAC 地址,封装 MAC 帧并转发至下一跳;下一跳设备解封装 MAC 帧,将数据交付网络层。查表本质:结合子网掩码,执行前缀匹配。
二、最长前缀匹配
-
CIDR 环境下,若目的地址匹配转发表中多个前缀,优先选择前缀最长的条目转发。
-
两类特殊路由
- 主机路由(特定主机路由):
/32前缀,为单个主机单独配置路由,便于网络管控与测试。 - 默认路由:
0.0.0.0/0,所有无匹配条目的分组均按默认路由转发,适用于对外连接较少的网络。
- 主机路由(特定主机路由):
-
分组转发算法
- 提取分组首部的目的 IP 地址;
- 优先匹配特定主机路由,匹配成功则按对应下一跳转发;
- 结合子网掩码与目的地址做按位与,匹配最长网络前缀;
- 无匹配条目则使用默认路由;无默认路由则判定转发失败。
三、使用二叉树线索查找转发表
CIDR 编址增加了转发表查找复杂度,采用二叉线索结构优化查表效率。原理:基于 IP 地址前缀构建二叉树,逐位匹配前缀,判断网络地址是否匹配,匹配成功则转发分组。实际应用中会搭配压缩技术,进一步提升查找速度。
4.4 网际层控制报文 ICMP
作用:优化 IP 数据报转发效率,提升交付成功率。
1. ICMP 的种类
分为两大类:ICMP 差错报告报文 、ICMP 询问报文。报文通用格式:前 4 字节固定(类型、代码、检验和),后续字段依报文类型变化。
ICMP 差错报告报文(共 4 类)
- 终点不可达
- 时间超过
- 参数问题
- 改变路由
报文构造:提取出错 IP 数据报的首部 + 前 8 字节数据,结合 ICMP 首部,组成差错报告报文。
ICMP 询问报文
- 回送请求 / 回送回答
- 时间戳请求 / 时间戳回答
2. ICMP 的应用实例
PING(分组网间探测):基于 ICMP 回送请求与回送回答报文,检测两台主机之间的网络连通性。
4.5 IPv6
IPv4 地址已耗尽,国内自 2014-2015 年起停止分配新 IPv4 地址,全面部署 IPv6。
1. IPv6 的基本首部
IPv6 支持无连接传输,协议单元称为分组。相比 IPv4 主要改进:
- 地址空间扩大:地址长度由 32 位升级为 128 位;
- 扩展地址层次结构;
- 首部格式灵活,支持拓展首部;
- 首部长度固定,优化选项功能;
- 协议可拓展性更强;
- 支持即插即用;
- 支持资源预分配;
- 首部按 8 字节对齐。
IPv6 数据报组成:基本首部 + 有效载荷(净载荷),有效载荷可包含 0 个或多个扩展首部。
基本首部各字段
- 版本:4 位,固定取值 6,代表 IPv6。
- 通信量类:8 位,区分数据报优先级。
- 流标号:20 位,定义 "流",为特定源到目的的一系列数据报预留网络资源,保障服务质量。
- 有效载荷长度:16 位,标识除基本首部外的字节总数。
- 下一个首部:8 位,等同于 IPv4 协议字段,标识后续扩展首部或上层协议。
- 跳数限制:8 位,限制分组转发跳数。
- 源地址:128 位,发送方地址。
- 目的地址:128 位,接收方地址。
IPv6 扩展首部
逐跳选项、路由选择、分片、鉴别、封装安全有效载荷、目的站选项。
2. IPv6 的地址类型
- 单播
- 多播
- 任播(IPv6 新增):目标为一组主机,数据报仅交付给路由距离最近的一台主机。
术语:IPv6 中将路由器、主机统一称作节点,每个节点的每个接口分配一个 IPv6 地址。
记法:冒号十六进制记法,16 位为一组,组间用冒号分隔;可省略每组前导零,连续全零组可用一对冒号简写。
3. 从 IPv4 过渡到 IPv6
过渡方式兼容演进,IPv6 设备可接收、转发 IPv4 分组。
- 双协议栈:设备同时部署 IPv4、IPv6 协议栈,拥有两类地址。
- 隧道技术:将 IPv6 分组封装在 IPv4 分组中,穿越 IPv4 网络。
4. ICMPv6
IPv6 无可靠传输保障,沿用控制报文协议ICMPv6。原 IPv4 体系中的 ARP、IGMP 功能,均整合至 ICMPv6 中。ICMPv6 用于差错报告、信息探测、邻站发现、多播管理。
4.6 互联网的路由选择协议
内部网关协议 RIP
1. 工作原理
基于距离向量 的路由协议。路由器维护自身到所有目的网络的距离记录。距离定义:直连网络距离为 1,距离也称作跳数。限制:单条路径最大跳数为 15,仅适用于小型网络。
2. 特点
- 仅与相邻路由器交换路由信息;
- 交换内容为自身完整路由表;
- 按固定时间周期交换路由信息。
补充:路由器初始工作时路由表为空;存在坏消息传播慢的缺陷,网络故障信息需要较长时间同步至全网。
内部网关协议 OSPF
1. 工作原理
核心特征:链路状态协议
- 向自治系统内所有路由器发送信息;
- 仅发布自身直连路由器的链路状态信息;
- 链路状态变化时,或定时通过洪泛法同步信息。
全网路由器最终生成统一的链路状态数据库,该数据库等价于全网拓扑图。OSPF 收敛速度快是核心优势。
网络划分:采用分层区域结构,核心为主干区域;其他区域通过区域边界路由器汇总路由信息;主干区域部署自治系统边界路由器,负责跨自治系统路由交互。
2. 特点
- 可为不同路由设置不同代价,适配各类业务;
- 支持多路径负载均衡;
- 路由分组支持身份鉴别;
- 支持可变长子网划分、CIDR 无分类编址;
- 链路状态携带 32 位序号,序号越大代表状态越新。
传输方式:OSPF 分组封装在 IP 数据报中传输。
外部网关协议 BGP
1. 主要特点
作用:连接多个自治系统(AS),是自治系统之间的路由协议。类型:路径向量路由协议,仅选择可用且优质的路由,不追求最优路径。
2. BGP 路由
自治系统内分为边界路由器、内部路由器。两台边界路由器通信前,需先建立 TCP 连接。规则:同一自治系统内的 iBGP 设备要求全连通。
BGP 路由格式:前缀,BGP属性,属性包含 AS-PATH(自治系统路径)、NEXT-HOP(下一跳)。
路由器的组成
- 整体结构:路由选择部分、分组转发部分
- 交换结构:路由器核心硬件构件。
4.7 IP 多播
互联网中的多播称为IP 多播,多播地址仅可作为目的地址,不可作为源地址。
1. 相关协议
网际组管理协议 IGMP:用于局域网内,让多播路由器感知本地主机加入 / 退出多播组。
2. 多播路由选择协议
目标:构建以源主机为根的多播转发树。主流转发方法:
- 洪泛和剪除
- 隧道技术
- 基于核心发现技术
4.8 虚拟专用网 VPN 和网络地址转换 NAT
1. 虚拟专用网 VPN
利用公共互联网作为机构专用网络的通信载体,构建的专用网络即为 VPN。拓展:允许外部机构接入的 VPN,称为外联网。
2. 网络地址转换 NAT
部署位置:专用网接入互联网的路由器上。原理:实现内网地址与全球公网 IP 地址的转换。进阶:结合运输层端口号实现地址转换,称为网络地址与端口号转换,可更高效利用公网 IP 资源。