System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據接收,特別涉及一種高效的udp數據接收方法。
技術介紹
1、隨著4k直播業務和點播業務的越來越普及,對于傳輸的帶寬越來越高,隨之而來的就是處理的數據量越來越大。特別是8k直播業務部分運營商也開始了試點推廣,對高碼率的數據處理性能提出了更高的要求,怎么在目前的硬件能力上實現高速的數據處理,降低對硬件平臺的要求,是必須面對的問題。
2、在部分linux系統上,用戶空間內存映射到網卡驅動的內存空間能夠實現類似的數據接收方案,現有技術的缺點主要從數據接收方式來說:
3、1.操作系統自帶的虛擬網卡技術只有大多數linux平臺支持,部分裁剪功能的平臺甚至不支持;
4、2.雖然linux系統上可以通過虛擬網卡實現數據接收,但是在android系統上并沒有類似的操作權限;
5、3.智能電視由各廠家提供操作系統,基本都不支持對外提供虛擬網卡訪問,不具備普遍性,而目前智能電視占比越來越大;
6、從數據處理方式來說:
7、1.目前主流數據接收都是構建udp的套接字,從網卡接收數據,數據需要從鏈路層直到應用層,中間數據都需要經過協議棧處理,從最初的以太幀層層剝離報文頭,最后把有效負載填充到socket的內存空間,等待應用程序來訪問,中間經過多次數據拷貝和報文處理,這些都需要耗費內存和cpu時間片參與,特別是高速的數據處理,內存帶寬和cpu占比都將大大增加,對于許多性能較低的硬件平臺,基本無法開展高速數據業務;
8、2.大量cpu和內存的占用,也擠壓了其
技術實現思路
1、本專利技術提供一種高效的udp數據接收方法,用以解決
技術介紹
中提出的問題。
2、一種高效的udp數據接收方法,包括:
3、s1:通過自帶協議棧,建立用戶空間接口與網卡空間接口之間的訪問權限;
4、s2:基于所述訪問權限,將用戶空間的udp數據映射到網卡空間的鏈路層;
5、s3:在所述鏈路層采用大小一致的數據塊鏈表方式的緩沖器進行udp數據的分發;
6、s4:按照udp數據的分發對所述udp數據進行傳遞,并傳遞到應用層。
7、優選的,所述s1之前,還包括:
8、對所述自帶協議棧進行解析,得到多個協議層,并獲取每個協議層的協議功能;
9、基于協議功能,確定對每個協議層的配置參數,基于協議層之間的關系,對所述配置參數進行優化,得到目標配置參數;
10、基于所述目標配置參數,將所述自帶協議棧加入至udp數據接收平臺中。
11、優選的,所述s1中,通過自帶協議棧,建立用戶空間接口與網卡空間接口之間的訪問權限,包括:
12、基于用戶空間接口建立用戶模型,基于網卡空間接口建立存儲空間模型,基于用戶模型和存儲空間模型,建立訪問權限專用語言;
13、基于所述訪問權限專用語言,創建自帶協議棧對應的協議權限;
14、基于所述協議權限,建立用戶空間接口與網卡空間接口之間的訪問權限。
15、優選的,所述s2中,基于所述訪問權限,將用戶空間的udp數據映射到網卡空間的鏈路層,包括:
16、獲取用戶空間的第一內存堆,獲取網卡空間的第二內存堆,將所述第一內存堆和第二內存堆進行匹配,得到內存堆匹配關系;
17、基于所述內存堆匹配關系,建立訪問信息,通過所述訪問權限按照訪問信息,將用戶空間的udp數據映射到網卡空間的鏈路層。
18、優選的,所述s3中,在所述鏈路層采用大小一致的數據塊鏈表方式的緩沖器進行udp數據的分發,包括:
19、為每個數據塊配置最大傳輸單元和20個字節,將所有配置完成的數據塊組成數據塊鏈表;
20、將映射到網卡空間的鏈路層的udp數據按照最大傳輸單元的傳輸量劃分為多個以太幀,將所述以太幀按照順序匹配給數據塊鏈表中的數據塊;
21、數據塊在接收到以太幀后,基于以太幀的數據內容在數據塊的后8個字節中依次標識數據塊長度,有效數據長度和塊內數據偏移;
22、在數據塊完成數據分發后,將數據塊返回至數據塊鏈表進行新以太幀的數據分發。
23、優選的,所述s4中,按照udp數據的分發對所述udp數據進行傳遞,并傳遞到應用層,包括:
24、按照udp數據的分發,設置緩沖器的循環策略;
25、按照所述循環策略,將在鏈路層的udp數據依次傳遞到網絡層,傳輸層,會話層,表示層,最后傳遞到應用層。
26、優選的,所述按照udp數據的分發,設置緩沖器的循環策略,包括:
27、獲取udp數據的分發對應的初始數據塊隊列,獲取所述初始數據塊隊列的首隊列位置和尾隊列位置;
28、獲取首隊列位置的首數據塊,并獲取所述首數據塊的udp頭,基于所述udp頭判斷所述首數據塊中的數據是否為單播或組播數據;
29、若是,將所述首數據塊傳輸至用戶處理數據列表等待處理,并在所述首數據塊完成用戶數據處理任務后,將所述首數據塊重新循環至緩沖器的尾隊列位置,將初始數據塊隊列向首隊列位置進行偏移,將首隊列位置對應的新首數據塊進行再次判斷,處理和循環操作;
30、否則,將所述首數據塊通過自帶協議棧重新循環至緩沖器的尾隊列位置,將初始數據塊隊列向首隊列位置進行偏移,將首隊列位置對應的新首數據塊進行再次判斷,處理和循環操作。
31、優選的,所述按照所述循環策略,將在鏈路層的udp數據依次傳遞到網絡層,傳輸層,會話層,表示層,最后傳遞到應用層,包括:
32、獲取udp數據在網絡層,傳輸層,會話層,表示層和應用層的數據處理任務,基于所述數據處理任務,按照所述循環策略,確定在每個層的udp數據處理操作;
33、將每個層的udp數據處理操作按照順序組成操作序列,按照所述操作序列在鏈路層的udp數據依次傳遞到網絡層,傳輸層,會話層,表示層,最后傳遞到應用層。
34、優選的,還包括:獲取數據訪問需求,基于所述數據訪問需求對udp數據進行訪問展示,具體為:
35、基于所述數據訪問需求,結合訪問權限,確定滿足需求的接口信息,并建立接口信息之間的關聯信息;
36、基于所述關聯信息,確定udp數據的接口映射特征,按照所述接口映射特征建立udp數據的訪問映射路徑;
37、基于所述訪問映射路徑將udp數據映射至訪問網卡空間;
38、從所述數據訪問需求中獲取數據展示需求,基于數據展示需求確定數據傳遞的數據量大小和數據處理特征;
39、基于所述數據量大小和數據處理特征,設計網絡層,傳輸層,會話層,表示層和應用層的相鄰層之間的傳遞規則;
40、基于所述傳遞規則,確定緩沖器的循環策略中的具體策略參數,得到目標循環策略;
41、按照所述目標循環策略對ud本文檔來自技高網...
【技術保護點】
1.一種高效的UDP數據接收方法,其特征在于,包括:
2.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,所述S1之前,還包括:
3.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,所述S1中,通過自帶協議棧,建立用戶空間接口與網卡空間接口之間的訪問權限,包括:
4.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,所述S2中,基于所述訪問權限,將用戶空間的UDP數據映射到網卡空間的鏈路層,包括:
5.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,所述S3中,在所述鏈路層采用大小一致的數據塊鏈表方式的緩沖器進行UDP數據的分發,包括:
6.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,所述S4中,按照UDP數據的分發對所述UDP數據進行傳遞,并傳遞到應用層,包括:
7.根據權利要求6所述的一種高效的UDP數據接收方法,其特征在于,所述按照UDP數據的分發,設置緩沖器的循環策略,包括:
8.根據權利要求6所述的一種高效的UDP數
9.根據權利要求1所述的一種高效的UDP數據接收方法,其特征在于,還包括:獲取數據訪問需求,基于所述數據訪問需求對UDP數據進行訪問展示,具體為:
10.根據權利要求9所述的一種高效的UDP數據接收方法,其特征在于,基于所述傳遞規則,確定緩沖器的循環策略中的具體策略參數,得到目標循環策略,包括:
...【技術特征摘要】
1.一種高效的udp數據接收方法,其特征在于,包括:
2.根據權利要求1所述的一種高效的udp數據接收方法,其特征在于,所述s1之前,還包括:
3.根據權利要求1所述的一種高效的udp數據接收方法,其特征在于,所述s1中,通過自帶協議棧,建立用戶空間接口與網卡空間接口之間的訪問權限,包括:
4.根據權利要求1所述的一種高效的udp數據接收方法,其特征在于,所述s2中,基于所述訪問權限,將用戶空間的udp數據映射到網卡空間的鏈路層,包括:
5.根據權利要求1所述的一種高效的udp數據接收方法,其特征在于,所述s3中,在所述鏈路層采用大小一致的數據塊鏈表方式的緩沖器進行udp數據的分發,包括:
6.根據權利要求1所述的一種高效的udp數據接收方法,其特征在于,所...
【專利技術屬性】
技術研發人員:劉彬,
申請(專利權)人:深圳市茁壯網絡股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。