2017-10-06 5 views
-1

ネット経由で2つのパケットを送信すると、UDPパケットともう1つはTCPパケットになります。どのパケットが宛先に到達する可能性がより高いですか?私はTCPプロトコルがより安全であると言われていますが、これは "フェールセーフ"メカニズムのためです。しかし、それはUDPパケットが途中で落ちる可能性がより高いことを意味しますか?udp対tcpパケットのドロップ

UDPパケットが消えるかどうかは一方的には両側が知っている可能性があり、パケットが2つ失われる可能性があるためですが、一方でTCPパケットが消えたらその後、それは別のものを送信し、問題が解決され、TCPパケットははるかに重い "フェールセーフ"メカニズムです。 私はこの問題が非常に興味深いと思うので、私はその質問に対してより確かな答えをしたいと思います。

+0

あなたはすでに自分自身と矛盾しています。 TCPには信頼性の機能があるため、ルータの実装にはどうしてですか? – EJP

答えて

0

アプリケーションに使用するプロトコルを決定する場合は、実際に両方のプロトコルを詳しく調べる必要があります。以下は概要です。

TCPは、データを確実に配信するためのいくつかのメカニズムを提供するストリームプロトコルです。データが送信される速度を制御します(速度が遅くなり、ピアが持続可能な速度に達するまで速度を上げる)。相手側で受信されなかったデータは再送信されます。これを行うには、価格を支払う(例えば、スロースタート、受信したすべてのデータを確認する必要性など)

UDPは反対側の "データチャンク"(データグラム)プロトコルであり、完全性/レート/注文のそれは、(潜在的に)より速くなることによって「補償する」ことができます。できるだけ早くデータを取り出すことができます。極端なケースでは、完全なネットワーク速度で、相手が受け取ることができるデータを受け取ります。相手側に到着するデータの配信または順序の保証はありません。彼らはデータグラム全体を受信するか、何も受信しません。

1が通常になり、任意の決定は、失われたかではないが、それのいずれかを失うことの重要性されているデータの可能性とは何の関係もありません。ビデオストリーミングはUDPを介して何回も行われます。何度もデータグラムが欠落していることは、スムーズなイメージを持つことより重要ではありません。ファイル転送はデータの損失やデータチャンクの逆転を余儀なくされることはないので、TCPは当然の選択です。

その質問とは別に、ネットワークプロトコルが問題の半分しかないことを思い出してください。残りの半分は、受信しているバイトをインタープレストするためのアプリケーションプロトコルが出ています...

関連する問題