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 接続のアイドル状態を維持する秒数を取得または設定します。
注: |
TCP_KEEPINTVL | はい | はい | DWORD | TCP 接続がキープアライブ応答を待機してから別のキープアライブ プローブを送信する秒数を取得または設定します。
注: |
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 |
---|---|
ヘッダー |
|