[發明專利]一種數據報文轉發方法及裝置在審
| 申請號: | 201110239908.4 | 申請日: | 2011-08-19 |
| 公開(公告)號: | CN102957600A | 公開(公告)日: | 2013-03-06 |
| 發明(設計)人: | 郭紅燕;王日紅;靳海燕 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04L12/70 | 分類號: | H04L12/70 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 黃志華 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 報文 轉發 方法 裝置 | ||
技術領域
本發明涉及Linux操作系統上的數據轉發技術,特別是指一種數據報文轉發方法及裝置。
背景技術
IT行業的激烈競爭,產品價格的不斷下跌,都對IT企業帶來了嚴峻的挑戰。大家都紛紛將目光投到低價的嵌入式(Linux)操作系統上,Linux的普及以及發展就此展開。對終端類的網絡產品來說,Linux無疑是操作系統的一個很好的選擇。
而且隨著網絡的發展,IP網絡的使用越來越廣泛,幾乎每個人都有使用網絡查詢數據、電子郵件往返和玩聯機游戲的經驗。在這種情況下,用戶對網速的要求也越來越高。
但是目前光網絡接入終端中非本地產生數據包的路由過程包括數據包接收、數據包選路、數據包發送三個步驟。當網卡收到一個數據包,會產生一個硬中斷,網卡中斷處理函數會識別出接收到一個數據包并調用硬中斷處理函數進行處理,硬中斷處理函數申請一個sk_buff(sk_buff是Linux網絡代碼中的一個重要的數據結構,它表示接收或發送數據包的包頭信息,并包含很多成員變量供網絡代碼中的各子系統使用),然后將數據從網卡拷貝至sk_buff所分配的數據空間。數據包經過硬中斷后到接收軟中斷,然后上協議棧(在協議棧上經過橋處理到IP分發,再尋找路由),然后進QOS隊列,再轉給發送軟中斷,最后經硬件發送。至此,數據包離開本機,整個轉發過程結束。
IP的路由過程經歷了數據接收,轉發尋路和數據發送三個過程,在一般情況下,一個連接的所有數據包都將使用同一路徑進行轉發,在CPU都需要上協議棧進行處理,嚴重降低了報文轉發的速度。而且sk_buff的結構變量比較多,由于協議棧中的很多模塊都使用它,創建這個結構時很多變量都需要初始化,在快速轉發時很多變量都用不到但也會初始化。
發明內容
本發明提供一種數據報文轉發方法及裝置,用于快速提高數據包的轉發速度。
本發明實施例提供了一種數據報文轉發方法,包括:
當網卡終端處理單元識別出網卡接收到一個數據包時,通知硬中斷處理單元進行處理;
硬中斷處理單元申請fk_buff數據存儲結構,將該數據包從網卡中復制到fk_buff的數據區;確定該數據包是否滿足轉發條件;
如果該數據包滿足轉發條件,則快速轉發模塊根據該數據報文的五元組信息索引設置的轉發表中的轉發表項,獲得對應的轉發路徑,并按照轉發路徑利用硬件發送函數將fk_buff的數據區中的數據包轉發;
如果不滿足轉發條件,則將fk_buff作為sk_buff的數據上傳給協議棧處理。
本發明實施例提供的一種數據報文轉發裝置,包括:
網卡終端處理單元,識別出網卡接收到一個數據包時,通知硬中斷處理單元網卡處理數據包;
硬中斷處理單元,用于收到網卡收到數據包的通知時,申請fk_buff數據存儲結構,將該數據包從網卡中復制到fk_buff的數據區;確定該數據包是否滿足轉發條件;
快速轉發單元,用于如果該數據包滿足轉發條件,則根據該數據報文的五元組信息索引轉發表中的轉發表項,獲得對應的轉發路徑,并按照轉發路徑利用硬件發送函數將fk_buff的數據區中的數據包轉發;如果不滿足轉發條件,則將fk_buff作為sk_buff的數據上傳給協議棧處理。
本發明實施例中,網卡終端處理單元收到數據報文時,通知硬中斷處理單元網卡處理數據包;硬中斷處理單元收到網卡收到數據包的通知時,申請fk_buff數據存儲結構,將該數據包從網卡中復制到fk_buff的數據區;確定該數據包是否滿足轉發條件;如果該數據包滿足轉發條件,快速轉發單元則根據該數據報文的五元組信息索引轉發表中的轉發表項,獲得對應的轉發路徑,并按照轉發路徑利用硬件發送函數將fk_buff的數據區中的數據包轉發;如果不滿足轉發條件,則將fk_buff作為sk_buff的數據上傳給協議棧處理。采用這種方案,IP數據包的一個連接的所有數據包都使用同一路徑進行轉發,在連接的開始階段記錄下連接的轉發路徑,那么后續數據包的轉發就可以提前進行,而不用每次都上傳到協議棧的網絡層去執行,因此,提高了報文轉發速度。
附圖說明
圖1為本發明實施例的數據報文轉發方法的流程示意圖;
圖2為fk_buff和sk_buff的對比示意圖;
圖3為本發明實施例轉發表的具體的維護流程示意圖;
圖4為本發明實施例的快速轉發路徑的示意圖;
圖5為本發明實施例的數據報文轉發裝置的結構示意圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110239908.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種能夠伸縮、翻動的椅子擱腳板
- 下一篇:防跌坐墊
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





