天天看点

udt常见问题

常见问题

UDT是基于UDP的数据传输协议,主要目的是针对“TCP在高带宽长距离网络上的传输性能差”的问题,尽可能全面支持BDP网络上的海量数据传输。

udt在低速网络下,传输延迟较大?

   1.重协议本身来看,udt协议本身设计就是针对高速光纤传输用。

   2.udt在低网速网络下,据说可以通过设置,参数设置UDT_SNDBUFF和UDT_RCVBUFF接近于TCP协议的这两个参数值进行对        比,结果udt时延应该比tcp要低很多,传输速率也更快(在代码中貌似通过setsockoption进行设置)。

        在一定程度上加大缓存应该是可以降低延时的,但是从非慢启动阶段的控制算法上看,要在低网速下怎么达到最低的网络延迟       效果,还需要深层次的设计,证明,具体环境测试。

在网络丢包在10%左右是,udt传输速率下降比较严重?

  该问题个人认为是否通过修改udt源代码中的,控制发送速率变量m_dPktSndPeriod,该变量的计算牵涉较多

m_iAvgNAKNum = (int)ceil(m_iAvgNAKNum * 0.875 + m_iNAKCount * 0.125); //计算平均负反馈数      

   比如把,0.875改成0.9,0.125改成0.1,通过调整负反馈的值,来减慢m_dPktSndPeriod它的增长。

m_iDecRandom = (int)ceil(m_iAvgNAKNum * (double(rand()) / RAND_MAX));      

    当然,目前只是探索并没有得到验证。这样调整是发会影响其他变量。

关于udt源码崩溃问题

    1.udt论坛、UDT::connect超时,调用UDT::cleanup出现内存错误,但是我貌似没有遇到过?

    2.udt论坛、epoll  监听不到close事件? 关于这个问题doctor gu应该是已修改,在使用中没有发现。

继续阅读