1 TCP傳輸性能分析
1.1 影響TCP傳輸性能因素
眾所周知,在TCP/IP協(xié)議族里傳輸層的基本協(xié)議有TCP和UDP。TCP傳輸協(xié)議作為基于流控的可靠傳輸協(xié)議,承載IP網(wǎng)絡(luò)上的大量關(guān)鍵業(yè)務(wù)。TCP采用了基于包Ack機(jī)制保證數(shù)據(jù)的可靠傳輸,其傳輸數(shù)據(jù)速率量受到滑動窗口、擁塞窗口雙重控制。滑動窗口控制用于協(xié)調(diào)收發(fā)兩端的流量平衡,擁塞窗口控制用于控制TCP發(fā)端適應(yīng)網(wǎng)絡(luò)傳輸狀況向網(wǎng)絡(luò)注入的數(shù)據(jù)量。以下對受網(wǎng)絡(luò)傳輸狀況影響的擁塞窗口控制算法進(jìn)行分析,對不同網(wǎng)絡(luò)狀況下網(wǎng)絡(luò)丟包、擁塞和緩存對TCP傳輸性能的影響和消除方法。
1.2 TCP擁塞控制算法演進(jìn)
TCP協(xié)議而從其誕生后的半個世紀(jì)里其協(xié)議算法也一直在不斷演進(jìn),TCP核心的擁塞控制算法從經(jīng)典的Reno算法向BIC、CUBIC在不斷演進(jìn),這些算法的核心思想是:
l 響應(yīng)網(wǎng)絡(luò)擁塞情況、保證公平發(fā)包:
一旦檢測到網(wǎng)絡(luò)丟包事件,則主動縮小阻塞窗口大小,從而減少向網(wǎng)絡(luò)注入的數(shù)據(jù)包速率,保證整個網(wǎng)絡(luò)傳輸?shù)牧己霉r。
l 適應(yīng)網(wǎng)絡(luò)狀況變化保證最高性能:
檢測到網(wǎng)絡(luò)包能夠順利被對端接收,則不斷提升阻塞窗口的大小,從而向網(wǎng)絡(luò)注入更多的數(shù)據(jù)包,目的是完全使用到鏈路的最大傳輸能力。
這些基于被動反饋機(jī)制進(jìn)行調(diào)控算法會受到其他很多環(huán)境干擾因素影響:長肥管道、傳輸出錯丟包等影響,且調(diào)節(jié)算法參數(shù)非基于實(shí)際工況測量的靜態(tài)設(shè)置,導(dǎo)致在很多情況下對實(shí)際傳輸帶寬的利用率不高。
2016年Google公司推出全新的擁塞控制算法BBR(Bottleneck Bandwidth & Rating)。BBR一改傳統(tǒng)的TCP擁塞控制算法基于丟包反饋、被動式、開放式的擁塞控制機(jī)制,采用一種基于帶寬和延遲反饋的擁塞控制算法。BBR是典型的封閉反饋系統(tǒng),發(fā)送多少報文和用多快的速度發(fā)送這些報文都是基于每次測量反饋中不斷進(jìn)行調(diào)節(jié),從而能夠更好適應(yīng)網(wǎng)絡(luò)狀況的動態(tài)變化,減少因?yàn)閾砣惴▽?dǎo)致丟包的網(wǎng)絡(luò)丟包,提升TCP傳輸?shù)木W(wǎng)絡(luò)帶寬使用效率。BBR算法已被集成到Linux 4.9/Windows10以上版本,成為單端TCP加速的主流演進(jìn)方向。
2 多鏈路TCP加速方案
2.1 TCP在多鏈路上傳輸?shù)奶魬?zhàn)
TCP傳輸采用端對端的流控機(jī)制,必須保證數(shù)據(jù)流中的每個包的有序接收,一旦某個包出現(xiàn)丟失或者失序到達(dá),都會通過流控機(jī)制算法進(jìn)行調(diào)整。在單個鏈路上TCP傳輸?shù)膩G包、失序可以通過擁塞控制算法進(jìn)行較好調(diào)節(jié),但如果將TCP數(shù)據(jù)流分發(fā)到多個不同物理鏈路上傳輸則會帶來更多挑戰(zhàn)因素:
* 鏈路時延差別大:順序發(fā)出的兩個包會在接收端造成嚴(yán)重的失序情況出現(xiàn),從而出現(xiàn)很大的緩存和等待時間;
* 鏈路丟包率、網(wǎng)絡(luò)緩存差別大:網(wǎng)絡(luò)質(zhì)量指標(biāo)差的鏈路傳輸會聯(lián)動影響質(zhì)量指標(biāo)好的鏈路傳輸效率,從而出現(xiàn)短板效應(yīng);
* 缺少單獨(dú)鏈路檢測:如果傳輸過程中某個鏈路出現(xiàn)中斷,而TCP端對端的丟包機(jī)制并不能檢測到單個物理鏈路的連接狀況,則可能造成持續(xù)性負(fù)反饋導(dǎo)致?lián)砣麢C(jī)制失效。
在以上幾個挑戰(zhàn)因素綜合作用下,如果采用簡單在多鏈路上分發(fā)IP包來進(jìn)行TCP傳輸,很大可能不但不會提升TCP傳輸性能,而是多個鏈路相互影響,最終可能出現(xiàn)比采用某個鏈路單獨(dú)傳輸?shù)膶?shí)際有效帶寬更低的情況。
2.2 多鏈路融合TCP加速解決方案
深圳市比速智網(wǎng)技術(shù)有限公司針對多鏈路疊加傳輸TCP業(yè)務(wù)的實(shí)際業(yè)務(wù)需求,自主研發(fā)智能網(wǎng)絡(luò)IP設(shè)備上的多鏈路融合TCP加速功能,實(shí)現(xiàn)了以下技術(shù)突破:
* 單獨(dú)鏈路獨(dú)立流控:每個鏈路實(shí)現(xiàn)基于網(wǎng)絡(luò)實(shí)時工況的單獨(dú)流控機(jī)制,保證單鏈路的有效傳輸帶寬接接近極限;
* 多鏈路協(xié)同分發(fā):根據(jù)業(yè)務(wù)流量和單個鏈路的實(shí)時傳輸狀況動態(tài)調(diào)整IP包在多鏈路上的分發(fā)策略,使得鏈路之間實(shí)現(xiàn)實(shí)時的傳輸互補(bǔ)和替代;
* 自適應(yīng)的重發(fā)機(jī)制:對TCP傳統(tǒng)的超時重發(fā)和快速重發(fā)機(jī)制進(jìn)行改進(jìn),使得在多鏈路情況下具有更好的可靠性和響應(yīng)時間。
* TCP頭壓縮:獨(dú)創(chuàng)的TCP頭壓縮技術(shù),對于小包業(yè)務(wù)和低帶寬鏈路上具有更高的傳輸性能。
2.3方案的優(yōu)勢
* 真正的線性帶寬疊加:
實(shí)現(xiàn)不同物理鏈路帶寬的線性疊加,即使是物理技術(shù)指標(biāo)相差很大的鏈路諸如衛(wèi)星鏈路和4G疊加,疊加后的帶寬也可以接近∑(BW1,BW2,…BWn)的效果。
* 透明升級的TCP加速:
現(xiàn)有各種單邊TCP加速產(chǎn)品和TCP BBR算法的應(yīng)用,均需要對操作系統(tǒng)和設(shè)備進(jìn)行配置和升級,技術(shù)難度和成本難以估計。而采用超融合智能IP網(wǎng)絡(luò)產(chǎn)品,無需任何軟硬件升級改造就可以使現(xiàn)網(wǎng)所有設(shè)備和業(yè)務(wù)透明的提升到最高TCP傳輸效率。
* 不同網(wǎng)絡(luò)工況的自適應(yīng)性:
無論是在設(shè)備高速移動導(dǎo)致切換還是在網(wǎng)絡(luò)質(zhì)量不穩(wěn)定持續(xù)抖動、網(wǎng)絡(luò)連接時通時斷的工作狀況,多鏈路融合TCP加速功能都可以使基于TCP的數(shù)據(jù)傳輸能達(dá)到最優(yōu)效率,從而為業(yè)務(wù)提供最佳連續(xù)性保證。