Wiresharkというフリーのネットワークアナライザーがある。
元々はEtherrealと呼ばれていたものだが、開発者が会社を替わったとかで、名前も変わったソフトである。
窓の杜からダウンロードするとここ
http://www.forest.impress.co.jp/lib/inet/servernt/netanlz/wireshark.htm
インストールは、途中でWinCapというドライバーもインストールする必要があるが、基本的には、
次へ次へ(いや実際には、日本語されていないので、Next、Next)すれば、ものの10分もすれば
インストールは完了となる。
特に初期の設定も必要なく、起動すれば、すぐに使えるところも優れもの。
インストールの過程はここを参照
http://www.atmarkit.co.jp/fwin2k/win2ktips/1045wshark/wshark.html
フリーで簡単にインストールできすぐに利用できるわけだが、これがなかなか優れもの。
私がこれいいなーと思うのは、TCP/IPの勉強を始めると必ずフォーマットを勉強するわけだか、
実際問題0と1の信号でどのようにそのフォーマットを実装しているのか、なかなか理解できにくい。
例えば、TCPだとこのようなフォーマットがでてくる。
それぞれのビット毎に何を表しているか決まっているわけだが、
Wiresharkを使うと、これがこのまま実データとして見れるわけ。
特に自分や相手のIPアドレスやポート番号などはある程度体感できるけど、
分割の禁止とかウインドウのサイズなどは、なかなかわからない。
Transmission Control Protocol, Src Port: 3m-image-lm (1550), Dst Port: telnet (23), Seq: 0, Len: 0
Source port: 3m-image-lm (1550)
Destination port: telnet (23)
[Stream index: 0]
Sequence number: 0 (relative sequence number)
Header length: 40 bytes
Flags: 0x002 (SYN)
000. .... .... = Reserved: Not set
...0 .... .... = Nonce: Not set
.... 0... .... = Congestion Window Reduced (CWR): Not set
.... .0.. .... = ECN-Echo: Not set
.... ..0. .... = Urgent: Not set
.... ...0 .... = Acknowledgment: Not set
.... .... 0... = Push: Not set
.... .... .0.. = Reset: Not set
.... .... ..1. = Syn: Set
[Expert Info (Chat/Sequence): Connection establish request (SYN): server port telnet]
[Message: Connection establish request (SYN): server port telnet]
[Severity level: Chat]
[Group: Sequence]
.... .... ...0 = Fin: Not set
Window size value: 32120
[Calculated window size: 32120]
Checksum: 0xe0a3 [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Options: (20 bytes), Maximum segment size, SACK permitted, Timestamps, No-Operation (NOP),
*SACKの許可とかなんかは、普通はほとんど意識しない部分。
Window scale
Maximum segment size: 1460 bytes
Kind: MSS size (2)
Length: 4
MSS Value: 1460
TCP SACK Permitted Option: True
Kind: SACK Permission (4)
Length: 2
Timestamps: TSval 10233636, TSecr 0
Kind: Timestamp (8)
Length: 10
Timestamp value: 10233636
Timestamp echo reply: 0
No-Operation (NOP)
Type: 1
0... .... = Copy on fragmentation: No
.00. .... = Class: Control (0)
...0 0001 = Number: No-Operation (NOP) (1)
Window scale: 0 (multiply by 1)
Kind: Window Scale (3)
Length: 3
Shift count: 0
[Multiplier: 1]
まずはこれを見て、TCP/IPの規定フォーマットがどのように実際に運用されているかをひとつひとつ丁寧に見ることで、確実にプロトコルの理解が深まる。
TCPの応答確認のトラフィックをグラフ化する方法もあるので、また次回。
YAでした。
l