首页 > 其他分享 >UDP

UDP

时间:2023-07-01 12:02:54浏览次数:20  
标签:协议 UDP 网络 TCP 传输 分片

什么是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传输的稳定性和完整性

标签:协议,UDP,网络,TCP,传输,分片
From: https://blog.51cto.com/u_5105856/6598764

相关文章

  • 1.UDP模式
    不同节点pod间通信(UDP模式)发送流程1.发送数据报文,发现是不同网段,但找不到路由,转给默认网关cni02.cni0查看宿主机路由表:去往目的pod所在网段转给tun设备flannel0,而后由flanneld进程截获,由它指导内核封装数据报文,由于flanneld进程在启动之初会收集各pod网段与k8s节点网卡对应......
  • (2)基于UDP协议的简单套接字
    基于UDP协议的简单套接字UDP协议----->数据报协议【一】简单版1.0【1】TCP协议所遇到的空数据问题是否存在?TCP协议是水流式协议:传入的数据不能为空,因为水是一直流的,在传输过程中不会对数据进行操作UDP协议是数据报协议:传入的数据可为空,在传输过程中UDP会对数据进行内......
  • 服务器UDP协议的优缺点,为什么要封UDP?
    网络业务高速发展,不同业务对于服务器使用的网络协议要求不同,有些业务需要使用UDP协议,有些则用不上,TCP协议也是一样,UDP和TCP都是属于一种网络协议。并且在市面上应用都是比较广泛的。那么UDP相对于TCP来说究竟有哪些优缺点呢?UDP的优点UDP要比TCP更快,UDP不容易被攻击,因为无需太多的机......
  • UDP recvfrom error错误10022
    fromlen参数没有初始化from参数没有设置正确,也就是结构问题终于发现原来是bind函数的问题。由于在文件开头使用了usingnamespacestd导致默认的bind变成了functional中的那个,而不是socket的bind,导致绑定一直没有成功。当然,也可能是套接字端口被占用......
  • fpga 以太网w5500 SPI传输80MHz,Alter FPGA verilog udp驱动源码,8个SOCKET都可用,SPI频
    fpga以太网w5500SPI传输80MHz,AlterFPGAverilogudp驱动源码,8个SOCKET都可用,SPI频率支持80MHZ,硬件验证以通过。w5500ip核w5500软核实测网络传输速度8.5M/s,学习必用之良品ID:1399607465825157......
  • 浅谈TCP和UDP
    简介在计算机网络中,TCP(传输控制协议)和UDP(用户数据报协议)是两个常用的传输层协议。它们分别提供了可靠的数据传输和快速的数据传送,成为互联网世界中的双子星。本文将探讨TCP和UDP的特点、优势和应用场景,以及如何选择合适的协议来满足不同的需求。TCP定义英文名:TransmissionCon......
  • 关于TCP与UDP
    一、定义:UDP是UserDatagramProtocol的简称,中文名是用户数据报协议,是OSI(OpenSystemInterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是UDP的正式规范。UDP在IP报文的协议号是17。[摘自百度百科]TCP(Transm......
  • 客服端与服务端在TCP/UDP的执行顺序的感受与想法
    网络层与传输层是从上到下还是从下到上网络通信的核心是socket套接字的创建,创建离不开一个关键的点,IP和端口。网络层:提供了端对端的传输,可以理解为通过IP寻址机器。传输层:决定机器的哪一个进程去处理,通过端口寻址。逻辑思维都是,我们通讯一个设备,首先要知道它的IP地址,然后确定......
  • Linux UDP协议栈中的片段分析 - udp_recvmsg
    udp_recvmsg(struct kiocb *iocb, struct sock *sk, structsize_t len, int noblock, int flags, int调用了:err = skb_copy_datagram_iovec(skb, sizeof(struct udphdr), msg->msg_iov,copied);调用了:memcpy_toiovec(to, skb->data + o, copy);......
  • TCP/UDP的一些区别
    TCP服务端创建TCP连接,其作用是监听来自其他IP的连接请求,所以设置的参数有两个1.需要监听的IP地址,如果设置为0.0.0.0则是监听所有地址2.监听端口,注意这里端口是服务端本身的端口,可以理解为服务端这座屋子选择开哪个门迎客当连接完成后,服务端自动获取来自客户端的端口信息......