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

UDP的报文结构和特点

1.UDP传输协议的特点

使用UDP传输协议进行通信,过程类似于寄信,它的特点如下:

  1. 无连接:知道对端的IP号和端口号就直接进行传输,不需要建立连接;
  2. 不可靠:没有可靠机制,发送数据包以后,如果因为网络故障等原因,出现数据包丢失的问题,UDP协议层也不会返回故障信息给应用层;
  3. 面向数据报:应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并;
  4. 支持全双工通信:UDP的socket能够同时进行读写,能支持同时收发数据;

2.UDP协议格式

  1. SourcePort和DestinationPort:源端口号和目的端口号,都是16位端口号,即占用两个字节;
  2. Length:报文长度,占用16位,也是两个字节,表示报头长度和负载长度的总和,单位是字节,因此UDP报文的总长度不能超过65535字节,即一条UDP报文传输的数据不能超过64k;
  3. Checksum:校验和,占用16位,也是两个字节,UDP协议使用CRC算法计算校验和,如果发送方发送的校验和和接收方计算的校验和相同,则表示数据传输大概率正确,反之,表示数据在传输过程中出现了错误。

3.UDP协议的应用场景

         基于UDP协议实现的应用层协议有DNS(域名解析协议),DHCP(动态主机配置协议),TFTP(简单文件传输协议)。

         TCP引入了可靠机制来保证数据传输的可靠性,但是同时也牺牲了一部分传输效率。相对于TCP协议,UDP协议虽然没有可靠机制来保证数据的可靠传输,但是UDP传输效率没有受到影响,因此同等网络条件下,传输效率要高于TCP。因此UDP协议适用于对数据可靠传输要求不高,但是对传输效率要求较高的场景。使用UDP协议通信不需要建立连接,可以直接根据IP地址和端口号进行传输,因此UDP可以使用在需要使用广播的场景中。


http://www.kler.cn/a/454043.html

相关文章:

  • SQLite本地数据库的简介和适用场景——集成SpringBoot的图文说明
  • C#控件开发3—文本显示、文本设值
  • 蓝牙BLE开发——解决iOS设备获取MAC方式
  • 如何通过 360 驱动大师检查自己电脑上的显卡信息
  • 300多种复古手工裁剪拼贴艺术时尚字母、数字、符号海报封面Vlog视频MOV+PNG素材
  • Pytorch | 利用AI-FGTM针对CIFAR10上的ResNet分类器进行对抗攻击
  • leetcode1110删点成林
  • MATLAB中UWB工具箱的使用建议
  • 解决pycharm无法识别miniconda
  • AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
  • VisualRules华为应用场景介绍
  • jquery固定折叠侧边栏菜单插件
  • Oracle一些基础知识
  • 【C++ 基础】从C到C++有哪些变化
  • hadoop中hive本地模式安装mysql源不成功
  • 【漫话机器学习系列】022.微积分中的链式求导法则(chain rule of Calculus)
  • 循环神经网络(RNN)入门指南:从原理到实践
  • sentinel笔记9- 限流规则持久化(上)
  • plantuml的picoweb无法渲染分页图表的问题
  • spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。
  • mybatis/mybatisplus
  • 《异构计算:多元算力聚变,点燃高性能计算新引擎 – CPU、GPU与FPGA算力融合》
  • Java - 日志体系_Apache Commons Logging(JCL)日志接口库
  • 基于Java2D和Java3D实现的(GUI)图形编辑系统
  • Android笔记(四十一):TabLayout内的tab不滚动问题
  • SpringCloud整合skywalking实现链路追踪和日志采集