一種基於應用層中繼的多徑傳輸系統及方法
2023-11-29 23:00:16 3
一種基於應用層中繼的多徑傳輸系統及方法
【專利摘要】一種基於應用層中繼的多徑傳輸系統及方法,該系統包括用戶代理和中繼服務系統;中繼服務系統包括:中繼服務控制器和中繼服務轉發器;該方法包括步驟1:中繼服務轉發器進行註冊;步驟2:中繼服務控制器獲取中繼服務轉發器的信息;步驟3:作為發送端的用戶代理獲取中繼路徑;步驟4:作為發送端的用戶代理沿著獲取的中繼路徑進行數據傳輸;步驟5:中繼服務轉發器轉發數據;步驟6:作為接收端的用戶代理將接收到的數據重組為原始數據流並傳遞給上層應用,並向作為發送端的用戶代理髮送中繼路徑的傳輸質量信息;步驟7:作為發送端的用戶代理調整數據流劃分策略;步驟8:重複執行步驟4至步驟7,直至數據傳輸完畢;步驟9:釋放中繼路徑。
【專利說明】一種基於應用層中繼的多徑傳輸系統及方法
【技術領域】
[0001]本發明屬於網絡通信【技術領域】,具體涉及一種基於應用層中繼的多徑傳輸系統及方法。
【背景技術】
[0002]傳統IP網絡中數據傳輸主要依賴基於網絡層預設路由的單一路徑,上層網絡協議沒有選擇傳輸路徑的能力。然而,預設路由路徑在很多情況下並不是最優的,特別是當經過由不同ISP(Internet Service Provider,網絡服務提供商)提供的網絡時,ISP通常選擇適合於本地策略需求的域間路由,而不是選擇具有最好性能的路徑,這將導致預設路由通常具有較低的可靠性和可用性。另外,基於傳統路由技術構建的單徑傳輸模式,難以滿足高帶寬、高速率媒體傳輸應用的需求,已成為制約高清視頻等高帶寬業務需求應用的發展瓶頸。因此,終端用戶通常在端到端延時、丟包率和吞吐量等方面獲得不了最優性能。
[0003]隨著4G、光纖到戶等接入網絡技術的發展,具有高接入帶寬的用戶終端日益普遍,網絡帶寬瓶頸正逐漸由用戶接入網絡轉移到骨幹網絡。因此,在通信端點之間並發使用多條路徑即多徑傳輸,將有助於突破單經傳輸的帶寬約束,在一定程度上提升網絡資源利用率,提高網絡可靠性和吞吐量,同時增強用戶的業務體驗。多路徑傳輸已被證明是一種可用於提高數據傳送效率的有效方式。
[0004]為了實現多徑傳輸,關鍵問題之一是如何構建源端和目的端之間的多條路徑。在網絡層,目前傳統的IP基礎設施只能提供單一的默認路徑;如果底層網絡支持源路由(source routing),源端可以發現到達目的端的所有可能的路由,然而每個數據包需要攜帶所有經由設備的地址信息,對於長路徑來說這將導致較高的開銷,而且需要對現有的網絡架構進行重大變更,網絡設備比如路由器需要執行特定的處理行為。在傳輸層,相關研究利用具有多個網絡接口的終端設備(即多宿主機,mult1-homed hosts)建立端到端的多條路徑,具有多種無線網絡和有線網絡接口的終端設備逐步增多為此方面研究奠定了基礎,然而這種傳輸層多徑傳輸方法需要特定的終端設備網絡環境,而且需要更新終端設備現有的網絡協議棧,因此與網絡層多徑傳輸技術一樣面臨著大規模部署的問題。MPRTP(MultipathRealtime Transport Protocol,多徑實時傳輸協議)草案定義了一種多徑實時傳輸協議,雖然是應用層協議,但是僅限於實時媒體的多徑傳輸應用,而且也限制於多宿主主機的網絡條件。
[0005]總的來說,雖然多徑傳輸近年來受到越來越多的關注,但是目前所有的多徑傳輸方法存在以下的一種或多種缺點:1)只適用於一種特定類型的應用程式,比如多媒體數據的實時傳輸或者數據流的可靠傳輸;2)對終端設備的網絡設置有一定要求,比如多宿主設備;3)對網絡設備比如路由器的處理行為有一定要求。
【發明內容】
[0006]針對現有技術存在的不足,本發明提供一種基於應用層中繼的多徑傳輸系統及方法。
[0007]本發明的技術方案:
[0008]一種基於應用層中繼的多徑傳輸系統,包括:用戶代理和中繼服務系統;
[0009]所述用戶代理為位於終端設備的邏輯實體,處在網絡協議棧的應用層,用於基於傳輸層用戶數據報協議UDP,為上層應用提供多徑數據傳輸;所述用戶代理劃分為作為發送端的用戶代理和作為接收端的用戶代理;
[0010]所述中繼服務系統置於作為發送端的用戶代理和作為接收端的用戶代理之間,包括一個或多個中繼服務控制器,以及一個或多個中繼服務轉發器;所述中繼服務系統用於為用戶代理之間的數據傳輸提供中繼路徑;所述中繼路徑為用戶代理之間經由一個或多個中繼服務轉發器的路徑;
[0011]所述作為發送端的用戶代理:用於根據從中繼服務控制器獲得的一條或多條中繼路徑的路徑信息,將從上層應用接收的原始數據流封裝為子流多徑傳輸數據包,並沿著一條或多條中繼路徑發送至作為接收端的用戶代理;
[0012]所述作為接收端的用戶代理用於將接收到的子流多徑傳輸數據包重組為原始數據流,並傳遞至上層應用;
[0013]所述中繼服務控制器用於管理所述中繼服務轉發器和所述中繼路徑;
[0014]所述中繼服務轉發器用於基於傳輸層用戶數據報協議UDP轉發用戶代理之間所傳輸的數據。
[0015]根據所述的基於應用層中繼的多徑傳輸系統,所述用戶代理:包括:路徑管理模塊、特定應用傳輸處理模塊、子流劃分模塊、子流封裝與解封裝模塊、子流重組模塊和子流傳輸質量報告模塊;
[0016]所述路徑管理模塊:(a)用於在數據傳輸之前或數據傳輸過程中,向中繼服務控制器發送路徑分配請求消息,並從中繼服務控制器收集中繼路徑信息;所述中繼路徑信息包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;(b)為了防止中繼服務轉發器對在預設時間閾值內沒有進行數據傳輸的中繼路徑進行回收,路徑管理模塊周期性地為中繼路徑發送子流保活包對中繼路徑進行維護;(C)當用戶代理之間的數據傳輸結束後,向中繼服務控制器發送路徑釋放請求消息;
[0017]所述特定應用傳輸處理模塊用於根據應用類型完成特定的傳輸處理:(a)對於從上層應用接收到的待發送的原始數據流,若應用類型為需要實時傳輸的音視頻數據,則對時間戳標記、編解碼類型和整流序列號進行設置,並將設置後的數據流傳遞給子流劃分模塊;若應用類型為需要可靠傳輸的文件數據,則對整流序列號、起始標記和結束標記進行設置並將設置後的數據流傳遞給子流劃分模塊,以及進行擁塞控制、差錯控制和重傳控制;(b)對於從子流重組模塊接收到的重組後的數據子流,若應用類型為需要實時傳輸的音視頻數據,則根據時間戳標記和整流序列號,重組為原始數據流並傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,則根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組為原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制;
[0018]所述子流劃分模塊用於選擇一條或者多條中繼路徑作為活動路徑,並根據數據流劃分策略,將從特定應用傳輸處理模塊接收到的待發送的數據流,劃分成若干待發送的數據子流,且將每個待發送的數據子流綁定到一條活動路徑,傳遞給子流封裝與解封裝模塊;所述數據流劃分策略根據應用類型和中繼路徑的傳輸質量信息進行制定;
[0019]所述子流封裝與解封裝模塊:(a)用於將從子流劃分模塊接收到的待發送的數據子流按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP發送至該數據子流所綁定的活動路徑的下一跳傳輸地址;所述子流多徑傳輸數據包,包括子流多徑傳輸數據包首部和子流多徑傳輸數據包載荷;所述子流多徑傳輸數據包首部含有路徑標識符和子流序列號;所述子流多徑傳輸數據包載荷指的是構成數據子流的數據塊;
[0020](b)用於基於傳輸層用戶數據報協議UDP接收到子流多徑傳輸數據包後,提取出數據子流的數據塊以及相應的路徑標識符和子流序列號,並傳遞給子流重組模塊;
[0021]所述子流重組模塊用於根據相應的路徑標識符和子流序列號,對接收到的數據子流的數據塊進行重組,並將重組後的數據子流傳遞給特定應用傳輸處理模塊;
[0022]所述子流傳輸質量報告模塊用於統計和反饋中繼路徑的數據傳輸質量:(a)作為發送端的用戶代理為每個活動路徑產生子流發送者報告包,所述子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數,沿著該活動路徑傳送至作為接收端的用戶代理;(b)作為接收端的用戶代理統計每個活動路徑的傳輸質量信息,並為每個活動路徑產生子流接收者報告包;所述子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延,發送至作為發送端的用戶代理。
[0023]根據所述的基於應用層中繼的多徑傳輸系統,所述中繼服務控制器,包括:中繼服務轉發器管理模塊、中繼網絡管理模塊和中繼路徑管理模塊;
[0024]所述中繼服務轉發器管理模塊:(a)處理來自於中繼服務轉發器的中繼服務註冊消息、中繼服務開啟消息、中繼服務暫停消息以及中繼服務關閉消息;(b)收到中繼服務註冊消息之後,向發送該消息的中繼服務轉發器發送性能查詢消息,以查詢該中繼服務轉發器的性能信息,包括:處理器能力、存儲能力和網絡帶寬;(c)周期性地向每個中繼服務轉發器發送狀態查詢消息,以查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率;
[0025]所述中繼網絡管理模塊:(a)向每個中繼服務轉發器發送連接保活消息,以獲得每個中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能;(b)管理中繼網絡的拓撲信息;所述覆蓋路徑由多個物理鏈路組成;所述覆蓋路徑的傳輸性能包括丟包率、延時和可用帶寬;所述中繼網絡由中繼服務轉發器及中繼服務轉發器之間的覆蓋路徑組成;所述拓撲信息是指任意兩個中繼服務轉發器之間是否存在覆蓋路徑以及該覆蓋路徑的傳輸?生倉泛;
[0026]所述中繼路徑管理模塊:(a)在接收到作為發送端的用戶代理髮送的路徑分配請求消息後,為用戶代理之間的數據傳輸分配一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識 符,並向中繼路徑所經由的所有中繼服務轉發器和作為發送端的用戶代理髮送中繼路徑信息,所述發送給中繼服務轉發器的中繼路徑信息,包括路徑標識符和該中繼服務轉發器的下一跳傳輸地址;所述發送給作為發送端的用戶代理的中繼路徑信息,包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;(b)在接收到作為發送端的用戶代理髮送的路徑釋放請求消息後,查找該消息所對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息,釋放所分配的中繼路徑。[0027]根據所述的基於應用層中繼的多徑傳輸系統,所述中繼服務轉發器包括中繼服務管理模塊、拓撲發現和性能測量模塊、路徑表管理模塊和子流轉發模塊;
[0028]所述中繼服務管理模塊:(a)中繼服務轉發器啟動後,向中繼服務控制器發起中繼服務註冊消息進行中繼服務註冊,所述中繼服務註冊消息包括中繼服務轉發器標識符、提供中繼服務的地址和埠信息;(b)在中繼服務註冊成功之後,向中繼服務控制器發送中繼服務開啟消息,以告知中繼服務控制器已開始中繼服務;(C)向中繼服務控制器發送中繼服務暫停消息,以告知中繼服務控制器暫停接收新的路徑添加消息;(d)在斷開與中繼服務控制器的連接之前向中繼服務控制器發送中繼服務關閉消息;
[0029]所述拓撲發現和性能測量模塊;(a)通過拓撲發現過程,確定本中繼服務轉發器與其它中繼服務轉發器之間的覆蓋路徑;(b)通過性能測量過程,獲取本中繼服務轉發器所關聯的覆蓋路徑的傳輸性能;(C)將本中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能信息傳送給中繼服務控制器;
[0030]所述路徑表管理模塊用於根據來自於中繼服務控制器的路徑添加請求消息和路徑刪除請求消息,對本地路徑表進行中繼路徑的添加和中繼路徑的刪除操作;所述本地路徑表用於存儲經由本中繼服務轉發器的中繼路徑信息,該中繼路徑信息包括路徑標識符和該中繼服務轉發器的下一跳傳輸地址;
[0031]所述子流轉發模塊用於基於傳輸層用戶數據報協議UDP並基於本地路徑表對數據子流包進行轉發;所述數據子流包,包括:子流多徑傳輸數據包、子流發送者報告包和子流保活包。
[0032]採用所述的基於應用層中繼的多徑傳輸系統的多徑傳輸方法,包括以下步驟:
[0033]步驟1:中繼服務轉發器向中繼服務控制器註冊並開啟中繼服務;
[0034] 步驟1.1:中繼服務轉發器啟動後,向中繼服務控制器發起中繼服務註冊消息進行中繼服務註冊;
[0035]步驟1.2:在中繼服務註冊成功之後,中繼服務轉發器向中繼服務控制器發送中繼服務開啟消息,以告知中繼服務控制器已開始中繼服務;
[0036]步驟2:中繼服務控制器獲取中繼服務轉發器的性能信息和狀態信息,以及中繼服務轉發器之間的覆蓋路徑信息;
[0037]步驟2.1:中繼服務控制器向註冊後的中繼服務轉發器發送性能查詢消息,以查詢該中繼服務轉發器的性能信息,包括:處理器能力、存儲能力和網絡帶寬;
[0038]步驟2.2:中繼服務控制器周期性地向每個中繼服務轉發器發送狀態查詢消息,以查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率;
[0039]步驟2.3:中繼服務控制器向註冊後的中繼服務轉發器發送連接保活消息,以查詢中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能;
[0040]步驟3:作為發送端的用戶代理從中繼服務控制器獲取一條或者多條中繼路徑;
[0041]步驟4:作為發送端的用戶代理按照數據流劃分策略,對從上層應用獲得的原始數據流進行劃分成數據子流,並沿著所獲取的中繼路徑進行數據傳輸;
[0042] 步驟5:中繼服務轉發器根據本地路徑表,且基於傳輸層用戶數據報協議UDP,向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發數據;[0043]步驟6:作為接收端的用戶代理將接收到的數據重組為原始數據流並傳遞給上層應用,並向作為發送端的用戶代理髮送中繼路徑的傳輸質量信息;
[0044]步驟7:作為發送端的用戶代理根據接收到的中繼路徑的傳輸質量信息,調整數據流劃分策略;
[0045]步驟8:重複執行步驟4至步驟7,直至待發送的數據流全部傳輸完畢;
[0046]步驟9:釋放中繼路徑。
[0047]根據所述的基於應用層中繼的多徑傳輸方法,步驟3作為發送端的用戶代理從中繼服務控制器獲取中繼路徑,包括以下兩種方式:
[0048]第一種方式:作為發送端的用戶代理直接從中繼服務控制器獲取中繼路徑,包括以下步驟:
[0049]步驟3.1:作為發送端的用戶代理向中繼服務控制器發送路徑分配請求消息;
[0050]路徑分配請求消息攜帶作為發送端的用戶代理的數據傳輸地址信息、作為接收端的用戶代理的數據傳輸地址信息和所需的中繼路徑條數;
[0051]步驟3.2:根據接收到的路徑分配請求消息和中繼服務轉發器的性能信息和狀態信息,中繼服務控制器選擇一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符; [0052]步驟3.3:中繼服務控制器向所選擇的中繼路徑上的所有中繼服務轉發器發送路徑添加請求消息;
[0053]路徑添加請求消息攜帶路徑標識符和接收該消息的中繼服務轉發器的下一跳傳輸地址信息;
[0054]步驟3.4:中繼服務轉發器根據路徑添加請求消息,檢查本地路徑表是否存在該消息所指定的中繼路徑,若存在,則該中繼服務轉發器拒絕該路徑添加請求消息並向中繼服務控制器回復一個路徑添加失敗響應消息;若不存在,則該中繼服務轉發器將該消息所指定的中繼路徑的路徑信息添加至本地路徑表中,並向中繼服務控制器回復一個路徑添加成功響應消息;
[0055]步驟3.5:中繼服務控制器判斷當前分配成功的中繼路徑條數是否符合路徑分配請求消息要求的中繼路徑條數,是,則執行步驟3.6,否,則執行步驟3.2 ;
[0056]若中繼服務控制器所選擇的一條中繼路徑上至少一個中繼服務轉發器回復了路徑添加失敗響應消息,則該條中繼路徑分配失敗;若中繼服務控制器所選擇的一條中繼路徑上所有中繼服務轉發器均回復了路徑添加成功響應消息,則該條中繼路徑分配成功;
[0057]步驟3.6:中繼服務控制器向作為發送端的用戶代理髮送路徑分配響應消息;
[0058]所述路徑分配響應消息攜帶有所有分配成功的中繼路徑的路徑信息,包括:路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;
[0059]第二種方式:作為發送端的用戶代理利用建立數據傳輸會話的帶外信令從中繼服務控制器獲取中繼路徑,其方法如下:
[0060]帶外信令伺服器在接收到來自於作為發送端的用戶代理的建立數據傳輸會話的信令請求時,代替作為發送端的用戶代理從中繼服務控制器獲取中繼路徑,並將獲得的中繼路徑信息插入到相應的信令消息傳送給作為發送端的用戶代理。
[0061]根據所述的基於應用層中繼的多徑傳輸方法,步驟4包括以下步驟:[0062]步驟4.1根據數據傳輸需求和路徑分配響應消息,作為發送端的用戶代理選擇一條或者多條中繼路徑作為活動路徑;
[0063]步驟4.2:作為發送端的用戶代理根據應用類型對待發送數據進行特定的傳輸處理;
[0064]若應用類型為需要實時傳輸的音視頻數據,作為發送端的用戶代理設置時間戳標記、編解碼類型和整流序列號;若應用類型為需要可靠傳輸的文件數據,作為發送端的用戶代理設置整流序列號、起始標記和結束標記,並進行擁塞控制、差錯控制和重傳控制;
[0065]步驟4.3:作為發送端的用戶代理根據數據流劃分策略,將待發送的數據流劃分成若干待發送的數據子流,且分別將每個待發送的數據子流綁定到一條活動路徑;
[0066]步驟4.4:作為發送端的用戶代理將數據子流按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP將該一個或多個子流多徑傳輸數據包發送至所述數據子流所綁定的活動路徑的下一跳傳輸地址;
[0067]步驟4.5:作為發送端的用戶代理周期性地為每個活動路徑產生子流發送者報告包,並基於傳輸層用戶數據報協議UDP將該子流發送者報告包發送至該活動路徑的下一跳傳輸地址;
[0068]所述子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數;
[0069]步驟4.6:作為發送端的用戶代理周期性地為在預設時間閾值內沒有進行數據傳輸的中繼路徑產生子流保活包,並基於傳輸層用戶數據報協議UDP將該子流保活包發送至該中繼路徑的下一跳傳輸地址。
[0070]根據所述的基於應用層中繼的多徑傳輸方法,步驟5包括以下步驟:
[0071]步驟5.1:中繼服務轉發器基於傳輸層用戶數據報協議UDP從作為發送端的用戶代理或者上一跳中繼服務轉發器接收數據子流包;
[0072]步驟5.2:從接收到的數據子流包中提取路徑標識符,根據路徑標識符在本地路徑表中進行匹配查找,若匹配失敗,則丟棄該數據子流包;若匹配成功,則基於傳輸層用戶數據報協議UDP向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發所接收到的數據子流包。根據所述的基於應用層中繼的多徑傳輸方法,步驟6包括以下步驟:
[0073]步驟6.1:作為接收端的用戶代理基於傳輸層用戶數據報協議UDP接收子流多徑傳輸數據包,並提取出子流數據塊以及相應的路徑標識符和子流序列號信息;
[0074]步驟6.2:作為接收端的用戶代理按照路徑標識符和子流序列號對數據子流進行重組;
[0075]步驟6.3:作為接收端的用戶代理根據應用類型對重組後的數據子流進行特定的傳輸處理,重組出原始數據流並傳遞給上層應用;
[0076]若應用類型為需要實時傳輸的音視頻數據,作為接收端的用戶代理處理時間戳標記、編解碼類型和整流序列號,並根據時間戳標記和整流序列號,重組出原始數據流傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,作為接收端的用戶代理根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組出原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制
[0077]步驟6.4:作為接收端的用戶代理統計每個活動路徑的傳輸質量信息,並在接收到子流發送者報告包後為每個活動路徑產生子流接收者報告包,並基於傳輸層用戶數據報協議UDP將該子流接收者報告包發送至作為發送端的用戶代理;
[0078]所述子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延。
[0079]根據所述的基於應用層中繼的多徑傳輸方法,步驟9釋放中繼路徑,包括以下兩種方式:
[0080]第一種方式:作為發送端的用戶代理直接請求中繼服務控制器釋放中繼路徑,包括以下步驟:
[0081]步驟9.1:作為發送端的用戶代理向中繼服務控制器發送路徑釋放請求消息;
[0082]路徑釋放請求消息攜帶一個或多個路徑標識符;
[0083]步驟9.2:根據接收的路徑釋放請求消息,中繼服務控制器查找與路徑標識符相對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息;
[0084]路徑刪除請求消息攜帶路徑標識符;
[0085]步驟9.3:根據接收的路徑刪除請求消息,中繼服務轉發器從本地路徑表中刪除該消息所指定的中繼路徑,並向中繼服務控制器回復一個路徑刪除成功響應消息;
[0086]步驟9.4:中繼服務控制器向作為發送端的用戶代理髮送路徑釋放響應消息,中繼路徑釋放完畢;
[0087]第二種方式:作為發送端的用戶代理利用結束數據傳輸會話的帶外信令請求中繼服務控制器釋放中繼路徑,其方法如下:
[0088]帶外信令伺服器在接收到來自於作為發送端的用戶代理的結束數據傳輸會話的信令請求時,代替作為發送端的用戶代理請求中繼服務控制器釋放中繼路徑。
[0089]本發明的有益效果:
[0090]1、網絡無關性:現有的IP網絡無需做任何修改;欲採用多徑傳輸的終端設備無需任何特定的網絡環境;
[0091]2、通用性:中繼路徑所經由的中繼服務轉發器僅提供與具體應用無關的簡單UDP轉發服務,因此本發明是一種通用的多徑傳輸系統及方法,適合於各種上層應用;
[0092]3、集中式控制:中繼服務控制器提供集中化的路徑分配控制功能,便於實施網絡拓撲相關的策略,有利於從更宏觀的角度調配傳輸帶寬等網絡資源,提高網絡資源的利用率。
【專利附圖】
【附圖說明】
[0093]圖1為本發明一種實施方式的基於應用層中繼的多徑傳輸系統結構示意圖;
[0094]圖2為本發明一種實施方式的用戶代理的結構示意圖;
[0095]圖3為本發明一種實施方式的中繼服務控制器的結構示意圖;
[0096]圖4為本發明一種實施方式的中繼服務轉發器的結構示意圖;
[0097]圖5為本發明一種實施方式的基於應用層中繼的多徑傳輸方法流程圖;
[0098]圖6為本發明一種實施方式的基於應用層中繼的多徑傳輸過程示意圖。
【具體實施方式】
[0099]下面結合附圖對本發明的一種實施方式作詳細說明。[0100]本實施方式的基於應用層中繼的多徑傳輸系統,如圖1所示,包括:用戶代理和中繼服務系統;
[0101]用戶代理為位於終端設備的邏輯實體,處在網絡協議棧的應用層,用於基於傳輸層用戶數據報協議UDP,為上層應用提供多徑數據傳輸。在一次數據傳輸過程中,負責發送數據的用戶代理稱為作為發送端的用戶代理;負責接收數據的用戶代理稱為作為接收端的用戶代理。
[0102]中繼服務系統置於作為發送端的用戶代理和作為接收端的用戶代理之間,由中繼服務控制器和中繼服務轉發器組成。中繼服務系統用於為用戶代理之間的數據傳輸提供中繼路徑。中繼路徑為用戶代理之間經由一個或多個中繼服務轉發器的路徑。
[0103]作為發送端的用戶代理根據從中繼服務控制器獲得的一條或多條中繼路徑的路徑信息,將從上層應用接收的原始數據流封裝為子流多徑傳輸數據包,並沿著一條或多條中繼路徑發送至作為接收端的用戶代理。作為接收端的用戶代理將接收到的子流多徑傳輸數據包重組為原始數據流,並傳遞至上層應用。
[0104]本實施方式中的中繼服務控制器負責管理中繼服務系統中的中繼服務轉發器和中繼路徑。中繼服務控制器與其它組件之間的通信遵循中繼服務控制協議。當存在大量終端用戶和中繼服務轉發器時,系統可以部署多個中繼服務控制器,每個中繼服務控制器管理一部分中繼服務轉發器,並為一部分終端用戶提供中繼路徑。
[0105]本實施方式中的中繼服務轉發器用於基於傳輸層用戶數據報協議UDP轉發用戶代理之間所傳輸的數據。根據本地存儲的路徑表進行數據包的路由以及轉發。通過大量部署中繼服務轉發器,系 統可以為通信端點提供經由中繼服務轉發器的中繼路徑,為終端之間的通信提供多徑條件。用戶代理可以自主地選擇一條或者多條路徑進行數據傳送。中繼服務轉發器可以以不同的方式加以部署。根據具體應用的需求,應用業務提供商可以在系統中部署大量的具有高性能的專用伺服器,形成一個穩定的網絡,這些專用伺服器通常具有很高的網絡帶寬以及計算性能。另外,系統中訪問相同應用的參與節點自身也可以自行組織起來,形成一個動態的網絡,其中具有較高性能的節點可以為其它節點提供中繼轉發功能。
[0106]本實施方式中的作為發送端的用戶代理負責收集備選的中繼路徑。如圖1所示,用戶代理可採用兩種可選方式收集備選的中繼路徑:第一種方式是,作為發送端的用戶代理使用中繼服務控制協議直接與中繼服務控制器交互,從而獲得備選中繼路徑;第二種方式是,作為發送端的用戶代理利用在通信端點之間建立會話的帶外信令獲取備選的中繼路徑,帶外信令伺服器需要加以擴展以支持中繼服務控制協議所提供的接口,在接收到通信端點的要求建立通信會話的信令請求時,帶外信令伺服器代替用戶代理向中繼服務控制器請求分配中繼路徑,並將所分配的中繼路徑信息插入到相應的信令消息發送給作為發送端的用戶代理。第二種方式的優點是可以避免中繼服務控制器和用戶代理之間的大量連接,節省資源同時保證了系統可擴展性,另外,通過限制只與可信任的帶外信令伺服器之間通信,可以提升中繼服務控制器的安全性。
[0107]本實施方式中的用戶代理的功能結構如圖2所示,包括路徑管理模塊、特定應用傳輸處理模塊、子流劃分模塊、子流封裝與解封裝模塊、子流重組模塊和子流傳輸質量報告模塊。[0108]路徑管理模塊負責收集和維護多條中繼路徑。如前面所述,作為發送端的用戶代理可以通過兩種方式收集備選的中繼路徑:建立通信會話的帶外信令和中繼服務控制協議。對於第一種方式,在數據傳輸之前或數據傳輸過程中,路徑管理模塊向中繼服務控制器發送路徑分配請求消息,從路徑分配成功響應消息中獲得一條或多條中繼路徑的路徑信息。中繼路徑信息包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址。為了防止中繼服務轉發器對在預設時間閾值內沒有進行數據傳輸的中繼路徑進行回收,路徑管理模塊周期性地為中繼路徑發送子流保活包對中繼路徑進行維護。當用戶代理之間的數據傳輸結束後,路徑管理模塊向中繼服務控制器發送路徑釋放請求消息。
[0109]特定應用傳輸處理模塊負責根據應用類型完成特定的傳輸處理,比如音視頻媒體數據的實時傳輸要求表達數據之間的時間關係,文件共享等可靠性傳輸要求具有丟包重傳的可靠性保護機制、流量控制等。對於從上層應用接收到的待發送的原始數據流,若應用類型為需要實時傳輸的音視頻數據,特定應用傳輸處理模塊對時間戳標記、編解碼類型和整流序列號進行設置,並將設置後的數據流傳遞給子流劃分模塊;若應用類型為需要可靠傳輸的文件數據,特定應用傳輸處理模塊對整流序列號、起始標記和結束標記進行設置並將設置後的數據流傳遞給子流劃分模塊,以及進行擁塞控制、差錯控制和重傳控制。對於從子流重組模塊接收到的重組後的數據子流,若應用類型為需要實時傳輸的音視頻數據,特定應用傳輸處理模塊根據時間戳標記和整流序列號,重組為原始數據流並傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,特定應用傳輸處理模塊根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組為原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制。
[0110]子流劃分模塊負責選擇一條或者多條中繼路徑作為活動路徑,並根據數據流劃分策略,將從特定應用傳輸處理模塊接收到的待發送的數據流,劃分成若干待發送的數據子流,且將每個待發送的數據子流綁定到一條活動路徑,傳遞給子流封裝與解封裝模塊。其中,數據流劃分策略根據應用類型和中繼路徑的傳輸質量信息進行制定。
[0111]子流封裝與解封裝模塊負責數據子流的封裝和解封裝功能。子流封裝與解封裝模塊將從子流劃分模塊接收到的待發送的數據子流,按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP發送至該數據子流所綁定的活動路徑的下一跳傳輸地址。其中,子流多徑傳輸數據包包括子流多徑傳輸數據包首部和子流多徑傳輸數據包載荷兩部分,子流多徑傳輸數據包首部含有路徑標識符和子流序列號,子流序列號的初始值由作為發送端的用戶代理隨機產生;子流多徑傳輸數據包載荷指的是構成數據子流的數據塊。基於傳輸層用戶數據報協議UDP接收到子流多徑傳輸數據包後,子流封裝與解封裝模塊提取出數據子流的數據塊以及相應的路徑標識符和子流序列號,並傳遞給子流重組模塊。
[0112]子流重組模塊負責根據相應的路徑標識符和子流序列號,對接收到的數據子流的數據塊進行重組,並將重組後的數據子流傳遞給特定應用傳輸處理模塊。
[0113]子流傳輸質量報告模塊負責統計和反饋中繼路徑的數據傳輸質量。為了充分利用多條中繼路徑的傳輸能力,並做到按傳送質量的負載均衡,作為發送端的用戶代理需要監控每條路徑的傳送質量。為此,作為發送端的用戶代理為每個活動路徑產生子流發送者報告包,子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數,沿著該活動路徑傳送至作為接收端的用戶代理。作為接收端的用戶代理根據路徑標識符、子流序列號和時間戳計算每個活動路徑的丟包率、抖動、往返時延,統計出每個活動路徑的傳輸質量信息,在接收到來自於作為發送端的用戶代理的子流發送者報告包之後為每個活動路徑產生子流接收者報告包,子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延,沿著作為接收端的用戶代理與作為發送端的用戶代理之間的網絡路徑發送至作為發送端的用戶代理。
[0114]本實施方式中的中繼服務控制器的功能結構如圖3所示,包括中繼服務轉發器管理模塊、中繼網絡管理模塊和中繼路徑管理模塊。
[0115]中繼服務轉發器管理模塊負責管理中繼服務系統中所有的中繼服務轉發器。通過處理來自於中繼服務轉發器的中繼服務註冊消息、中繼服務開啟消息、中繼服務暫停消息以及中繼服務關閉消息,中繼服務轉發器管理模塊維護著中繼服務系統中所有可用的中繼服務轉發器。收到中繼服務註冊消息之後,中繼服務轉發器管理模塊向發送該消息的中繼服務轉發器發送性能查詢消息,用於查詢中繼服務轉發器的性能信息,包括處理器能力、存儲能力和網絡帶寬;中繼服務轉發器管理模塊周期性地向每個中繼服務轉發器發送狀態查詢消息,用於查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率。
[0116]中繼網絡管理模塊負責管理中繼網絡的拓撲信息。中繼網絡由中繼服務轉發器及中繼服務轉發器之間的覆蓋路徑組成。中繼網絡的拓撲信息是指任意兩個中繼服務轉發器之間是否存在覆蓋路徑以及該覆蓋路徑的傳輸性能。覆蓋路徑由多個物理鏈路組成。覆蓋路徑的傳輸性能包括丟包率、延時和可用帶寬。中繼網絡管理模塊向每個中繼服務轉發器發送連接保活消息,以獲得每個中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性倉泛。
[0117]中繼路徑管理模塊負責中繼路徑的分配和釋放。在接收到作為發送端的用戶代理髮送的路徑分配請求消息後,中繼路徑管理模塊根據路徑分配策略為之分配一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符。其中,路徑分配策略根據作為發送端的用戶代理地址、作為接收端的用戶代理地址、應用類型、以及各個中繼服務轉發器的性能和負載信息進行制定。在分配中繼路徑時,中繼路徑管理模塊向中繼路徑上所有的中繼服務轉發器發送路徑添加請求消息,若至少一個中繼服務轉發器響應失敗,該中繼路徑分配失敗;若中繼路徑上所有中繼服務轉發器均響應成功,該中繼路徑分配成功。路徑添加請求消息攜帶路徑標識符和接收該消息的中繼服務轉發器的下一跳傳輸地址等信息。中繼路徑管理模塊向作為發送端的用戶代理髮送分配成功的中繼路徑信息,包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址。在接收到作為發送端的用戶代理髮送的路徑釋放請求消息後,查找該消息所對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息,釋放所分配的中繼路徑。
[0118]本實施方式中的中繼服務轉發器的功能結構如圖4所示,包括中繼服務管理模塊、拓撲發現和性能測量模塊、路徑表管理模塊和子流轉發模塊。
[0119] 中繼服務管理模塊負責中繼服務的註冊、開啟、暫停、關閉功能。中繼服務轉發器啟動後與中繼服務控制器採用TLS加密方式建立面向連接的安全通道。當連接建立之後,中繼服務管理模塊向中繼服務控制器發起中繼服務註冊消息,包括中繼服務轉發器標識符、提供中繼服務的地址和埠信息。在中繼服務註冊成功之後,中繼服務管理模塊向中繼服務控制器發送中繼服務開啟消息,用於告知中繼服務控制器已開始中繼服務。當負載較重或者其它情況發生時,中繼服務管理模塊向中繼服務控制器發送中繼服務暫停消息,用於告知中繼服務控制器暫停接收新的路徑添加消息。在這期間,子流轉發模塊仍然為已存在的中繼路徑提供中繼服務。當恢復到正常狀態時,中繼服務管理模塊重新向中繼服務控制器發送中繼服務開啟消息,用於告知中繼服務控制器已重新開始中繼服務。當希望永久停止中繼服務時,中繼服務管理模塊在斷開與中繼服務控制器的連接之前向其發送中繼服務關閉消息。在這種情況下,中繼服務控制器可以及時地做一些補救措施,比如,為受影響的數據流指定一條或多條新的中繼路徑。
[0120]拓撲發現和性能測量模塊負責中繼服務轉發器之間的拓撲發現和性能測量功能。拓撲發現和性能測量模塊通過手工配置或者其它方式獲得其它中繼服務轉發器信息。通過拓撲發現過程,拓撲發現和性能測量模塊可以確定與其它中繼服務轉發器之間是否存在一條覆蓋路徑。拓撲發現過程可以基於下面的規則:位於同一個自治域的中繼服務轉發器之間存在一條覆蓋路徑;如果兩個自治域之間存在一條域間鏈路,則位於這兩個自治域的中繼服務轉發器之間存在一條覆蓋路徑。覆蓋路徑通常由多個物理鏈路組成;除了覆蓋流量,非覆蓋流量也將使用相同的物理鏈路;另外,中繼服務轉發器提供的中繼服務工作在應用層。因此,中繼服務轉發器不能控制或者管理IP層的網絡資源,只能依賴於測量機制獲取所關聯的覆蓋路徑的性能信息。通過性能測量過程,拓撲發現和性能測量模塊可以獲取本中繼服務轉發器所關聯的覆蓋路徑的傳輸性能,包括丟包率、延時、可用帶寬。拓撲發現和性能測量模塊通過連接保活消息將所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能信息傳送給中繼服務控制器。
[0121]路徑表管理模塊負責維護本地路由表信息。本地路徑表用於存儲經由本中繼服務轉發器的中繼路徑信息,該中繼路徑信息包括路徑標識符和該中繼服務轉發器的下一跳傳輸地址。中繼服務控制 器通過中繼服務控制協議管理中繼服務轉發器的本地路徑表。當接收到路徑添加消息,路徑表管理模塊檢查本地路徑表是否已經存在具有相同路徑標識符的中繼路徑,如果存在,則拒絕該請求並回復一個路徑添加失敗響應消息;如果不存在,則將該中繼路徑信息添加至本地路徑表中並回復一個路徑添加成功響應消息。當接收到路徑刪除消息,路徑表管理模塊檢查本地路徑表是否存在具有指定路徑標識符的中繼路徑,如果存在,則刪除該中繼路徑並回復一個路徑刪除成功響應消息;如果不存在,則回復一個路徑刪除失敗響應消息。當接收到路徑更新請求消息,路徑表管理模塊檢查本地路徑表是否存在具有指定路徑標識的中繼路徑,如果存在,則重置該中繼路徑信息並回復一個路徑更新成功響應消息;如果不存在,則回復一個路徑更新失敗響應消息。
[0122]子流轉發模炔基於傳輸層用戶數據報協議UDP並基於本地路徑表對數據子流包進行轉發。數據子流包包括子流多徑傳輸數據包、子流發送者報告包和子流保活包。子流轉發模塊利用傳輸層的用戶數據報協議UDP從作為發送端的用戶代理或者上一跳中繼服務轉發器接收數據子流包。接收到數據子流包後,子流轉發模塊提取出路徑標識符,根據路徑標識符在本地路徑表中進行匹配查找。如果在本地路徑表中沒有找到匹配的中繼路徑,子流轉發模塊丟棄該數據子流包;如果找到匹配的中繼路徑,子流轉發模塊則基於傳輸層用戶數據報協議UDP向下一跳傳輸地址轉發該數據子流包。[0123]採用本實施方式的基於應用層中繼的多徑傳輸系統的多徑傳輸方法,如圖5和圖6所示,包括如下步驟:
[0124]步驟1:中繼服務轉發器向中繼服務控制器註冊並開啟中繼服務;
[0125]首先,本實施方式中的第一中繼服務轉發器、第二中繼服務轉發器和第三中繼服務轉發器分別與中繼服務控制器之間採用TLS加密方式建立面向連接的安全通道。
[0126]當連接建立之後,中繼服務轉發器向中繼服務控制器發起中繼服務註冊消息,包括中繼服務轉發器標識符、提供中繼服務的地址和埠信息。中繼服務控制器回送中繼服務註冊響應消息,若為註冊失敗響應消息,中繼服務轉發器退出服務;若為註冊成功響應消息,中繼服務轉發器向中繼服務控制器發送中繼服務開啟消息,用於告知中繼服務控制器已開始中繼服務,中繼服務控制器回送中繼服務開啟響應消息並指示中繼服務啟動結果。當負載較重或者其它情況發生時,中繼服務轉發器可以向中繼服務控制器發送中繼服務暫停消息,用於告知中繼服務控制器暫停接收新的路徑添加消息。在這期間,中繼服務轉發器仍然為已存在的中繼路徑提供中繼服務。當恢復到正常狀態時,中繼服務轉發器重新向中繼服務控制器發送中繼服務開啟消息,用於告知中繼服務控制器已重新開始中繼服務。當希望永久停止中繼服務時,中繼服務轉發器在斷開與中繼服務控制器的連接之前向其發送中繼服務關閉消息。
[0127]步驟2:中繼服務控制器獲取中繼服務轉發器的性能信息和狀態信息,以及中繼服務轉發器之間的覆蓋路徑信息;
[0128]步驟2.1:中繼服務控制器向註冊後的中繼服務轉發器發送性能查詢消息,以查詢該中繼服務轉發器的性能信息,包括:處理器能力、存儲能力和網絡帶寬; [0129]步驟2.2:中繼服務控制器周期性地向每個中繼服務轉發器發送狀態查詢消息,以查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率;
[0130]步驟2.3:中繼服務控制器向註冊後的中繼服務轉發器發送連接保活消息,以查詢中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能;
[0131]步驟3:作為發送端的用戶代理從中繼服務控制器獲取一條或者多條中繼路徑;
[0132]作為發送端的用戶代理可以通過以下兩種方式從中繼服務控制器獲取中繼路徑:
[0133]第一種方式是,作為發送端的用戶代理使用中繼服務控制協議直接從中繼服務控制器獲得備選中繼路徑,包括如下步驟:
[0134]步驟3.1:作為發送端的用戶代理向中繼服務控制器發送路徑分配請求消息,路徑分配請求消息攜帶作為發送端的用戶代理的數據傳輸地址信息、作為接收端的用戶代理的數據傳輸地址信息和所需的中繼路徑條數;
[0135]步驟3.2:根據接收到的路徑分配請求消息和中繼服務轉發器的性能信息和狀態信息,中繼服務控制器選擇一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符;
[0136]步驟3.3:中繼服務控制器向所選擇的中繼路徑上的所有中繼服務轉發器發送路徑添加請求消息,路徑添加請求消息攜帶路徑標識符和接收該消息的中繼服務轉發器的下一跳傳輸地址信息;[0137]步驟3.4:中繼服務轉發器根據路徑添加請求消息,檢查本地路徑表是否存在該消息所指定的中繼路徑,若存在,則該中繼服務轉發器拒絕該路徑添加請求消息並向中繼服務控制器回復一個路徑添加失敗響應消息;若不存在,則該中繼服務轉發器將該消息所指定的中繼路徑的路徑信息添加至本地路徑表中,並向中繼服務控制器回復一個路徑添加成功響應消息;
[0138]步驟3.5:中繼服務控制器判斷當前分配成功的中繼路徑條數是否符合路徑分配請求消息要求的中繼路徑條數,是,則執行步驟3.6,否,則執行步驟3.2 ;
[0139]若中繼服務控制器所選擇的一條中繼路徑上至少一個中繼服務轉發器回復了路徑添加失敗響應消息,則該條中繼路徑分配失敗;若中繼服務控制器所選擇的一條中繼路徑上所有中繼服務轉發器均回復了路徑添加成功響應消息,則該條中繼路徑分配成功;
[0140]步驟3.6:中繼服務控制器向作為發送端的用戶代理髮送路徑分配響應消息,路徑分配響應消息攜帶有所有分配成功的中繼路徑的路徑信息,包括:路徑標識符和作為發送端的用戶代理的下一跳傳輸地址。
[0141]第二種方式是,作為發送端的用戶代理利用建立數據傳輸會話的帶外信令從中繼服務控制器獲取中繼路徑,帶外信令伺服器需要加以擴展以支持中繼服務控制協議所提供的接口,在接收到來自於作為發送端的用戶代理的建立數據傳輸會話的信令請求時,帶外信令伺服器代替用戶代理向中繼服務控制器請求分配中繼路徑,並將所分配的中繼路徑信息插入到相應的信令消息發送給作為發送端的用戶代理;本實施方式採用了該第二種方式,包括如下步驟:
[0142]步驟S3.1:在數據傳輸之前,作為發送端的用戶代理向帶外信令伺服器發送通信開始請求;
[0143]步驟S3.2:帶外信令伺服器從接收到的通信開始請求中提取出應用類型,確定所需的中繼路徑條數,並向中繼服務控制器發送路徑分配請求消息,路徑分配請求消息攜帶作為發送端的用戶代理的數據傳輸地址信息、作為接收端的用戶代理的數據傳輸地址信息和所需的中繼路徑條數;
[0144]步驟S3.3:根據接收到的路徑分配請求消息和中繼服務轉發器的性能信息和狀態信息,中繼服務控制器選擇一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符;中繼服務控制器向所選擇的中繼路徑上的所有中繼服務轉發器發送路徑添加請求消息,路徑添加請求消息攜帶路徑標識符和接收該消息的中繼服務轉發器的下一跳傳輸地址信息;
[0145]如圖6所示,本實施方式的用戶代理A是作為發送端的用戶代理;用戶代理B是作為接收端的用戶代理;中繼服務控制器為用戶代理A和用戶代理B之間的數據流分配了兩條中繼路徑:第一條中繼路徑經由第一中繼服務轉發器,第二條中繼路徑依次經由第二中繼服務轉發器和第三中繼服務轉發器。中繼服務控制器向該三個選定的中繼服務轉發器發送路徑添加請求消息,發送給第一中繼服務轉發器的路徑添加請求消息中,下一跳傳輸地址為用戶代理B的地址;發送給第二中繼服務轉發器的路徑添加請求消息中,下一跳傳輸地址為第三中繼服務轉發器的地址;發送給第三中繼服務轉發器的路徑添加請求消息中,下一跳傳輸地址為用戶代理B的地址。
[0146]步驟S3.4:中繼服務轉發器根據路徑添加請求消息,檢查本地路徑表是否存在該消息所指定的中繼路徑,若存在,則該中繼服務轉發器拒絕該路徑添加請求消息並向中繼服務控制器回復一個路徑添加失敗響應消息;若不存在,則該中繼服務轉發器將該消息所指定的中繼路徑的路徑信息添加至本地路徑表中,並向中繼服務控制器回復一個路徑添加成功響應消息;
[0147]若中繼服務控制器所選擇的一條中繼路徑上至少一個中繼服務轉發器回復了路徑添加失敗響應消息,則該條中繼路徑分配失敗;若中繼服務控制器所選擇的一條中繼路徑上所有中繼服務轉發器均回復了路徑添加成功響應消息,則該條中繼路徑分配成功。中繼服務控制器判斷當前分配成功的中繼路徑條數是否符合路徑分配請求消息要求的中繼路徑條數,是,則執行步驟S3.5,否,則執行步驟S3.3 ;
[0148]步驟S3.5:中繼服務控制器向帶外信令伺服器發送路徑分配響應消息,路徑分配響應消息攜帶有所有分配成功的中繼路徑的路徑信息,包括:路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;
[0149]如圖6所示,本實施方式的中繼服務控制器發送給帶外信令伺服器的路徑分配響應消息攜帶了兩條中繼路徑的路徑信息,其中,第一條中繼路徑中的作為發送端的用戶代理的下一跳傳輸地址為第一中繼服務轉發器的地址;第二條中繼路徑中的作為發送端的用戶代理的下一跳傳輸地址為第二中繼服務轉發器的地址。
[0150]步驟S3.6:帶外信令伺服器將所分配的中繼路徑的路徑信息插入到通信開始響應消息發送給作為發送端的用戶代理。
[0151]步驟4:作為發送端的用戶代理按照數據流劃分策略,對從上層應用獲得的原始數據流進行劃分成數據子流,並沿著所獲取的中繼路徑進行數據傳輸;
[0152]步驟4.1根據數據傳輸需求和路徑分配響應消息,作為發送端的用戶代理選擇一條或者多條中繼路徑作為活動路徑;
[0153]如圖6所示,本實施方式的用戶代理A選擇了兩條中繼路徑作為活動路徑。
[0154]步驟4.2:作為發送端的用戶代理根據應用類型對待發送數據進行特定的傳輸處理;
[0155]若應用類型為需要實時傳輸的音視頻數據,作為發送端的用戶代理設置時間戳標記、編解碼類型和整流序列號;若應用類型為需要可靠傳輸的文件數據,作為發送端的用戶代理設置整流序列號、起始標記和結束標記,並進行擁塞控制、差錯控制和重傳控制;
[0156]步驟4.3:作為發送端的用戶代理根據應用類型和中繼路徑的傳輸質量信息制定數據流劃分策略,並根據數據流劃分策略將待發送的數據流劃分成若干待發送的數據子流,且分別將每個待發送的數據子流綁定到一條活動路徑;
[0157]如圖6所示,本實施方式的用戶代理A將待發送的數據流劃分成了兩個數據子流。
[0158]步驟4.4:作為發送端的用戶代理將數據子流按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP將該一個或多個子流多徑傳輸數據包發送至所述數據子流所綁定的活動路徑的下一跳傳輸地址,其中子流多徑傳輸數據包包括子流多徑傳輸數據包首部和子流多徑傳輸數據包載荷兩部分,子流多徑傳輸數據包首部含有路徑標識符和子流序列號,子流序列號的初始值由作為發送端的用戶代理隨機產生;
[0159] 如圖6所示,本實施方式的用戶代理A將兩個數據子流分別綁定到兩條中繼路徑上,分別基於傳輸層用戶數據報協議UDP發送至第一中繼服務轉發器和第二中繼服務轉發器。
[0160]步驟4.5:作為發送端的用戶代理周期性地為每個活動路徑產生子流發送者報告包,並基於傳輸層用戶數據報協議UDP將該子流發送者報告包發送至該活動路徑的下一跳傳輸地址,其中,子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數;
[0161]如圖6所示,本實施方式的用戶代理A為兩條中繼路徑周期性地產生子流發送者報告包,並基於傳輸層用戶數據報協議UDP發送至第一中繼服務轉發器和第二中繼服務轉發器。其中,子流發送者報告包的發送間隔可以根據應用類型制定,默認值為I秒。除了路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數,子流發送者報告包可以根據應用類型攜帶其它信息。
[0162]步驟4.6:作為發送端的用戶代理周期性地為在預設時間閾值內沒有進行數據傳輸的中繼路徑產生子流保活包,並基於傳輸層用戶數據報協議UDP將該子流保活包發送至該中繼路徑的下一跳傳輸地址;
[0163]步驟5:中繼服務轉發器根據本地路徑表,且基於傳輸層用戶數據報協議UDP,向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發數據;
[0164]包括如下子步驟:
[0165]步驟5.1:中繼服務轉發器基於傳輸層用戶數據報協議UDP從作為發送端的用戶代理或者上一跳中繼 服務轉發器接收數據子流包,數據子流包包括子流多徑傳輸數據包、子流發送者報告包和子流保活包;
[0166]步驟5.2:從接收到的數據子流包中提取路徑標識符,根據路徑標識符在本地路徑表中進行匹配查找,若匹配失敗,則丟棄該數據子流包;若匹配成功,則基於傳輸層用戶數據報協議UDP向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發所接收到的數據子流包;
[0167]如圖6所示,本實施方式的第一中繼服務轉發器將接收到的來自於用戶代理A的數據子流包轉發給用戶代理B ;第二中繼服務轉發器將接收到的來自於用戶代理A的數據子流包轉發給第三中繼服務轉發器;第三中繼服務轉發器將接收到的來自於第二中繼服務轉發器的數據子流包轉發給用戶代理B。
[0168]步驟6:作為接收端的用戶代理將接收到的數據重組為原始數據流並傳遞給上層應用,並向作為發送端的用戶代理髮送中繼路徑的傳輸質量信息;
[0169]包括以下子步驟:
[0170]步驟6.1:作為接收端的用戶代理基於傳輸層用戶數據報協議UDP接收子流多徑傳輸數據包,並提取出子流數據塊以及相應的路徑標識符和子流序列號信息;
[0171]步驟6.2:作為接收端的用戶代理按照路徑標識符和子流序列號對數據子流進行
重組;
[0172]步驟6.3:作為接收端的用戶代理根據應用類型對重組後的數據子流進行特定的傳輸處理,重組出原始數據流並傳遞給上層應用;
[0173]若應用類型為需要實時傳輸的音視頻數據,作為接收端的用戶代理處理時間戳標記、編解碼類型和整流序列號,並根據時間戳標記和整流序列號,重組出原始數據流傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,作為接收端的用戶代理根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組出原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制;
[0174]步驟6.4:作為接收端的用戶代理統計每個活動路徑的傳輸質量信息,並在接收到子流發送者報告包後為每個活動路徑產生子流接收者報告包,並基於傳輸層用戶數據報協議UDP將該子流接收者報告包發送至作為發送端的用戶代理,其中子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延。
[0175]如圖6所示,本實施方式的用戶代理B統計兩條活動路徑的傳輸質量信息,並接收到子流發送者報告包後產生子流接收者報告包,並基於傳輸層用戶數據報協議UDP發送至用戶代理A。除了路徑標識符 、丟包率、抖動和往返時延,子流接收者報告包可以根據應用類型攜帶其它信息。
[0176]步驟7:作為發送端的用戶代理根據接收到的中繼路徑的傳輸質量信息,調整數據流劃分策略;
[0177]如圖6所示,本實施方式的用戶代理A根據接收到的來自於用戶代理B的子流接收者報告包,獲得中繼路徑的傳輸質量信息,根據應用類型和中繼路徑的傳輸質量信息調整數據流劃分策略。比如,在數據傳輸起始階段,用戶代理A設定兩條中繼路徑的傳輸質量是相同的,將待發送數據流均等劃分為兩個數據子流,在後續的數據傳輸過程中,用戶代理A根據獲得的中繼路徑的傳輸質量信息重新調整數據流劃分策略,讓傳輸質量較好的中繼路徑傳輸更多的數據。
[0178]步驟8:重複執行步驟4至步驟7,直至待發送的數據流全部傳輸完畢;
[0179]步驟9:釋放中繼路徑。
[0180]包括以下兩種方式:
[0181]第一種方式:作為發送端的用戶代理直接請求中繼服務控制器釋放中繼路徑,包括以下步驟:
[0182]步驟9.1:作為發送端的用戶代理向中繼服務控制器發送路徑釋放請求消息,其中,路徑釋放請求消息攜帶一個或多個路徑標識符;
[0183]步驟9.2:根據接收的路徑釋放請求消息,中繼服務控制器查找與路徑標識符相對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息,其中,路徑刪除請求消息攜帶路徑標識符;
[0184]步驟9.3:根據接收的路徑刪除請求消息,中繼服務轉發器從本地路徑表中刪除該消息所指定的中繼路徑,並向中繼服務控制器回復一個路徑刪除成功響應消息;
[0185]步驟9.4:中繼服務控制器向作為發送端的用戶代理髮送路徑釋放響應消息,中繼路徑釋放完畢。
[0186]第二種方式:作為發送端的用戶代理利用結束數據傳輸會話的帶外信令請求中繼服務控制器釋放中繼路徑,帶外信令伺服器在接收到來自於作為發送端的用戶代理的結束數據傳輸會話的信令請求時,代替作為發送端的用戶代理請求中繼服務控制器釋放中繼路徑。本實施方式採用了這種方式,如圖6所示,具體過程如下:
[0187]步驟S9.1:在數據傳輸結束之後,作為發送端的用戶代理向帶外信令伺服器發送通信結束請求;[0188]步驟S9.2:帶外信令伺服器從接收到的通信結束請求中提取出會話標識符,根據會話標識符查詢獲得相應的中繼路徑的路徑標識符,並向中繼服務控制器發送路徑釋放請求消息,路徑釋放請求消息攜帶路徑標識符;
[0189]如圖6所示,本實施方式的帶外信令伺服器向中繼服務控制器發送的路徑釋放請求消息攜帶了兩條中繼路徑的路徑標識符。
[0190]步驟S9.3:根據接收的路徑釋放請求消息,中繼服務控制器查找與路徑標識符相對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息,其中,路徑刪除請求消息攜帶路徑標識符;
[0191]如圖6所示,本實施方式的中繼服務控制器分別向第一中繼服務轉發器、第二中繼服務轉發器和第三中繼服務轉發器發送路徑刪除請求消息,路徑刪除請求消息攜帶了相應的路徑標識符。
[0192]步驟S9.4:根據接收的路徑刪除請求消息,中繼服務轉發器從本地路徑表中刪除該消息所指定的中繼路徑,並向中繼服務控制器回復一個路徑刪除成功響應消息;
[0193]步驟S9.5:中繼服務控制器向帶外信令伺服器發送路徑釋放響應消息,中繼路徑釋放完畢。
[0194]雖然以上描述了本發明的【具體實施方式】,但是本領域內的熟練的技術人員應當理解,這些僅是舉例說明,可以對這些實施方式做出多種變更或修改,而不背離本發明的原理和實質。本發明的範圍 僅由所附權利要求書限定。
【權利要求】
1.一種基於應用層中繼的多徑傳輸系統,其特徵在於:包括:用戶代理和中繼服務系統; 所述用戶代理為位於終端設備的邏輯實體,處在網絡協議棧的應用層,用於基於傳輸層用戶數據報協議UDP,為上層應用提供多徑數據傳輸;所述用戶代理劃分為作為發送端的用戶代理和作為接收端的用戶代理; 所述中繼服務系統置於作為發送端的用戶代理和作為接收端的用戶代理之間,包括一個或多個中繼服務控制器,以及一個或多個中繼服務轉發器;所述中繼服務系統用於為用戶代理之間的數據傳輸提供中繼路徑;所述中繼路徑為用戶代理之間經由一個或多個中繼服務轉發器的路徑; 所述作為發送端的用戶代理:用於根據從中繼服務控制器獲得的一條或多條中繼路徑的路徑信息,將從上層應用接收的原始數據流封裝為子流多徑傳輸數據包,並沿著一條或多條中繼路徑發送至作為接收端的用戶代理; 所述作為接收端的用戶代理用於將接收到的子流多徑傳輸數據包重組為原始數據流,並傳遞至上層應用; 所述中繼服務控制器用於管理所述中繼服務轉發器和所述中繼路徑; 所述中繼服務轉發器用於基於傳輸層用戶數據報協議UDP轉發用戶代理之間所傳輸的數據。
2.根據權利要求1所述的基於應用層中繼的多徑傳輸系統,其特徵在於:所述用戶代理:包括:路徑管理模塊、特定應用傳輸處理模塊、子流劃分模塊、子流封裝與解封裝模塊、子流重組模塊和子流傳輸質量報告模塊; 所述路徑管理模塊:(a)用於在數據傳輸之前或數據傳輸過程中,向中繼服務控制器發送路徑分配請求消息,並從中繼服務控制器收集中繼路徑信息;所述中繼路徑信息包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;(b)為了防止中繼服務轉發器對在預設時間閾值內沒有進行數據傳輸的中繼路徑進行回收,路徑管理模塊周期性地為中繼路徑發送子流保活包對中繼路徑進行維護;(C)當用戶代理之間的數據傳輸結束後,向中繼服務控制器發送路徑釋放請求消息; 所述特定應用傳輸處理模塊用於根據應用類型完成特定的傳輸處理:(a)對於從上層應用接收到的待發送的原始數據流,若應用類型為需要實時傳輸的音視頻數據,則對時間戳標記、編解碼類型和整流序列號進行設置,並將設置後的數據流傳遞給子流劃分模塊;若應用類型為需要可靠傳輸的文件數據,則對整流序列號、起始標記和結束標記進行設置並將設置後的數據流傳遞給子流劃分模塊,以及進行擁塞控制、差錯控制和重傳控制;(b)對於從子流重組模塊接收到的重組後的數據子流,若應用類型為需要實時傳輸的音視頻數據,則根據時間戳標記和整流序列號,重組為原始數據流並傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,則根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組為原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制; 所述子流劃分模塊用於選擇一條或者多條中繼路徑作為活動路徑,並根據數據流劃分策略,將從特定應用傳輸處理模塊接收到的待發送的數據流,劃分成若干待發送的數據子流,且將每個待發送的數據 子流綁定到一條活動路徑,傳遞給子流封裝與解封裝模塊;所述數據流劃分策略根據應用類型和中繼路徑的傳輸質量信息進行制定;所述子流封裝與解封裝模塊:(a)用於將從子流劃分模塊接收到的待發送的數據子流按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP發送至該數據子流所綁定的活動路徑的下一跳傳輸地址;所述子流多徑傳輸數據包,包括子流多徑傳輸數據包首部和子流多徑傳輸數據包載荷;所述子流多徑傳輸數據包首部含有路徑標識符和子流序列號;所述子流多徑傳輸數據包載荷指的是構成數據子流的數據塊; (b)用於基於傳輸層用戶數據報協議UDP接收到子流多徑傳輸數據包後,提取出數據子流的數據塊以及相應的路徑標識符和子流序列號,並傳遞給子流重組模塊; 所述子流重組模塊用於根據相應的路徑標識符和子流序列號,對接收到的數據子流的數據塊進行重組,並將重組後的數據子流傳遞給特定應用傳輸處理模塊; 所述子流傳輸質量報告模塊用於統計和反饋中繼路徑的數據傳輸質量:(a)作為發送端的用戶代理為每個活動路徑產生子流發送者報告包,所述子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數,沿著該活動路徑傳送至作為接收端的用戶代理;(b)作為接收端的用戶代理統計每個活動路徑的傳輸質量信息,並為每個活動路徑產生子流接收者報告包;所述子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延,發送至作為發送端的用戶代理。
3.根據權利要求1所述的基於應用層中繼的多徑傳輸系統,其特徵在於:所述中繼服務控制器,包括:中繼服務轉發器管理模塊、中繼網絡管理模塊和中繼路徑管理模塊; 所述中繼服務轉發器管理模塊:(a)處理來自於中繼服務轉發器的中繼服務註冊消息、中繼服務開啟消息、中繼服務暫停消息以及中繼服務關閉消息;(b)收到中繼服務註冊消息之後,向發送該消息的中繼服務轉發器發送性能查詢消息,以查詢該中繼服務轉發器的性能信息,包括:處理器能力、存儲能力和網絡帶寬;(C)周期性地向每個中繼服務轉發器發送狀態查詢消息,以查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率; 所述中繼網絡管理模塊:(a)向每個中繼服務轉發器發送連接保活消息,以獲得每個中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能;(b)管理中繼網絡的拓撲信息;所述覆蓋路徑由多個物理鏈路組成;所述覆蓋路徑的傳輸性能包括丟包率、延時和可用帶寬;所述中繼網絡由中繼服務轉發器及中繼服務轉發器之間的覆蓋路徑組成;所述拓撲信息是指任意兩個中繼服務轉發器之間是否存在覆蓋路徑以及該覆蓋路徑的傳輸性倉泛; 所述中繼路徑管理模塊:(a)在接收到作為發送端的用戶代理髮送的路徑分配請求消息後,為用戶代理之間的數據傳輸分配一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符,並向中繼路徑所經由的所有中繼服務轉發器和作為發送端的用戶代理髮送中繼路徑信息,所述發送給中繼服務轉發器的中繼路徑信息,包括路徑標識符和該中繼服務轉發器的下一跳傳輸地址;所述發送給作為發送端的用戶代理的中繼路徑信息,包括路徑標識符和作為發送端的用戶代理的下一跳傳輸地址;(b)在接收到作為發送端的用戶代理髮送的路徑釋放請求消息後,查找該消息所對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息,釋放所分配的中繼路徑。
4.根據權利要求1所述的基於應用層中繼的多徑傳輸系統,其特徵在於:所述中繼服務轉發器包括中繼服務管理模塊、拓撲發現和性能測量模塊、路徑表管理模塊和子流轉發模塊; 所述中繼服務管理模塊:(a)中繼服務轉發器啟動後,向中繼服務控制器發起中繼服務註冊消息進行中繼服務註冊,所述中繼服務註冊消息包括中繼服務轉發器標識符、提供中繼服務的地址和埠信息;(b)在中繼服務註冊成功之後,向中繼服務控制器發送中繼服務開啟消息,以告知中繼服務控制器已開始中繼服務;(C)向中繼服務控制器發送中繼服務暫停消息,以告知中繼服務控制器暫停接收新的路徑添加消息;(d)在斷開與中繼服務控制器的連接之前向中繼服務控制器發送中繼服務關閉消息; 所述拓撲發現和性能測量模塊;(a)通過拓撲發現過程,確定本中繼服務轉發器與其它中繼服務轉發器之間的覆蓋路徑;(b)通過性能測量過程,獲取本中繼服務轉發器所關聯的覆蓋路徑的傳輸性能;(C)將本中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能信息傳送給中繼服務控制器; 所述路徑表管理模塊用於根據來自於中繼服務控制器的路徑添加請求消息和路徑刪除請求消息,對本地路徑表進行中繼路徑的添加和中繼路徑的刪除操作;所述本地路徑表用於存儲經由本中繼服務轉發器的中繼路徑信息,該中繼路徑信息包括路徑標識符和該中繼服務轉發器的下一跳傳輸地址; 所述子流轉發模塊用於基於傳輸層用戶數據報協議UDP並基於本地路徑表對數據子流包進行轉發;所述數據子流包,包括:子流多徑傳輸數據包、子流發送者報告包和子流保活包。
5.採用權利要求1所述的基於應用層中繼的多徑傳輸系統的多徑傳輸方法,其特徵在於:包括以下步驟: 步驟1:中繼服務轉發器向中繼服務控制器註冊並開啟中繼服務; 步驟1.1:中繼服務轉發器啟動後,向中繼服務控制器發起中繼服務註冊消息進行中繼服務註冊; 步驟1.2:在中繼服務註冊成功之後,中繼服務轉發器向中繼服務控制器發送中繼服務開啟消息,以告知中繼服務控制器已開始中繼服務; 步驟2:中繼服務控制器獲取中繼服務轉發器的性能信息和狀態信息,以及中繼服務轉發器之間的覆蓋路徑信息; 步驟2.1:中繼服務控制器向註冊後的中繼服務轉發器發送性能查詢消息,以查詢該中繼服務轉發器的性能信息,包括:處理器能力、存儲能力和網絡帶寬; 步驟2.2:中繼服務控制器周期性地向每個中繼服務轉發器發送狀態查詢消息,以查詢中繼服務轉發器當前的負載信息,包括:中繼路徑個數、處理器使用率和網絡帶寬使用率; 步驟2.3:中繼服務控制器向註冊後的中繼服務轉發器發送連接保活消息,以查詢中繼服務轉發器所關聯的覆蓋路徑以及覆蓋路徑的傳輸性能; 步驟3:作為發送端的用戶代理從中繼服務控制器獲取一條或者多條中繼路徑; 步驟4:作為發送端的用戶代理按照數據流劃分策略,對從上層應用獲得的原始數據流進行劃分成數據子流,並沿著所獲取的中繼路徑進行數據傳輸; 步驟5:中繼服務轉發器根據本地路徑表,且基於傳輸層用戶數據報協議UDP,向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發數據; 步驟6:作為接收端的用戶代理將接收到的數據重組為原始數據流並傳遞給上層應用,並向作為發送端的用戶代理髮送中繼路徑的傳輸質量信息; 步驟7:作為發送端的用戶代理根據接收到的中繼路徑的傳輸質量信息,調整數據流劃分策略; 步驟8:重複執行步驟4至步驟7,直至待發送的數據流全部傳輸完畢; 步驟9:釋放中繼路徑。
6.根據權利要求5所述的基於應用層中繼的多徑傳輸方法,其特徵在於:步驟3作為發送端的用戶代理從中繼服務控制器獲取中繼路徑,包括以下兩種方式: 第一種方式:作為發送端的用戶代理直接從中繼服務控制器獲取中繼路徑,包括以下步驟: 步驟3.1:作為發送端的用戶代理向中繼服務控制器發送路徑分配請求消息; 路徑分配請求消息攜帶作為發送端的用戶代理的數據傳輸地址信息、作為接收端的用戶代理的數據傳輸地址信息和所需的中繼路徑條數; 步驟3.2:根據接收到的路徑分配請求消息和中繼服務轉發器的性能信息和狀態信息,中繼服務控制器選擇一條或多條中繼路徑,並為每條中繼路徑分配一個唯一的路徑標識符; 步驟3.3:中繼服務控制器向所選擇的中繼路徑上的所有中繼服務轉發器發送路徑添加請求消息; 路徑添加請求消息攜帶路徑標識符和接收該消息的中繼服務轉發器的下一跳傳輸地址信息; 步驟3.4:中繼服務轉發器根據路徑添加請求消息,檢查本地路徑表是否存在該消息所指定的中繼路徑,若存在,則該中繼服務轉發器拒絕該路徑添加請求消息並向中繼服務控制器回復一個路徑添加失敗響應消息;若不存在,則該中繼服務轉發器將該消息所指定的中繼路徑的路徑信息添加至本地路徑表中,並向中繼服務控制器回復一個路徑添加成功響應消息; 步驟3.5:中繼服務控制器判斷當前分配成功的中繼路徑條數是否符合路徑分配請求消息要求的中繼路徑條數,是,則執行步驟3.6,否,則執行步驟3.2 ; 若中繼服務控制器所選擇的一條中繼路徑上至少一個中繼服務轉發器回復了路徑添加失敗響應消息,則該條中繼路徑分配失敗;若中繼服務控制器所選擇的一條中繼路徑上所有中繼服務轉發器均回復了路徑添加成功響應消息,則該條中繼路徑分配成功; 步驟3.6:中繼服務控制器向作為發送端的用戶代理髮送路徑分配響應消息; 所述路徑分配響應消息攜帶有所有分配成功的中繼路徑的路徑信息,包括:路徑標識符和作為發送端的用戶代理的下一跳傳輸地址; 第二種方式:作為發送端的用戶代理利用建立數據傳輸會話的帶外信令從中繼服務控制器獲取中繼路徑,其方法如下: 帶外信令伺服器在接收到來自於作為發送端的用戶代理的建立數據傳輸會話的信令請求時,代替作為發送端的用戶代理從中繼服務控制器獲取中繼路徑,並將獲得的中繼路徑信息插入到相應的信令消息傳送給作為發送端的用戶代理。
7.根據權利要求5所述的基於應用層中繼的多徑傳輸方法,其特徵在於:步驟4包括以下步驟: 步驟4.1根據數據傳輸需求和路徑分配響應消息,作為發送端的用戶代理選擇一條或者多條中繼路徑作為活動路徑; 步驟4.2:作為發送端的用戶代理根據應用類型對待發送數據進行特定的傳輸處理;若應用類型為需要實時傳輸的音視頻數據,作為發送端的用戶代理設置時間戳標記、編解碼類型和整流序列號;若應用類型為需要可靠傳輸的文件數據,作為發送端的用戶代理設置整流序列號、起始標記和結束標記,並進行擁塞控制、差錯控制和重傳控制; 步驟4.3:作為發送端的用戶代理根據數據流劃分策略,將待發送的數據流劃分成若干待發送的數據子流,且分別將每個待發送的數據子流綁定到一條活動路徑; 步驟4.4:作為發送端的用戶代理將數據子流按照多徑傳輸控制協議封裝為一個或多個子流多徑傳輸數據包,並基於傳輸層用戶數據報協議UDP將該一個或多個子流多徑傳輸數據包發送至所述 數據子流所綁定的活動路徑的下一跳傳輸地址; 步驟4.5:作為發送端的用戶代理周期性地為每個活動路徑產生子流發送者報告包,並基於傳輸層用戶數據報協議UDP將該子流發送者報告包發送至該活動路徑的下一跳傳輸地址; 所述子流發送者報告包攜帶路徑標識符、時間戳、已發送子流多徑傳輸數據包的子流序列號最大值、已發送數據子流的字節數; 步驟4.6:作為發送端的用戶代理周期性地為在預設時間閾值內沒有進行數據傳輸的中繼路徑產生子流保活包,並基於傳輸層用戶數據報協議UDP將該子流保活包發送至該中繼路徑的下一跳傳輸地址。
8.根據權利要求5所述的基於應用層中繼的多徑傳輸方法,其特徵在於:步驟5包括以下步驟: 步驟5.1:中繼服務轉發器基於傳輸層用戶數據報協議UDP從作為發送端的用戶代理或者上一跳中繼服務轉發器接收數據子流包; 步驟5.2:從接收到的數據子流包中提取路徑標識符,根據路徑標識符在本地路徑表中進行匹配查找,若匹配失敗,則丟棄該數據子流包;若匹配成功,則基於傳輸層用戶數據報協議UDP向作為接收端的用戶代理或者下一跳中繼服務轉發器轉發所接收到的數據子流包。
9.根據權利要求5所述的基於應用層中繼的多徑傳輸方法,其特徵在於:步驟6包括以下步驟: 步驟6.1:作為接收端的用戶代理基於傳輸層用戶數據報協議UDP接收子流多徑傳輸數據包,並提取出子流數據塊以及相應的路徑標識符和子流序列號信息; 步驟6.2:作為接收端的用戶代理按照路徑標識符和子流序列號對數據子流進行重組; 步驟6.3:作為接收端的用戶代理根據應用類型對重組後的數據子流進行特定的傳輸處理,重組出原始數據流並傳遞給上層應用; 若應用類型為需要實時傳輸的音視頻數據,作為接收端的用戶代理處理時間戳標記、編解碼類型和整流序列號,並根據時間戳標記和整流序列號,重組出原始數據流傳遞給上層應用;若應用類型為需要可靠傳輸的文件數據,作為接收端的用戶代理根據整流序列號進行選擇性確認,並根據整流序列號、起始標記和結束標記重組出原始數據流傳遞給上層應用,以及進行擁塞控制和差錯控制; 步驟6.4:作為接收端的用戶代理統計每個活動路徑的傳輸質量信息,並在接收到子流發送者報告包後為每個活動路徑產生子流接收者報告包,並基於傳輸層用戶數據報協議UDP將該子流接收者報告包發送至作為發送端的用戶代理; 所述子流接收者報告包攜帶路徑標識符、丟包率、抖動和往返時延。
10.根據權利要求5所述的基於應用層中繼的多徑傳輸方法,其特徵在於:步驟9釋放中繼路徑,包括以下兩種方式: 第一種方式:作為發送端的用戶代理直接請求中繼服務控制器釋放中繼路徑,包括以下步驟: 步驟9.1:作為發送端的用戶代理向中繼服務控制器發送路徑釋放請求消息; 路徑釋放請求消息攜帶一個或多個路徑標識符; 步驟9.2:根據接收的路徑釋放請求消息,中繼服務控制器查找與路徑標識符相對應的中繼路徑,並向中繼路徑上所有的中繼服務轉發器發送路徑刪除請求消息; 路徑刪除請求消息攜帶路徑標識符; 步驟9.3:根據接收的路徑刪除請求消息,中繼服務轉發器從本地路徑表中刪除該消息所指定的中繼路徑,並向中繼服務控制器回復一個路徑刪除成功響應消息; 步驟9.4:中繼服務控制器向作為發送端的用戶代理髮送路徑釋放響應消息,中繼路徑釋放完畢; 第二種方式:作為發送端的用戶代理利用結束數據傳輸會話的帶外信令請求中繼服務控制器釋放中繼路徑,其方法如下: 帶外信令伺服器在接收到來自於作為發送端的用戶代理的結束數據傳輸會話的信令請求時,代替作為發送端的用戶代理請求中繼服務控制器釋放中繼路徑。
【文檔編號】H04L29/06GK104023006SQ201410196986
【公開日】2014年9月3日 申請日期:2014年5月9日 優先權日:2014年5月9日
【發明者】雷為民, 張偉, 劉少偉, 關雲衝, 李廣野 申請人:東北大學