WikiDer > Übertragungssteuerungsprotokoll

Transmission Control Protocol

Es Übertragungssteuerungsprotokoll (TCP) ist ein verbindungsorientiertes Protokoll die weit verbreitet ist für Datentransfer Über Netzwerkverbindungen auf der Internet und weiter Computernetzwerke wie lokale Netzwerke und Heimnetzwerke.

TCP/IP ist ein IP-Netzwerkprotokoll für stabile, zuverlässige Netzwerkverbindungen und keine verbindungsloses Protokoll wie UDP und GRE. TCP hat die Eigenschaft, Daten in einem Datenstrom senden zu können, wodurch gewährleistet wird, dass die Daten so ankommen, wie sie gesendet wurden, und kann eventuelle Kommunikationsfehler sowohl in den Daten selbst als auch in der Reihenfolge der Daten aufnehmen. Als Ergebnis, a Client-Anwendung TCP als Übertragungsprotokoll verwenden, berücksichtigen Sie nicht die zugrunde liegenden Netzwerkarchitektur und eventuelle Fehler in der Kommunikation.

TCP ist beschrieben in der RFC (Anfrage zur Stellungnahme) 793.

TCP vs. UDP

TCP wird daher hauptsächlich verwendet, wenn die Übertragung sicher und vollständig sein muss (einschließlich Dateiübertragungen); UDP wird verwendet, wenn die Übertragung schnell sein muss (Telefon, Video).

TCP-Header

Die folgenden Felder sind für Kopfzeilen von . definiert TCP-Segmente.Der für jedes Teil reservierte Speicherplatz ist in Klammern angegeben.

  • Quellport (16 Bit)
  • Zielport (oder Zielport) (16 Bit)
  • Sequenznummer (oder Sequenznummer) (32 Bit). Eine Zufallszahl, die der Kunde für den ersten Schritt des TCP-Handshake generiert, danach wird es vom Server mit jeder Transaktion inkrementiert, um für den Rest der TCP-Sitzung um die Reihenfolge der gesendeten und empfangenen Pakete zu organisieren.
  • Bestätigungsnummer (32 Bit). Eine Zahl, die vom Kunden bei jeder Transaktion erhöht wird und angibt, welche TCP-Segment zuletzt beim Kunden eingegangen ist.
  • Header-Länge (4 Bit). Die Länge des zusätzlichen Platzes für optionale Kopfzeilen wird durch die Kopfzeilenlänge bestimmt. Die optionalen Header werden unter anderem verwendet, um auf Verlust zu prüfen und anzugeben, wo genau die Daten beginnen. Die Header-Länge hat eine minimale Länge von 5 und eine maximale Länge von 15. Dies bestimmt die Anzahl 32-Bit-Wörter. (Ein Wort = eine Zeile). Da die Anzahl der 32-Bit-Wörter mit optionalen Headern 0 betragen kann, beträgt das Minimum 5 und das Maximum 15.
  • Reserviert (3 Bit). Dieses Feld ist für zukünftige Erweiterungen reserviert.
  • Flags (9 Bit von links nach rechts):
    • NS: Robust ECN-Signalisierung mit Schutz (Experimentell, siehe: RFC 3540[1]
    • CWR: Congestion Window Reduzierter Parameter. Spielt eine Rolle bei Explizite Staumeldung.
    • ECE: Explizite Staumeldung Echo. Spielt auch bei ECN eine Rolle. sehen RFC 3168[2] für weitere Informationen dazu.
    • URG: DRINGEND. Dieses Paket hat es eilig
    • ACK: ACKnowledge Rezept: Bestätigung. Ein Paket wurde bereits gesendet und dies ist Teil einer Sitzung
    • PSH: PuSH. "Schieben" Sie sofort einen beliebigen Puffer zum Empfänger.
    • RST: Zurücksetzen. Verbindung neu starten (Fehler aufgetreten).
    • SYN: Sequenznummern synchronisieren, d.h. neue Verbindung.
    • FIN: FINished: Ende der Verbindung.
  • Fenstergröße (16 Bit): Die Größe des Lesefensters, das über die Verbindung „gleitet“, dies ist für die Flusskontrolle. Der Empfänger kann angeben, wie viele Bytes er empfangen möchte. Dies soll eine Überlastung verhindern.
  • Prüfsumme (16 Bit): Eine vom gesamten Paket abhängige Zahl, um den Inhalt des gesamten Pakets zu überprüfen.
  • Zusätzliche Optionen (variable Anzahl von 32-Bit-Wörtern, daher ist die Angabe der Header-Länge erforderlich): Alle Arten von zusätzlichen Optionen, wie z. B. Zeitstempel.
  • Daten (variabel): die eigentlichen Daten (gekapselte Anwendungsprotokolldaten).
TCP-Header
Bit-Offset 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031
0gut TorZielhafen
32Sequenznummer
64Bestätigungsnummer
96Headerlänge/DatenoffsetReserve-
gefiedert
Nein
so
C
W
R
E
C
E
SIE
R
G
ein
C
k
p
so
huh
R
so
t
so
Ja
Nein
f
ich
Nein
Fenstergröße
128PrüfsummeDringende Datenreferenz
160
...
Optionen (wenn Kopfzeilenlänge > 5)
...

Pseudo-Header

TCP/IPv4-Pseudoheader

TCP-Pseudoheader (IPv4)
Bit-OffsetBits 0–34–78–1516–31
0Quelladresse
32Zieladresse
64NullenProtokollTCP-Länge
96gut TorZielport
128Ordnungsnummer
160Bestätigungsnummer
192Headerlänge/DatenoffsetReserviertIndikatorenFenster
224PrüfsummeDringlichkeit
256Optionen (optional)
256/288  
Termine
 

TCP/IPv6-Pseudo-Header

TCP-Pseudoheader (IPv6)
Bit-OffsetBits 0 - 78–1516–2324–31
0Quelladresse
32
64
96
128Zieladresse
160
192
224
256TCP-Länge
288NullenNächste Überschrift
320gut TorZielport
352Ordnungsnummer
384Bestätigungsnummer
416Headerlänge/DatenoffsetReserviertFlaggenFenster
448PrüfsummeDringlichkeit
480Optionen (optional)
480/512  
Termine
 

Netzwerkverbindungen

tcp-handshake.svg

Die Netzwerkverbindungen werden mittels TCP-Handshakes gemacht und am Ende von a TCP-Sitzung mit einem Sitzungsende-Handshake getrennt. Um eine TCP-Verbindung aufzubauen, Klient ein TCP-Paket an die Server mit dem sogenannten SYN-Flag. Wenn der Server die Verbindung akzeptiert, gibt er ein Paket mit einem SYN- und einem ACK-Flag zurück. Akzeptiert der Client dann den Server, sendet er ein Paket mit dem ACK-Flag an den Server. Danach können Pakete mit den richtigen Identifikationsnummern frei zwischen Client und Server ausgetauscht werden. Jedes Mal wird die Prüfsumme eines solchen Pakets überprüft und das Paket im Fehlerfall erneut angefordert. Wenn ein ganzes Paket verschwindet, wird dies durch die Bestätigungsnummer angezeigt. Sobald die Verbindung geschlossen ist, sendet der Server oder Client ein Paket mit dem FIN-Flag, die Gegenseite antwortet mit einem ACK-Flag und macht es in umgekehrter Richtung, sodass beide Parteien wissen, dass die Verbindung getrennt wurde.

Häfen

Das Portnummern werden von der IANA und unterteilt in sehr bekannt (Ports 0 bis 1023), Eingetragen (Ports 1024 bis 49151) und dynamisch/privat (Anschlüsse 49152-65535). Die Zuordnung ist eine Richtlinie und keine Regel.

Diagramm des Ablaufs einer TCP-Verbindung

Einige häufig verwendete Portnummern und ihr Anwendungsprotokoll sind: