UDP可靠传输

相对于TCP,由于UDP是面向无连接、不可靠的传输协议。 
如果我们要用UDP去实现可靠的传输,则需要解决两个问题:丢包和后发先至(包的顺序)。

解决方法: 
1)给数据包编号,按照包的顺序接收并存储; 
2)接收端接收到数据包后发送确认信息给发送端,发送端接收确认数据以后再继续发送下一个包,如果接收端收到的数据包的编号不是期望的编号,则要求发送端重新发送。

UDP是一种面向无连接的传输协议,它在传输数据时不提供可靠性,容易出现丢包、错包的情况。为了实现UDP可靠传输,可以采用以下策略: 1. 检验和:发送方在发送数据前,对数据进行检验和计算,并将计算结果附加在数据中。接收方在接收到数据后,重新计算检验和,并将计算结果与附加的检验和进行比对,如果不一致则认为数据损坏,需要重新发送。 2. 序列号和确认:发送方在发送每个数据包时都给数据包分配一个唯一的序列号。接收方在接收到数据包后,发送一个确认消息给发送方,告知发送方已成功接收到序列号为n的数据包。发送方在收到确认消息后,认为序列号为n的数据包已经可靠传输,可以发送下一个数据包。 3. 超时重传:发送方在发送数据包后设定一个定时器,如果在规定时间内没有收到接收方的确认消息,发送方就会认为数据包丢失,需要重新发送。 4. 滑动窗口:发送方可以同时发送多个数据包,接收方可以接收多个数据包。发送方和接收方分别维护一个窗口,窗口大小表示可以同时传输数据包的数量。发送方根据接收方发送的确认消息来调整发送窗口的大小,以提高传输效率。 通过以上策略的组合应用,可以在UDP协议下实现可靠传输。当然,这些策略也会增加网络传输的开销和延时,需要根据具体业务需求进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值