
UDP不是连接协议. 具有资源消耗少,处理速度快的优点. 因此,音频,视频和常规数据通常使用UDP传输,因为即使丢失了少量数据包,结果也不会被接受,影响更大.
传输层不能保证数据的可靠传输,只能通过应用层来实现. 该实现方法可以参考tcp可靠性传输的方法,但是该实现不在传输层udp可靠传输,而是将实现转移到应用层.

最简单的方法是在应用程序层模仿传输层TCP的可靠传输. 可靠UDP的简单设计在下面不考虑拥塞处理.
详细说明: 发送数据时,发送方生成一个随机的seq = x,然后根据每个切片的数据大小分配seq. 数据到达接收端后,接收端将其放入缓冲区并发送ack = x的数据包,表明另一方已接收到数据. 发送端收到ack报文后,删除该缓冲区对应的数据. 时间到后,计划任务将检查是否需要重新传输数据.

目前,以下开源程序使用udp来实现可靠的数据传输. 它们是RUDP,RTP和UDT.
RUDP提供了一组数据服务质量增强机制,例如改进的拥塞控制,重传机制和稀释服务器算法,因此,在丢包和网络拥塞的情况下,RTP客户端(实时位置)是展示了高质量的RTP流. 可靠的UDP拥塞控制机制在不干扰协议实时性的情况下,允许以TCP模式进行流控制行为.

RTP为数据提供实时特性的端到端传输服务,例如多播或单播网络服务下的交互式视频音频或模拟数据.
应用程序通常在UDP上运行RTP,以便使用它们的多个节点并检查服务. 两种协议都提供传输层协议的功能. 但是RTP可以与其他合适的基础网络或传输协议一起使用. 如果基础网络提供多播,则RTP可以使用多播表将数据传输到多个目的地.

RTP本身不提供按时交付机制或其他服务质量(QoS)保证,它依赖于基础服务来实现此过程. RTP不能保证传输或防止乱序传输,也不能确定基础网络的可靠性. RTP实现有序传输. RTP中的序列号允许接收者重组发送者的数据包序列. 同时,序列号还可用于确定适当的数据包位置. 例如,在视频解码中,不需要顺序解码.
基于UDP的数据传输协议(基于UDP的数据传输协议,简称UDT)是Internet数据传输协议. * UDT的主要目的是支持高速广域网上的海量数据传输*,并且Internet上的标准数据传输协议TCP在高带宽长距离网络上的性能较差.
顾名思义,UDT基于UDP构建udp可靠传输,并引入了新的拥塞控制和数据可靠性控制机制. UDT是面向连接的双向应用程序层协议. 它还支持可靠的数据流传输和部分可靠的数据报传输. 由于UDT完全在UDP上实现,因此它还可以应用于高速数据传输以外的其他应用领域,例如点对点技术(P2P),防火墙穿透,多媒体数据传输等.
如果您喜欢我的文章,可以关注您的个人订阅号. 欢迎随时留言和交流. 如果您想加入微信小组并进行讨论,请添加管理员Jianzhan Culture-Little Assistant(lastpass4u),他会将您加入小组.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-216811-1.html
真想开打就是误国呢
市场管理局最低罚5万
一起围捕拉森号去