Linux 网络(07):网络层 — IP 协议

发布时间:2026/11/2 18:59:04

Linux 网络(07):网络层 — IP 协议 如果你在阅读过程中有任何疑问或想要进一步探讨的内容欢迎在评论区畅所欲言我们一起学习、共同成长~ 如果你觉得这篇文章还不错不妨顺手点个赞、加入收藏并分享给更多的朋友噢~引言《 Linux 网络01网络基础概念 》建立了分层认知传输层、网络层位于内核态网络层职责是 地址管理与路由选择《 Linux 网络05传输层协议 UDP 》《 Linux 网络06传输层协议 TCP 》我们吃透了传输层两大协议。但 数据到底怎么从一台主机跨网络送到另一台主机—— 网络层IP 协议理论还没系统补上本章正是网络层第一篇IP 协议。后续篇章ICMP、ARP、路由进阶都在本章骨架上展开。1. 网络层概述1.1 网络层解决什么问题【必考核心】考察形式笔试选择各层职责、一面问答网络层是干什么的、二面追问传输层和网络层的区别。联动《 Linux 网络01网络基础概念 》3.3 TCP/IP 五层或四层模型网络层要解决的问题是地址管理与路由选择就是将数据从一台主机跨网络送到另一台主机。我们对比网络层和已经学过的传输层、数据链路层分清解决范围和职责层解决范围一句话传输层TCP/UDP进程到进程端到端主机 A 的某进程 → 主机 B 的某进程网络层IP主机到主机跨网络路由IP 地址端到端不变数据链路层MAC 帧相邻节点到相邻节点一跳之内的传输源 MAC → 目的 MAC核心认知数据不是从一方的传输层 直接飞 到对方传输层而是逐层封装向下、经网络传输、再逐层解包向上。TCP 提供的是 传输策略真正负责把数据在网络中传输的是 IP 和数据链路层——相当于两栋楼四楼的人互相送东西数据TCP 给出“要送到、丢了重传”的策略下A楼逐层向下封装➡ 问路IP 层路由选择➡ 上B楼逐层向上解包可靠性分工网络层有 把数据送到对方主机的能力但不保证每次成功上层 TCP 靠确认应答 重传兜底最终实现可靠传输。前提是网络层要有送到的能力—— 连能力都没有TCP 再重传也白搭。1.2 基本概念主机、路由器、节点【必考核心】考察形式笔试选择设备职责、场景题数据包到达路由器后干什么。我们先来认识网络传输过程中的三类核心角色概念定义面试注意点主机配有 IP 地址的设备现代笔记本也做路由控制查路由表决定发谁不是 只收发不路由路由器配有 IP 地址、能进行路由控制每个接口一个 IP维护路由表跨网段转发节点主机和路由器的统称判断题常考路径选择路由的本质数据包本身 不认识路只能一跳一跳 问路 —— 每个路由器查看包的目的 IP查自己的路由表告诉它下一跳往哪走。路由表就是路由器的 认路经验。2. IP 协议格式建立了网络层的宏观认知后我们深入到 IP 报文本身从报头结构、分用逻辑到分片机制逐层拆解 IP 协议的工作细节。2.1 报头字段总览【必考核心】考察形式笔试选择字段位宽 / 位置、代码补全位段结构体、一面问答IP 首部多大20 ~ 60 字节。IP 报头 基本报头20 字节必有 选项字段0~40 字节可有可无IP 报头字段如下字段位宽核心作用版本号4 位IPv4 填 4首部长度4 位⚠️ 首部长度以 4 字节为单位不是字节为单位最大 60 字节填 15无选项时填 5服务类型TOS8 位3 位优先权已弃用 4 位 TOS 1 位保留TOS 四选一最小延时 / 最大吞吐 / 最高可靠 / 最小成本ssh 要最小延时ftp 要最大吞吐总长度16 位IP 报头 有效载荷的总字节数区分各报文的关键最大 65535标识id16 位唯一标识主机发送的报文同一数据分片后所有分片 id 相同标志3 位第 1 位保留第 2 位 DF禁止分片超 MTU 直接丢弃第 3 位 MF更多分片最后一个分片置 0片偏移13 位⚠️ 分片相对原数据开头的偏移实际偏移字节数 该值 × 8生存时间TTL8 位最大跳数默认 64每过一个路由器减 1减到 0 丢弃防路由循环协议8 位上层协议类型分用关键6TCP、17UDP、1ICMP联动 05 的 1.2.3首部检验和16 位仅覆盖 IP 首部校验失败直接丢弃源 / 目的 IP各 32 位端到端地址全程不变联动 01 的 4.3.2 地址变化规律选项字段≤40 字节时间戳、记录路由等 IP 报头在内核中本质是一个C 位段结构体和 TCP 报头同理定义一个结构体变量填充各属性字段再拷贝到数据首部。2.2 报头与有效载荷的分离【必考核心】考察形式二面追问IP 怎么知道哪部分是头、哪部分是数据。IP 用定长报头前 20 字节固定 自描述字段4 位首部长度的混合方案分离先读前20 字节提取 4 位首部长度 → 得到报头大小若报头大小 20 字节继续读选项字段剩下全是有效载荷。联动 《 Linux 网络06传输层协议 TCP 》2.2 报头与有效载荷的分离 —— UDP 用定长8 字节TCP 也用定长报头前 20 字节固定 自描述字段4 位首部长度方案。2.3 分用交给上层哪个协议【必考核心】考察形式一面问答IP 层怎么知道交给 TCP 还是 UDP、笔试选择。报头与载荷分离后下一步就是将载荷准确交付给对应的上层协议。IP 层用协议号分用和传输层的端口分用逻辑异曲同工。联动《 Linux 网络01网络基础概念 》 4.2.2 分用IP层 解包后依据报头8 位协议字段决定有效载荷交给谁协议号填 6 交给传输层的 TCP填 17 交给 UDP填 1 交给 ICMP。接收端 IP 层按该字段分用。2.4 分片与组装【必考核心 | 高频易错】考察形式笔试计算题分片表格高频、场景排障大包传不出去、二面追问为什么不建议分片MSS 和 MTU 的关系 。IP 数据报在数据链路层封装成帧帧有最大传输单元限制超限制需要先对 IP 数据报分片再封装成帧传输。联动《Linux 网络01网络基础概念》4.2.1 封装2.4.1 MTU 与 MSS要理解分片的原理首先要理解两个关键概念。①MTU最大传输单元数据链路层一 MAC 帧最多承载的载荷字节数。以太网默认 MTU 1500 字节IP 报头 IP 载荷ifconfig 指令输出中的 mtu 1500 即此值②可以从更上一层设限来避免 IP 分片段在网络层封装成数据报——MSS最大报文段长度TCP 层约定的单段最大数据载荷目的是让 TCP 段封装成 IP 数据报后 ≤ MTU避免 IP 分片。 MSS 不包含 TCP 头和 IP 头常规 MSS 值 1460 1500 − 20IP 头− 20TCP 头。2.4.2 分片过程笔试计算题高频IP 数据报超过 MTU 就必须分片每个分片都封装独立 IP 报头靠三个分片字段协同16 位标识同源同组分片 id 相同 → 用于聚合3 位标志DF1 禁分片MF1 表示 后面还有分片最后一个分片 MF013 位片偏移相对原始数据开头的偏移片偏移 原始数据字节偏移数 ÷ 8→ 除最后一片外每片长度必须是 8 的整数倍。笔试原题必会IP 层要发 4500 字节数据IP 头 20 字节无选项按 MTU1500 分片分片单片总字节标识标志单片原始数据字节总字节 - IP 头原始数据字节偏移数片偏移11500123MF114801480021500123MF1148029601480/818531500123MF1148044402960/8370480123MF16045004440/8555组装规则只发生在目的端 IP 层首片片偏移 0末片MF 0下一片偏移 当前片偏移 当前片数据字节数 ÷ 8组装到 MF0 的片为止。也就是只有片偏移 0 且 MF0 的报文才是未分片的独立报文首片和末片是同一片就是未分片。⚠️三个高频易错分片可发生在源主机也可发生在中途路由器不同网络 MTU 不同进入更小 MTU 网络时路由器再分片组装只在目的端 IP 层中间路由器只转发不组装两端传输层看到的是完整报文所以传输层感知不到分片传输层报头只出现在第一个分片里后续分片可能没有 TCP/UDP 头。2.4.3 为什么不建议分片【高频易错】不分片收到 1 个报文即视为收到。分片后所有分片全部到达并组装成功才算收到任何一个分片丢失视为整组丢弃。 丢包概率放大分片后整体丢包率 ≈ 不分片时单包丢包率 ✖ 分片数。❗ 分片增加重传成本传输层感知不到分片丢分片导致收不到应答就整体重传。那如何避免分片呢—— 如 2.4.1 所说TCP 控制单次交付不超过 MSS从源头降低分片可能性但进入 MTU 更小的网络仍可能被路由器分片。2.5 TTL 与 traceroute【必考核心 | 高频追问】考察形式笔试选择TTL 作用、面试问答traceroute 原理2024-2026 大厂面经高频追问、场景排障路由环路。2.1 报头字段总览 提到字段“生存时间TTL”这里详细说一下。TTL8 位报文最大跳数默认 64常见 64 或 128每过一个路由器 TTL 减 1减到 0 直接丢弃报文防止路由环路导致报文在网络中无限循环——因此TTL 反复减到 0 时说明路由配错形成了环路。TTL 衍生出网络排障中常用的 traceroute 工具如下——traceroute 原理必背源主机依次发送 TTL1、TTL2、TTL3…… 的数据包。 TTL1 的包到第一个路由器TTL 归零被丢弃路由器向源主机回 ICMP 超时消息源主机拿到第一跳路由器地址 TTL2 的包穿过第一个路由器到第二个路由器时 TTL 归零再返回超时消息不断加大 TTL依次拿到每一跳路由器地址拼出整条路径。3. 网段划分搞懂了单份 IP 报文的传输逻辑后我们把视角放大到整个网络体系。思考一下如何提高路由效率先找目标网络再找目标主机网段划分一次排除一整网段的主机。3.1 IP 地址的构成网络号 主机号【必考核心】考察形式笔试选择/24 含义、一面问答同一网段怎么判断、计算题。同一网段内网络号相同、主机号必须不同不同网段网络号必须不同、主机号可以相同。3.2 五类 IP 地址划分【高频易错笔试偶见】考察形式笔试选择某 IP 属于哪类、判断题。近年校招笔试频率下降仍需掌握首比特规律。类别首比特取值范围A 类00.0.0.0 ~ 127.255.255.255B 类10128.0.0.0 ~ 191.255.255.255C 类110192.0.0.0 ~ 223.255.255.255D 类1110224.0.0.0 ~ 239.255.255.255E 类1111240.0.0.0 ~ 247.255.255.255判断类别就看前几位比特中第一个 0 出现的位置。3.3 CIDR 与子网掩码【必考核心】考察形式笔试计算题高频牛客题霸同型原题、手写按位与、一面问答子网掩码是干什么的。传统五类 IP 地址固定网络位长度即“/数字”浪费地址因此诞生了CIDR无类别域间路由用子网掩码32 位二进制前面连续 1 对应网络号后面连续 0 对应主机号自由指定网络位长度按需划分子网。核心运算必会网络号 IP 地址 子网掩码二进制按位与前 28 位是网络号的子网掩码即“/28”为例IP140.252.20.6810001100.11111100.00010100.01000100子网掩码255.255.255.24011111111.11111111.11111111.11110000前 28 位连续 1 是网络号后 4 位连续 0 是主机号网络号140.252.20.6410001100.11111100.00010100.01000000网段可以反复划分网段越小容纳主机越少主机位位数越少。比如 /28IP 地址的 4 位主机号取值 (0000, 1111)子网范围 (140.252.20.64, 140.252.20.79)主机位缩为 2 位时子网范围 (140.252.20.64, 140.252.20.67)。3.4 特殊 IP 地址【高频易错】考察形式笔试选择哪些 IP 不能做主机地址、计算题某子网可用主机数。特殊地址含义主机位全 0网络号代表这个局域网不能做主机地址主机位全 1广播地址给同链路所有主机发数据不能做主机地址127.*本机环回loopback通常是 127.0.0.1✅可用主机数 2^ 主机位数 − 2减网络号、广播地址。笔试计算题主机 IP 192.168.1.66/26求网络号、广播地址、可用主机数思路子网掩码 11111111.11111111.11111111.11000000主机号 66 的二进制 01000010按位与得网络号 192.168.1.64将该主机 IP 192.168.1.66 主机位全置 1 得广播地址 192.168.1.127可用主机 62 台。环回原理【进阶拔高】loopback 环回本机发往本机的 IP 包不走物理网卡IP 输出后直接送入本机 IP 输入队列完整走一遍协议栈封装和解封装流程用于测试本机网络功能是否正常。3.5 DHCPIP 的动态管理【冷门了解】作用给子网内新增主机自动分配 IP回收断开主机的 IP集中管理大型局域网常见细节基于UDP的应用层协议联动 05 的 3.7 基于 UDP 的协议一般路由器都带 DHCP 功能。近年极少考察仅理论拓展记住 路由器≈DHCP 服务器、动态分配 IP 即可。4. IP 地址的数量限制4.1 为什么 43 亿IPv4不够用【冷门了解】IPv4 共 2³² ≈ 43 亿地址但特殊地址不可用、一台主机可能多个 IP、70 亿人口、联网设备爆发式增长、路由器等设备也占地址。CIDR 只提高利用率没增加 IP 地址绝对上限。4.2 三种方式解决 IP 不足【必考核心】考察形式笔试选择下列哪个是解决 IP 不足的方式、一面问答IPv6 和 IPv4 区别。方案要点考频动态分配 IPDHCP只给接入设备分配同一设备每次接入 IP 可能不同冷门了解NAT私网 IP 共用公网 IP还顺带隐藏内网主机、防外部攻击⭐必考详见第 5 章IPv6128 位16 字节地址缓解枯竭⭐必考不是 IPv4 的升级版互不相干、互不兼容目前未普及 IPv65. 私网 IP 和公网 IP5.1 私有 IP 范围RFC 1918【必考核心】考察形式笔试选择哪个是私网 IP、一面问答什么是私有 IP私有网段地址数10.*前 8 位网络号16,777,216172.16.* ~ 172.31.*前 12 位网络号1,048,576192.168.*前 16 位网络号65,536其余为公网 IP。私网 IP 只用于局域网内部通信不能直接出现在公网上不同局域网 IP 可重复无法全局唯一标识主机。我们可以在 CentOS7 服务器查看 IP 为什么私网 IP 不能直接上公网高频追问私网 IP 无法唯一标识公网主机不同局域网可重复正因为可重复才能缓解 IP 不足数据必经运营商设备也不可能绕开。两个局域网的主机不能不跨公网通信高频易错私网 IP 可能相同把目的 IP 填成和自己相同 → 操作系统认为是发给自己的根本不会外发。聊天数据都是经公网服务器中转的。5.2 LAN 口 / WAN 口与 NAT【必考核心】考察形式一面问答NAT 是什么 为什么内网设备能共用一个公网 IP、二面追问NAT 原理、内网穿透。了解了私网地址的范围后我们以家用路由器场景为例看看私网地址如何通过 NAT 技术转换为公网地址实现多设备共享公网 IP 上网。LAN 口子网 IP如 192.168.1.1/24连本地网络WAN 口外网 IP连上游网络路由器层级家用路由器 → 运营商路由器 → … → 最外层 WAN 口是公网 IP。每个家用路由器又是上一级路由器的子网节点不同路由器子网 IP 可以相同都是 192.168.1.1子网内主机 IP 不能重复。NAT网络地址转换子网内主机出外网时路由器把 IP 报头源 IP 逐级替换为 WAN 口 IP最终变成公网 IP回包按映射表还原转发给内网主机。家用路由器实际是NAPT/PAT同时转换地址 端口让多台内网设备共用一个公网 IP。为什么给运营商交钱网络基础设施基站、骨干路由器、光缆是运营商搭建的数据必须经过运营商网络才能到达服务器 —— 交网费≈买入网许可。6. 路由路由转发不是一步直达的而是采用逐跳转发的模式。6.1 一跳一跳 问路【必考核心】考察形式笔试选择一跳定义、一面问答路由过程是怎样的。联动《Linux 网络01网络基础概念》4.3.2 地址变化规律数据路由是Hop by Hop 问路到达路由器 → 查看目的 IP → 查路由表 → 决定下一跳直接发给目标主机还是发给下一个路由器→ 反复直到目标。⚠️一跳 定义高频易错一跳 数据链路层中的一个区间以太网中指从源 MAC 地址到目的 MAC 地址之间的帧传输区间。MAC 地址每跳一变IP 地址端到端不变—— 路由改的是 MAC不改 IP。6.2 路由表与 route 命令【必考核心 | 实操必备】考察形式场景排障ping 不通查路由表、一面问答路由表怎么匹配。每个路由器 / 主机内部维护路由表route -n查看CentOS7列含义Destination目的网络地址Gateway下一跳地址Genmask子网掩码FlagsU 条目有效G 下一跳是路由器无 G 表示目的网络与本机接口直接相连不用路由器转发Iface发送接口✅匹配过程目的 IP 依次与每条路由的Genmask 按位与→ 结果等于该条Destination则匹配从Iface发出都不匹配 → 走default缺省路由交给下一跳路由器继续问路default行 Flags 通常是 UG。先找目标网络再在目标网络里找目标主机。6.3 转发过程实例【必考核心】考察形式笔试 / 场景题目的地址 192.168.56.3 从哪个接口发出——PDF 原例必会例 1目的 192.168.56.3 → 与第一行掩码 255.255.255.0 按位与得 192.168.56.0 ≠ 第一行 192.168.10.0与第二行按位与得 192.168.56.0 第二行 Destination →从 eth1 发出。且 192.168.56.0/24 与 eth1 直连直接发给目的主机不经路由器。例 2目的 202.10.1.2 → 与前三行都不匹配 →走 default从 eth0 发出交给 192.168.10.1 路由器由它继续按自己的路由表决策。 面试答法路由匹配 最长前缀匹配思想的简化版—— 逐条按位与比对命中直连路由直接发否则走缺省路由逐跳转发。6.4 路由表生成算法【冷门了解】近年极少考察仅理论拓展能说出 静态 / 动态的分类 Dijkstra 是最短路径算法 即可。静态路由管理员手工配置动态路由算法自动生成、自适应调整代表性算法距离向量算法如 RIP、LS 算法如 OSPF、Dijkstra 最短路算法。
延伸阅读

更多相关文章

2026/11/2 18:59:04

SQL必知必会 8-9

本文是个人学习笔记,学习素材参考《SQL必知必会(第5版)》,仅用于个人学习记录,非商用。样例数据、练习思路来自该书。八.使用函数处理数据8.1函数SQL函数不可移植,意味着为特定SQL实现编写的代码在其他实现…

2026/11/2 18:53:59

Scala Array操作:从定长数组到ArrayBuffer的完整指南

Scala的Array就是Java数组的封装,但Scala给它装上了集合操作的"超能力"。索引访问、map/filter、与List互转——让数组处理从Java的for循环中解放出来。 如果你从Java转到Scala,第一次用数组时可能会有疑问:Scala的Array和Java的数…

2026/11/2 18:53:59

MonoGame 跨平台游戏开发:30 分钟写出一个能动的方块

MonoGame 跨平台游戏开发:30 分钟写出一个能动的方块 【免费下载链接】MonoGame One framework for creating powerful cross-platform games. 项目地址: https://gitcode.com/gh_mirrors/mo/MonoGame 你手上有一个很小的创意:一个方块在窗口里移…

2026/11/2 19:59:17

Generative UI 工程化实践:JSON 驱动的声明式 UI 协议

1. 项目概述:这不是一个“渲染库”,而是一套 Generative UI 的工程化契约你点开 Vercel Labs 的json-render仓库,第一眼看到的可能是个轻量级 JSON 渲染器——输入一段结构化 JSON,输出对应的 React 组件树。但如果你真这么理解&a…

2026/11/2 19:59:17

Maven私有仓库依赖解析失败排查指南

1. 私有仓库依赖解析失败现象分析 当Maven构建过程中出现 [ERROR] Failed to execute goal on project example-thirdparty-app: 错误时,90%的情况都与依赖解析机制相关。典型报错会伴随以下关键信息: [ERROR] Failed to execute goal on project ex…

2026/11/2 19:59:17

C-NCAP 2024版规则拆解:碰撞速度、SC-MDB与星级得分变化

简介:《C-NCAP管理规则(2024年版)》面向汽车安全研发、测试认证、法规研究及购车参考人群,系统梳理中国新车评价规程的管理框架与评价办法,适合汽车工程、检测认证、法规合规与购车决策等场景查阅。压缩包内为1个PDF文…

2026/11/2 19:59:17

AI因子造假识别与过拟合排查:量化策略验证全流程

最近社群里的画风变得很快。以前大家问的是“这个策略回测怎么样”,现在直接变成“我用AI批量生成了几十个因子,回测年化百分之两三百,能不能直接用”。老实说,看到这类问题我第一反应不是兴奋,而是先把放大镜找出来。…

2026/11/2 19:54:16

具身智能世界模型:技术原理与应用实践

1. 具身智能世界模型的概念解析 具身智能世界模型(Embodied AI World Model)是当前人工智能领域最具突破性的研究方向之一。简单来说,它是指让AI系统通过物理或虚拟的"身体"与环境互动,从而构建对世界的理解和预测能力。…

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:08:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑