30代専業主婦の独学エンジニア挑戦ブログ

実務未経験の30歳の専業主婦が独学でエンジニアを目指すブログです

netstatコマンド ~通信状態を確認する~

勉強記録

現在、ネットワークの勉強をしています。
最近は主にトランスポート層の勉強をしていました。
今回は、ネットワークの状態を見る方法としてnetstatコマンドについて学んだのでまとめました。

勉強に使用しているのは、こちらの技術書です。
イラスト図解で、全ページフルカラーなのでとても読みやすく理解しやすいです。

トランスポート層で使われるプロトコルTCPUDPについては過去の記事でまとめています。
programming-kanamama.hatenablog.com
programming-kanamama.hatenablog.com
programming-kanamama.hatenablog.com

netstatコマンドとは

TCPUDPはバックグラウンドで動いているものですが、これらの状態を見る方法がいくつか用意されており、そのひとつがnetstatコマンドです。

netstatは、接続状態を調べ、IPアドレスプロトコルやポート番号などを表示してくれるコマンドです。

ターミナルを起動して、「netstat -n」と入力すると、
トランスポート層プロトコル
・パソコンのIPアドレスとポート番号
・通信相手のIPアドレスとポート番号
・接続の状態

が表示されます。

  • nはオプションですが、-nをつけることでIPアドレスとポート番号で表示してくれます。

接続の状態

netstatコマンドを実行したときに表示される接続の状態には様々な種類があります。

・ESTABLISHED : TCPによる接続が確立して、通信をしている状態。 
・LISTEN : サーバーが待ち受け状態。
・TIME_WAIT : 接続を終了しようとしている状態。

詳しくはTCPのステータス遷移図(状態遷移図)を見てみるといいと思います!
ステータス遷移図を見ると、コネクション確立・終了の流れもわかりやすかったです。

(私はこちらの方の記事を参考に勉強させていただきました)
TCPの状態遷移 - Qiita

パケットキャプチャツール

netstatコマンドでは、大まかな通信状態しか確認できません。
なので、より細かくネットワークの通信を見たい場合には、パケットキャプチャツールと呼ばれる通信中のパケットをリアルタイムで覗けるツールを使用します。

有名なのが「Wireshark(ワイヤシャーク)」というパケットキャプチャツールで、TCPの接続開始から始まり、HTTPメッセージのやりとりなどのデータ転送が行われている様子を見ることができます。