UDP伪装头

在UDP头中,2个字节是否存储校验和以供目标主机进行validation,而且这个校验和是由伪头生成的? 如果这是真的,那么为什么甚至必须创build伪头? 为什么不从UDP头的另外6个字节创build一个校验和呢?

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

伪连接头不是通过导线进行“创build”的。 TCP / IP堆栈违反了层的独立性。 UDP是传输层的一个协议,在源头和目的IP地址和协议中窥探IP头(互联网层)。

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

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

主要是提供和端到端检查IP源/目的地址和IP协议信息是否正确。 这可以防止路由错误的数据包,以某种方式使其成为UDP。 缺点是它会在IP层上创build依赖关系,当你经历networking地址转换之类的事情时,UDP校验和也必须被修改。