オープンソースUDPアクセラレーションツールUDPspeederの紹介

今日、githubで3つの優れたツールを見つけました。この記事では、最初にUDPアクセラレーションツールを紹介します。

このツールはクライアント->サーバー構造を持っています。このツールによって処理されるデータパケットは、UDPパケット損失率を効果的に減らすことができます。原則はFECアルゴリズムを使用することです。欠点は、トラフィックが増加することです。トラフィックが1.5倍になると、10%のパケット損失率を1万分の1未満に減らすことができます。このアルゴリズムは、バトルプラットフォームでDOTAとWarcraftをプレイするのに非常に適しています。

FEC:前方誤り訂正技術です。送信者は送信するデータを特定の冗長誤り訂正コードと一緒に送信し、受信者は受信したデータに対して誤り訂正コードに従ってエラー検出を実行します。エラーが見つかった場合は、受信機はエラー訂正を実行します。FECアルゴリズムは、ビデオ伝送で広く使用されています。

公式文書の原則は非常に明確です。以下の文書を参照してください。

https://github.com/wangyu-/UDPspeeder/blob/branch_libev/doc/README.zh-cn.md

 

 

コンパイル時にエラーが報告されます:

g++   -o speederv2          -I. main.cpp log.cpp common.cpp lib/fec.cpp lib/rs.cpp packet.cpp delay_manager.cpp fd_manager.cpp connection.cpp fec_manager.cpp misc.cpp tunnel_client.cpp tunnel_server.cpp my_ev.cpp -isystem libev  -std=c++11   -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers  -lrt -ggdb -static -O2
/usr/bin/ld: cannot find -lrt
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [makefile:29: all] Error 1

その理由は、-staticパラメーターがあるためです。makefileを変更し、-staticパラメーターを削除して正常にコンパイルします。

テスト:

./speederv2 -s -l 0.0.0.0:4096 -r 127.0.0.1:7777 -f 20:10 -k "123456"

./speederv2 -c -l 0.0.0.0:3333 -r 172.19.112.178:4096 -f 20:10 -k "123456"

次のステップは、UDPパケットをクライアントのポート3333に送信することをシミュレートすることです。クライアントは、UDPパケットをサーバーのポート4096に転送し、サーバーは処理後にポート7777に送信します。

このマシンでecho "hello"> /dev/udp/127.0.0.1/3333を実行して、UDPパケットの送信をシミュレートできます。このマシンでない場合は、ポート転送にsocatを使用する必要があります。このツールはtcp /をサポートします。 udpデータ転送。

 

socatプロジェクト

socatプロジェクトのアドレス:http://www.dest-unreach.org/socat/

ソースコードのダウンロード:http//www.dest-unreach.org/socat/download/

 

おすすめ

転載: blog.csdn.net/langeldep/article/details/113613382