IP分组首部校验和

首部校验和字段占16位,用于对IP首部分组的差错检测

发送方计算校验和

  1. 将该字段置全0
  2. 将整个首部看成是一串16bit的整数组成,对每个整数按位求反
  3. 将它们的和的反码放入该字段

接收方比较校验和

  1. 将整个首部看成是一串16bit的整数组成,对每个整数按位求反
  2. 由于第一步计算包括了发送方的校验和,即计算结果是
    X=除首部校验和字段外所有首部字段的反码和
    发送方的校验和=X的反码
    res=X+X的反码
  3. 如果首部在传输中没有错误,那么结果是全1,如果不是,校验和错误,IP丢弃收到的数据包,但是不生成差错报文,由上层去发现丢失的数据包并进行重传

校验和的进位

 1110011001100110
 1101010101010101
 ----------------
11011101110111011
↓---------------↑最高位的进位加上去
 1011101110111100和
 0100010001000011和的反码就是检验和

你可能感兴趣的:(IP分组首部校验和)