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首部、

image.png

  • 版本
    • 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字节构成
image.png

  • 版本(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地址
  • 目标地址
    • 128bit(8个16位字节)。表示接收端IP地址

      IPv6拓展首部

      IPv6的首部长度固定,无法将可选项加入其中。取而代之的是通过拓展首部对功能进行了有效拓展。
      IPv6拓展首部的可以是任意长度