用tsunami-udp加速网络传输

概述

tsunami-udp 是一款专为网络加速诞生的小工具。思路很简单,使用TCP进行传输控制、用UDP进行数据传输。

这样可以无状态的进行数据传输,然后中间加一些文件校验和重传机制,达到加速传输的目的。

传统的tcp传统,基于长连接,很容易受网络波动的影响。特别是网络拥塞的情况下,只能通过多进程/线程来进行有序传输。

安装

建议将 tsunami-udp 录入仓库,方便用yum一键安装:

sudo yum -y install tsunami-udp

640?wx_fmt=png

使用

安装完成后,在服务端(数据源)需要传文件的目录,运行tsunamid *即可:

cd /data
tsunamid *

640?wx_fmt=png

客户端(执行下载的机器)进入到对应的存储目录,执行tsunami即可:

cd /data
tsunami
> connect your.server.address # 连接服务端(下载源)
> get file-name  # 下载指定的文件

640?wx_fmt=png

上图即,在中国济南的一个联通机房下载AWS新加坡机器上‘2.2G autodatas.tar’的文件,跨国传输速度接近 50Mbps (无专线)。图中还显示了详细的过程数据,比如丢了多少包、总传输量、有效的传输量 等等…… 使用超简单吧!

对比使用wget下载的测试结果:

640?wx_fmt=png

另外,客户端虽然不支持子目录的遍历功能,但若知道全路径,是可以直接下载:

640?wx_fmt=png

更爽快点,直接用命令行执行下载,这样就不需要人工交互啦:

tsunami connect demo.tsunami-udp.cmcm set udpport 51031 get mnt/d2/file4download quit

640?wx_fmt=png

注意:和Linux自带的ftp命令行一样,按Ctrl + Backspace才是删除。需要人肉转义一下

监控

使用AWS新加坡的服务器作为数据库,传输过程CloudWatch监控的流量:

640?wx_fmt=png

客户端在济南联通,对应的资源使用情况如下图:

640?wx_fmt=png

制作rpm包

另外,简单记录RPM打包过程。使用fpm打包最简单了:

wget 'https://github.com/cheetahmobile/tsunami-udp/archive/1.8.1.tar.gz' -O ~/rpmbuild/SOURCES/tsunami-udp-1.8.1.tgz
tar -zxvf tsunami-udp-1.8.1.tgz
cd tsunami-udp-1.8.1
./recompile.sh
mkdir -pv /tmp/usr/bin
cp -fv server/tsunamid client/tsunami /tmp/usr/bin/
fpm -f -s dir -t rpm -n tsunami-udp --epoch 1 -v 1.8.1018 --iteration 1.el6 -C /dev/shm -p ~/rpmbuild/RPMS/x86_64/ -d 'glibc >= 2.12' --verbose --category 'System Environment/Daemons' --description ' A fast user-space file transfer protocol that uses TCP control and UDP data for transfer over very high speed long distance networks' --url 'https://github.com/cheetahmobile/tsunami-udp' --license 'BSD' -m 'higkoo' --no-rpm-sign --workdir /tmp usr/bin
file ~/rpmbuild/RPMS/x86_64/tsunami-udp-1.8.1018-1.el6.x86_64.rpm  # 大功告成

640?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值