飞翔飞翔
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • 学习路径
  • IP协议

    • 认识 IP 协议与网络层定位
    • IPv4 编址体系与分类地址
    • CIDR 与子网划分实战
    • IPv6 编址体系
    • ARP 协议详解
    • NDP 协议详解
    • IGMP 与 MLD 组播侦听发现
    • VRRP 与网关冗余
    • IPv4 数据报首部解析
    • IPv6 数据报与扩展首部
    • IPsec 安全扩展
    • 分片、MTU 与路径发现
    • ICMP 与 Traceroute 原理
    • 路由基础与转发流水线
    • 动态路由协议
    • NAT 网络地址转换
    • DHCP 与自动配置
    • Wireshark 与命令行工具
    • IPv6 过渡技术
    • IP 协议栈排障与攻击防御
  • TCP协议

    • 认识 TCP 协议与传输层定位
    • TCP 报文段首部解析
    • 三次握手与连接建立
    • 四次挥手与连接释放
    • TCP 有限状态机
    • 序列号与确认机制
    • 超时重传与 RTO 计算
    • 滑动窗口与流量控制
    • 拥塞控制基础
    • 现代拥塞控制算法
    • TCP 选项与扩展
    • TCP 性能调优与内核参数
    • Nagle 算法与糊涂窗口综合征
    • TCP 定时器与 Keep-Alive 机制
    • TCP 安全与攻击防御
    • TCP 与上层/下层交互
    • TCP 综合实践与排障

IPv4 编址体系与分类地址

为什么需要 IP 地址

MAC 地址(如 00:1A:2B:3C:4D:5E)是网卡的"身份证号",出厂就烧录,全球唯一。但它是扁平的、无结构的——你无法从 MAC 地址看出这台设备在哪个城市、哪个楼层。

IP 地址是分层的、有结构的,就像"广东省广州市天河区xxx路xx号",路由器看到前缀就能决定"往南方走"还是"往北方走"。IP 地址是为了路由而生。

IPv4 地址的构成

IPv4 地址是 32 位二进制数,通常写成 点分十进制(Dotted Decimal),如 192.168.1.1。每段 8 位(1 字节),范围 0-255。

把 192.168.1.1 展开:

192 = 11000000
168 = 10101000
  1 = 00000001
  1 = 00000001

32 位意味着 IPv4 地址空间只有 2³² ≈ 43 亿 个地址,不够全球人手一个,所以才有了后来的 NAT 和 IPv6。

分类编址:A/B/C/D/E 五类地址

早期互联网把地址分成五类,就像把电话号码分成"本地号""长途号""特服号":

类别首字节范围默认掩码用途网络数每网主机数
A0~127255.0.0.0 (/8)大型网络12816,777,214
B128~191255.255.0.0 (/16)中型网络16,38465,534
C192~223255.255.255.0 (/24)小型网络2,097,152254
D224~239无组播--
E240~255无保留实验--

判断技巧:看第一个十进制数,就像看手机号段:

  • 138 开头是中国移动 → A 类
  • 186 开头是中国联通 → B 类
  • 133 开头是中国电信 → C 类

具体例子

  • 10.0.0.1:10 在 0~127 之间,A 类
  • 172.16.0.1:172 在 128~191 之间,B 类
  • 192.168.1.1:192 在 192~223 之间,C 类
  • 224.0.0.1:224 在 224~239 之间,D 类(组播)

上图直观展示了五类地址的分布范围。判断时只需看第一个十进制数落在哪个区间,即可快速分类。

私有地址空间(RFC 1918)

不是所有地址都能在互联网上公开路由。RFC 1918 规定了三个私有地址范围,就像小区内部的门牌号,只在局域网内有效:

地址块范围可容纳主机数常见场景
10.0.0.0/810.0.0.0 ~ 10.255.255.2551600 万+大型企业、云厂商
172.16.0.0/12172.16.0.0 ~ 172.31.255.255100 万+中型企业
192.168.0.0/16192.168.0.0 ~ 192.168.255.2556.5 万+家庭路由器、小型办公

生活例子:你家小区叫"幸福里",1 号楼 2 单元 301。全国可能有 100 个"幸福里",但邮递员只认你所在城市的"幸福里"。私有地址同理——192.168.1.1 可能存在于千万个家庭路由器中,但出小区(出网关)后,NAT 会把它换成公网地址。

特殊地址备忘录

地址/范围含义用途
0.0.0.0/8本网络启动时临时使用,表示"我还不知道自己在哪"
127.0.0.0/8环回(Loopback)127.0.0.1 = localhost,数据包不离开本机
255.255.255.255受限广播只在本子网内广播,路由器不转发
169.254.0.0/16链路本地(APIPA)DHCP 失败时自动分配,无法上网
100.64.0.0/10CGNAT(RFC 6598)运营商级 NAT 专用,家庭用户可能拿到

环回地址详解

127.0.0.1 就像你对着镜子说话——声音没出门就反射回来了。当你 ping 127.0.0.1 时,数据包从应用层下到 IP 层,IP 层发现目的地址是 127.x.x.x,直接交回给上层,不经过网卡、不经过驱动、不经过网线。

测试本地 TCP/IP 协议栈是否正常?ping 127.0.0.1 通了就说明协议栈没问题。

定向广播(已废弃)

192.168.1.255 是子网 192.168.1.0/24 的定向广播地址。早期用于向整个子网发通知,但因 Smurf 攻击(伪造源地址发广播包,引发全网回复淹没受害者)已被禁用。现代路由器默认丢弃定向广播。

本篇小结

  • IPv4 地址 32 位,点分十进制表示
  • A/B/C 类地址按首字节划分,D 类组播,E 类保留
  • 私有地址(RFC 1918)只在局域网有效,出网需 NAT
  • 127.0.0.1 是环回,0.0.0.0 表示本机,255.255.255.255 是受限广播
  • 100.64.0.0/10 是运营商 CGNAT 地址,不是你的"公网 IP"

动手实践

  1. 查看本机 IP:ipconfig(Win)或 ip addr(Linux),判断属于 A/B/C 哪类?是私有地址吗?
  2. 尝试 ping 127.0.0.1、ping 127.1.1.1、ping 127.255.255.255,观察是否都通?(整个 127.0.0.0/8 都是环回)
  3. 拔掉网线,观察 Windows 是否会自动分配 169.254.x.x(APIPA)地址
上一页
认识 IP 协议与网络层定位
下一页
CIDR 与子网划分实战