Oracle中心にIT全般の技術情報を気が向くままに書いています。他にLinux、仮想化技術(VMWare)やトラブルに役立つ情報などがあります。

スポンサーサイトTcpViewでネットワーク接続状態をリアルタイムで確認する


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Windows Sysinternalsツールである「TcpView」というツールを使えば、ネットワークの接続の状態をリアルタイムで確認することができます。
原因不明のエラーを調査する場合など、netstatでは分からなかったことが、本ツールでエラー原因を特定できる場合もあります。
非常に有効なツールであると思います。




TcpViewの利用
(1)TcpViewのダウンロード
下記サイトからTcpViewをダウンロードして解凍します。
http://technet.microsoft.com/ja-jp/sysinternals/bb897437.aspx

また、同時にTcpvcon.exeというツールもダウンロードされますが、TcpViewのコマンドライン版です。

(2)TcpViewによるリアルタイム確認
TcpViewを起動すると、下記のようにネットワークの状態をリアルタイムで確認できます。



TcpViewを活用するための前提知識
本ツールを使いこなすためには、TCPの状態遷移とステータスについて理解している必要があります。
実は私もきちんと理解していません。

良い機会なので整理してみたいと思います。

(1)アクティブとパッシブ
オープンの種類にはアクティブオープンとパッシブオープンがあります。
また、クローズの種類にもアクティブクローズとパッシブクローズがあります。

アクティブは最初に行動(トリガー)を起こす方で、通常はクライアントに相当します。
パッシブは受け側で、通常はサーバーに相当します。

TCP状態遷移を理解するためには、まずこのアクティブ/パッシブについて理解する必要があります。

(2)ステータスの種類
接続の状態には下記のようなステータスがあります。
ステータス意味
LISTENパッシブ側の状態です。ポートを開いて要求を待っています。SYNを受け取るとSYN_RECEIVEDに移行します。
SYN_SENTアクティブ側の状態です。オープンするためにパッシブ側へSYNを送ってACKを待っています。SYNに対するACKを受け取ると、ESTABLISHEDに移行します。
SYN_RECEIVEDパッシブ側の状態です。アクティブ側のSYNに対するACKとパッシブ側からのSYNをアクティブ側へ送ってACKを待っています。SYNに対するACKを受け取ると、ESTABLISHEDに移行します。
ESTABLISHED通信が確立されている状態です。この状態でデータの送受信を行います。
FIN_WAIT_1アクティブ側の状態です。クローズするためにパッシブ側へFINを送ってACKを待っています。FINに対するACKを受け取ると、FIN_WAIT_2に移行します。
CLOSE_WAITパッシブ側の状態です。アクティブ側のFINに対するACKをアクティブ側へ送って、パッシブ側からFINを送信するまでの状態です。FINを送信すると、LAST_ACKに移行します。
FIN_WAIT_2アクティブ側の状態です。アクティブ側のFINに対するACKを受け取り,パッシブ側からのFINを待っています。FINを受け取ると、TIME_WAITに移行します。
LAST_ACKパッシブ側の状態です。パッシブ側からFINを送って、アクティブ側からのACKを待っています。ACKを受け取るとCLOSEDに移行します。
TIME_WAITアクティブ側の状態です。パッシブ側からのFINを受け取り、FINに対するACKを送信しています。時間が経過するとCLOSEDに移行します。
CLOSED通信クローズされた状態です。
CLOSINGFINに対するACKを受け取る前に相手ノードからのFINを受け取った状態です。通信するノードがほぼ同時にアクティブクローズを行った時に発生します。FINに対するACKを受信するとTIME_WAITに移行します。

(3)TCP状態遷移
ステータスを理解するためには、TCP状態遷移の理解が必須です。

一般的な状態遷移図はありふれていますので、私自身が理解しやすい形で図示したいと思います。
ここでは、通信フローと状態遷移図を組み合わせて、通信の流れに伴ってどのようにステータスが変化するのかを表すことにします。

■ケース1:クライアント=アクティブオープン/アクティブクローズ,サーバ=パッシブオープン/パッシブクローズ




■ケース2:クライアント=アクティブオープン/アクティブクローズ,サーバ=パッシブオープン/アクティブクローズ
 ※両ノードがほぼ同時にアクティブクローズ(CLOSINGステータスが発生)







以上です。




トラックバックURL

この記事にトラックバックする(FC2ブログユーザー)



前ページへ:MoveFileで削除できないファイルを削除する
次ページへ:ssh接続JAVAアプリケーションを作成する

ページのトップへ

必ずお読みください

本ブログ記事をご利用になって生じたいかなる損害についても当方は一切責任を負いません。
ご利用は自己責任でお願いします。(^―^)

広 告





ブログランキング/その他


ビジネスブログ100選

ブログランキング・にほんブログ村へ
blogramで人気ブログを分析




最新トラックバック


RSSリンクの表示

QRコード

QR

アクセスカウンター

ユニーク:
トータル:


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。