在隧道传输的数据包中,可能存在两个UDP标头。一个外部UDP和一个内部UDP,例如MAC + externalIP + externalUDP + Extraheader + innerIP + innerUDP +有效负载。
内部UDP有自己的校验和。
是否有一种优化的方法可以通过处理内部UDP校验和值而无需再次计算有效负载的总和来计算外部UDP校验和?
答案 0 :(得分:0)
UDP校验和的计算很简单:
它是通过某种方式构造的,即在接收端进行验证是通过将所有提到的数据和校验和相加并检查结果是否等于0xffff
来完成的。因此,在计算外部数据包校验和时,您可能希望跳过与内部数据包相关的求和字段,而是直接添加0xffff
从而节省资源。
仅在内部数据包偏移量可被16位整除的情况下适用,因此外部数据包和内部数据包的校验和计算使用内部数据包中的相同整数。