Frage

Das könnte eine dumme Frage sein:

  • Verwendet HTTP jemals das User Datagram Protocol?

Zum Beispiel:

Wenn jemand MP3 oder Video über HTTP streamt, verwendet er intern UDP für den Transport?

War es hilfreich?

Lösung

Normalerweise nicht.

Streaming über HTTP selbst selten verwendet, und HTTP wird selten UDP laufen. Siehe jedoch RTP .

Für etwas wie Ihr Beispiel (im Kommentar), sind Sie nicht ein Protokoll für die Ressource zeigen. Wenn das Protokoll HTTP sein, dann würde ich nicht den Zugang „Streaming“ nennen; selbst wenn es in einem gewissen Sinne des Wortes ist, da es eine (möglicherweise große) Ressource seriell über ein Netzwerk schickt. Typischerweise wird die Ressource auf der lokalen Festplatte gespeichert werden, bevor wiedergegeben wird, so wird die Netzwerkübertragung nicht, was in der Regel durch „Streaming“ bedeutet.

Wie commen hat darauf hingewiesen, aber es ist sicherlich möglich, wirklich HTTP zu streamen, und das von einigen getan hat.

Andere Tipps

RFC 2616 :

  

HTTP-Kommunikation erfolgt in der Regel   über TCP / IP-Verbindungen. Das   Standard-Port ist TCP 80, aber auch andere   Ports können verwendet werden. Das tut nicht   schließt HTTP von umgesetzt   oben auf jedes andere Protokoll über die   Internet oder in anderen Netzwerken. HTTP   nur setzt einen zuverlässigen Transport;   irgendein Protokoll, das eine solche bietet   Garantien können verwendet werden; die Abbildungs   der HTTP / 1.1-Anforderungs- und Antwort   Strukturen, auf die Transportdaten   Einheiten des Protokolls in Frage   außerhalb des Geltungsbereichs dieses   Spezifikation.

Also auch wenn es nicht ausdrücklich so zu sagen hat, ist UDP nicht verwendet, da es kein „zuverlässiger Transport“ ist.

Bearbeiten - in jüngerer Zeit das QUIC Protokoll (was mehr ist ausschließlich ein pseudo-Transport oder ein Session-Layer-Protokoll) UDP nicht verwendet für die Durchführung HTTP / 2.0 Verkehrs und viel von Google-Traffic nutzt bereits diese Protokoll. Es ist noch nicht veröffentlicht als RFC, though.

Vielleicht nur ein bisschen Trivia, aber UPnP wird verwenden HTTP formatierte Nachrichten über UDP für die Geräteerkennung.

Ja, HTTP, als ein Anwendungsprotokoll kann über UDP-Transportprotokoll übertragen werden. Hier sind einige der Dienstleistungen, die UDP und ein zugrunde liegendes Protokoll für die Übertragung von HTTP-Daten und Streaming es an den Endverbraucher:

  • XMPP Jingle Raw UDP Transport Methode
  • Eine Reihe für Dienste, die UDT verwenden --- UDP-basierten Datenübertragungsprotokoll, das die eine Ober von UDP-Protokoll ist.
  • Der Transport Layer Security (TLS) Protokoll Einkapseln HTTP sowie der oben genannte XMPP und andere Anwendungsprotokolle haben eine Implementierung, die UDP in seiner Transportschicht verwendet; Diese Implementierung ist Datagram Transport Layer Security genannt (DTLS).
  • Push-Benachrichtigungen in Gnutella sind HTTP-Anfragen über den UDP-Transport gesendet.

Dieser Artikel enthält weitere Einzelheiten über das Streaming über UDP und seine zuverlässige Obermenge, die RUDP: Zuverlässige UDP (RUDP): The Next Big Streaming Protocol

?

Natürlich ist es nicht unbedingt über TCP übertragen werden. Ich implementierte HTTP auf UDP, für den Einsatz in der Satelliten-TV Broadcasting-Industrie.

Vielleicht zu diesem Thema einige Wechsel mit QUIC

  

QUIC (Quick UDP Internetverbindungen ausgesprochen schnell) ist ein experimentelles Transportschicht Netzwerkprotokoll, das von Google entwickelt und umgesetzt 2013 QUIC unterstützt eine Reihe von Multiplex-Verbindungen zwischen zwei Endpunkten über das User Datagram Protocol (UDP), und wurde entwickelt, um bieten Sicherheitsschutz entspricht TLS / SSL, zusammen mit reduzierten Verbindung und Transportlatenzzeit und Bandbreitenschätzung in jeder Richtung um Staus zu vermeiden. QUIC Hauptziel ist verbindungsorientierte Web-Anwendungen zu optimieren derzeit TCP.

Wenn Sie einen MP3-oder Video-Streaming, die nicht unbedingt über HTTP sein kann, in der Tat ich überrascht sein würde, wenn es war. Es wäre wahrscheinlich ein anderes Protokoll über TCP, aber ich sehe keinen Grund, warum Sie nicht UDP streamen können.

Wenn Sie das tun Sie zu berücksichtigen haben, dass es keine Gewissheit, dass Ihre Daten am anderen Ende ankommen, aber ich kann es nehmen, dass Sie wissen, über UDP.

Sie Frage zu beantworten: Nein, HTTP verwendet UDP nicht. Für das, was Sie aber, mp3 / Video-Streaming KÖNNTE über UDP sprechen passieren und meiner Meinung nach sollte nie über HTTP passieren.

Versuchen

laufen HTTP über UDP mit node-httpp:

https://github.com/InstantWebP2P/node-httpp

In der Theorie ja ist es möglich, UDP zu verwenden, um http aber die problematisch sein könnte. Sagen Sie zum Beispiel in Ihrem Beispiel ein mp3 oder ein Video gestreamt wird es Problem der Ordnung sein und einige Bits gehen könnten fehlen als UDP nicht verbindungsorientiert ist es keine Neuübertragung Mechanismus ist.

Die Antwort: Ja

. Grund: Sehen Sie das OSI-Modell

Explaination:

HTTP ist ein Protokoll der Anwendungsschicht, die mit einem Protokoll verkapselt werden könnte, die UDP verwendet und bieten wohl schneller zuverlässige Kommunikation als TCP. Der Server-Daemon und Client müßte jedoch dieses neue Protokoll unterstützen. Beben 2-Protokoll zeigt, dass UDP-über-TCP kann verwendet werden, um eine Basis für ein strukturiertes Kommunikationssystem bereitzustellen, die Versicherung Flusssteuerung (z.B. chunk ids).

http über udp wird von einigen Torrent-Tracker-Implementierungen (und supporteb von allen Hauptkunden) verwendet

Ich denke, bei einigen Antworten fehlt ein wichtiger Punkt.Die Wahl zwischen UDP und TCP sollte nicht Abhängig von der Art der Daten (z. B. Audio oder Video) oder davon, ob die Anwendung mit der Wiedergabe beginnt, bevor die Übertragung abgeschlossen ist („Streaming“), sondern davon, ob dies der Fall ist Echtzeit.Echtzeitdaten sind (per Definition) verzögerungsempfindlich und werden daher oft am besten über RTP/UDP (Real Time Protocol over UDP) gesendet.

Verzögerungen stellen bei gespeicherten Daten aus einer Datei kein Problem dar, selbst wenn es sich um Audio- und/oder Videodaten handelt. Daher ist es wahrscheinlich am besten, sie über TCP zu senden, damit etwaige Paketverluste korrigiert werden können.Der Absender kann vorauslesen und die Netzwerkleitung voll halten, und der Empfänger kann auch viel Playout-Puffer nutzen, sodass er nicht durch gelegentliche TCP-Neuübertragungen oder eine vorübergehende Netzwerkverlangsamung unterbrochen wird.Der Grenzfall besteht darin, dass die gesamte Aufnahme übertragen wird, bevor die Wiedergabe beginnt.Dies eliminiert jegliches Risiko eines Wiedergabestillstands, ist jedoch häufig unpraktisch.

Das Problem bei TCP für Echtzeitdaten liegt weniger in der erneuten Übertragung als vielmehr in der übermäßigen Pufferung, da TCP versucht, die Pipe so effizient wie möglich zu nutzen, ohne Rücksicht auf die Latenz.UDP behält die Grenzen der Anwendungspakete bei und verfügt über keinen internen Speicher, sodass keine Latenz entsteht.

UDP ist das beste Protokoll für das Streaming, weil es für fehlende Pakete wie TCP keine Forderungen stellen. Und wenn es nicht Forderungen stellen, ist die Strömung wesentlich schneller und ohne Pufferung.

Auch der Strom Verzögerung ist kleiner als TCP. Das ist, weil TCP (als weitaus sicheres Protokoll) stellt Anforderungen für Pakete fehlen, überschreiben die bestehenden.

So TCP ist ein Protokoll zu fortgeschritten für Streaming verwendet werden.

(Dies ist eine alte Frage, aber es verdient eine aktualisierte Antwort.)

Aller Wahrscheinlichkeit , HTTP / 3 wird die QUIC Protokoll , die als

  

Multiplex-Transport über UDP

Also, von einem bestimmten Standpunkt aus , Sie, dass HTTP / 3 wird UDP verwenden sagen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top