0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初学者がTCP/IPを頑張って理解してみた

Posted at

TCP/IPでは、ネットワークでコンピュータが通信する一連の処理を4階層で表現する。

アプリケーション層

役割: ユーザーが直接操作するアプリケーションと通信する層です。メール送信の場合、メールクライアント(例: Outlook、Thunderbird)がこの層で動作し、SMTP(Simple Mail Transfer Protocol)などのプロトコルを使用してメールを送信します。

動作: ユーザーがメールを作成し、「送信」ボタンを押すと、メールクライアントがSMTPプロトコルを使用してメールデータをトランスポート層に渡します。

トランスポート層

役割: データの信頼性とフロー制御を担当します。メール送信では、TCP(Transmission Control Protocol)が使用され、データが正確に届くよう保証します。

動作: トランスポート層では、メールデータを適切なサイズに分割し、各セグメントに送信元と宛先のポート番号を付加します。これにより、受信側でデータを正しく再構成できます。

ネットワーク層

役割: データがどのルートを通って目的地に届くかを決定します。IP(Internet Protocol)はこの層の中心的なプロトコルで、データパケットが送信元から宛先まで適切にルーティングされるようにします。

動作: トランスポート層から受け取ったセグメントに、送信元と宛先のIPアドレスを付加し、パケットを作成します。このパケットは、ネットワーク上のルータを経由して、宛先のメールサーバーに届けられます。

ネットワークインターフェース層

役割: 物理的なデータ伝送が行われる層です。イーサネットやWi-Fiなどの技術がここに含まれます。

動作: インターネット層から受け取ったパケットに、MACアドレスなどの情報を付加してフレームを作成します。このフレームが物理的なネットワークを介して送信され、最終的に宛先のデバイスに届きます。

通信の具体的なイメージ

インターネットでメールを送信することを例にとると、送信する際に、上から順にデータをカプセル化していき、受信する際には、下から順に非カプセル化していく。

image.png
BIAS.JP のブログ"さんから画像拝借

①アプリケーション層では送るメッセージ(データ)を生成。

②トランスポート層ではTCPヘッダーを追加し、セグメントを作成。

トランスポート層では、データの信頼性と正確な配信を確保するために、TCP(Transmission Control Protocol)ヘッダーが追加されます。このTCPヘッダーには、以下の主要な情報が含まれています。

  • 送信元ポート番号: データを送信したアプリケーションのポート番号を示します。
  • 宛先ポート番号: データを受信するアプリケーションのポート番号を示します。
  • シーケンス番号: データの順序を管理し、再構成するための番号です。
  • 確認応答番号(ACK番号): 受信側が次に受け取りたいデータのシーケンス番号を示し、受信確認を行います。
  • フラグ: 接続の確立、データ送信、接続の終了などの制御情報を含むビット群です。
  • ウィンドウサイズ: 受信側が一度に受け取れるデータ量を示し、フロー制御を行います。
  • チェックサム: データの誤り検出を行うための検査値です。

これらの情報により、TCPはデータの正確な送受信、再送制御、フロー制御などの機能を提供し、信頼性の高い通信を実現します。

③ネットワーク層では、セグメントにIPヘッダーを付与し、パケットを作成。

④ネットワークインターフェース層では、パケットにフレームヘッダーとフッターを追加し、フレームとして物理的なネットワークを通じて送信する。

ネットワークインターフェース層(データリンク層)では、データを物理的なネットワーク上で転送するために、フレームヘッダーとフッターが追加されます。これらは、以下のような役割を果たします。

  • フレームヘッダー:
    • 宛先MACアドレス: データを受信するデバイスの物理アドレスを示します。
    • 送信元MACアドレス: データを送信したデバイスの物理アドレスを示します。
    • タイプフィールド: 上位層のプロトコル(例えば、IPv4やIPv6)を識別します。
  • フレームフッター:
    • FCS(Frame Check Sequence): フレーム全体の誤り検出を行うためのチェックサム値が含まれています。

フレームヘッダーとフッターにより、データリンク層は物理アドレス指定やエラーチェックを行い、データが正確に目的のデバイスに届くようにします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?