一、IP
在计算机网络中,IP(Internet Protocol,网际协议)是网络层的核心协议,用于实现跨越不同网络的数据包传输。IP 是 TCP/IP 协议族的核心部分,属于网络层协议,也是 Internet 赖以运作的基础协议之一。
IP 协议负责:
- 为设备分配唯一的IP地址;
- 封装、传输和路由数据包;
- 在多个子网和网络之间转发数据,实现“尽力而为”的交付;
- 提供无连接、不可靠的数据包传输服务。
IP 不保证数据可靠送达,它只负责把数据“尽力送到目标地址”。
核心特点:
特点 | 说明 |
---|---|
无连接 | 不建立连接,直接发送数据包 |
不可靠 | 不保证数据包送达、不重传 |
尽力而为交付 | 有可能丢包、重复或乱序 |
分包和重组 | 超过 MTU 的数据会被分片 |
路由寻址 | 支持通过路由器跨网络转发数据包 |
二、IP 协议的主要版本
协议版本 | 简称 | 说明 |
---|---|---|
IPv4 | Internet Protocol version 4 | 当前主流协议,32位地址 |
IPv6 | Internet Protocol version 6 | 新一代协议,128位地址,解决 IPv4 地址耗尽问题 |
三、IP数据报文结构
参考书——计算机网络 (第8版)- 谢希仁。
1. IPv4报文结构
IPv4 报文头至少 20 字节,结构如下:
- 版本:占4位, 指协议IP的版本,对IPv4该字段是4。
- 首部长度:占4位, 可表示的最大十进制数值是15。请注意,首部长度字段所表示数的单位是32位字长( 1个32位字长是4字节) 。
- 区分服务:占8位, 用来获得更好的服务。
- 总长度:总长度指首部和数据之和的长度, 单位为字节。总长度字段为16位, 因此数据报的最大长度为 2 16 2^{16} 216 - 1 = 65535字节。
- 标识(identifi cation) :占16位。IP 软件在存储器中维持一个计数器, 每产生一个数据报,计数器就加1 , 并将此值赋给标识字段。
- 标志(flag): 占3位。
- 片偏移:占13位。片偏移指出:较长的分组在分片后, 某片在原分组中的相对位置。
- 生存时间:占8位, 生存时间字段常用的英文缩写是TTL (Time To Live), 表明这是数据报在网络中的寿命。
- 协议:占8位, 协议字段指出此数据报携带的数据使用何种协议, 以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。
- 首部检验和:占16位。这个字段只检验数据报的首部, 但不包括数据部分。
- 源地址:占32位。发送IP数据报的主机的IP地址。
- 目的地址:占32位。接收IP数据报的主机的IP地址。
2. IPv6报文结构
IPv6 报文头至少 40 字节,结构如下:
- 版本(version) :占4位。它指明了协议的版本, 对 IPv6 该字段是6。
- 通信量类(traffic class) :占8 位。这是为了区分不同的 IPv6 数据报的类别或优先级, 和IPv4 的区分服务字段的作用相似。目前正在进行不同的通信量类性能的实验。
- 流标号(flow label) :占20位。IPv6 的一个新的机制是支持资源预分配, 并且允许路由器把每一个数据报与一个给定的资源分配相联系。
- 有效载荷长度(payload length) :占16位。它指明 IPv6 数据报除基本首部以外的字节数( 所有扩展首部都算在有效载荷之内) 。这个字段的最大值是64 KB (65535 字节)。
- 下一个首部(next header) :占8位。它相当千 IPv4 的协议字段或可选字段。
- 跳数限制( hop limit ) :占8位。用来防止数据报在网络中无限期地存在。
- 源地址:占128 位。是数据报的发送端的 IP 地址。
- 目的地址:占128位。是数据报的接收端的 IP 地址。
四、IP 地址与子网
1. IP 地址分类(IPv4)
类别 | 范围 | 用途 |
---|---|---|
A | 1.0.0.0 - 126.0.0.0 | 大型网络 |
B | 128.0.0.0 - 191.255.0.0 | 中型网络 |
C | 192.0.0.0 - 223.255.255.0 | 小型网络 |
D | 224.0.0.0 - 239.255.255.255 | 多播 |
E | 240.0.0.0 - 255.255.255.255 | 实验用途 |
IP地址分类图示:
2. 子网掩码
子网掩码(Subnet Mask) 是用于划分网络地址与主机地址的关键机制。
通过子网掩码,我们可以判断两个 IP 地址是否属于同一个子网,并支持将一个 IP 网络进一步划分成多个子网,优化地址使用与网络管理。
工作原理(与运算):
子网掩码通过与 IP 地址进行按位与(AND)运算来提取网络地址:
IP: 192.168.1.10 → 11000000.10101000.00000001.00001010
掩码: 255.255.255.0 → 11111111.11111111.11111111.00000000
网络地址: → 11000000.10101000.00000001.00000000 → 192.168.1.0
五、IP 的关键机制
1. 分片与重组
分片(Fragmentation)与重组(Reassembly)是 IP 协议在传输大型数据包时为适应不同网络链路的最大传输单元(MTU)所采用的重要机制,主要在 IPv4 中使用。
- 当 IP 数据包超过链路的最大传输单元(MTU)时,会被分片传输;
- 接收端将分片重组成原始数据;
- 重组只在目的主机完成,中间路由器不重组。
分片示例:
参考书——计算机网络 (第8版)- 谢希仁。
2. TTL(Time To Live)
- 限制数据包在网络中的“寿命”;
- 每经过一个路由器,TTL 减 1;
- TTL 为 0 时,数据包被丢弃,防止路由环路。
3. 路由与转发
- IP 依靠路由器将数据包从源主机传送到目的主机;
- 每个路由器根据目标IP地址和路由表决定下一跳。
六、IPv4 vs IPv6
项目 | IPv4 | IPv6 |
---|---|---|
地址长度 | 32 位(4字节) | 128 位(16字节) |
地址表示 | 十进制,如 192.168.1.1 | 十六进制,如 2001:0db8::1 |
地址数量 | 约 43 亿个 | 2^128,几乎无限 |
报文结构 | 复杂,支持分片等 | 简化,无中间分片,效率更高 |
NAT 支持 | 支持,常用于节省地址 | 不再需要 NAT,端到端通信 |
安全性 | 无内建安全,需借助IPSec | 内建支持 IPSec 安全机制 |
七、IP 与其他协议的关系
IP 协议本身不提供可靠性,它通过与其他协议配合完成通信:
层级 | 协议 | 作用 |
---|---|---|
传输层 | TCP、UDP | 提供端到端通信(可靠或快速) |
网络层 | IP(本层) | 实现网络间通信与寻址 |
链路层 | Ethernet、Wi-Fi 等 | 实现局域网中的物理传输 |
辅助协议 | ICMP、ARP、DHCP | 支持控制、地址解析、配置等 |
八、典型应用
- IP 是 Web、FTP、SSH、邮件等所有互联网服务的基础;
- 所有设备(服务器、路由器、PC、手机)都必须拥有 IP 地址;
- IP 协议配合路由器和子网规划,实现全球互联网互通。