IPPROTO_TCP 通訊端選項
下表描述IPPROTO_TCP通訊端選項,這些選項會套用至針對 IPv4 和 IPv6 位址系列所建立的通訊端 (AF_INET AF_INET6) ,並使用通訊協定參數將 通訊協定 參數套用至指定為 TCP (IPPROTO_TCP) 的 通訊端 函式。 如需取得和設定通訊端選項的詳細資訊,請參閱 getsockopt 和 setsockopt 函式參考頁面。
若要列舉通訊協定並探索每個已安裝通訊協定的支援屬性,請使用 WSAEnumProtocols、 WSCEnumProtocols或 WSCEnumProtocols32 函式。
選項。
選項 | Get | 集合 | Optval 類型 | 描述 |
---|---|---|---|---|
TCP_BSDURGENT | 是 | 是 | DWORD (布林值) | 如果 為 TRUE,服務提供者會實作 (BSD) 樣式 (預設) 來處理加速資料。 此選項是 TCP_EXPEDITED_1122 選項的反轉。 此選項只能在連線上設定一次。 設定此選項之後,就無法關閉此選項。 服務提供者不需要實作這個選項。 預設會啟用選項, (設定為 TRUE) 。 |
TCP_EXPEDITED_1122 | 是 | 是 | DWORD (布林值) | 如果 為 TRUE,服務提供者會實作 RFC-1222 中指定的加速資料。 否則,會使用預設) (BSD (BSD) 樣式。 此選項只能在連線上設定一次。 設定此選項之後,就無法關閉此選項。 服務提供者不需要實作這個選項。 |
TCP_FAIL_CONNECT_ON_ICMP_ERROR | 是 | 是 | DWORD (布林值) | 如果 為 TRUE,連線 API 呼叫會在收到具有 WSAEHOSTUNREACH 值的 ICMP 錯誤時傳回。 然後,錯誤的來源位址將可透過 [TCP_ICMP_ERROR_INFO通訊端] 選項取得。 如果為 FALSE,則通訊端正常運作。 預設值已停用, (設定為 FALSE) 。 針對型別安全,您應該使用 WSAGetFailConnectOnIcmpError 和 WSASetFailConnectOnIcmpError 函式,而不是直接使用通訊端選項。 |
TCP_ICMP_ERROR_INFO | 是 | 否 | ICMP_ERROR_INFO | 擷取失敗連線呼叫期間 TCP 通訊端所收到的 ICMP 錯誤資訊。 只有在先前已啟用TCP_FAIL_CONNECT_ON_ICMP_ERROR的 TCP 通訊端上有效,且 連線 已傳回 WSAEHOSTUNREACH。 查詢未封鎖。 如果成功查詢,且傳回的 optlen 值為 0,則自上次連接呼叫後未收到 ICMP 錯誤。 如果收到 ICMP 錯誤,則會提供其資訊,直到再次呼叫 連線 為止。 資訊會以 ICMP_ERROR_INFO 結構傳回。 針對型別安全,您應該使用 WSAGetIcmpErrorInfo 函式,而不是直接使用通訊端選項。 |
TCP_KEEPCNT | 是 | 是 | DWORD | 取得或設定將在連線終止之前傳送的 TCP 保持運作探查數目。 將TCP_KEEPCNT設定為大於 255 的值不合法。 |
TCP_MAXRT | 是 | 是 | DWORD | 如果此值為非負值,則表示所需的連線逾時,以秒為單位。 如果為 -1,則表示 (停用連線逾時的要求,亦即連線會永久重新傳輸) 。 如果停用連線逾時,重新傳輸逾時會針對每個重新傳輸以指數方式增加,最多為 60 秒的最大值,然後維持在該處。 |
TCP_NODELAY | 是 | 是 | DWORD (布林值) | 啟用或停用 TCP 通訊端的 Nagle 演算法。 預設會停用此選項, (設為 FALSE) 。 |
TCP_TIMESTAMPS | 是 | 是 | DWORD (布林值) | 啟用或停用 RFC 1323 時間戳記。 請注意,在 set/get) -nettcpsetting (中,也會關閉時間戳記 (預設值的通用群組態) 「Timestamps」。 設定此通訊端選項會覆寫該通用群組態設定。 |
TCP_FASTOPEN | 是 | 是 | DWORD (布林值) | 啟用或停用 RFC 7413 TCP 快速開啟,這可讓您在開啟連線的三向交握階段開始傳送資料。 請注意,若要使用快速開啟,您應該使用 ConnectEx 來建立初始連線,並在該函式的 lpSendBuffer 參數中指定要在交握過程中傳輸的資料。 lpSendBuffer中的部分資料將會在 Fast Open 通訊協定下傳輸。 |
TCP_KEEPIDLE | 是 | 是 | DWORD | 取得或設定 TCP 連線在傳送至遠端之前,TCP 連線會保持閒置的秒數。
注意: |
TCP_KEEPINTVL | 是 | 是 | DWORD | 取得或設定 TCP 連線在傳送另一個持續探查之前,等候持續回應的秒數。
注意: |
IPPROTO_TCP選項的 Windows 支援
選項 | Windows 10 | Windows 7 | Windows Server 2008 | Windows Vista |
---|---|---|---|---|
TCP_BSDURGENT | x | x | x | x |
TCP_EXPEDITED_1122 | x | x | x | x |
TCP_KEEPCNT | 從 Windows 10 1703 版開始 | |||
TCP_MAXRT | x | x | x | x |
TCP_NODELAY | x | x | x | x |
TCP_TIMESTAMPS | x | x | x | x |
TCP_FASTOPEN | 從 Windows 10 1607 版開始 |
選項 | Windows Server 2003 | Windows XP | Windows 2000 | Windows NT4 | Windows 9x/Me | |
---|---|---|---|---|---|---|
TCP_BSDURGENT | x | x | x | x | ||
TCP_EXPEDITED_1122 | x | x | x | |||
TCP_KEEPCNT | ||||||
TCP_MAXRT | ||||||
TCP_NODELAY | x | x | x | x | ||
TCP_TIMESTAMPS | ||||||
TCP_FASTOPEN |
備註
在 Microsoft Windows 軟體發展工具組 (SDK) 針對 Windows Vista 和更新版本發行,標頭檔的組織已變更, IPPROTO_TCP 層級定義于 Ws2def.h 標頭檔中,該檔案會自動包含在 Winsock2.h 標頭檔中。 IPPROTO_TCP通訊端選項除了TCP_BSDURGENT之外,也會定義在Ws2ipdef.h標頭檔中自動包含在Ws2tcpip.h標頭檔中。 基於歷史原因 ,TCP_BSDURGENT 選項是在 Mswsock.h 標頭檔中定義。 不應該直接使用 Ws2def.h 和 Ws2ipdef.h 標頭檔。
規格需求
需求 | 值 |
---|---|
標頭 |
|