UDP
  24jwdQR0wjVS 2023年11月02日 29 0

什么是UDP

包头

UDP_UDP

功能

  • 快速传输:UDP通过提供一种无连接的传输方式,减少了建立和维护连接的开销,从而实现了较快的数据传输速度。
  • 低延迟:由于UDP不需要等待连接的建立,数据包可以立即发送,因此UDP在实时应用中可以提供较低的传输延迟。
  • 支持广播和多播:UDP协议支持广播和多播功能,可以将数据包发送给同一网络中的所有设备(广播)或特定组中的一组设备(多播)。

UDP_UDP_02

特点

  • 传输成本低,简单沟通,不需要数据结构,处理逻辑,过多的包头字段等,只要是服务监听的端口任何人都可以给他传数据,不需要建立链接,
  • 不可靠,不提供可靠性和错误恢复机制,数据在传输过程中可能会丢失、乱序或重复。
  • UDP数据报的长度通常小于或等于IP层的MTU,因为UDP不负责分片,分片工作交给网络层


UDP的使用


常见应用

  • DNS:查询和响应通常使用UDP协议进行传输,短小的DNS消息,UDP可以提供较快的响应速度。
  • DHCP:使用UDP协议进行客户端和服务器之间的通信,以提供IP地址的分配和配置。
  • TFTP:使用UDP作为传输协议,主要用于从服务器下载或上传文件。
  • NTP:用于同步网络中的设备时钟,确保设备具有准确的时间。
  • SNMP:一种网络管理协议,用于网络设备监控、配置和故障排除等。
  • QUIC:谷歌开发,目前谷歌,YouTube,facebook都有用,可以提供多路复用,快速建立链接,错误恢复,拥塞控制等功能
  • RADIUS:是一种用于远程身份验证和授权的协议,常用于认证网络用户。

流媒体协议

  • RTMP:基于TCP的就会出现一旦出现大量重传就会一直卡顿的情况,因而很多直播已经用基于UDP去做流媒体传输的协议,
  • SIP:是一种用于建立、修改和终止会话的协议,常用于语音、视频和即时通信等应用。
  • MGCP:是一种控制多媒体网关的协议,用于语音、视频和传真等通信

实时游戏

  • 没有异步I/O的时候无法维护过多TCP链接时需要使用UDP来应对过多的流量
  • 对实时性要求比较高的游戏,需要使用自定义的传输(重传等)策略来维护数据

物联网

  • MQTT--TCP CoAP--UDP
  • 物联网设备很多都是内存很小的嵌入式系统维护TCP的代价过大(Thread,CoAP)

使用注意项

数据大小

应用设计和使用UDP传输时尽量避免需要进行UDP分片的情况。可以通过调整链路设备的MTU,以及程序的数据发送大小,避免分片带来的问题。

安全问题

没有加密和安全验证机制容易被窃听和篡改

可以通过快速发送大量more fragments 为1的报文来消耗对方内存

网络情况

网络的拥塞和网络的可靠性决定着UDP传输的稳定性和完整性

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月07日   28   0   0 数据乐观锁redis
  jnZtF7Co41Wg   2023年12月09日   28   0   0 客户端服务端数据
  pfb3gDAOHucg   2023年12月09日   42   0   0 TCP网络层协议UDP