网络层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),逐级转换。

相关推荐
A小辣椒15 小时前
TShark:Wireshark CLI 功能
linux
A小辣椒19 小时前
TShark:基础知识
linux
AlfredZhao21 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao1 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux