トランスポート層(TCP)からネットワーク層(IP)に向かってセグメントを受信すると、結果のデータユニットがパケットになるというのは本当ですか。一方、トランスポート層(UDP)からユーザーデータグラムを受信すると、結果のデータユニットはデータグラムになりますか?
4 に答える
あなたは詳細に巻き込まれています...パケットとデータグラムは正確に定義された用語ではありません。また、あなたも物事を後ろ向きに見ていると思います。従来のネットワークでは:
- リンク層(たとえば、802.3「イーサネット」または802.11「Wi-Fi」)は、ネットワーク層(たとえば、IP、ICMP)にフレームを提示します。
- ネットワーク層は、フレームをパケットにアセンブルし、スタック内の次の層であるトランスポート層に渡されます。
- 次に、トランスポート層はバイトをアプリケーション層に渡します。アプリケーション層APIは、実際にはTCPのデータストリームとUDPのデータグラムを区別するものです。
OSIスタックは、実際にはもう実際には使用されていません。ほとんどの場合、これはInternetProtocolSuiteに置き換えられています。ネットワークスタックがどのように機能するかを理解する最も簡単な方法は、「TCP / IP Illustrated:Volume 1」のコピーを購入し、優れたネットワークキャプチャユーティリティをダウンロードして、インターネットトラフィックを監視することです。パケットが物理層から上に向かってどのように組み立てられているかを確認できます。
データグラムという用語は、パケットと同義であると見なされることがよくありますが、微妙な違いがあります。データグラムという用語は通常、信頼性の低いサービスのパケット用に予約されており、配信が失敗した場合に送信者に通知することはできませんが、パケットという用語は、信頼できるかどうかに関係なく、すべてのパケットに適用されます。データグラムは、UDPのような迅速で信頼性の低いサービスを提供するIPパケットであり、すべてのIPパケットはデータグラムです; [4]ただし、TCP層では、TCPセグメントと呼ばれるものは、データグラムのIPフラグメンテーションが必要になる場合があります[5 ]しかし、それらは「パケット」と呼ばれます。[6]
[Emphasys追加]
「7層ネットワークスタック」に精通する必要があります。
TCP / IPに完全に適用されるわけではありませんが、TCP/IPを含むあらゆる「ネットワーキング」プロトコルを理解するための優れた基礎となります。
短い答え:
「パケット」は、ネットワークを介して送信されるものです。
TCP / IPの場合、受信側ホストはパケットを「ストリーム」にアセンブルします。
一方、UDPの場合、受信側ホストは同じパケット(または実際にはパケット)を「データグラム」にアセンブルします。
「パケット」はレベル3(「ネットワーク層」)のものです。
「ストリーム」と「データグラム」はレベル4(「トランスポート層」のもの)です。
TCP / IPの場合、「ストリーム」と「データグラム」の両方にレイヤー7(「アプリケーションレイヤー」:HTTP / Web、SMTP /電子メール、FTP /ファイル転送などを含む)から直接アクセスします。
トランスポート層(TCP)からネットワーク層(IP)に向かってセグメントを受信すると、結果のデータユニットがパケットになるというのは本当ですか。
いいえ。
クライアントが見ることができるTCPの受信の唯一の単位はバイトです。TCPセグメントは1つ以上のIPパケットで構成されていますが、アプリケーションが認識できるのはバイトストリームだけです。アプリケーションがデータを表示する前に、すべてのセグメントとパケットの境界が失われます。いくつかのバイトを送信し、いくつかのバイトを受信します。すべてが同じストリームになることを除いて、それぞれ送信および受信された数の間に必ずしも強い相関関係はありません。
対照的に、UDPでは、送信と受信の両方の単位がデータグラムです。データグラムを送信し、そのまま到着した場合は、同じバイト数と同じバイト数を含む同じデータグラムを受け取ります。