複数のUDPポートを介してデータを渡すとパフォーマンスが向上しますか

アレクサンダーVtyurin

私は現在、独学の目的で、KCP、Dragonite、QUICに触発された信頼性の高いUDPトランスポートを実装しています。いくつかの最適化を適用したいと思います。そのうちの1つは多重化です。

私の考えは次のとおりです。データを小さなチャンクに分割し(チャンクサイズはMTUと相関しています)、コルーチンを利用して、複数のデータグラムソケットを介して非同期で(クライアントとサーバーの両方で)データを送受信します。

このソリューションは機能しますか?パフォーマンスの向上を期待する必要がありますか?

Steffen Ullrich

TCP UDPとは異なり、スロースタートはありません。つまり、最初からフルスピードで送信を開始できます(わかっている場合)。したがって、基本的に、送信を実行できる速度の制限は、ローカルシステムがデータを送信できる速度または使用可能な帯域幅のいずれかです。送信がCPUにバインドされておらず、想定する複数のソケットすべてのトラフィックが同じ方法(発信ネットワークカード、ルーター、着信ネットワークカード)を取り、ミドルボックスで接続固有のトラフィックシェーピングが行われず、複数を使用すると仮定します。ソケットは、さまざまなボトルネックの使用方法を変更しないため、速度が向上することはありません。

これは、送信がCPUバウンドの場合に変更されます。この場合、複数のコルーチンを複数のソケットと組み合わせて使用​​すると、複数のCPUコアで同時に実行され、CPUが再びバインドされるまで、より多くのパケットを送信できるという点で、今日のマルチプロセッサシステムをより有効に活用できる可能性があります。

これは、トラフィックが帯域幅に制限されている場合にも変更されますが、追加の帯域幅を提供するターゲットシステムへの代替パスがあります。ソケットを別のローカルIPアドレス(別のローカルネットワークカード上)にバインドするか、別のターゲットIPアドレス(同じターゲットシステム用)を選択することで、そのような代替パスを使用して、追加の帯域幅を利用できる場合があります。 。

同様に、クライアントとサーバー間の接続ごとの帯域幅を制限するトラフィックシェーピングがある場合は、複数のソケットが役立つ可能性があります。この場合、複数のソケットを使用すると、使用可能な帯域幅の量を増やすことができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

RandomAccessFileで複数のスレッドを使用すると、パフォーマンスが向上しますか?

分類Dev

Javaでは、複雑なモデルのインターフェースを使用することでパフォーマンスが向上しますか?

分類Dev

祖先を提供すると、objectify / google cloudデータストアでのフィルタークエリのパフォーマンスが向上しますか?

分類Dev

タブ付きページの変数を共有する方法としてオブジェクトを複数のページに渡すことに関して、パフォーマンスやコーディングの問題はありますか?

分類Dev

式ボディのメンバーを使用すると、パフォーマンスが向上しますか?

分類Dev

プロトタイプでインスタンス変数を初期化すると、パフォーマンスがどのように向上しますか

分類Dev

SQL、LIMIT 1を使用すると、インデックスのパフォーマンスが向上しますか

分類Dev

HomePremiumよりもWindows7 Professionalを使用すると、パフォーマンスが向上しますか?複数の物理コアについて

分類Dev

インデックスによる要素へのアクセスよりもcharポインターをインクリメントしているときに、パフォーマンスが向上しますか?

分類Dev

個々の変数を回避すると、JavaScriptのパフォーマンスが向上しますか?

分類Dev

READ_COMMITTED_SNAPSHOTがオンになっているSQLServerデータベースでWITH(NOLOCK)を使用すると、パフォーマンスが向上しますか?

分類Dev

ハードディスクの30%を未割り当てのままにしておくと、パフォーマンスが向上しますか?

分類Dev

エラー:AJAXを介してフォームデータを渡すときにマルチパート境界が見つかりません

分類Dev

Firestore:複合インデックスは、複数のwhere句を含むクエリでパフォーマンスが向上しますか?

分類Dev

MYSQLテーブルのインデックスを削除して再作成すると、パフォーマンスが向上しますか?

分類Dev

変数を宣言するが初期化しないとパフォーマンスが向上しますか?

分類Dev

ライブラリの一部だけをインポートすると、パフォーマンスが向上しますか?

分類Dev

ループを介して関数を呼び出すことによるマップまたはリスト内包表記の実装のパフォーマンスの向上はどこから来ていますか?

分類Dev

`unique_ptr`を値で渡すと、プレーンポインタと比較してパフォーマンスが低下しますか?

分類Dev

この場合、プロトタイプチェーンを拡張すると、パフォーマンスがどのように向上しますか?

分類Dev

パフォーマンスの向上:データベースに保存する量を減らして、メモリに保存する量を増やしますか?

分類Dev

ES6矢印関数を使用するとパフォーマンスが向上しますか?

分類Dev

属性ファイルを追加すると、Gitのパフォーマンスが向上しますか?

分類Dev

コンピューターのUSBポートを介してLi-ionバッテリースマートフォンを充電すると、壁の充電器と比較してバッテリーに追加の負担がかかりますか?

分類Dev

Paramikoを介してCiscoスイッチでいくつかのコマンドを実行します-パフォーマンスを向上させます

分類Dev

RAID 0のパフォーマンスが向上しますか?

分類Dev

ウィジェットを切り替えるときに定数変数のパフォーマンスが向上しますか?その場合、アプリのエントリポイントでこれをどのように実現しますか?

分類Dev

多くのifステートメントを含むforループでcontinueを使用すると、パフォーマンスが向上しますか?

分類Dev

2番目のルーターをアクセスポイントからエクステンダーに変更すると、家全体のパフォーマンスが向上しますか?

Related 関連記事

  1. 1

    RandomAccessFileで複数のスレッドを使用すると、パフォーマンスが向上しますか?

  2. 2

    Javaでは、複雑なモデルのインターフェースを使用することでパフォーマンスが向上しますか?

  3. 3

    祖先を提供すると、objectify / google cloudデータストアでのフィルタークエリのパフォーマンスが向上しますか?

  4. 4

    タブ付きページの変数を共有する方法としてオブジェクトを複数のページに渡すことに関して、パフォーマンスやコーディングの問題はありますか?

  5. 5

    式ボディのメンバーを使用すると、パフォーマンスが向上しますか?

  6. 6

    プロトタイプでインスタンス変数を初期化すると、パフォーマンスがどのように向上しますか

  7. 7

    SQL、LIMIT 1を使用すると、インデックスのパフォーマンスが向上しますか

  8. 8

    HomePremiumよりもWindows7 Professionalを使用すると、パフォーマンスが向上しますか?複数の物理コアについて

  9. 9

    インデックスによる要素へのアクセスよりもcharポインターをインクリメントしているときに、パフォーマンスが向上しますか?

  10. 10

    個々の変数を回避すると、JavaScriptのパフォーマンスが向上しますか?

  11. 11

    READ_COMMITTED_SNAPSHOTがオンになっているSQLServerデータベースでWITH(NOLOCK)を使用すると、パフォーマンスが向上しますか?

  12. 12

    ハードディスクの30%を未割り当てのままにしておくと、パフォーマンスが向上しますか?

  13. 13

    エラー:AJAXを介してフォームデータを渡すときにマルチパート境界が見つかりません

  14. 14

    Firestore:複合インデックスは、複数のwhere句を含むクエリでパフォーマンスが向上しますか?

  15. 15

    MYSQLテーブルのインデックスを削除して再作成すると、パフォーマンスが向上しますか?

  16. 16

    変数を宣言するが初期化しないとパフォーマンスが向上しますか?

  17. 17

    ライブラリの一部だけをインポートすると、パフォーマンスが向上しますか?

  18. 18

    ループを介して関数を呼び出すことによるマップまたはリスト内包表記の実装のパフォーマンスの向上はどこから来ていますか?

  19. 19

    `unique_ptr`を値で渡すと、プレーンポインタと比較してパフォーマンスが低下しますか?

  20. 20

    この場合、プロトタイプチェーンを拡張すると、パフォーマンスがどのように向上しますか?

  21. 21

    パフォーマンスの向上:データベースに保存する量を減らして、メモリに保存する量を増やしますか?

  22. 22

    ES6矢印関数を使用するとパフォーマンスが向上しますか?

  23. 23

    属性ファイルを追加すると、Gitのパフォーマンスが向上しますか?

  24. 24

    コンピューターのUSBポートを介してLi-ionバッテリースマートフォンを充電すると、壁の充電器と比較してバッテリーに追加の負担がかかりますか?

  25. 25

    Paramikoを介してCiscoスイッチでいくつかのコマンドを実行します-パフォーマンスを向上させます

  26. 26

    RAID 0のパフォーマンスが向上しますか?

  27. 27

    ウィジェットを切り替えるときに定数変数のパフォーマンスが向上しますか?その場合、アプリのエントリポイントでこれをどのように実現しますか?

  28. 28

    多くのifステートメントを含むforループでcontinueを使用すると、パフォーマンスが向上しますか?

  29. 29

    2番目のルーターをアクセスポイントからエクステンダーに変更すると、家全体のパフォーマンスが向上しますか?

ホットタグ

アーカイブ