Heute werden wir uns zunächst auf TCP konzentrieren. Früher im Kapitel über Schichten erwähnten wir einen wichtigen Punkt. Auf der Netzwerkebene und unten geht es mehr um Host -to -Host -Verbindungen, was bedeutet, dass Ihr Computer wissen muss, wo sich ein anderer Computer befindet, um eine Verbindung dazu herzustellen. Die Kommunikation in einem Netzwerk ist jedoch häufig eher Interprozesskommunikation als die Kommunikation zwischen Machine. Daher führt das TCP -Protokoll das Konzept des Ports ein. Ein Port kann nur durch einen Prozess besetzt werden, der eine direkte Kommunikation zwischen Bewerbungsprozessen für verschiedene Hosts bietet.
Die Aufgabe der Transportschicht besteht darin, direkte Kommunikationsdienste zwischen Anwendungsprozessen für verschiedene Hosts bereitzustellen, sodass sie auch als End-to-End-Protokoll bezeichnet wird. Die Transportschicht verbirgt die Kerndetails des Netzwerks und ermöglicht dem Anwendungsprozess so, als ob zwischen den beiden Transportschichteinheiten ein logischer End-to-End-Kommunikationskanal vorhanden wäre.
TCP steht für das Transmissionskontrollprotokoll und ist als verbindungsorientiertes Protokoll bekannt. Dies bedeutet, dass die beiden Prozesse vor einer Anwendung mit dem Senden von Daten an die andere beginnen können. Handshake ist ein logisch verbundener Prozess, der eine zuverlässige Übertragung und die geordnete Empfang von Daten gewährleistet. Während des Handschlags wird eine Verbindung zwischen den Quell- und dem Zielhost hergestellt, indem eine Reihe von Steuerpaketen austauschen und einige Parameter und Regeln vereinbart werden, um eine erfolgreiche Datenübertragung zu gewährleisten.
Was ist TCP? (MyLinking istNetzwerkhahnUndNetzwerkpaketbrokerkönnte sowohl TCP- als auch UDP -Pakete verarbeiten)
TCP (Transmission Control Protocol) ist ein verbindungsorientiertes, zuverlässiges Byt-Stream-Basis-Transportschichtkommunikationsprotokoll.
Verbindungsorientiert: Verbindungsorientiert bedeutet, dass die TCP-Kommunikation eins zu eins ist, dh Point-to-Point-End-to-End-Kommunikation, im Gegensatz zu UDP, das gleichzeitig Nachrichten an mehrere Hosts senden kann, sodass die Eins-zu-Viele-Kommunikation nicht erreicht werden kann.
Zuverlässig: Die Zuverlässigkeit von TCP stellt sicher, dass Pakete unabhängig von Änderungen in der Netzwerkverbindung zuverlässig an den Empfänger geliefert werden, wodurch das Protokollpaketformat von TCP komplexer wird als das von UDP.
Byte-Stream-basiert: Die Byte-Stream-basierte Natur von TCP ermöglicht die Übertragung von Nachrichten in beliebiger Größe und garantiert die Nachrichtenreihenfolge: Selbst wenn die vorherige Nachricht nicht vollständig empfangen wurde und die nachfolgenden Bytes empfangen wurden, liefert TCP sie nicht zur Bearbeitung an die Anwendungsschicht und lässt automatisch Duplikatpakete fallen.
Sobald Host A und Host B eine Verbindung hergestellt haben, muss die Anwendung nur die virtuelle Kommunikationslinie zum Senden und Empfangen von Daten verwenden, um die Datenübertragung zu gewährleisten. Das TCP -Protokoll ist für die Steuerung von Aufgaben wie Verbindungsantrieb, Trennung und Halten verantwortlich. Es ist zu beachten, dass wir hier sagen, dass die virtuelle Linie nur bedeutet, eine Verbindung herzustellen. Die TCP -Protokollverbindung zeigt nur an, dass die beiden Seiten die Datenübertragung starten und die Zuverlässigkeit der Daten sicherstellen können. Die Routing- und Transportknoten werden von den Netzwerkgeräten behandelt. Das TCP -Protokoll selbst befasst sich nicht mit diesen Details.
Eine TCP-Verbindung ist ein Full-Duplex-Dienst, was bedeutet, dass Host A und Host B Daten in einer TCP-Verbindung in beide Richtungen übertragen können. Das heißt, Daten können in einem bidirektionalen Fluss zwischen Host A und Host B übertragen werden.
TCP speichert Daten vorübergehend im Sendepuffer der Verbindung. Dieser Send-Puffer ist einer der Caches, die während des Drei-Wege-Handschlags eingerichtet sind. Anschließend sendet TCP die Daten im Sendencache zum entsprechenden Zeitpunkt an den Empfangscache des Zielhosts. In der Praxis hat jeder Peer einen Send -Cache und einen Empfangscache, wie hier gezeigt:
Der Send -Puffer ist ein Speicherbereich, der von der TCP -Implementierung auf der Absenderseite verwaltet wird, mit der Daten vorübergehend gespeichert werden sollen. Wenn der Drei-Wege-Handshake durchgeführt wird, um eine Verbindung herzustellen, wird der Send-Cache eingerichtet und zum Speichern von Daten verwendet. Der Send -Puffer wird dynamisch entsprechend der Netzwerküberlastung und dem Feedback des Empfängers angepasst.
Ein Empfangspuffer ist ein Speicherbereich, der von der TCP -Implementierung auf der Empfangsseite verwaltet wird, mit der die empfangenen Daten vorübergehend gespeichert werden. TCP speichert die empfangenen Daten im Empfangscache und wartet darauf, dass die obere Anwendung sie lesen kann.
Beachten Sie, dass die Größe des Send -Cache und des Empfangs -Cache begrenzt ist, wenn der Cache voll ist, kann TCP einige Strategien wie Überlastungsregelung, Durchflussregelung usw. anwenden, um eine zuverlässige Datenübertragung und Netzwerkstabilität sicherzustellen.
In Computernetzwerken wird die Datenübertragung zwischen Hosts mittels Segmente durchgeführt. Was ist ein Paketsegment?
TCP erstellt ein TCP -Segment oder ein Paketsegment, indem der eingehende Strom in Stücke aufgeteilt und TCP -Header zu jedem Stück hinzugefügt wird. Jedes Segment kann nur für eine begrenzte Zeitspanne übertragen werden und darf die maximale Segmentgröße (MSS) nicht überschreiten. Auf dem Weg nach unten verläuft ein Paketsegment durch die Linkschicht. Die Verbindungsschicht hat eine maximale Übertragungseinheit (MTU), die die maximale Paketgröße ist, die die Datenverbindungsschicht durchlaufen kann. Die maximale Übertragungseinheit hängt normalerweise mit der Kommunikationsschnittstelle zusammen.
Was ist der Unterschied zwischen MSS und MTU?
In Computernetzwerken ist die hierarchische Architektur sehr wichtig, da sie die Unterschiede zwischen den verschiedenen Ebenen berücksichtigt. Jede Schicht hat einen anderen Namen; In der Transportschicht werden die Daten als Segment bezeichnet und in der Netzwerkschicht werden die Daten als IP -Paket bezeichnet. Daher kann die maximale Übertragungseinheit (MTU) als maximale IP -Paketgröße betrachtet werden, die von der Netzwerkschicht übertragen werden kann, während die maximale Segmentgröße (MSS) ein Transportschichtkonzept ist, das sich auf die maximale Datenmenge bezieht, die zu einem Zeitpunkt von einem TCP -Paket übertragen werden kann.
Beachten Sie, dass die IP -Fragmentierung in der Netzwerkschicht, wenn die maximale Segmentgröße (MSS) größer als die maximale Übertragungseinheit (MTU) ist, und TCP die größeren Daten nicht in Segmente aufteilt, die für die MTU -Größe geeignet sind. Auf der Netzwerkebene wird ein Abschnitt vorhanden, der der IP -Ebene gewidmet ist.
TCP -Paketsegmentstruktur
Erforschen wir das Format und den Inhalt von TCP -Headern.
Sequenznummer: Eine vom Computer generierte Zufallszahl, die bei der Erstellung der TCP -Verbindung als Anfangswert als Anfangswert hergestellt wird, und die Sequenznummer über das SYN -Paket an den Empfänger gesendet wird. Während der Datenübertragung erhöht der Absender die Sequenznummer entsprechend der gesendeten Datenmenge. Der Empfänger beurteilt die Reihenfolge der Daten gemäß der empfangenen Sequenznummer. Wenn die Daten aus der Reihenfolge gefunden werden, ordnet der Empfänger die Daten neu, um die Reihenfolge der Daten sicherzustellen.
Bestätigungsnummer: Dies ist eine Sequenznummer, die in TCP verwendet wird, um den Erhalt von Daten zu bestätigen. Es zeigt die Sequenznummer der nächsten Daten an, die der Absender erwartet. In einer TCP -Verbindung stellt der Empfänger fest, welche Daten erfolgreich auf der Sequenznummer des empfangenen Datenpaketsegments empfangen wurden. Wenn der Empfänger die Daten erfolgreich erhält, sendet er ein ACK -Paket an den Absender, der die Bestätigungsnummer für Bestätigungsbestätigungen enthält. Nach Erhalt des ACK -Pakets kann der Absender bestätigen, dass die Daten vor der Anerkennung der Antwortnummer erfolgreich empfangen wurden.
Die Kontrollbits eines TCP -Segments enthalten Folgendes:
ACK -Bit: Wenn dieses Bit 1 ist, bedeutet dies, dass das Feld Bestätigungsantworten gültig ist. TCP gibt an, dass dieses Bit auf 1 gesetzt werden muss, mit Ausnahme von SYN -Paketen, wenn die Verbindung ursprünglich hergestellt wird.
Erstmals: Wenn dieses Bit 1 ist, zeigt es an, dass die TCP -Verbindung eine Ausnahme gibt und die Verbindung gezwungen werden muss, getrennt zu werden.
Syn bit: Wenn dieses Bit auf 1 gesetzt ist, bedeutet dies, dass die Verbindung hergestellt und der Anfangswert der Sequenznummer im Feld Sequenznummer festgelegt wird.
Finnbit: Wenn dieses Bit 1 ist, bedeutet dies, dass in Zukunft keine Daten mehr gesendet werden und die Verbindung erwünscht ist.
Die verschiedenen Funktionen und Eigenschaften von TCP werden durch die Struktur von TCP -Paketsegmenten verkörpert.
Was ist UDP? (MyLinking istNetzwerkhahnUndNetzwerkpaketbrokerkönnte sowohl TCP- als auch UDP -Pakete verarbeiten)
User Datagram Protocol (UDP) ist ein verbindungsloses Kommunikationsprotokoll. Im Vergleich zu TCP liefert UDP keine komplexen Kontrollmechanismen. Mit dem UDP -Protokoll können Anwendungen eingekapselte IP -Pakete direkt senden, ohne eine Verbindung herzustellen. Wenn der Entwickler UDP anstelle von TCP verwendet, kommuniziert die Anwendung direkt mit der IP.
Der vollständige Name des UDP -Protokolls ist User Datagram Protocol, und sein Header beträgt nur acht Bytes (64 Bit), was sehr präzise ist. Das Format des UDP -Headers lautet wie folgt:
Ziel- und Quellports: Ihr Hauptzweck ist es, anzutragen, welcher Prozess UDP Pakete senden soll.
Paketgröße: Das Feld der Paketgröße hält die Größe des UDP -Headers plus die Größe der Daten
Überprüfung: Entworfen, um eine zuverlässige Bereitstellung von UDP -Headern und -Daten sicherzustellen. Die Rolle der Überprüfung besteht darin, festzustellen, ob ein Fehler oder eine Korruption während der Übertragung eines UDP -Pakets aufgetreten ist, um die Integrität der Daten zu gewährleisten.
Unterschiede zwischen TCP und UDP bei MyLinking'sNetzwerkhahnUndNetzwerkpaketbrokerkönnte sowohl TCP- als auch UDP -Pakete verarbeiten
TCP und UDP unterscheiden sich in den folgenden Aspekten:
Verbindung: TCP ist ein verbindungsorientiertes Transportprotokoll, für das eine Verbindung hergestellt werden muss, bevor Daten übertragen werden können. UDP hingegen benötigt keine Verbindung und kann Daten sofort übertragen.
Serviceobjekt: TCP ist ein Eins-zu-Eins-Zwei-Punkte-Dienst, dh in einer Verbindung hat nur zwei Endpunkte, die miteinander kommunizieren können. UDP unterstützt jedoch eins zu eins, eins-zu-Viele und viele interaktive Kommunikation, die gleichzeitig mit mehreren Hosts kommunizieren können.
Zuverlässigkeit: TCP bietet den Service der Zuverlässigkeit von Daten und der Sicherstellung, dass die Daten fehlerfrei, verlustfrei, nicht duplikat sind und auf Bedarf eintreffen. UDP hingegen macht seine beste Anstrengung und garantiert keine zuverlässige Lieferung. UDP kann während der Übertragung unter Datenverlust und anderen Situationen leiden.
Überlastungsregelung, Flusskontrolle: TCP verfügt über Überlastungsregelungs- und Durchflusssteuerungsmechanismen, mit denen die Datenübertragungsrate gemäß den Netzwerkbedingungen anpassen kann, um die Sicherheit und Stabilität der Datenübertragung sicherzustellen. UDP verfügt über keine Überlastungsregelungs- und Durchflusskontrollmechanismen, selbst wenn das Netzwerk sehr überlastet ist, nimmt es keine Anpassungen an der UDP -Sendungsrate vor.
Kopfball über Kopf: TCP hat eine lange Headerlänge, typischerweise 20 Bytes, was zunimmt, wenn Optionsfelder verwendet werden. UDP hingegen hat einen festen Header von nur 8 Bytes, sodass UDP einen unteren Kopfball über Kopf hat.
TCP- und UDP -Anwendungsszenarien:
TCP und UDP sind zwei verschiedene Transportschichtprotokolle und weisen einige Unterschiede in den Anwendungsszenarien auf.
Da TCP ein verbindungsorientiertes Protokoll ist, wird es hauptsächlich in Szenarien verwendet, in denen eine zuverlässige Datenbereitstellung erforderlich ist. Einige gemeinsame Anwendungsfälle umfassen:
FTP -Dateiübertragung: TCP kann sicherstellen, dass Dateien während der Übertragung nicht verloren und beschädigt sind.
Http/https: TCP sorgt für die Integrität und Korrektheit von Webinhalten.
Da UDP ein verbindungsloses Protokoll ist, bietet es keine Zuverlässigkeitsgarantie, hat jedoch die Eigenschaften von Effizienz und Echtzeit. UDP ist für die folgenden Szenarien geeignet:
Niedrigpaketverkehr wie DNS (Domainnamensystem): DNS -Abfragen sind normalerweise kurze Pakete, und UDP kann sie schneller abschließen.
Multimedia -Kommunikation wie Video und Audio: Für die Multimedia-Übertragung mit hohen Echtzeitanforderungen kann UDP eine geringere Latenz liefern, um sicherzustellen, dass Daten rechtzeitig übertragen werden können.
Übertragungskommunikation: UDP unterstützt Eins-zu-Viele und viele zu viele Kommunikation und kann für die Übertragung von Broadcast-Nachrichten verwendet werden.
Zusammenfassung
Heute haben wir etwas über TCP gelernt. TCP ist ein verbindungsorientiertes, zuverlässiges Byte-Stream-Basis-Verkehrskommunikationsprotokoll. Es gewährleistet die zuverlässige Übertragung und die geordnete Aufnahme von Daten, indem sie Verbindung, Handschlag und Bestätigung festgelegt wird. Das TCP -Protokoll verwendet Ports, um die Kommunikation zwischen den Prozessen zu realisieren, und bietet direkte Kommunikationsdienste für Anwendungsprozesse, die auf verschiedenen Hosts ausgeführt werden. TCP-Verbindungen sind Full-Duplex, die gleichzeitige bidirektionale Datenübertragungen ermöglichen. Im Gegensatz dazu ist UDP ein verbindungsfreies Kommunikationsprotokoll, das keine Zuverlässigkeitsgarantien bietet und für einige Szenarien mit hohen Echtzeitanforderungen geeignet ist. TCP und UDP unterscheiden sich im Verbindungsmodus, Serviceobjekt, Zuverlässigkeit, Überlastungsregelung, Durchflussregelung und andere Aspekte und deren Anwendungsszenarien sind ebenfalls unterschiedlich.
Postzeit: Dezember 03-2024