改善您企業糟糕的TCP性能的五大方法
傳輸控制協議(TCP)承載了公共網絡和專用內部網絡的絕大多數的數據傳輸。Web所使用的HTTP、文件傳輸、文件共享和系統備份通常都是使用TCP。Windows桌面配置在啟動加載時就是基于TCP。
然而,如果您企業的系統是備份到遠程站點,而且是到一個相當遠的距離,那么您企業可能僅僅只使用了您所購買的帶寬的非常一小部分。當您企業的安全攝像機采用遠程或是使用無線連接的網絡傳輸視頻錄像時,視頻錄像的數據會傳輸得非常減緩或發生傳輸中斷。
TCP性能差主要有兩大原因:顯著的網絡延遲和網絡損耗。的確,TCP已被重新設計以重新傳輸丟失的數據段,但其很可能會被推遲。在很長的電路的情況下,更高的延遲所導致的結果使TCP必須限制其傳輸速率,以便使其不會超出接收器的緩沖區。
而由于大多數網絡分析工具能夠告訴企業其TCP存在性能問題,但卻無法解釋這些問題為什么會發生,進而使得上述問題進一步加劇。鑒于此,業界是否有相關糾正措施方面的建議呢。
在我們對該問題進行深入挖掘之前,或許我們可以來分析一下哪些方法可以幫助企業提高TCP性能。我們必須牢記,TCP有一套特定的算法,控制其行為。我們無法改變該算法,但我們可以適應該算法,以便更有效地利用該算法。
1、增加緩沖區
我們需要盡量減少因網絡錯誤所導致的丟包的可能性。請務必記住,無線通信是容易出現錯誤的,這些錯誤通常是網絡運營商看不見的。故而您需要與您企業的網絡設備供應商溝通,以確保路由器和交換機的緩沖區大于傳統的64K字節,這在早期的無線設備中是常見的。現代的TCP部署傳輸遠遠超過了64K字節的緩沖區可以容納的數據組段。
2、縮短網絡通信線路
我們必須保持讓網絡通信線路盡可能的短,這無疑是非常良好的商業慣例。從紐約到費城的備份絕對遠遠快于從紐約到丹佛或紐約到倫敦的備份,即使可用的帶寬和終端系統是相同的。在這種情況下,內容分發網絡(CDN)供應商就能夠提供非常顯著的優勢。他們能夠讓內容更貼近用戶,減少網絡延遲,提高傳輸性能。
3、考慮HTTP 流水線技術
如果一項任務,如文件傳送,可以同時分離成兩個或更多的TCP 連接數(TCP sessions)和轉移,可用帶寬的使用將更加有效。這便是HTTP流水線技術(HTTP pipelining)背后的理念。Netflix網絡電視的許多客戶就是采用這種方法來迅速實現電視播放緩沖。
4、更新您企業的堆棧
我們應該盡可能的使用***的TCP堆棧。***部署的TCP要比舊版本要好得多。例如,使用Windows XP系統使用的是通常被稱為New Reno的TCP版本。而Windows 7/ 8則使用的是較新的版本的稱為復合TCP。這個版本對于字段損失和其他一些變化有更好的反應,有助于提高其性能。如果您是一個Linux用戶,確保您所使用的版本至少是2.3.13。其TCP的部署版本被稱為Cubic。據研究人員稱,其性能類似于復合TCP。
5、使用數據包分析器
請務必確保您企業內部至少有一個人知道如何使用數據包分析器。他們將能夠看到,客戶端和服務器協商使用TCP中的一些較新的選項。其中一些是選擇性確認(SACK),窗口縮放和快速傳輸。盡管分析儀不會告訴您為什么這些是重要的,但其會證明他們是被使用的。這將可能指向在兩端的系統較新的TCP協議棧。
通過上述五大要點的介紹,我們并不想給讀者留下我們不能直接改變TCP算法的印象。我們可以在有限的范圍內進行改變。例如,在微軟網站上的一些研究表明,我們可以改變TCP協議棧的一些參數。
然而,我們認為這樣所導致的問題會和其所能夠解決的問題一樣多,特別是如果我們沒有時間在即那個其投入正式生產之前仔細試驗其變化的情況下。我們所建議的以上步驟是安全的,可以為企業帶來顯著的好處。
HTTP如何發揮作用
由于瀏覽器的大量使用,HTTP協議也發生了一些變化,影響其吞吐量。兩大最為顯著的特點便是持久連接和流水線技術。幾乎所有的HTTP傳輸均是通過TCP。建立一個連接到一個單一的HTTP獲得請求所需要的時間往往是整個TCP連接時間的一個重要部分,已然相當明顯。
當考慮到一個典型的網頁檢索通常會涉及到包括50-100個人“獲得”請求的這一現實情況,而且如果每個請求均發生在一個單獨的TCP會話,無疑會是浪費相當長的時間,而這原來是在HTTP 1.0規范中完成的。
該問題的解決方案就是保持持續的連接,在HTTP 1.1中實現。如果我們通過解決多個“獲得”請求的能力加倍這種行為,而在流水線技術無需等待對每個請求必須得到滿足,我們可以顯著改善HTTP的性能。而我們從HTTP中學到的教訓同樣適用于TCP。更新瀏覽器。***的版本的運行是***的。
當前,大量的研究都集中在這些新的TCP版本中,哪一款版本的性能更好。總結所有這些研究是一項艱巨的任務,但我們可以大致的進行一些概括。在這些研究中,經常性被考慮的包括兩件事情:該版本的TCP到底有多有效;其處理預期競爭的其他流量的公平性如何?大多數研究對于Cubic 版本的TCP在這兩方面的評價均高于其他兩個版本的TCP(New Reno或復合TCP)。通常復合TCP的性能要優于New Reno TCP。但是,鑒于我們越來越多的從我們的移動設備上使用網絡,如果我們看到TCP進一步演變,以滿足無線運營商的需求時,請不要感到驚訝。