3

TCP 経由でソケットを使用してクライアントとサーバー アプリケーション間でデータを交換するためのシステムを開発しています。

サーバーはずっと前にC++(第 3 部によって) 書かれましたが、代わりにクライアントは私がまだ開発中のアプリケーションですC#。基地はすでに完成しています。両方のアプリケーションが適切に通信しています。問題は、(私の意見では) データの交換が遅すぎることです。

TCP 経由でソケットを使用して実際に何が期待できるか分からないので、私は自分の意見を強調します。現在、目で見て、いくつかのテストの結果、通信速度は受信と送信の両方で毎秒 200/250 KB の平均です。

特定のポート上の 2 つのエンドポイント間のデータ交換の速度を評価できるアプリケーションはありますか? どのくらいの速度が期待できますか?

より具体的には、クライアントとサーバーは、ファイル共有のために開発されています。現在、クライアントは一度に 1 つのファイルを送受信できます。プロトコルはそれ以外の場合 (一度に複数のファイルを送受信) を実行しますが、セキュリティ上の理由から、私は別の方法を好みました (複数のファイルを受信して​​いて接続が失われた場合、受信しているすべてのファイルが失われます)。

この機能を変更すると、データ交換の速度に大きな影響を与える可能性がありますか? どのように?

4

2 に答える 2

1

まず、ホストが提供するリンクの帯域幅を知って、何が期待できるかを知る必要があります。自分でホストしている場合、アップロード速度はダウンロード速度リンクよりもかなり遅い場合があります。サーバーにログインして速度テストを実行できます。

私はあなたと似たような状況 (サーバーとそれにバイナリ データを送信するクライアントを開発しました) があり、その時 (2 ~ 3 年前) には、このツールのバージョンを使用してデータ交換の速度を測定していました。サーバーにインストールし、モニター (監視するポートなど) をセットアップし、チャートを構成して、しばらく実行します。本当にうまくいきました。「Bandwidth Traffic Monitor」を検索して、他の同様のツールを探すことができます。

アプリケーションが同時に複数のファイルを交換できるようにする場合は、リンク速度が接続間で分割されることに注意してください。また、アプリケーションを使用しているクライアントの数に応じて、サーバーが複数の接続とファイルの書き込みを行うことになります。帯域幅に加えて、処理能力によって制限される場合があります。

于 2012-11-28T15:21:35.973 に答える
0

どのくらいの速度を期待する必要がありますか?

2つのノード間のネットワークの最も遅い部分が転送できるフルスピードから、その最も遅い部分の既存のトラフィックの帯域幅を差し引いたもの。100 Mbit LANでは、一方向の転送速度は10 MB/sになると思います。

この機能を変更すると、データ交換の速度に大きな影響を与える可能性がありますか?どのように?

これは、使用されているプロトコルとクライアントおよびサーバーの実装に完全に依存します。ハードワークが行われている場所、ボトルネックがどこにあるかをベンチマークする必要があります。

于 2012-11-28T15:38:52.757 に答える