如何在一條丟包率 30% 的鏈路上建立低延遲連接?
12-28
@pig pig 的回答已經很好了。冗餘糾錯編碼就是干這個的。
這裡推薦個開源解決方案 catid/shorthair · GitHub
基於著名的 Read-Solomon 糾錯編碼,能夠根據鏈路的丟包率自適應地調整冗餘率,以達到較低的目標丟包率。
韋易笑的答案很全面, 下面這點想補充一下:
"用頻域交錯存儲及其他一些方法,比如把一幅質量為 70% 大小為 32KB 的 I 幀圖像,存儲成兩張質量為 40% 大小為 16KB - 18KB 的 I 幀圖像,兩個拆分後的圖像單獨看,都是一副質量更低的圖片,但是他們組合起來,卻能變成一張質量很好的圖片"
使用混合糾錯編碼和請求重發的方案harq,它在3g開始已經廣泛應用,晚點補充細節。
鏈路真的是低延遲嗎? 數據本身是 msg 還是 chunk, UDT 和 RBUDP 適用於不同的場景,具體那個適用要根據業務數據去測試了。
推薦閱讀:
※何時IPV6 才能普及?
※如何形象生動的解釋ip地址、子網掩碼、網關等概念?
※Python 爬蟲學到什麼樣就可以找工作了?
※有關ospf協議的一個問題?
※TCP 為什麼沒有基於 UDP 實現?