【网络】7.网络层:IP 协议详解

目录

[一、IP 协议的作用与构成](#一、IP 协议的作用与构成)

[1. IP 的作用](#1. IP 的作用)

[2. 唯一性标识](#2. 唯一性标识)

[3. IP 报头结构](#3. IP 报头结构)

二、子网划分

[1. 网络的设计思想](#1. 网络的设计思想)

[2. 信息发送过程](#2. 信息发送过程)

[3. 网段划分](#3. 网段划分)

[4. 子网划分方法](#4. 子网划分方法)

[5. 特殊 IP 地址](#5. 特殊 IP 地址)

[三、IP 地址数量限制](#三、IP 地址数量限制)

[1. IPv6](#1. IPv6)

[2. 动态分配](#2. 动态分配)

[3. 私有 IP 和公网 IP](#3. 私有 IP 和公网 IP)

[4. NAT(网络地址转换)](#4. NAT(网络地址转换))

[5. 运营商的作用](#5. 运营商的作用)

[6. 消息传输过程](#6. 消息传输过程)

[7. 路由细节](#7. 路由细节)

[四、IP 分片与重组](#四、IP 分片与重组)

[1. MTU(最大传输单元)](#1. MTU(最大传输单元))

[2. IP 报头中的分片相关字段](#2. IP 报头中的分片相关字段)

[3. 分片组装](#3. 分片组装)


一、IP 协议的作用与构成

1. IP 的作用

IP 协议提供一种能力:将数据从 A 主机跨网络传输到 B 主机。

"能力"的理解

  • 有很大概率能送到,但难免会失手(不可靠)

  • 如果网络需要 100% 送到对方,需要 TCP 参与

分工

  • TCP:提供策略(丢包重传、流量控制等)

  • IP:提供能力(尽力而为地传输数据包)

能力 + 策略 = 可靠的数据传输

2. 唯一性标识

层级 标识 作用
IP 层 IP 地址 标识主机(主机到主机)
TCP/UDP 层 端口号 标识进程(进程到进程)

IP 地址 = 目标网络号 + 目标主机号

  • 同一个网络内,主机编号不同

  • 不同网络,网络编号不同

3. IP 报头结构

IP 报头基本长度为 20 字节,选项部分可变,总长度范围 [20, 60] 字节。

字段 长度 说明
4 位版本号 4 位 IPv4 固定为 4
4 位首部长度 4 位 单位是 4 字节,最大值 15,因此报头最大 60 字节
8 位服务类型 8 位 3 位废弃,1 位置 0,4 位可选(低延迟、高吞吐、高可靠等)
16 位总长度 16 位 整个 IP 数据报的长度(报头 + 数据)
16 位标识 16 位 标识一组分片,同一数据报的分片标识相同
3 位标志位 3 位 1 位保留,1 位禁止分片(DF),1 位更多分片(MF)
13 位片偏移 13 位 分片在原始数据报中的位置(单位 8 字节)
8 位生存时间 8 位 TTL(Time To Live),每经过一个路由器减 1,到 0 丢弃
8 位协议 8 位 上层协议类型(6=TCP,17=UDP)
16 位校验和 16 位 只校验 IP 报头,确保报头正确性
32 位源 IP 地址 32 位 发送方 IP
32 位目标 IP 地址 32 位 接收方 IP
选项 可变 可选字段,用于扩展功能

关键字段详解

8 位生存时间(TTL)

  • 网络结构复杂,可能存在环路

  • 每经过一个路由器,TTL 减 1

  • 当 TTL 变为 0 时,路由器丢弃该数据报

  • 防止数据报在网络中无限循环

16 位校验和

  • 只校验 IP 报头,不校验数据

  • 确保报头在传输过程中没有被损坏

  • 可能因磁场等原因导致比特位翻转

二、子网划分

1. 网络的设计思想

网络是几十年发展的产物,是经历几十年建设的,并且是很早就被设计过的。

理解报文路由,核心是要理解网络是如何被设计的。

2. 信息发送过程

text

复制代码
主机 → 路由器 → 对方路由器 → 对方主机
 内网转发     公网转发      内网转发

为什么这样设计?

发送消息就是找到对方主机的过程,寻找就是一个排除错误的过程。

划分子网的好处:

  • 将查找目标计算机 → 查找目标网络

  • 一次排除一群不是目标的主机

  • 大大提升查找效率

3. 网段划分

在子网中新增一台主机:

  • 它的网络号必须和子网网络号一致

  • 它的主机号不能和子网中其他主机重复

IP 分配

  • 电脑连接路由器后,路由器通过 DHCP 协议自动分配 IP 地址

  • 路由器有构建子网的功能

  • 路由器自己的主机号往往是 1(如 192.168.1.1)

4. 子网划分方法

传统分类划分法:将 IP 地址分为 A、B、C 等类网络

类别 网络号位数 主机号位数 特点
A 类 8 位 24 位 用于大型网络
B 类 16 位 16 位 用于中型网络
C 类 24 位 8 位 用于小型网络

问题:随着上网设备增多,这种划分方式导致 IP 浪费

  • A 类网有 24 位主机号,但一个组织很难有这么多机器

  • 大量 IP 地址被浪费

解决方案:子网掩码

子网掩码是一个 32 位的数字:

  • 前面连续为 1(表示网络号部分)

  • 后面连续为 0(表示主机号部分)

text

复制代码
子网掩码 & IP 地址 = 网络号

子网掩码为 1 的位才对网络号有效。

优势

  • 不区分 A、B、C 类网络

  • 可以将用不到的主机号位转为网络号位

  • 提高 IP 地址利用率

示例:

  • IP:192.168.1.10

  • 子网掩码:255.255.255.0

  • 网络号:192.168.1.0

  • 主机号:10

5. 特殊 IP 地址

地址 含义
网络号 + 主机号全 0 代表整个局域网(如 192.168.1.0)
网络号 + 主机号全 1 广播地址(如 192.168.1.255)
127.x.x.x 本地环回地址(通常用 127.0.0.1)

三、IP 地址数量限制

IPv4 地址总量约为 43 亿,如果每个设备都有一个公网 IP,显然不够用。

1. IPv6

  • 用 128 位(16 字节)表示一个 IP 地址

  • 数量极其庞大,理论上可以给地球上的每一粒沙子分配一个 IP

2. 动态分配

  • 路由器只给当前联网的设备分配 IP

  • 设备下线后,IP 可以被回收重用

3. 私有 IP 和公网 IP

私有 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。

路由器本身有构建子网、给子网主机分配 IP 的能力。

4. NAT(网络地址转换)

路由器的接口

  • WAN 口:连接上层网络(公网)

  • LAN 口:连接子网设备

有的路由器 WAN 口连接到公网 IP,就是公网出入口路由器。

数据发送过程

  1. 内网主机(192.168.1.3)发送数据到公网地址

  2. 由于源 IP 是内网地址,在公网中不可路由

  3. 每经过一个路由器,路由器将自己的 WAN 口 IP 替换到源 IP 字段

  4. 到达公网出入口路由器时,源 IP 已经被替换为公网 IP

  5. 公网中用设计好的规则找到目的地

  6. 返回时,路由器根据 NAT 表将目标 IP 替换回内网 IP

这个过程就叫 NAT(Network Address Translation)

优点

  • 多个内网设备可以共享一个公网 IP

  • 内网 IP 可以重复(不同局域网),不影响通信

5. 运营商的作用

  • 上层路由器由运营商管理

  • 如果费用欠费等,运营商可以选择不向上转发报文

  • 这就是"连不上网"的原因之一

6. 消息传输过程

公网 IP 可以根据地区向对应机构申请获得,IP 的前 8 位(A 类网络)表示一个地区。

一个地区能拥有的 IP 数量,决定了该地区网络的规模。

示例:5.1.10.2 发送到 6.2.15.2

  1. 子网掩码 255.0.0.0,从 5 开头转发到 6 开头

  2. 6 地区收到,掩码变为 16 位,找到 6.2 开头

  3. 6.2 地区服务器收到,通过网络码确定没问题,继续向下转发

  4. 直到转发到目的地

7. 路由细节

路由器既对内又对外,内部会存储:

  • 上一层路由器的信息

  • 平级路由器的信息

路由:在复杂的网络结构中找出一条通往终点的路线。

查路由表结果

  • 查到下一条:转发给指定的下一跳路由器

  • 没查到:走 default 缺省路由,从 eth0 扔出去交给其他路由器

缺省路由就是进行内网转发的地方。

四、IP 分片与重组

1. MTU(最大传输单元)

  • 数据链路层最大传送单元 MTU 固定为 1500 字节

  • 如果 IP 数据报超过 MTU,就要在 IP 层进行分片

  • 分片与上下层无关

问题

  • 由于 IP 层与上下层解耦,丢一片就等于整个数据报全丢

  • 分片会增加丢包概率

最佳实践:尽量做到不分片

  • 传输层(TCP/UDP)交给 IP 层的数据要控制大小

  • 让一个报文刚好小于 MTU(考虑 IP 报头)

2. IP 报头中的分片相关字段

16 位标识

  • 表示一组分片

  • 同一数据报的所有分片标识相同

3 位标志位

  • 第 1 位:保留

  • 第 2 位:DF(Don't Fragment)- 禁止分片,如果报文超过 MTU 就直接丢弃

  • 第 3 位:MF(More Fragments)- 更多分片,最后一片为 0,其它为 1

13 位片偏移

  • 表示当前分片在原始数据报中的位置

  • 单位是 8 字节(因为 13 位不够表示所有字节偏移)

3. 分片组装

判断分片

  • 标志位 MF = 1:是分片的一部分(不是最后一片)

  • 标志位 MF = 0 且片偏移 ≠ 0:是分片的最后一片

  • 标志位 MF = 0 且片偏移 = 0:不是分片(完整数据报)

组装过程

  1. 将相同 16 位标识的分片收集到一起

  2. 按片偏移升序排序

  3. 检查完整性:如果一片的偏移 + 大小 ≠ 下一片的偏移,说明有分片丢失

  4. 组装完成后交给上层协议处理

相关推荐
德迅云安全-如意2 小时前
DDoS是什么?遇到后有哪些解决方法?
网络·安全·ddos
木井巳2 小时前
【网络原理】HTTP协议
java·网络·网络协议·http·fiddler
BianHuanShiZhe2 小时前
google浏览器设置http安全
网络·网络协议·http
X档案库2 小时前
【ROS2】ROS 2 中 Unique Network Flow Endpoints(唯一网络流端点)的简介与使用
网络
TechubNews2 小时前
從25Q4及全年財報數字看燦谷(Cango Inc)戰略轉向AI
网络·人工智能·web3·区块链
什么时候才能变强3 小时前
WebSocket 接口测试常见坑与解决方案
网络·websocket·网络协议
the sun343 小时前
计算机网络:数据链路层协议(2)
网络·网络协议·计算机网络
EasyDSS3 小时前
EasyDSS视频流媒体WebRTC技术解析:智慧校园直播、点播与会议一体化融合实践
运维·网络·人工智能·架构·音视频·m3u8·点播技术
袁小皮皮不皮3 小时前
【HCIA】第二章 ipv4协议以及子网划分与集合
linux·运维·服务器·网络·网络协议·tcp/ip·信息与通信