UDP如何实现可靠传输

 本文参考:

网络基础------如何让UDP实现可靠性传输_网络信息传输使用udp tcp实现双向传输-优快云博客

ChatGPT 仅用于自用复习

传输层UDP无法保证数据的可靠性的传输,只能通过应用层来进行实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

实现确认机制,重传机制,窗口确认机制。

如果不利用linux协议栈以及上层socket机制。自己通过抓包和发包的方式去实现可靠性传输,那么必须要实现的功能就如下所示:

简单来讲,要使用UDP来构建可靠的面向连接的数据传输,就要实现类似于TCP协议的

超时重传(定时器)

有序接受 (添加包序号)将数据包进行编号,按照包的顺序接收并存储。

应答确认 (Seq/Ack应答机制)

滑动窗口流量控制等机制 (滑动窗口协议)

等于说要在传输层的上一层(或者直接在应用层)实现TCP协议的可靠数据传输机制,比如使用UDP数据包+序列号,UDP数据包+时间戳等方法。

目前有如下的开源程序实现利用UDP实现了可靠的数据传输。分别为RUDP、RTP、UDT。

RUDP

RUDP(Reliable User Datagram Protocol,可靠用户数据报协议)是一种基于 UDP 的增强协议,旨在提供与 TCP 类似的可靠性,同时保持 UDP 的灵活性和高效性。RUDP 添加了额外的机制,例如确认应答(ACK)、超时重传和流量控制,以实现可靠的数据传输。

RTP

RTP(Real-time Transport Protocol,实时传输协议)是一种专门为实时应用设计的网络传输协议,广泛应用于音视频流、在线会议、IP 语音(VoIP)等场景。它通常与 UDP 协同工作,用于高效传输实时数据。

UDT

UDT(UDP-based Data Transfer Protocol)是一种基于 UDP 的高效、可靠的数据传输协议,设计初衷是为了满足大规模数据传输和高带宽网络环境(如高速科研网络、数据中心互联)中的需求。它结合了 UDP 的高性能和 TCP 的可靠性,同时通过专门的拥塞控制和流量控制算法优化了性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值