UDP/TCP校验和

校验和

  • 用来检测传输的数据是否出错

校验和过程:

  • 发送方:

    • 将应用层的报文段按16bit为单位求和,如进位就回滚,最后取反(和数据一起发给接收方
  • 接收方

    • 将在接收方求得的校验和    与    接受的报文段按16bit求和的结果    相加,如果=1111    1111    1111    1111则正确,反之出错

例子:

应用层报文按16bit求和

     1110    0110    0110    0110 

+   1101    0101    0101   0101

=  11011   1011    1011    1011 (回滚就是把多出的最高位单独拿出来与结果相加

    1011   1011    1011    1011

+                                          1

=  1011   1011    1011    1100

最后取反 

=  0100    0100   0100   0011  (此为校验和,发送方也会传给接收方

接收方接收到数据和校验和后相加,因为校验和在发送方取反了,所以如果传输过程没有出错的话,相加应该= 1111    1111    1111    1111

猜你喜欢

转载自blog.csdn.net/weixin_43891234/article/details/113760302
今日推荐