Internet检验和(UDP检验和)的正确算法

在学习计算机网络的时候,遇上了一个麻烦,就是

如何求Internet检验和

话不多说,摆上例题
设有三个 16 比特字: 0110011001100000,0101010101010101,1000111100001100。
试计算它们的 Internet 校验和

首先我们应该先两两相加,采用二进制算法(0和1相加为1,1和1相加为0并向前进一位)

  •         0110 0110 0110 0000 
    
  •        +0101 0101 0101 0101 
    

  •        1011 1011 1011 0101   (前两个相加的结果)
    
  •       +1000 1111 0000 1100 
    

  •      1 0100 1010 1100 0001 (注意:这里出现了第17位,因此出现了加法回卷)  
    

加法回卷则应该将第十七位与后面的十六位相加

  •           0100 1010 1100 0001
    
  •                            +1
    

  • 得:      0100 1010 1100 0010
                
            此时三位已经求和相加,再进行反码即可(0变成1,1变成0)
    
  • 因此得到的结果为

  •           1011 0101 0011 1101
    
  • -------------------------------------------------华丽的分界线~
    综上即为计算UDP检验和的方法
    不难看出,这种简单的差错简单检验能力并不强,但它的好处是简单,处理起来较快。
    希望这篇文章能够帮助到计算检验和有困难的你

你可能感兴趣的:(笔记,计算机)