讓人欲罷不能的TCP
大帶寬=體驗佳?筆者和大部分網絡發燒友一樣,一度把大帶寬和體驗佳之間是劃等號的。而就在近日,經過一番研究后,發現一個讓人驚訝不已的事實:其實對于大部分網站瀏覽的應用來說,超過幾兆的網絡連接對于性能體驗只有很小的提升,而這點在無線網絡環境下尤為明顯。
究其背后原因,“罪魁禍首”竟然就是網絡協議中大拿級協議---TCP,這個發現讓人匪夷所思。何謂TCP,互聯網為生的ICT人士多少還是有點了解的,類似日常生活中控制交通信號燈,控制著網絡世界中報文的通行。TCP協議作為互聯網上最重要的協議之一,Internet上90%的應用都是基于TCP協議來承載的,比如我們訪問一個網頁,下載一個應用,在線觀看一個視頻等等。那么,這么重要的協議怎么就成為“罪魁禍首”了呢?
注:流媒體、網頁瀏覽、Email、Filehosting和SNS業務基本都是基于TCP協議的,P2P和IM可以是基于TCP或UDP協議的。
原來,TCP協議最早是基于固定網絡設計的,它的設計前提是假設網絡上由于非擁塞(如傳輸誤碼)導致的丟包可能性遠遠小于1%,而這個要求就有點難為無線網絡了,無線網絡環境的小帶寬、大時延、可移動性等特點,使得無線網絡極易丟包,導致TCP協議在無線網絡環境上的工作效率遠不如固定網絡。
那么,如何破?
首先要解決的就是“TCP慢啟動”。在說到TCP慢啟動之前,我們先來說一下“TCP三次握手”,TCP個性儒雅,在開始傳輸之前都要和對方先打聲招呼,直到彼此都確認準備好了,方可以傳輸數據。但是一開始具體傳多少是合適的呢?這就又引入了一個概念“擁塞窗口”,用來表示發送方在得到接收方確認前,***允許傳輸的未經確認的數據,其初始值往往比較小,然后隨著數據包被接收方確認,窗口成倍擴大,窗口在不斷地滑動調整。這就有點類似于拳擊比賽,開始時不了解敵情,往往是次拳試探,慢慢心里有底了,便開始逐漸加大重拳進攻的力度。一旦協商到通信雙方都能接收的***窗口后,便開始全速傳輸。
這一切看似合情合理,但無線網絡的空口干擾、移動性帶來的問題,讓這個過程就不那么美好了:滑動窗口并不會一直保持著規律增長。當我們在無線環境下瀏覽視頻或者下載軟件,這個過程的影響并不明顯,因為傳輸的數據量大,時間比較長,相比之下,這段時間的影響基本可以忽略不計。但對于大部分網站瀏覽應用來說,情況就不一樣了,因為傳輸的數據量比較小,時間比較短,相比之下,如果慢啟動階段耗時長,那么很可能還沒來得及加速到滿窗口,通訊就結束了。這就好比博爾特參加百米比賽,如果起跑慢的話,即便他的加速很快,也可能拿不到好成績,因為還沒等他完全跑起來,終點線已經到了。我們的帶寬就這樣被“消費”了。
那么具體如何解決?在全無線時代的今天,如何讓我們的體驗更好,讓我們的帶寬真正用在刀刃上?2015華為網絡大會,歡迎前往移動改變生活展區,體驗基于全可編程的ENP芯片研發的Wi-Fi加速算法帶來的驚喜改變!