网络安全 / A LEAF IN THE GARDEN

IPv4

网络安全 · web / 网络协议。来自 Daily Learning 的学习笔记。

简介

Internet Protocol version 4,网络层核心协议,用于在基于分组交换的网络中进行数据传输。

格式

32 位二进制数,通常以点分十进制表示

第一字节第二字节第三字节第四字节
二进制11000000.11000000.10101000.10101000.00000000.00000000.0000000100000001
十进制192.192.168.168.0.0.11
  • 每个点分十进制数的范围是 0~255
  • 总共 有 2322^{32} 个地址,约为 42 亿

划分

IPv4 地址包含两部分信息

  • 网络号:用于标识网段
  • 主机号:用于标识网段中的主机

子网掩码

用 32 位掩码表示,1 表示网络号,0 表示主机号

十进制二进制
IP192.168.0.1192.168.0.111000000.10101000.00000000.0000000111000000.10101000.00000000.00000001
子网掩码255.255.255.0255.255.255.011111111.11111111.11111111.0000000011111111.11111111.11111111.00000000
网络号192.168.0.0192.168.0.011000000.10101000.00000000.0000000011000000.10101000.00000000.00000000
主机号0.0.0.10.0.0.100000000.00000000.00000000.0000000100000000.00000000.00000000.00000001
  • IP 地址 & 子网掩码 = 网络号
  • IP 地址 & ~子网掩码 = 主机号

CIDR

无类域间路由选择(Classless Inter-Domain Routing)使用斜杠表示法表示网络号长度

子网掩码CIDR
255.255.255.0255.255.255.0/24/24

分类

以前将 IPv4 地址分为五类,固定网络号和主机号长度,因不够灵活已被 CIDR 取代。

类别前缀网络号位数范围网络数主机数适用
A08 位1.0.0.0 ~ 126.255.255.25512816,777,214超大型网络
B1016 位128.0.0.0 ~ 191.255.255.25516,38465,534中型网络
C11024 位192.0.0.0 ~ 223.255.255.2552,097,152254小型网络
D1110-224.0.0.0 ~ 239.255.255.255--组播
E11110-240.0.0.0 ~ 255.255.255.255--保留(实验)

特殊地址

地址用途
0.0.0.0表示”任意地址”
127.0.0.0/8回环地址(localhost)
169.254.0.0/16APIPA 自动分配(DHCP失败时)
10.0.0.0/8私有地址 A类
172.16.0.0/12私有地址 B类
192.168.0.0/16私有地址 C类
255.255.255.255受限广播

NAT

网络地址转换(Network Address Translation),用于将私有地址映射为公网地址。

工作原理

sequenceDiagram
box White
    participant A as 主机
    participant B as NAT
    participant C as 互联网
end
    A->>B: 私有地址请求
    note right of A: 192.168.0.10 > 203.0.113.5
    activate B
    B->>C: 公网地址请求
    note right of B: 110.242.0.1 > 203.0.113.5
    deactivate B
    activate C
    C-->>B: 响应数据包
    note left of C: 110.242.0.1 < 203.0.113.5
    deactivate C
    activate B
    B-->>A: 私有地址响应
    note left of B: 192.168.0.10 < 203.0.113.5
    deactivate B

映射表

记录 IPin:portin↔IPout:portoutIP_{in}:port_{in} \leftrightarrow IP_{out}:port_{out} 映射关系

私有地址内部端口外部端口公网地址
192.168.0.10192.168.0.10100010006000060000203.0.113.5203.0.113.5
…………