[發明專利]協議報文跨層通信方法、裝置及電子設備有效
| 申請號: | 201810292638.5 | 申請日: | 2018-03-30 |
| 公開(公告)號: | CN108712459B | 公開(公告)日: | 2021-06-15 |
| 發明(設計)人: | 陳濤 | 申請(專利權)人: | 深圳市風云實業有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙) 11371 | 代理人: | 王文紅 |
| 地址: | 518000 廣東省深圳市福田區*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 協議 報文 通信 方法 裝置 電子設備 | ||
1.一種協議報文跨層通信方法,其特征在于,所述方法包括:
接收由交換芯片上送CPU的協議報文;所述協議報文包括:報文數據信息及擴展信息;
根據所述擴展信息,判斷所述協議報文的協議類型,并根據所述協議類型,將所述協議報文存儲于預先創建的與所述協議類型相應的套接字的緩沖區中;所述預先創建的套接字中包括:套接字釋放回調函數、收包處理回調函數;
調用內核提供的復制函數,將從所述緩沖區中取出的協議報文轉換至用戶態空間;
調用所述收包處理回調函數,讀取所述轉換至用戶態空間的協議報文;
其中,在所述接收由交換芯片上送CPU的協議報文之前,還包括:
分配原始套接字的存儲空間,并對原始套接字進行初始化;
將初始化后的套接字加入協議族套接字鏈表中,以基于協議族套接字鏈表確定與所述協議類型相應的套接字。
2.根據權利要求1所述的方法,其特征在于,在所述接收由交換芯片上送CPU的協議報文之前,還包括:
判斷是否有允許使用的原始套接字;
如果是,則判斷是否創建原始套接字;
如果是,分配所述原始套接字的存儲空間,并對所述原始套接字進行初始化;所述初始化包括:基本數據初始化、協議族號初始化、套接字釋放回調函數初始化及收包處理回調函數初始化;
將初始化后的套接字加入協議族套接字鏈表中。
3.根據權利要求1所述的方法,其特征在于,根據所述擴展信息,判斷所述協議報文的協議類型,具體包括:
從所述擴展信息中提取所述協議報文的二層頭部數據;
根據所述二層頭部數據的目的MAC和type字段,判斷所述協議報文的協議類型。
4.根據權利要求2所述的方法,其特征在于,所述根據所述協議類型,將所述協議報文存儲于預先創建的套接字的緩沖區中,具體包括:
根據所述協議類型,遍歷所述協議族套接字鏈表,找到對應的目標套接字;
將所述協議報文的報文數據信息存儲于所述目標套接字的第一緩沖區;所述第一緩沖區為報文數據部分;
將所述協議報文的擴展信息存儲于所述目標套接字的第二緩沖區;所述第二緩沖區為地址選項部分。
5.根據權利要求1所述的方法,其特征在于,所述調用內核提供的復制函數,將從所述緩沖區中取出的協議報文轉換至用戶態空間,具體包括:
調用內核提供的復制函數,將所述協議報文的擴展信息拷貝至用戶態空間;
判斷所述協議報文的報文數據信息中,報文長度是否大于所述用戶態空間的接收長度;
如果是,則將所述報文數據信息進行截斷處理,并將所述截斷處理后的報文數據信息拷貝至所述用戶態空間;
如果否,則將所述報文數據信息拷貝至所述用戶態空間。
6.根據權利要求5所述的方法,其特征在于,在所述將所述截斷處理后的報文數據信息拷貝至所述用戶態空間之后,或者在所述將所述報文數據信息拷貝至所述用戶態空間之后,還包括:
為所述拷貝至所述用戶態空間后的報文數據信息置上接收時間戳。
7.根據權利要求2所述的方法,其特征在于,所述調用所述收包處理回調函數,讀取所述轉換至用戶態空間的協議報文,具體包括:
通過內核提供的套接字回調函數,調用所述收包處理回調函數;所述套接字回調函數的參數包括:所述協議族號、所述原始套接字;
利用所述收包回調函數中的select函數,監聽事件觸發,讀取所述轉換至用戶態空間的協議報文。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳市風云實業有限公司,未經深圳市風云實業有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810292638.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:支持內容控制的軟件定義網絡控制器
- 下一篇:娛樂資源共享方法及裝置





