4.6.4 IPv6地址的结构
在互联网通信中,使用一种全局的单播地址。
| 环回地址 | ::/128 | |
|---|---|---|
| 唯一本地地址 | ::1/128 | |
| 链路本地单播地址 | FE80::/10 | |
| 多播地址 | FF00::/8 |
4.6.5 全局单播地址
IPv6前64比特为网络标识,后64比特为主机标识。
全局路由前缀:n比特
子网ID:m比特
接口比特:128比特
链路本地单播地址
是指在同一个数据链路内唯一的地址。他用于不经过路由器,在同一个链路中的通信。接口通常保存64bit版的MAC地址。
唯一本地地址
4.6.8 IPv6分段处理
只在作为起点的发送端主机上进行。IPv6中最小MTU为1280字节。
4.7 IPv4首部、

- 版本
- 4bit
- 首部长度
- 4bit,表明IP首部的大小,单位为4字节(32bit)。当没有可选项时,首部长度则设置为5.也就是说当没有可以选项时,IP首部的长度为20字节。
- 区分服务
- 8bit,用来表明服务质量
- DSCP段和ECN段
- DSCP为6bit,用来进行质量控制。ECN为2bit,用来报告网络拥堵情况
- 总长度
- 表示IP首部与数据部分合起来的总字节数。为16bit。因此IP包的最大长度为65535(=2^16)字节
- 标识
- 由16bit构成,用于分片重组
- 标志
- 由3bit构成,标识包被分片的相关信息
- 片偏移
- 13bit,用来标识被分片的每一个片段相对与原始数据的位置
- 生存时间
- 由8bit构成,实际中它是指可以中转多少个路由器的意思。每经过一个路由器,TTL会减少1,直到变成0则丢弃该包。
- 协议
- 8bit,表示IP首部的下一个首部。
- 首部校验和
- 16bit(2字节)。只校验数据报的首部,不校验数据部分
- 源地址
- 32bit,4字节,表示发送端IP地址
- 目标地址
- 32bit(4字节)。表示接收端IP地址
- 可选项
- 长度可变
- 填充
- 在有可选项的情况下,首部长度可能不是32bit的整数倍,通过向字段填充0调整为32bit的整数倍
- 数据
- 存入数据
4.8 IPv6首部格式
IPv6为了减轻路由器的负担,省略了首部校验和字段
因为TCP和UDP在做校验和计算时候使用伪首部,所以可以验证IP地址或协议是否正确。因此即使IP层无法提供可靠传输,TCP和UDP层也可以提供。
IPv6的首部和可选项都是由8字节构成
- 版本(Version)
- 4bit,因为是IPv6,所以值为6
- 通信量类(Traffic Class)
- 相当于IPv4的TOS,由8bit构成
- 流信号(Flow Label)
- 20bit,准备用于服务质量(QoS:Quality Of Service)
- 有效载荷长度(Payload Length)
- 有效载荷是指包的数据部分。IPv4的TL是指包括首部在内的所有长度。而IPv6中的TL不包括首部,只表示数据部分的长度。
- 下一个首部(Next Header)
- 相当于IPv4中的协议字段,8bit
- 跳数限制(Hop Limit)
- 8bit。与IPv4中的TTL意思相同。
- 源地址
- 128bit(8个16位字节)。表示发送端IP地址
- 目标地址
