开源的UDP加速工具UDPspeeder介绍

今日在github上发现三个不错的工具,此篇文章先介绍UDP加速工具。

此工具是一个Client->Server结构的,经过此工具处理的数据包可以有效降低UDP的丢包率,原理是采用了 FEC算法。缺点就是流量增加了,用1.5倍的流量,就可以把10%的丢包率降低到万分之一以下。这种算法应用在对战平台里打DOTA和魔兽争霸非常不错。

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包到Client的3333端口, Client会把UDP包转到服务器的4096端口上, Server处理后在发送给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