udt常见问题
常見(jiàn)問(wèn)題
UDT是基于UDP的數(shù)據(jù)傳輸協(xié)議,主要目的是針對(duì)“TCP在高帶寬長(zhǎng)距離網(wǎng)絡(luò)上的傳輸性能差”的問(wèn)題,盡可能全面支持BDP網(wǎng)絡(luò)上的海量數(shù)據(jù)傳輸。
udt在低速網(wǎng)絡(luò)下,傳輸延遲較大?
? ?1.重協(xié)議本身來(lái)看,udt協(xié)議本身設(shè)計(jì)就是針對(duì)高速光纖傳輸用。
? ?2.udt在低網(wǎng)速網(wǎng)絡(luò)下,據(jù)說(shuō)可以通過(guò)設(shè)置,參數(shù)設(shè)置UDT_SNDBUFF和UDT_RCVBUFF接近于TCP協(xié)議的這兩個(gè)參數(shù)值進(jìn)行對(duì)? ? ? ? 比,結(jié)果udt時(shí)延應(yīng)該比tcp要低很多,傳輸速率也更快(在代碼中貌似通過(guò)setsockoption進(jìn)行設(shè)置)。
? ? ? ? 在一定程度上加大緩存應(yīng)該是可以降低延時(shí)的,但是從非慢啟動(dòng)階段的控制算法上看,要在低網(wǎng)速下怎么達(dá)到最低的網(wǎng)絡(luò)延遲? ? ? ?效果,還需要深層次的設(shè)計(jì),證明,具體環(huán)境測(cè)試。
在網(wǎng)絡(luò)丟包在10%左右是,udt傳輸速率下降比較嚴(yán)重?
? 該問(wèn)題個(gè)人認(rèn)為是否通過(guò)修改udt源代碼中的,控制發(fā)送速率變量m_dPktSndPeriod,該變量的計(jì)算牽涉較多
m_iAvgNAKNum = (int)ceil(m_iAvgNAKNum * 0.875 + m_iNAKCount * 0.125); //計(jì)算平均負(fù)反饋數(shù)? ?比如把,0.875改成0.9,0.125改成0.1,通過(guò)調(diào)整負(fù)反饋的值,來(lái)減慢m_dPktSndPeriod它的增長(zhǎng)。
m_iDecRandom = (int)ceil(m_iAvgNAKNum * (double(rand()) / RAND_MAX));? ? 當(dāng)然,目前只是探索并沒(méi)有得到驗(yàn)證。這樣調(diào)整是發(fā)會(huì)影響其他變量。
關(guān)于udt源碼崩潰問(wèn)題
? ? 1.udt論壇、UDT::connect超時(shí),調(diào)用UDT::cleanup出現(xiàn)內(nèi)存錯(cuò)誤,但是我貌似沒(méi)有遇到過(guò)?
? ? 2.udt論壇、epoll? 監(jiān)聽(tīng)不到close事件? 關(guān)于這個(gè)問(wèn)題doctor gu應(yīng)該是已修改,在使用中沒(méi)有發(fā)現(xiàn)。
目前udt大多數(shù)使用的是udt-xx,也是就是udt4最新版本,不知道udt5開(kāi)發(fā)的咋樣。
?
udt中文論壇
總結(jié)
- 上一篇: Python运算符与if结构
- 下一篇: 链表结点的物理顺序与逻辑顺序