HTTPはUDPを使用しますか?


103

これはばかげた質問かもしれません:

  • HTTPはユーザーデータグラムプロトコルを使用しますか?

例えば:

HTTPを使用してMP3またはビデオをストリーミングしている場合、内部で転送にUDPを使用していますか?


「ウェブ」とはどういう意味ですか?ブラウザーを使用することを意味しますか?または公共のインターネットを介して?
2009

私が質問したいのは、someserver / somemusic.mp3のようなURLでホストされたmp3があるということです。これがクライアント、ブラウザ、デバイスなどにストリーミングされる場合、httpはこれをどのように転送しますか。以下の回答を正しく理解できれば、RTPに委任されます。
Sesh

ポート80 UDPもHTTP用に予約されています。HTTPが使用されているのを見たことがないので面白いと思います。
Joshua

1
IANA委員会はあなたが行うより柔軟な想像力を持っているので、それは予約されています。;-)彼らはちょうどそれのための良い使用があるかもしれないとイメージします。また、UDPのためではない予備ポート80に/ HTTPはそれだけで混乱原因ポート80の話でしょういくつかの他のUDPプロトコル用に開いたままだろう
ジェシー・チザム

回答:


42

通常はありません。

ストリーミングがHTTP自体で使用されることはほとんどなく、HTTPはUDPで実行されることはほとんどありません。ただし、RTPを参照してください。

(コメント内の)例として、リソースのプロトコルを示していません。そのプロトコルがHTTPである場合、私はアクセスを「ストリーミング」とは呼びません。これは、ある意味では、ネットワークを介して(おそらく大きな)リソースをシリアルに送信しているためです。通常、リソースは再生される前にローカルディスクに保存されるため、ネットワーク転送は通常「ストリーミング」が意味するものではありません。

しかし、コメンターが指摘したように、実際にHTTPを介してストリーミングすることは確かに可能であり、それは一部によって行われます。


16
明らかに間違っています。ストリーミングを妨げるHTTPには何もありません。専用プロトコルほど効率的ではありません。チャンクを使用してHTTP Dyanmicストリーミング:adobe.com/products/httpdynamicstreaming HTTP擬似ストリーミング:longtailvideo.com/support/jw-player/jw-player-for-flash-v5/...
スティーヴォー

14
YouTubeはhttp経由でストリーミングします。
番号

6
@ snowcrash09受け入れられているので、自分で削除することもできません。それは変だ。私はそれを書き直しました、私はそれが今問題を少なくすることを願っています。
アンワインド

1
HTTPとストリーミングについて熱狂的です-QuickTimeビデオの暗黒時代にさかのぼって、server pushHTTP接続はMJPEG(複数のJPEG画像)をそれぞれHTTPリクエストに対するMIMEマルチパート応答の個別の部分として送信していました。各JPEG画像が到着し、前の画像に置き換わります。しかし、あなたは正しい@unwindです。RTP/ RTSPがより適切に機能するため、これが今日行われることはほとんどありません。
Jesse Chisholm

3
@nos Youtubeはストリーミングしていません。ブラウザはファイルをキャッシュにダウンロードし、完全にダウンロードされる前にファイルから再生を開始します。これはストリーミングをシミュレートしますが、そうではありません。
SimonStiph 2015年

113

RFC 2616から:

HTTP通信は通常、TCP / IP接続を介して行われます。デフォルトのポートはTCP 80ですが、他のポートを使用することもできます。これは、HTTPがインターネットまたは他のネットワーク上の他のプロトコルの上に実装されることを排除するものではありません。HTTPは信頼できるトランスポートのみを前提としています。そのような保証を提供する任意のプロトコルを使用できます。問題のプロトコルのトランスポートデータユニットへのHTTP / 1.1要求および応答構造のマッピングは、この仕様の範囲外です。

したがって、明示的には述べていませんが、UDPは「信頼できるトランスポート」ではないため使用されません。

編集 -最近では、QUICプロトコル(厳密には疑似トランスポートまたはセッションレイヤープロトコル)はHTTP / 2.0トラフィックの伝送にUDPを使用しており、Googleのトラフィックの多くはすでにこのプロトコルを使用しています。現在、HTTP / 3としての標準化が進んでいます


TCP以外の接続を受け入れるように構成できるWebサーバーはありますか?
Spidey

1
TCPの代わりにSCTPプロトコルを使用するように、ここではpel.cis.udel.eduの apacheに変更があります。
nos

@nosうん、そしてGoogleにもSPDYがあります。ただし、どちらも信頼できる転送メカニズムです。
Alnitak

5
@Alnitak SPDYはアプリケーション層プロトコルであり、トランスポート層プロトコルではありません。
Wikiを

もちろん、あなたが正しい@WalkingWiki-そのコンテキストでは、SPDYはTCPではなくHTTPを置き換えます。
アルニタク

36

ちょっとした雑学かもしれませんが、UPnPはUDP経由でHTTP形式のメッセージを使用してデバイスを検出します。


4
より具体的には、UDPおよびHTTPのようなメッセージを使用するUPnPの部分はSSDP(Simple Service Discovery Protocol)と呼ばれます。メッセージの構造は同じですが、METHODセットが異なります。その後、UPnPは残りの処理に他のプロトコル(通常はTCP)を使用します。
Jesse Chisholm

20

はい、HTTPはアプリケーションプロトコルとして、UDPトランスポートプロトコルを介して転送できます。以下は、UDPと、HTTPデータを転送してエンドユーザーにストリーミングするための基になるプロトコルを使用するサービスの一部です。

  • XMPPのJingle Raw UDPトランスポート方式
  • UDTを使用するサービスの数--- UDPベースのデータ転送プロトコル。UDPプロトコルのスーパーセットです。
  • HTTPをカプセル化するトランスポート層セキュリティ(TLS)プロトコル、および上記のXMPPおよびその他のアプリケーションプロトコルには、トランスポート層でUDPを使用する実装があります。この実装は、Datagram Transport Layer Security(DTLS)と呼ばれます。
  • GNUTellaのプッシュ通知は、UDPトランスポートを介して送信されるHTTPリクエストです。

この記事には、UDPを介したストリーミングとその信頼できるスーパーセットであるRUDPの詳細が含まれています。信頼できるUDP(RUDP):次の大きなストリーミングプロトコルですか


1
別の質問:主要なWebブラウザは、WebページHTTP over UDPをサポートしていますか?
user2284570

はい。HTTPはアプリケーション層にあり、UDPはトランスポート層にあります。ブラウザはTCPまたはUDPパケットを書き込みません。また、IPパケットも書き込みません。これらはOSとドライバによって処理されます。イーサネット層は非常に低いため、この時点でMACに近いチップ内に配置できます。
yan bellavance 2016

@yanbellavance完全に不正解です。ブラウザーとWebサーバーは実際に生の TCPフレーム(実際にはUDPフレームも)を生成しませんが、使用するトランスポートを選択する必要があり、通常のHTTPの場合は常にTCPです。ただし、新しいQUIC疑似プロトコルはUDPを使用します。
Alnitak 2018

18

もちろん、必ずしもTCP経由で送信する必要はありません。衛星テレビ放送業界で使用するために、UDPの上にHTTPを実装しました。


6

多分QUICでこのトピックにいくつかの変更

QUIC(Quick UDP Internet Connections、発音クイック)は、Googleによって開発され、2013年に実装された実験的なトランスポート層ネットワークプロトコルです。QUICは、ユーザーデータグラムプロトコル(UDP)を介した2つのエンドポイント間の多重接続のセットをサポートし、セキュリティ保護を提供するように設計されましたTLS / SSLに相当し、接続とトランスポートのレイテンシが短縮され、輻輳を回避するために各方向の帯域幅が推定されます。QUICの主な目標は、現在TCPを使用している接続指向のWebアプリケーションを最適化することです。


4

必ずしもHTTPを介しているとは限らないMP3またはビデオをストリーミングしている場合、実際にはそうであったとしたら驚きます。おそらくTCPを介した別のプロトコルですが、UDPを介してストリーミングできない理由はわかりません。

もしそうならあなたはあなたのデータが反対側に到着する確実性がないことを考慮に入れなければなりません、しかし私はあなたがUDPについて知っているとそれをとることができます。

いいえ、HTTPはUDPを使用しません。しかし、あなたが話していることについては、mp3 /ビデオストリーミングはUDP上で発生する可能性があり、私の意見ではHTTP上で発生するべきではありません。


1
HTTPを介した「ストリーミング」は一般に(私が最も正確に考えると)「疑似ストリーミング」と呼ばれ、HTTPを介したデータの調整されたビットレートです。私たちの世界と同様に、マーケティングのタイプは専門用語を乱用し、私たち自身のような詳細指向の人々は詳細を把握しています。
Stu Thompson

4

理論的には、はい、httpにUDPを使用することは可能ですが、問題が生じる可能性があります。たとえば、mp3またはビデオがストリーミングされている例で、UDPは接続指向ではないため再送信メカニズムがないため、順序付けの問題が発生し、一部のビットが失われる可能性があるとします。


1
よく言及:UDP is not connection oriented there is no retransmit mechanism
ivanleoncz 2018

4

いくつかの回答には重要な点が欠けていると思います。UDPとTCPのどちらを選択するかは、データのタイプ(オーディオやビデオなど)や、転送が完了する前にアプリケーションが再生を開始するかどうか(「ストリーミング」)ではなく、リアルタイムかどうかに基づく必要があります。リアルタイムデータは(定義により)遅延の影響を受けやすいため、RTP / UDP(Real Time Protocol over UDP)経由で送信するのが最適です。

遅延は、オーディオやビデオであっても、ファイルからの保存データの問題ではないため、パケット損失を修正できるように、TCP経由で送信することをお勧めします。送信者は先読みしてネットワークパイプをフルに保つことができ、受信者は大量のプレイアウトバッファリングを使用することもできるため、不定期のTCP再送信や一時的なネットワークスローダウンによって中断されることはありません。制限的なケースは、再生が始まる前に録音全体が転送される場合です。これにより、再生が停止するリスクがなくなりますが、多くの場合、実用的ではありません。

リアルタイムデータのTCPの問題は、TCPがレイテンシに関係なくパイプをできるだけ効率的に使用しようとするため、過度のバッファリングほど再送信ではないことです。UDPはアプリケーションパケットの境界を保持し、内部ストレージを持たないため、レイテンシが発生しません。


3

答え:はい

理由: OSIモデルを参照してください。

説明:

HTTPは、UDPを使用するプロトコルでカプセル化できるアプリケーション層プロトコルであり、TCPよりも間違いなく高速で信頼性の高い通信を提供します。サーバーデーモンとクライアントは明らかにこの新しいプロトコルをサポートする必要があります。Quake 2プロトコルは、TCPを介してUDPを使用して、フロー制御(チャンクIDなど)を保証する構造化通信システムの基礎を提供できることを証明しています。


1
そのレベルで持っているはずの情報よりも多くの情報がなければ、TCPを手動で打ち負かすことはできません。
Joshua

1
「UDPはTCPを介して使用できます」。どちらもトランスポート層プロトコルなので、どちらか一方です。
2012


2

udp上のhttpは、いくつかのtorrentトラッカーの実装で使用されています(すべてのメインクライアントでsupporteb)


4
ステートメントをサポートするための参照を含めてください。
Max Leske 2013年

1
私が読んだとおり、Torrent UDP Trackerプロトコルはバイナリであり、HTTPのようにフォーマットされていません。xbtt.sourceforge.net/udp_tracker_protocol.html
Jesse Chisholm


1

UDPは、TCPのような欠落しているパッケージを要求しないため、ストリーミングに最適なプロトコルです。そして、それが要求を行わない場合、フローははるかに速く、バッファリングもありません。

ストリームの遅延でさえTCPよりも小さいです。これは、TCP(はるかに安全なプロトコル)が不足しているパッケージを要求し、既存のパッケージを上書きするためです。

したがって、TCPはストリーミングに使用するには高度すぎるプロトコルです。


3
これは質問の答えにはなりませんが、答えの理由になる可能性があります。
ホーケン

2
re:「個々のデータチャンクの速度」が「すべてのデータが通過する」よりも重要であることを考えると、「ストリーミングに最適なプロトコル」。ストリームが欠落しているチャンクから簡単に回復できない場合は、TCPを使用することをお勧めします。そのため、多くのセキュリティビデオプロトコルはTCPを選択します。信頼性は生の速度よりも重要です。
Jesse Chisholm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.