码迷,mamicode.com
首页 > 其他好文 > 详细

如何提高UDP的可靠性

时间:2017-09-09 23:17:13      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:包含   序列   结果   传输   可靠性   提高   数据   排序   处理   

TCP是通过确认机制和超时重传机制实现可靠传输

 

UDP

UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

关键在于两点,从应用层角度考虑:

1 提供超时重传,能避免数据报丢失。

2 提供确认序列号,可以对数据报进行确认和排序。

 

本端:首先在UDP数据报定义一个首部,首部包含确认序列号和时间戳,时间戳是用来计算RTT(数据报传输的往返时间),从何计算出合适的RTO(重传的超时时间)。然后以等-停的方式发送数据报,即收到对端的确认之后才发送下一个的数据报。当时间超时,本端重传数据报,同时RTO扩大为原来的两倍,重新开始计时。

 

对端:接受到一个数据报之后取下该数据报首部的时间戳和确认序列号,并添加本端的确认数据报首部之后发送给对端。根据此序列号对已收到的数据报进行排序并丢弃重复的数据报。

如何提高UDP的可靠性

标签:包含   序列   结果   传输   可靠性   提高   数据   排序   处理   

原文地址:http://www.cnblogs.com/home123/p/7499608.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!