×

javaudp udp tcp

如何实现Java udp超时重传机制(类似tcp那样)?udp是什么意思

admin admin 发表于2022-07-15 15:43:23 浏览106 评论0

抢沙发发表评论

如何实现Java udp超时重传机制(类似tcp那样)


  对一个连接而言,若能够了解端点间的传输往返时间(RTT,Round Trip Time),则可根据RTT来设置一合适的RTO。显然,在任何时刻连接的RTT都是随机的,无法事先预知。TCP通过测量来获得连接当前RTT的一个估计值,并以该RTT估计值为基准来设置当前的RTO。自适应重传算法的关键就在于对当前RTT的准确估计,以便适时调整RTO。
为了搜集足够的数据来精确地估算当前的RTT,TCP对每个报文都记录下发送出的时间和收到的确认时间。每一个(发送时间,确认时间)对就可以计算出一个RTT测量值的样本(Sample RTT)。TCP为每一个活动的连接都维护一个当前的RTT估计值。该值是对已经过去的一个时间段内该连接的RTT了两只的加权平均,并作为TCP对连接当前实际的RTT值的一种估计。RTT估计值将在发送报文段时被用于确定报文段的RTO。为了保证它能够比较准确地反应当前的网络状态,每当TCP通过测量获得了个新的RTT样本时,都将对RTT的估计值进行更新。不同的更新算法或参数可能获得不同的特性。
最早的TCP曾经用了一个非常简单的公式来估计当前网络的状况,如下
R《-aR+(1-a)MRTP=Rb其中a是一个经验系数为0.1,b通常为2。注意,这是经验,没有推导过程,这个数值是可以被修改的。这个公式是说用旧的RTT(R)和新的RTT (M)综合到一起来考虑新的RTT(R)的大小。但又可以看到,这种估计在网络变化很大的情况下完全不能做出“灵敏的反应”,于是就有下面的修正公式:

对于连接,如果您可以了解端点的传输时间(RTT,往返时间),则可以根据RTT设置合适的RTO。显然,随时连接的RTT是随机的,不能预先预测。 TCP通过测量获得连接到当前RTT的估计值,并根据RTT估计值设置当前RTO。自适应重新算法的关键是当前RTT及时调整RTO的准确估计。为了收集足够的数据以准确估算当前的RTT,TCP记录了每条消息收到的时间和确认时间。每个(发送时间,确认时间)可以计算RTT测量值的样本(样品RTT)。 TCP维持每个活动连接的当前RTT估计值。该值是对过去一段时间内连接到RTT的RTT的估计,并用作对当前实际RTT值连接到当前实际RTT值的估计。 RTT估计值将用于确定发送消息部分时消息段的RTO。为了确保它可以准确地反映当前网络状态,每当TCP通过测量获得新的RTT样本时,RTT估计值都会更新。不同的更新算法或参数可能会获得不同的特征。最早的TCP使用一个非常简单的公式来估计当前网络状态,如下所示,r“ -ar+(1-a)mrtp = rb,其中a的体验系数为0.1和b通常2.请注意,请注意,这是经验,不是派生过程,可以修改此值。此公式是考虑使用旧的RTT(R)和新的RTT(M)考虑新的RTT(R)的大小。但是,可以看出此估算无法在网络正在发生变化的情况下完全制作,因此下面有一个修改的公式:err = m -aa“ -a+gerrd” -d+h h(| err | -d)rto = a+4d,递归公式甚至使用了差异的统计概念,使偏差甚至更小。上面的公式不用于网络估计。该程序不再处于正常状态,并且估计数据毫无意义。-udp

=M-AA《-A+g

对于连接,如果您可以了解端点的传输时间(RTT,往返时间),则可以根据RTT设置合适的RTO。显然,随时连接的RTT是随机的,不能预先预测。 TCP通过测量获得连接到当前RTT的估计值,并根据RTT估计值设置当前RTO。自适应重新算法的关键是当前RTT及时调整RTO的准确估计。为了收集足够的数据以准确估算当前的RTT,TCP记录了每条消息收到的时间和确认时间。每个(发送时间,确认时间)可以计算RTT测量值的样本(样品RTT)。 TCP维持每个活动连接的当前RTT估计值。该值是对过去一段时间内连接到RTT的RTT的估计,并用作对当前实际RTT值连接到当前实际RTT值的估计。 RTT估计值将用于确定发送消息部分时消息段的RTO。为了确保它可以准确地反映当前网络状态,每当TCP通过测量获得新的RTT样本时,RTT估计值都会更新。不同的更新算法或参数可能会获得不同的特征。最早的TCP使用一个非常简单的公式来估计当前网络状态,如下所示,r“ -ar+(1-a)mrtp = rb,其中a的体验系数为0.1和b通常2.请注意,请注意,这是经验,不是派生过程,可以修改此值。此公式是考虑使用旧的RTT(R)和新的RTT(M)考虑新的RTT(R)的大小。但是,可以看出此估算无法在网络正在发生变化的情况下完全制作,因此下面有一个修改的公式:err = m -aa“ -a+gerrd” -d+h h(| err | -d)rto = a+4d,递归公式甚至使用了差异的统计概念,使偏差甚至更小。上面的公式不用于网络估计。该程序不再处于正常状态,并且估计数据毫无意义。-udp

D《-D+h(|

对于连接,如果您可以了解端点的传输时间(RTT,往返时间),则可以根据RTT设置合适的RTO。显然,随时连接的RTT是随机的,不能预先预测。 TCP通过测量获得连接到当前RTT的估计值,并根据RTT估计值设置当前RTO。自适应重新算法的关键是当前RTT及时调整RTO的准确估计。为了收集足够的数据以准确估算当前的RTT,TCP记录了每条消息收到的时间和确认时间。每个(发送时间,确认时间)可以计算RTT测量值的样本(样品RTT)。 TCP维持每个活动连接的当前RTT估计值。该值是对过去一段时间内连接到RTT的RTT的估计,并用作对当前实际RTT值连接到当前实际RTT值的估计。 RTT估计值将用于确定发送消息部分时消息段的RTO。为了确保它可以准确地反映当前网络状态,每当TCP通过测量获得新的RTT样本时,RTT估计值都会更新。不同的更新算法或参数可能会获得不同的特征。最早的TCP使用一个非常简单的公式来估计当前网络状态,如下所示,r“ -ar+(1-a)mrtp = rb,其中a的体验系数为0.1和b通常2.请注意,请注意,这是经验,不是派生过程,可以修改此值。此公式是考虑使用旧的RTT(R)和新的RTT(M)考虑新的RTT(R)的大小。但是,可以看出此估算无法在网络正在发生变化的情况下完全制作,因此下面有一个修改的公式:err = m -aa“ -a+gerrd” -d+h h(| err | -d)rto = a+4d,递归公式甚至使用了差异的统计概念,使偏差甚至更小。上面的公式不用于网络估计。该程序不再处于正常状态,并且估计数据毫无意义。-udp

|-D)RTO=A+4D,这个递推公式甚至把方差这种统计概念也使用了进来,使得偏差更加的小。而且,必须要指出的是,这两组公式更新,都是在 数据成功传输的情况下才进行,在发生数据重新传输的情况下,并不使用上面的公式进行网络估计,理由很简单,因为程序已经不在正常状态下了,估计出来的数据 也是没有意义的。

udp是什么意思


udp是什么意思
是UDP吧,是一种网络协议。
UDP 是User Datagram Protocol的缩写, 即用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。
与TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。
功能
为了在给定的主机上能识别多个目的地址,同时允许多个应用程序在同一台主机上工作并能独立地进行数据包的发送和接收,设计用户数据报协议UDP。
使用UDP协议包括:TFTP、SNMP、NFS、DNS、BOOTP
  UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接数据包传输服务。它不提供报文到达确认、排序、及流量控制等功能。
UDP协议的更多技术细节详见:
http://baike.baidu.com/link?url=UHxEDfVc-VEBBvdo4LvqHSHLgvU6P_csQDeolV2gsykAydqWWX8EUaCgw1ytSkISN_nFXHe8I0PNPS3ufylPQbwqpRNuOSPym85O7ecB7hH_mu0VB-V9CiXakblQtR3HTG5z5r50cv6oGDMx9vTl_eGJ7khkslT4pFzgfouJhO3
-tcp

什么是UDP端口

UDP端口是指运输层的UDP协议使用的端口,端口号为0-65535。使用UDP传输数据的一些特殊应用程序层已定义端口号。服务,例如与UDP端口号69相对应的TFTP(简单文件传输协议)