UDP如何实现可靠传输

2 分钟阅读 288 字 + 195 词
总结:
UDP== 在传输层无法保证数据的可靠传输 ,只能通过 应用层 来实现了==。实现的方式可以参照tcp可靠性传输的方式,只是实现转移到了应用层。关键在于 两点 ,从 应用层角度 考虑:
(1)提供**==超时重传,能避免数据报丢失==**。
(2)提供**==确认序列号,可以对数据报进行确认和排序==**。
本端 :首先在UDP数据报定义一个首部,首部包含 确认序列号和时间戳 ,时间戳是 用来计算RTT (数据报传输的往返时间), 计算出合适的RTO (重传的超时时间)。然后 收到对端的确认之后 才发送下一个的数据报。当时间超时,本端重传数据报,同时RTO扩大为原来的两倍,重新开始计时。
对端 :接受到一个数据报之后取下该数据报首部的 时间戳和确认序列号 ,并 添加本端的确认数据报首部 之后发送给对端。根据此序列号对已收到的数据报进行排序并丢弃重复的数据报。