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