質問
何かしらのアプリケーションプロトコルがデータ部分に入っていてTCP
ヘッダが付与されたTCP
パケットがあるとします。
このTCP
パケットを見ただけで、正しいIP
ヘッダーを付与しIP
パケットを生成する事は可能なのでしょうか?
背景
HTTP
プロキシ、SOCKS
プロキシ、VPN
の仕組みを調べている祭、不随して通信のヘッダー付与の仕組みが気になり調べていました。
ざっくりですがアプリケーションが通信をする祭は、例えばアプリがHTTP
だった場合
1、アプリ層で何かしらのデータに対してHTTP
ヘッダが付与される
↓
2、トランスポート層でHTTP
パケットに対してTCP
ヘッダが付与される
↓
3、インターネット層でTCP
パケットに対してIP
ヘッダが付与される
という流れで情報が付与されていくと思います。
この時、2を行う際はHTTP
ヘッダー内にポート番号が存在しているので
TCP
ヘッダーを作る時HTTP
パケットを見るだけで、「あぁこのポートにつないでほしいHTTP
パケット君なんだな」と分かり
アプリ層が意図した宛先のTCP
ヘッダー(宛先ポート番号等)を付与することが出来ると思います。(違ったらご教示頂けると助かります・・・)
しかしHTTP
パケットがデータとしてカプセル化されているTCP
ヘッダーの中身を見るとIP
アドレス(またはそれに一意に対応するホスト名)が入っていません。
(参考)TCPヘッダーの内容
この状態で3を行う際にIP
ヘッダーを付与を担当するプログラムは、いったいどうやって降ってきたTCP
パケットが意図する宛先IP
アドレスを
IP
ヘッダーに付与しているのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/12 09:03
2020/04/12 09:12
2020/04/12 11:26
2020/04/12 11:54