UDP 伪报头

UDP 伪报头

UDP 报头中是否有 2 个字节存储了用于目标主机验证的校验和,并且该校验和是从伪报头生成的,这是真的吗?如果这是真的,那么为什么还要创建伪报头呢?为什么不直接根据 UDP 报头的其他 6 个字节创建校验和呢?

答案1

是的,校验和是通过伪报头和 UDP 数据的组合生成的。伪报头允许 UDP 层再次检查数据报是否已到达正确的地址并已传递到正确的层。

答案2

伪报头不是通过网络“创建”的。TCP/IP 堆栈违反了层的独立性。UDP 是传输层的协议,它窥探 IP 报头(互联网层)中的源和目标 IP 地址和协议。

但是,我明白你的意思:IP 报头已经包含报头校验和,那么为什么 IP 报头的信息包含在 UDP 校验和中?这可能是一种优化,但我怀疑 TCP/IP 堆栈会检查两个校验和。

答案3

这个描述背后UDP 校验和可能会有帮助。

它主要提供端到端检查,以确保 IP 源/目标地址和 IP 协议信息正确无误。这可以防止路由错误的数据包以某种方式进入 UDP。缺点是它会对 IP 层产生依赖,并且当您进行诸如网络地址转换之类的操作时,UDP 校验和也必须进行修改。

相关内容