TCPCONFIG ステートメント

TCPCONFIG ステートメントを使用して、TCP/IP の TCP 層を更新します。

構文

ヒント: このステートメントには、パラメーターを任意の順序で指定できます。

構文図を読む構文図をスキップするTCPCONFIG CONNECTInitinterval 3000CONNECTInitinterval  millisecondsCONNECTTimeout 75CONNECTTimeout secondsDELAYAcksNODELAYAcksAUTODELAYAcksEPHEMERALPORTS 1024 65535EPHEMERALPORTS  low_port high_portFINWait2time 600FINWait2time  finwait2_secondsFRRTHReshold 3FRRTHReshold acksINTerval 120INTerval default_keepalive_intervalKEEPALIVEPROBEInterval 75KEEPALIVEPROBEInterval secondsKEEPALIVEPROBES 10KEEPALIVEPROBES numberMAXImumretransmittime 120MAXImumretransmittime secondsNAGLENONAGLEQUEUEDrtt 0QUEUEDrtt millisecondsUNRESTRICTLowportsRESTRICTLowportsRETRANSMITAttempts 15RETRANSMITAttempts timesNOSELECTIVEACKSELECTIVEACKSENDGarbage FALSESENDGarbage TRUETCPMAXRCVBufrsize 256KTCPMAXRCVBufrsize tcp_max_receive_buffer_sizeTCPMAXSENDBufrsize 256KTCPMAXSENDBufrsize tcp_max_send_buffer_sizeTCPRCVBufrsize 65536TCPRCVBufrsize  tcp_receive_buffer_sizeTCPSENDBfrsize 65536TCPSENDBfrsize tcp_send_buffer_sizeTCPTIMEstampNOTCPTIMEstampTIMEWAITInterval 60TIMEWAITInterval secondsNOTTLSTTLS

パラメーター

CONNECTINITINTERVAL milliseconds
初期の再送信間隔 (ミリ秒) です。範囲は 100 から 3000 までです。デフォルト値は 3000 です。
CONNECTTIMEOUT seconds
初期接続がタイムアウトするまでの秒数。この接続には、SMC-R リンクを 介して確立された TCP 接続が含まれます。範囲は 5 から 190 までです。デフォルト値は 75 です。
DELAYACKS | NODELAYACKS | AUTODELAYACKS
NODELAYACKS
TCP ヘッダー内の PUSH ビットをオンに設定したデータを受信すると、即時に肯定応答が戻されることを指定します。 TCPCONFIG ステートメントに NODELAYACKS を指定すると、TCP 接続で使用されるポート用に TCP/IP スタック PORT または PORTRANGE プロファイル・ステートメント、 または TCP 接続で使用される経路を構成するために使用される、 以下のステートメントの DELAYACKS パラメーターの指定をオーバーライドします。
  • TCP/IP スタック BEGINROUTES プロファイル・ステートメント
  • ポリシー・エージェント RouteTable ステートメント
  • OMPROUTE 構成ステートメント
DELAYACKS
TCP ヘッダーに PUSH ビットがあるパケットを受信した場合に、肯定応答の送信を遅らせます。 これはデフォルトですが、TCP 接続で使用されるポート用の TCP/IP スタック PORT または PORTRANGE プロファイル・ステートメント、 または TCP 接続で使用される経路を構成するために使用される、 以下のステートメントに NODELAYACKS パラメーターを指定することにより、 その動作をオーバーライドすることができます。
  • TCP/IP スタック BEGINROUTES プロファイル・ステートメント
  • ポリシー・エージェント RouteTable ステートメント
  • OMPROUTE 構成ステートメント
AUTODELAYACKS
TCP ヘッダーの PUSH ビットがオンであるパケットを受信した場合に、肯定応答を遅らせるか、直ちに送信するかを自律的に決定します。TCP 接続が使用するポートまたは経路用の以下のいずれかの構成ステートメントに DELAYACKS または NODELAYACKS パラメーターを指定した場合、この動作は指定変更されます。
  • TCP/IP スタック PORT プロファイル・ステートメント
  • TCP/IP スタック PORTRANGE プロファイル・ステートメント
  • TCP/IP スタック BEGINROUTES プロファイル・ステートメント
  • ポリシー・エージェント RouteTable ステートメント
  • OMPROUTE 構成ステートメント
注: ポリシー・ベース・ルーティング (PBR) および集中ポリシー・サービスを使用する場合、集中ポリシー・サービスを使用するすべてのシステムが V2R2 以降のシステムにアップグレードされるまで AUTODELAYACKS 機能を活用しないでください。そうしないと、DELAYACKS または NODELAYACKS がポリシーで指定されている場合でも、PBR 経路上を流れるすべての TCP トラフィックで AUTODELAYACKS 処理が有効になります。
EPHEMERALPORTS low_port high_port
バインド時に割り当てられる一時ポートの範囲を 示します。デフォルトの一時ポート範囲は 1024 から 65535 です。
low_port
ポートの範囲の開始ポート。 low_port は 1024 から 65535 の範囲の値です。
high_port
ポートの範囲の終了ポート。high_port は 1024 から 65535 の範囲の値で、low_port 値以上でなければなりません
ガイドライン:
  • TCP/IP スタックは、一時ポートが EXPLICITBINDPORTRANGE、SYSPLEXPORTS および PASSIVEDATAPORTS の処理により 割り当てられていない場合のみ、EPHEMERALPORTS パラメーターで 定義されるポート範囲から一時ポートを選択します。
  • SYSPLEXPORTS 処理では、EPHEMERALPORTS パラメーターで 定義されるポート範囲内のポートのみ使用します。
  • EPHEMERALPORTS 範囲内のポートの場合、 ポートの予約がポート予約定義または EXPLICITBINDRANGE パラメーターを使用して行われていれば、 そのポートは EPHEMERALPORTS ポート・プールから除外されます。このように除外することで、 プールは効率的に小さくなります。
制約事項: BPXPARMS INADDRANYPORT および INADDRANYCOUNT で定義されるポートは、ジョブ名 OMVS に対して PORT ステートメントまたは PORTRANGE ステートメントにより制限される必要があります。これらのポートは、ユーザーに OMVS のジョブ名がある場合を除いて、スタックにより割り当てられません。
FINWAIT2TIME finwait2_seconds
TCP 接続が FINWAIT2 状態のままである秒数。範囲は 1 から 3600 までです。デフォルト値は 600 秒です。
FRRTHRESHOLD acks
高速再送信および高速復旧機能 (FRR) が関連する、重複する ACK のしきい値。範囲は 1 から 2048 です。デフォルト値は 3 です。このパラメーターは、 FRR に関連する特定の問題が生じた場合、または IBM® サービス担当員から指示がある場合を除いて、 デフォルト値から変更してはなりません。
INTERVAL default_keepalive_interval
アプリケーション用のデフォルト TCP キープアライブ・インターバルです。このアプリケーションでは、SO_KEEPALIVE ソケット・オプションを使用可能にし、TCP_KEEPALIVE ソケット・オプション指定でインターバルをオーバーライドしません。 範囲は、0 から 35791 分です。デフォルトは 120 分です。 値 0 は、キープアライブ機能を使用不可にします。これによって、SO_KEEPALIVE が指定されたソケットは TCP キープアライブを実行しません。 この場合、TCP_KEEPALIVE を使用して固有のインターバルが指定されたソケットは、引き続き キープアライブ・プローブを送信します。

TCP キープアライブ・プローブは、非アクティブの期間の後、TCP 接続を終了します。 デフォルトでは TCP キープアライブは接続に対して使用不可になりますが、SO_KEEPALIVE また は TCP_KEEPALIVE ソケット・オプションを出すことによって使用可能にすることができます。 TCP_KEEPALIVE ソケット・オプションによって、アプリケーションはキープアライブ・プローブ・インターバル を指定できるのに対して、SO_KEEPALIVE ソケット・オプションは default_keepalive_interval を インターバルとして使用します。

インターバルが期限切れになると、TCP は 1 つのキープアライブ・プローブをそのピアに送信します。 プローブ・インターバルの指定に TCP_KEEPALIVE ソケット・オプションを使用しない場合は、 そのピアからの応答が受信されないと、全部で 10 のプローブが 75 秒のインターバルで送信されます。 最後のプローブから 75 秒後に応答を受信しなかった場合は、接続はリセットされます。 TCP_KEEPALIVE を使用してキープアライブ・プローブ・インターバルを指定する場合は、プローブ数とそのプローブ間インターバルは指定されたインターバルにより異なる可能性があります。

TCP_KeepAlive ソケット・オプションについて詳しくは、「z/OS Communications Server: IP Programmer's Guide and Reference」の『TCP_KeepAlive socket option』を参照してください。

KEEPALIVEPROBEINTERVAL seconds
キープアライブ・プローブ間の間隔 (秒単位)。範囲は 1 から 75 までです。デフォルト値は 75 です。

キープアライブ・タイムアウトの初期間隔は、 このパラメーターにより変わることはありません。このパラメーターは、 初期のキープアライブ間隔の期限が切れた後に送信されるプローブ間の時間のみ 制御します。

KEEPALIVEPROBES number
接続が異常終了するまでのキープアライブ・プローブの数。 範囲は 1 から 10 までです。デフォルト値は 10 です。

キープアライブ・タイムアウトの初期間隔は、 このパラメーターにより変わることはありません。このパラメーターは、 初期のキープアライブ間隔の期限が切れた後に送信されるプローブの数のみ 制御します。

MAXIMUMRETRANSMITTIME seconds
最大の再送信間隔 (秒単位)。範囲は 0 から 999.990 です。 デフォルト値は 120 です。
規則: 以下のパラメーターのいずれも 指定されていなければ、この MAXIMUMRETRANSMITTIME パラメーターが 使用され、以下のステートメントの MINIMUMRETRANSMITTIME パラメーターは 使用されません。
  • BEGINROUTES ステートメントの MAXIMUMRETRANSMITTIME
  • ROUTETABLE ステートメントの MAXIMUMRETRANSMITTIME
  • OSPF_INTERFACE ステートメントの Max_Xmit_Time
  • RIP_INTERFACE ステートメントの Max_Xmit_Time

経路のパラメーターが明示的に指定されていない場合は、 TCPCONFIG パラメーター値が使用されます。最大再送信時間の TCPCONFIG パラメーター値が 使用される場合、経路のパラメーターで指定される MINIMUMRETRANSMITTIME 値は使用されません。 これは、最小再送信時間が 0 であることを 表します。

MAXIMUMRETRANSMITTIME が 0 のときは、 最小の再送信間隔を使用しなければならないことを示します。0 が指定されると、 TCP/IP は、約 100 ミリ秒の最大再送信間隔を 使用します。非常に短い最大再送信間隔を指定すると、再送信処理が 増えるためにシステム・オーバーヘッドも増えるおそれが あります。

NAGLE | NONAGLE
NAGLE
Nagle アルゴリズムが使用可能であることを指定します。これはデフォルト値です。
NONAGLE
Nagle アルゴリズムが使用不可であることを指定します。
規則:
  • TCP_NODELAY を使用する setsockopt() が接続に指定されると、 その接続では Nagle アルゴリズムを使用できません。
  • NONAGLE が指定されると、TCP_NODELAY を使用する setsockopt() は 無視されます。
QUEUEDRTT milliseconds
アウトバウンドのシリアライズに対して接続が適格であるとスタックが見なすしきい値。範囲は 0 から 50 ミリ秒です。デフォルト値は 0 ミリ秒です。0 の値は、すべての TCP 接続がアウトバウンドのシリアライズに対して適格であることを示します。ゼロ以外の値が指定されている場合、接続の往復時間 (RTT) が指定された値と等しいかそれを超えた場合に初めて、スタックはアウトバウンドのシリアライズに対して接続が適格であると見なします。このパラメーターは、アウトバウンドのシリアライズで特定の問題が生じた場合、または IBM サービス担当員から指示がある場合を除いて、デフォルト設定から変更してはなりません。
結果: 以下のいずれかの条件に該当する場合、QUEUEDRTT に指定された値に関係なく、スタックは、パフォーマンスを向上させるためにアウトバウンドのシリアライズを接続に対して活動化します。
  • 接続で IPSec が有効化されている。
  • 接続がバルク・データ方式 (FTP データ接続など) で作動していると識別されている。 この接続は、インバウンド・ワークロード・キューで有効化されている OSA-Express® 機構のバルク・モード補助入力キュー (AIQ) にも登録されています。
アウトバウンドのシリアライズについて詳しくは、「z/OS Communications Server: IP 構成ガイド」の『アウトバウンドのシリアライズ』を参照してください。
RESTRICTLOWPORTS | UNRESTRICTLOWPORTS
RESTRICTLOWPORTS
設定した場合、ポート 1 から 1023 が PORT ステートメントおよび PORTRANGE ステートメントによって ユーザー用に予約されます。RESTRICTLOWPORTS パラメーターは以下のメッセージによって確認されます。
EZZ0338I TCP PORTS 1 THRU 1023 ARE RESERVED
制約事項: RESTRICTLOWPORTS が指定されると、アプリケーションは、許可を受けていない限り、1 から 1023 の範囲のポートを取得することはできません。 アプリケーションが番号の小さいポートに対する 許可を得るための方法を以下に示します。
  • 「*」や「OMVS」などのような、適切なジョブ名またはワイルドカード・ジョブ名を指定した PORT または PORTRANGE を使用します。PORT または PORTRANGE 上で SAF キーワードを使用する と、RACF® などの セキュリティー製品によって追加のアクセス制限を行うことができます。
  • APF 許可アプリケーションは、未予約の番号の小さいポートにアクセスできます。
  • OMVS スーパーユーザー (UID(0)) アプリケーションは、未予約の番号の小さいポートにアクセスできます。
1 から 1023 の範囲の使用可能なポートを、明示的に予約しておかなくても取得して使用できる必要のあるアプリケーションは、APF 許可アプリケーションまたはスーパーユーザー・アプリケーションとして実行されなければなりません。システム・セキュリティーを高めるため に、RESTRICTLOWPORTS を使用します。
UNRESTRICTLOWPORTS
指定した場合、ポート 1 から 1023 は予約されません。これはデフォルト値です。UNRESTRICTLOWPORTS パラメーターは以下のメッセージによって確認されます。
EZZ0338I TCP PORTS 1 THRU 1023 ARE NOT RESERVED
RETRANSMITATTEMPTS times
接続が打ち切られる前に指定された times 値の回数まで (ただしこれを含まない)、セグメントが再送されます。 例えば、times を 6 に設定するとセグメントは 5 回再送され、6 回目の再送タイムアウト時に打ち切られます。 範囲は 0 から 15 です。デフォルト値は 15 です。
SELECTIVEACK | NOSELECTIVEACK
SELECTIVEACK
RFC 2018 で定義される選択的確認応答 (SACK) オプションをサポートする、 パートナーとの選択的確認応答を交換できるように します。この RFC については、関連プロトコル仕様を参照してください。

TCP/IP が TCP 接続を開始すると、 選択的確認応答許可オプションが送信されます。受動接続中に、 TCP/IP がクライアントから選択的確認応答許可オプションが 指定された TCP 接続要求を受信し、さらに SACK オプションが使用可能になっていれば、 TCP/IP は、固有の選択的確認応答許可オプションを指定して SYN-ACK を 送信します。ネットワークでパケット・ロスが発生した場合に 不要なパケットが再送信されないように、SACK オプションを使用可能にする必要があります。

NOSELECTIVEACK
接続のセットアップ中および接続全体を通して、選択的確認応答を 交換できないようにします。 これがデフォルト値です。
SENDGARBAGE
TCP が送信するキープアライブ・パケットに、1 バイトのランダム・データが入るかどうかを指定します。
FALSE
パケットにデータが入らないようにします。これがデフォルト値です。
TRUE
パケットに 1 バイトのランダム・データと無効なシーケンス番号を入れて、データがリモート TCP によって受け入れられないようにします。
TCPMAXRCVBUFRSIZE tcp_max_receive_buffer_size
TCP 最大受信バッファー・サイズは、アプリケーションが受信バッファー・サイズとして SETSOCKOPT() で設定できる 最大値です。最小許容値は、TCPRCVBUFRSIZE にコーディングされた値です。最大値は 2 MB で、デフォルト値は 256 KB です。帯域幅が広いインターフェースがない場合、 このパラメーターを使用して、アプリケーションで設定可能な受信バッファー・サイズを 制限できます。
注: 接続で動的適性サイジング (DRS) がアクティブな場合、TCPMAXRCVBUFRSIZE 値は無視され、最大値の 2 MB が使用されます。DRS について詳しくは、「z/OS Communications Server: IP 構成ガイド」の『TCP 受信ウィンドウ』を参照してください。

IBM Health Checker for z/OS® は、TCPMAXRCVBUFRSIZE 値が z/OS Communications Server FTP サーバーへの最適サポートを提供するために十分であるかどうかを検査する場合に使用できます。 デフォルトで、TCPMAXRCVBUFRSIZE に少なくとも 180 K あるかを検査します。 IBM Health Checker について詳しくは、「z/OS Communications Server: IP Diagnosis Guide」を参照してください。

TCPMAXSENDBUFRSIZE tcp_max_send_buffer_size
最大送信バッファー・サイズ。TCPSENDBUFRSIZE パラメーターに指定された値から 2 MB までの範囲です。デフォルト値は 256 KB です。
注: 接続でアウトバウンド適性サイジング (ORS) がアクティブな場合、TCPMAXSENDBUFRSIZE 値は無視され、最大値の 2 MB が使用されます。ORS について詳しくは、「z/OS Communications Server: IP 構成ガイド」の『TCP 送信ウィンドウ』を参照してください。
TCPRCVBUFRSIZE tcp_receive_buffer_size
TCP 受信バッファー・サイズ。256 バイトから TCPMAXRCVBUFRSIZE 値までの範囲です。デフォルト値は 65536 です。この値は、バッファーを明示的に設定しない アプリケーションが SETSOCKOPT() を使用する際に、このアプリケーションのデフォルトの受信バッファー・サイズとして 使用されます。

受信バッファー・サイズを増やしても、追加のストレージが割り振られることも、 使用されることもありません。受信バッファー・サイズにより、TCP/IP でアプリケーションが受信するためにバッファーに入れることができるデータ量が決まります。 TCP/IP スタックがデータを受信すると、 データは、CSM データ・スペースまたは TCP/IP 専用ストレージに保管されます。受信した各セグメントには、 ECSA または TCP/IP 専用域に存在し、関連付けられたデータ記述子があります。 受信したデータにどのストレージ・タイプを選択するかを制御する外部メカニズムは ありません。 受信側バッファー・サイズおよび TCP 受信ウィンドウについて詳しくは、 「z/OS Communications Server: IP 構成ガイド」の『TCP 受信ウィンドウ』を参照してください。

TCPSENDBFRSIZE tcp_send_buffer_size
TCP 送信バッファー・サイズ。256 バイトから TCPMAXSENDBUFRSIZE 値までの範囲です。デフォルト値は 65536 です。この値は、SETSOCKOPT() の使用時にバッファー・サイズを明示的に設定しないアプリケーションのデフォルトの送信バッファー・サイズとして使用されます。

送信バッファー・サイズを増やしても、追加のストレージが割り振られることも、 使用されることもありません。送信バッファー・サイズにより、TCP/IP でアプリケーションが送信するためにバッファーに入れることができるデータ量が決まります。アプリケーションが データを送信すると、TCP/IP スタックは、データを CSM データ・スペースに保管します。送信されたデータには、ECSA に存在する、関連付けられた 1 つ以上のデータ記述子があります。送信バッファー・サイズおよび TCP 送信ウィンドウについて詳しくは、「z/OS Communications Server: IP 構成ガイド」の『TCP 送信ウィンドウ』を参照してください。

TCPTIMESTAMP | NOTCPTIMESTAMP
NOTCPTIMESTAMP
TCP タイム・スタンプ・オプションを使用不可にして、 MVS™ が、接続のセットアップおよび接続期間中 TCP タイム・スタンプ・ネゴシエーションに参加しないようにします。
TCPTIMESTAMP
TCP タイム・スタンプ・オプションを使用可能にします。MVS が TCP 接続を開始すると、 TCP タイム・スタンプ・オプションが送信されます。例えば、受動接続期間中に MVS が、 クライアントからの TCP タイム・スタンプ・オプションを使用して TCP 接続要求を受信し、このオプションが 使用可能になると、MVS は、 独自の TCP タイム・スタンプ・オプションを使用して SYN-ACK を送信します。このオプションを使用可能にして、シーケンス番号の折り返しを防ぎ、本来、接続の初期の実現を目的としていた 遅延セグメントを接続で受信しないようにしてください。シーケンス番号は、 より高い帯域幅のネットワークではより早く折り返します。これがデフォルト値です。
TIMEWAITINTERVAL seconds
接続が TIMEWAIT 状態のまま存続する 秒数。範囲は 0 から 120 です。デフォルト値は 60 です。
TTLS | NOTTLS
NOTTLS
Application Transparent Transport Layer Security (AT-TLS) 機能が、TCP/IP スタック に対して活動状態でないことを示しています。 これがデフォルト値です。
TTLS
AT-TLS 機能が TCP/IP スタックに対して活動状態であることを示しています。 AT-TLS 機能は、スタックの TCP トランスポート層でシステム SSL を起動します。 TCPCONFIG TTLS 値が指定されている場合、AT-TLS 機能は、ポリシー・エージェントを使用して構成された AT-TLS ポリシー情報を使用して、アプリケーション接続の処理方法を決定します。 VARY TCPIP,,OBEYFILE コマンドを使用してこの設定値を変更すると、新しい接続のみがその変更による影響を受けます。
ガイドライン: AT-TLS が使用可能にされている場合は、SERVAUTH クラスを活動化して、INITSTACK リソース・プロファイルを定義し、それに対してユーザーを許可する必要があります。
AT-TLS データ保護について詳しくは、「z/OS Communications Server: IP 構成ガイド」を参照してください。

変更手順

TCPCONFIG ステートメントのパラメーターを変更するには、新しいパラメーターを使用してこのステートメントを指定し直す必要があります。

AUTODELAYACKS 以外のすべてのパラメーターについては、パラメーターの変更は既存の接続には影響しません。変更は新規接続にのみ影響します。

以下の例は、PORT および PORTRANGE ステートメントによって、 ポート 1 から 1023 をユーザー用に予約する TCPCONFIG ステートメントを示しています。
TCPCONFIG RESTRICTLOWPORTS