譚 焜
大約在2003年左右,IT業(yè)正逐漸從網(wǎng)絡(luò)泡沫崩裂中恢復(fù)過(guò)來(lái)。為了連接各地的大型數(shù)據(jù)中心,新建了許多新型高速主干網(wǎng)絡(luò)。這些網(wǎng)絡(luò)連接的速度高達(dá)幾千兆比特/秒,而TCP的性能表現(xiàn)在這樣的高速網(wǎng)絡(luò)上卻不盡如人意。
當(dāng)時(shí)流行的高速TCP設(shè)計(jì)主要有兩個(gè)流派:基于網(wǎng)絡(luò)丟包的設(shè)計(jì)和基于網(wǎng)絡(luò)延時(shí)的設(shè)計(jì)。前者會(huì)搶得大量的網(wǎng)絡(luò)資源,而使得普通TCP的性能極度下降;而后者卻恰恰相反,在和大量TCP競(jìng)爭(zhēng)的情況下,卻往往使得自己的性能極大地降低。這兩個(gè)流派相互爭(zhēng)執(zhí),各不相讓。但我認(rèn)為這兩種設(shè)計(jì)思想是可以互補(bǔ)的,例如利用前者可以保持和普通TCP競(jìng)爭(zhēng)網(wǎng)絡(luò)資源的力度,而后者正好用來(lái)彌補(bǔ)普通TCP利用高速網(wǎng)絡(luò)資源不足的缺陷。
考慮了幾天之后,我簡(jiǎn)單地寫了一個(gè)備忘錄闡述了我的想法:“新算法應(yīng)該包含兩種控制方式:一種標(biāo)準(zhǔn)的基于網(wǎng)絡(luò)丟包的控制;另一種更激進(jìn)的,但是基于網(wǎng)絡(luò)延時(shí)的控制。”我命名這個(gè)新的協(xié)議為復(fù)合TCP(Compound TCP,CTCP)。
CTCP可以說(shuō)是Windows十年以來(lái)對(duì)TCP協(xié)議最大的一次改動(dòng)。
2007年1月發(fā)布的Windows Vista首次包含了CTCP功能。2月初,在微軟召開(kāi)的高速TCP峰會(huì)上,網(wǎng)絡(luò)學(xué)術(shù)界和工業(yè)界的諸位知名專家一起討論高速TCP的現(xiàn)狀,并對(duì)微軟的CTCP給出反饋意見(jiàn)。隨后,核心網(wǎng)絡(luò)部決定將CTCP作為一項(xiàng)因特網(wǎng)標(biāo)準(zhǔn),提交給IRTF和IETF討論,并由資深軟件架構(gòu)師大衛(wèi)?賽勒博士掛帥。2008年,經(jīng)過(guò)漫長(zhǎng)的討論,IRTF終于完成了CTCP的評(píng)審,同意CTCP可以安全地在因特網(wǎng)上部署和運(yùn)行。在此期間,微軟發(fā)布的每一款Windows產(chǎn)品中都包含了CTCP,包括最新發(fā)布的Windows7。
記得Vista剛發(fā)布不久,一個(gè)朋友打電話問(wèn)我使用Vista中的CTCP會(huì)有什么不同。當(dāng)我聽(tīng)說(shuō)他家里使用的還是1Mbps的ADSL連接時(shí),我笑了?!昂苓z憾,”我說(shuō),“你不會(huì)感覺(jué)到什么不同。但也許幾年后,當(dāng)家里直接接入光纖,你就會(huì)感到很不一樣了。”但我知道,在越來(lái)越多的數(shù)據(jù)中心之間的高速鏈路上,將會(huì)有更多的CTCP流在奔馳,高效地傳輸著數(shù)據(jù)。而廣大終端用戶,也最終會(huì)因此得到更好的網(wǎng)絡(luò)體驗(yàn)。