Verwendet HTTPS TCP oder UDP?


Antworten:


41

HTTPS kann über jedes zuverlässige Stream- Transport-Protokoll ausgeführt werden. Normalerweise ist das TCP, aber es könnte auch SCTP sein. Es wird NICHT erwartet, dass es über UDP läuft, das ein unzuverlässiges Datagrammprotokoll ist (obwohl dies nicht der offizielle Name ist, ist dies eine gute Möglichkeit, sich daran zu erinnern, was es ist).

Die IANA-Zuweisung für UDP ist historisch. Zu dieser Zeit wurde fast jedem Protokoll sowohl die TCP- als auch die UDP-Portnummer zugewiesen, auch wenn erwartet wurde, dass immer nur eines verwendet wird. Es wurde diskutiert, die Portnummernregister zusammenzuführen und von nun an immer nur einen Port einem Protokoll zuzuweisen. Dies soll die Bereitstellung zukünftiger Transportprotokolle vereinfachen, für die ansonsten eigene Registrierungen erforderlich wären. Mir ist nicht bekannt, wie diese Diskussion zu Ende ging.


1
Die meisten SSL-Implementierungen machen es als SSL-Socket verfügbar, sodass TCP impliziert wird. Es kommt sehr selten vor, dass andere Transportmittel verwendet werden.
Nasko

3
Warnung: Diese Antwort ist veraltet (vor 9 Jahren). Werfen Sie einen Blick auf die Antwort zum QUIC-Protokoll, einer Implementierung, die Google für Chrome verwendet. Ich sage es nur.
ivanleoncz

33

Es verwendet TCP. Es wäre schwierig, es auf UDP auszuführen, ohne die Garantie, dass Pakete ankommen. Wenn die Pakete nicht ankommen, können die verschlüsselten Daten nicht entschlüsselt werden.


4
Oder wenn die Pakete nicht in der richtigen Reihenfolge ankommen, da UDP keine Vorkehrungen für die Neuordnung von Paketen wie TCP enthält.
3.

3
Ich gehe nicht auf -1, weil es ein wenig umständlich wäre, aber es ist erwähnenswert, dass es keinen Grund gibt, warum es nicht über UDP ausgeführt werden kann. Es mag untypisch sein, aber es ist möglich.
ThatGraemeGuy

12

Wenn Sie sich das nächste Mal fragen, ob ein Standardportdienst unter TCP oder UDP ausgeführt wird, können Sie sich / etc / services auf einem Linux-Computer ansehen.


3
Oder ein Windows-Computer in einer Eingabeaufforderung:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy

1
Meine / etc / services listet auch 80 / udp auf. Tatsächlich haben viele Dienste beide Ports zugewiesen, "nur für den Fall", denke ich.
Peter Eisentraut

8

Heutzutage kann HTTPS über TCP oder UDP ausgeführt werden.

Das neue "QUIC" -Protokoll soll mehrere TCP-Verbindungen durch eine gemultiplexte UDP-Verbindung ersetzen und kann daher SSL und HTTPS verarbeiten:

HTTPS → SSL → QUIC-Fluss → UDP → IP

QUIC wurde ursprünglich 2012 von Google entwickelt und wird derzeit von der IETF überprüft. Weitere Einzelheiten finden Sie in Wikipedia.


Dies sollte die Antwort sein, wenn man das aktuelle Szenario betrachtet. Beispielsweise konnte ich zu Versuchszwecken den HTTPS-Verkehr nur für eine bestimmte IP-Adresse unter Verwendung von DROPZielen in der mangleTabelle und unter Verwendung des udpProtokolls für die Regel blockieren .
Iwanleoncz

2
+1, hatte nicht erwartet, etwas zu lernen, wenn Sie auf diese Frage klicken.
T.Coutlakis

7

Mit dem OSI-Modell können Protokolle höherer Ebenen über jedes zugrunde liegende Protokoll ausgeführt werden, das die richtigen Dienste bereitstellt. HTTPS ist HTTP mit SSL / TLS-Sicherheit. SSL / TLS wird in der Regel über TCP ausgeführt, Sie können es jedoch auch über UDP, SCTP oder ein anderes Transportschichtprotokoll ausführen.

Tatsächlich werden HTTPS über TCP und UDP von IANA als "bekannt" definiert und verfügen über reservierte Portnummern.

Die "offiziellen" Kombinationen von Ports und Protokollen finden Sie unter http://www.iana.org/assignments/port-numbers .


1
In tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) erfahren Sie, wie SSL / TLS über UDP ausgeführt werden kann.
Pehrs

0
  • HTTPS ist HTTP über TLS über TCP über IP.
  • TLS über UDP ist eine spezielle Implementierung namens DTLS . wo das D für "Datagramm" steht
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.