本發明涉及信息處理技術領域,具體涉及一種流數據的傳輸方法,以及一種流數據的傳輸裝置。
背景技術:
隨著互聯網的發展,網絡直播作為流媒體的重要組成形式被越來越多的用戶參與。在直播平臺系統中,普通用戶可以向主播發送連麥請求,待主播批準連麥請求后,連麥端和主播端推送的直播流數據共同顯示在用戶客戶端。
目前包括多種連麥方式,例如,當主播批準普通用戶的連麥請求后,對主播端和連麥端新建一數據通道,主播端通過新建的數據通道接收連麥端發布的直播流數據后,對本地采集的直播流數據和連麥端發布的直播流數據進行合成,之后將合成的視頻流數據傳輸至流媒體服務器;或者,連麥端登陸到主播端所在的視頻會議頻道中,合成服務器對視頻會議中的多路直播流數據進行合成,之后將合成的直播流數據傳輸至流媒體服務器以對其進行分發處理。
雖然上述方法實現了多路連麥,但是仍存在以下問題:需要對主播端和連麥端新建數據通道,然而數據通道的建立需要耗費較長時間,會導致流數據的傳輸延遲問題的產生;在使用視頻會議系統時,合成服務器對多路流數據的合成操作需要耗費較長時間,同樣會導致流數據的傳輸延遲問題的產生,另外流數據在合成系統和分發系統間的傳輸,進一步加深了流數據的傳輸延遲問題。
技術實現要素:
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的流數據的傳輸方法和相應的流數據的傳輸裝置。
依據本發明的一個方面,提供了一種流數據的傳輸方法,包括:
按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
接收第二客戶端向所述目標傳輸節點傳輸的第二流數據;
將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
可選地,所述接收第二客戶端向所述目標傳輸節點傳輸的第二流數據包括:
接收所述第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據;
按照所述傳輸路徑的反向順序,將所述第二流數據順次推送到其他目標傳輸節點。
可選地,所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端包括:
將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端;
迭代執行推送步驟,將所述第二流數據從接收到所述第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
可選地,所述目標傳輸節點本地記錄有在所述傳輸路徑中的下行目標傳輸節點,在所述將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,所述方法還包括:
查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點;
從與所述目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。
可選地,所述下行目標傳輸節點與所述第一流數據的流標識對應存儲,所述第二流數據攜帶所述第一流數據的流標識;
所述查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點包括:
根據所述第一流數據的流標識,提取對應存儲的下行目標傳輸節點。
可選地,在所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端之前,所述方法還包括:
判定所述第二流數據指向廣播傳輸方式。
可選地,所述判定所述第二流數據指向廣播傳輸方式包括:
確定所述第二流數據的數據協議頭中包括廣播傳輸方式的標識;
或,確定所述第二流數據發送至多個目的客戶端。
可選地,所述方法還包括:
若所述第二流數據不指向廣播傳輸方式,則將所述第二流數據從各目標傳輸節點推送至所述第一客戶端。
可選地,所述方法還包括:
判定所述第二客戶端具備廣播權限。
可選地,所述判定所述第二客戶端具備廣播權限包括:
查找具備廣播權限的特征客戶端集合;
確定所述第二客戶端存在所述特征客戶端集合中。
可選地,所述判定所述第二客戶端具備廣播權限包括:
從所述第二流數據的數據協議頭提取所述第二客戶端的身份標識字段;
識別所述身份標識字段歸屬于目標數值區間。
根據本發明的另一方面,提供了一種流數據的傳輸方法,包括:
接收從第一客戶端按照傳輸路徑傳輸的第一流數據,所述傳輸路徑經過多個目標傳輸節點,各目標傳輸節點具有至少一個關聯傳輸節點;
向所述目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經所述關聯傳輸節點將所述第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
可選地,在所述向所述目標傳輸節點傳輸第二流數據之前,所述方法還包括:
向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知。
可選地,所述向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知包括:
按照所述傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;
接收所述第一客戶端按照所述傳輸路徑反饋的批準通知。
根據本發明的另一方面,提供了一種流數據的傳輸裝置,包括:
第一流數據傳輸模塊,用于按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
第二流數據接收模塊,用于接收第二客戶端向所述目標傳輸節點傳輸的第二流數據;
第二流數據推送模塊,用于將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
可選地,所述第二流數據接收模塊包括:
第二流數據獲取子模塊,用于接收所述第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據;
第二流數據反向傳輸子模塊,用于按照所述傳輸路徑的反向順序,將所述第二流數據順次推送到其他目標傳輸節點。
可選地,所述第二流數據推送模塊包括:
第二流數據直接推送子模塊,用于將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端;
第二流數據迭代推送子模塊,用于迭代執行推送步驟,將所述第二流數據從接收到所述第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
可選地,所述裝置還包括:
下行目標傳輸節點查找模塊,用于在所述將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點,所述目標傳輸節點本地記錄有在所述傳輸路徑中的下行目標傳輸節點;
下行目標傳輸節點去除模塊,用于從與所述目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。
可選地,所述下行目標傳輸節點查找模塊,具體用于根據所述第一流數據的流標識,提取對應存儲的下行目標傳輸節點,所述下行目標傳輸節點與所述第一流數據的流標識對應存儲,所述第二流數據攜帶所述第一流數據的流標識。
可選地,所述裝置還包括:
廣播傳輸方式判定模塊,用于在所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端之前,判定所述第二流數據指向廣播傳輸方式。
可選地,所述廣播傳輸方式判定模塊包括:
標識確定子模塊,用于確定所述第二流數據的數據協議頭中包括廣播傳輸方式的標識;
或,目的客戶端數目確定子模塊,用于確定所述第二流數據發送至多個目的客戶端。
可選地,所述裝置還包括:
第二流數據單播模塊,用于若所述第二流數據不指向廣播傳輸方式,則將所述第二流數據從各目標傳輸節點推送至所述第一客戶端。
可選地,所述裝置還包括:
廣播權限判定模塊,用于判定所述第二客戶端具備廣播權限。
可選地,所述廣播權限判定模塊包括:
集合查找子模塊,用于查找具備廣播權限的特征客戶端集合;
第二客戶端確定子模塊,用于確定所述第二客戶端存在所述特征客戶端集合中。
可選地,所述廣播權限判定模塊包括:
身份標識字段提取子模塊,用于從所述第二流數據的數據協議頭提取所述第二客戶端的身份標識字段;
身份標識字段識別子模塊,用于識別所述身份標識字段歸屬于目標數值區間。
根據本發明的另一方面,提供了一種流數據的傳輸裝置,包括:
第一流數據接收模塊,用于接收從第一客戶端按照傳輸路徑傳輸的第一流數據,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
第二流數據傳輸模塊,用于向所述目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經所述關聯傳輸節點將所述第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
可選地,所述裝置還包括:
批準通知接收模塊,用于在所述向所述目標傳輸節點傳輸第二流數據之前,向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知。
可選地,所述批準通知接收模塊包括:
申請請求發送子模塊,用于按照所述傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;
批準通知獲取子模塊,用于接收所述第一客戶端按照所述傳輸路徑反饋的批準通知。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
本發明實施例使用同一傳輸路徑傳輸流數據和信令,省去了傳統方法中針對流數據和信令的多條傳輸路徑的建立,節省了路徑建立。
上述說明僅是本發明技術方案的概述,為了能夠更清楚了解本發明的技術手段,而可依照說明書的內容予以實施,并且為了讓本發明的上述和其它目的、特征和優點能夠更明顯易懂,以下特舉本發明的具體實施方式。
附圖說明
通過閱讀下文優選實施方式的詳細描述,各種其他的優點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優選實施方式的目的,而并不認為是對本發明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了根據本發明實施例一的一種流數據的傳輸方法的步驟流程示意圖;
圖2示出了根據本發明實施例二的一種流數據的傳輸方法的步驟流程示意圖;
圖3示出了根據本發明實施例二的直播間的網絡拓撲結構的示意圖;
圖4示出了根據本發明實施例三的一種流數據的傳輸方法的步驟流程示意圖;
圖5示出了根據本發明實施例四的一種流數據的傳輸裝置的結構框圖;
圖6示出了根據本發明實施例五的一種流數據的傳輸裝置的結構框圖;
圖7示出了根據本發明實施例六的一種流數據的傳輸裝置的結構框圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠將本公開的范圍完整的傳達給本領域的技術人員。
參照圖1,示出了根據本發明實施例一的一種流數據的傳輸方法的步驟流程示意圖,具體可以包括如下步驟:
步驟101、按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
本發明實施例所述的方法應用于存在以流式傳輸方式傳輸的視頻流數據的場景。
本發明實施例中,連入網絡拓撲結構的客戶端為多個,客戶端與客戶端之間通過傳輸路徑連接,傳輸路徑流經一個或多個傳輸節點,基于多條傳輸路徑使得某一客戶端與其他多個客戶端連接。可以使用內容分發網絡(Content Delivery Network,CDN)對客戶端間傳輸的流數據進行傳輸。
第一客戶端按照預先建立的傳輸路徑向第二客戶端傳輸第一流數據。第一客戶端與第二客戶端的傳輸路徑經過的傳輸節點稱為目標傳輸節點,目標傳輸節點的數目為多個,至少一個目標傳輸節點具有關聯傳輸節點。其中關聯傳輸節點可以是與目標傳輸節點直接連接的傳輸節點,也可以是通過直接連接的傳輸節點與目標傳輸節點間接連接的傳輸節點。
本發明實施例所述方法可以應用于多種應用場景,例如應用于視頻直播場景、視頻會議場景等。當本發明實施例所述的方法應用于視頻直播場景時,第一客戶端可以為直播間內的主播端,第二客戶端可以為直播間內的嘉賓端;第一流數據為主播端傳輸的直播流數據。
當用戶進入某一直播間成為普通用戶后,調度節點會為該普通用戶端分配其與主播端、嘉賓端和其他普通用戶端的傳輸路徑,即調度節點會對直播間的網絡拓撲結構進行調整,將新加入的普通用戶端添加至網絡拓撲結構中。實際中調度節點可以根據普通用戶端所在區域的地理位置信息、傳輸節點的負載情況等信息,為普通用戶端分配傳輸路徑。
普通用戶端可以根據預先建立的傳輸路徑向主播端發送連麥請求,如果主播批準了連麥請求,則普通用戶變成了嘉賓,其所在的客戶端變成了嘉賓端,嘉賓端有權上傳音視頻數據,上傳的直播流數據與主播端上傳的直播流數據一起顯示在主播端和其他用戶客戶端。例如以畫中畫的形式一起顯示。
主播端發布直播流數據時,可以根據調度節點針對主播端與嘉賓端配置的傳輸路徑將直播流數據傳輸至嘉賓端。
步驟102、接收第二客戶端向目標傳輸節點傳輸的第二流數據。
將第二客戶端發布的流數據稱為第二流數據。第二客戶端發布第二流數據時,會將第二流數據傳輸至網絡拓撲結構中,具體地第二客戶端將第二流數據傳輸至與其直接連接的目標傳輸節點上,這時目標傳輸節點會接收到第二客戶端傳輸的第二流數據。之后根據第一客戶端與第二客戶端的傳輸路徑的反向路徑,將第二流數據推送至該傳輸路徑經過的各個目標傳輸節點上。
在視頻直播場景中,當普通用戶成為嘉賓后,嘉賓有權限發布直播流數據。當嘉賓端發布直播流數據時,基于嘉賓端與主播端的傳輸路徑,嘉賓端將發布的直播流數據傳輸至該傳輸路徑中與嘉賓端直接連接的目標傳輸節點上,之后根據該傳輸路徑中各個目標傳輸節點的反向連接順序,對直播流數據進行推送,最終將其推送至主播端。
步驟103、將第二流數據從各目標傳輸節點,經關聯傳輸節點推送至第一客戶端以及至少一個第三客戶端。
各目標傳輸節點在接收到第二流數據后,如果目標傳輸節點具有關聯傳輸節點,則將第二流數據從目標傳輸節點推送至關聯傳輸節點,最終將第二流數據推送至第一客戶端和第三客戶端,完成對第二流數據的廣播傳輸。
第一客戶端和第二客戶端同時推送流數據時,其他用戶客戶端會接收到兩路流數據,這時其他用戶客戶端會對兩路流數據進行合成,并對合成后的流數據進行展示。
在視頻直播場景中,第一客戶端可以為直播間內的主播端,第三客戶端可以為直播間內的其他嘉賓端或普通用戶端。在將嘉賓端發布的直播流數據傳輸至目標傳輸節點后,如果目標傳輸節點存在關聯傳輸節點,則將嘉賓端發布的直播流數據通過目標傳輸節點傳輸至關聯傳輸節點,最終將直播流數據傳輸至與關聯傳輸節點連接的主播端和其他用戶端上。實際中嘉賓可以通過客戶端界面選擇直播流數據的傳輸方式,以實現對直播流數據的單播或廣播。
普通用戶連麥成功后成為嘉賓,可以按照進入直播間成為普通用戶時網絡拓撲結構中傳輸路徑以及傳輸節點間的連接關系,對嘉賓端發布的直播流數據進行廣播,無需建立新的傳輸路徑,節省了路徑建立時間,保證了流數據傳輸的實時性。由于使用一套系統支持主播端的直播流轉發以及嘉賓端的直播流的轉發,因此減少了系統開銷。
本發明實施例中,優選地,在所述將第二流數據從各目標傳輸節點,經關聯傳輸節點推送至第一客戶端以及至少一個第三客戶端之前,所述方法還可以包括:判斷第二流數據指向廣播傳輸方式。
本發明實施例中,由于客戶端可以根據預先建立的網絡拓撲結構單播流數據至第一客戶端,或是廣播流數據至第一客戶端和第三客戶端,因此目標傳輸節點在接收到第二客戶端發布的第二流數據后,需要對第二流數據的傳輸方式進行判斷,如果判斷第二流數據指向廣播傳輸方式,則對其進行廣播傳輸;如果判定第二流數據不指向廣播傳輸方式,即確定第二流數據為單播,則將第二流數據從各目標傳輸節點推送至第一客戶端。
具體地,可以通過確定第二流數據的數據協議頭中包括廣播傳輸方式的標識的方法,判定第二流數據指向廣播傳輸方。傳播方式的標識可以為多種形式,例如數字、字母、文字、圖形等。
可以預先在用戶客戶端設定指示不同傳輸方式的不同標識,例如針對廣播傳輸方式設置標識“a”,針對單播傳輸方式設置標識“b”,并且限定在客戶端上傳流數據時,在流數據的數據協議頭中添加數據傳輸方式對應的標識;或者可以預先為不同客戶端設置端標識,如設置第一客戶端的端標識為“0”,除第一客戶端外的其他客戶端的端標識均為“1”,端標識“1”指示廣播傳輸方式,并且限定在客戶端上傳流數據時,在流數據的數據協議頭中添加接收流數據的目的客戶端的端標識。
以視頻直播場景為例,可以預先設定嘉賓端的端標識為正整數,設定指示廣播傳輸方式的目標標識為“0xFFFF”,將嘉賓端及其對應的端標識以及指示廣播傳輸方式的目標標識存儲在各個傳輸節點上。如果傳輸節點識別到流數據的數據協議頭中包括指示廣播傳輸方式的目標標識“0xFFFF”,則確定第二流數據的傳播方式為廣播,識別到流數據的數據協議頭中包括嘉賓標識后確定該客戶端具有廣播流數據的權限。
還可以通過確定第二流數據發送至多個目的客戶端的方法,判定第二流數據指向廣播傳輸方式。
預對第二流數據進行廣播傳輸時,第二客戶端對第二流數據進行相應處理,使發布的第二流數據攜帶多個目的客戶端的端標識、多個目的客戶端的數目或指示目的客戶端數目為多個的標識等信息。相應地,目標傳輸節點識別到上述信息后,確定第二流數據為廣播傳輸方式。
本發明實施例中,優選地,本發明實施例所述方法還包括判定第二客戶端具有廣播權限。
目標傳輸節點在接收到第二客戶端發布的第二流數據后,可以判斷第二客戶端是否具有廣播權限,只有當第二客戶端具有廣播權限時,才對第二流數據進行廣播。
以視頻直播場景為例,由于嘉賓端具有發布直播流數據的權限,普通用戶端不具有該權限,因此目標傳輸節點在接收到某一用戶客戶端上傳的直播流數據后,可以判斷上傳直播流數據的用戶客戶端是否具有廣播權限,即判斷是否被主播授予了連麥權限,如果判定該客戶端具有廣播權限,則進行下一步驟,對直播流數據進行推送。
可以通過多種方式判定第二客戶端具有廣播權限,例如,可以查找具備廣播權限的特征客戶端集合,并確定第二客戶端存在該特征客戶端集合中。
特征客戶端集合為具有廣播權限的客戶端的集合,特征客戶端集合存儲在各傳輸節點中。如果確定第二客戶端在傳輸節點本地存儲的特征客戶端集合內,則判定第二客戶端具有廣播權限。
以視頻直播場景為例,特征客戶端可以為具有廣播權限的嘉賓端,相應地特征客戶端集合可以為嘉賓端集合,具體地可以是多個嘉賓端的端標識的集合。
當主播批準普通用戶的連麥請求后,普通用戶成為嘉賓,主播端會對本地的嘉賓端信息集合進行更新,并將更新后的嘉賓端信息集合傳送至與其直接連接的目標傳輸節點,進一步將其從該目標傳輸節點傳送至針對直播間配置的傳輸節點集群中的各個傳輸節點上,各個傳輸節點對本地存儲的嘉賓端信息集合的版本進行更新。實際中可以通過多種方式更新嘉賓端信息集合,例如主播端可以定時對嘉賓端信息集合進行更新,主播端可以在批準某一普通用戶的連麥請求后對嘉賓端信息集合進行更新等。
由于各傳輸節點記錄有直播間內的嘉賓端信息集合,因此在目標傳輸節點接收到嘉賓端發布的直播流數據后,通常是與嘉賓端直接連接的目標傳輸節點接收到嘉賓端發布的直播流數據后,可以查找本地存儲的嘉賓端信息集合中是否包含發布直播流數據的嘉賓端,如果包含,則判定該嘉賓端具有廣播權限;否則,判定該嘉賓端不具有廣播權限。
本發明實施例可以針對不同客戶端設置不同的身份標識字段,第二客戶端發送第二流數據時將針對第二客戶端設置的身份標識字段添加至數據協議頭中。這時判定第二客戶端具有廣播權限的方法還可以包括:從接收的第二流數據的數據協議頭中提取第二客戶端的身份標識字段,識別流數據攜帶的身份標識字段歸屬于目標數值區間,目標數據區間是針對具有廣播權限的客戶端設置的。如果身份標識字段不歸屬于目標數值區間,則判定第二客戶端不具備廣播權限。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
參照圖2,示出了根據本發明實施例二的一種流數據的傳輸方法的步驟流程示意圖,具體可以包括如下步驟:
步驟201,按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
步驟202,接收第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據。
第二客戶端傳送第二流數據時,向與其直接連接的目標傳輸節點傳傳輸。在視頻直播場景中,嘉賓端發布直播流數據時,會將直播流數據傳輸至與嘉賓端直接連接的目標傳輸節點。
步驟203,按照傳輸路徑的反向順序,將第二流數據順次推送到其他目標傳輸節點。
第一客戶端和第二客戶端的傳輸路徑的路徑方向為第一客戶端到第二客戶端,在此路徑方向下,傳輸路徑經過的多個目標傳輸節點具有排列順序。第二客戶端傳輸第二流數據時,可以按照第一客戶端和第二客戶端的傳輸路徑的反向順序,將第二流數據從第二客戶端傳輸至第一客戶端,相應地將第二流數據順次推送至傳輸路徑經過的其他目標傳輸節點。
例如,在視頻直播場景中,主播端與嘉賓端的傳輸路徑依次經過傳輸節點1、傳輸節點2和傳輸節點3,嘉賓端將發布的音視頻流數據推送至與其直接連接的傳輸節點3,之后按照傳輸路徑的反向順序,將音視頻流數據推送至傳輸節點2,進一步推送至傳輸節點1,最終推送至主播端。
步驟204,將第二流數據推送至與目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端。
在網絡拓撲結構,部分傳輸節點存在關聯傳輸節點,關聯傳輸節點可以是直接連接的或間接連接的傳輸節點。可以根據節點連接順序,將關聯傳輸節點分為多個等級,如一級關聯傳輸節點、二級關聯傳輸節點、三級關聯傳輸節點等,其中一級關聯傳輸節點為與某一傳輸節點直接連接的傳輸節點,二級關聯傳輸節點為與一級關聯傳輸節點直接連接的傳輸節點,其他級別的關聯傳輸節點以此類推。第一客戶端與第二客戶端的傳輸路徑經過的目標傳輸節點可以包括多種連接,如目標傳輸節點可以與其他目標傳輸節點、一級關聯傳輸節點、第一客戶端或第三客戶端直接連接。
基于關聯傳輸節點的等級設置以及目標傳輸節點的連接關系,目標傳輸節點接收到第二客戶端傳輸的第二流數據后,在將第二流數據推送至其他目標傳輸節點的同時,將第二流數據推送至與其直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端。
建立傳輸路徑時,可以在傳輸路徑經過的目標傳輸節點本地記錄其在該傳輸路徑中的下行目標傳輸節點。在網絡拓撲結構中,對于某一傳輸路徑中相鄰的兩個傳輸節點,按照第一客戶端至其他客戶端的傳輸方向,限定位于傳輸方向末端的傳輸節點是位于傳輸方向起始端的傳輸節點的下行傳輸節點。例如,第一客戶端到第二客戶端的傳輸路徑為節點1—節點2—節點3,第一客戶端與節點1直接連接,第二客戶端與節點3直接連接,則限定節點2為節點1的下行傳輸節點,節點1為節點2的上行傳輸節點。
這時在目標傳輸節點接收到第二客戶端發布的第二流數據之后,在將第二流數據推送至與目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,本發明實施例所述方法還可以包括:查找目標傳輸節點在傳輸路徑中的下行目標傳輸節點,從與目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。完成上述去除步驟后,目標傳輸節點將第二流數據推送至除查找到的下行目標傳輸節點外的與其直接連接的其他目標傳輸節點。
可以在構建網絡拓撲結構時,在各傳輸節點本地記錄該傳輸節點的所有一級關聯傳輸節點,即上行目標傳輸節點和所有下行目標傳輸節點,具體可以記錄所有一級關聯傳輸節點的節點標識。完成對目標傳輸節點在該傳輸路徑中的下行目標傳輸節點的查找后,可以從目標傳輸節點本地提取與該目標傳輸節點直接連接的一級關聯傳輸節點。
當第一客戶端與不同用戶客戶端的多條傳輸路徑存在交叉或交匯時,交叉或交匯處的傳輸節點本地記錄有針對多條傳輸路徑的多個下行目標傳輸節點。為查找出針對某一傳輸路徑的下行目標傳輸節點,本發明實施例可以在使用某一傳輸路徑傳輸第一流數據過程中,在第一流數據傳輸至某一目標傳輸節點時,將該目標傳輸節點在該傳輸路徑中的下行目標傳輸節點與第一流數據的流標識對應存儲在該目標傳輸節點本地。當第一流數據傳輸至第二客戶端后,第二客戶端發布第二流數據,第二流數據攜帶有第一流數據的流標識,當第二流數據傳送至目標傳輸節點后,目標傳輸節點可以根據第一流數據的流標識,提取對應存儲的下行目標傳輸節點。具體地,目標傳輸節點可以根據第二流數據攜帶的第一流數據的流標識,以及本地存儲的第一流標識與下行目標傳輸節點的對應關系,提取與第一流標識對應的下行目標傳輸節點。
當第一流數據傳輸至某一目標傳輸節點時,可以通過多種方式確定該目標傳輸節點在該傳輸路徑下的下行傳輸節點,例如,第一流數據攜帶該傳輸路徑經過的所有目標傳輸節點的節點標識,多個目標傳輸節點的節點標識按照第一客戶端到第二客戶端的流經方向有序排列,當第一流數據傳輸至某一目標傳輸節點后,可以獲取當前目標傳輸節點的節點標識,根據第一流數據攜帶的節點標識序列,確定待傳輸的下一目標傳輸節點為下行目標傳輸節點。
還可以通過以下方法查找目標傳輸節點在該傳輸路徑中的下行目標傳輸節點,方法具體包括:限定當第三客戶端傳輸的第二流數據傳輸至某一目標傳輸節點時,讓第二流數據攜帶該目標傳輸節點的下行目標傳輸節點的節點標識,當第二流數據傳輸至下一目標傳輸節點時,對第二流數據攜帶的節點標識做更改,更改成所述下一目標傳輸節點的下行目標傳輸節點的節點標識,按照上述方法傳輸第二流數據,當第二流數據傳輸至當前目標傳輸節點時,可以通過提取第二流數據攜帶的節點標識的方式,確定當前目標傳輸節點在該傳輸路徑中的下行目標傳輸節點。
步驟205,迭代執行推送步驟,將第二流數據從接收到第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
由于目標傳輸節點的關聯傳輸節點可以包括直接連接和間接連接的多個傳輸節點,多個傳輸節點可能存在多級別關聯,因此在將第二客戶端發布的第二流數據推送至一級關聯傳輸節點后,循環執行步驟204所述方法,將第二流數據推送至二級關聯傳輸節點、···、N級關聯傳輸節點、N+1級關聯傳輸節點,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端,從而完成對第二客戶端發布的第二流數據的廣播。因此本發明實施例利用目標傳輸節點和關聯傳輸節點,將流數據廣播至多個客戶端。
在視頻直播場景中,主播端和其他用戶客戶端接收到嘉賓發布的直播流數據后,對嘉賓發布的和主播發布的兩路直播流數據進行合成,將合成后的直播流數據顯示在客戶端。
為使本領域技術人員更加清楚地理解本發明實施例,下面通過具體示例對本發明所述方法進行詳細說明。
示例1
參照圖3,示出了根據本發明實施例二的直播間的網絡拓撲結構的示意圖。在圖3所示的直播間的網絡拓撲結構中,1為主播端,2為普通用戶端,3為普通用戶端,4為嘉賓端,a、b、c、d、e和f為傳輸節點。
用戶進入直播間內成為普通用戶端3,調度節點為普通用戶端3分配傳輸節點和建立傳輸路徑,使普通用戶端3與主播端1、普通用戶端2和嘉賓端4連接。主播端1與普通用戶端3的傳輸路徑為a-c-e,主播端按照傳輸路徑a-c-e向普通用戶端3傳輸流數據或指令;普通用戶端3按照上述傳輸路徑的反向路徑e-c-a向主播端1傳輸流數據或請求。
普通用戶端3可以向主播端1發送連麥請求,當主播批注該連麥請求后,普通用戶端3成為具有廣播權限的嘉賓端3。具有廣播權限的嘉賓端3發布直播流數據時,直播流數據首先被推送至傳輸節點e,之后被推送至傳輸節點c和傳輸節點a,最終被推送至主播端1。在將傳輸節點c處的直播流數據推送至傳輸節點a的同時,將直播流數據推送至傳輸節點f,進一步推送至嘉賓端4。在將傳輸節點a處的直播流數據推送至主播端1的同時,將直播流數據逐步推送至傳輸節點b和傳輸節點d,最終推送至普通用戶端2。基于上述多個推送步驟,實現對嘉賓端3發布的直播流數據的廣播。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
參照圖4,示出了根據本發明實施例三的一種流數據的傳輸方法的步驟流程示意圖,具體可以包括如下步驟:
步驟301、接收從第一客戶端按照傳輸路徑傳輸的第一流數據,傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
本發明實施例所述的方法應用于存在以流式傳輸方式傳輸的視頻流數據的場景。
系統中包括多個客戶端,客戶端與客戶端之間通過傳輸路徑連接,傳輸路徑流經一個或多個傳輸節點,基于多條傳輸路徑使得某一客戶端與其他多個客戶端連接。
多條傳輸路徑存在交匯和交叉的情況,存在兩條或多條傳輸路徑共用同一傳輸節點的情況,因此針對某一傳輸路徑上的傳輸節點可能具有位于其他傳輸路徑上的、與該傳輸節點連接的關聯傳輸節點。關聯傳輸節點可以是與某一傳輸節點直接連接的傳輸節點,也可以是與某一傳輸節點直接連接和間接連接的多個傳輸節點。
本發明實施例中,第一客戶端與第二客戶端的傳輸路徑經過多個傳輸節點,上述傳輸節點稱為目標傳輸節點。至少一個目標傳輸節點具有關聯傳輸節點。
第一客戶端按照傳輸路徑向第二客戶端傳輸第一流數據,相應地第二客戶端接收第一客戶端傳輸的第一流數據。
步驟302、向目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經關聯傳輸節點將第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
第二客戶端廣播流數據時,會將其發布的第二流數據傳輸至第一客戶端與第二客戶端的傳輸路徑經過的目標傳輸節點,最終將第二流數據推送至第一客戶端。如果目標傳輸節點具有關聯傳輸節點,則目標傳輸節點在將接收的第二流數據推送至下一個目標傳輸節點的同時,將第二流數據推送至該目標傳輸節點的關聯傳輸節點,最終將第二流數據推送至與關聯傳輸節點連接的第三客戶端,從而完成對第二流數據的廣播傳輸。
在向目標傳輸節點傳輸第二流數據之前,本發明實施例所述方法還可以包括:向第一客戶端發送特征客戶端的申請請求,并接收第一客戶端反饋的批準通知。
特征客戶端為具有廣播流數據權限的客戶端。如果第二客戶端預廣播流數據,則需要向第一客戶端發送特征客戶端的申請請求,第一客戶端的用戶批注該申請請求后,第一客戶端會向第二客戶端反饋批準通知,第二客戶端在接收到反饋的批準通知后,才具有廣播流數據的權限。如果第一客戶端的用戶未批注申請請求,則第二客戶端無權廣播流數據。
第二客戶端發送的申請請求中可以攜帶供預覽信息,如第二客戶端用戶的音頻、視頻等,第一客戶端用戶可以查看預覽信息,并根據預覽信息對申請請求進行審批,判斷是否要接受第二客戶端發送的特征客戶端的申請請求。預覽操作提高了用戶體驗,提高了審批結果的準確性。
申請請求和批準通知可以與流數據共用同一傳輸路徑,從而可以減少傳輸路徑的建立。基于上述方法,向第一客戶端發送特征客戶端的申請請求,并接收第一客戶端反饋的批準通知的步驟可以包括:按照第一客戶端與第二客戶端的傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;接收第一客戶端按照該傳輸路徑反饋的批準通知。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
本發明實施例使用同一傳輸路徑傳輸流數據和信令,省去了傳統方法中針對流數據和信令的多條傳輸路徑的建立,節省了路徑建立。
圖5示出了根據本發明實施例四的一種流數據的傳輸裝置的結構框圖。圖5中的流數據的傳輸裝置包括:
第一流數據傳輸模塊401,用于按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
第二流數據接收模塊402,用于接收第二客戶端向所述目標傳輸節點傳輸的第二流數據。
第二流數據推送模塊403,用于將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
圖6示出了根據本發明實施例五的一種流數據的傳輸裝置的結構框圖。圖6中的流數據的傳輸裝置包括:
第一流數據傳輸模塊501,用于按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
第二流數據接收模塊502,用于接收第二客戶端向所述目標傳輸節點傳輸的第二流數據。
第二流數據推送模塊503,用于將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
所述第二流數據接收模塊502包括:
第二流數據獲取子模塊5021,用于接收所述第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據;
第二流數據反向傳輸子模塊5022,用于按照所述傳輸路徑的反向順序,將所述第二流數據順次推送到其他目標傳輸節點。
所述第二流數據推送模塊503包括:
第二流數據直接推送子模塊5031,用于將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端;
第二流數據迭代推送子模塊5032,用于迭代執行推送步驟,將所述第二流數據從接收到所述第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
本發明實施例中,優選地,所述裝置還包括:
下行目標傳輸節點查找模塊,用于在所述將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點,所述目標傳輸節點本地記錄有在所述傳輸路徑中的下行目標傳輸節點;
下行目標傳輸節點去除模塊,用于從與所述目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。
本發明實施例中,優選地,所述下行目標傳輸節點查找模塊,具體用于根據所述第一流數據的流標識,提取對應存儲的下行目標傳輸節點,所述下行目標傳輸節點與所述第一流數據的流標識對應存儲,所述第二流數據攜帶所述第一流數據的流標識。
本發明實施例中,優選地,所述裝置還包括:
廣播傳輸方式判定模塊,用于在所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端之前,判定所述第二流數據指向廣播傳輸方式。
本發明實施例中,優選地,所述廣播傳輸方式判定模塊包括:
標識確定子模塊,用于確定所述第二流數據的數據協議頭中包括廣播傳輸方式的標識;
或,目的客戶端數目確定子模塊,用于確定所述第二流數據發送至多個目的客戶端。
本發明實施例中,優選地,所述裝置還包括:
第二流數據單播模塊,用于若所述第二流數據不指向廣播傳輸方式,則將所述第二流數據從各目標傳輸節點推送至所述第一客戶端。
本發明實施例中,優選地,所述裝置還包括:
廣播權限判定模塊,用于判定所述第二客戶端具備廣播權限。
本發明實施例中,優選地,所述廣播權限判定模塊包括:
集合查找子模塊,用于查找具備廣播權限的特征客戶端集合;
第二客戶端確定子模塊,用于確定所述第二客戶端存在所述特征客戶端集合中。
本發明實施例中,優選地,所述廣播權限判定模塊包括:
身份標識字段提取子模塊,用于從所述第二流數據的數據協議頭提取所述第二客戶端的身份標識字段;
身份標識字段識別子模塊,用于識別所述身份標識字段歸屬于目標數值區間。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
圖7示出了根據本發明實施例六的一種流數據的傳輸裝置的結構框圖。圖7中的流數據的傳輸裝置包括:
第一流數據接收模塊601,用于接收從第一客戶端按照傳輸路徑傳輸的第一流數據,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點。
第二流數據傳輸模塊602,用于向所述目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經所述關聯傳輸節點將所述第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
本發明實施例中,優選地,所述裝置還包括:
批準通知接收模塊,用于在所述向所述目標傳輸節點傳輸第二流數據之前,向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知。
本發明實施例中,優選地,所述批準通知接收模塊包括:
申請請求發送子模塊,用于按照所述傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;
批準通知獲取子模塊,用于接收所述第一客戶端按照所述傳輸路徑反饋的批準通知。
依據本發明實施例,第二客戶端接收到第一客戶端按照傳輸路徑傳輸的第一流數據后,如果第二客戶端預向其他客戶端傳輸第二流數據,則只需將第二流數據傳輸至第一流數據的傳輸路徑經過的目標傳輸節點,進一步將第二流數據傳輸至目標傳輸節點的關聯傳輸節點,即可將第二流數據傳輸至第一客戶端和至少一個第三客戶端,因此本發明實施例省去了第二流數據的新傳輸路徑的建立,節省了路徑建立時間,保證了流數據傳輸的實時性。
相比于背景技術中使用視頻會議系統進行多路連麥,本發明當流數據傳輸網絡中同時存在多路流數據時,多路流數據的合成操作在用戶客戶端完成,從而省去了合成系統的使用,解決了多系統傳輸導致的延遲問題,進一步節省了系統開銷。
本發明實施例使用同一傳輸路徑傳輸流數據和信令,省去了傳統方法中針對流數據和信令的多條傳輸路徑的建立,節省了路徑建立。
在此提供的算法和顯示不與任何特定計算機、虛擬系統或者其它設備固有相關。各種通用系統也可以與基于在此的示教一起使用。根據上面的描述,構造這類系統所要求的結構是顯而易見的。此外,本發明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現在此描述的本發明的內容,并且上面對特定語言所做的描述是為了披露本發明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節。然而,能夠理解,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權利要求書由此明確地并入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發明的范圍之內并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發明的各個部件實施例可以以硬件實現,或者以在一個或者多個處理器上運行的軟件模塊實現,或者以它們的組合實現。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數字信號處理器(DSP)來實現根據本發明實施例的流數據的傳輸設備中的一些或者全部部件的一些或者全部功能。本發明還可以實現為用于執行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產品)。這樣的實現本發明的程序可以存儲在計算機可讀介質上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網網站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發明進行說明而不是對本發明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
本發明公開了A1、一種流數據的傳輸方法,包括:
按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
接收第二客戶端向所述目標傳輸節點傳輸的第二流數據;
將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
A2、根據A1所述的方法,其中,所述接收第二客戶端向所述目標傳輸節點傳輸的第二流數據包括:
接收所述第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據;
按照所述傳輸路徑的反向順序,將所述第二流數據順次推送到其他目標傳輸節點。
A3、根據A1所述的方法,其中,所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端包括:
將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端;
迭代執行推送步驟,將所述第二流數據從接收到所述第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
A4、根據A3所述的方法,其中,所述目標傳輸節點本地記錄有在所述傳輸路徑中的下行目標傳輸節點,在所述將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,所述方法還包括:
查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點;
從與所述目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。
A5、根據A4所述的方法,其中,所述下行目標傳輸節點與所述第一流數據的流標識對應存儲,所述第二流數據攜帶所述第一流數據的流標識;
所述查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點包括:
根據所述第一流數據的流標識,提取對應存儲的下行目標傳輸節點。
A6、根據A1所述的方法,其中,在所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端之前,所述方法還包括:
判定所述第二流數據指向廣播傳輸方式。
A7、根據A6所述的方法,其中,所述判定所述第二流數據指向廣播傳輸方式包括:
確定所述第二流數據的數據協議頭中包括廣播傳輸方式的標識;
或,確定所述第二流數據發送至多個目的客戶端。
A8、根據A6所述的方法,其中,所述方法還包括:
若所述第二流數據不指向廣播傳輸方式,則將所述第二流數據從各目標傳輸節點推送至所述第一客戶端。
A9、根據A1或A6所述的方法,其中,所述方法還包括:
判定所述第二客戶端具備廣播權限。
A10、根據A9所述的方法,其中,所述判定所述第二客戶端具備廣播權限包括:
查找具備廣播權限的特征客戶端集合;
確定所述第二客戶端存在所述特征客戶端集合中。
A11、根據A9所述的方法,其中,所述判定所述第二客戶端具備廣播權限包括:
從所述第二流數據的數據協議頭提取所述第二客戶端的身份標識字段;
識別所述身份標識字段歸屬于目標數值區間。
本發明還公開了B12、一種流數據的傳輸方法,包括:
接收從第一客戶端按照傳輸路徑傳輸的第一流數據,所述傳輸路徑經過多個目標傳輸節點,各目標傳輸節點具有至少一個關聯傳輸節點;
向所述目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經所述關聯傳輸節點將所述第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
B13、根據B12所述的方法,其中,在所述向所述目標傳輸節點傳輸第二流數據之前,所述方法還包括:
向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知。
B14、根據B13所述的方法,其中,所述向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知包括:
按照所述傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;
接收所述第一客戶端按照所述傳輸路徑反饋的批準通知。
本發明還公開了C15、一種流數據的傳輸裝置,包括:
第一流數據傳輸模塊,用于按照傳輸路徑將第一流數據從第一客戶端傳送至第二客戶端,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
第二流數據接收模塊,用于接收第二客戶端向所述目標傳輸節點傳輸的第二流數據;
第二流數據推送模塊,用于將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端。
C16、根據C15所述的裝置,其中,所述第二流數據接收模塊包括:
第二流數據獲取子模塊,用于接收所述第二客戶端向直接連接的目標傳輸節點傳輸的第二流數據;
第二流數據反向傳輸子模塊,用于按照所述傳輸路徑的反向順序,將所述第二流數據順次推送到其他目標傳輸節點。
C17、根據C15所述的裝置,其中,所述第二流數據推送模塊包括:
第二流數據直接推送子模塊,用于將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端;
第二流數據迭代推送子模塊,用于迭代執行推送步驟,將所述第二流數據從接收到所述第二流數據的N級關聯傳輸節點推送至直接連接的N+1級關聯傳輸節點或第一客戶端或第三客戶端,直至推送至接入傳輸節點集群的第一客戶端和所有第三客戶端。
C18、根據C17所述的裝置,其中,所述裝置還包括:
下行目標傳輸節點查找模塊,用于在所述將所述第二流數據推送至與所述目標傳輸節點直接連接的一級關聯傳輸節點或第一客戶端或第三客戶端之前,查找所述目標傳輸節點在所述傳輸路徑中的下行目標傳輸節點,所述目標傳輸節點本地記錄有在所述傳輸路徑中的下行目標傳輸節點;
下行目標傳輸節點去除模塊,用于從與所述目標傳輸節點直接連接的一級關聯傳輸節點中,去除所查找的下行目標傳輸節點。
C19、根據C18所述的裝置,其中:
所述下行目標傳輸節點查找模塊,具體用于根據所述第一流數據的流標識,提取對應存儲的下行目標傳輸節點,所述下行目標傳輸節點與所述第一流數據的流標識對應存儲,所述第二流數據攜帶所述第一流數據的流標識。
C20、根據C15所述的裝置,其中,所述裝置還包括:
廣播傳輸方式判定模塊,用于在所述將所述第二流數據從各目標傳輸節點,經所述關聯傳輸節點推送至所述第一客戶端以及至少一個第三客戶端之前,判定所述第二流數據指向廣播傳輸方式。
C21、根據C20所述的裝置,其中,所述廣播傳輸方式判定模塊包括:
標識確定子模塊,用于確定所述第二流數據的數據協議頭中包括廣播傳輸方式的標識;
或,目的客戶端數目確定子模塊,用于確定所述第二流數據發送至多個目的客戶端。
C22、根據C20所述的裝置,其中,所述裝置還包括:
第二流數據單播模塊,用于若所述第二流數據不指向廣播傳輸方式,則將所述第二流數據從各目標傳輸節點推送至所述第一客戶端。
C23、根據C15或C20所述的裝置,其中,所述裝置還包括:
廣播權限判定模塊,用于判定所述第二客戶端具備廣播權限。
C24、根據C23所述的裝置,其中,所述廣播權限判定模塊包括:
集合查找子模塊,用于查找具備廣播權限的特征客戶端集合;
第二客戶端確定子模塊,用于確定所述第二客戶端存在所述特征客戶端集合中。
C25、根據C23所述的裝置,其中,所述廣播權限判定模塊包括:
身份標識字段提取子模塊,用于從所述第二流數據的數據協議頭提取所述第二客戶端的身份標識字段;
身份標識字段識別子模塊,用于識別所述身份標識字段歸屬于目標數值區間。
本發明還公開了D26、一種流數據的傳輸裝置,包括:
第一流數據接收模塊,用于接收從第一客戶端按照傳輸路徑傳輸的第一流數據,所述傳輸路徑經過多個目標傳輸節點,至少一個目標傳輸節點具有關聯傳輸節點;
第二流數據傳輸模塊,用于向所述目標傳輸節點傳輸第二流數據,以由各目標傳輸節點經所述關聯傳輸節點將所述第二流數據推送至所述第一客戶端以及至少一個第三客戶端。
D27、根據D26所述的裝置,其中,所述裝置還包括:
批準通知接收模塊,用于在所述向所述目標傳輸節點傳輸第二流數據之前,向所述第一客戶端發送特征客戶端的申請請求,并接收所述第一客戶端反饋的批準通知。
D28、根據D27所述的裝置,其中,所述批準通知接收模塊包括:
申請請求發送子模塊,用于按照所述傳輸路徑向第一客戶端發送成為特征客戶端的申請請求;
批準通知獲取子模塊,用于接收所述第一客戶端按照所述傳輸路徑反饋的批準通知。