UDP 的报文结构

news/2024/5/18 15:14:00 标签: udp, 网络协议, 网络

UDP的报文结构:

其中前面的源端口号和目的端口号,UDP长度和UDP检验和,它们都是2个字节。

        那么什么是UDP长度呢,它指的是后面的数据的长度,换算单位也就是64kb,因此一个数据报(数据)最大也就64kb。因此传输的数据不能超过64kb

        UDP校验和则是检验数据在传输过程中,是否出错(如数据发生改变,比特翻转等)。因此,接收方在收到数据后,就要确认一下,这个数据是否是一个错误的数据。而校验和就是一个简单有效的方法。实际的校验和会根据数据的内容生成,当内容发生改变,就能够感知到出错。那么UDP的检验和具体是怎么实现的呢?其实是使用了一种简单除暴的CRC校验算法(循环冗余校验和),把UDP数据报中的每个字节都依次累加,把累加的结果,都保存到2个字节的变量中,虽然在累加的过程中会溢出,但这并不重要,因为不需要准确的结果,当所有的字节都加了一遍后,最终就得到了校验和(与检验和一个意思),传输数据时,就会把原始数据和校验和一起传输过去,接收方收到数据,同时也收到发来的校验和,接收方再根据同样的方式在算一遍,得到新的校验和,如果旧的校验和与新的校验和相同,就可以视为数据传输过程中,是正确的,如果不同,则视为传输过程中数据出错了。所以数据相同,校验和一定相同,数据不相同,校验和一定不相同。不过校验和相同,数据不一定相同,如一个字节少了一个,另一个字节多了一个,不过这个概率小,但可以忽略不计,因此UDP校验和可以检验数据在传输过程中是否出错。


http://www.niftyadmin.cn/n/5091098.html

相关文章

Qt事件传播机制 day8

Qt事件传播机制 day8 事件的接受和忽略 当空间忽略事件时,事件会继续往上传播,这里的传播指传播给父组件QEvent有accept()函数与ignore()函数 accept():本组件处理该事件,这个事件就不会被继续传播给其父组件ignore()&#xff1…

PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五)

PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五) 一、算法介绍二、具体实现1.代码2.效果一、算法介绍 继续SIFT关键点的提取介绍,之前已经基于高程和颜色分别提取了关键点,这里是基于强度信息,若遇到文件无法读取强度问题,请参考上一篇博文,下面是具体的实现…

【AI】深度学习——循环神经网络

神经元不仅接收其他神经元的信息,也能接收自身的信息。 循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络,可以更方便地建模长时间间隔的相关性 常用的参数学习可以为BPTT。当输入序列比较…

100张照片带你了解澳大利亚

欢迎关注「苏南下」 在这里分享我的旅行和影像创作心得 国庆去了澳大利亚旅行,离国内挺远,从香港直飞需要10个小时才能到。因为在南半球,那边和国内的季节是反着的,我们现在十月是秋季,那边还是春天。 主要去了三个地方…

CSDN里的常用网址(2)

你问我为啥要写这篇,一是因为我自己总是记不住,二是想给大家提供便捷,懂了吧! 1、需求广场https://download.csdn.net/taskCenter/home?utm_sourceupload_qplaza_infopage_windhttps://download.csdn.net/taskCenter/home?utm_…

WebRTC AIMD算法用处

WebRTC使用AIMD(Additive Increase Multiplicative Decrease)算法来进行码率控制。 在WebRTC中,码率控制的目标是优化音视频传输的质量和稳定性,以适应网络状况的变化。具体而言,AIMD算法通过监测网络的拥塞情况&…

【无人机】太阳能伪卫星VoLTE无人机设计(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【react基础02】编写函数式组件和类组件

函数式组件和类组件 React组件的规范函数式组件类组件 React组件的规范 1、命名遵循PascalCase原则,即所有单词首字母大写,然后拼接在一起 如:Age 、FirstName 函数式组件 代码: import ReactDOM from react-dom/client;const…