So-net無料ブログ作成
検索選択

付録基板が発行するシーケンス番号を調べた [ColdFire V2]このエントリーを含むはてなブックマーク#

2047506

前回実験したクライアント・サーバ・システムのパケットで、不可解な[TCP Retransmission]がレポートされていました。 今回は、その原因を探ります。

シーケンス番号一覧

前回は簡易レポートしか見ていませんでしたが、今回はパケットの中身まで深く調べました。 その結果、使い回しされていたのがポート番号だけではなかったことが判明してしまいました。

#7	2.014995	1024 > 30049 [SYN] Seq=0 Win=1454 Len=0
#8	2.015247	30049 > 1024 [SYN, ACK] Seq=0 Ack=1 Win=1454 Len=0
#9	2.015419	1024 > 30049 [ACK] Seq=1 Ack=1 Win=1454 Len=0

着目したのは、3ウェイ・ハンドシェイクの二つ目のサーバから送られたパケットです。 この簡易レポートでは、"Seq=0 Ack=1"となっていますが、これらの値は、相対値でしかありません。 そのため、これらの絶対値を表にしてみました。

コネクション番号 サーバ側シーケンス番号(Seq) クライアント側シーケンス番号(Ack)
00x5180009F0x5180C8A0
10x1675E59F0x16BE1DA0
20x56231A600x0B6B1A61
30x7791289F0x406ED761
40x059DE59F0x3B33D761
50x11DCE59F0x67CC28A0
60x52DCE59F0x629DE5A0
70x52DCE59F0x11DCE5A0
80x52DCE59F0x52DCE5A0
90x52DCE59F0x52DCE5A0

なんと、サーバ側のシーケンス番号は、6番目のコネクションで0x52DCE59Fに収束してしまい、クライアント側のシーケンス番号も9番目と10番目で(0x52DCE59F+1)に収束してしまいました。 道理で Wireshark が「再送」と解釈してしまうわけです。 問題は、シーケンス番号の生成アルゴリズムにありそうです。

それにしても、"E59F"というのは、何のおまじない?

参考文献

Interface (インターフェース) 2008年 09月号 [雑誌]

Interface (インターフェース) 2008年 09月号 [雑誌]

  • 作者:
  • 出版社/メーカー: CQ出版
  • 発売日: 2008/07/25
  • メディア: 雑誌

nice!(0)  コメント(1)  トラックバック(0)  このエントリーを含むはてなブックマーク#

nice! 0

コメント 1

hamayan

(*^_^*)
もうここまでバグ出しと解析まで行ったのだから、菓子折りの一つでも貰う権利は有りますね。
または次のOS-2が送られて来るとか!、勿論バグ出し目的で。

by hamayan (2008-10-07 10:54) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。