)
4.1 网络层概述4.1.1 网络层核心任务网络层的核心作用将分组从源主机经过多个网络、多条链路、多台路由器最终传输到目的主机。网络层包含两大核心功能路由选择、分组转发。4.1.2 两大核心功能详解1. 分组转发每一台路由器都会维护一张转发表。路由器从某个接口收到分组后读取分组首部的标识信息查询转发表根据查表结果将分组从合适的接口转发至下一跳路由器或直接交付给目的主机。目的网络前缀子网掩码下一跳 IP出接口(192.168.1.0)(255.255.255.0)直接交付eth0(172.16.2.0)(255.255.255.0)(10.0.0.2)eth1(172.16.0.0)(255.255.0.0)(10.0.0.5)eth2(0.0.0.0)(0.0.0.0)[(10.0.0.2)eth1转发过程只负责查表转发不负责计算路径。2. 路由选择源主机与目的主机之间通常存在多条可达路径网络层需要通过算法选择最优路径传输分组。路由选择负责计算、生成最优路径。路由选择分为三种方式人工路由选择静态路由分布式路由选择集中式路由选择4.1.3 网络层提供的两种服务模型网络层向上层提供两类截然不同的服务面向连接的虚电路服务、无连接的数据报服务。1. 面向连接虚电路服务核心思想可靠通信由网络层保证。工作流程三步先建连接 → 沿虚电路传输分组 → 通信结束释放连接。通信前源主机与目的主机之间在网络层建立一条逻辑虚电路VC全程所有分组沿这条虚电路传输网络提前预留资源。关键区分电路交换建立物理真实连接属于物理层虚电路交换建立逻辑虚拟连接属于网络层。地址使用规则仅在虚电路建立阶段使用完整目的地址数据传输阶段分组首部仅携带虚电路编号VCID无需完整IP地址。2. 无连接数据报服务Internet 真实采用核心思想可靠通信由用户主机运输层保证网络层只负责尽力交付。核心特点通信前无需建立网络层连接通信结束也无需释放连接每个分组独立选路、独立转发不同分组可走不同路径每个分组首部必须携带完整目的IP地址网络层尽最大努力交付不可靠分组可能丢失、出错、重复、失序。将复杂的可靠处理功能放在网络边缘主机、运输层将简单、灵活、尽力交付的不可靠分组交付放在网络核心路由器、网络层大幅降低组网成本、提升网络灵活性、容错性极强。虚电路服务、数据报服务对比4.2 网际协议 IP 与 IPv4 编址体系4.2.1 IP 协议核心作用核心功能异构网络互联。异构网络指拓扑结构、传输性能、底层协议各不相同的网络由用户多样化需求产生。所有异构网络通过路由器互联且统一使用IP协议。从网络层视角所有异构网络被统一成一个逻辑整体——IP网。主机通信时无需感知底层网络的异构差异如同在同一个网络中通信。4.2.2 IPv4 地址定义IPv4 地址为 IP 网中每一个主机、每一个路由器接口分配的全球唯一的32bit 标识符。表示方式点分十进制。4.2.3 IPv4 三大编址发展阶段IPv4 编址方式历经三代演进第一阶段分类编址A、B、C、D、E类第二阶段划分子网编址在分类编址基础上延伸引入子网号第三阶段无分类编址 CIDR当前互联网主流彻底取消ABC类分类概念4.2.4 分类编址分类编址将32位IPv4地址划分为两部分网络号 主机号。只有 A、B、C 类地址可分配给主机、路由器接口使用D类多播、E类保留不可用。两个特殊地址主机号全0代表本网络的网络地址用于标识网段本身不分配设备。主机号全1代表本网段广播地址用于全网段广播不分配设备。A、B、C类地址可指派规则与特殊限制A类地址详细规则A类地址网络号占8比特最高位固定为0剩余7位自由分配。A类网络特殊保留网络号不可指派网络号全00.0.0.0A类最小网络该网络号保留不能分配使用。网络号127.0.0.0A类最大网络剩余7位全1十进制127专门用作本地环回测试网络禁止指派给外网设备。环回地址功能用于本地主机内部进程之间通信。主机发送目的地址为环回地址的IPv4数据包时仅由本机协议软件处理数据不会将数据包发送到任何外部网络。B类、C类地址指派规则B类地址、C类地址无全网保留的特殊网络号所有合规网段均可正常指派使用无需扣除保留网络数量。分类编址的缺点分类编址严格按照A、B、C三类固定网段分配分配方式僵硬、不灵活极易造成IP地址资源浪费。典型举例若某网络需要300个主机地址单个C类网段仅包含256个地址无法满足需求只能分配一个B类网段而一个B类网段拥有65536个地址大量地址闲置造成严重的IPv4地址资源浪费。4.2.5 划分子网编址1. 核心原理在原有分类编址A、B、C类的基础上从主机号部分借用若干比特作为子网号将一个大的标准网段划分为多个更小的子网解决分类编址地址浪费问题。2. 子网掩码作用与规则子网掩码 用于 区分 IP 地址的「网络位」和「主机位」子网掩码中连续的比特1对应IPv4地址的网络号 子网号部分子网掩码中连续的比特0对应IPv4地址的主机号部分。4.2.6 无分类编址 CIDR1. 基本概念CIDR 全称无分类域间路由选择是目前因特网唯一使用的编址方式彻底取消A、B、C类地址分类限制完全基于网络前缀划分网段。2. 斜线记法CIDR 采用斜线记法在IPv4地址后加「/」斜杠后数字代表网络前缀占用的比特位数该位数对应原分类编址的「网络号子网号」总位数。3. CIDR 地址块聚合特性CIDR 支持路由聚合超网将多个网络前缀相同、地址连续的网段合并为一个大的CIDR地址块有效缩减路由表规模。4.3 IPv4 地址应用规划子网划分IPv4地址应用规划本质是将一个大的IP地址块合理切分为若干更小的子网块适配不同规模局域网提升地址利用率。主要分为定长子网划分和变长子网划分两种方式。4.3.1 定长子网划分FLSM使用固定长度子网掩码进行划分划分得到的所有子网子网位数、主机位数、地址总数完全一致。划分规则统一、计算简单但无法适配差异化网络规模仍存在少量地址浪费。4.3.2 变长子网划分VLSM使用不同长度的子网掩码划分子网可根据网络实际主机数量分配大小适配的子网块。灵活性极强最大限度节约IPv4地址资源是工程与考研计算题主流方式存在多种合法划分方案。4.3.3 基于二叉树的子网划分方法二叉树划分法可同时适用于定长、变长子网划分是子网计算题的通用核心思路配套通俗记忆的堵水法逻辑以完整地址块为二叉树根节点从根开始逐层划分每一个需要的子网对应一个「堵水点」占用对应二叉树分支已占用的分支不可重复划分、重复占用划分结束后保证二叉树末端无空闲泄漏地址划分精准无浪费。CIDR 节约地址案例点对点链路路由器之间的点对点专线链路仅需2个可用IP地址两端路由器接口各一个CIDR可精准适配/30 地址块共4个IP地址包含1个网络地址、1个广播地址剩余2个可用主机地址完美适配点对点链路4.4 MAC地址 与 IPv4地址 对比4.4.1 层级归属与作用MAC地址数据链路层地址用于同一局域网内设备帧识别与交付IPv4地址网络层地址用于跨网络、跨路由的分组寻址与交付端口号传输层及上层地址用于主机内部进程间通信区分。4.4.2 传输过程变化规则IP地址IPv4数据报首部的源IP、目的IP全程保持不变不考虑NAT网络地址转换保证端到端通信标识唯一。MAC地址以太网帧首部的源MAC、目的MAC每经过一跳路由器就会刷新变化仅用于当前链路的帧交付。因特网为什么不能只用MAC地址因特网必须同时使用IP地址与MAC地址仅靠MAC地址无法实现全网通信核心原因两点地址结构差异MAC地址是无平面结构的硬件地址无法路由、无法跨网寻址IP地址是层次化结构网络号主机号支持路由聚合、跨网络寻址适配大规模互联网。路由开销巨大若仅使用MAC寻址路由器路由表需要记录全网所有主机、所有接口的MAC地址条目数量爆炸式增长极大占用存储空间、增加查表时延、占用大量网络传输资源完全无法实现。总结IP地址负责跨网络宏观选路只记录网络条目大幅精简路由表MAC地址负责局域网内部微观交付完成单链路帧转发二者分层协作实现全网通信。4.5 地址解析协议 ARP网络通信依靠IP地址选路局域网帧交付依靠MAC地址因此主机需要建立IP地址与本机/局域网设备MAC地址的映射关系。地址解析协议ARP的核心功能根据已知的目标IP地址动态查询获取对应的MAC地址完成网络层IP地址到数据链路层MAC地址的解析实现跨层协同通信。4.5.1 ARP 核心机制与高速缓存每一台主机、路由器接口都维护一张ARP高速缓存表用于临时存储「IP地址—MAC地址」映射条目避免每次通信都重复发送ARP广播提升通信效率。4.5.2 ARP 完整工作流程场景同一局域网内主机A想要获取主机B的MAC地址查询缓存主机A先查找自身ARP高速缓存若无主机B的IP-MAC映射则发起ARP请求。发送ARP广播请求主机A构造ARP请求报文封装在以太网帧中发送。帧特征源MAC主机A MAC目的MAC全F广播地址。 报文内容我A的IP、A的MAC想要查询「B的IP」对应的MAC地址。交换机广播转发广播帧被交换机接收向本网段所有端口广播局域网内所有主机B、X、Y、Z等均收到该帧。非目标主机主机X、Y、Z处理规则 主机X、Y、Z剥帧取出ARP请求解析发现请求查询的IP不是本机IP不响应、不回复。但会主动缓存主机A的IPMAC映射到自身ARP表中。目标主机主机B处理规则 主机B解析ARP请求发现查询IP为本机IP立即记录缓存主机A的IP、MAC。 构造ARP响应报文封装为单播帧回复主机A。ARP单播响应报文帧特征目的MAC主机A的MAC单播。 响应内容我B的IP、B的MAC就是你要查询的主机。主机A接收更新缓存主机A收到单播帧验证目的MAC匹配本机接收报文并将「B的IP-MAC」写入自身ARP高速缓存。4.5.3 ARP 高速缓存的两种条目类型1. 动态ARP条目默认主流自动通过ARP请求/响应学习生成具有时效性、生命周期。生命周期内无通信触发更新则自动超时删除。超时机制原因IP与MAC映射并非永久固定。例如主机更换网卡IP不变但MAC改变旧映射失效必须通过超时更新保证准确性。补充交换机MAC地址表的接口-MAC映射同样具有时效性动态老化。2. 静态ARP条目由管理员手动配置的永久映射条目无过期时间、不会自动覆盖、不会超时删除可手动删除。用途绑定网关、服务器等关键设备映射防止动态ARP更新出错、防止ARP欺骗攻击保障网络稳定安全。4.5.4 跨网段 ARP 工作规则ARP 只能在同一局域网同一广播域生效无法跨网络直接解析。源主机与目的主机跨网段通信时源主机不会解析远端目的主机MAC源主机仅通过ARP解析默认网关的MAC地址将数据发给网关数据每经过一台路由器、进入一段新链路新链路都会重新执行ARP解析只有最后一跳路由器会通过ARP解析真正的目的主机MAC地址完成最终交付。4.5.5 ARP 协议缺陷ARP协议无任何安全校验机制极易被伪造存在ARP欺骗、ARP中毒、中间人攻击等安全漏洞。4.5.6 ARP 终极总结ARP协议用于解决同一广播域内IP地址到MAC地址的映射。主机通过广播ARP请求、单播ARP响应完成地址解析所有收到广播的主机均会缓存源端映射仅目标主机回复响应。ARP缓存分为动态时效条目与静态永久条目。ARP不可跨网络通信跨网段仅解析网关MAC最后一跳解析目的主机MAC。4.6 IPv4 数据报的发送与转发过程4.6.1直接交付 与 间接交付主机发送IPv4数据报分为两种交付方式直接交付源主机与目的主机处于同一个网络同一网段无需经过路由器主机之间直接通信交付数据报。间接交付源主机与目的主机处于不同网络无法直接通信必须交由默认网关路由器中转转发。4.6.2 主机判断同网段/异网段的核心算法源主机判断依据用自身子网掩码分别对自身IP、目的IP做逐比特逻辑与运算对比网络号是否一致。实战举例主机AIP10.1.1.1子网掩码255.255.255.0计算自身网络号A的IP 子网掩码 10.1.1.0判断主机B同网段B的IP A的掩码 10.1.1.0网络号一致 →直接交付。判断主机C异网段C的IP10.2.2.1C的IP A的掩码 10.2.2.0网络号不一致 →间接交付发往网关。与本机网络号相同 → 同网直接交付不同 → 跨网间接交付。4.6.3 路由器对单播IPv4数据报的转发规则1.先校验正确接收的条件路由器收到数据报后必须先校验满足以下条件才会处理转发IPv4首部无校验误码、字段无差错、无非法值、字段完整生存时间TTL未递减至0数据报未超时报废。不满足条件则直接丢弃该数据报。2.查表转发最长前缀匹配原则路由器根据数据报首部的目的IP地址查询转发表。转发表核心条目目的网络、地址掩码、下一跳。当目的IP同时匹配多条路由条目时严格执行最长前缀匹配子网掩码越长、网络前缀越长网段越具体、优先级越高优先匹配转发。3. 路由器对广播数据报的处理路由器隔离广播域路由器正确收到广播IPv4数据报后直接丢弃、不转发有效限制广播风暴跨网络扩散。4.7 IPv4 数据报首部格式IPv4数据报首部结构固定20字节 可变选项字段最大40字节因此IPv4首部总长度范围2060字节。4.7.1 首部核心字段1. 版本字段4bit标识IP协议版本当前全网统一使用版本号4IPv4。通信双方IP版本号必须一致否则无法通信。2. 首部长度字段4bit用于标识IPv4首部的总长度以4字节为单位计数。4bit字段最大取值15对应最大首部长度 15×460字节与IPv4首部最大长度一致。若无选项字段首部长度固定为20字节该字段值为55×420。口诀一总八片首四释义总长度1字节为单位、片偏移8字节为单位、首部长度4字节为单位。3. 首部长度字段取值范围首部长度字段为4bit以4字节为单位最小值 0101十进制55×4 20字节对应无选项的固定首部最大值 1111十进制1515×4 60字节对应固定20字节 最大40字节可变选项填充部分。填充字段规则若添加选项后首部长度无法凑成4字节整数倍则用全0填充字段补齐强制保证首部4字节对齐。4. 总长度字段16bit以1字节为单位表示IPv4首部 数据载荷的总长度。16bit字段最大取值65535字节即IPv4数据报理论最大长度为65535字节。实际受限以太网帧MTU1500字节最大传输单元因此网络中几乎不会出现65535字节的超大IP数据报超长数据报必须分片传输。5. 标识、标志、片偏移分片三大核心字段三个字段配合完成IPv4数据报分片与重组解决IP数据报长度超过链路MTU无法封装的问题。1标识字段16bit源主机每发送一个新IP数据报分配一个唯一标识号。同一个原始数据报拆分出的所有分片标识字段完全相同目的主机依靠该字段区分哪些分片属于同一个原始数据报。2标志字段3bit三位结构最高位保留位 DF位 MF位保留位固定为0协议保留不可更改DF位不允许分片位DF1禁止分片数据报超长直接丢弃DF0允许分片MF位更多分片位MF1 代表后续还有分片MF0 代表当前是最后一个分片无后续分片。3片偏移字段13bit以8字节为单位标识当前分片的数据载荷相对于原始IP数据报数据起始位置的偏移量。硬性规则除最后一个分片外所有前置分片的数据长度必须是8字节的整数倍。分片重组规则目的主机收到所有分片后通过相同标识字段判定同源分片再根据片偏移字段从小到大排序最终完整重组为原始IPv4数据报。6. TTL 生存时间字段8bitTTLTime To Live生存时间字段占8bit用于限制数据报最大转发跳数、防止环路死循环。路由器转发规则路由器每收到一个可转发的IP数据报先将首部TTL字段自动减1再判断减1后TTL 0正常查表转发减1后TTL 0直接丢弃数据报不再转发。完整转发规则补充路由器将TTL减1后仅当TTL≠0时查表正常转发若TTL0直接丢弃该IPv4数据报同时向数据报源主机发送ICMP差错报告报文错误类型为时间超过。TTL核心作用防止因路由错误、路由环路导致IPv4数据报在互联网中无限循环兜圈。若无TTL机制环路数据包会永久占用链路带宽、消耗设备资源造成严重网络资源浪费。TTL拓展应用实现路由跟踪tracert功能利用每跳TTL自动减1、超时报错的特性探测源主机到目的主机的完整转发路径限制IP多播数据报的传播范围用于网络监控、操作系统识别主流系统默认TTL固定Windows默认TTL128Linux默认TTL64。7. 协议字段8bit标识IPv4数据报的数据载荷部分采用的传输层协议PDU类型用于告知目的主机网络层交付数据给上层哪种协议处理。核心固定取值8. 首部检验和字段16bit用于校验IPv4数据报首部在传输过程中是否发生误码、字段出错仅校验首部、不校验数据载荷。只校验首部的原因每经过一台路由器TTL、标志位、片偏移等首部字段大概率会发生改变需要重新计算检验和仅校验首部可大幅减少路由器计算开销提升转发效率。4.7.2 校验算法因特网检验和IPv4不采用复杂的CRC循环冗余校验使用简易反码求和校验运算速度更快、开销更低该算法同样适用于TCP、UDP报文段。1.发送方计算流程将IPv4首部的「首部检验和」字段置全0把整个IPv4首部划分为若干个16比特二进制序列对所有16比特序列执行反码求和运算将最终求和结果按位取反写入首部检验和字段完成封装发送。2.接收方校验流程将接收的IPv4首部再次划分为若干16比特序列统一执行反码求和运算运算结果为全0首部无传输误码数据合法运算结果非0首部出现差错、数据损坏直接丢弃该数据报。3.实例4.算法特点因特网检验和校验精度弱于CRC但运算速度更快、处理效率更高适配路由器高速转发场景IPv6重大优化IPv6取消了路由器首部检验和计算进一步降低转发开销、提升转发速率