IPPROTO_TCP ソケット オプション
次の表では、IPv4 アドレス ファミリと IPv6 アドレス ファミリ ( AF_INET および AF_INET6) 用に作成されたソケットに適用されるIPPROTO_TCPソケット オプションと 、TCP (IPPROTO_TCP) として指定された ソケット 関数へのプロトコル パラメーターについて説明します。 ソケット オプションの取得と設定の詳細については、 getsockopt および setsockopt 関数のリファレンス ページを参照してください。
プロトコルを列挙し、インストールされている各プロトコルでサポートされているプロパティを検出するには、 WSAEnumProtocols、 WSCEnumProtocols、または 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 接続のアイドル状態を維持する秒数を取得または設定します。
注: |
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 |
解説
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 ヘッダー ファイルを直接使用しないでください。
必要条件
要件 | 値 |
---|---|
ヘッダー |
|