未使用的連接埠的資訊: Winsock TCP 連線效能

文章翻譯 文章翻譯
文章編號: 175523 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

結論

本文將告訴您如何在不同的 TCP Winsock 實作Microsoft 平台控點通訊端不需要的連接埠的連線接聽給他們的伺服器。本文也將說明效能相關考量,以及如何調整以符合您的需求。

其他相關資訊

處理程序時在 Microsoft Winsock 層中建立的 TCP 通訊端和發出 connect() 呼叫至某些主應用程式和連接埠號碼,TCP 通訊協定執行其標準 「 三方握手"SYN 封包,認可目標主機 ACK/SYN 與最後 ACK 從初始化用戶端。不過,每在 RFC 793 (傳輸中所指定的 TCP 規格控制通訊協定),如果 SYN 入,可能會產生重設 (RST)傳送給主應用程式已存在,但未使用連接埠。這是最佳由下列 RFC 引號從頁 35 描述:
重設產生

一般而言,重設 (RST) 必須傳送每當有線段到達時這顯然並不適用於目前的連線。重設必須傳送如果不清楚這是這種情況...

如果連線不存在 (已關閉),然後傳送重設在任何內送的區段,除了另一個重設回。尤其是用這種方法,來傳送至不存在的連線會遭到拒絕。

重設處理 [頁面 36]

...在 SYN 傳送狀態 (RST 收到回應初始 SYN),RST 是可接受如果 ACK 欄位確認 SYN.
在目標主機用戶端收到 ACK (RST) 用戶端判斷有接聽的確沒有服務。在中暫止連接會保留範圍的 TCP Microsoft Winsock 實作,嘗試發行 SYN 封包,直到達到最大重試值 (設定在登錄中,這個值預設為 3 的額外時間)。因為 ACK (RST)接收到目標主機 TCP 層知道的目標主機確實可執行到,將不二下來的封包中的逾時值IP 標頭,因為期間與未認可的連線嘗試是標準來。相反地,暫止連接將會等候基底連接逾時的值,然後重新發出另一個的 SYN 封包來起始連線。為當收到來自未使用的連接埠 ACK/RST 封包時,長時間逾時值會增加,而且程序將會重複直到最大重試達到值。

這種行為可能會因某些原因而處理序如果時導致效能不佳重複發出執行任何動作,接聽連接埠 connect() 呼叫因而導致錯誤 WSAECONNREFUSED。請注意,與其他例如,在許多的 UNIX 系統中,常見的 TCP,實作connect() 會立即失敗時的第一個 ACK/RST 回條封包,非常迅速地產生的錯誤。不過,這行為 Rfc 中未指定,且會維持在每一個實作決定。Microsoft 平台的方法是,系統系統管理員可以自由地調整 TCP 效能相關設定,以重自己品味,也就是最大值試該預設值是 3。的利用這一點是您想要到達該服務可能會有暫時關閉,並在 SYN 嘗試之間可能會 resurface。在這個很方便 connect() 等候時間,足夠取得的情況下,因為服務到底是有連線。

它包含 NT TCP 登錄值的完整清單。特定的感興趣是機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

機碼: TcpMaxConnectRetransmissions
實值型別: REG_DWORD-數字
有效範圍: 0-0xFFFFFFFF
預設值: 3 (在 Windows NT)
預設值: 2 (在 Windows 2000)
描述: 這個參數會決定將 TCP 的次數中止前重新傳輸連線要求 (SYN)嘗試。重新傳輸逾時會加倍與每個在給定的連線嘗試中連續的重新傳輸(除了上文所述的情況)。在開頭逾時值是 3 秒 (因為 ACK (RST) 了接收到上面的例子中,這是不相關)。
如需有關 Windows 95 TCP 登錄項目的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
158474 Windows 95 TCP/IP 登錄項目
下列機碼就十分重要:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP

機碼: MaxConnectRetries
實值型別: DWORD-32 位元數
預設值: 3
說明: 指定的次數連線要求 (SYN)將會被送後才放棄。在開頭重新傳輸逾時是 3 秒 (無關上述的情況),和每一次 (它就會設定加倍上述的情形是例外狀況) 最多可有 2 分鐘。
調整這些登錄值之後,重新啟動電腦。

警告: 修改這些值會影響任何及所有 TCP 連出連線要求從受影響的電腦。如果所有的電腦上的 TCP 活動有小延遲與移轉往返作業,減少這為小距離低為零 (雖然 Microsoft 不建議您這樣) 會讓沒有差別。不過,如果應用程式或連線嘗試失敗定期標準 Winsock 發生錯誤,才能使用已知的目標遠端伺服器,它可能是這些登錄項目是原因。如果是的話,您可能要提高最大值重試使 TCP 將雙精準數 SYN 封包的存留時間值在後續的重試直到 IP 標頭中有夠長壽命若要達到的目標主機和接收 ACK (SYN.)

?考

RFC-793,傳輸控制通訊協定 1981 年 9 月

白皮書、 Microsoft Windows NT: TCP/IP 實作細節 1996知識庫文件 158474

屬性

文章編號: 175523 - 上次校閱: 2011年4月29日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Win32 Application Programming Interface
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 Service Pack 2?應用於:
    • Windows Server 2008 for Itanium-Based Systems
    • Windows Server 2008 Datacenter
    • Windows Server 2008 Enterprise
    • Windows Server 2008 Standard
    • Windows Web Server 2008
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Windows Web Server 2008
  • Windows Vista Service Pack 2?應用於:
    • Windows Vista 商用入門版
    • Windows Vista 商用進階版
    • Windows Vista 家用入門版
    • Windows Vista 家用進階版
    • Windows Vista Starter
    • Windows Vista 旗艦版
    • Windows Vista 商用進階 64 位元版
    • Windows Vista 家用入門 64 位元版
    • Windows Vista 家用進階 64 位元版
    • Windows Vista 旗艦 64 位元版
    • Windows Vista 商用入門 64 位元版
  • Windows Vista Service Pack 1?應用於:
    • Windows Vista 商用入門版
    • Windows Vista 商用進階版
    • Windows Vista 家用入門版
    • Windows Vista 家用進階版
    • Windows Vista Starter
    • Windows Vista 旗艦版
    • Windows Vista 商用進階 64 位元版
    • Windows Vista 家用入門 64 位元版
    • Windows Vista 家用進階 64 位元版
    • Windows Vista 旗艦 64 位元版
    • Windows Vista 商用入門 64 位元版
  • Microsoft Windows Server 2003 Service Pack 2?應用於:
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Datacenter x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows XP Professional x64 Edition
    • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows XP Service Pack 3?應用於:
    • Microsoft Windows XP Home Edition (家用版)
    • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Service Pack 4
  • Microsoft Windows 98 Standard Edition
關鍵字:?
kbapi kbinfo kbnetwork kbwinsock kbmt KB175523 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:175523
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com