用戶側帶寬聚合的方法、設備和內容分發(fā)系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網技術領域,尤其涉及一種用戶側帶寬聚合的方法、設備和內容分發(fā)系統(tǒng)。
【背景技術】
[0002]網絡音視頻直播技術是一種重要的互聯(lián)網熱門應用,其在后臺數(shù)據(jù)傳輸端的架構發(fā)展經歷了單服務器階段、服務器集群階段以及⑶N(Content Delivery Network,內容分發(fā)網絡)+客戶端P2P階段等。
[0003]其中,在單服務器階段,只有單臺服務器提供服務,用戶終端的播放器通過流媒體協(xié)議直接連接到服務器,獲取音視頻數(shù)據(jù),并在本地解碼播放。
[0004]在服務器集群階段,采用多種熱備份的服務器集群方案或者是從源服務器到邊緣服務器進行CDN分發(fā)的組網方案。此時用戶終端的播放器通過服務器端的負載均衡調度,連接到某一臺服務器,然后通過流媒體協(xié)議(如RTMP(Real Time Messaging Protocol,實時消息傳輸協(xié)議)/RTSP (Real Time Streaming Protocol,實時流傳輸協(xié)議)/MMS (MultiMedia Server,多媒體服務器)等),或基于HTTP (超文本傳輸協(xié)議,Hyper Text TransferProtocol)(如 HLS(Http Live Streaming, HTTP 流媒體直播)/HTTP 下載(download)等)進行傳輸?shù)膮f(xié)議獲取音視頻數(shù)據(jù),并在本地解碼播放。這種純服務器的解決方案,可以將服務器部署在IDC (Internet Data Center,互聯(lián)網數(shù)據(jù)中心)機房里,以保證在線時長和服務帶寬質量,缺點是成本較高。
[0005]在CDN+客戶端P2P階段,由于同時在線人數(shù)的不斷增加,以及服務器帶寬成本的壓力,可以利用客戶端來分擔一部分訪問壓力。通常視頻數(shù)據(jù)從生產端(攝像機/攝像頭拍攝后進行數(shù)字編碼并通過流媒體協(xié)議推送到源服務器)出來,進入⑶N網絡,通過⑶N網絡分發(fā)到CDN的邊緣節(jié)點,在這里會按照P2P傳輸?shù)男枨髮?shù)據(jù)進行分割以適應P2P傳輸。同時需要在客戶端部署一個P2P服務的代理,這樣客戶端的播放器可以從P2P代理獲取數(shù)據(jù)。不同客戶端的P2P代理還可以通過P2P協(xié)議互相共享數(shù)據(jù)。這樣就分擔了服務器的訪問壓力。另一方面,由于P2P網絡的不穩(wěn)定,要想保證數(shù)據(jù)傳輸質量不間斷,還可以進行設定,讓P2P代理在無法從別的P2P代理(對端PEER)獲取數(shù)據(jù)時直接訪問⑶N網絡里的服務器。例如專利CN201510150133.1就采用了這種⑶N+P2P的架構。⑶N+P2P的架構可以分擔一部分服務器的訪問壓力,降低帶寬成本,同時還可以保證服務質量。
[0006]但是P2P代理模塊加入/退出P2P網絡是不受控制的,完全取決于客戶是否選擇觀看對應的直播頻道,也就意味著,這一部分來自于客戶端的帶寬無法挪作它用。如果直播結束或用戶退出收看,來自于客戶端的這部分帶寬就沒有了。
【發(fā)明內容】
[0007]摶術問題
[0008]有鑒于此,本發(fā)明要解決的技術問題是,如何提高用戶側帶寬的利用率,以保證內容分發(fā)系統(tǒng)所分發(fā)的內容的服務質量。
[0009]解決方案
[0010]為了解決上述技術問題,根據(jù)本發(fā)明的一實施例,提供了一種用戶側帶寬聚合的方法,包括:
[0011]位于內容分發(fā)網絡的虛擬化控制器接收用戶終端的播放器發(fā)送的內容分發(fā)請求;
[0012]所述虛擬化控制器根據(jù)各網絡設備的狀態(tài)信息進行設備分級,其中,分級結果包括所述網絡設備為第一級設備或第二級設備,所述第一級設備為中間設備,所述第二級設備為邊緣設備;
[0013]所述虛擬化控制器將所述分級結果下發(fā)給對應的網絡設備;
[0014]所述虛擬化控制器控制所述第一級設備和所述第二級設備之間建立超文本傳輸協(xié)議HTTP連接;
[0015]所述虛擬化控制器向所述用戶終端的播放器返回至少一個第二級設備的地址信息,以利用所返回的第二級設備的可用帶寬向所述用戶終端的播放器進行內容分發(fā)。
[0016]對于上述方法,在一種可能的實現(xiàn)方式中,所述虛擬化控制器根據(jù)各網絡設備的狀態(tài)信息進行設備分級,包括:
[0017]所述虛擬化控制器獲取其所能管轄的網絡設備的狀態(tài)信息,所述網絡設備的狀態(tài)信息包括所述網絡設備的可用帶寬和NAT拓撲狀態(tài),在所述NAT拓撲狀態(tài)中,第一狀態(tài)表示所述網絡設備具有公網IP地址,第二狀態(tài)表示所述網絡設備在NAT后且屬于非對稱網絡NAT類型,第三狀態(tài)表示所述網絡設備在NAT后且屬于對稱網絡NAT類型;
[0018]所述虛擬化控制器從其所能管轄的網絡設備中選取多個空閑網絡設備,并根據(jù)內容分發(fā)需求和各所述空閑網絡設備的可用帶寬,選取NAT拓撲狀態(tài)為第一狀態(tài)的部分設備作為第二級設備,所述內容分發(fā)需求包括直播節(jié)目的總帶寬和碼流,其中,所述第二級設備與客戶端連接并能夠與至少一個所述第一級設備建立HTTP連接,兩個所述第二級設備之間禁止建立HTTP連接;
[0019]所述虛擬化控制器根據(jù)所述內容分發(fā)需求、所選取的第二級設備的數(shù)量和剩余的所述空閑網絡設備的可用帶寬,選取NAT拓撲狀態(tài)為第一狀態(tài)的部分設備作為第一級設備,和/或,選取NAT拓撲狀態(tài)為第二狀態(tài)的部分設備作為第一級設備,其中,所述第一級設備與所述內容分發(fā)網絡連接,兩個NAT拓撲狀態(tài)為第一狀態(tài)的第一級設備之間允許建立HTTP連接。
[0020]對于上述方法,在一種可能的實現(xiàn)方式中,所述虛擬化控制器控制所述第一級設備和所述第二級設備之間建立HTTP連接,包括:
[0021]對于每個所述第二級設備,所述虛擬化控制器向所述第二級設備下發(fā)第一級設備編號列表;
[0022]所述虛擬化控制器獲取所述第二級設備根據(jù)所述第一級設備編號列表所選取的感興趣的第一級設備的編號;
[0023]所述虛擬化控制器向所述第二級設備感興趣的第一級設備發(fā)送所述第二級設備的地址信息,由收到所述地址信息的第一級設備主動向所述第二級設備發(fā)送HTTP連接請求以建立HTTP連接。
[0024]對于上述方法,在一種可能的實現(xiàn)方式中,還包括:
[0025]在所述第二級設備與至少一個第一級設備成功建立HTTP連接后,所述至少一個第一級設備將從云端的CDN模塊獲取的數(shù)據(jù)發(fā)送給所述第二級設備;
[0026]所述第二級設備將所接收到的所有數(shù)據(jù)進行組合,將得到的完整內容發(fā)送給所述用戶終端的播放器。
[0027]對于上述方法,在一種可能的實現(xiàn)方式中,還包括:
[0028]所述第二級設備向所述至少一個第一級設備返回拒絕命令,接收到所述拒絕命令的第一級設備停止向所述第二級設備發(fā)送數(shù)據(jù)。
[0029]對于上述方法,在一種可能的實現(xiàn)方式中,還包括:
[0030]接收到所述拒絕命令的第一級設備與所述第二級設備保持HTTP連接,并按照預定間隔向所述第二級設備發(fā)送心跳報告。
[0031]對于上述方法,在一種可能的實現(xiàn)方式中,還包括:
[0032]所述虛擬化控制器檢測各所述網絡設備的運行狀態(tài);
[0033]在某個網絡設備處于掉線的狀態(tài)下,所述虛擬化控制器將掉線的網絡設備的編號從可用設備列表中刪除。
[0034]為了解決上述技術問題,根據(jù)本發(fā)明的另一實施例,提供了一種虛擬化控制器,其設置于云端的內容分發(fā)網絡中,包括:
[0035]客戶端接口模塊,與用戶終端的播放器相通信,用于接收所述用戶終端的播放器發(fā)送的內容分發(fā)請求;
[0036]分級模塊,與各網絡設備相通信,用于根據(jù)各網絡設備的狀態(tài)信息進行設備分級,其中,分級結果包括所述網絡設備為第一級設備或第二級設備,所述第一級設備為中間設備,所述第二級設備為邊緣設備;
[0037]網絡設備接口模塊,與各所述網絡設備相通信,用于將所述分級結果下發(fā)給對應的網絡設備;
[0038]HTTP連接控制模塊,與各所述網絡設備相通信,用于控制所述第一級設備和所述第二級設備之間建立HTTP連接;
[0039]所述客戶端接口模塊還用于向所述用戶終端的播放器返回至少一個第二級設備的地址信息,以利用所返回的第二級設備的可用帶寬向所述用戶終端的播放器進行內容分發(fā)。
[0040]對于上述虛擬化控制器,在一種可能的實現(xiàn)方式中,所述分級模塊包括:
[0041]NAT探測單元,用于獲取所述虛擬化控制器所能管轄的網絡設備的狀態(tài)信息,所述網絡設備的狀態(tài)信息包括所述網絡設備的可用帶寬和NAT拓撲狀態(tài),在所述NAT拓撲狀態(tài)中,第一狀態(tài)表示所述網絡設備具有公網IP地址,第二狀態(tài)表示所述網絡設備在NAT后且屬于非對稱網絡NAT類型,第三狀態(tài)表示所述網絡設備在NAT后且屬于對稱網絡NAT類型;
[0042]第二級設備選取單元,用于從所述虛擬化控制器所能管轄的網絡設備中選取多個空閑網絡設備,并根據(jù)內容分發(fā)需求和各所述空閑網絡設備的可用帶寬,選取NAT拓撲狀態(tài)為第一狀態(tài)的部分設備作為第二級設備,所述內容分發(fā)需求包括直播節(jié)目的總帶寬和碼流,其中,所述第二級設備與客戶端連接并能夠與至少一個所述第一級設備建立HTTP連接,兩個所述第二級設備之間禁止建立HTTP連接;
[0043]第一級設備選取單元,用于根據(jù)所述內容分發(fā)需求、所選取的第二級設備的數(shù)量和剩余的所述空閑網絡設備的可用帶寬,選取NAT拓撲狀態(tài)為第一狀態(tài)的部分設備作為第一級設備,和/或,選取NAT拓撲狀態(tài)為第二狀態(tài)的部分設備作為第一級設備,其中,所述第一級設備與所述內容分發(fā)網絡連接并能夠與至少一個所述第二級設備相通信,兩個NAT拓撲狀態(tài)為第一狀態(tài)的第一級設備之間允許建立HTTP連接。
[0044]對于上述虛擬化控制器,在一種可能的實現(xiàn)方式中,HTTP連接控制模塊包括:
[0045]列表發(fā)送單元,對于每個所述第二級設備,所述列表發(fā)送單元用于向所述第二級設備下發(fā)第一級設備編號列表;
[0046]編號獲取模塊,用于獲取所述第二級設備根據(jù)所述第一級設備編號列表所選取的感興趣的第一級設備的編號;
[0047]地址發(fā)送單元,用于向所述第二級設備感興趣的第一級設備發(fā)送所述第二級設備的地址信息,由收到所述地址信息的第一級設備主動向所述第二級設備發(fā)送HTTP連接請求以建立HTTP連接。
[0048]對于上述虛擬化控制器,在一種可能的實現(xiàn)方式中,還包括:
[0049]容錯模塊,用于檢測各所述網絡設備的運行狀態(tài),在某