web-dev-qa-db-ja.com

メッセージ指向プロトコルとストリーム指向プロトコルの違い

これら2つのコンピューターネットワーキング用語の違いを理解しようとしています。インターネットで検索しましたが、よくわかりませんでした。誰かが私を説明したり、これを説明するページへのリンクを提供したりできますか?ありがとうございました...

33
bala1486

メッセージ指向プロトコルは、個別のチャンクまたはグループでデータを送信します。データの受信者は、1つのメッセージが終了し、別のメッセージが開始する場所を決定できます。ストリームプロトコルは、データの継続的なフローを送信します。

こちらが携帯電話の例です。各テキストメッセージは他のメッセージとは異なるため、テキストメッセージはメッセージ指向プロトコルになります。通話全体でオーディオの継続的な流れがあるため、通話はストリーム指向です。

インターネットで使用される一般的なプロトコルは、UDP(メッセージ指向)およびTCP(ストリーム指向)です。詳細については、Wikipediaのこれらの用語を参照してください。

お役に立てれば

66
Dave Turvey

ストリームプロトコルは、バイト単位でデータを送信します。あなたはそれを一方の側に入ってくるすべてが他方の側に転送されるパイプとして見ることができます。データを理解するのに十分なデータがあるかどうかを判断することは、反対側のタスクです。

TCPはその典型的な例です。 「Hello World」をパイプ経由で送信した後は、それがそのようなものであるという保証はありません。それはそれ自体が各文字として、2つの単語として、または1つのピースとして来る場合があります。あなたが知っている唯一のことは、文字が同じ順序になるということです。

通常、メッセージプロトコルはストリーム上に構築されますが、その間に1つの層があり、各論理部分を別の部分から分離するように注意します。入力ストリームを解析し、データセット全体が到着したときにのみ結果を提供します。前の例では、「Hello World」メッセージ全体を期待するか、何も期待しないでしょう。

これはかなり単純化されたビューですが、最大の違いを説明していると思います。

19
Josip Medved

少し複雑です。

一般に、低レベル(OSI:Physical)タイプには2つの異なるタイプがあります。

  • パッケージ指向のトランスポート
  • チャネル指向のトランスポート

どちらのトランスポートタイプも、周波数変調、振幅変調、位相変調などで送信できます。

これらの周波数/振幅/ ...(アナログ変調とも呼ばれます)は、デジタル化によって強化できます。またはデジタル信号に使用されます。これはデジタル変調と呼ばれます。

参照: https://en.wikipedia.org/wiki/Modulation

パッケージ指向のトランスポートは、複数のパッケージに対して1行を使用します。チャネル指向のトランスポートは、パッケージごとに異なるラインを使用します。 (無線で使用される)チャネル指向のトランスポートの利点は、信号が瞬時に届かないことです。欠点は、このチャネルがまばらに使用されることです。そのため、総帯域幅は低くなります。したがって、インターネットにはPackage-Oriented-Transportを使用します。ただし、このトランスポートは、チャネル指向の周波数変調(ケーブルモデムなど)または単一回線のパッケージ指向の振幅変調(テレフォンラインなど)に基づくことができます。

結局のところ、UDPとTCPはOSIレベル5(トランスポート)でパッケージ指向です。したがって、ストリーミングとメッセージ指向の違いは何ですか?TCPは良い質問です。

TCPを使用したshoutcast.comからのストリームもパッケージに分割されます(ストリーミングパッケージ/メッセージはTCPパッケージに分割されます)。1つのTCPパッケージが失われる可能性があります。 TCPはアドレス指向であり、そのパッケージを列挙するため、パッケージを再度要求できます。これにより、TCPが信頼できるようになります。

TCP=の上にストリームが追加されました。パッケージ番号に従って、TCPのパッケージを注文する可能性を使用します。ポイントは、常にストリームに切り替わる可能性が高いデータを送信します。

おそらく、それによって問題が明確になります。

よろしく

3
seboeh

メッセージストリームとバイトストリームの主な違いは、メッセージ境界です。また、メッセージストリームはメッセージ境界を追跡しますが、バイトストリームは追跡しません。

ネットワークで1024バイトのデータがホストに送信され、1分後に別の1024バイトが同じホストに送信されると、レシーバーは合計2048バイトのデータを受信します。

この送信では、メッセージストリームは2つの異なる1024バイトのメッセージを送信しますが、バイトストリームでは2048全体を単一のユニットとして受信機に転送します。

例メッセージストリームのページのシーケンスです。例曲や映画をダウンロードするバイトストリームの。

1
M Alzuhair