网络层IP协议

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/24192.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 :仅局域网内部使用,不接入互联网,免费复用
    1. 10.0.0.0 ~ 10.255.255.255
    2. 172.16.0.0 ~ 172.31.255.255
    3. 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),逐级转换。

相关推荐
执笔画流年呀2 小时前
计算机是如何⼯作的
linux·开发语言·python
不做菜鸟的网工2 小时前
OSPF FA地址
网络协议
香农第18代传人2 小时前
让PowerShell及CMD走代理
tcp/ip
keyipatience2 小时前
4.5 Linux指令和权限
linux·运维·服务器
keyipatience2 小时前
6.linux权限
linux·运维·服务器
小章UPUP2 小时前
自部署 LaTeX/Markdown 写作平台
linux
yunhuibin2 小时前
Linux 7.0 调度器:C 语言面向对象(OOPC)的极致实践
linux·运维·c语言
feng_you_ying_li2 小时前
linux之进程概念:体系结构,操作系统的基本介绍
linux
SilentSamsara2 小时前
TLS/HTTPS 实战:证书链、握手与生产配置
网络·数据库·网络协议·http·https