一、IPv4地址
- IPv4地址由32位二进制数值组成
- A、B、C三类地址为单播地址
- D类地址为组播地址
- E类地址暂时不用
- 255.255.255.255为局域网广播地址
1. 五类IPv4地址
A类地址:0.0.0.0 ~ 127.255.255.255
| 0 | 7个bit 网络号 | 24个bit 主机号 |
- 00000000 == 0
- 01111111 == 127
B类地址:128.0.0.0 ~ 191.255.255.255
| 1 | 0 | 14个bit 网络号 | 16个bit 主机号 |
- 10000000 == 128
- 10111111 == 191
C类地址:192.0.0.0 ~ 223.255.255.255
| 1 | 1 | 0 | 21个bit 网络号 | 8个bit 主机号 |
- 11000000 == 192
- 11011111 == 223
D类地址:224.0.0.0 ~ 239.255.255.255
| 1 | 1 | 1 | 0 | 28个bit 多播组号 |
- 11100000 == 224
- 11101111 == 239
E类地址:240.0.0.0 ~ 247.255.255.255
| 1 | 1 | 1 | 1 | 0 | 27个bit 预留 |
- 11110000 == 240
- 11110111 == 247
2. 私有IPv4地址
- 内部网络地址,解决IP地址短缺的问题。
- 在上面A、B、C三类地址中规划三段地址用于内部网络使用。
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
3. 内网和外网连接
-
frps:内网穿透
-
NAT(地址转换技术)
- 内网私有IP地址,通过路由或者防火墙等边界设备上统一转换为公网地址在访问互联网。
-
端口映射
- 将外网主机的IP地址的一个端口映射到内网中的一台设备。
二、IPv6地址
待更新
三、IPv4报文结构
- 当没有使用可选部分,IP的包头(Header length)是20字节
| 参数名称 | 长度/bit | 说明 |
|---|---|---|
| 版本号 | 4 | IPv4协议:4; IPv6协议:6; |
| 首部长度 | 4 | |
| 区分服务 | 8 | 定义上层协议对处理当前数据报所期望的服务质量 3位成为优先位 后面4位成为服务类型 最后1位没有定义 |
| 总长度 | 16 | 数据头和数据总长度 |
| 标识 | 16 | IPv4每产生一个数据报,计数器就加1 |
| 标志 | 3 | bit0:1表示后面“还有分片”的数据报,0表示这已经是最后一个数据片; bit1:1表示“不能分片”,0才允许分片。 bit2:预留 |
| 分段偏移 | 13 | 指出较长的分组在分片后,该片在原分组中的相对位置 |
| 生存时间 | 8 | TTL(Time To Live),表示数据报在网络中的寿命,功能是“跳数限制” |
| 协议 | 8 | |
| 首部检验和 | 16 | |
| 源地址 | 32 | |
| 目的地址 | 32 | |
| 可选部分 | 0 ~ 40 | |
| 数据部分 | N |
四、IPv6报文结构
- 当没有使用可选部分,IP的包头(Header length)是20字节
| 参数名称 | 长度/bit | 说明 |
|---|---|---|
| 版本号 | 4 | IPv4协议:4; IPv6协议:6; |
| 优先级 | 4 | 当发生通信拥塞时的分组的优先级 |
| 流标号 | 24 | 对特殊的数据流提供专门处理 |
| 总长度 | 16 | 数据头和数据总长度 |
| 条数限制 | 8 | 与IPv4中TTL一样,在丢弃数据报的每个点值依次减1直至减少为0 |
| 源地址 | 128 | |
| 目的地址 | 128 | |
| 扩展头部 | 6 | |
| 数据部分 | N |