【发布时间】:2013-07-06 16:28:08
【问题描述】:
我正在计算 IPV6 数据包的校验和值。
在扩展头的情况下,如何计算伪地址的目标地址和长度字段的值?
【问题讨论】:
标签: c network-programming ipv6
我正在计算 IPV6 数据包的校验和值。
在扩展头的情况下,如何计算伪地址的目标地址和长度字段的值?
【问题讨论】:
标签: c network-programming ipv6
RFC 2460 section 8.1 指定了所有这些。一些亮点:
当使用更改目标地址的扩展标头时确定伪标头目标地址时,您使用收件人将看到的目标地址:
如果 IPv6 数据包包含路由标头,则目标地址 伪标头中使用的是最终目的地的标头。在 始发节点,该地址将在 路由头;在收件人处,该地址将在 IPv6 标头的目标地址字段。
在确定上层数据包长度时,您不计算任何扩展标头,只计算最终(上层)标头及其数据:
伪报头中的上层数据包长度是 上层报头和数据(例如,TCP 报头加上 TCP 数据)。 一些上层协议携带自己的长度信息(例如, UDP 头中的 Length 字段);对于此类协议,即 伪标头中使用的长度。其他协议(如 TCP)可以 不携带自己的长度信息,在这种情况下使用的长度 在伪报头中是来自 IPv6 报头的有效负载长度,减去 IPv6 标头之间存在的任何扩展标头的长度 和上层header。
【讨论】: