Bu aptalca bir soru olabilir:
- HTTP, Kullanıcı Datagram Protokolünü hiç kullanır mı?
Örneğin:
HTTP kullanarak MP3 veya video akışı yapılıyorsa, dahili olarak taşıma için UDP kullanıyor mu?
Bu aptalca bir soru olabilir:
Örneğin:
HTTP kullanarak MP3 veya video akışı yapılıyorsa, dahili olarak taşıma için UDP kullanıyor mu?
Yanıtlar:
Tipik olarak hayır.
Akış nadiren HTTP'nin kendisi üzerinden kullanılır ve HTTP nadiren UDP üzerinden çalıştırılır. Bununla birlikte, RTP'ye bakın .
Örneğiniz gibi bir şey için (yorumda), kaynak için bir protokol göstermiyorsunuz. Bu protokol HTTP olsaydı, o zaman erişimi "akış" olarak adlandırmazdım; kelimenin bir anlamıyla bir ağ üzerinden seri olarak (muhtemelen büyük) bir kaynak gönderdiği için olsa bile. Tipik olarak, kaynak oynatılmadan önce yerel diske kaydedilir, bu nedenle ağ aktarımı genellikle "akış" ile kastedilen değildir.
Yorumcuların da belirttiği gibi, yine de HTTP üzerinden akış yapmak kesinlikle mümkündür ve bu bazıları tarafından yapılır.
server push
, HTTP bağlantısının her biri HTTP isteğine bir MIME çok parçalı yanıtının ayrı bir parçası olarak MJPEG (birden çok JPEG görüntüsü) gönderdiği yer vardı. Her JPEG görüntüsü gelir ve ekranda öncekinin yerini alır. Ama haklısın @unwind, bu bugün nadiren yapılıyor çünkü RTP / RTSP daha iyi çalışıyor.
Gönderen RFC 2616 :
HTTP iletişimi genellikle TCP / IP bağlantıları üzerinden gerçekleşir. Varsayılan bağlantı noktası TCP 80'dir, ancak diğer bağlantı noktaları kullanılabilir. Bu, HTTP'nin İnternet'teki veya diğer ağlardaki diğer protokollerin üzerine uygulanmasını engellemez. HTTP yalnızca güvenilir bir aktarım olduğunu varsayar; bu tür garantiler sağlayan herhangi bir protokol kullanılabilir; HTTP / 1.1 talebinin ve yanıt yapılarının söz konusu protokolün taşıma veri birimleri ile eşleştirilmesi bu spesifikasyonun kapsamı dışındadır.
Yani açıkça söylemese de, UDP "güvenilir bir taşıma" olmadığı için kullanılmıyor.
DÜZENLEME - daha yakın zamanlarda, QUIC protokolü (daha kesin olarak bir sözde aktarım veya bir oturum katmanı protokolüdür) HTTP / 2.0 trafiğini taşımak için UDP kullanır ve Google'ın trafiğinin çoğu zaten bu protokolü kullanır. Şu anda HTTP / 3 olarak standardizasyona doğru ilerliyor .
Belki biraz trivia, ancak UPnP, cihaz keşfi için UDP üzerinden HTTP formatlı mesajları kullanacaktır.
METHOD
set farklı. Bundan sonra UPnP, yaptığı işin geri kalanı için diğer protokolleri (ve genellikle TCP'yi) kullanır.
Evet, HTTP, bir uygulama protokolü olarak, UDP aktarım protokolü üzerinden aktarılabilir. HTTP verilerini aktarmak ve son kullanıcıya yayınlamak için UDP ve temel bir protokol kullanan hizmetlerden bazıları şunlardır:
Bu makale, UDP ve onun güvenilir üst kümesi olan RUDP üzerinden akış hakkında daha fazla ayrıntı içerir: Güvenilir UDP (RUDP): Bir Sonraki Büyük Akış Protokolü?
QUIC ile bu konuda biraz değişiklik olabilir
QUIC (Hızlı UDP İnternet Bağlantıları, hızlı olarak telaffuz edilir), Google tarafından geliştirilen ve 2013'te uygulanan deneysel bir aktarım katmanı ağ protokolüdür. QUIC, Kullanıcı Datagram Protokolü (UDP) üzerinden iki uç nokta arasında bir dizi çoklanmış bağlantıyı destekler ve güvenlik koruması sağlamak için tasarlanmıştır TLS / SSL'ye eşdeğer, düşük bağlantı ve aktarım gecikmesi ve tıkanıklığı önlemek için her yönde bant genişliği tahmini. QUIC'in ana hedefi, şu anda TCP kullanan bağlantı odaklı web uygulamalarını optimize etmektir.
HTTP üzerinden olması gerekmeyen bir mp3 veya video akışı yapıyorsanız, aslında olsaydı şaşırırdım. Muhtemelen TCP üzerinden başka bir protokol olabilir, ancak UDP üzerinden akış yapamamanız için hiçbir neden göremiyorum.
Bunu yaparsanız, verilerinizin diğer uca ulaşacağına dair hiçbir kesinlik olmadığını hesaba katmanız gerekir, ancak UDP hakkında bilgi sahibi olduğunuza bakabilirim.
Sorunuza cevap vermek gerekirse, Hayır, HTTP UDP KULLANMAZ. Yine de bahsettiğiniz şey için, mp3 / video akışı UDP üzerinden OLABİLİR ve bence asla HTTP üzerinden gerçekleşmemelidir.
Teoride evet, http için UDP kullanmak mümkündür, ancak bu sorunlu olabilir. Örneğin, örneğinizde bir mp3 veya video akışı yapıldığını varsayalım, sıralama sorunu olacaktır ve UDP bağlantı odaklı olmadığından yeniden iletim mekanizması olmadığı için bazı bitler kaybolabilir.
UDP is not connection oriented there is no retransmit mechanism
.
Sanırım bazı cevaplarda önemli bir nokta eksik. UDP ve TCP arasındaki seçim gerektiğini değil (örneğin, ses veya video) veya uygulama transferi ( "akış") tamamlanmadan önce çalmaya başlar olsun verilerin türüne göre, ama öyle olmadığını edilmesi gerçek zamanlı . Gerçek zamanlı veriler (tanım gereği) gecikmeye duyarlıdır, bu nedenle genellikle en iyi RTP / UDP (UDP üzerinden Gerçek Zamanlı Protokol) üzerinden gönderilir.
Gecikme, ses ve / veya video olsa bile, bir dosyadan depolanan verilerle ilgili bir sorun değildir, bu nedenle muhtemelen en iyi TCP üzerinden gönderilir, böylece herhangi bir paket kaybı düzeltilebilir. Gönderici önceden okuyabilir ve ağ borusunu dolu tutabilir ve alıcı da çok sayıda oynatma arabelleği kullanabilir, böylece ara sıra TCP yeniden iletimi veya anlık ağ yavaşlamasıyla kesintiye uğramaz. Sınırlayıcı durum, oynatma başlamadan önce tüm kaydın aktarıldığı durumdur. Bu, herhangi bir oynatma durması riskini ortadan kaldırır, ancak genellikle pratik değildir.
Gerçek zamanlı veriler için TCP ile ilgili sorun, yeniden iletimler değildir, çünkü TCP, boruyu gecikmeye bakılmaksızın olabildiğince verimli bir şekilde kullanmaya çalışır. UDP, uygulama paketi sınırlarını korur ve dahili depolaması yoktur, bu nedenle herhangi bir gecikmeye neden olmaz.
Cevap: evet
Nedeni: OSI modeline bakın.
Açıklama:
HTTP, UDP kullanan bir protokolle kapsüllenebilen ve muhtemelen TCP'den daha hızlı güvenilir iletişim sağlayan bir uygulama katmanı protokolüdür. Sunucu arka plan programı ve istemcinin bu yeni protokolü desteklemesi gerektiği açıktır. Quake 2 protokolü, UDP'nin, akış kontrolünü güvence altına alan yapılandırılmış bir iletişim sistemi için bir temel sağlamak üzere TCP üzerinden kullanılabileceğini kanıtlar (örn. Yığın kimlikleri).
Node-httpp ile UDP üzerinden HTTP çalıştırmayı deneyin:
http üzerinden udp, bazı torrent izleyici uygulamaları tarafından kullanılır (ve tüm ana istemciler tarafından desteklenir)
(Bu eski bir sorudur, ancak güncellenmiş bir cevabı hak etmektedir.)
Büyük olasılıkla , HTTP / 3 şu şekilde tanımlanan QUIC protokolünü kullanacaktır:
UDP üzerinden çoklanmış taşıma
Yani belirli bir bakış açısıyla HTTP / 3'ün UDP kullanacağını söyleyebilirsiniz.
UDP, akış için en iyi protokoldür çünkü TCP gibi eksik paketler için talepte bulunmaz. Ve talepte bulunmazsa, akış çok daha hızlı ve herhangi bir tamponlama olmadan gerçekleşir.
Akış gecikmesi bile TCP'den daha azdır. Bunun nedeni, TCP'nin (çok daha güvenli bir protokol olarak) mevcut paketlerin üzerine yazarak eksik paketleri talep etmesidir.
Dolayısıyla TCP, akış için kullanılamayacak kadar gelişmiş bir protokoldür.