TCP/IPは各階層で送信されるデータにヘッダをつけて送信している
アプリケーションの処理
アプリを起動してメッセージを送信する その時、符号化の処理が行われる。(OSIのプレゼンテーション層の役割) また、複数送信の場合はまとめて送信する(OSIのセッション層の役割)
そして、メールを送信する際はTCPコネクションの確立を支持する
TCPモジュールの処理
アプリケーションからの指示通り、TCPヘッダをつける
TCPヘッダには、
が含まれる
IPモジュールの処理
TCPヘッダの前にIPヘッダをつける
IPヘッダには、
が含まれる
IPパケットが完成したら、経路制御表(ルーティングテーブル)を参照して IPパケットを次に受け渡すルータやホストを決定する
MACアドレスがわからない場合は、ARPを利用して調べる。
そして、ネットワークインターフェースで送信処理をしてもらう
ネットワークインターフェースの処理
最後にイーサネットのヘッダがつけられる
イーサネットのヘッダには、
が書き込まれている
以上の処理をして作られたものが物理層へ送られる。
そして、送信処理中にFCS(Frame Check Sequence)がハードウェアで計算され パケットの最後につけられる。
FCSはノイズなどによってパケットが壊れたことを検知するもの
パケットが流れる時は、先頭にイーサネットのヘッダがつき、 その後ろにアプリケーションのヘッダがつく
それぞれのヘッダには少なくとも
は必ず入っている
ネットワークインターフェースの処理
イーサネットヘッダの宛先MACアドレスが自分宛かどうかを確認 自分宛でなかったら破棄
そしてIPを処理するルーチンに渡す
IPモジュールの処理 宛先IPアドレスが自分のホストIPアドレスと一致していたら、そのまま上位層のプロトコルを調べる
TCPモジュールの処理 チェックサムを計算して、ヘッダやデータが壊れていないかを確かめる また、ポート番号を調べて、通信を行なっているアプリケーションを特定する