質問: 1213 このパケットのやりとりを観ていて思ったのですが、tcp通信は3ウェイハンドシェイクは syn--->syn ack---> ack という順序でのパケットのやりとりをクライアントとサーバー間で行うと思っていたのですが、 psh, ack ----> psh, ack ----> ack ----> ack このような順序になっているように思うのですが、これはなぜなのかご教授頂けないでしょうか? どうぞ、よろしくお願い致します。
回答: flow graphで表示する前の、フィルタ条件がおかしかった...ということはありませんか? 手元の環境(wireshark 1.8.2とlinuxで動作しているpop3サーバ)でキャプチャして、 ip.addr == 192.168.1.250 でフィルタしてからflow graphで表示すると、ちゃんと3ウェイハンドシェークしていますよ。 # クライアントpcが192.168.1.2(win7 64bit) # pop3サーバが192.168.1.250でdebian。 全角空白とかで成形したけど、ちゃんと見えるかなぁ...。 # ズレてたらテキストエディタなどに貼り付けてください。固定ピッチフォントの。 |time | 192.168.1.2 192.168.1.250 | |3.702| syn |seq = 0 | |(52553) ------------------> (110)| |3.702| syn, ack |seq = 0 ack = 1 | |(52553) <------------------ (110)| |3.702| ack |seq = 1 ack = 1 | |(52553) ------------------> (110)| |3.703| psh, ack - len: 20 |seq = 1 ack = 1 | |(52553) <------------------ (110)| フィルタをip.dst == 192.168.1.250にしてからだと... # キャプチャし直したものなのでtimeは異なりますが...。 |time | 192.168.1.2 192.168.1.250 | |2.118| syn |seq = 0 | |(52557) ------------------> (110)| |2.118| ack |seq = 1 ack = 1 | |(52557) ------------------> (110)| |2.120| psh, ack - len: 6 |seq = 1 ack = 21 | |(52557) ------------------> (110)|