TCP / UDPは「raw IP」に何を追加しますか?


18

私はTCPとUDPの両方がIP上に構築されていることを知っています。TCPとUDPの違いは知っていますが、「raw ip」とは何かについては混乱しています。TCPとUDPの両方がIPを実装しているが、そのIP自体はデータを転送できないと言うのは公平でしょうか?または、IPは、TCPとUDPによってさらに抽象化された非常に低レベルの通信形式ですか?


2
以下のいくつかのコメントをさらに進めるには(完全な答えには不十分で、明確にするためだけです):IPはデータを転送するプロトコルです。TCPまたはUDPは、データも転送するプロトコルです。TCPとUDPはしばしばIPの上にあるため、IPのデータペイロードはTCPまたはUDPになります。イーサネットは、IPの伝送によく使用されます。そのため、たとえば、イーサネットフレームはデータペイロードとしてIPパケットを搬送し、そのIPパケットはペイロードとしてTCPセグメントを搬送します。このようなプロトコルのスタックになりますgoo.gl/1uEYtC
jwbensley

3
IPは確かにデータを転送します。たとえば、TCP / UDPパケットを伝送します。ただし、通常はアプリケーションで使用できません。UDPはIP上で非常に生のプロトコルですが、すでにポート番号が追加されており、複数のサービスがシステム上でUDPトラフィックを同時に処理できるようになっています。それ以外の場合は、IPアドレスと同数のサービスしかありません。
ルアーン

回答:


23

IPはレイヤー3プロトコルです。TCP / UDPはレイヤー4プロトコルです。それぞれ異なる目的を果たします。

レイヤ3は、エンドツーエンド配信を担当します。その唯一の機能は、あるホストから別のホストにパケットを取得するために必要なものをパケットに追加することです。

レイヤー4は、サービス間の配信を担当します。その唯一の機能は、データストリームを分離することです。お使いのコンピューターでは、複数のプログラムを実行できます。各プログラムは、ワイヤ上でビットを送受信します。IE:複数のブラウザタブを実行したり、インターネットラジオをストリーミングしたり、ダウンロードを実行したり、法的トレントを実行したり、チャットアプリケーションを使用したりできます。これらはすべて、ワイヤから1と0を受け取り、レイヤー4は各データストリームをそれらを必要とするユニークなアプリケーション。以下に図を示します。

L4データストリームの分離

IPはパケットを正しいサービス/アプリケーションに配信できません。また、TCP / UDPはインターネットの一端から他端にパケットを配信できません。

TCPとIPの両方が連携して、インターネット通信の「最終目標」を達成できるようにします。

あるホストから別のホストに到達する必要があるデータは、OSIモデルの上位層によって生成されます。

このデータはL4に渡され、L4は、送信元ポートと宛先ポートを持つTCPヘッダーのように、サービスからサービスへデータを配信するために必要な情報を追加します。データとL4ヘッダーは、セグメントと呼ばれるようになりました。

次に、セグメントはL3に渡され、ソースと宛先IPアドレスを持つIPヘッダーのように、セグメントをエンドツーエンドで配信するために必要な情報が追加されます。L3ヘッダーとセグメントは、パケットと呼ばれるようになりました。

このプロセスは、カプセル化とカプセル化解除(またはカプセル化解除)として知られています。動作のアニメーションを次に示します。

カプセル化とカプセル化解除。PracticalNetworking.netの許可を得て使用

これが意味をなさない場合は、OSIモデル、および各層が異なる責任を持ち、すべてが連携してインターネット上でパケットを移動させる方法について詳しく読むことをお勧めします


7
インターネットはOSIモデルに緩やかに従うだけであることに注意してください。
user253751

2
inside an IP header is usually a TCP or UDP header正しくありません。TCP/ UDPヘッダーはIPヘッダー内ではなく、IPパケットのデータ部分内にあります。
エボルボブ

「その唯一の機能はデータストリームを分離することです」が、それはUDPにはほとんど当てはまりますが(チェックサムもありますが)、TCPには確かに当てはまりません。
ピーターグリーン

1
@immibis本当ですが、OSIモデルに従うことが実装のギャップやトラベスティの理解につながった場所はまだわかりません。ほとんどの場合、特にインターネットテクノロジーに新たに近づいている人にとっては、OSIモデルの制約に沿って考え続けることがより価値があります。
エディ

@Eborbob文をどのように見るかによって、どのように間違っているかがわかります。正直なところ、その段落全体が言い回しを使用する可能性があります。私は今夜、それに到達しようとします。それを指摘してくれてありがとう。
エディ

6

IPは問題なくデータを送信できますが、問題はそのデータがもう一方の端に到達したときに何が起こるかです。唯一の識別情報は、ホストのIPアドレスとプロトコル番号です。どちらもデータのソケットを区別する方法を提供しません。

「生のソケット」と呼ばれるものを介してプログラムが直接IPを使用することは可能ですが、どのソケットにデータを送信するかを決定するための適切なメカニズムがないため、セキュリティとパフォーマンスの懸念が生じます(カーネルはすべての生のソケットにデータを送信する必要があります)特定のプロトコル番号に対して)。このため、「生のソケット」を開く機能は通常、ルート(またはプラットフォームの同等)に制限されています。

UDPはIP上のかなり最小限のレイヤーです。ポート番号を追加して、データ用のソケットとチェックサム(破損したパケットを拒否する)を識別します。アプリケーションは、失われたパケットを処理し、輻輳を制御し、データを適切なサイズのパケットに分割する責任を負います。

TCPはより複雑なプロトコルであり、ポート番号とチェックサムの提供に加えて、バイトストリームをパケットに分割し、宛先で再構成し、輻輳制御および回復機能を提供します。


4

IPはOSIレイヤー3プロトコルですが、TCPとUDPはOSIレイヤー4プロトコルです。レイヤー3プロトコルとして、IPは多くの異なるレイヤー4プロトコルを伝送できます。TCPとUDPがおそらく最も一般的ですが、それだけではありません。レイヤー4プロトコルは、アプリケーションがエンドツーエンド接続として使用するものです。IPは、ネットワークからネットワークへ(ホストからホストへ)レイヤー4プロトコルを転送します。イーサネットのようなレイヤ2プロトコル、LAN上のトランスポートレイヤ3プロトコル。

OSIモデルを調査する必要がありますが、それは概念モデルであり、現実の世界はしばしば完全に一致しないことを認識してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.