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