TCP/IPでは、ネットワークでコンピュータが通信する一連の処理を4階層で表現する。
アプリケーション層
役割: ユーザーが直接操作するアプリケーションと通信する層です。メール送信の場合、メールクライアント(例: Outlook、Thunderbird)がこの層で動作し、SMTP(Simple Mail Transfer Protocol)などのプロトコルを使用してメールを送信します。
動作: ユーザーがメールを作成し、「送信」ボタンを押すと、メールクライアントがSMTPプロトコルを使用してメールデータをトランスポート層に渡します。
トランスポート層
役割: データの信頼性とフロー制御を担当します。メール送信では、TCP(Transmission Control Protocol)が使用され、データが正確に届くよう保証します。
動作: トランスポート層では、メールデータを適切なサイズに分割し、各セグメントに送信元と宛先のポート番号を付加します。これにより、受信側でデータを正しく再構成できます。
ネットワーク層
役割: データがどのルートを通って目的地に届くかを決定します。IP(Internet Protocol)はこの層の中心的なプロトコルで、データパケットが送信元から宛先まで適切にルーティングされるようにします。
動作: トランスポート層から受け取ったセグメントに、送信元と宛先のIPアドレスを付加し、パケットを作成します。このパケットは、ネットワーク上のルータを経由して、宛先のメールサーバーに届けられます。
ネットワークインターフェース層
役割: 物理的なデータ伝送が行われる層です。イーサネットやWi-Fiなどの技術がここに含まれます。
動作: インターネット層から受け取ったパケットに、MACアドレスなどの情報を付加してフレームを作成します。このフレームが物理的なネットワークを介して送信され、最終的に宛先のデバイスに届きます。
通信の具体的なイメージ
インターネットでメールを送信することを例にとると、送信する際に、上から順にデータをカプセル化していき、受信する際には、下から順に非カプセル化していく。
①アプリケーション層では送るメッセージ(データ)を生成。
②トランスポート層ではTCPヘッダーを追加し、セグメントを作成。
トランスポート層では、データの信頼性と正確な配信を確保するために、TCP(Transmission Control Protocol)ヘッダーが追加されます。このTCPヘッダーには、以下の主要な情報が含まれています。
- 送信元ポート番号: データを送信したアプリケーションのポート番号を示します。
- 宛先ポート番号: データを受信するアプリケーションのポート番号を示します。
- シーケンス番号: データの順序を管理し、再構成するための番号です。
- 確認応答番号(ACK番号): 受信側が次に受け取りたいデータのシーケンス番号を示し、受信確認を行います。
- フラグ: 接続の確立、データ送信、接続の終了などの制御情報を含むビット群です。
- ウィンドウサイズ: 受信側が一度に受け取れるデータ量を示し、フロー制御を行います。
- チェックサム: データの誤り検出を行うための検査値です。
これらの情報により、TCPはデータの正確な送受信、再送制御、フロー制御などの機能を提供し、信頼性の高い通信を実現します。
③ネットワーク層では、セグメントにIPヘッダーを付与し、パケットを作成。
④ネットワークインターフェース層では、パケットにフレームヘッダーとフッターを追加し、フレームとして物理的なネットワークを通じて送信する。
ネットワークインターフェース層(データリンク層)では、データを物理的なネットワーク上で転送するために、フレームヘッダーとフッターが追加されます。これらは、以下のような役割を果たします。
-
フレームヘッダー:
- 宛先MACアドレス: データを受信するデバイスの物理アドレスを示します。
- 送信元MACアドレス: データを送信したデバイスの物理アドレスを示します。
- タイプフィールド: 上位層のプロトコル(例えば、IPv4やIPv6)を識別します。
-
フレームフッター:
- FCS(Frame Check Sequence): フレーム全体の誤り検出を行うためのチェックサム値が含まれています。
フレームヘッダーとフッターにより、データリンク層は物理アドレス指定やエラーチェックを行い、データが正確に目的のデバイスに届くようにします。