b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

如何udp实现可靠性传输

电脑杂谈  发布时间:2020-03-04 12:01:00  来源:网络整理

udp如何保证可靠传输_如何确定udp可靠_udp 可靠传输

TCP(TransmissionControl Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的存储层通信协议。

UDP是User Datagram Protocol,一种无连结的存储层协议,提供面向事务的简单不可信信息传送服务。可靠性由上层应用推动,所以要谋求udp可靠性传输,必须借助应用层来推动和控制。

确认机制、重传机制、滑动窗口。

1.应用数据被分割成TCP认为更合适发送的数据块。这跟UDP完全不同,应用程序产生的数据长度将维持不变。由TCP传递给IP的信息单位称为报文段或段(segment)。

2.当TCP发出一个段后,它开启一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开,则是立刻证实。功能开启,则由定时器触发确认时间点。

udp如何保证可靠传输_udp 可靠传输_如何确定udp可靠

3.TCP将保持它首部跟数据的检验和。这是一个端到端的检验跟,目的是测量数据在存储过程中的任何差异。如果收到段的检验跟有差错,TCP将抛弃这个报文段和不确定收到此报文段(希望发端超时并重发)。

4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行再次排序,将收到的数据以恰当的排序交给应用层。

5.既然IP数据报会出现重复,TCP的接收端必须丢弃重复的数据。[2]

6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将避免较快主机使得较慢主机的缓冲区溢出。

TCP协议用于控制数据段是否应该重传的根据是设立重发定时器。在发送一个数据段的同时开启一个重传,如果在重传超时前收到确认(Acknowlegement)就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选取重发时间的过程中,TCP必须具备自适应性。它必须按照互联网当时的通信状况,给出合适的重发时间。

udp 可靠传输_udp如何保证可靠传输_如何确定udp可靠

这种重传策略的关键是对定时器初值的设置。采用较好的算法是Jacobson于1988年提出的一种不断调整超时时间间隔的动态算法。其工作原理是:对每条连接TCP都维持一个变量RTT(Round Trip Time),用于存放当前到目的端往返所必须时间更接近的估计值。当发送一个数据段时,同时开启连接的定时器,如果在定时器超时前确定到达,则记录所必须的时间(M),并修正[2] RTT的值,如果定时器超时前没有收到确认,则将RTT的值降低1倍。通过检测一系列的RTT(往返时间)值,TCP协议可以计算数据包重发前必须等待的时间。在大概该连接所需的当前延迟时一般运用一些统计学的机理和算法(如Karn算法),从而受到TCP重发之前需要期待的时间值。

TCP的一项功能就是确保每位数据段都可前往目的地。位于目的主机的TCP服务对接受到的数据进行确定,并向源应用程序发送确定信息。使用数据报头序列号以及确定号来证实未收到包含在数据段的相关的数据字节。

TCP在发回源设备的数据段中使用确定号,指示接收设备等待接收的下一字节。这个过程称为期待确认。

源主机在收到确认消息之前可以存储的数据的大小称为窗口大小。用于管控丢失数据和流量控制。

UDP它不属于连接型协议,因而具备资源耗费小,处理速率快的特点,所以一般音频、视频跟普通数据在传送时使用UDP较多udp如何保证可靠传输,因为他们仍然时常丢失一两个数据包,也不会对接收结果造成很大影响。

udp 可靠传输_如何确定udp可靠_udp如何保证可靠传输

传输层能够确保数据的可靠存储,只能借助应用层来推动了。实现的方法可以参照tcp可靠性传输的方法,只是谋求不在传输层,实现转移至了应用层。

实现确定体系、重传机制、窗口确定机制。

如果你不借助Linux协议栈以及上层socket机制udp如何保证可靠传输,自己通过抓包和发包的方法去推动可靠性传输,那么需要推动如下功能:

发送:包的分片、包确认、包的重发

接收:包的调序、包的序号确认

udp如何保证可靠传输_如何确定udp可靠_udp 可靠传输

目前有如下开源程序运用udp实现了可靠的数据存储。分别为RUDP、RTP、UDT。

RUDP 提供一组数据服务品质提升模式,如拥塞控制的优化、重发机制及淡化服务器算法等,从而在包损坏和网络拥塞的状况下, RTP 客户机(实时位置)面前展现的就是一个高质量的 RTP 流。在不干扰协议的即时特性的同时,可靠 UDP 的拥塞控制措施允许 TCP 方式下的流控制行为。

实时传输协议(RTP)为数据提供了带有即时特征的端对端传送服务,如在组播或单播网络服务下的交互式视频音频或模拟数据。应用程序通常在 UDP 上运行 RTP 以便使用其多路结点和校验服务;这两种协议都提供了存储层协议的用途。但是 RTP 可以与其他合适的底层网络或存储协议一起使用。如果底层网络提供组播方式,那么 RTP 可以使用该组播表存储数据至多个目的地。

RTP 本身并没有提供按时发送模式或其他服务品质(QoS)保证,它依赖于底层服务去推动这一过程。 RTP 并不保证传送或避免无序传送,也不确定底层网络的可靠性。 RTP 实行有序传送, RTP 中的序列号允许接收方重组发送方的包序列,同时序列号也可用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。

基于UDP的数据存储协议(UDP-basedData Transfer Protocol,简称UDT)是一种互联网数据存储协议。UDT的主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据存储协议TCP在高帧率长距离网络上性能更差。顾名思义,UDT建于UDP之上,并采用新的拥塞控制跟数据可靠性控制措施。UDT是面向连接的单向的应用层协议。它同时支持可靠的数据流传输跟部分可靠的数据报传输。由于UDT完全在UDP上推动,它也可以应用在比如高速数据存储之外的其他应用领域,例如点到点技术(P2P),防火墙穿透,多媒体数据存储等等。

因项目中的应该,现在具体探讨一下UDT是怎样借助udp实现数据的可靠存储。通过阅读源码的方法。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-142959-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 金岭
        金岭

        中国也应该打悲情牌

      • 和岘
        和岘

        用铁的事实证明了制定建造出众多鬼城的决策是多么的高瞻远瞩

      热点图片
      拼命载入中...