Secure Reliable Transport (SRT) 是用來傳輸媒體文件的協議,項目見https://github.com/Haivision/srt
裏面實現了一個srt-tunnel ,作用是將srt協議用作tcp協議的隧道,文檔見於doc/srt-tunnel.md,本人對其進行了一點試用,現將其使用記錄下來。
https://github.com/Haivision/srt/blob/39ea5262fa1e9fca928f030bdb599b56f613b5fd/docs/srt-tunnel.md
srt-tunnel 需要客戶端和服務器端,架構圖大意如下:
<TCP client> --> <Tunnel: TCP->SRT> --> ...
....
(long distance)
....
--> <Tunnel: SRT->TCP> --> <TCP server>
srt-tunnel編譯隨srt一起生成,默認位於/usr/local/bin/目錄下
客戶端 : 對外監聽10086端口,將數據通過srt協議轉發到177.77.77.77的10086端口
/usr/local/bin/srt-tunnel tcp://0.0.0.0:10086 srt://177.77.77.77:10086
服務端命令(即177.77.77.77服務器上)
/usr/local/bin/srt-tunnel srt://0.0.0.0:10086 tcp://127.0.0.1:1080
意思是將srtr接收到的信息轉發到本機的1080端口上,1080端口運行socks5服務
連接客戶端的10086端口,數據則轉發到服務端的1080端口上。
通過實際測試發現:
1.srt-tunnel 程序運行在多個客戶端連接時會出現
newConnection: listen backlog=5 EXCEEDED
的錯誤,此程序是測試程序,功能不全
2.具體的速度非常不理想,SRT作爲中間協議進行傳輸並無優勢,甚至連普通TCP都不如。尚不清楚是srt-tunnel 程序的問題還是SRT協議的問題。