歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 用tsunami-udp加速網絡傳輸

用tsunami-udp加速網絡傳輸

日期:2017/2/28 14:02:16   编辑:Linux教程

概述

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才是刪除。
Copyright © Linux教程網 All Rights Reserved