Чи 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 без гарантії надходження пакетів. Якщо пакети не надійдуть, зашифровані дані не розшифруються.


4
Або якщо пакети виходять з ладу, оскільки UDP не містить положень для переупорядкування пакетів, таких як TCP.
janneb

3
Не збираюся до вас -1, тому що це було б трохи педантично, але варто зауважити, що немає причин, щоб він не міг перебігти UDP. Це може бути нетипово, але можливо.
ThatGraemeGuy

12

У наступний раз, якщо вам цікаво, чи працює служба порту за замовчуванням на tcp або udp, ви можете подивитися / etc / services на машині Linux.


3
Або машина з Windows, у командному рядку:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy

1
Мої / etc / служби також містять список 80 / udp. Насправді багато служб виділили обидва порти, я думаю, «про всяк випадок».
Пітер Ейзентравт

8

В даний час HTTPS може працювати вище TCP або UDP.

Новий протокол "QUIC" спрямований на заміну декількох TCP-з'єднань одним мультиплексованим UDP-з'єднанням, а отже, може обробляти SSL та HTTPS:

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

QUIC був спочатку розроблений Google у 2012 році та проходить перевірку IETF. Детальніше див. У Вікіпедії.


Це має бути відповіддю, враховуючи поточний сценарій. Наприклад, для експериментальних цілей я міг блокувати трафік 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 про "офіційні" поєднання портів / протоколів.


1
Дивіться приклад tools.ietf.org/html/rfc4347 (Datagram Transport Layer Security) для того, як SSL / TLS може працювати через UDP.
pehrs

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.