IPPROTO_TCP ソケット オプション

次の表では、TCP (IPPROTO_TCP) として指定されたソケット関数へのプロトコル パラメーターを使用して、IPv4 および IPv6 アドレス ファミリ (AF_INET および AF_INET6) 用に作成されたソケットに適用されるソケット オプションIPPROTO_TCP説明します。 ソケット オプションの取得と設定の詳細については、getsockopt 関数および setsockopt 関数のリファレンス ページを参照してください。

プロトコルを列挙し、インストールされている各プロトコルでサポートされているプロパティを検出するには、WSAEnumProtocols 関数、 WSCEnumProtocols 関数、または WSCEnumProtocols32 関数を使用します。

Options

オプション Yammer の入手 設定 Optval 型 説明
TCP_BSDURGENT はい はい DWORD (ブール値) TRUE の場合、サービス プロバイダーは、迅速なデータを処理するために、バークレイ ソフトウェア配布 (BSD) スタイル (既定) を実装します。 このオプションは、TCP_EXPEDITED_1122 オプションの逆です。 このオプションは、接続で 1 回だけ設定できます。 このオプションをオンにすると、このオプションをオフにすることはできません。 このオプションは、サービス プロバイダーによって実装される必要はありません。 このオプションは既定で有効になっています (TRUE設定)。
TCP_EXPEDITED_1122 はい はい DWORD (ブール値) TRUE の場合、サービス プロバイダーは RFC-1222 で指定されている優先データを実装します。 それ以外の場合は、バークレイ ソフトウェアディストリビューション (BSD) スタイル (既定) が使用されます。 このオプションは、接続で 1 回だけ設定できます。 このオプションをオンにすると、このオプションをオフにすることはできません。 このオプションは、サービス プロバイダーによって実装される必要はありません。
TCP_FAIL_CONNECT_ON_ICMP_ERROR はい はい DWORD (ブール値) TRUE の場合、値 WSAEHOSTUNREACH を持つ ICMP エラーを受信すると、接続 API 呼び出しが返されます。 エラーのソース アドレスは、TCP_ICMP_ERROR_INFO ソケット オプションを使用して使用できるようになります。 FALSE の場合、ソケットは正常に動作します。 既定値は無効です (FALSE設定)。 タイプ セーフの場合は、ソケット オプションを 直接使用する代わりに、WSAGetFailConnectOnIcmpError 関数と WSASetFailConnectOnIcmpError 関数を使用する必要があります。
TCP_ICMP_ERROR_INFO はい いいえ ICMP_ERROR_INFO 失敗した接続呼び出し中に TCP ソケットによって受信された ICMP エラーの情報を取得します。 TCP_FAIL_CONNECT_ON_ICMP_ERRORが既に有効になっており、 接続 によって WSAEHOSTUNREACH が返された TCP ソケットでのみ有効です。 クエリは非ブロッキングです。 クエリが正常に実行され、返された 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 Fast Open を有効または無効にします 。これにより、接続を開く 3 方向ハンドシェイク フェーズ中にデータの送信を開始できます。 高速オープンを利用するには、ConnectEx を使用して初期接続を行い、ハンドシェイク プロセス中に転送されるその関数の lpSendBuffer パラメーター内のデータを指定する必要があることに注意してください。 lpSendBufferデータの一部は、高速オープン プロトコルで転送されます。
TCP_KEEPIDLE はい はい DWORD キープアライブ プローブがリモートに送信されるまでの TCP 接続のアイドル状態を維持する秒数を取得または設定します。

:
このオプションは、Windows 10 バージョン 1709 以降で使用できます。


TCP_KEEPINTVL はい はい DWORD TCP 接続がキープアライブ応答を待機してから別のキープアライブ プローブを送信する秒数を取得または設定します。

:
このオプションは、Windows 10 バージョン 1709 以降で使用できます。


IPPROTO_TCP オプションの Windows サポート

オプション Windows 10 Windows 7 Windows Server 2008 Windows Vista
TCP_BSDURGENT はい はい はい はい
TCP_EXPEDITED_1122 はい はい はい はい
TCP_KEEPCNT Windows 10 バージョン 1703 以降
TCP_MAXRT はい はい はい はい
TCP_NODELAY はい はい はい はい
TCP_TIMESTAMPS はい はい はい はい
TCP_FASTOPEN Windows 10 バージョン 1607 以降

  オプション Windows Server 2003 Windows XP Windows 2000 Windows NT4 Windows 9x/Me
TCP_BSDURGENT はい はい はい はい
TCP_EXPEDITED_1122 はい はい はい
TCP_KEEPCNT
TCP_MAXRT
TCP_NODELAY はい はい はい はい
TCP_TIMESTAMPS
TCP_FASTOPEN

解説

Windows Vista 以降用にリリースされた Microsoft Windows ソフトウェア開発キット (SDK) では、ヘッダー ファイルの編成が変更され、IPPROTO_TCP レベルは、Winsock2.h ヘッダー ファイルに自動的に含まれる Ws2def.h ヘッダー ファイルで定義されています。 IPPROTO_TCP ソケット オプションは、TCP_BSDURGENTを除き、Ws2tcpip.h ヘッダー ファイルに自動的に含まれる Ws2ipdef.h ヘッダー ファイルで定義されます。 歴史的な理由からTCP_BSDURGENTオプションは、Mswsock.h ヘッダー ファイルで定義されています。 Ws2def.h および Ws2ipdef.h ヘッダー ファイルは、直接使用しないでください。

要件

要件 Value
ヘッダー
Ws2def.h (Winsock2.h をインクルード)、
Windows Server 2003、Windows XP、Windows 2000 の Winsock2.h