HTTPS utilizza TCP o UDP?


Risposte:


41

HTTPS può essere eseguito su qualsiasi protocollo di trasporto stream affidabile . Normalmente è TCP, ma potrebbe anche essere SCTP. NON è previsto che venga eseguito su UDP, che è un protocollo datagram inaffidabile (in realtà, sebbene non sia il suo nome ufficiale, è un buon modo per ricordare di cosa si tratta).

L'assegnazione IANA per UDP è storica; al momento, a quasi tutti i protocolli venivano assegnati sia i numeri di porta TCP che UDP, anche se si prevedeva che ne avrebbe usato solo uno. Si è discusso di unire i registri dei numeri di porta e di assegnare da qui in poi solo una porta a un protocollo. Questo per rendere più semplice l'implementazione di protocolli di trasporto futuri che altrimenti richiederebbero i propri registri. Non sono a conoscenza di come si è conclusa la discussione.


1
La maggior parte delle implementazioni SSL lo espongono come socket SSL, quindi implica TCP. Ci sono casi molto rari di utilizzo di qualsiasi altro trasporto.
Nasko,

3
Attenzione: questa risposta è obsoleta (9 anni fa). Dai un'occhiata alla risposta sul protocollo QUIC, che è un'implementazione che Google utilizza per Chrome. Sto solo dicendo.
Ivanleoncz,

33

Usa TCP. Sarebbe difficile eseguirlo su UDP senza la garanzia di pacchetti in arrivo. Se i pacchetti non arrivano, i dati crittografati non saranno decifrabili.


4
O se i pacchetti arrivano fuori servizio, poiché UDP non contiene disposizioni per il riordino dei pacchetti come TCP.
janneb,

3
Non ti -1 perché sarebbe un po 'pedante, ma vale la pena notare che non c'è motivo per cui non possa essere investito su UDP. Può essere atipico, ma è possibile.
ThatGraemeGuy

12

Per la prossima volta, se ti chiedi se un servizio porta predefinito viene eseguito su tcp o udp, puoi guardare / etc / services su una macchina linux.


3
O una macchina Windows, in un prompt dei comandi:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy

1
Il mio / etc / services elenca anche 80 / udp. In realtà, molti servizi hanno assegnato entrambe le porte, "per ogni evenienza" credo.
Peter Eisentraut,

8

Oggi HTTPS può essere eseguito su TCP o UDP.

Il nuovo protocollo "QUIC" mira a sostituire più connessioni TCP con una connessione UDP multiplex e quindi può gestire SSL e HTTPS:

HTTPS → SSL → Flusso QUIC → UDP → IP

QUIC è stato originariamente sviluppato nel 2012 da Google ed è in fase di revisione IETF. Per maggiori dettagli, vedi Wikipedia.


Questa dovrebbe essere la risposta, considerando lo scenario attuale. Ad esempio, a scopo sperimentale, ho potuto bloccare il traffico HTTPS solo per un IP specifico, usando DROPtarget sulla mangletabella, usando il udpprotocollo per la regola.
Ivanleoncz,

2
+1, non mi aspettavo di imparare qualcosa quando si clicca su questa domanda.
T.Coutlakis,

7

Il modello OSI consente a protocolli di livello superiore di funzionare su qualsiasi protocollo sottostante fornendo i servizi corretti. HTTPS è HTTP che utilizza la sicurezza SSL / TLS. SSL / TLS in genere viene eseguito su TCP, ma non c'è nulla che possa impedirti di eseguirlo su UDP, SCTP o qualsiasi altro protocollo del livello di trasporto.

Di fatto HTTPS su TCP e UDP sono entrambi definiti "ben noti" da IANA e hanno numeri di porta riservati.

Vedi http://www.iana.org/assignments/port-numbers per le combinazioni di porte / protocollo "ufficiali".


1
Vedi ad esempio tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) per come SSL / TLS può funzionare su UDP.
pehrs

0
  • HTTPS è HTTP su TLS su TCP su IP.
  • TLS over UDP è un'implementazione specifica chiamata DTLS ; dove la D sta per "Datagramma".
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.