マイペースなプログラミング日記

DTMやプログラミングにお熱なd-kamiがマイペースに書くブログ

TCP/IPパケットの組み立てかたを考える

TCPヘッダのシーケンス番号と確認応答番号、制御フラグの組み合わせでパケットを組み立てる。
最初のパケットは確認応答番号が0みたいなので、それから始めてもいいけど、制御フラグのSYNを確認してそれをスタートとする。
SYNが1のパケットを見つけたら、パケットの内容を別の変数にコピーして、その変数を先頭要素としたリストをシーケンス番号をキーにしてハッシュテーブルに格納する。
ACKフラグが1のパケットの確認応答番号に-1したものをキーとしてハッシュテーブルを探索する。見つかったら、それに対応してるリストにパケットのコピーを追加して、新しいシーケンス番号をキーとして格納し、古いキーをハッシュテーブルから削除する。
FINフラグが来たら、そのパケットをリストに追加して完成。RSTが来たらどうしよう