アプリ版:「スタンプのみでお礼する」機能のリリースについて

netstat オプションなしと、netstat -a の表示されるStateの種類の違いについて教えてください。

# netstat

# netstat -a

を実行したときに表示されるStateの種類の違いは、オプションなしは下記StateのLISTEN以外が表示対象で、-a オプション指定時は下記Stateの全てが表示対象である認識でいます。

では、netstat オプションなしで実行した場合、LISTEN以外が表示であることを裏付けるには、ソースを追うしかないでしょうか?

netstat オプションなしで実行した場合、LISTEN以外が表示であることを裏付ける方法について教えてください。


State

ESTABLISHED
ソケットは確立した接続状態にある。
SYN_SENT
ソケットは接続を確立しようと試みている。
SYN_RECV
接続要求をネットワークから受信している。
FIN_WAIT1
ソケットはクローズされており、接続は切断中である。
FIN_WAIT2
接続はクローズされ、ソケットはリモート側からの切断を待っている。
TIME_WAIT
ソケットは、クローズ後にリモートからの切断が再送されるのを待っている。
CLOSED
ソケットは使用されていない。
CLOSE_WAIT
リモート側は既に切断され、ソケットがクローズされるのを待っている。
LAST_ACK
リモート側は既に切断され、ソケットもクローズされている。 確認 (acknowledgement) を待っている。
LISTEN
ソケットは接続待ち (listen) である。 このようなソケットは、 --listening (-l) または --all (-a) オプションを指定しない限り、出力には含まれない。
CLOSING
両方のソケットが切断されているが、まだ全てのデータが送られていない。
UNKNOWN
ソケットの状態は不明である。

A 回答 (1件)

>netstat オプションなしで実行した場合、LISTEN以外が表示であることを


>裏付ける方法について教えてください。
100%の裏付けをとるには、確かにソースコード解読しかないと思います。

しかし、通常は、netstatのmanページの記述で十分な裏付けかと。


ここは憶測の話(間違っていたらゴメンナサイ)になりますが、
sinrin2011 さんが以下の話を知らないため、
netstat manページの重要な記述を読み落としているように思います。

------------------------------
UNIXでは、socket通信という概念があります。
socket通信とは、通信にソケットというものを利用するのですが、
これには以下の2種類があります。というか2種類しかありません。
 ・アクティブソケット(図中のactive)
 ・パッシブソケット(図中のpassive)

http://www.lincoln.edu/math/rmyrick/ComputerNetw …

TCPのSTATEで分類すると…
 ・アクティブソケットは、いろいろなSTATE(LISTEN以外)をとる
 ・パッシブソケットは、LISTEN状態しかとらない
となります。
--------------------------------

以上を踏まえた上で、 netstat のmanページを参照すると、
  >デフォルトでは、 netstat はオープンされているソケットの一覧を表示する。
>アドレスファミリーが指定されていなければ、
>設定されている全てのアドレスファミリーに関して、
>アクティブなソケットが表示される。
という記述を見つけることができます。

これをちょっといいかえると
 『netstatは、デフォルトではアクティブソケットを表示する』
となります。

しかし、世の中には、
「アクティブソケット」と「パッシブソケット」の2種類しかありません。

つまり、
 『netstatは、デフォルトではパッシブソケットを表示しない』
となるわけです。


アクティブソケットを表示する⇒いろいろなSTATE(LISTEN以外)を表示する
パッシブソケットを表示しない⇒LISTEN状態を表示しない

ともなるわけで、
「netstat オプションなしで実行した場合、LISTEN以外が表示であること」
の十分な裏付けになると思います。


最後に、蛇足ですが、
socket通信の概念は、一般的なコンピュータ通信を仕組みを理解する上で
非常に有用です。ぜひ覚えておいてほしい知識です。
    • good
    • 0
この回答へのお礼

わたしもほぼ間違いないと思っていましたが、どうしても裏づけがほしかったのです。
大変参考になりました。
また、丁寧なご説明ありがとうございました。
このお礼は、困っているかたがいたときは善意をもってお返ししたいと思います。

お礼日時:2011/05/03 09:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!