IPPROTO_TCP ソケット オプション

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

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

オプション

オプション 取得 オン Optval 型 説明
TCP_BSDURGENT はい はい DWORD (ブール値) TRUE の場合、サービス プロバイダーは、優先データを処理するために、バークレイ ソフトウェア配布 (BSD) スタイル (既定) を実装します。 このオプションは、TCP_EXPEDITED_1122 オプションの逆関数です。 このオプションは、接続で 1 回だけ設定できます。 このオプションをオンにすると、このオプションをオフにすることはできません。 このオプションは、サービス プロバイダーによって実装される必要はありません。 オプションは既定で有効 ( TRUE に設定) されています。
TCP_EXPEDITED_1122 はい はい DWORD (ブール値) TRUE の場合、サービス プロバイダーは RFC-1222 で指定された優先データを実装します。 それ以外の場合は、Berkeley Software Distribution (BSD) スタイル (既定) が使用されます。 このオプションは、接続で 1 回だけ設定できます。 このオプションをオンにすると、このオプションをオフにすることはできません。 このオプションは、サービス プロバイダーによって実装される必要はありません。
TCP_FAIL_CONNECT_ON_ICMP_ERROR はい はい DWORD (ブール値) TRUE の場合、接続 API 呼び出しは、値 WSAEHOSTUNREACH を持つ ICMP エラーの受信時に返されます。 その後、エラーのソース アドレスは、TCP_ICMP_ERROR_INFO ソケット オプションを使用して使用できます。 FALSE の場合、ソケットは正常に動作します。 既定値は無効です ( FALSE に設定)。 型の安全性を確保するために、ソケット オプションを直接使用する代わりに、 WSAGetFailConnectOnIcmpError 関数と WSASetFailConnectOnIcmpError 関数を使用する必要があります。
TCP_ICMP_ERROR_INFO はい no 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 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

解説

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

必要条件

要件
ヘッダー
Ws2def.h (Winsock2.h を含む);
Windows Server 2003、Windows XP、Windows 2000 の Winsock2.h