1. IP 协议栈概述
- IPv4 地址由网络位和主机位组成,子网掩码用于区分网络位、主机位和网络范围(网段)
- 一个支持3层协议的设备上,多个接口的网络地址是不可以互相覆盖的
- /32地址为通常为主机路由,可以用在环回接口
- /31地址只能在 P2P 链路上
- 「网关」用于设备转发数据到其他网络时,使用的下一跳转发地址(等同于默认路由)
- 点到点链路、隧道链路上可以借用地址
- 可变长子网掩码(VLSM):允许使用多个子网掩码划分子网
- 无类域间路由(CIDR):用来消除常规地址分类和子网划分的界限,支持路由汇总,减少掩码长度
- 子网:网络位借用主机位,增加掩码长度
- 汇总:将路由表条目数变少,便于查找,减少掩码长度
- 主类IPv4地址
- Class A:0.0.0.0~126.255.255.255,默认掩码/8(255.0.0.0)
- Class B:128.0.0.0~191.255.255.255,默认掩码/16(255.255.0.0)
- Class C:192.0.0.0~223.255.255.255,默认掩码/24(255.255.255.0)
- Class D:224.0.0.0~239.255.255.255,组播地址,只能作为目的 IP 出现
- Class E:240.0.0.0~255.255.255.255,保留地址
- 私有IPv4地址
- 10.0.0.0/8 ~ 10.255.255.255/8
- 172.16.0.0/16 ~ 172.31.255.255/16
- 192.168.0.0/24 ~ 192.168.255.255/24
- 特殊IPv4地址
- 127.0.0.0/8(环回测试地址)
- 255.255.255.255(全网广播地址)
- 0.0.0.0(所有网络地址,DHCP Client 没有地址时的特殊地址)
- 例如:192.168.1.0/24(网络地址)
- 例如:192.168.1.255/24(定向广播地址)
- 组播IPv4地址
标准 IP Message Header 为:20Byte;如果有可选项 IP Message Header 为:60Byte
- IP Header Message 字段解释
- Version:版本
- IHL:IP Header 长度
- Type of Service:服务类型,差分服务 QoS(默认0)
- Total Length:包总长度。IP Header 长度 + 上层协议 Header 长度 + 数据
- Identification:ID。在分片后标识同一个报文
- Flags:分片标识(在特定应用中不允许分片,则需要考虑调整「MTU 值或 MSS(最大段尺寸)」)
- DF = 0:允许分片(默认)
- DF = 1:不允许分片
- MF = 0:最后一个分片(默认)
- MF = 1:还有更多分片
- Fragment Offset:分片偏移。于第1个包中的数据大小作为参考,判断偏移量(以指数增长)
- Time to Live:生存时间(TTL,范围0~255,默认255),每经过一个网络 TTL - 1,TTL=0 时丢弃报文。用来防环
- Protocol:协议。表示上层承载的什么协议
- Header Checksum:IP Header 校验和
- Source Address:源 IP 地址
- Destination Address:目的 IP 地址
- Option:可选项
- Padding:垫片(有可选项时使用,将 Header 不足的部分填充为60Byte)