HTTPS использует TCP или UDP?

Ответы:

41

HTTPS может работать по любому надежному потоковому транспортному протоколу. Обычно это TCP, но это также может быть SCTP. Не предполагается, что он будет работать по протоколу UDP, который является ненадежным протоколом дейтаграмм (на самом деле, хотя это и не является его официальным названием, это хороший способ запомнить, что это такое).

Назначение IANA для UDP является историческим; в то время почти каждому протоколу были назначены номера портов TCP и UDP, даже если ожидалось, что он будет использовать только один из них. Было обсуждение слияния реестров номеров портов, и с тех пор только когда-либо назначать один порт одному протоколу. Это облегчает развертывание будущих транспортных протоколов, которые в противном случае потребовали бы собственных реестров. Я не знаю, как закончилось это обсуждение.

Эндрю МакГрегор
источник
1
Большинство реализаций SSL представляют его как сокет SSL, поэтому он подразумевает TCP. Есть очень редкие случаи использования любого другого транспорта.
Наско
3
Внимание: этот ответ устарел (9 лет назад). Взгляните на ответ о протоколе QUIC, который Google использует для Chrome. Просто говорю.
ivanleoncz
33

Использует TCP. Было бы сложно запустить его по UDP без гарантии поступления пакетов. Если пакеты не поступают, зашифрованные данные не будут расшифрованы.

sybreon
источник
4
Или, если пакеты прибывают не в порядке, поскольку UDP не содержит положений для переупорядочения пакетов, таких как TCP.
2010 года
3
Я не собираюсь -1 вас, потому что это будет немного педантично, но стоит отметить, что нет никаких причин, по которым он не может работать через UDP. Это может быть нетипично, но возможно.
ThatGraemeGuy
12

В следующий раз, если вам интересно, работает ли служба портов по умолчанию на tcp или udp, вы можете посмотреть / etc / services на машине linux.

Deimosfr
источник
3
Или машина Windows, в командной строке:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy
1
Мой / etc / services также перечисляет 80 / udp. На самом деле, многие службы выделили оба порта, «на всякий случай», я думаю.
Питер Айзентро
8

В настоящее время HTTPS может работать выше TCP или UDP.

Новый протокол «QUIC» предназначен для замены нескольких TCP-соединений одним мультиплексированным UDP-соединением и, следовательно, может обрабатывать SSL и HTTPS:

HTTPS → SSL → поток QUIC → UDP → IP

QUIC был первоначально разработан в 2012 году Google и проходит проверку IETF. Для получения более подробной информации см. Википедия.

JP Tosoni
источник
Это должен быть ответ, учитывая текущий сценарий. Например, в экспериментальных целях я мог блокировать только HTTPS-трафик для определенного IP-адреса, используя DROPцели на mangleтаблице, используя udpпротокол для правила.
ivanleoncz
2
+1, не ожидал что-то узнать при нажатии на этот вопрос.
Т.Кутлакис
7

Модель OSI позволяет протоколам более высокого уровня работать поверх любого базового протокола, предоставляя правильные услуги. HTTPS - это HTTP, использующий безопасность SSL / TLS. SSL / TLS обычно работает поверх TCP, но ничто не мешает вам запускать его по UDP, SCTP или любому другому протоколу транспортного уровня.

На самом деле HTTPS через TCP и UDP оба определены как «хорошо известные» IANA и имеют зарезервированные номера портов.

См. Http://www.iana.org/assignments/port-numbers для «официальных» комбинаций портов / протоколов.

pehrs
источник
1
Посмотрите, например, tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security), чтобы узнать, как SSL / TLS может работать по UDP.
pehrs
0
  • HTTPS - это HTTP через TLS через TCP через IP.
  • TLS over UDP - это конкретная реализация, называемая DTLS ; где D означает «датаграмма».
Серж Строобандт
источник