1:网络层基础
1:网络层作用
核心作用:在复杂的网络里,在数据中找到从源设备到目标设备的完整路径。
- 类比:数据 = 快递;网络层 = 全国快递路线规划师;数据链路层 = 同城快递员(只送相邻站点)。
- 数据链路层:只负责相邻节点(主机↔路由器、路由器↔路由器)的短距离传输。
- 网络层:负责端到端(源主机→目标主机)的全程路径规划。
- 关键角色:
- 主机:有 IP 地址,不做路由(只收 / 发数据);
- 路由器:有 IP 地址,负责路由转发(分拣数据、找下一站);
- 节点:主机 + 路由器的统称。

2:网络层核心协议:IPv4
我们现在用的网路层协议是IPv4,它定义了两件事:
1:给设备编唯一IP地址;
2:定义数据传输的格式(IP数据抱头)。
2:IPv4数据报头全解析
IPv4 头部是数据的身份证 ,固定 20 字节(无选项),最多 60 字节,所有分片规则都藏在头部里 。我把头部字段分基础款 + 分片专用款,0 基础先记基础,再攻克分片。

| 字段 | 长度 | 作用(通俗版) |
|---|---|---|
| 4 位版本 | 4 位 | 标明是 IPv4(值 = 4) |
| 4 位头部长度 | 4 位 | 头部占多少个 32bit,最大 60 字节 |
| 8 位服务类型 (TOS) | 8 位 | 选传输优先级:最小延时 / 最大吞吐量 |
| 16 位总长度 | 16 位 | 整个 IP 数据报(头 + 数据)的总字节数 |
| 16 位标识 (ID) | 16 位 | 分片核心:同一份数据的所有分片,ID 完全一样 |
| 3 位标志 | 3 位 | 分片核心:控制是否分片、是否还有后续分片 |
| 13 位片偏移 | 13 位 | 分片核心:本片数据在原始数据里的位置 |
| 8 位 TTL 生存时间 | 8 位 | 每过 1 个路由器减 1,到 0 丢弃(防路由循环) |
| 8 位协议 | 8 位 | 告诉上层用 TCP/UDP |
| 16 位首部校验和 | 16 位 | 检查头部是否损坏 |
| 32 位源 IP 地址 | 32 位 | 数据从哪来 |
| 32 位目的 IP 地址 | 32 位 | 数据到哪去 |
| 选项 | 可变 | 极少用,最多 40 字节 |
分片核心:(后面会详细介绍什么是分片)
1:16位标识(ID)
同一个原始数据拆分的所有分片,ID完全相同,接收方靠ID把分片"归为一组"。
2:3位标志位
- 第 1 位:保留,固定为 0;
- 第 2 位:DF(禁止分片) → DF=1 不许分片,超 MTU 直接丢;DF=0 允许分片;
- 第 3 位:MF(更多分片) → MF=1 后面还有分片;MF=0 是最后一片。
3:13位片偏移
- 单位:8 字节(最关键规则);
- 含义:本片数据在原始数据里的起始位置;
- 规则:除最后一片外,其他分片数据长度必须是 8 的整数倍,保证拼接连续。
3:IP地址基础
1:IP地址结构
32位二进制,分4段十进制(如192.168.1.1),分为两部分
网络号:小区名,同一局域网相同
主机号:门牌号,同一局域网唯一

2:老式IP地址分类(A/BC/D/E类)
- A 类 :0.0.0.0 ~ 127.255.255.255,8 位网络号 + 24 位主机号,大型网络用
- B 类 :128.0.0.0 ~ 191.255.255.255,14 位网络号 + 16 位主机号,中型网络用
- C 类 :192.0.0.0 ~ 223.255.255.255,22 位网络号 + 8 位主机号,小型网络用
- D 类:224.0.0.0 ~ 239.255.255.255,多播地址
- E 类:240.0.0.0 ~ 247.255.255.255,保留备用、
缺陷:地址浪费严重,B 类很快耗尽,A 类大量闲置。

3:CIDR无分类编址(现代通用)
为解决地址浪费,引入CIDR ,用子网掩码灵活划分网络号 / 主机号
- 子网掩码 :32 位二进制数,连续 1 + 连续 0,如
255.255.255.0。 - 核心计算 :IP 地址 & 子网掩码 = 网络号(按位与运算)。
- 简洁表示法 :
IP/前缀长度,如192.168.1.10/24,表示子网掩码前 24 位为 1。
4:网段划分
- 同一网段:网络号相同,主机直接通信,无需路由器。
- 不同网段:网络号不同,必须通过路由器转发。
- 示例:
192.168.1.0/24和192.168.2.0/24是不同网段,无法直接通信。
5:特殊IP地址
- 网络地址 :主机号全 0,代表整个网段,如
192.168.1.0/24。 - 广播地址 :主机号全 1,向网段内所有设备发送数据,如
192.168.1.255/24。 - 环回地址 :127.. .*,本机自测,最常用
127.0.0.1,数据不离开本机。
6:私有IP vs 公网IP(RFC 1918 规定)
- 私有 IP :仅局域网内部使用,不接入互联网,免费复用
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
- 公网 IP:互联网唯一地址,由运营商分配,全球唯一。
4:IP分片和组装
1:关键技术MTU(分片的唯一原因)
MTU(最大传输单元)=数据链路层单词能传输的最大数据长度。
以太网默认MTU=1500字节
IP头部20字节->单片机最大数据长度=1500-20=1480字节(1480是8的整数倍,完美适配片偏移)
2:什么是IP分片
当IP数据报总长度>MTU时,无法一次性传输,必须拆分成多个小分片独立传输到目标主机再组装。
类比:快递货车(MTU)最多装 1500 斤,你的包裹 3000 斤,必须拆成 3 个小包裹,分别运输,到收件人再拼回去。
3:分片完整过程
- 检查 MTU:判断数据报是否超过链路最大传输长度;
- 拆分数据:前 N-1 片用最大数据长度(1480 字节),最后一片用剩余长度;
- 设置头部:所有分片 ID 相同;非最后一片 MF=1,最后一片 MF=0;计算片偏移;
- 独立传输:每个分片自己选路由,互不影响;
- 添加头部:每个分片都带独立 IP 头部。
4:组装完整过程
- 分组 :接收方根据ID,把同一份数据的分片归到一起;
- 排序 :根据片偏移,按原始顺序排列;
- 拼接:确认所有分片收齐(最后一片 MF=0),拼接成完整数据报;
- 上交上层:传给 TCP/UDP 处理。
5:关键特性
TCP 完全不知道 IP 层做了分片 / 组装,不用关心拆分和拼接,IP 层全权处理。
6:分片与TCP的配合
- 数据链路层:我最大传 1500 字节(MTU);
- IP 层:TCP 你别发超过 1480 字节的数据,不然我要分片,丢包风险变高;
- TCP:尽量发小数据,避免 IP 分片。
5:网络层配套技术
1:路由
2 :DHCP
自动为局域网主机分配 IP 地址,避免手动配置冲突,路由器自带 DHCP 功能。
3 :NAT(网络地址转换)
4 :IPv6
128 位地址,数量近乎无限,彻底解决 IPv4 地址不足,与 IPv4 不兼容。
-
核心:一跳一跳(Hop by Hop)转发数据,靠路由表导航。
-
路由表规则:匹配目的网络→直接转发;无匹配→走缺省路由。
-
作用:将多个私有 IP 转换为 1 个公网 IP,解决 IPv4 地址短缺。
-
原理:家用路由器 LAN 口(私有 IP)↔WAN 口(公网 IP),逐级转换。