首頁 > 軟體

用tsunami-udp加速網路傳輸

2020-06-16 18:01:55

概述

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才是刪除。

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-04/116464.htm


IT145.com E-mail:sddin#qq.com