进阶 #network#ip#ipv4

IP 协议与 IPv4 地址

IP(Internet Protocol)是互联网的"寻址系统"——每个设备有唯一的 IP 地址,路由器根据 IP 地址把数据包从源头发送到目的地

🏠 互联网的”门牌号”

你在淘宝下单——快递员怎么把包裹送到你手上?你的地址(门牌号)告诉快递员的。

IP 地址就是计算机在互联网上的”门牌号”——每个连接到互联网的设备都有一个唯一的 IP 地址(或通过 NAT 共享)。

📐 IP(Internet Protocol,互联网协议) 的核心:

  • 给每个设备分配唯一的地址
  • 把数据包从源 IP 路由到目标 IP
  • 尽力而为——包可能丢、乱序、重复,IP 层不保证可靠(那是 TCP 的工作)

📮 IPv4 地址

IPv4 地址是 32 位二进制数——写成方便人类看的”点分十进制”:

32 位二进制:
11000000 10101000 00000001 00000001
↓ 每 8 位(1 字节)转成十进制
192.     168.     1.       1

所以:192.168.1.1 是一个 IPv4 地址

IPv4 地址总数:2³² ≈ 42.9 亿个。听起来很多,但全球设备数量远超 43 亿——这就是为什么 IPv4 地址早就用完了。

IP 地址的组成部分

IP 地址分为两部分——就像快递地址:北京市 + 海淀区中关村大街5号

网络号:城市(标识网络)
主机号:具体房号(标识设备)

子网掩码:告诉计算机"哪部分是网络号,哪部分是主机号"
255.255.255.0 = /24 = 前 24 位是网络号

IP 地址分类

类别范围默认掩码用途
A 类1.0.0.0 - 126.255.255.255/8大型网络
B 类128.0.0.0 - 191.255.255.255/16中型网络
C 类192.0.0.0 - 223.255.255.255/24小型网络(宿舍、家庭)

特殊 IP 地址

地址含义
127.0.0.1localhost(本机回环地址)——自己访问自己
0.0.0.0表示”所有 IP”或”当前网络”
255.255.255.255广播地址——发送给同一网络的所有设备
10.x.x.x / 172.16-31.x.x / 192.168.x.x私有 IP——局域网内使用,不上互联网

📦 IP 数据包格式

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
┌───────────────┬───────────────────────────────────────────────┐
│ 版本 │ 头部长度│  服务类型    │          总长度                │
├───────────────┼───────────────────────────────────────────────┤
│         标识                  │标志│       片偏移              │
├───────────────────────────────┴───────────────────────────────┤
│  生存时间(TTL) │   协议      │          头部校验和            │
├───────────────────────────────────────────────────────────────┤
│                       源 IP 地址                              │
├───────────────────────────────────────────────────────────────┤
│                      目标 IP 地址                            │
├───────────────────────────────────────────────────────────────┤
│                    选项(可选,通常为空)                      │
├───────────────────────────────────────────────────────────────┤
│                          数据                                 │
└───────────────────────────────────────────────────────────────┘

IP 头部的关键字段

字段大小作用
版本4 位IPv4 或 IPv6
TTL8 位最大跳数——每经过一个路由器减 1,到 0 就丢弃(防止死循环)
协议8 位上层协议——6=TCP、17=UDP
源 IP32 位发件地址
目标 IP32 位收件地址
# 查看本机 IP 地址
$ ip addr show               # Linux
$ ifconfig                   # macOS/Linux
$ ipconfig                   # Windows

# traceroute——看 IP 数据包经过哪些路由器
$ traceroute www.baidu.com
traceroute to 39.156.66.10, 30 hops max
 1  192.168.1.1     (家里路由器)
 2  10.0.0.1        (运营商网关)
 3  202.96.0.1      (城市出口)
 4  ...

TTL 的作用traceroute 利用了 TTL——先发 TTL=1 的包(第一个路由器丢弃并发回 ICMP 超时),再发 TTL=2……从而逐跳探测路径上的每个路由器。


📝 小结

概念一句话
IP 地址互联网的”门牌号”——32 位二进制(IPv4)
网络号 + 主机号城市 + 房号——由子网掩码区分
TTL最大跳数——防止 IP 包在网络中死循环
私有 IP192.168.x.x / 10.x.x.x——局域网内部使用
尽力而为IP 层不保证可靠——丢包、乱序、重复都可能发生