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

  • 相关阅读:
    ScrollView卷轴视图
    SharedPreferences数据存储
    progressBar进度条
    SeekBar拖动条
    TabWidget选择标签
    RadioGroupRadioButton
    SQLite数据操作
    Spinner
    .NET学习资源
    如何在局域网内其他机器访问我的asp.net网站?
  • 原文地址:https://www.cnblogs.com/neozheng/p/13028895.html
Copyright © 2011-2022 走看看