概要
TCP/IPでのデータ受信時の処理については、以前の投稿にてデータに対して各層で付加されたヘッダー情報を利用して処理をしていくと説明しましたが、今回はそれぞれを電子メールを例にもう少し具体的に確認し解説していきます。
パケットの受信処理
①ネットワークインターフェースの処理
イーサネットのデータを受信すればまず宛先が自分であることを確認します。もし違う場合はデータを廃棄します。自分宛であれば受信したデータのタイプをイーサネットタイプフィールドを確認して該当プロトコルを処理するルーチンへデータを渡します。もし処理出来るルーチンが存在しない番号が指定されている場合はデータを廃棄します。
②IPモジュールの処理
IPのルーチンにデータが渡されるとIPアドレスを確認し、自分宛であればそのまま受信して上位層のプロトコルを確認します。TCPであればTCPの、UDPであればUDPの処理ルーチンにIPヘッダー以降のデータを渡します。データを受信した機器がルーターの場合には、再度経路制御表から宛先を調べて転送処理を行います。
③TCPモジュールの処理
TCPではチェックサムを計算して受信した内容の破損や受信順を確認します。受信内容に問題が無い場合は送信ホストへ確認応答を送信します。送信ホストはこの確認応答が到着するまでデータの再送を繰り返します。確認応答を送信後はポート番号を調べて対象のアプリケーションプログラムへデータを渡します。
④アプリケーションの処理
受信側のアプリケーションでデータを解析し受信者宛のメールであれば、受信箱を確認し受信者宛のメールボックスが存在しない場合にはエラーを返します。メールボックスが存在すればハードディスクなどにメッセージを保存します。ハードディスク容量がいっぱいなど何らかの異常が発生すれば送信元へ異常終了のメッセージを送信します。
コメント