Wie schnell ist ein TCP Verbindungsaufbau?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Guten Abend Oniichan1992,

wie Du bereits weißt, wird beim TCP-Verbindungsaufbau ein sogenannter 3-Way-✋-Shake genutzt, der wie folgt abläuft:

Client💻                                     🖥️Server
          ------------- SYN ------------->
         <--------- SYN, ACK --------- 
          ------------- ACK ------------->

Die RTT ist die Zeit, die ein kleines Paket📦 vom Sender zum Empfänger und zurück benötigt. Du benötigst also eine halbe RTT für SYN (Client zu Server), eine weitere halbe RTT für die Bestätigung (ACK) und SYN (Server zu Client) und schlussendlich eine weitere halbe RTT für das ACK-Flag vom Client zum Server. Das ergibt zusammen:

0.5RTT + 0.5RTT +0.5RTT = 1.5RTT

Wenn Du nach dem Verbindungsaufbau Daten senden möchtest, kannst Du im Prinzip eine halbe RTT von diesem Ergebnis subtrahieren, da mit dem letzten ACK bereits Daten mitgeschickt werden können. Der reine Verbindungsaufbau benötigt aber formal 1.5RTT.

Ein Sicherheitsproblem könnte SYN-Flooding (DoS) darstellen, bei dem der Client eine sehr hohe Anzahl an SYN-Paketen an den Server schickt, jedoch nie ein finales ACK-Paket. Der Server hingegen wartet jedoch einen Timeout ab und kann so überlastet werden, da zu viele halboffene Verbindungen existieren, die Netzressourcen (Speicher) benötigen.

Ich hoffe, dass ich Dir damit weiterhelfen konnte!

Viele Grüße 

André, savest8 

Es wurde schon gesagt: 1,5 RTT. Und wie lange die dauern, hängt vom Netzwerk und den Kommunikationspartnern ab. Was soll jetzt ein Sicherheitsrisiko sein? Dass der Aufbau 1,5 RTT dauert? Nein, sicher nicht. TCP ist über verschiedene Wege angreifbar. SYN-Flooding wurde schon genannt, TCP Hijacking wäre eine weitere Möglichkeit für den Angriff. Oder auch das einschleusen von RST-Segmenten und noch einige Dinge mehr. Das alles hat jedoch nichts mit der Dauer des Verbindungsaufbaus zu tun.

Naja, der Aufbau einer TCP-Verbindung läuft ja so ab:

Client        Server

  1. SYN ->
  2. <-SYN/ACK
  3. ACK->


RTT ist ja die Zeitspanne zwischen Absenden eines Paketes, und dem erhalten einer Anwort. Daher sind es so gesehen 1,5 RTT.

Ein Problem kann dabei sogennantes SYN-Flooding (DoS) sein, wenn du das mit Sicherheitsrisiko meinst. Dabei sendet der Client viele SYN-Pakete an der Server, aber nie ein ACK-Paket zurück. Der Server wartet eine gewisse Zeit auf das ACK, und kann somit nach einer gewissen Zeit überlastet sein, da die vielen halboffenen Verbindungen Speicher benötigen.

Die schnelligkeit hängt neben der internetanbindung + latenz und hardware(Netzwerkkarten,router..., prozessor,ram ...), verkabelung ebenfalls von der software ab. Die unterschiedliche kernelversion kann u.U. wieder zeitliche differenzen im vergleich zum vor-/nachgänger aufweisen. Lässt sich meiner meinung nach nicht genau sagen. Ich verstehe nicht warum du nach nem sicherheitsrisiko fragst im bezug auf die schnelligkeit..? An sich ist tcp sehr gut wenn du wert dafauf legen willst das die pakete sicher ankommen in der richtigen Reihenfolge. Bei udp können sie durcheinander ankommen oder sogar garnicht..