用tsunami-udp加速网络传输
2014-10-18 15:29
288 查看
概述
tsunami-udp 是一款专为网络加速诞生的小工具。 思路很简单,使用TCP进行传输控制、UDP进行数据传输。这样可以无状态的进行数据传输,然后中间加一些文件校验和重传机制,达到加速传输的目的。
传统的tcp传统,基于长连接,很容易受网络波动的影响。特别是网络拥塞的情况下,只能通过多进程/线程来进行有序传输。
安装
建议将 tsunami-udp 录入仓库,方便用yum一键安装:sudo yum -y install tsunami-udp
使用
安装完成后,在服务端(数据源)需要传文件的目录,运行tsunamid *即可:
cd /data tsunamid *
客户端(执行下载的机器)进入到对应的存储目录,执行
tsunami即可:
cd /data
tsunami
> connect your.server.address # 连接服务端(下载源)
> get file-name# 下载指定的文件
上图即,在中国济南的一个联通机房下载AWS新加坡机器上‘2.2G autodatas.tar’的文件,跨国传输速度接近 50Mbps (无专线)。 图中还显示了详细的过程数据,比如丢了多少包、总传输量、有效的传输量 等等…… 使用超简单吧!
干脆再直接用命令行操作:
tsunami connect demo.tsunami-udp.cmcm set udpport 51031 get mnt/d2/file4download quit
监控
使用AWS新加坡的服务器作为数据库,传输过程CloudWatch监控的流量:客户端在济南联通,对应的资源使用情况如下图:
再来对比一下wget的下载速度:
另外,客户端虽然不支持子目录的遍历功能,但若知道全路径,是可以直接下载:
制作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# 大功告成
注意:和Linux自带的ftp命令行一样,进入tsunami命令行里 按 Ctrl+Backspace才是删除。需要人肉转义一下
相关文章推荐
- day23套接字socket网络传输TCP和udp
- 网络编程作业——UDP传输
- 黑马程序员 Java网络传输UDP和TCP协议
- 黑马程序员---网络编程(简介、UDP传输)
- 黑马程序员--10.网络编程--02.【网络传输三要素在Java中的体现】【TCP和UDP概念】【Socket基本概念】
- [转]【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
- [Linux网络编程笔记]传输协议TCP和UDP简介
- 黑马程序员_温习 网络编辑一 (个人笔记)摘要(网络概述---网络参考模型---网络传输要素---IP地址---端口----传输协议(UDP -- TCP)---Socket机制 )
- 网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
- 计算机网络(三)传输层—UDP
- python天天进步(5)--网络编程之数据传输UDP
- UNIX网络高级编程第2章传输层UDP TCP和SCTP 2.2总图2.3用户数据报协议2.4传输控制协议2.5SCTP
- 计算机网络:传输层(TCP/UDP) 应用层(HTTP) 知识总结
- 网络编程作业——UDP传输
- 黑马程序员——java网络编程中的传输协议:UDP和TCP
- 用UDP实现在网络上传输文件的问题。
- 地面网络传输层之TCP、UDP详解
- Java基础—网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- 黑马程序员_温习 网络编辑二 (个人笔记)概要(UDP传输演示)