zoukankan      html  css  js  c++  java
  • UDP 检验和

    UDP 检验和提供了差错检测的功能。这是基于端到端原则实现的。但是 UDP 的检验和并不提供差错回复的能力。

    本文不叙述 UDP 的原理,仅仅着力介绍一下检验和的实现原理。

    1. 原理

    对发送方的 UDP 报文段的所有 16 比特字的和进行反码运算,当求和遇见溢出的时候,进行回卷(回卷的补充在下面),得到的结果放在 UDP 报文段中的检验和字段

    2. 什么是回卷

    所谓 “回卷” 就是当进行 16 比特的加法运算的时候,如果进位到 17位,则将第 17 位和后 16 位进行加法和运算。

    我们将在下面的小例子中实际操练。

    3. 示例

    假设我们有 3 个 16 比特的字,分别如下:

    0110011001100000
    0101010101010101
    1000111100001100
    第一步:对 3 个 16 比特的字依次相加
    0110 0110 0110 0000 + 0101 0101 0101 0101 + 1000 1111 0000 1100 = 0100 1010 1100 0010

    注意,在最后一次加法的过程中,发生了回卷,看下面,多了第 17 位,要消除第 17 位

    这两个数相加得到:

    此时用 1 + 0100 1010 1100 0001 = 0100 1010 1100 0010

    第二步:对和进行反码运算
    0100 1010 1100 0010 的反码 1011 0101 0011 1101.
    第三步:将这个值放入校验和中
    第四步:在接收方中,将全部的 4 个 16比特的字(包含了校验和)加在一起,没有差错的话,就是 1111 1111 1111 1111

    如果这些比特之一是0, 那么该分组中已经出现了差错。

    参考链接: https://blog.csdn.net/qq_34902437/article/details/87938913

  • 相关阅读:
    爬虫入门
    读写文件操作
    列表的操作
    课后习题小练
    Python切片
    逗号的麻烦
    字符串学与练
    Turtle的学习
    FTL(FreeMarker)基础
    java反射机制基础
  • 原文地址:https://www.cnblogs.com/neozheng/p/13028895.html
Copyright © 2011-2022 走看看