当前位置: 首页 > news >正文

3.2 无连接传输: UDP

1.UDP报文格式

2.校验和


1.UDP报文格式

1).UDP是"尽力而为"的服务, 报文可能会丢失或送到应用进程的报文乱序, 它被用在对于丢失不敏感但是速率敏感的应用; 在UDP上可靠传输需要在应用层增加可靠性2).一个UDP报文包含两部分组成:a.报头(Header): 固定8个字节, 包含了一些基础控制信息b.数据(Data): 来自应用层的数据c.如下是UDP报文的格式:

在这里插入图片描述

报头的四个字段都是16(2字节)1).源端口号a.长度: 16位b.作用: 标识发送方应用程序的端口号, 当接收方需要回复消息时, 就需要使用这个端口号作为目标c.范围: 0 - 65535,: 这个字段是可选的, 如果不需要回复, 可以用全0表示2).目标端口号a.长度: 16位b.作用: 标识接收方应用程序的端口号, 这个字段是必须的, 它告诉应该将这个报文交给哪个应用程序3).长度a.长度: 16位b.作用: 整个UDP报文的总长度(以字节为单位)c.计算范围: 包含8字节的报头和数据部分; 因此, UDP报文的最小长度是8(只有报头, 没有数据), 最大长度理论上是65535字节; 但由于底层网络(如以太网)有最大传输单元的限制, 实际数据长度会小得多4).校验和a.长度: 16位b.作用: 用于差错检测, 检测UDP报文在传输过程中是否出现了错误(如比特翻转)c.计算内容: 校验和的计算不仅包括UDP报文本身(报头和数据), 还引入了一个伪首部d.特点: 这个字段在IPV4中是可选的, 如果发送方没有计算校验和, 则该字段填充为0; 但在ipv6中是强制的

2.校验和

1).伪首部a.为什么需要伪首部?为了不仅校验数据, 还能验证这个udp报文是否被错误地送到了错误的主机b.伪首部包含什么伪首部是临时构造的, 只用于计算校验和, 不会被实际传输; 伪首部是12字节

在这里插入图片描述

a./目的IP地址: 来自ip层的头部信息, 保证报文能够正确的送到对应的主机b.协议号: udp的协议号是17c.UDP长度: UDP头部中的长度字段

2).计算校验和:a.拼接将伪首部、UDP报头(注意,此时校验和字段先置为0)和数据部分全部拼接在一起b.分组将整个拼接后的数据流, 视为一系列16(2字节)的数c.求和将所有这些16位的数进行二进制反码求和简单理解二进制反码求和: 就是普通的二进制加法, 但当最高位有进位时, 不是丢弃, 而是把这个进位"回卷"加到最低位上例子: 计算11011001(这里我们用4位简化演示)- 普通加法, 1101 + 1001 = 1 0110(结果溢出了)- 反码求和, 取出溢出位1, 加到结果0110: 0110 + 1 = 0111d.取反得到最终结果将对所有16位数进行二进制反码求和后得到的结果, 按位取反(01, 10)得到的这个值就是 校验和, 然后填入UDP报头的"校验和"字段
http://www.dtcms.com/a/465170.html

相关文章:

  • 利用R语言绘制直方图
  • Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask)
  • 《R for Data Science (2e)》免费中文翻译 (第9章) --- Layers(2)
  • php集成VSCode开发
  • 邯郸市民网企业网站优化公司有哪些
  • 陕西 餐饮 网站建设外贸网站建设公司价格
  • 开源书签管理器Faved
  • 【全开源】企业微信SCRM社群营销高级版系统+uniapp前端
  • 深入浅出MATLAB数据可视化:超越plot()
  • 基于IMBT框架的定制开发开源AI智能名片S2B2C商城小程序直播营销规范化研究
  • 开源 C++ QT QML 开发(十五)通讯--http下载
  • 【CANN训练营】+开源之星+GitCode算子开发环境快速搭建手册
  • 西安网站建设网站网站集约化建设
  • 设计网站名称wordpress无法发送
  • python获取国内股票数据
  • Win64下MSYS2开发环境完整配置指南
  • Linux进程第九讲——进程状态深度解析(三):僵尸进程(Z态)的本质、风险与实验验证
  • 系统之间文件同步方案
  • VTK实战:vtkImplicitSelectionLoop——用隐式函数实现“环选”的核心逻辑与工程实践
  • 使用compose和WheelView实现仿IOS中的3D滚轮控件-三级联动
  • Burpsuite工具使用
  • 做网站设计电脑需要什么配置企业如何建设网站呢
  • 旅游网站制作内容淘宝网站小视频怎么做的
  • 关于 Qt 6.10.0 中 FolderListModel 返回 undefined 路径
  • 做展会怎么引流到自己的网站小程序生成器
  • 【第五章:计算机视觉-项目实战之生成式算法实战:扩散模型】3.生成式算法实战:扩散模型-(1)从零开始训练自己的扩散模型
  • [VoiceRAG] 集成向量化 | Azure AI Search中建立自动化系统
  • 从效能革命到体验重构,易路 AI Agent 破局 HR 三重困境
  • 计算机视觉(opencv)——基于 OpenCV DNN 的实时人脸检测 + 年龄与性别识别
  • Flink 状态后端(State Backends)实战原理、选型、配置与调优