本發明專利技術公開了基于內核進行RTP數據收發的網關設備,屬于一種網絡設備,網關設備包括一驅動模塊,驅動模塊包括RTP接收子模塊以及RTP讀取子模塊;驅動模塊與RTP應用程序的接口包括創建接口、修改接口以及關閉接口;RTP接收子模塊分別與內核的socket和RTP讀取子模塊連接,RTP讀取子模塊與一DSP模塊連接;驅動模塊通過RTP接收子模塊從內核的socket中接收網絡RTP包,并將RTP包送入系統緩存隊列;驅動模塊通過RTP讀取子模塊從系統緩存隊列中讀取RTP包,并將RTP包發送到DSP模塊。本發明專利技術的有益效果是:通過直接在內核層處理RTP的收發,而不需要頻繁的通過系統調用來處理RTP包,減少了在應用層和內核之間的切換,大大減小RTP的轉發時延,增強了語音模塊的健壯性。
【技術實現步驟摘要】
基于內核進行RTP數據收發的網關設備及其實現方法
本專利技術涉及一種網絡設備,尤其涉及一種基于內核進行RTP數據收發的網關設備。
技術介紹
家庭網關的在寬帶接入領域內的使用越來越多。芯片商一般都提供整體的解決方案,當前的方案多為Linux。對于語音接入這一塊,芯片商只在應用層為設備商提供DSP/SLIC的API。對于媒體的轉發實現,芯片商一般只提供了從應用層中獲取DSP模塊產生媒體和接收媒體的方法。具體的轉發實現一般由設備商完成。考慮到成本以及供貨的原因,一般設備商要實現多個芯片商的方案。由于芯片商的方案各不相同,針對媒體的轉發實現,總是會造成重復勞動。另外,更重要的一點是,由于在通話時,RTP包一般10ms/20ms一個,RTP在應用層的轉發,將導致頻繁的內核和應用層切換,影響系統的效率,特別是在WiFi或者三層轉發等業務開啟時,語音質量將嚴重受到影響。現有的方案都是在用戶層創建socket然后通過如select函數的輪詢監聽socket,然后通過系統調用取包,這樣一來,在語音流通時,就有很多rtp包送往dsp以及從dsp收包發往網絡。系統調用需要從用戶空間陷入內核空間,處理完后,又需要返回用戶空間,其中除了系統的syscall服務例程的實際耗時外,陷入/返回過程和syscall處理程序(查系統調用表,存儲/恢復用戶現場等)也需要花費一些時間,這些時間加起來就是一個syscall的響應速度,所以過于頻繁的調用syscall,就會導致響應速度降低,造成語音質量的削減。
技術實現思路
針對以上所述的技術問題,本專利技術提供了一種基于內核進行RTP數據收發的網關設備,以減少內核和應用層之間的頻繁切換,提高系統的運行效率。具體的技術方案如下所示:基于內核進行RTP數據收發的網關設備,其中,所述網關設備包括一驅動模塊,所述驅動模塊包括RTP接收子模塊以及RTP讀取子模塊;所述驅動模塊與RTP應用程序的接口包括創建接口、修改接口以及關閉接口;所述RTP接收子模塊分別與所述內核的socket和所述RTP讀取子模塊連接,所述RTP讀取子模塊與一DSP模塊連接;所述驅動模塊通過所述RTP接收子模塊從所述內核的socket中接收網絡RTP包,并將所述RTP包送入系統緩存隊列;所述驅動模塊通過所述RTP讀取子模塊從所述系統緩存隊列中讀取所述RTP包,并將所述RTP包發送到所述DSP模塊。上述的基于內核進行RTP數據收發的網關設備,其中,所述驅動模塊還包括RTP發送子模塊,所述RTP發送子模塊與所述DSP模塊連接;所述驅動模塊通過所述RTP發送子模塊從所述DSP模塊接收RTP凈荷,并封裝成IP包格式,并通過所述網關設備的物理接口向外發送。上述的基于內核進行RTP數據收發的網關設備,其中,所述RTP接收子模塊和所述RTP讀取子模塊通過數據隊列同步鎖同步操作。上述的基于內核進行RTP數據收發的網關設備,其中,所述創建接口用于接收所述RTP應用程序創建一個RTP流的指令,并設置所述RTP流參數;所述修改接口用于修改所述RTP流參數;所述關閉接口用于接收所述RTP應用程序關閉所述RTP流的指令,并釋放系統資源。上述的基于內核進行RTP數據收發的網關設備,其中,所述參數包括DSP通道號、本地端口、本地IP、遠端端口、遠端IP以及媒體方向。上述的基于內核進行RTP數據收發的網關設備,其中,所述驅動模塊對所述RTP數據的收發同樣適用于對RTCP數據的收發?;趦群诉M行RTP數據收發的方法,其中,通過上述的網關設備進行RTP數據收發,所述方法具體包括如下步驟:步驟S1.在用戶層通過所述RTP應用程序的創建接口,創建一RTP流,并在系統內核中創建與所述RTP流對應的RTP接收內核線程、RTP讀取內核線程以及RTP發送內核線程;步驟S2.所述RTP接收內核線程從內核socket中接收RTP包,并將其送入系統緩存隊列;步驟S3.所述RTP讀取內核線程從所述系統緩存隊列中讀取所述RTP包,并利用DSP模塊的接口,發送到所述DSP模塊的消息隊列中。上述的基于內核進行RTP數據收發的方法,其中,所述方法還包括:步驟S4.所述RTP發送內核線程從所述DSP模塊接收所述RTP凈荷,并封裝成IP包形式,從所述網關設備的物理接口發送出去。上述的基于內核進行RTP數據收發的方法,其中,所述步驟S2中還包括:步驟S2.1所述RTP接收內核線程從內核socket中接收RTP包后,得到一數據隊列同步鎖;步驟S2.2所述RTP接收內核線程將所述RTP包加入到緩存隊列,并釋放可用數據包信號量,同時釋放所述數據隊列同步鎖;所述步驟S3中還包括:步驟S3.1所述RTP讀取內核線程不斷嘗試獲得數據包信號量,當所述RTP讀取內核線程不能獲得所述數據包信號量,所述RTP讀取內核線程睡眠,并被系統內核的定時器定時喚醒;步驟S3.2當所述RTP讀取內核線程獲得所述數據包信號量,所述RTP讀取內核就去拿所述數據隊列同步鎖,并在從所述緩存隊列中獲得RTP包后,釋放所述數據隊列同步鎖。上述的基于內核進行RTP數據收發的方法,同樣適用于對RTCP數據的收發。本技術方案的有益效果是:通過直接在內核層處理RTP的收發,而不需要頻繁的通過系統調用來處理RTP包,減少了在應用層和內核之間的切換,大大減小RTP的轉發時延,增強了語音模塊的健壯性。附圖說明圖1為本專利技術實施例的一種基于內核進行RTP數據收發的網關設備的系統結構圖;圖2為本專利技術實施例的基于內核進行RTP數據收發的方法的流程示意圖。具體實施方式下面結合附圖和具體實施例對本專利技術作進一步說明,但不作為本專利技術的限定。如圖1所示為本專利技術一種基于內核進行RTP數據收發的網關設備的系統結構圖,其中,網關設備包括一驅動模塊,驅動模塊包括RTP接收子模塊以及RTP讀取子模塊;驅動模塊與RTP應用程序的接口包括創建接口、修改接口以及關閉接口;RTP接收子模塊分別與內核的socket和RTP讀取子模塊連接,RTP讀取子模塊與一DSP模塊連接;驅動模塊通過RTP接收子模塊從內核的socket中接收網絡RTP包,并將RTP包送入系統緩存隊列;驅動模塊通過RTP讀取子模塊從系統緩存隊列中讀取出RTP包,并將RTP包發送到DSP模塊的消息隊列,由DSP芯片等設備對數據進行相應的解碼還原處理。驅動模塊還包括RTP發送子模塊,RTP發送子模塊與DSP模塊連接。驅動模塊通過RTP發送子模塊從DSP模塊中接收到RTP凈荷,并封裝成IP包格式,并通過網關設備的物理接口向外發送。本專利技術的技術原理是:操作系統如Linux的運行空間可分為內核空間與用戶空間,它們各自運行在不同的級別中,邏輯上相互隔離。本專利技術通過直接在內核中調用socket等syscall的服務例程,就能將對RTP數據的收發從應用層遷移到內核中,同時統一針對RTP收發操作的接口,從而可以直接在內核層處理RTP的收發,而不需要頻繁的通過系統調用來處理RTP包,減少了在應用層和內核之間的切換,大大減小RTP的轉發時延,增強了語音模塊的健壯性。上述的基于內核進行RTP數據收發的網關設備,其中,RTP接收子模塊和RTP讀取子模塊通過數據隊列同步鎖同步操作。在模塊初始化的時候,創建數據隊列同步鎖和可用數據包同步鎖,當接收線程收到本文檔來自技高網...

【技術保護點】
基于內核進行RTP數據收發的網關設備,其特征在于,所述網關設備包括一驅動模塊,所述驅動模塊包括RTP接收子模塊以及RTP讀取子模塊;所述驅動模塊與RTP應用程序的接口包括創建接口、修改接口以及關閉接口;所述RTP接收子模塊分別與所述內核的socket和所述RTP讀取子模塊連接,所述RTP讀取子模塊與一DSP模塊連接;所述驅動模塊通過所述RTP接收子模塊從所述內核的socket中接收網絡RTP包,并將所述RTP包送入系統緩存隊列;所述驅動模塊通過所述RTP讀取子模塊從所述系統緩存隊列中讀取所述RTP包,并將所述RTP包發送到所述DSP模塊。
【技術特征摘要】
1.基于內核進行RTP數據收發的網關設備,其特征在于,所述網關設備包括一驅動模塊,所述驅動模塊包括RTP接收子模塊以及RTP讀取子模塊;所述驅動模塊與RTP應用程序的接口包括創建接口、修改接口以及關閉接口;所述RTP接收子模塊分別與所述內核的socket和所述RTP讀取子模塊連接,所述RTP讀取子模塊與一DSP模塊連接;所述RTP接收子模塊和所述RTP讀取子模塊通過數據隊列同步鎖同步操作;所述驅動模塊通過所述RTP接收子模塊從所述內核的socket中接收網絡RTP包,并將所述RTP包送入系統緩存隊列;所述驅動模塊通過所述RTP讀取子模塊從所述系統緩存隊列中讀取所述RTP包,并將所述RTP包發送到所述DSP模塊。2.如權利要求1所述的基于內核進行RTP數據收發的網關設備,其特征在于,所述驅動模塊還包括RTP發送子模塊,所述RTP發送子模塊與所述DSP模塊連接;所述驅動模塊通過所述RTP發送子模塊從所述DSP模塊接收RTP凈荷,封裝成IP包格式,并通過所述網關設備的物理接口向外發送。3.如權利要求1所述的基于內核進行RTP數據收發的網關設備,其特征在于,所述創建接口用于接收所述RTP應用程序創建一個RTP流的指令,并設置所述RTP流參數;所述修改接口用于修改所述RTP流參數;所述關閉接口用于接收所述RTP應用程序關閉所述RTP流的指令,并釋放系統資源。4.如權利要求3所述的基于內核進行RTP數據收發的網關設備,其特征在于,所述參數包括DSP通道號、本地端口、本地IP、遠端端口、遠端IP以及媒體方向。5.如權利要求1至權利要求4任一項所述的基于內核進行RTP數據收發的網關設備,其特征在于,所述驅動模塊對所述RTP數據的收發同樣適...
【專利技術屬性】
技術研發人員:龐駿,韓永華,
申請(專利權)人:上海斐訊數據通信技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。