UDP を使用して、以下の間の座標などの大量のデータを送信することにしました。
- クライアント [C++] (ポーリングを使用)
- サーバー [JAVA] [Apache MINA]
転送中の断片化を可能な限り回避するために、私のデータグラムは最大 512 バイトのみです。
各データグラムには、監視できるように、追加したヘッダー (内部に ID を含む) があります。
- 受信したデータグラムの数
- どれを受け取るか
問題は、データグラムの送信が速すぎることです。私たちは最初のもののように受け取り、大きな損失を被り、それからいくらかの損失を被り、また大きな損失を被ります。受信したIDデータグラムの並びは[1]、[2]、[250]、[251]……のようになります。
問題はローカルでも発生しています(ローカルホストを使用、ネットワークカード1枚のみ) データグラムを失うことは気にしませんが、ここではネットワークによる単純な損失ではありません(対処できます)
ここでの私の質問は次のとおりです。
- クライアントで、どうすれば最高の結果を得ることができますか:
- 設定、またはソケット設定?
- できるだけ多く送信する方法はありますか?
- サーバーでは、Apache MINA は ~「バッファ ソケットのサイズ」~ を自分で管理していると言っているようですが、まだ注意すべき設定はありますか?
- 通常のファイルをダウンロードするときに、接続で少なくともこの帯域幅を使用できることを知って、1MB/s のような値に到達することは可能ですか?
現在、最大 4KB の座標情報を転送したい場合、転送が完了するまでに 5 分以上待機するためにスリープ時間を追加する必要があります。これは、毎分少なくとも 10MB を送信する必要があることを知っている私たちにとって大きな問題です。情報をコーディネートします。