Was fügt TCP / UDP zu "raw ip" hinzu?

18

Ich weiß, dass sowohl TCP als auch UDP auf IP aufbauen, und ich kenne die Unterschiede zwischen TCP und UDP, aber ich bin verwirrt darüber, was genau "rohe IP" ist. Wäre es fair zu sagen, dass sowohl TCP als auch UDP IP implementieren, aber diese IP an und für sich nicht in der Lage ist, Daten zu übertragen? Oder ist IP eine sehr untergeordnete Kommunikationsform, die durch TCP und UDP weiter abstrahiert wird?

John Dorian
quelle
2
Um einige der folgenden Kommentare zu erläutern (die nicht für eine vollständige Antwort aus Gründen der Klarheit ausreichen): IP ist ein Protokoll, das Daten transportiert. TCP oder UDP sind Protokolle, die auch Daten transportieren. TCP und UDP sitzen oft auf IP, sodass die Datennutzlast für IP TCP oder UDP sein kann. Ethernet wird häufig zum Übertragen von IP verwendet. So kann beispielsweise ein Ethernet-Frame ein IP-Paket als Datennutzlast tragen und dieses IP-Paket kann ein TCP-Segment als Nutzlast tragen und so weiter. Sie landen mit einem Stapel von Protokollen wie diesem goo.gl/1uEYtC
jwbensley
3
IP überträgt sicherlich Daten - es überträgt beispielsweise diese TCP / UDP-Pakete. Es ist jedoch normalerweise nicht anwendungsfähig. UDP ist ein sehr einfaches Protokoll über IP, fügt jedoch bereits Portnummern hinzu , sodass mehrere Dienste gleichzeitig UDP-Datenverkehr auf einem System verarbeiten können. Ansonsten hätten Sie nur so viele Dienste wie Sie IP-Adressen haben.
Luaan

Antworten:

23

IP ist ein Layer 3- Protokoll. TCP / UDP sind Layer 4- Protokolle. Sie dienen jeweils unterschiedlichen Zwecken.

Schicht 3 ist für die End-to-End-Zustellung zuständig . Seine einzige Funktion ist das Hinzufügen von allem, was zu einem Paket notwendig ist, um ein Paket von einem Host zu einem anderen zu bekommen.

Schicht 4 ist für die Service-to-Service-Lieferung zuständig . Seine einzige Funktion besteht darin, Datenströme zu trennen. Auf Ihrem Computer können mehrere Programme ausgeführt werden, die jeweils Bits an die Leitung senden / empfangen. IE: Sie könnten mehrere Browser-Registerkarten ausführen, Internetradio streamen, einen Download ausführen, einige legale Torrents ausführen, eine Chat-Anwendung verwenden usw. Alle diese empfangen Einsen und Nullen von der Leitung, und Schicht 4 trennt die einzelnen Datenströme von der einzigartige Anwendung, die sie benötigt. Hier ist eine Illustration:

L4 Datenströme trennen

IP kann ein Paket nicht an den richtigen Dienst / die richtige Anwendung senden. Und TCP / UDP kann kein Paket von einem Ende des Internets zum anderen übermitteln.

Sowohl TCP als auch IP arbeiten zusammen, um es beiden zu ermöglichen, das "Endziel" der Internetkommunikation zu erreichen.

Daten, die von einem Host zu einem anderen gelangen müssen, werden von den oberen Schichten des OSI-Modells generiert.

Diese Daten werden an L4 weitergegeben, der die Informationen hinzufügt, die für die Übermittlung der Daten von Dienst zu Dienst erforderlich sind, z. B. ein TCP-Header mit einem Quell- und einem Zielport. Der Daten- und der L4-Header werden nun als Segment bezeichnet.

Dann wird das Segment an L3 übergeben, das die Informationen hinzufügt, die erforderlich sind, um das Segment von Ende zu Ende zu liefern, wie ein IP-Header mit einer Quell- und Ziel-IP-Adresse. Der L3-Header und das Segment können nun als Paket bezeichnet werden.

Dieser Prozess wird als Einkapselung und Entkapselung (oder manchmal auch Entkapselung) bezeichnet. Hier ist eine Animation, wie es funktioniert:

Kapselung und Entkapselung, Verwendung mit Genehmigung von Practical Networking.net

Wenn dies keinen Sinn ergibt, empfehle ich, mehr über das OSI-Modell zu lesen und wie jede Schicht unterschiedliche Verantwortlichkeiten hat, die alle zusammenarbeiten, um ein Paket über das Internet zu transportieren .

Eddie
quelle
7
Beachten Sie, dass das Internet nur lose dem OSI-Modell folgt.
user253751
2
inside an IP header is usually a TCP or UDP headerist nicht korrekt, der TCP / UDP-Header befindet sich nicht im IP-Header, sondern im Datenteil des IP-Pakets.
Eborbob
"Seine einzige Funktion ist es, Datenströme zu trennen", während dies meistens für UDP zutrifft (es gibt auch eine Prüfsumme, aber meh), gilt dies sicherlich nicht für TCP.
Peter Green
1
@immibis Stimmt, aber ich muss erst noch sehen, wo das Verfolgen des OSI-Modells zu einer klaffenden Implementierung oder zu einem Verständnis von Travestie geführt hat. Zum größten Teil und insbesondere für jemanden, der sich neu mit Internet-Technologien befasst, ist es wertvoller, weiterhin an den Einschränkungen des OSI-Modells zu denken.
Eddie
@ Eborbob Ich kann sehen, wie es falsch ist, je nachdem, wie der Satz aussieht. Ehrlich gesagt, dieser ganze Absatz könnte ein neues Wort gebrauchen. Ich werde heute Abend versuchen, darauf zuzugreifen. Vielen Dank für den Hinweis.
Eddie
6

IP kann Daten problemlos übertragen. Das Problem ist, was passiert, wenn diese Daten am anderen Ende ankommen. Die einzigen Identifikationsinformationen sind die IP-Adressen der Hosts und eine Protokollnummer. Keiner von beiden bietet eine Möglichkeit, zu unterscheiden, für welchen Socket die Daten bestimmt sind.

Es ist für Programme möglich, IP direkt über sogenannte "Raw-Sockets" zu verwenden, aber das Fehlen eines geeigneten Mechanismus für die Entscheidung, welcher Socket Daten senden soll, wirft Sicherheits- und Leistungsprobleme auf (der Kernel muss die Daten an alle Raw-Sockets senden) für eine bestimmte Protokollnummer). Aus diesem Grund ist die Möglichkeit, "Raw Sockets" zu öffnen, normalerweise auf "root" (oder die entsprechende Plattform) beschränkt.

UDP ist eine recht minimale Schicht über IP. Es werden Portnummern hinzugefügt, um zu identifizieren, für welchen Socket die Daten bestimmt sind, und eine Prüfsumme (um beschädigte Pakete abzulehnen). Die Anwendung ist weiterhin dafür verantwortlich, mit verlorenen Paketen umzugehen, die Überlastung zu kontrollieren und die Daten in entsprechend große Pakete aufzuteilen.

TCP ist ein komplexeres Protokoll, das nicht nur Portnummern und Prüfsummen zur Verfügung stellt, sondern auch Byte-Streams in Pakete aufteilt, dann an ihrem Ziel wieder zusammensetzt und Funktionen zur Überlastungskontrolle und Wiederherstellung bietet.

Peter Green
quelle
4

IP ist ein OSI-Layer-3-Protokoll, während TCP und UDP OSI-Layer-4-Protokolle sind. Als Layer-3-Protokoll kann IP viele verschiedene Layer-4-Protokolle tragen. TCP und UDP sind wahrscheinlich die häufigsten, aber nicht die einzigen. Layer-4-Protokolle werden von Anwendungen als End-to-End-Verbindungen verwendet. IP transportiert Layer-4-Protokolle von Netzwerk zu Netzwerk (Host zu Host). Layer-2-Protokolle transportieren wie Ethernet Layer-3-Protokolle in einem LAN.

Sie sollten das OSI-Modell untersuchen, sich jedoch darüber im Klaren sein, dass es sich um ein konzeptionelles Modell handelt und die reale Welt häufig nicht genau übereinstimmt.

Ron Maupin
quelle