一種基於軟體定義的視頻直播網絡傳輸性能優化方法及系統與流程
2023-08-07 18:32:36
本發明涉及視頻直播網絡傳輸技術領域,特別是涉及一種基於軟體定義的視頻直播網絡傳輸性能優化方法及系統。
背景技術:
隨著Internet技術的不斷發展,視頻直播應用範圍越來越廣,如新聞發布會、體育比賽、教學交流實況、商業宣傳、遠程會議、開學開業典禮、慶典活動、結婚慶典等,網絡視聽已經成為了目前網絡用戶主要的網絡行為,也是各大門戶網站爭取用戶獲利的必爭之地。現有網絡主要採用以CDN、P2P、透明代理技術等方案來改善視頻傳播質量。上述方法可以確保點播視頻的流暢播放,但無法保證直播視頻的流暢播放。
為了改善網絡服務質量,軟體定義網絡(Software Defined Networking,SDN)技術應運而生。目前軟體定義網絡的研究主要從網絡流量負載均衡的角度考慮了流量控制,即不斷更新交換機流表,將流量往負載輕的鏈路轉發。但當網絡所有交換機鏈路都滿負荷時,再用更新流表的方法已經無能為力了。因此,還需從高速網絡系統的內因上尋找辦法,通過提高鏈路的價格,抑制源端的發送流量,再和流量控制想結合,才是真正提高視頻網絡直播傳輸性能的好方法。
FAST TCP協議(簡稱FAST協議)在發送端根據網絡擁塞狀態主動調整發送速率,主動避免緩衝區隊列溢出和擁塞現象的出現,取得更高的鏈路利用率和穩定性,是屬於從高速網絡系統的內因上去尋求提高網絡傳輸性能的方法,但FAST協議存在發送端無法準確獲得網絡擁塞狀態的缺陷。顯示擁塞通知協議(簡稱ECN協議)可以將網絡擁塞狀態通知給發送端,但ECN協議只能通知局部鏈路擁塞狀態。因此,急需一種方法將FAST TCP協議和ECN協議有效結合起來,克服直播視頻的無法流暢播放。
技術實現要素:
本發明的目的是提供一種基於軟體定義的視頻直播網絡傳輸性能優化方法及系統,本發明充分利用軟體定義方法控制平面全網絡管控特性,計算出整個網絡的擁塞價格向量,並通過擁塞通知協議通知發送網絡信息發送埠;網絡信息發送埠根據擁塞價格向量主動調整發送速率,避免網絡擁塞,從內因上去找到去解決高速網絡傳輸性能優化問題,實現直播視頻的流暢播放。
為實現上述目的,本發明提供了如下方案:
本發明提供了一種基於軟體定義的視頻直播網絡傳輸性能優化方法,所述優化方法,包括:
獲取全局網絡鏈路運行信息;
根據所述全局網絡鏈路運行信息,確定樣本數據;
根據所述樣本數據,計算網絡鏈路擁塞指導價格;
獲取當前網絡鏈路擁塞狀態;
根據所述網絡鏈路擁塞指導價格和所述當前網絡鏈路擁塞狀態,確定當前網絡鏈路擁塞價格向量;
將所述當前網絡鏈路擁塞價格向量發送到網絡信息發送埠,並根據網絡信息發送埠接收的當前網絡鏈路擁塞價格向量,調整所述網絡信息發送埠的發送速率。
可選的,所述獲取全局網絡鏈路運行信息,具體包括:
發送探測包至交換機設備,並接收所述交換機設備根據發送探測包發送的返回探測包;
根據發送探測包和接收到返回探測包的時間間隔,判斷當前鏈路擁塞狀態;若所述時間間隔大於設定閾值,則判斷原有的鏈路為擁塞狀態或不可用狀態;否則則判斷原有的鏈路為正常狀態;
根據所述當前鏈路擁塞狀態,獲取全局網絡鏈路運行信息。
可選的,所述確定樣本數據,具體包括:
計算發送探測包和接收到返回探測包的時間間隔;
根據所述時間間隔,判斷時間間隔是否大於設定閾值;若否,則獲取鏈路正常數據;
根據所述鏈路正常數據,確定樣本數據。
可選的,所述計算網絡鏈路擁塞指導價格,具體包括:
設置全局網絡擁塞狀態與計算擁塞價格參數的映射關係;
根據所述樣本數據和所述映射關係,構建神經網絡模型,其中所述神經網絡模型表示一個輸入層個數為N,隱層神經元個數為M,輸出層個數為1的三層神經網絡;
優化所述神經網絡模型中的各層連接的權值及閾值;
根據優化後的所述權值及閾值,計算網絡鏈路擁塞指導價格。
可選的,所述調整所述網絡信息發送埠的發送速率,具體包括:
根據所述當前網絡鏈路擁塞價格向量,設置擁塞標誌比例的IP包;
通過擁塞通知協議,將設所述IP包發送到網絡信息發送埠;
提取所述網絡信息發送埠中IP包中的當前網絡鏈路擁塞價格向量;
構建所述發送端的FAST TCP首部選項和IP首部選項;
根據所述發送端的FAST TCP首部選項和IP首部選項,獲取網絡信息發送埠當前網絡運行模式;
根據所述當前網絡運行模式,確定當前發送窗口大小;
根據當前發送窗口大小,調整所述網絡信息發送埠的發送速率。
本發明還提供了一種基於軟體定義的視頻直播網絡傳輸性能優化系統,所述優化系統,包括:
鏈路運行信息獲取模塊,用於獲取全局網絡鏈路運行信息;
樣本數據確定模塊,用於根據所述全局網絡鏈路運行信息,確定樣本數據;
網絡鏈路擁塞指導價格計算模塊,用於根據所述樣本數據,計算網絡鏈路擁塞指導價格;
當前網絡鏈路擁塞狀態獲取模塊,用於獲取當前網絡鏈路擁塞狀態;
當前網絡鏈路擁塞價格向量確定模塊,用於根據所述網絡鏈路擁塞指導價格和所述當前網絡鏈路擁塞狀態,確定當前網絡鏈路擁塞價格向量;
發送速率調整模塊,用於將所述當前網絡鏈路擁塞價格向量發送到網絡信息發送埠,並根據網絡信息發送埠接收的當前網絡鏈路擁塞價格向量,調整所述網絡信息發送埠的發送速率。
可選的,所述獲取全局網絡鏈路運行信息,具體包括:
數據傳輸子模塊,用於發送探測包至交換機設備,並接收所述交換機設備根據發送探測包發送的返回探測包;
當前鏈路擁塞狀態判斷子模塊,用於根據發送探測包和接收到返回探測包的時間間隔,判斷當前鏈路的狀態;若所述時間間隔大於設定閾值,則判斷原有的鏈路為擁塞狀態或不可用狀態;否則則判斷原有的鏈路為正常狀態;
全局網絡鏈路運行信息獲取子模塊,用於根據所述當前鏈路的狀態,獲取全局網絡鏈路運行信息。
可選的,所述確定樣本數據,具體包括:
時間間隔計算子模塊,用於計算發送探測包和接收到返回探測包的時間間隔;
時間間隔判斷子模塊,用於根據所述時間間隔,判斷時間間隔是否大於設定閾值;若否,則獲取鏈路正常數據;
樣本數據確定子模塊,用於根據所述鏈路正常數據,確定樣本數據。
可選的,所述計算網絡鏈路擁塞指導價格,具體包括:
關係設置子模塊,用於設置全局網絡擁塞狀態與計算擁塞價格參數的映射關係;
神經網絡構建子模塊,用於根據所述樣本數據和所述映射關係,構建神經網絡模型,其中所述神經網絡模型表示一個輸入層個數為N,隱層神經元個數為M,輸出層個數為1的三層神經網絡;
權值及閾值優化子模塊,用於優化所述神經網絡模型中的各層連接的權值及閾值;
網絡鏈路擁塞指導價格計算子模塊,用於根據優化後的所述權值及閾值,計算網絡鏈路擁塞指導價格。
可選的,所述調整所述網絡信息發送埠的發送速率,具體包括:
IP包設置子模塊,用於根據所述當前網絡鏈路擁塞價格向量,設置擁塞標誌比例的IP包;
IP包發送子模塊,用於通過擁塞通知協議,將設所述IP包發送到網絡信息發送埠;
提取子模塊,用於提取所述網絡信息發送埠中IP包中的當前網絡鏈路擁塞價格向量;
FAST TCP首部選項和IP首部選項構建子模塊,用於構建所述發送端的TCP首部選項和IP首部選項;
當前網絡運行模式分析子模塊,用於根據所述發送端的FAST TCP首部選項和IP首部選項,獲取網絡信息發送埠當前網絡運行模式;
當前發送窗口大小確定子模塊,用於根據所述當前網絡運行模式,確定當前發送窗口大小;
發送速率調整子模塊,用於根據當前發送窗口大小,調整所述網絡信息發送埠的發送速率。
根據本發明提供的具體實施例,本發明公開了以下技術效果:本發明通過獲取全局網絡鏈路運行信息,確定樣本數據,並根據確定的樣本數據,計算網絡鏈路擁塞指導價格;獲取當前網絡鏈路擁塞狀態,並根據網絡鏈路擁塞指導價格和所述當前網絡鏈路擁塞狀態,計算當前網絡鏈路擁塞價格向量;將所述當前網絡鏈路擁塞價格向量發送到網絡信息發送埠,並根據網絡信息發送埠接收的當前網絡鏈路擁塞價格向量,調整所述網絡信息發送埠的發送速率,避免網絡擁塞,從內因上去找到去解決高速網絡傳輸性能優化問題,提高視頻直播網絡的數據傳輸性能。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例中的基於軟體定義的視頻直播網絡傳輸性能優化方法流程圖;。
圖2為本發明實施例中的基於軟體定義的視頻直播網絡傳輸性能優化系統結構圖;
圖3為本發明實施例中的神經網絡模型結構圖;
圖4為本發明實施例中的網絡運行模式圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖和具體實施方式對本發明作進一步詳細的說明。
實施例一
本發明提供了一種基於軟體定義的視頻直播網絡傳輸性能優化方法,如圖1所示,具體包括:
步驟101:獲取全局網絡鏈路運行信息,包括:
控制器定期向所有交換設備發送鏈路層發現協議(Link Layer Discovery Protocol,LLDP),用於採集網絡交換設備的連接信息,並根據控制器與網絡交換設備的連接信息,構建全局網絡拓撲圖;
根據所述全局網絡拓撲圖,發送探測包至交換機設備,並接收所述交換機設備根據發送探測包發送的返回探測包;
利用發送探測包和接收到返回的探測包的時間間隔,判斷當前鏈路網絡擁塞狀態,具體包括:記錄探測包發出的時間並啟動定時器,若所述時間間隔大於設定閾值,則判斷原有的鏈路為擁塞狀態或不可用狀態;否則則判斷原有的鏈路為正常狀態;
根據獲取的當前鏈路網絡擁塞狀況,獲取全局網絡鏈路運行信息。
步驟102:確定樣本數據,包括:
計算發送探測包和接收到返回探測包的時間間隔;
根據所述時間間隔,判斷時間間隔是否大於設定閾值;若否,則獲取鏈路正常數據;
根據所述鏈路正常數據,確定樣本數據。
步驟103:計算網絡鏈路擁塞指導價格,包括:
設置全局網絡擁塞狀態與計算擁塞價格參數的映射關係,具體包括:根據軟體定義網絡架構的開放性和可編程性,由網絡管理員根據經驗設置全局網絡擁塞狀態與計算擁塞價格參數向量的映射關係;當鏈路資源不緊張時,則選取較低的擁塞價格計算參數向量;當各鏈路資源緊張時,則選取大幅提高擁塞價格計算參數向量,如表1所示。
表1:鏈路負載和擁塞指導價格的關係
根據所述樣本數據和所述映射關係,構建神經網絡模型,其中所述神經網絡模型表示一個輸入層個數為N,隱層神經元個數為M,輸出層個數為1的三層BP神經網絡,具體包括:在OpenFlow1.3協議的基礎上,利用控制器和交換機OpenFlow通道,採用控制器和交換機交換三種封裝的controller-to-switch,asynchronous和symmetric信息包,構造OpenFlow交換機和控制器交互相信息數據結構。上述數據結構包括交換機定期將數據中心網絡內n個交換機鏈路負載信息s1,s2,s....,sn、實際應用效果,控制器宏觀指導交換擁塞機價格設置策略。樣本數據輸入為各交換機的鏈路負載信息,輸出為所採用的去模糊化的擁塞價格指導策略,並根據去模糊化的擁塞價格指導策略,在中央控制器構建一個如圖所示的輸入層個數為n(交換機數目)、隱層神經元個數為m個,輸出層個數為1的三層BP神經網絡,如圖3所示,且設定BP神經網絡各層的連接權值及閾值首先隨機初始化為[0,1]之間的值。
根據優化後的所述權值及閾值,獲取優化神經網絡模型,具體包括:隨著原始數據越來越多,為了提高神經網絡的運算收斂速度,將採用模糊C-平均分群算法將有相關性的屬性或性質處理成同一歸類,產生多個群組,減少重複數據。
模糊C-平均分群法的思想如下:
Fuzzy C-means的目標函式如公式(1):
其中,uij為數據點si於群集j中的歸屬度,m是權重係數可以為大於1的任意實數,||si-cj||2代表的是數據點si與群集中心cj的距離函式,一般都是使用歐幾裡德距離做計算。Fuzzy C-means透過迭代歸屬度函數和群集中心最小化,用以取得較佳的分群結果,根據公式(2)更新歸屬度函數uij:
根據公式(3)更新群集中心函數cj:
若則迭代停止。這邊的ε是預先設定的容錯誤差值,而k為迭代次數。
具體步驟如下:
1.參數初始設定:設定樣本數據data、分群數量c、迭代次數k、初始化歸屬度集合矩陣U;
2.更新群集中心:通過公式(3),計算群集中心cj。
3.計算分群歸屬:通過公式(2),更新新的分群歸屬度矩陣。
4.終止條件:當時,則迭代停止,否則回到步驟2重複執行。
根據優化後的所述權值及閾值,獲取擁塞價格計算策略,具體包括:根據樣本數據離線訓練BP神經網絡各連接權值和閾值,以得到其最優解。
根據所述最優解和各交換機提交的實際負荷和上述訓練得到的神經網絡模型,計算出目前交換機處於何種狀態,根據模糊規則推出目前交換機將採取的擁塞價格計算策略。
根據所述擁塞價格計算策略,計算網絡鏈路擁塞指導價格,具體包括:在交換機層面,根據上層計算擁塞價格的宏觀指導政策,研究擁塞價格計算公式中的參數和控制器宏觀指導策略的關係,計算網絡鏈路擁塞指導價格;
步驟104:獲取當前網絡鏈路擁塞狀態;
步驟105:確定當前網絡鏈路擁塞價格向量,具體包括:根據所述網絡鏈路擁塞指導價格和所述當前網絡鏈路擁塞狀態,研究擁塞價格計算公式中的參數和控制器宏觀指導策略的關係,結合根據控制器給出的高速網絡的鏈路擁塞狀態,選擇擁塞價格參數向量B,根據p=f(B,Q)計算各交換機參數價格,確定當前網絡鏈路擁塞價格向量,Q為鏈路當前擁塞狀態,其中p=f(B,Q),其中B為常數向量,Q為發送探測包和接收到返回的包的時間差向量
步驟106:調整網絡信息發送埠的發送速率,具體包括:
根據所述當前網絡鏈路擁塞價格向量,設置擁塞標誌比例的IP包,具體包括:在交換機層面,利用軟體定義架構可編程的特性,設置擁塞標誌比例的IP包;
添加顯式擁塞通知算法,使得交換機能擁塞標誌比例的IP包準確反饋到發送端高速網絡傳輸控制協議,進而發送到發送到網絡信息發送埠;
提取所述網絡信息發送埠中IP包中的當前網絡鏈路擁塞價格向量;
構建所述發送端的TCP首部選項和IP首部選項,具體包括:在網絡信息發送埠採用FAST TCP協議,在FAST包首部和IP分組首部添加TCP首部選項、IP首部選項。TCP首部選項和IP首部選項內容包含將FAST發送端的和鏈路端路由設備的交互信息,具體可包含如下內容:本次協議參數值、歷史協議參數值、當前網絡瓶頸鏈路擁塞價格和歷史網絡瓶頸鏈路擁塞價格;其中,為保證公平性,各發送端賦予相同的購買力。
獲取網絡信息發送埠當前網絡運行模式,具體包括:在網絡信息發送埠,統計得到發送窗口大小、往返延時、網絡擁塞價格及上述數據的變化值,進行特徵分析、提取和特徵複合設計,協同分析,獲取如圖4所示的網絡運行模式;
根據所述當前網絡運行模式,確定當前發送窗口大小,具體包括:根據不同模式確定發送窗口變化的大小
根據當前發送窗口大小,調整所述網絡信息發送埠的發送速率,具體包括:根據當前發送窗口大小,從而調整發送端的發送速率。如圖4所示,當誤差很大(e>e1)時,對應區域①,則需要取較大的窗口變化步長;當誤差較小((e<e2),且時),對應區域⑤,則取較小的窗口變化步長。
本發明通過上述實施例,實現了避免網絡擁塞,從內因上去找到去解決高速網絡傳輸性能優化問題,提高視頻直播網絡的數據傳輸性能。
本發明還提供一個基於軟體定義的視頻直播網絡傳輸性能優化系統,如圖2所示,具體包括:鏈路運行信息獲取模塊201、樣本數據確定模塊202、網絡鏈路擁塞指導價格計算模塊203、當前網絡鏈路擁塞狀態獲取模塊204、當前網絡鏈路擁塞價格向量確定模塊205以及發送速率調整模塊206。
鏈路運行信息獲取模塊201,用於獲取全局網絡鏈路運行信息,具體包括:
數據傳輸子模塊,用於發送探測包至交換機設備,並接收所述交換機設備根據發送探測包發送的返回探測包;
當前鏈路擁塞狀態判斷子模塊,用於根據發送探測包和接收到返回探測包的時間間隔,判斷當前鏈路的狀態;若所述時間間隔大於設定閾值,則判斷原有的鏈路為擁塞狀態或不可用狀態;否則則判斷原有的鏈路為正常狀態;
全局網絡鏈路運行信息獲取子模塊,用於根據所述當前鏈路的狀態,獲取全局網絡鏈路運行信息。
樣本數據確定模塊202,用於根據所述全局網絡鏈路運行信息,確定樣本數據,具體包括:
時間間隔計算子模塊,用於計算發送探測包和接收到返回探測包的時間間隔;
時間間隔判斷子模塊,用於根據所述時間間隔,判斷時間間隔是否大於設定閾值;若否,則獲取鏈路正常數據;
樣本數據確定子模塊,用於根據所述鏈路正常數據,確定樣本數據。
網絡鏈路擁塞指導價格計算模塊203,用於根據所述樣本數據,計算網絡鏈路擁塞指導價格,具體包括:
關係設置子模塊,用於設置全局網絡擁塞狀態與計算擁塞價格參數的映射關係;
神經網絡構建子模塊,用於根據所述樣本數據和所述映射關係,構建神經網絡模型,其中所述神經網絡模型表示一個輸入層個數為N,隱層神經元個數為M,輸出層個數為1的三層神經網絡;
權值及閾值優化子模塊,用於優化所述神經網絡模型中的各層連接的權值及閾值;
網絡鏈路擁塞指導價格計算子模塊,用於根據優化後的所述權值及閾值,計算網絡鏈路擁塞指導價格。
當前網絡鏈路擁塞狀態獲取模塊204,用於獲取當前網絡鏈路擁塞狀態;
當前網絡鏈路擁塞價格向量確定模塊205,用於根據所述網絡鏈路擁塞指導價格和所述當前網絡鏈路擁塞狀態,確定當前網絡鏈路擁塞價格向量;
發送速率調整模塊206,用於將所述當前網絡鏈路擁塞價格向量發送到網絡信息發送埠,並根據網絡信息發送埠接收的當前網絡鏈路擁塞價格向量,調整所述網絡信息發送埠的發送速率,具體包括:
IP包設置子模塊,用於根據所述當前網絡鏈路擁塞價格向量,設置擁塞標誌比例的IP包;
IP包發送子模塊,用於通過擁塞通知協議,將設所述IP包發送到網絡信息發送埠;
提取子模塊,用於提取所述網絡信息發送埠中IP包中的當前網絡鏈路擁塞價格向量;
FAST TCP首部選項和IP首部選項構建子模塊,用於構建所述發送端的TCP首部選項和IP首部選項;
當前網絡運行模式分析子模塊,用於根據所述發送端的FAST TCP首部選項和IP首部選項,獲取網絡信息發送埠當前網絡運行模式;
當前發送窗口大小確定子模塊,用於根據所述當前網絡運行模式,確定當前發送窗口大小;
發送速率調整子模塊,用於根據當前發送窗口大小,調整所述網絡信息發送埠的發送速率。
本發明通過上述實施例,實現了避免網絡擁塞,從內因上去找到去解決高速網絡傳輸性能優化問題,提高視頻直播網絡的數據傳輸性能。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對於實施例公開的系統而言,由於其與實施例公開的方法相對應,所以描述的比較簡單,相關之處參見方法部分說明即可。
本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發明的限制。