降低流媒體丟包的方法
2023-04-27 08:37:31
專利名稱:降低流媒體丟包的方法
技術領域:
本發明屬涉及計算機領域中數據防丟包的方法,尤其涉及流媒體實時傳輸中數據
防丟包的方法。
背景技術:
Network Coding是2000年提出的概念,它通過在網絡層將信息流進行組合編碼 來達到數據的高速傳輸(即最大流),而傳統的信息傳輸方式只是將信息進行複製、轉發 (即路由方式)。 在視頻聊天,視頻會議這種實時性要求高的流媒體應用中,往往採用UDP的傳輸 方式來保證傳輸速度,但是往往由於UDP傳輸的不可靠性帶來網絡丟包,從而造成視頻質 量差,影響通信效果。本發明吸取了 NetworkCoding的思想,用數據包異或等多種方式對數 據進行冗餘計算,利用應用層組播來降低網絡開銷,並在每一個組播點上做恢復運算,使得 網絡接收端有較大的容錯能力,允許在一定的丟包比例範圍內不影響流媒體質量,從而能 讓流媒體在較差的網絡中獲得較好的效果。本發明主要包括數據包冗餘編碼、應用層組播、 接收端容錯處理幾部分。 Reliable UDP是目前被廣泛使用的UDP防丟包技術,在出現丟包的情況下,接收 端通過應用層協議到發送端重新請求丟失的包,因此Reliable UDP在實時性上會大打折 扣。本發明和Reliable UDP相比,在保證傳輸可靠性的前提下,更加實時,邏輯處理上更加 簡單。 如圖1所示的是傳統的UDP傳輸方式。UDP是一個不可靠的傳輸協議,由於其傳輸 速度快,目前被廣泛的應用於實時流媒體傳輸。圖1模擬了一個發送端發送10個數據包, 經過一個組播點,到達接收端的過程。假設發送端到組播點有10%的丟包率,組播點到接收 端也有10%的丟包率,那麼,本來的10個包到達接收端只剩下8個包。這時接收端在播放 時,視頻質量就不能保證了。 另一種Reliable UDP的處理方式如圖2所示,組播點在丟失了 P9之後,會主動到 發送端重新請求,發送端會把P9重新送給組播點。同樣接收端在丟失P2的情況下,也是重 新請求。假設每次重新請求的時間消耗是100ms,那麼在保證這10個包不丟的條件下,延時 時間就增加了 200ms。如果考慮經過多個組播點轉發的情況,延時會更加嚴重,當延時超過 ls的時候,視頻通話的質量就不能接受了。 並且,傳統的組播點的作用是對收到的數據做原封不動的分發,也就是只有路由 功能。 異或運算通常用符號〃 ④〃表示,異或算法的特性為,假設C二A④B,那麼A二B④C, B二A C。同理,假設D二A B C,那麼A二D @ B C,B二D @A C,C=D @ A C。
發明內容
本發明所要解決的技術問題是提供一種不增加網絡負擔,且具有容錯和恢復的功能的降低流媒體丟包的方法。 為了解決以上技術問題,本發明提供了一種降低流媒體丟包的方法,包括以下步
驟步驟一、首先用異或的方式做出一個冗餘包,P' 二Ple…Pn, n代表任意正整數;步驟
二、然後把這n個包由發送端傳輸到組播點;步驟三、組播點對丟失的數據包做丟包恢復; 步驟四、組播點把恢復後的包,再用同樣的算法做冗餘;步驟五、組播點傳輸n個包到接收 端;步驟六、接收端做丟包修復。 本發明的有益效果在於,本發明的組播點除了具有路由功能,還具有容錯和恢復 的功能。因此,在應用本發明的組播網絡中,組播點的增加並不是傳輸的負擔,從而讓本發 明可以廣泛用於P2P的實時流媒體應用中。
下面結合附圖和具體實施方式
對本發明作進一步詳細說明。
圖1是現有的UDP傳輸方式示意圖; 圖2是Reliable UDP處理方式的示意圖; 圖3是一個組播點的情況下本發明實施例的示意圖; 圖4是多個組播點的情況下本發明實施例的示意圖。
具體實施例方式
對於數據包處理,假設需要傳輸的數據包為Pl, P2, P3,可以根據異或算法冗餘出 來一個數據包,如下p, = Pl P2 P3 把P1,P2,P3,P'傳輸出去,假設由於傳輸的不可靠性,會有一個數據包丟失,在接 收端能看到這種結果。 如果P1丟失,P1' 二P' 6P2④P3,則P1'就是恢復後的P1,和原來的P1—模一 樣。 如果P2丟失,P2' = P' @P1 P3,P2'就是恢復後的P2。 同樣,如果P3丟失,P3' 二 P, @P1 8P2,P3'就是恢復後的P3。 如果P'丟失,可以不用去理會,因為原來的P1,P2,P3都已經收到了。 從上面可以看出,經過異或冗餘算法,在任何一個數據包丟失的情況下,仍然可以
保證接收端數據的完整性,這樣就大大提高了傳輸的可靠性。 異或算法是可以擴展的,可以對數據包加係數,做到N個數據包,冗餘成N+M個,在 收到任意N個數據包,可以恢復原來的N個包。 傳統的組播點的作用是對收到的數據做原封不動的分發,也就是只有路由功能。 本發明中的組播點將參與數據包恢復計算,這個計算給傳輸的可靠性帶來了很大的意義。 本發明的組播點除了具有路由功能,還具有容錯和恢復的功能。因此,在應用本發明的組播 網絡中,組播點的增加並不是傳輸的負擔,從而讓本發明可以廣泛用於P2P的實時流媒體 應用中。 根據前面背景知識的描述,下文將描述本發明具體的實現方式。 如圖3所示,假設還是10個數據包,需要從發送端,通過組播點的轉發到接收端,每次傳輸的丟包率還在10%左右,則傳輸過程如下 1.首先用異或的方式做出 一個冗餘包,p, 二Pl @P2 P3 P4 P5 P6 P7 P8 P9④P10。 2.然後把這11個包由發送端傳輸到組播點。 3.組播點對丟失的數據包做丟包恢復。 4.組播點把恢復後的包,再用同樣的算法做冗餘 5.組播點傳輸11個包到接收端 6.接收端做丟包修復。 在P2P等複雜的網絡應用中,往往有多個組播點,如果直接用UDP傳輸,那麼每增 加一個組播點,就會降低一點傳輸質量,組播點越多,質量就越差;如果使用Reliable UDP, 增加組播點的代價就是延時變大,點越多,延時就越大。這兩種方式顯然都不適合實時流媒 體的應用。 本發明的多個組播點的情況,如圖4所示,在每個組播點上做丟包修復,並把修復 回來的數據重新做冗餘計算,在往下一個點傳輸的時候,基本上可以保證是完整的數據。因 此,在丟包率在一定範圍內的前提下,由於本發明的應用,組播點增加將不會帶來延時的明 顯增大,也不會造成更多的丟包,相反,會更增加傳輸的可靠性,提高網絡的吞吐量。
權利要求
一種降低流媒體丟包的方法,其特徵在於,包括以下步驟步驟一、首先用異或的方式做出一個冗餘包,n代表任意正整數;步驟二、然後把包括P』在內的n+1個包由發送端傳輸到組播點;步驟三、組播點對丟失的數據包做丟包恢復;步驟四、組播點把恢復後的包,再用同樣的算法做冗餘;步驟五、組播點傳輸n+1個包到接收端;步驟六、接收端做丟包修復。F2008100439564C0000011.tif
全文摘要
本發明公開了一種降低流媒體丟包的方法,包括以下步驟步驟一、首先用異或的方式做出一個冗餘包,n代表任意正整數;步驟二、然後把這n個包由發送端傳輸到組播點;步驟三、組播點對丟失的數據包做丟包恢復;步驟四、組播點把恢復後的包,再用同樣的算法做冗餘;步驟五、組播點傳輸n個包到接收端;步驟六、接收端做丟包修復。本發明提供一種不增加網絡負擔,且具有容錯和恢復的功能的降低流媒體丟包的方法。
文檔編號H04L29/08GK101741584SQ20081004395
公開日2010年6月16日 申請日期2008年11月20日 優先權日2008年11月20日
發明者劉超 申請人:盛樂信息技術(上海)有限公司