[看法]一些遠距離大資料傳輸的想法
一些遠距離大資料傳輸的想法
在計算機網路中,傳輸檔案一直是一個典型的案例用來討論。但是不同場景下網路傳輸的方式方法都需要改變,遠距離大資料傳說就是其中一個場景,如何傳輸?這裡說一下我的想法。
寄送硬碟
在《計算機網路》中,特別指出其實用貨車運送一貨車的資料頻寬還挺大的。按照我們平時的下載資料的常用衡量指標GB/s, 如果使用快遞3天(3 * 24 * 60 * 60 s)可以到達,那麼運送254GB的資料就要比下載速度為1GB/s的網路要快。如果你想運送TB級別甚至PB級別的資料,用快遞還是不錯的~
資料分片
如果使用網路傳輸大資料,在傳輸之前,把資料分片是一種通行的做法。分片通俗的講就是把一個完整的資料包分成不同小包,小包再傳輸出去。這樣的做法有兩個好處
- 資料量小,容易傳輸。即使在傳輸過程中出現了傳輸斷開等情況,重傳這個小分片的代價不是很大。
- 當網路傳輸的速度不是受制於頻寬而是發包主機,那麼分片傳輸就可以利用主機的並行傳輸能力,提高傳輸頻寬。
當然分片傳輸的缺點也是比較明顯,就是雙端都需要知道分片演算法,而且大資料情況下需要一定時間進行分片,這部分時間有時候也需要算到傳輸時間裡。
資料壓縮
資料壓縮也是其中的一個重點。如果在傳輸前,對資料進行壓縮,壓縮率的大小直接決定了傳輸時間的多少,雖然這不能明顯的提高傳輸頻寬,但是可以顯著降低傳輸的時間,同時,減少對頻寬的佔用。
斷點續傳
斷點續傳在我們平時不少下載軟體中都有實現。長距離資料傳輸中,傳輸斷連是經常發生的事情,那麼斷點續傳可以降低出現斷連帶來的影響。當資料斷連時,只需要很小的代價重新連線傳輸就行,而不需要再傳已經傳輸過的資料。
資料完整性校驗
資料完整性校驗也需要我們來關注。使用MD5等方式,保證傳輸方資料和接收方資料一致,從而避免資料中間的篡改或者丟失。
資料雙端加密
雙端加密很重要。資訊保安是我們網路中尤其要關心的一件事。資料傳輸時,如果不使用加密演算法,中間資料傳輸的節點就都可以看到你資料傳輸的內容。一種可行的非對稱加密方案是,接收端首先生成一對公鑰和祕鑰,將公鑰傳輸到傳送端,傳送端使用公鑰把資料加密,傳送給接收端,接收端再用公鑰解密。
不造輪子
不造輪子普適於所有的計算機技術。儘量使用現有的大資料傳輸方案,甚至我們儘量不要過多的修改底層傳輸的方式,從而降低傳輸的技術成本。