先来考虑,TCP和UDP的优缺点是什么?
网络上一搜一大把,总结起来就是:
一,TCP的优点
可靠,稳定
二,UPD的优点
快快快
对比而言对比而言
1.TCP基于连接UDP无连接;
2.TCP对系统资源需求较多,UDP相反;
3.TCP程序结构较为复杂,UDP则相对简单;
4.TCP采用流,UDP采用数据报 ;
5.TCP保证数据按序、正确、完整、不重复,UDP仅是尽最大努力交付,可能丢包;
6.TCP信道是全双工的可靠信道,UDP是不可靠信道;
7.TCP是点到点的,UDP是一对多、多对多、一对一、多对一可交互。
这次考虑RUDP的实现原理是什么?
一, RUDP的实现原理?
RUDP(RELIABLE UDP)是基于UDP之上而实现的可靠性UDP传输,在应用层中实现安全控制机制,主要采用请求回应机制,实现了UDP的可靠传输,即接收方检查是否丢失数据,然后向发送方请求丢失的数据,因此发送方必须保留已经发送过的数据一定时间来回应数据丢失。为了减小发送方数据保留量,在每收到n个包时通知发送方n之前的包已经收到可以清除了,另外超过设定的包超时时间后也会清除。
打个比方,我是发送方,现在有1、2、3、4、5发送给接收端,然后接收方接收到了1、2、4、5,告诉我1OK、2OK、3不OK,3在传输中丢掉了,然后接收方就喊我,喂,你他娘的在3没了,我听到了接收端的呼喊,然后我就又发送了一次3,然后接收端又捋了一遍一看12345都全了,数据接收完毕。
在这个过程中接收端每响应一个OK我就会删除掉对应的数据,或者发送后接收端超过保留时间我也会删除掉超时的数据。
RUDP有何用处?
在要求实时传输性中RUDP更像是一个性价比以及平衡性高的产品。
TCP属于是通过增大延迟和传输成本来保证质量的通信方式,UDP是通过牺牲质量来保证时延和成本的通信方式,所以在一些特定场景下RUDP更容易找到这样的平衡点,兼顾全局