HTTPS có sử dụng TCP hoặc UDP không?


Câu trả lời:


41

HTTPS có thể chạy trên bất kỳ giao thức truyền tải luồng đáng tin cậy nào . Thông thường đó là TCP, nhưng cũng có thể là SCTP. Nó không được mong đợi chạy trên UDP, một giao thức datagram không đáng tin cậy (thực tế, trong khi đó không phải là tên chính thức của nó, đó là một cách tốt để nhớ nó là gì).

Việc gán IANA cho UDP là lịch sử; tại thời điểm đó, gần như mọi giao thức đều được gán cả số cổng TCP và UDP, ngay cả khi dự kiến ​​rằng nó sẽ chỉ sử dụng một số. Đã có cuộc thảo luận về việc hợp nhất các cơ quan đăng ký số cổng và chỉ bao giờ gán một cổng cho một giao thức từ đây trở đi. Đó là để làm cho nó dễ dàng hơn để triển khai các giao thức vận chuyển trong tương lai mà nếu không cần đăng ký riêng của họ. Tôi không biết làm thế nào mà cuộc thảo luận kết thúc.


1
Hầu hết các triển khai SSL hiển thị nó dưới dạng ổ cắm SSL, do đó, nó ngụ ý TCP. Có những trường hợp rất hiếm khi sử dụng bất kỳ phương tiện giao thông nào khác.
Nasko

3
Cảnh báo: câu trả lời này đã lỗi thời (9 năm trước). Hãy xem câu trả lời về giao thức QUIC, đây là một triển khai mà Google sử dụng cho Chrome. Chỉ cần nói.
ivanleoncz

33

Nó sử dụng TCP. Sẽ rất khó để chạy nó trên UDP nếu không có sự đảm bảo của các gói đến. Nếu các gói không đến, dữ liệu được mã hóa sẽ không thể giải mã được.


4
Hoặc nếu các gói không theo thứ tự, vì UDP không chứa các quy định để sắp xếp lại các gói như TCP.
janneb

3
Sẽ không đến -1 bạn vì nó sẽ có một chút phạm vi, nhưng đáng chú ý là không có lý do gì nó không thể chạy qua UDP. Nó có thể không điển hình, nhưng nó có thể.
ThatGraemeGuy

12

Lần sau, nếu bạn tự hỏi liệu một dịch vụ cổng mặc định chạy trên tcp hay udp, bạn có thể xem / etc / services trên máy linux.


3
Hoặc một máy Windows, trong một dấu nhắc lệnh:find "https" %windir%\system32\drivers\etc\services
ThatGraemeGuy

1
My / etc / services cũng liệt kê 80 / udp. Trên thực tế, nhiều dịch vụ đã phân bổ cả hai cổng, "chỉ trong trường hợp" tôi đoán.
Peter Eisentraut

8

Ngày nay HTTPS có thể chạy trên cả TCP hoặc UDP.

Giao thức "QUIC" mới nhằm mục đích thay thế nhiều kết nối TCP bằng một kết nối UDP đa kênh và do đó có thể xử lý SSL và HTTPS:

HTTPS → SSL → luồng QUIC → UDP → IP

QUIC ban đầu được Google phát triển vào năm 2012 và đang được IETF xem xét. Để biết thêm chi tiết, xem Wikipedia.


Đây phải là câu trả lời, xem xét kịch bản hiện tại. Ví dụ: đối với mục đích thử nghiệm, tôi chỉ có thể chặn lưu lượng HTTPS cho một IP cụ thể, sử dụng DROPcác mục tiêu trên manglebảng, sử dụng udpgiao thức cho quy tắc.
ivanleoncz

2
+1, không mong đợi học được điều gì khi nhấp vào câu hỏi này.
T.Coutlakis

7

Mô hình OSI cho phép các giao thức lớp cao hơn chạy trên bất kỳ giao thức cơ bản nào cung cấp các dịch vụ chính xác. HTTPS là HTTP sử dụng bảo mật SSL / TLS. SSL / TLS thường chạy trên TCP, nhưng không có gì ngăn bạn chạy nó trên UDP, SCTP hoặc bất kỳ giao thức lớp vận chuyển nào khác.

Vì thực tế HTTPS trên TCP và UDP đều được IANA định nghĩa là "nổi tiếng" và có số cổng dành riêng.

Xem http://www.iana.org/assignments/port-numbers để biết các kết hợp cổng / giao thức "chính thức".


1
Xem ví dụ tools.ietf.org/html/rfc4347 (Bảo mật lớp vận chuyển Datagram) để biết cách SSL / TLS có thể chạy trên UDP.
pehrs

0
  • HTTPS là HTTP qua TLS qua TCP qua IP.
  • TLS trên UDP là một triển khai cụ thể được gọi là DTLS ; trong đó chữ D là viết tắt của "Datagram."
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.