專利名稱:傳輸控制協(xié)議連接的管理方法和裝置的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及一種傳輸控制協(xié)議(TransmissionControl Protocol,筒稱為TCP)連接的管理方法和裝置。
背景技術:
在目前所使用的計算機主機中,主要通過CPU來實現(xiàn)TCP連接的管理,具體地,是通過操作系統(tǒng)TCP/IP協(xié)議棧實現(xiàn)TCP連接的維護,連接狀態(tài)表保存在主機內存中,每接收一個報文都需要訪問 一次內存查詢連接表。
然而,在采用這種TCP連接管理方式時,會帶來大量的內存帶寬開銷,并且CPU的負載會隨著所管理的網(wǎng)絡帶寬的增加而變大,否則將無法管理帶寬范圍內的TCP連接。但是,CPU的負載變化無法應對帶寬的迅速增加,這就導致TCP連接的管理會大量占用CPU的資源,并且管理的效率很低。尤其是在目前的10Gbps速率或更高速率下,在通過CPU進行連接管理時,操作系統(tǒng)的協(xié)議棧已經很難線性處理網(wǎng)絡報文,無法滿足報文處理要求。
然而,針對由CPU管理TCP連接所帶來的CPU資源大量占用、管理效率低、管理難度大的問題,目前尚未提出有效的解決方案。
發(fā)明內容
針對相關技術中存在的TCP連接管理大量占用CPU資源、管理效率低、以及管理難度大的問題,本發(fā)明的目的在于提供一種傳輸控制協(xié)議連接的管理機制,以解決上述問題中的至少之一。
為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種傳輸控制協(xié)議連接的管理方法。
4根據(jù)本發(fā)明的傳輸控制協(xié)議連接的管理方法包括分發(fā)模塊根據(jù)報
文的連接特征信息得到報文的哈希值;分發(fā)模塊根據(jù)預設對應關系確定與哈希值對應的連接表項,并確定連接表項所屬的DDR bank;分發(fā)模塊向與DDR bank對應的狀態(tài)表維護模塊發(fā)送查找請求;響應于查找請求,狀態(tài)表維護模塊向DDR控制器發(fā)送維護請求以維護連接狀態(tài)表,并根據(jù)DDR控制器返回的維護結果進行處理。
其中,分發(fā)模塊確定與哈希值對應的連接表項的處理具體可以包括分發(fā)模塊根據(jù)預設對應關系以及哈希值的特定位確定連接表項。可選地,上述特定位為以下之一哈希值最高的至少一位、哈希值中部的至少一位、哈希值最低的至少一位。
此外,狀態(tài)表維護模塊根據(jù)維護結果進行的處理可以包括以下之一將報文轉發(fā)給主機接口、將報文轉發(fā)給網(wǎng)絡接口并由網(wǎng)卡發(fā)送報文、根據(jù)維護結果產生新的報文并通過網(wǎng)絡接口發(fā)送、直接丟棄報文。
機接口 。
優(yōu)選地,上述連接特征信息可以包括以下之一 一元組信息、二元組信息、三元組信息、四元組信息、五元組信息。
可選地,上述維護請求可以包括以下至少之一連接建立請求、連接刪除請求、連接更新請求。
根據(jù)本發(fā)明的另 一方面,提供了 一種傳輸控制協(xié)議連接的管理裝置,該裝置設置于網(wǎng)卡側。
根據(jù)本發(fā)明的傳輸控制協(xié)議連接的管理裝置包括分發(fā)模塊,用于根據(jù)報文的連接特征信息得到報文的哈希值,根據(jù)預設對應關系確定與哈希值對應的連接表項和連接表項所屬的DDR bank,并用于向與DDRbank對應的狀態(tài)表維護模塊發(fā)送查找請求;至少一個狀態(tài)表維護模塊,-故配置為與至少一個DDR bank——對應,用于響應于來自分發(fā)才莫塊的查找請求向DDR控制器發(fā)送維護請求,并根據(jù)DDR控制器返回的維護結果進行處理;DDR控制器,用于根據(jù)維護請求對連接狀態(tài)表進行維護,并返回維護結果;存儲模塊,用于存儲連接狀態(tài)表。其中,分發(fā)模塊可以用于根據(jù)預設對應關系以及哈希值的特定位確 定連一姿表項。
優(yōu)選地,上述連4妄特征信息可以包括以下之一 一元組信息、二元 組信息、三元組信息、四元組信息、五元組信息。
借助本發(fā)明上述至少一個技術方案,通過網(wǎng)卡以硬件的方式實現(xiàn)傳 輸控制協(xié)議連接的管理,能夠有效提高連接管理的效率和系統(tǒng)處理性能, 避免連接管理占用CPU資源的問題,并且能夠適應帶寬的變化,克服了 CPU管理時操作系統(tǒng)協(xié)議棧所存在的局限性。
圖1為表示根據(jù)本發(fā)明實施例的傳輸控制協(xié)議連接的管理方法的流
程圖2為表示根據(jù)本發(fā)明實施例的傳輸控制協(xié)議連接的管理裝置的框圖。
具體實施例方式
功能概述
考慮到相關技術中存在的TCP連接管理大量占用CPU資源、管理效 率低、以及管理難度大的問題,本發(fā)明提出在網(wǎng)卡上采用硬件來專門實 現(xiàn)TCP連接管理,即,在網(wǎng)絡處理芯片內實現(xiàn)TCP連接的管理,從而避 免連接管理占用CPU的資源,克服操作系統(tǒng)協(xié)議棧本身不能適應較大網(wǎng) 絡帶寬的局限性,提高整個系統(tǒng)的處理性能。
在實現(xiàn)本發(fā)明的過程中,首先需要在網(wǎng)卡上增加DDR內存條存儲連 4妾表,配置每個DDR bank的連4妄表項與哈希值的——對應關系,并且 需要對每個雙倍數(shù)據(jù)速率(Double Data Rate,簡稱為DDR) bank都配置 各自的狀態(tài)表維護模塊,以便進行連接的管理維護。
下面將結合附圖詳細描述本發(fā)明的實施例。
方法實施例
在本實施例中,提供了 一種傳輸控制協(xié)議連接的管理方法。
6圖1是根據(jù)本實施例的傳輸控制協(xié)議連接的管理方法的流程圖。
如圖1所示,根據(jù)本實施例的傳輸控制協(xié)議連接的管理方法包括 步驟S102、步驟S104、步驟S106、和步驟S108。 圖1中所示的具體處理過程如下
步驟S102,分發(fā)模塊(也可以稱為dispatch模塊)根據(jù)報文(例如, 可以是收到的網(wǎng)絡報文或其他待處理報文)的連接特征信息得到報文的 哈希值,該哈希值即可作為連接表的訪問地址,優(yōu)選地,該哈希值可以 通過哈希計算得到;并且,在進行哈希計算時,可以將報文的一元組信 息(源IP或目的IP ) 、 二元組信息(源IP和目的IP )、三元組信息(源 IP、目的IP和協(xié)議)、四元組信息(源IP、目的IP、源端口和目的端口 )、 五元組信息(源IP、目的IP、源端口 、目的端口和協(xié)議)作為連接特征 信息;
步驟S104,分發(fā)模塊根據(jù)預設對應關系(即,哈希值與表項的—— 對應關系)確定與得到的哈希值對應的連接表項,并確定該連接表項所 屬的DDRbank的信息,例如,確定該DDR bank的標識;其中,在預先 設置的——對應關系中,與表項對應的可以是哈希值最高的至少 一位, 可以是哈希值中部的至少一位,也可以是p合希值最^f氐的至少一位,這樣, 在分發(fā)模塊確定與哈希值對應的連接表項時,也需要根據(jù)預設對應關系 中p合希值的具體位進行匹配,乂人而正確確定與哈希值對應的表項。具體 選擇多少位哈希值可以根據(jù)DDR內存條的大小來確定,例如,其位數(shù)可 以是1位、2位、3位、4位、5位等。
步驟S106,分發(fā)模塊向之前確定的DDR bank所對應的狀態(tài)表維護 模塊(也可稱為Flow State Table Mngr模塊)發(fā)送查找請求;
步驟S108,響應于查找請求,狀態(tài)表維護模塊向DDR控制器發(fā)送 維護請求以維護連接狀態(tài)表,并根據(jù)DDR控制器(也可稱為DDR Ctrl) 返回的維護結果進行處理,例如,狀態(tài)表維護模塊可以根據(jù)維護結果將 報文以先入先出的方式(例如,將維護結果寫到先入先出隊列中)轉發(fā) 給主機接口或其他模塊,也可以直接丟棄報文,或者進行其他的處理, 例如,可以將報文轉發(fā)給網(wǎng)絡接口并由網(wǎng)卡發(fā)送報文、根據(jù)維護結果產生新的報文并通過網(wǎng)絡接口發(fā)送,具體如何根據(jù)維護結果確定之后的處 理是本領域技術人員所公知的,本文不再詳細描述。
優(yōu)選地,由狀態(tài)表維護模塊發(fā)送的維護請求主要可以分為連接建立 請求、連接刪除請求、連接更新請求,通過這些請求,狀態(tài)表維護模塊
4可以要求可以對存儲的連接狀態(tài)表執(zhí)行諸如讀/寫的操作,DDR控制器 根據(jù)維護請求進行相應的操作就能夠實現(xiàn)對連接狀態(tài)表的管理。
通過上述處理,能夠借助硬件實現(xiàn)對TCP連接狀態(tài)表的管理,減少 CPU的負擔,提高管理的效率和系統(tǒng)的性能。
裝置實施例
在本實施例中,提供了一種傳輸控制協(xié)議連接的管理裝置,該裝置 設置于網(wǎng)卡側,用于實現(xiàn)TCP連接狀態(tài)表的管理。
圖2是根據(jù)本實施例的傳輸控制協(xié)議連接的管理裝置的框圖。
如圖2所示,根據(jù)本實施例的傳輸控制協(xié)議連接的管理裝置包括 分發(fā)模塊2,多個狀態(tài)表維護模塊4、 DDR控制器6、和存儲模塊8。
應當注意,出于清楚的目的,圖2中以層疊的方式示出了多個狀態(tài) 表維護模塊,在實際實現(xiàn)過程中,對于每個DDRbank,都應當配置一個 與其一一對應的狀態(tài)表維護模塊,每個狀態(tài)表維護模塊均應當連接至分 發(fā)模塊2和DDR控制器6,并且能夠輸出維護結果,下面將以其中的一 個狀態(tài)表維護模塊為例描述根據(jù)本發(fā)明的傳輸控制協(xié)議連接的管理裝 置。
圖2中所示的各個模塊的功能如下
分發(fā)模塊2,用于根據(jù)報文的連接特征信息(優(yōu)選地,連接特征信息 可以是才艮文的一元組信息(源IP或目的IP) 、 二元組信息(源IP和目 的IP)、三元組信息(源IP、目的IP和協(xié)議)、四元組信息(源IP、 目的IP、源端口和目的端口 )、五元組信息(源IP、目的IP、源端口 、 目的端口、和協(xié)議)得到報文的哈希值,根據(jù)預設對應關系確定與哈希 值對應的連接表項和連4妄表項所屬的DDR bank,并用于向與DDR bank 對應的狀態(tài)表維護模塊發(fā)送查找請求,其中,在預先設置的——對應關 系中,與表項對應的可以是哈希值最高的至少一位,可以是哈希值中部的至少一位,也可以是哈希值最低的至少一位,這樣,在分發(fā)模塊2確 定與哈希值對應的連接表項時,也需要根據(jù)預設對應關系中哈希值的具
體位進行匹配,從而正確確定與哈希值對應的表項;
狀態(tài)表維護模塊4,連接至分發(fā)模塊2,被配置為與一個DDR bank ——對應,用于響應于來自分發(fā)模塊2的查找請求向DDR控制器6發(fā)送 維護請求,并根據(jù)DDR控制器6返回的維護結果進行處理,例如,狀態(tài) 表維護模塊4可以根據(jù)維護結果將報文以先入先出的方式(例如,將維 護結果寫到狀態(tài)表先入先出隊列中)轉發(fā)給主機接口或其他模塊,也可 以直接丟棄報文,或者進行其他的處理,例如,將報文轉發(fā)給網(wǎng)絡接口 并由網(wǎng)卡發(fā)送報文、根據(jù)維護結果產生新的報文并通過網(wǎng)絡接口發(fā)送, 具體如何根據(jù)維護結果確定之后的處理是本領域技術人員所公知的,本
文不再詳細描述;
DDR控制器6,連接至狀態(tài)表維護模塊4,用于根據(jù)維護請求對連接 狀態(tài)表進行維護,并返回維護結果,優(yōu)選地,該DDR控制器可以通過 DDR2控制器來實現(xiàn);
存儲模塊8,連接至DDR控制器6,用于存儲TCP連接狀態(tài)表,優(yōu) 選地,該存儲模塊8可以通過DDR2存儲器來實現(xiàn)。
優(yōu)選地,由狀態(tài)表維護模塊4發(fā)送的維護請求主要可以分為連接建 立請求、連接刪除請求、連接更新請求,通過這些請求,狀態(tài)表維護模 塊4可以要求對存儲模塊8存儲的連接狀態(tài)表執(zhí)行諸如讀/寫的操作, DDR控制器6根據(jù)維護請求進行相應的操作就能夠實現(xiàn)對連接狀態(tài)表的 管理。
通過上述裝置,能夠實現(xiàn)對TCP連接狀態(tài)表的管理,減少CPU的負 擔,提高管理的效率和系統(tǒng)的性能。
綜上所述,借助本發(fā)明上述至少一個技術方案,通過網(wǎng)卡以硬件的 方式實現(xiàn)傳輸控制協(xié)議連接的管理,能夠有效提高連接管理的效率和系 統(tǒng)處理性能,避免連接管理占用CPU資源的問題,并且能夠適應帶寬的 變化,克服了 CPU管理時操作系統(tǒng)協(xié)議棧所存在的局限性,此外,由于 狀態(tài)表采用hash方式存儲和訪問,能夠有效節(jié)省處理的時間。顯然,本領域的技術人員應該明白,上述的本發(fā)明的各模塊或各步 驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上, 或者分布在多個計算裝置所組成的網(wǎng)絡上,可選地,它們可以用計算裝 置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計 算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們
中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不 限制于任何特定的硬件和軟件結合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對 于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明 的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
10
權利要求
1.一種傳輸控制協(xié)議連接的管理方法,其特征在于,包括分發(fā)模塊根據(jù)報文的連接特征信息得到所述報文的哈希值;所述分發(fā)模塊根據(jù)預設對應關系確定與所述哈希值對應的連接表項,并確定所述連接表項所屬的DDR bank;所述分發(fā)模塊向與所述DDR bank對應的狀態(tài)表維護模塊發(fā)送查找請求;響應于所述查找請求,所述狀態(tài)表維護模塊向DDR控制器發(fā)送維護請求以維護連接狀態(tài)表,并根據(jù)所述DDR控制器返回的維護結果進行處理。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述分發(fā)模塊確定與所述哈希值對應的連接表項包括所述分發(fā)模塊根據(jù)所述預設對應關系以及所述哈希值的特定位確定所述連接表項。
3. 根據(jù)權利要求2所述的方法,其特征在于,所述特定位為以下之一所述哈希值最高的至少一位、所述哈希值中部的至少一位、所述哈希值最低的至少一位。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述狀態(tài)表維護模塊根據(jù)所述維護結果進行的處理包括以下之一將所述報文轉發(fā)給主機接口、將所述報文轉發(fā)給網(wǎng)絡接口并由網(wǎng)卡發(fā)送所述報文、根據(jù)所述維護結果產生新的報文并通過網(wǎng)絡接口發(fā)送、直接丟棄所述報文。
5. 根據(jù)權利要求4所述的方法,其特征在于,所述狀態(tài)表維護模塊
6. 根據(jù)權利要求1至5中任一項所述的方法,其特征在于,所述連接特征信息包括以下之一 一元組信息、二元組信息、三元組信息、四元組信息、五元組信息。
7. 根據(jù)權利要求1至5中任一項所述的方法,其特征在于,所述維護請求包括以下至少之一連接建立請求、連接刪除請求、連接更新請求。
8. —種傳輸控制協(xié)議連接的管理裝置,設置于網(wǎng)卡側,其特征在于,所述裝置包括分發(fā)模塊,用于根據(jù)報文的連接特征信息得到所述報文的哈希值,根據(jù)預設對應關系確定與所述哈希值對應的連接表項和所述連接表項所屬的DDR bank,并用于向與所述DDR bank對應的狀態(tài)表維護模塊發(fā)送查找請求;至少一個狀態(tài)表維護才莫塊,被配置為與至少一個DDRbank——對應,用于響應于來自所述分發(fā)模塊的查找請求向DDR控制器發(fā)送維護請求,并根據(jù)所述DDR控制器返回的維護結果進行處理;所述DDR控制器,用于根據(jù)所述維護請求對連接狀態(tài)表進行維護,并返回所述維護結果;存儲模塊,用于存儲所述連接狀態(tài)表。
9 根據(jù)權利要求8所述的裝置,其特征在于,所述分發(fā)模塊用于根據(jù)所述預設對應關系以及所述^^合希值的特定位確定所述連接表項。
10. 根據(jù)權利要求8或9所述的裝置,其特征在于,所述連接特征信息包括以下之一 一元組信息、二元組信息、三元組信息、四元組信息、五元組^f言息。
全文摘要
本發(fā)明提供一種傳輸控制協(xié)議連接的管理方法和裝置,其中,該方法包括分發(fā)模塊根據(jù)報文的連接特征信息得到報文的哈希值;分發(fā)模塊根據(jù)預設對應關系確定與哈希值對應的連接表項,并確定連接表項所屬的DDR bank;分發(fā)模塊向與DDR bank對應的狀態(tài)表維護模塊發(fā)送查找請求;響應于查找請求,狀態(tài)表維護模塊向DDR控制器發(fā)送維護請求以維護連接狀態(tài)表,并根據(jù)DDR控制器返回的維護結果進行處理。通過使用本發(fā)明,能夠借助網(wǎng)卡以硬件的方式實現(xiàn)傳輸控制協(xié)議連接的管理,能夠有效提高連接管理的效率和系統(tǒng)處理性能,避免連接管理占用CPU資源的問題,并且能夠適應帶寬的變化,克服了CPU管理時操作系統(tǒng)協(xié)議棧所存在的局限性。
文檔編號H04L12/56GK101674193SQ20091009105
公開日2010年3月17日 申請日期2009年8月21日 優(yōu)先權日2009年8月21日
發(fā)明者劉興奎, 劉新春, 劉朝輝, 軍 歷, 竇曉光, 華 聶, 邵宗有, 元 阮 申請人:曙光信息產業(yè)(北京)有限公司