Đây có thể là một câu hỏi ngớ ngẩn:
- HTTP có bao giờ sử dụng Giao thức dữ liệu người dùng không?
Ví dụ:
Nếu một người đang phát trực tuyến MP3 hoặc video bằng HTTP, nó có sử dụng UDP để truyền tải nội bộ không?
Đây có thể là một câu hỏi ngớ ngẩn:
Ví dụ:
Nếu một người đang phát trực tuyến MP3 hoặc video bằng HTTP, nó có sử dụng UDP để truyền tải nội bộ không?
Câu trả lời:
Điển hình là không.
Truyền trực tuyến hiếm khi được sử dụng qua chính HTTP và HTTP hiếm khi chạy qua UDP. Tuy nhiên, hãy xem RTP .
Đối với một cái gì đó như ví dụ của bạn (trong nhận xét), bạn không hiển thị một giao thức cho tài nguyên. Nếu giao thức đó là HTTP, thì tôi sẽ không gọi quyền truy cập là "streaming"; ngay cả khi nó theo một nghĩa nào đó là vì nó đang gửi một tài nguyên (có thể lớn) nối tiếp nhau qua một mạng. Thông thường, tài nguyên sẽ được lưu vào đĩa cục bộ trước khi được phát lại, vì vậy việc truyền mạng không phải là thông thường có nghĩa là "phát trực tuyến".
Tuy nhiên, như các nhà bình luận đã chỉ ra, chắc chắn có thể thực sự phát trực tuyến qua HTTP và điều đó được thực hiện bởi một số.
server push
, kết nối HTTP gửi MJPEG (nhiều hình ảnh JPEG) như một phần riêng biệt của phản hồi đa phần MIME đối với yêu cầu HTTP. Mỗi ảnh JPEG đến và thay thế ảnh trước đó trong màn hình. Nhưng bạn nói đúng @unwind, điều này hiếm khi được thực hiện ngày nay, vì RTP / RTSP hoạt động tốt hơn.
Từ RFC 2616 :
Giao tiếp HTTP thường diễn ra qua các kết nối TCP / IP. Cổng mặc định là TCP 80, nhưng các cổng khác có thể được sử dụng. Điều này không ngăn cản việc HTTP được triển khai trên bất kỳ giao thức nào khác trên Internet hoặc trên các mạng khác. HTTP chỉ giả định một phương tiện truyền tải đáng tin cậy; có thể sử dụng bất kỳ giao thức nào cung cấp các đảm bảo như vậy; ánh xạ của cấu trúc yêu cầu và phản hồi HTTP / 1.1 lên các đơn vị dữ liệu truyền tải của giao thức được đề cập nằm ngoài phạm vi của đặc tả này.
Vì vậy, mặc dù nó không nói rõ ràng như vậy, UDP không được sử dụng vì nó không phải là một "phương tiện truyền tải đáng tin cậy".
CHỈNH SỬA - gần đây hơn, giao thức QUIC (chính xác hơn là giao thức truyền tải giả hoặc giao thức lớp phiên) sử dụng UDP để thực hiện lưu lượng HTTP / 2.0 và phần lớn lưu lượng truy cập của Google đã sử dụng giao thức này. Nó hiện đang tiến tới tiêu chuẩn hóa dưới dạng HTTP / 3 .
Có thể chỉ là một chút rắc rối, nhưng UPnP sẽ sử dụng các thông báo được định dạng HTTP qua UDP để khám phá thiết bị.
METHOD
tập hợp khác nhau. Sau đó, UPnP sử dụng các giao thức khác (và thường là TCP) cho phần còn lại của những gì nó thực hiện.
Có, HTTP, như một giao thức ứng dụng, có thể được chuyển qua giao thức truyền tải UDP. Dưới đây là một số dịch vụ sử dụng UDP và một giao thức cơ bản để truyền dữ liệu HTTP và truyền trực tuyến đến người dùng cuối:
Bài viết này cung cấp thêm chi tiết về phát trực tuyến qua UDP và bộ siêu đáng tin cậy của nó, RUDP: UDP đáng tin cậy (RUDP): Giao thức truyền tải lớn tiếp theo?
Có thể một số thay đổi về chủ đề này với QUIC
QUIC (Quick UDP Internet Connections, phát âm là nhanh) là một giao thức mạng tầng vận chuyển thử nghiệm do Google phát triển và triển khai vào năm 2013. QUIC hỗ trợ một tập hợp các kết nối đa hợp giữa hai điểm cuối qua Giao thức dữ liệu người dùng (UDP) và được thiết kế để cung cấp bảo vệ an ninh tương đương với TLS / SSL, cùng với việc giảm độ trễ kết nối và truyền tải, đồng thời ước tính băng thông theo từng hướng để tránh tắc nghẽn. Mục tiêu chính của QUIC là tối ưu hóa các ứng dụng web hướng kết nối hiện đang sử dụng TCP.
Nếu bạn đang phát trực tuyến mp3 hoặc video có thể không nhất thiết phải qua HTTP, trên thực tế, tôi sẽ ngạc nhiên nếu có. Nó có thể sẽ là một giao thức khác qua TCP nhưng tôi không hiểu lý do gì khiến bạn không thể phát trực tuyến qua UDP.
Nếu bạn có, bạn phải lưu ý rằng không có gì chắc chắn rằng dữ liệu của bạn sẽ đến đầu bên kia, nhưng tôi có thể hiểu rằng bạn biết về UDP.
Để trả lời câu hỏi của bạn, Không, HTTP KHÔNG sử dụng UDP. Tuy nhiên, đối với những gì bạn đang nói, phát trực tuyến mp3 / video SẼ xảy ra qua UDP và theo ý kiến của tôi sẽ không bao giờ xảy ra qua HTTP.
Về lý thuyết, có thể sử dụng UDP cho http nhưng điều đó có thể có vấn đề. Ví dụ trong ví dụ của bạn, một mp3 hoặc một video đang được phát trực tuyến, sẽ có vấn đề về thứ tự và một số bit có thể bị thiếu vì UDP không được định hướng kết nối nên không có cơ chế truyền lại.
UDP is not connection oriented there is no retransmit mechanism
.
Tôi nghĩ rằng một số câu trả lời đang thiếu một điểm quan trọng. Lựa chọn giữa UDP và TCP không nên dựa trên loại dữ liệu (ví dụ: âm thanh hoặc video) hoặc liệu ứng dụng có bắt đầu phát nó trước khi quá trình truyền hoàn tất ("phát trực tuyến") hay không, mà là thời gian thực . Dữ liệu thời gian thực (theo định nghĩa) nhạy cảm với độ trễ, vì vậy nó thường được gửi tốt nhất qua RTP / UDP (Giao thức thời gian thực qua UDP).
Độ trễ không phải là vấn đề với dữ liệu được lưu trữ từ tệp, ngay cả khi đó là âm thanh và / hoặc video, vì vậy tốt nhất có thể nó nên được gửi qua TCP để mọi mất mát gói có thể được sửa chữa. Người gửi có thể đọc trước và giữ cho đường ống mạng luôn đầy và người nhận cũng có thể sử dụng nhiều bộ đệm phát để không bị gián đoạn bởi việc truyền lại TCP không thường xuyên hoặc mạng bị chậm lại trong giây lát. Trường hợp giới hạn là toàn bộ bản ghi được chuyển trước khi bắt đầu phát lại. Điều này giúp loại bỏ bất kỳ nguy cơ ngừng phát lại nào, nhưng thường không thực tế.
Vấn đề với TCP cho dữ liệu thời gian thực không phải là việc truyền lại quá nhiều bộ đệm quá mức vì TCP cố gắng sử dụng đường ống hiệu quả nhất có thể mà không liên quan đến độ trễ. UDP duy trì ranh giới gói ứng dụng và không có bộ nhớ trong, vì vậy nó không gây ra bất kỳ độ trễ nào.
Câu trả lời: Có
Lý do: Xem mô hình OSI.
Giải thích:
HTTP là một giao thức lớp ứng dụng, có thể được đóng gói bằng một giao thức sử dụng UDP, cung cấp giao tiếp đáng tin cậy nhanh hơn TCP. Daemon máy chủ và máy khách rõ ràng sẽ cần hỗ trợ giao thức mới này. Giao thức Quake 2 chứng minh rằng UDP có thể được sử dụng qua TCP để cung cấp cơ sở cho một hệ thống truyền thông có cấu trúc đảm bảo kiểm soát luồng (ví dụ: id chunk).
Thử chạy HTTP qua UDP với node-httpp:
http qua udp được sử dụng bởi một số triển khai trình theo dõi torrent (và hỗ trợ bởi tất cả các khách hàng chính)
(Đây là một câu hỏi cũ, nhưng nó xứng đáng có một câu trả lời được cập nhật.)
Trong tất cả khả năng , HTTP / 3 sẽ sử dụng giao thức QUIC , được mô tả là
vận chuyển đa hợp qua UDP
Vì vậy, từ một quan điểm nào đó , bạn có thể nói rằng HTTP / 3 sẽ sử dụng UDP.
UDP là giao thức tốt nhất để phát trực tuyến, vì nó không yêu cầu các gói bị thiếu như TCP. Và nếu nó không tạo ra yêu cầu, dòng chảy sẽ nhanh hơn nhiều và không có bất kỳ bộ đệm nào.
Ngay cả độ trễ luồng cũng ít hơn TCP. Đó là bởi vì TCP (là một giao thức an toàn hơn nhiều) tạo ra các yêu cầu về các gói bị thiếu, ghi đè các gói hiện có.
Vì vậy, TCP là một giao thức quá tiên tiến để được sử dụng để phát trực tuyến.