UDP的报文结构和注意事项

这篇具有很好参考价值的文章主要介绍了UDP的报文结构和注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.UDP的报文结构

UDP的报文结构如图:
UDP的报文结构和注意事项
画成一行会比较好理解:

UDP的报文结构和注意事项
主要由两部分组成:UDP报头和UDP载荷。
UDP载荷其实就是数据。

UDP报头分为四个部分,每个部分占两个字节。

  • 源端口
  • 目的端口
  • 报文长度
  • 校验和

下面介绍报头里各个部分的作用。

1.1源端口和目的端口

源端口和目的端口各占2字节(Byte),端口号范围:0~65535
比如:源端口是3306,目的端口是8866。
UDP的报文结构和注意事项
就表示从数据从3306这个端口发送到8866这个端口,通过这两个端口就可以知道数据从哪个进程发送到哪个进程。

注意:上图的MySQL和IDEA两个端口是随便给的,跟实际的不一样。

1.2报文长度

报文的长度也用2个字节表示,范围是0~65535,单位是字节(Byte)
一般我们都说UDP最大报文长度是64KB (65536B),实际上是65535B

所以UDP能传送的数据比较有限,那为什么不把这个报文长度改成用4个字节8个字节呢或者更大呢?
UDP的报文结构和注意事项

也不是不行,只是影响太大。

因为世界上有那么多主机、服务器、和其他设备。
如果其中有一些主机或者服务器把系统升级,然后按照新的UDP协议进行通信,但是其他主机或者服务器没升级系统(用的还是老的UDP协议),可能通信就会现问题了。
世界上那么多设备,将每个设备的系统都升级,这是很不现实的操作。

采用新UDP协议的主机发送数据报给采用旧UDP协议的主机
UDP的报文结构和注意事项
解析数据:
UDP的报文结构和注意事项
解析出错:
UDP的报文结构和注意事项

1.3校验和

网络上传输数据是有可能发生数据错误的,可能因为环境(磁场、电磁波等)的影响,导致数据发生了错误,1变0,0变1,这时候对方收到的数据就是错误的。
UDP的报文结构和注意事项
校验和就是用来检验数据是否发生错误的。

先说一段小故事,体会体会校验和的作用🙃

小红和小明是男女朋友关系,有一天小红叫小明去买菜,如图:
UDP的报文结构和注意事项
小红吩咐了,小明也答应了,结果:

UDP的报文结构和注意事项
小红继续吐槽:
UDP的报文结构和注意事项
小明屁颠屁颠又跑到菜市场把西红柿买回来:
UDP的报文结构和注意事项
UDP的报文结构和注意事项
完结

  • 在故事中小红发现小明只买了3样菜,本来是4样的。
    然后小红很友好地叫小明去买之前没买的西红柿。
  • 这个故事中的校验和其实就是菜的样数。

校验和是数据经过校验和算法得到的一个数值,用来校验数据是否出错。
如图:
UDP的报文结构和注意事项
计算校验和:
UDP的报文结构和注意事项

比较:
UDP的报文结构和注意事项

不相等:
UDP的报文结构和注意事项
校验和不相等,说明发送方的数据和接收方的数据一定不一样。


但是校验和相等,发送方和接受方的数据不一定相等。
比如:
UDP的报文结构和注意事项
发送方和接收方的数据不一样,但是经过校验和算法计算,校验和有可能是一样的。
UDP用的算法是CRC算法。

2.注意事项

在使用UDP编程的时候,数据报不能太长。
数据报太长会导致很多问题。
比如:
数据报太长会导致数据报可能会被分片传输,重组的时候,某部分数据报丢失或者损坏都会导致重组失败。

如果UDP数据报太大,可以选择如下做法:文章来源地址https://www.toymoban.com/news/detail-429700.html

  • 可以把数据报分成各个小的数据报
  • 使用TCP传输协议

到了这里,关于UDP的报文结构和注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项

      CMSIS (微控制器 软件接口标准 ):Cortex Microcontroller Software Interface Standard,是由ARM和与其合作的芯片厂商( 比如ST、NXP公司等 )、软件工具厂商( Keil、IAR公司等 ),共同制定的标准。 如果没有此标准,ARM公司的产品兼容性非常差。   下图中分为三层,第一层是用户层

    2024年02月11日
    浏览(61)
  • 学习Linux的注意事项(使用经验;目录作用;服务器注意事项)

    本篇分享学习Linux过程中的一些经验 Linux严格区分大小写 Linux中所有内容以文件形式保存 ,包括硬件,Linux是以管理文件的方式操作硬件 硬盘文件是 /dev/sd[a-p] 光盘文件是 /dev/sr0 等 对于设置需要写入文件,命令行的设置在重启之后就会失效,只有下入文件才可以保存下来 文

    2024年02月11日
    浏览(74)
  • 弱电线布线注意什么?弱电线布线的注意事项

    弱电 弱电一般是指直流电路或音频、视频线路、网络线路、电话线路,直流电压一般在36V以内。家用电器中的电话、电脑、电视机的信号输入(有线电视线路)、音响设备(输出端线路)等用电器均为弱电电气设备。 弱电线的种类如:电话线、网络线、有线电视线及音响线

    2024年02月07日
    浏览(47)
  • 低代码选型注意事项

    凭借着革命性的生产力优势,低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品,开发者该如何选择? 在研究低代码平台的年数上,本人已有3年,也算是个低代码资深用户了,很多企业面临低代码选型上的困难,选平台容易,换平台难。下面基于个人理解给大

    2024年02月03日
    浏览(58)
  • 算法竞赛个人注意事项

    浅浅记录一下自己在算法竞赛中的注意事项。 注意看数大小,数学库中的函数尽量加上 * 1.0 , 转成double,防止整型溢出。 , int 型相乘如果可能溢出,乘 * 1LL 。 数据范围大于1e6,注意用快读。 浮点数输入输出: 取模,注意取成负数的情况。 全 int ,但是数据太大,全转

    2024年02月09日
    浏览(53)
  • 面试求职-面试注意事项

    面试技巧和注意事项有哪些? 面试是找工作过程中最重要的一个环节,因为面试成功,你才有可能得到一份工作。求职面试技巧有哪些呢?首先,我们来看看面试注意事项。 1、面试前有没有仔细了解过对应企业的情况,对方的企业文化、主营业务、未来的发展方向。如果跑过

    2024年02月09日
    浏览(40)
  • 钢网的清洗注意事项

    在smt贴片加工的生产过程中,由于钢网受重力影响会变形、定位可能会有不准确、支撑没有到位或者是设计等其他问题,这样的话在锡膏印刷的时候钢网和电路板的焊盘之间很难形成理想的密封状态,在SMT贴片加工的过程中,会引起焊锡膏在钢网跟电路板的空隙间挤出来,并

    2024年02月11日
    浏览(40)
  • postman调试注意事项

    Postman是一个强大的API调试工具,它可以帮助开发人员测试和调试API端点,以确保它们按预期工作。在使用Postman进行接口调试时,以下是一些注意事项和可能出现的问题,以及如何解决这些问题。 确保请求参数正确 在测试API接口时,确保您提供了正确的请求参数非常重要。

    2024年02月10日
    浏览(50)
  • RabbitMQ开发注意事项

    在使用 RabbitMQ 进行消息队列的开发过程中,有一些注意事项需要牢记: 安全性:确保正确配置 RabbitMQ 实例的安全性。限制对 RabbitMQ 服务器的访问权限,并使用安全的认证机制(如用户名和密码)来保护连接。 错误处理:在消费者端,务必处理可能发生的异常或错误情况。

    2024年02月07日
    浏览(49)
  • vscode配置与注意事项

    中文设置 https://zhuanlan.zhihu.com/p/263036716 应用搜索输入“Chinese (Simplified) Language Pack for Visual Studio Code”并敲回车键 底部信息窗没有的话 将下面的选项改为true \\\"workbench.statusBar.visible\\\": true 组件:在VS Code中开发React常用插件_js jsx snippets-CSDN博客 1、VScode 路径自动补全插件: Path A

    2024年01月21日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包