2021-05-12 14:32:11
用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
相關文章