一種堆疊交換機報文傳輸方法、系統及堆疊交換的制造方法
【專利摘要】本發明提供一種堆疊交換機報文傳輸方法、系統及堆疊交換機。所述堆疊交換機報文傳輸方法包括:分配一個連續的內存地址空間,并使得所述內存地址空間為用戶層與系統層共用存取;發送報文時,用戶層將所述報文數據拷貝到所述內存地址空間中,系統層所述報文在所述內存地址空間的位置信息并通知網卡硬件根據所述報文在所述內存地址空間的位置信息發送報文。本發明的技術方案可以解決VxWorks下堆疊交換機系統大量傳輸長度為1518的報文時網卡收發過程中需要額外拷貝數據導致收發數據包效率低、消耗寶貴的CPU資源的問題。
【專利說明】一種堆疊交換機報文傳輸方法、系統及堆疊交換機
【技術領域】
[0001] 本發明涉及一種網絡【技術領域】,特別是涉及一種堆疊交換機報文傳輸方法、系統 及堆疊交換機。
【背景技術】
[0002] 隨著社會的發展,傳統盒式交換機很能滿足人們對網絡帶寬需求。堆疊交換機由 于能提供更大的帶寬,更多的端口,管理更方便,愈來愈流行。堆疊交換機是物理上由多個 獨立的交換系統構成,在通過堆疊協議的控制下,邏輯上看起來是一臺交換機。堆疊協議的 正常運行離不開各種控制報文,控制報文最大長度為1518,各種控制報文通過網卡傳輸,因 此,網卡報文的高效傳輸對堆疊系統意義重大。
[0003] VxWorks是美國WindRiverSystem公司(簡稱風河公司,即WRS公司)推出的一 個實時操作系統。盡管VxWorks下面所有線程都運行在同一個地址空間,沒有linux下面 內核空間和用戶進程空間的概念,但在VxWorks系統下,網絡模塊也采用和linux下網絡模 塊類似的分層思想。應用層發送數據時先將數據放在用戶緩沖中,系統Mux層會復制用戶 緩沖到DMA緩沖,最后通過寫網卡硬件寄存器啟動DMA傳輸將數據發送出去。當網卡收到 數據包時會產生中斷,中斷處理程序會將數據放入DMA緩沖中,系統Mux層又將數據復制到 用戶緩沖中并通知用戶層有接收到數據。通常報文收發的具體實現包括:一、應用層發包。 應用層使用接口User_buf_all〇C先從用戶緩存中申請一段內存,填充好欲發送數據,然后 調用sys_tx接口發送數據。sys_tx調用時會先用Dma_buf_alloc在DMA緩存中申請一段 可DMA的內存,然后將位于用戶緩存的發送數據拷貝到位于DMAC緩存中的可DMA內存,最 后通知網卡硬件啟動DMA傳輸將數據發送出去。發送完成后,系統會調用Dma_buf_free釋 放可DMA內存到DMA緩存中,同時通知應用層調用User_buf_free釋放內存到用戶緩存中。 二、應用層收包。網卡硬件接收到數據時會將數據通過DMA傳輸到事先Dma_buf_alloc申請 的DMA緩存中,同時通知應用層接收數據。應用層會用Dma_buf_alloc申請用戶緩存。系 統Mux層調用sys_rX將DMA緩存中的數據復制到用戶緩存中,復制完成后調用Dma_buf_ free釋放緩存到DMA緩存中。最后,應用層處理完數據會調用User_buf_free釋放緩存到 用戶緩存中。
[0004] 鑒于此,如何進一步提高堆疊交換機中數據報文的收發效率成為了本領域技術人 員亟待解決的問題。
【發明內容】
[0005] 鑒于以上所述現有技術的缺點,本發明的目的在于提供一種堆疊交換機報文傳輸 方法、系統及堆疊交換機,用于解決現有技術中堆疊交換機中數據報文的收發效率低的問 題。
[0006] 為實現上述目的及其他相關目的,本發明提供一種堆疊交換機報文傳輸方法,所 述堆疊交換機報文傳輸方法包括:分配一個連續的內存地址空間,并使得所述內存地址空 間為用戶層與系統層共用存取;發送報文時,用戶層將所述報文數據拷貝到所述內存地址 空間中,系統層獲取所述報文在所述內存地址空間的位置信息并通知網卡硬件根據所述報 文在所述內存地址空間的位置信息發送報文。
[0007] 可選地,所述用戶層與系統層通過一個數據結構共用存取所述內存地址空間;所 述數據結構包括為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據位置 信息的成員,通過所述為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據 位置信息的成員在用戶層與系統層傳遞報文位置信息。
[0008] 可選地,所述內存地址空間長度為2048字節。
[0009] -種堆疊交換機報文傳輸方法,所述堆疊交換機報文傳輸方法包括:分配一個連 續的內存地址空間,并使得所述內存地址空間為用戶層與系統層共用存取;接收報文時,系 統層將所述報文數據接收到所述內存地址空間,用戶層獲取所接收報文在所述內存地址空 間中的位置信息并根據所述位置信息在所述內存地址空間中讀取報文數據。
[0010] 可選地,所述用戶層與系統層通過一個數據結構共用存取所述內存地址空間;所 述數據結構包括為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據位置 信息的成員,通過所述為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據 位置信息的成員在用戶層與系統層傳遞報文位置信息。
[0011] 可選地,所述內存地址空間長度為2048字節。
[0012] 本發明還提供一種堆疊交換機報文傳輸系統,所述堆疊交換機報文傳輸系統包 括:共用內存分配模塊,用于分配一個連續的內存地址空間,并使得所述內存地址空間為用 戶層與系統層共用存取;發送報文模塊,與所述共用內存分配模塊相連,用于獲取所述共用 內存分配模塊的內存地址空間,在發送報文時,用戶層將所述報文數據拷貝到所述內存地 址空間中,系統層所述報文在所述內存地址空間的位置信息并通知網卡硬件根據所述報文 在所述內存地址空間的位置信息發送報文。
[0013] 可選地,所述用戶層與系統層通過一個數據結構共用存取所述內存地址空間;所 述數據結構包括為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據位置 信息的成員,通過所述為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據 位置信息的成員在用戶層與系統層傳遞報文位置信息。
[0014] 可選地,所述內存地址空間長度為2048字節。
[0015] -種堆疊交換機報文傳輸系統,所述堆疊交換機報文傳輸系統包括:共用內存分 配模塊,用于分配一個連續的內存地址空間,并使得所述內存地址空間為用戶層與系統層 共用存取;接收報文模塊,與所述共用內存分配模塊相連,用于獲取所述共用內存分配模塊 的內存地址空間,接收報文時,系統層將所述報文數據接收到所述內存地址空間,用戶層獲 取所接收報文在所述內存地址空間中的位置信息并根據所述位置信息在所述內存地址空 間中讀取報文數據。
[0016] 可選地,所述用戶層與系統層通過一個數據結構共用存取所述內存地址空間;所 述數據結構包括為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據位置 信息的成員,通過所述為系統層指示報文數據位置信息的成員以及為用戶層指示報文數據 位置信息的成員在用戶層與系統層傳遞報文位置信息。
[0017] 可選地,所述內存地址空間長度為2048字節。
[0018] 一種堆疊交換機,所述堆疊交換機包括以上所述的堆疊交換機報文傳輸系統。
[0019] 可選地,所述堆疊交換機采用VxWorks操作系統。
[0020] 如上所述,本發明的一種堆疊交換機報文傳輸方法、系統及堆疊交換機,具有以下 有益效果:確保基于VxWorks堆疊交換機網卡報文收發過程中不需要額外進行數據拷貝。 具體地,當應用層發送數據時,數據不需要從用戶緩存拷貝數據到DMA緩存,發包效率高, 節省CPU資源。當網卡收到數據時,數據也不需要從DMA緩存拷貝到用戶緩存,收包效率高, 節省CPU資源。解決VxWorks下堆疊交換機系統大量傳輸長度為1518的報文時網卡收發 過程中需要額外拷貝數據導致收發數據包效率低、消耗寶貴的CPU資源的問題。
【專利附圖】
【附圖說明】
[0021] 圖1顯示為本發明的一種堆疊交換機報文傳輸方法的一實施例的流程示意圖。
[0022] 圖2顯示為本發明的一種堆疊交換機報文傳輸方法的一實施例的流程示意圖。
[0023] 圖3顯示為本發明的一種堆疊交換機報文傳輸方法的一實施例的流程示意圖。
[0024] 圖4顯不為本發明的一種堆疊交換機報文傳輸系統的一實施例的模塊不意圖。
[0025] 圖5顯不為本發明的一種堆疊交換機報文傳輸系統的一實施例的模塊不意圖。
[0026] 圖6顯不為本發明的一種堆疊交換機報文傳輸系統的一實施例的模塊不意圖。
[0027] 元件標號說明
[0028] 1堆疊交換機報文傳輸系統
[0029] 11共用內存分配模塊
[0030] 12發送報文模塊
[0031] 13接收報文模塊
[0032]S1 ?S3 步驟
【具體實施方式】
[0033] 以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書 所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的具體實 施方式加以實施或應用,本說明書中的各項細節也可以基于不同觀點與應用,在沒有背離 本發明的精神下進行各種修飾或改變。
[0034] 需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想, 遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪 制,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可 能更為復雜。
[0035] 本發明提供一種堆疊交換機報文傳輸方法。在一個實施例中,如圖1所不,所述堆 疊交換機報文傳輸方法包括:
[0036] 步驟S1,分配一個連續的內存地址空間,并使得所述內存地址空間為用戶層與系 統層共用存取。在一個實施例中,所述用戶層與系統層通過一個數據結構共用存取所述內 存地址空間。具體地,所述數據結構包括為系統層指示報文數據位置信息的成員以及為用 戶層指示報文數據位置信息的成員,通過所述為系統層指示報文數據位置信息的成員以及 為用戶層指示報文數據位置信息的成員在用戶層與系統層傳遞報文位置信息。在一個實施 例中,所述內存地址空間長度為2048字節。
[0037] 在一個實施例中,所述數據結構包括以下數據結構:
【權利要求】
1. 一種堆疊交換機報文傳輸方法,其特征在于,所述堆疊交換機報文傳輸方法包括: 分配一個連續的內存地址空間,并使得所述內存地址空間為用戶層與系統層共用存 取; 發送報文時,用戶層將所述報文數據拷貝到所述內存地址空間中,系統層獲取所述報 文在所述內存地址空間的位置信息并通知網卡硬件根據所述報文在所述內存地址空間的 位置信息發送報文。
2. 根據權利要求1所述的堆疊交換機報文傳輸方法,其特征在于:所述用戶層與系統 層通過一個數據結構共用存取所述內存地址空間;所述數據結構包括為系統層指示報文數 據位置信息的成員W及為用戶層指示報文數據位置信息的成員,通過所述為系統層指示報 文數據位置信息的成員W及為用戶層指示報文數據位置信息的成員在用戶層與系統層傳 遞報文位置信息。
3. -種堆疊交換機報文傳輸方法,其特征在于;所述堆疊交換機報文傳輸方法包括: 分配一個連續的內存地址空間,并使得所述內存地址空間為用戶層與系統層共用存 取; 接收報文時,系統層將所述報文數據接收到所述內存地址空間,用戶層獲取所接收報 文在所述內存地址空間中的位置信息并根據所述位置信息在所述內存地址空間中讀取報 文數據。
4. 根據權利要求3所述的堆疊交換機報文傳輸方法,其特征在于:所述用戶層與系統 層通過一個數據結構共用存取所述內存地址空間;所述數據結構包括為系統層指示報文數 據位置信息的成員W及為用戶層指示報文數據位置信息的成員,通過所述為系統層指示報 文數據位置信息的成員W及為用戶層指示報文數據位置信息的成員在用戶層與系統層傳 遞報文位置信息。
5. -種堆疊交換機報文傳輸系統,其特征在于;所述堆疊交換機報文傳輸系統包括: 共用內存分配模塊,用于分配一個連續的內存地址空間,并使得所述內存地址空間為 用戶層與系統層共用存取; 發送報文模塊,與所述共用內存分配模塊相連,用于獲取所述共用內存分配模塊的內 存地址空間,在發送報文時,用戶層將所述報文數據拷貝到所述內存地址空間中,系統層獲 取所述報文在所述內存地址空間的位置信息并通知網卡硬件根據所述報文在所述內存地 址空間的位置信息發送報文。
6. 根據權利要求5所述的堆疊交換機報文傳輸系統,其特征在于:所述用戶層與系統 層通過一個數據結構共用存取所述內存地址空間;所述數據結構包括為系統層指示報文數 據位置信息的成員W及為用戶層指示報文數據位置信息的成員,通過所述為系統層指示報 文數據位置信息的成員W及為用戶層指示報文數據位置信息的成員在用戶層與系統層傳 遞報文位置信息。
7. -種堆疊交換機報文傳輸系統,其特征在于;所述堆疊交換機報文傳輸系統包括: 共用內存分配模塊,用于分配一個連續的內存地址空間,并使得所述內存地址空間為 用戶層與系統層共用存取; 接收報文模塊,與所述共用內存分配模塊相連,用于獲取所述共用內存分配模塊的內 存地址空間,接收報文時,系統層將所述報文數據接收到所述內存地址空間,用戶層獲取所 接收報文在所述內存地址空間中的位置信息并根據所述位置信息在所述內存地址空間中 讀取報文數據。
8. 根據權利要求7所述的堆疊交換機報文傳輸系統,其特征在于:所述用戶層與系統 層通過一個數據結構共用存取所述內存地址空間;所述數據結構包括為系統層指示報文數 據位置信息的成員W及為用戶層指示報文數據位置信息的成員,通過所述為系統層指示報 文數據位置信息的成員W及為用戶層指示報文數據位置信息的成員在用戶層與系統層傳 遞報文位置信息。
9. 一種堆疊交換機,其特征在于:所述堆疊交換機包括如權利要求5或6所述的堆疊 交換機報文傳輸系統或/和如權利要求7或8所述的堆疊交換機報文傳輸系統。
10. 根據權利要求9所述的堆疊交換機,其特征在于;所述堆疊交換機采用VxWorks操 作系統。
【文檔編號】H04L12/931GK104468417SQ201410783579
【公開日】2015年3月25日 申請日期:2014年12月16日 優先權日:2014年12月16日
【發明者】易開東 申請人:上海斐訊數據通信技術有限公司