编程分享之UDP checksum16计算方法:数学上的小奥秘

本文探讨了UDP校验和计算过程中如何处理大小端不匹配的问题。通过分析正常的加法过程和大小端不匹配的加法,得出结论:在十六位加法中,无论大小端如何,只要将高十六位的进位加至低位,最终的校验和计算结果都是一致的,因此在计算UDP checksum时无需考虑字节序转换。
摘要由CSDN通过智能技术生成

之前和室友去食堂的过程中,室友突然说起来udp的checksum计算问题。众所周知,udp需要加伪ip报头做校验和的计算,但是我们现在来关心一个小机制,这个机制使得校验和的计算能够适应大小端。

网络中的数据是按照大端模式,如果操作系统是小端模式怎么办?是不是应该取出数据之后先做字节反转,加完后再做字节反转换回来呢?事实上,在校验和设计的过程之中,其步骤就已经考虑到了这一点。

考虑两个数(高字节低字节由竖线分离开来)
x 1 , x 2 x_1,x_2 x1,x2

x 1 = α 1 ∣ β 1 x_1 = \alpha_1 | \beta_1 x1=α1β1

x 2 = α 2 ∣ β 2 x_2 = \alpha_2 | \beta_2 x2=α2β2

正常的加法如下
x 1 + x 2 = ( α 1 + α 2 ) ∣ ( β 1 + β 2 ) ( 1 ) x_1+x_2=(\alpha_1+\alpha_2)|(\beta_1+\beta_2)\quad (1) x1+x2=(α1+α2)(β1+β2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值