日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

網(wǎng)絡(luò)流量控制 網(wǎng)絡(luò)流量監(jiān)控工具( 四 )


https://en.wikipedia.org/wiki/TCP_congestion_control關(guān)于不同擁塞算法對比 。
擁塞算法網(wǎng)絡(luò)反饋需要修改點(diǎn)應(yīng)用場景公平性準(zhǔn)則(New) RenoLoss——DelayVegasDelaySenderLess lossProportionalHigh SpeedLossSenderHigh bandwidthBICLossSenderHigh bandwidthCUBICLossSenderHigh bandwidthC2TCP[10][11]Loss/DelaySenderUltra-low latency and high bandwidthNATCP[12]Multi-bit signalSenderNear Optimal PerformanceElastic-TCPLoss/DelaySenderHigh bandwidth/short & long-distanceAgile-TCPLossSenderHigh bandwidth/short-distanceH-TCPLossSenderHigh bandwidthFASTDelaySenderHigh bandwidthProportionalCompound TCPLoss/DelaySenderHigh bandwidthProportionalWestwoodLoss/DelaySenderLJerseyLoss/DelaySenderLBBR[13]DelaySenderBLVC, BufferbloatCLAMPMulti-bit signalReceiver, RouterVMax-minTFRCLossSender, ReceiverNo RetransmissionMinimum delayXCPMulti-bit signalSender, Receiver, RouterBLFCMax-minVCP2-bit signalSender, Receiver, RouterBLFProportionalMaxNetMulti-bit signalSender, Receiver, RouterBLFSCMax-minJetMaxMulti-bit signalSender, Receiver, RouterHigh bandwidthMax-minREDLossRouterReduced delayECNSingle-bit signalSender, Receiver, RouterReduced loss這里還要提一下TCP流的公平性問題,有的擁塞算法可能會(huì)存在帶寬搶占,基于延時(shí)相關(guān)的算法就很容易出現(xiàn),因?yàn)槭腔赗TT來搶占帶寬,RTT越小占用則更多,比如有兩條TCP流,TCP流中延遲更小的會(huì)搶占更多的帶寬,甚至完全占有所有帶寬,其他流都無法正常工作 。比如reno和bic都存在搶占問題,cubic是通過3次曲線來探測理想帶寬,和RTT無關(guān)聯(lián),公平性做得較好 。

網(wǎng)絡(luò)流量控制 網(wǎng)絡(luò)流量監(jiān)控工具


如上圖使用reno算法,使用iperf打流到兩個(gè)不同服務(wù)端,stream2延時(shí)低直接搶占了大部分帶寬

網(wǎng)絡(luò)流量控制 網(wǎng)絡(luò)流量監(jiān)控工具


如上圖使用cubic算法,同樣使用iperf打流到兩個(gè)不同服務(wù)端,steam2延時(shí)低搶占帶寬則沒有那么嚴(yán)重
Linux內(nèi)核中擁塞算法Linux 2.6.x內(nèi)核版本具體可參考
https://linuxgazette.net/135/pfeiffer.html進(jìn)行擁塞算法選擇,最新的linux 5.x內(nèi)核多支持了幾種,內(nèi)核代碼Kconfig中也有簡要描述,順便提一下mptcp內(nèi)核也包含了多路徑場景的幾種擁塞算法 。
Linux 4.x內(nèi)核中支持的tcp擁塞算法,默認(rèn)使用cubic:
config DEFAULT_TCP_CONGstringdefault "bic" if DEFAULT_BICdefault "cubic" if DEFAULT_CUBICdefault "htcp" if DEFAULT_HTCPdefault "hybla" if DEFAULT_HYBLAdefault "vegas" if DEFAULT_VEGASdefault "westwood" if DEFAULT_WESTWOODdefault "veno" if DEFAULT_VENOdefault "reno" if DEFAULT_RENOdefault "dctcp" if DEFAULT_DCTCPdefault "cdg" if DEFAULT_CDGdefault "bbr" if DEFAULT_BBRdefault "cubic"Linux mptcp v0.95內(nèi)核支持的mptcp擁塞算法:
config TCP_CONG_LIAtristate "MPTCP Linked Increase"depends on MPTCPdefault n---help---MultiPath TCP Linked Increase Congestion ControlTo enable it, just put 'lia' in tcp_congestion_controlconfig TCP_CONG_OLIAtristate "MPTCP Opportunistic Linked Increase"depends on MPTCPdefault n---help---MultiPath TCP Opportunistic Linked Increase Congestion ControlTo enable it, just put 'olia' in tcp_congestion_controlconfig TCP_CONG_WVEGAStristate "MPTCP WVEGAS CONGESTION CONTROL"depends on MPTCPdefault n---help---wVegas congestion control for MPTCPTo enable it, just put 'wvegas' in tcp_congestion_controlconfig TCP_CONG_BALIAtristate "MPTCP BALIA CONGESTION CONTROL"depends on MPTCPdefault n---help---Multipath TCP Balanced Linked Adaptation Congestion ControlTo enable it, just put 'balia' in tcp_congestion_controlconfig TCP_CONG_MCTCPDESYNCtristate "DESYNCHRONIZED MCTCP CONGESTION CONTROL (EXPERIMENTAL)"depends on MPTCPdefault n---help---Desynchronized MultiChannel TCP Congestion Control. This is experimentalcode that only supports single path and must have set mptcp_ndiffportslarger than one.To enable it, just put 'mctcpdesync' in tcp_congestion_controlFor further details see:http://ieeexplore.ieee.org/abstract/document/6911722/https://doi.org/10.1016/j.comcom.2015.07.010

推薦閱讀