複合TCP
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
此條目需要更新。 (2016年12月15日) |
複合TCP(英語:Compound TCP,簡稱CTCP)是微軟自Windows Vista及Window Server 2008開始在TCP棧中引入的一個算法。它旨在積極調整發送方的擁塞窗口,以在不損害公平原則的基礎上(HSTCP同樣遵循)優化TCP對高帶寬時延積連接的表現。該方案還可在Linux、Windows XP以及Windows Server 2003上使用。[1]
操作原理
類似FAST TCP和TCP Vegas,複合TCP採用估算排隊延遲來度量擁塞;如果排隊延遲小,則假設鏈路上沒有擁塞,並迅速增加其速率。但不同於FAST和Vegas,它不追求維護恆定數量的數據包隊列。
複合TCP維護兩個擁塞窗口:一個常規的AIMD窗口,以及一個基於延遲的窗口。最終實際使用的滑動窗口大小是這兩個窗口的和。AIMD窗口與TCP Reno的增加方式相同。如果延遲小,基於延遲的窗口將迅速增加以提高網絡的利用率。一旦經歷了排隊,延遲窗口將逐漸減小以補償增加的AIMD窗口。這樣的目的是保持兩者的總和大致恆定,使算法估計帶寬時延積的路徑。具體來說,當檢測到排隊時,基於時延的窗口因估計的隊列大小而減少,以避免FAST和Vegas報告的「持續擁塞」。因此,不同於TCP-Illinois及其前身TCP Africa,複合TCP可以減少其窗口以避免響應延遲。這增加了它對於Reno的公平性。[來源請求]
支持平台
Windows 2003和XP x64
有一個熱修復補丁可以為64位Windows XP和Windows Server 2003添加CTCP支持。[2]
將下列註冊表鍵設為1則為啟用,設為0則為禁用:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
Windows Vista/2008/7
CTCP在Beta版的Windows Server 2008中被默認啟用,在Windows Vista和7上被默認禁用。
可以使用下列命令啟用CTCP:
netsh interface tcp set global congestionprovider=ctcp
下列命令禁用CTCP:
netsh interface tcp set global congestionprovider=none
顯示當前的CTCP設置:
netsh interface tcp show global
「附加擁塞控制提供程序」(Add-On Congestion Control Provider)參數為「none」表示CTCP已禁用,為「ctcp」表示它已啟用。
Windows 8 / 8.1
Windows 8/8.1需使用PowerShell命令(見 https://web.archive.org/web/20131029184023/http://technet.microsoft.com/en-us/library/hh826132.aspx)修改擁塞控制算法。
Linux
除了Windows支持,CTCP還被Angelo P. Castellani移植到了Linux。Caltech開發的一個補丁包含了CTCP's TUning By Emulation (TUBE)。此補丁由於軟件專利而僅供研究人員使用。該模塊已不兼容內核2.6.17及以上版本,將由於內核API變更而編譯失敗。[3]
參見
參考資料
- ^ A hotfix that adds Compound TCP (CTCP) support to computers that are running Windows Server 2003 or Windows XP is available. [2016-12-15]. (原始內容存檔於2008-05-06).
- ^ A hotfix that adds Compound TCP (CTCP) support to computers that are running Windows Server 2003 or Windows XP is available. [2016-12-15]. (原始內容存檔於2008-05-06).
- ^ 存档副本. [2011-01-04]. (原始內容存檔於2008-08-02).
外部連結
- Compound TCP Internet-Draft
- "A Compound TCP Approach for High-speed and Long Distance Networks" (頁面存檔備份,存於網際網路檔案館) July 2005
- Performance Enhancements in the Next Generation TCP/IP Stack, The Cable Guy
- The Compound TCP for High-speed and Long Distance Networks (頁面存檔備份,存於網際網路檔案館), Microsoft Research publication
- Vista's TCP/IP Promises and Perils, Article at Network Performance Daily
- Caltech's Compound TCP patch for Linux
- Enabling CTCP on 2003/XP x64: [1] (頁面存檔備份,存於網際網路檔案館),[2] (頁面存檔備份,存於網際網路檔案館)
- Report on experimental evaluation of Compound TCP (頁面存檔備份,存於網際網路檔案館) Hamilton Institute (頁面存檔備份,存於網際網路檔案館) and Caltech (頁面存檔備份,存於網際網路檔案館), March 2008.
- A simulation-based study of Compound TCP [失效連結] July 14, 2008
- CTCP進駐Windows的故事 (頁面存檔備份,存於網際網路檔案館),微軟亞洲研究院的博客,2009年10月27日 (簡體中文)