Netstat レポートの一般概念

TCP 接続状態

TCP 接続は、その存続期間中、一連の状態を通じて進行します。 以下の図は、TCP 接続で起こりうる状態と、 ネットワークまたはローカルの TCP ソケット・アプリケーションからのさまざまなイベントによって状態がどのように変化するかを示しています。

図 1. TCP 状態遷移図
TCP 状態遷移図
表 1. TCP 状態遷移記述テーブル
TCP 接続状態 MVS™ コンソールでの省略形 TSO または UNIX シェルでの省略形 説明
LISTEN listen listen リモート TCP アプリケーションからの接続要求を待つ。これは、ローカル TCP サーバーのリスニング・ソケットを検出できる状態である。
SYN-SENT SynSent SynSent 接続要求を送信した後、リモート・エンドポイントからの通知を待っている。 3 方向の TCP ハンドシェークのステップ 1 の後に起こる。
SYN-RECEIVED SynRcvd SynRcvd このエンドポイントは、接続要求を受信して肯定応答を送信した。このエンドポイントは、別のエンドポイントがこのエンドポイントのオリジナルの接続要求の肯定応答を受信したという最終通知を待っている。3 方向の TCP ハンドシェークのステップ 2 の後に起こる。
ESTABLISHED Estblsh Establsh 完全に確立された接続を表す。接続のデータ転送フェーズ の通常の状態である
FIN-WAIT-1 FinWt1 FinWait1 リモート TCP からの接続終了要求、または同時接続終了要求の肯定応答を待つ。 この状態は通常、短期間である。
FIN-WAIT-2 FinWt2 FinWait2 このエンドポイントが接続終了要求を送信した後で、リモート TCP からの接続終了要求を待つ。 この状態は通常、短期間であるが、リモート・ソケットのエンドポイントがこのソケット・エンドポイントが接続をクローズしたという情報を受信した後で、すぐにそのソケットをクローズしない場合は、この状態がしばらく続く。 リモート・アプリケーションのコーディングで、FIN-WAIT-2 状態が超過するとエラーを表すようにできる。
CLOSE-WAIT ClosWt ClosWait このエンドポイントはクローズ要求をリモートのエンドポイントから受信し、今この TCP はローカル・アプリケーションからの接続終了要求を待っている。
CLOSING Closing Closing リモート TCP からの接続終了要求の肯定応答を待つ。このエンドポイントがローカル・アプリケーションからのクローズ要求を受信し、終了要求をリモートのエンドポイントに送信し、リモートのエンドポイントからの肯定応答を受信する前に終了要求を受信した場合に、この状態になる。
LAST-ACK LastAck LastAck 以前にリモート TCP へ送信された接続終了要求の 肯定応答を待つ。このエンドポイントが終了要求を送信する前に終了要求を受信した場合に、この状態になる。
TIME-WAIT TimeWt TimeWait リモート TCP がその接続終了要求の肯定応答を確実に受信するための十分な 時間を渡して待つ。
CLOSED Closed Closed 接続状態が全く無いことを表す。
Client または User
さまざまな理由で、TCP/IP サービスのクライアントまたはユーザーとして TCP/IP サービスを使用する MVS ジョブまたはアドレス・スペースを、TCP/IP は参照します。 ここにおけるクライアントという用語は、従来のネットワーク・アプリケーションのクライアント/サーバーの役割とは関係ありません。 z/OS® のローカルのサーバー・プログラムとローカルのクライアント・プログラムはともに TCP/IP サービスのクライアントまたはユーザーです。 ほとんどの目的について、Netstat レポートのクライアント名、ユーザー ID、およびユーザーを MVS ジョブ名と置き換えできます。
UDP ソケット状態
TCP と異なり、UDP は完全な状態で作動しません。 さまざまな Netstat レポートに表示される状態は、常に UDP ソケットに対して UDP です。
Client ID または Connection Number
この TCP/IP ホスト上の接続を意味するソケットのエンドポイントを一意的に識別する生成された番号。 この番号は、ソケットや Netstat DROP/-D パラメーターとの接続を除去するのに使用できます。
Client Name または User ID
TCP/IP パースペクティブからのクライアント名は、一般にソケットを所有するアドレス・スペースのジョブ名です。 バッチ・ジョブの場合は、これはジョブ名です。TSO ユーザーの場合は、これは TSO ユーザー ID です。 UNIX プロセスでは、親プロセスのジョブ名に 1 桁付加するか (INETD は INETD1 を作成する)、または環境変数 _BPX_JOBNAME の値にジョブ名を設定するという、プロセス作成中に決定したジョブ名になります。開始タスクでは、ジョブ名は一般にプロシージャー名です。プロシージャーを JOBNAME キーワード (S procname,JOBNAME=myjob) で開始すると、ジョブ名はその JOBNAME キーワードに指定した値になります。 プロシージャーを開始修飾子 (S procname.modif) で開始すると、 その修飾子は TCP/IP クライアント名として表示されます。
Local IP アドレス
ソケットにはアドレス情報がまったくない場合 (socket() 呼び出しによりプログラムに作成された直後)、bind() ソケット呼び出しを使用して設定されたローカル・アドレス (ローカル IP アドレスおよび/またはローカル・ポート番号) だけがある場合、 または接続されたソケット (リモート・ソケットと接続しているソケット) を意味するローカル・アドレスとリモート・アドレスの両方がある場合があります。

ソケットのローカル IP アドレスは、ゼロ (0) (いかなるローカル IP アドレスにも結合しない) か、またはこの TCP/IP ホストの HOME リストにある IP アドレスです。

サーバー・プログラムのリスニング・ソケットには、ローカル・アドレスのみが与えられています。 サーバーのリスニング・ソケットのローカル IP アドレスがゼロの場合、リモート・クライアントはこの TCP/IP ホストの HOME リストにある任意の IP アドレスに接続要求を送信できます。 サーバーのリスニング・ソケットのローカル IP アドレスがゼロでなければ、その特定の IP アドレスに接続要求を送信するだけで、リモート・クライアントはこのサーバーに接続できます。接続されたソケットには、ローカル・アドレスとリモート・アドレスの両方が与えられます。

Foreign/remote IP アドレス
リモート IP アドレスは接続されたソケットに存在し、 このソケットが接続されているリモート・ソケット・エンドポイントに関係する IP アドレスを表します。接続されたソケットは、以下のいずれかになります。
  • サーバー・ソケットで、リモート・クライアントは、この TCP/IP ホスト上のサーバーに接続されているこのリモート IP アドレスによって表される。
  • この TCP/IP ホスト上のクライアント・プログラムのソケットで、このリモート IP アドレスで表されるリモート TCP/IP ホスト上のサーバーに接続されている。
Local port
ローカル・ポートは、ソケットのローカル・アドレスの一部です。サーバーのリスニング・ソケットでは、 ポートは特定のサーバーを表します。リモート・クライアントがこのサーバーのサービスを使用する必要がある場合、 この TCP/IP ホストへの接続要求をこのサーバーの特定のポート番号に送信します。
接続されたソケットは、以下のいずれかの事例を表します。
  • リモート・クライアントからのローカル・サーバーとの接続、例えば、ローカル・ポート番号はサーバーのリスニング・ソケットに表示される同じポート番号。
  • リモート・サーバーに接続されたローカル・クライアント、例えば、 ポート番号は TCP/IP ホストが検出する (一時的なまたは短命のポート番号として知られる) 接続が確立したときに使用可能な任意のポート番号になります。 これは、一般的に 1024 を超えるポート番号です。
Foreign/Remote Port
リモート・ポートは、ソケットのリモート・アドレスの一部で、接続されたソケットのためにのみ存在します。 これは、このソケットに接続されているリモート・ソケットのポート番号を表します。接続されているソケットがこの TCP/IP ホスト上のクライアント・プログラムのものである場合、リモート・ポート番号はこのクライアント・プログラムが接続されているリモートの TCP/IP ホスト上のサーバーを識別します。
Local Socket
ローカル・スタック上のアプリケーションが結合された IP アドレスとポート番号。
Foreign Socket
リモート・ホスト上のアプリケーションが結合された IP アドレスとポート番号。UDP ソケットでは、さまざまな Netstat レポートに表示される外部ソケット・フィールドは、ソケットが接続されていない場合、*..* と表示されます。接続された UDP ソケットでは、外部ソケット・フィールドに接続要求で指定されるリモート IP アドレスとポートが表示されます。UDP ソケットが接続されている場合は、指定のリモート IP アドレスとポートからのパケットのみ受信します。
Last touched 時刻
TCP で、最後に次のいずれかのイベントが接続で起こった時刻です。
  • サーバー・サイドが接続要求を受信する。
  • サーバー・サイドが接続要求を受諾する。
  • 接続のサーバーまたはクライアント側のいずれかがパケットを受信する。
  • 接続のサーバーまたはクライアント側のいずれかがパケットを送信する。
UDP で、最後に次のいずれかのイベントが接続で起こりました。
  • 接続のサーバーまたはクライアント側のいずれかがパケットを受信する。
  • 接続のサーバーまたはクライアント側のいずれかがパケットを送信する。
Netstat 出力のリダイレクト
Netstat 画面出力は、すべての Netstat レポートをリダイレクトできます。 次の例は、BYTEINFO レポートを使用しています。
TSO 環境からの場合
  • TSO NETSTAT の画面出力は、REPORT オプションを付け加えることによって、ディスク・ファイルに リダイレクトすることができます。
    NETSTAT BYTEINFO REPORT
    BYTEINFO コマンドからの画面出力を含むデータ・セット MVSUSER.NETSTAT.BYTEINFO (MVSUSER はユーザー ID) が作成されます。REPORT オプションの詳しい説明については、Netstat コマンドの出力を参照してください。
  • スタック・オプションを付加して、TSO NETSTAT 画面出力を TSO データ・スタックにリダイレクトすることもできます。
    NETSTAT BYTEINFO STACK
    BYTEINFO コマンドからの画面出力を含む TSO データ・スタックに収める レポート (数行のタイトル行を除く) を作成します。STACK オプションの詳しい説明については、Netstat コマンドの出力を参照してください。
z/OS UNIX シェル環境からの場合
netstat 画面出力は、次の形式でリダイレクト機能 (>) を使用することによって、ファイルにリダイレクトすることができます。
netstat -b > byteinfo

直前に表示された画面への出力内容が入ったファイル byteinfo が現行ディレクトリーに作成されます。

タイム・スタンプ
Netstat レポートごとにヘッダーに表示されるタイム・スタンプは、現地時間です。リポート ALL/-A、BYTEinfo/-b、CLients/-e、HOME/-h、RESCache/-q、ROUTe/-r、SLAP/-j、UP/-u、および VIPADyn/-v に表示される時間フィールドは、協定世界時 (UTC) です。UTC 時間はうるう秒を配慮しません。