1

私は信頼できる UDP ネットワーキングに取り組んでおり、何かを知る必要があります。UDP の信頼できるアルゴリズムはそのように機能すると思います (IDK だと思います)。

  • サーバー送信: (header:6)abcdef
  • クライアント受信: (header:6)abdf、「4 つのデータを取得しました。abdf です」と返信
  • サーバー送信: (ヘッダー:2)ce
  • Client receive: (header:2)ce, OK 結合します!

これが信頼できるUDPへの本当の方法ですか?

編集(回答後、これは誰かにとって役立つかもしれません)信頼できるUDPは私の操作を処理するための良い方法ではないため、TCPを使用します。重要でない時間変数のような位置を送ります。おそらく、信頼できる UDP のアルゴリズムを作成すると、この信頼できるプロセスには 3 ~ 4 個の UDP send-recv が必要になります。つまり、現時点で 3 ~ 4 個の信頼できない他の位置データを送信でき、小さなデータを送信しているため、効率が向上する可能性があります。信頼できるUDPより。

4

3 に答える 3

2

信頼できる UDP を取得する「真の方法」は、TCP を使用することです。

それでも UDP 経由で行いたい場合は、メッセージと一緒にチェックサムを送信し、相手側でチェックサムを再計算して、送信したチェックサムと一致するかどうかを確認することで、メッセージの整合性を確認できます。

一致しない場合は、パケットを再度要求します。これは本質的に TCP を再発明していることに注意してください。

于 2013-07-29T20:41:12.660 に答える
0

あなたの問題は、Data Distribution Serviceに合わせて作成されているようです。

重要でない一時変数のような位置を送ります

実際、位置座標は、多くのベンダーにとって一般的な例です。 RTI には、ユース ケースに適したデモンストレーションがあります

うん、「IDL」と聞くとうめき声をあげる人が多いけど、ちゃんと振ってみることをお勧めするよ。DDS は、単純なカプセル化/パイプラインではないという点で、非常に多くの一般的な pub-sub/distribution/etc プロトコルとは異なります。

本当にクールなことは、多くのロジックと設計要素が「基盤となるネットワークまたはピアの誤動作にどのように反応するか」という問題に直面することが多いことだと思います。DDS は、サービス品質のネゴシエーションと、QoS 条件が満たされていない場合にコードが反応するためのフックを提供します。

この決定を軽視しないことをお勧めします.TCP、UDP、AMQPなどよりもかなり複雑です.しかし、複雑さを受け入れる余裕があり、十分に大きなシステムでそれを償却できる場合-実際の配当を支払うことができます.

最終的に、DDS は UDP 経由で「信頼できる」メッセージを配信します。これは、さまざまなトランスポートとさまざまな次元の QoS をサポートするように設計されています。このサービスによって考慮される QoS のさまざまな側面をすべて見ると、本当に目まいがします。

于 2013-07-30T02:12:22.510 に答える