本發(fā)明涉及一種安全化處理系統(tǒng),特別是涉及一種基于FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)的TCPIP協(xié)議棧安全化處理系統(tǒng)。
背景技術:
當前,越來越多的傳統(tǒng)設備搭載了網(wǎng)絡通信功能,特別是近幾年智能家居的逐漸普及,使得幾乎所有的家用電器都能通過互聯(lián)網(wǎng)連在一起,實現(xiàn)自動化和智能化。但是傳統(tǒng)的網(wǎng)絡通信通過操作系統(tǒng)軟件處理TCP/IP協(xié)議,給CPU帶來龐大開銷,且TCP/IP協(xié)議沒有內(nèi)在的控制機制來支持源地址的鑒別,給網(wǎng)絡安全埋下了隱患。物聯(lián)網(wǎng)技術和大數(shù)據(jù)技術的不斷發(fā)展都給網(wǎng)絡通信提出了快速且安全的高要求。
目前正在發(fā)展的TOE(TCP Offload Engine,TCP減負引擎)技術減輕CPU壓力,提高網(wǎng)絡數(shù)據(jù)包的處理速度,但是這個技術目前依然不是十分成熟,已公開的文獻大多比較類似,可操作性低且無法解決安全問題。具體對比詳見本文第九部分,其中檢索結果3中的TOE網(wǎng)卡結構如圖1所示??梢钥闯?,利用硬件實現(xiàn)完整的TCP/IP協(xié)議棧有其技術困難性。然而目前很多設備不是主干服務器,甚至連計算機都不是,它們僅是比較簡單的網(wǎng)絡設備,僅需要利用現(xiàn)有網(wǎng)絡交互小規(guī)模數(shù)據(jù)即可,無需實現(xiàn)完整的協(xié)議棧。它們要求網(wǎng)絡通信模塊能利用的硬件資源越少越好,它們中的一些還會對數(shù)據(jù)安全有很高的要求,例如門禁系統(tǒng)。所以如何簡化協(xié)議棧,方便地用硬件實現(xiàn)它并能兼顧安全通信的要求是本發(fā)明要解決的問題。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是提供一種基于FPGA的TCPIP協(xié)議棧安全化處理系統(tǒng),其不僅適用于FPGA,也適用于ASIC,讓單芯片實現(xiàn)TCP/IP協(xié)議棧,降低了一些不需要大規(guī)模傳輸數(shù)據(jù)的網(wǎng)絡設備的硬件成本;增加了一層安全協(xié)議,彌補了TCP協(xié)議的安全隱患,并且借助于內(nèi)部的安全控制單元,保證了安全控制的靈活性;對外接口簡單,方便擴展成各種類型的總線接口。
本發(fā)明是通過下述技術方案來解決上述技術問題的:一種基于FPGA的TCPIP協(xié)議棧安全化處理系統(tǒng),其特征在于,其包括TCP/IP協(xié)議棧的改造方案、FPGA的實現(xiàn)方案、系統(tǒng)具體工作流程;
所述TCP/IP協(xié)議棧的改造方案包括簡化方案和安全方案;
所述FPGA的實現(xiàn)方案包括:
網(wǎng)絡協(xié)議解析單元:主要功能是解析網(wǎng)絡協(xié)議,本單元受CPU控制,選擇性地提取MAC地址,VLAN號,IP地址,TCP端口號等信息,然后,選擇性的進行安全表的查詢匹配,最后按特定格式將解析出的結果緩存起來;
超幀處理單元:數(shù)據(jù)通路分為上傳通路和下載通路;上傳通路根據(jù)接收描述符讀取接收幀的數(shù)據(jù)部分;如果恰好接收到的以太網(wǎng)幀是一個超幀的開頭,則該幀的數(shù)據(jù)部分必然包含了超幀的包頭和指令字段,包頭字段需要進行水印安全檢查,指令字段需要根據(jù)具體情況替換成特定指令或流程標記;根據(jù)包頭信息將若干個以太網(wǎng)幀的數(shù)據(jù)部分拼接成一個超幀;下載通路中硬件解析指令字段并通知CPU進行相應操作,例如主動發(fā)起TCP握手、主動發(fā)起一個ARP廣播等,并將CPU計算得到的安全碼寫入水印字段,根據(jù)包頭信息將超幀分解為若干個以太網(wǎng)幀并生成發(fā)送描述符;這個模塊與外部的接口十分簡單,只有請求、應答、數(shù)據(jù)三種類型的端口,使得整個系統(tǒng)對外部的表現(xiàn)就像一個存儲器,方便擴展為各種類型的總線接口;
安全控制單元:這個模塊是水印函數(shù)以及安全表的儲存和管理單元,留有外部接口,這是為了增加靈活性和安全性,此外此模塊也支持外部配置IP和MAC;
幀頭生成器:主要功能是儲存發(fā)送幀的TCP/IP協(xié)議的包頭,包頭由CPU直接組建,配合發(fā)送數(shù)據(jù)緩存得到完整的以太網(wǎng)幀;
接收DMA模塊:根據(jù)IP地址過濾以太網(wǎng)幀,檢驗IP協(xié)議校驗和,生成接收幀描述符,將接收到的以太網(wǎng)幀傳輸?shù)浇邮諑彺?,或過濾VLAN號;
發(fā)送DMA模塊:融合發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)和幀頭生成器中的幀頭,并分別計算ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議的校驗和,組成正常的以太網(wǎng)幀傳遞給MAC控制器發(fā)送;由于應答幀和某些特殊幀的固定格式,該模塊直接根據(jù)發(fā)送描述符生成所需要的應答幀和特殊幀,不需要軟件參與;
上傳DMA模塊:由CPU給出描述符,選擇性地上傳以太網(wǎng)幀,長傳過程中舍棄掉幀頭部分和一些沒有意義的幀,方便構造超幀;
下載DMA模塊:由CPU給出描述符,選擇性地下載超幀,這里將一個超幀分段讀取,分解成為多個以太網(wǎng)幀;
嵌入式CPU模塊:主要負責各個模塊寄存器的配置和管理,按照接收數(shù)據(jù)通路和發(fā)送數(shù)據(jù)通路經(jīng)過模塊的先后順序,輪詢各個模塊,進行相應操作;另外需要組建發(fā)送幀幀頭,計算水印,維護接收描述符和發(fā)送描述符,維護接收幀緩存和發(fā)送數(shù)據(jù)緩存,給出數(shù)據(jù)傳輸策略;
總線接口或其他功能模塊:用于連接各部件;
發(fā)送數(shù)據(jù)緩存模塊:用于存儲系統(tǒng)所發(fā)送數(shù)據(jù);
接收數(shù)據(jù)緩存模塊:用于存儲系統(tǒng)所接收數(shù)據(jù);
MAC控制器:用于控制媒體訪問;
片上程序存儲器:用于存儲程序數(shù)據(jù);
總線管理單元:用于為各功能部件傳送信息;
片上數(shù)據(jù)存儲器:用于存儲數(shù)據(jù);
PHY模塊,用于與外部信號連接。
優(yōu)選地,所述系統(tǒng)具體工作流程包括初始化過程、上行過程、下行過程。
優(yōu)選地,所述初始化過程包括以下步驟:
步驟一,配置MAC地址、IP地址;
步驟二,檢查水印生成函數(shù)和安全表的準備狀態(tài),初始化各個模塊相應的寄存器;
步驟三,CPU生成ARP廣播幀描述符和幀頭,交由發(fā)送DMA發(fā)出ARP廣播幀。
優(yōu)選地,所述上行過程包括以下步驟:
步驟十一,以太網(wǎng)幀通過PHY進入MAC控制器,在MAC控制器中對以太網(wǎng)幀進行MAC地址過濾以及數(shù)據(jù)鏈路層校驗和檢查,廣播幀不過濾,下同,之后轉步驟十二;
步驟十二,經(jīng)過接收DMA,在這里對以太網(wǎng)幀進行IP地址過濾、VLAN號過濾,并檢驗IP協(xié)議校驗和,如果檢驗不通過轉步驟十一,否則由接收DMA生成接收幀描述符,轉步驟十三;
步驟十三,由網(wǎng)絡協(xié)議解析單元進行協(xié)議解析,解析結果通知CPU,如果發(fā)現(xiàn)是ARP幀或者ICMP幀,則轉步驟十四,如果發(fā)現(xiàn)是TCP幀,則轉步驟十五;
步驟十四,網(wǎng)絡協(xié)議解析單元判斷是否需要應答,如果不需要應答則CPU完成更新ARP表等相關操作后就把幀直接丟棄,否則由CPU生成應答幀描述符并組建應答幀幀頭,然后轉步驟十六;
步驟十五,CPU根據(jù)安全表進行ID號和TCP端口號的過濾,將攜帶數(shù)據(jù)的TCP幀的接收描述符修改之后交給上傳DMA,進而將若干以太網(wǎng)幀上傳到超幀處理單元中構造超幀,轉步驟十七,同時組建TCP應答幀及其描述符,轉步驟十六;
步驟十六,發(fā)送DMA根據(jù)描述符來區(qū)分協(xié)議,構造出不同協(xié)議的應答幀或特殊幀,在幀頭生成器中讀取幀頭,然后自動生成不同協(xié)議對應的應答數(shù)據(jù)部分,計算相應協(xié)議的校驗和,然后轉步驟十八;
步驟十七,超幀處理單元分析超幀包頭,取出水印字段交由CPU鑒別,對于鑒別不通過的超幀直接丟棄,否則就上傳;該步驟也要解析指令字段,如果指令要求結束TCP鏈接或者收到了TCP的FIN幀,則CPU需要去組建TCP斷開過程中相關幀的描述符,之后轉步驟十六,否則重復該步驟;
步驟十八,MAC控制器將應答幀或FIN幀通過PHY發(fā)出,重復步驟十一至步驟十七。
優(yōu)選地,所述下行過程包括以下步驟:
步驟二十一,由超幀處理單元讀取超幀的指令字段,如果指令字段要求發(fā)送ARP廣播幀,則轉步驟二十二,如果指令字段要求建立TCP鏈接,則轉步驟二十三,如果指令字段要求修改IP地址或MAC地址,則轉步驟二十四,其余情況轉步驟二十五;
步驟二十二,由CPU構造ARP廣播幀的發(fā)送描述符以及幀頭,交給發(fā)送DMA組幀并由MAC控制器發(fā)出,之后轉步驟二十一;
步驟二十三,由CPU構造TCP請求幀描述符以及幀頭,交給發(fā)送DMA組幀并發(fā)出,之后CPU配合各相關模塊進行三次TCP握手操作,如果握手成功則轉步驟二十五,否則轉步驟二十六;
步驟二十四,CPU分別配置MAC控制器和接收DMA的相關寄存器,以此修改MAC地址,IP地址,之后轉步驟二十一;
步驟二十五,超幀處理單元解析超幀的包頭,將一個超幀分解成若干個以太網(wǎng)幀,并通過下載DMA傳遞給發(fā)送數(shù)據(jù)緩存,同時生成發(fā)送描述符;CPU根據(jù)此描述符在幀頭生成器中生成以太網(wǎng)幀的幀頭;發(fā)送DMA將幀頭生成器中的幀頭和發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)融合成完整的以太網(wǎng)幀,交給MAC控制器發(fā)出;每發(fā)出一個TCP幀,就要等待一個ACK幀的返回,如果ACK幀在規(guī)定時間返回則轉步驟二十七,否則轉步驟二十八;
步驟二十六,握手失敗,重復握手操作三次之后丟棄整個超幀,轉步驟二十一;
步驟二十七,對于返回的ACK幀,需要進行ID號和二次水印的鑒別,如果通過則繼續(xù)重復步驟二十一至步驟二十五,否則轉步驟二十八,直到指令字段要求發(fā)送FIN幀,CPU配合各相關模塊完成TCP斷開操作,從而結束本次TCP鏈接,轉步驟二十一;
步驟二十八,經(jīng)過三次重傳操作,如果收到ACK幀,則轉步驟二十七,否則主動發(fā)起斷開TCP鏈接操作,重復步驟二十一至步驟二十七。
本發(fā)明的積極進步效果在于:本發(fā)明不僅適用于FPGA,也適用于ASIC,讓單芯片實現(xiàn)TCP/IP協(xié)議棧,降低了一些不需要大規(guī)模傳輸數(shù)據(jù)的網(wǎng)絡設備的硬件成本;增加了一層安全協(xié)議,彌補了TCP協(xié)議的安全隱患,并且借助于內(nèi)部的安全控制單元,保證了安全控制的靈活性;對外接口簡單,方便擴展成各種類型的總線接口。
附圖說明
圖1為現(xiàn)有TOE網(wǎng)卡的整體架構圖。
圖2為本發(fā)明基于FPGA的TCPIP協(xié)議棧安全化處理系統(tǒng)的系統(tǒng)的構造安全協(xié)議圖。
圖3為本發(fā)明基于FPGA的TCPIP協(xié)議棧安全化處理系統(tǒng)的系統(tǒng)的系統(tǒng)總體架構圖。
圖4為本發(fā)明中網(wǎng)絡協(xié)議解析單元的框架示意圖。
圖5為本發(fā)明中超幀處理單元的框架示意圖。
具體實施方式
下面結合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術方案。
本發(fā)明公開了一種基于FPGA(現(xiàn)場可編程門陣列)的TCPIP(傳輸控制協(xié)議/網(wǎng)間協(xié)議)協(xié)議棧安全化處理系統(tǒng)包括TCP/IP協(xié)議棧的改造方案、FPGA的實現(xiàn)方案、系統(tǒng)具體工作流程。
所述TCP/IP協(xié)議棧的改造方案包括簡化方案、安全方案,其中:
簡化方案的具體內(nèi)容如下:
1.1)協(xié)議棧包括的協(xié)議僅有ARP(地址解析協(xié)議)、ICMP(控制報文協(xié)議)、IP(網(wǎng)間協(xié)議)、TCP(傳輸控制協(xié)議),以及一個自定義的安全協(xié)議,雖然對每種協(xié)議都會做出簡化,但應用層以下的組幀格式依然嚴格按照現(xiàn)有TCP/IP協(xié)議規(guī)定格式;
1.2)不構造復雜的ARP表,ICMP協(xié)議僅實現(xiàn)PING(因特網(wǎng)包探索器);
1.3)允許配置IP地址、MAC(媒體訪問控制)地址和VLAN(虛擬局域網(wǎng))號,但不能構造復雜虛擬局域網(wǎng);
1.4)充分簡化TCP協(xié)議,具體為不支持過多的TCP鏈接,舍棄窗口機制,接收方每接收一幀給出一個ACK(確認字符),發(fā)送方每發(fā)送一幀就要等收到ACK之后才發(fā)送下一幀,這樣雖然犧牲了傳輸效率,但卻有效地避免了亂序問題且又能保證傳輸?shù)目煽?;TCP鏈接一旦建立,每幀的重傳次數(shù)固定為三次,三次之后斷開TCP鏈接;
安全方案的具體內(nèi)容如下:
2.1)在TCP協(xié)議之上,將若干個以太網(wǎng)幀攜帶的數(shù)據(jù)拼接成最大尺寸固定的超幀,由此構造一層安全協(xié)議,超幀的數(shù)據(jù)結構如圖2所示;同時TCP傳輸過程中的ACK幀區(qū)別于普通ACK幀,該ACK幀將攜帶安全信息,格式如圖2;
2.2)超幀中的指令字段指的是操作指令或流程標記,給出特定的操作指令,建立TCP鏈接,配置MAC地址和IP地址、重傳特定編號的超幀等操作,或一些特定的流程標記,用以識別當前數(shù)據(jù)傳輸?shù)牧鞒蹋?/p>
2.3)安全機制是通過ID(身份標識)號和水印實現(xiàn)的,構造安全ID表,對ID號、IP地址、MAC地址和TCP端口號進行安全綁定,限定特定ID間的通信;而水印是基于特定算法計算出的對整個超幀所有數(shù)據(jù)的一個安全碼,接收方必須校驗水印正確之后才認為超幀攜帶的數(shù)據(jù)是真實可靠的;二次水印是將水印字段經(jīng)過特定算法得到的又一個安全碼,用于鑒別ACK幀的真實性。
如圖3所示,所述FPGA的實現(xiàn)方案包括網(wǎng)絡協(xié)議解析單元、超幀處理單元、安全控制單元、幀頭生成器、接收DMA(直接內(nèi)存存取)模塊、發(fā)送DMA模塊、上傳DMA模塊、下載DMA模塊、嵌入式CPU(中央處理器)模塊、總線接口或其他功能模塊、發(fā)送數(shù)據(jù)緩存模塊、接收數(shù)據(jù)緩存模塊、MAC控制器、片上程序存儲器、總線管理單元、片上數(shù)據(jù)存儲器、PHY(物理層)模塊,其中:
網(wǎng)絡協(xié)議解析單元:主要功能是解析網(wǎng)絡協(xié)議,本單元受CPU控制,選擇性地提取MAC地址,VLAN號,IP地址,TCP端口號等信息,然后,選擇性的進行安全表的查詢匹配,最后按特定格式將解析出的結果緩存起來,內(nèi)部結構如圖4所示;
超幀處理單元:本模塊結構如圖5所示,數(shù)據(jù)通路分為上傳通路和下載通路;上傳通路根據(jù)接收描述符讀取接收幀的數(shù)據(jù)部分;如果恰好接收到的以太網(wǎng)幀是一個超幀的開頭,則該幀的數(shù)據(jù)部分必然包含了超幀的包頭和指令字段,包頭字段需要進行水印安全檢查,指令字段需要根據(jù)具體情況替換成特定指令或流程標記;根據(jù)包頭信息將若干個以太網(wǎng)幀的數(shù)據(jù)部分拼接成一個超幀;下載通路中硬件解析指令字段并通知CPU進行相應操作,例如主動發(fā)起TCP握手、主動發(fā)起一個ARP廣播等,并將CPU計算得到的安全碼寫入水印字段,根據(jù)包頭信息將超幀分解為若干個以太網(wǎng)幀并生成發(fā)送描述符;這個模塊與外部的接口十分簡單,只有請求、應答、數(shù)據(jù)三種類型的端口,使得整個系統(tǒng)對外部的表現(xiàn)就像一個存儲器,方便擴展為各種類型的總線接口;
安全控制單元:這個模塊是水印函數(shù)以及安全表的儲存和管理單元,留有外部接口,這是為了增加靈活性和安全性,此外此模塊也支持外部配置IP和MAC;
幀頭生成器:主要功能是儲存發(fā)送幀的TCP/IP協(xié)議的包頭,包頭由CPU直接組建,配合發(fā)送數(shù)據(jù)緩存得到完整的以太網(wǎng)幀;
接收DMA模塊:根據(jù)IP地址過濾以太網(wǎng)幀,檢驗IP協(xié)議校驗和,生成接收幀描述符,將接收到的以太網(wǎng)幀傳輸?shù)浇邮諑彺妫蜻^濾VLAN號;
發(fā)送DMA模塊:融合發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)和幀頭生成器中的幀頭,并分別計算ARP協(xié)議、IP協(xié)議、ICMP協(xié)議、TCP協(xié)議的校驗和,組成正常的以太網(wǎng)幀傳遞給MAC控制器發(fā)送;由于應答幀和某些特殊幀的固定格式,該模塊直接根據(jù)發(fā)送描述符生成所需要的應答幀和特殊幀,不需要軟件參與;
上傳DMA模塊:由CPU給出描述符,選擇性地上傳以太網(wǎng)幀,長傳過程中舍棄掉幀頭部分和一些沒有意義的幀,方便構造超幀;
下載DMA模塊:由CPU給出描述符,選擇性地下載超幀,這里將一個超幀分段讀取,分解成為多個以太網(wǎng)幀;
嵌入式CPU模塊:主要負責各個模塊寄存器的配置和管理,按照接收數(shù)據(jù)通路和發(fā)送數(shù)據(jù)通路經(jīng)過模塊的先后順序,輪詢各個模塊,進行相應操作;另外需要組建發(fā)送幀幀頭,計算水印,維護接收描述符和發(fā)送描述符,維護接收幀緩存和發(fā)送數(shù)據(jù)緩存,給出數(shù)據(jù)傳輸策略;
總線接口或其他功能模塊:用于連接各部件;
發(fā)送數(shù)據(jù)緩存模塊:用于存儲系統(tǒng)所發(fā)送數(shù)據(jù);
接收數(shù)據(jù)緩存模塊:用于存儲系統(tǒng)所接收數(shù)據(jù);
MAC控制器:用于控制媒體訪問;
片上程序存儲器:用于存儲程序數(shù)據(jù);
總線管理單元:用于為各功能部件傳送信息;
片上數(shù)據(jù)存儲器:用于存儲數(shù)據(jù);
PHY模塊,用于與外部信號連接。
所述系統(tǒng)具體工作流程包括初始化過程、上行過程、下行過程。
所述初始化過程包括以下步驟:
步驟一,配置MAC地址、IP地址;
步驟二,檢查水印生成函數(shù)和安全表的準備狀態(tài),初始化各個模塊相應的寄存器;
步驟三,CPU生成ARP廣播幀描述符和幀頭,交由發(fā)送DMA發(fā)出ARP廣播幀。
所述上行過程包括以下步驟:
步驟十一,以太網(wǎng)幀通過PHY進入MAC控制器,在MAC控制器中對以太網(wǎng)幀進行MAC地址過濾以及數(shù)據(jù)鏈路層校驗和檢查,廣播幀不過濾,下同,之后轉步驟十二;
步驟十二,經(jīng)過接收DMA,在這里對以太網(wǎng)幀進行IP地址過濾、VLAN號過濾,并檢驗IP協(xié)議校驗和,如果檢驗不通過轉步驟十一,否則由接收DMA生成接收幀描述符,轉步驟十三;
步驟十三,由網(wǎng)絡協(xié)議解析單元進行協(xié)議解析,解析結果通知CPU,如果發(fā)現(xiàn)是ARP幀或者ICMP幀,則轉步驟十四,如果發(fā)現(xiàn)是TCP幀,則轉步驟十五;
步驟十四,網(wǎng)絡協(xié)議解析單元判斷是否需要應答,如果不需要應答則CPU完成更新ARP表等相關操作后就把幀直接丟棄,否則由CPU生成應答幀描述符并組建應答幀幀頭,然后轉步驟十六;
步驟十五,CPU根據(jù)安全表進行ID號和TCP端口號的過濾,將攜帶數(shù)據(jù)的TCP幀的接收描述符修改之后交給上傳DMA,進而將若干以太網(wǎng)幀上傳到超幀處理單元中構造超幀,轉步驟十七,同時組建TCP應答幀及其描述符,轉步驟十六;
步驟十六,發(fā)送DMA根據(jù)描述符來區(qū)分協(xié)議,構造出不同協(xié)議的應答幀或特殊幀,在幀頭生成器中讀取幀頭,然后自動生成不同協(xié)議對應的應答數(shù)據(jù)部分,計算相應協(xié)議的校驗和,然后轉步驟十八;
步驟十七,超幀處理單元分析超幀包頭,取出水印字段交由CPU鑒別,對于鑒別不通過的超幀直接丟棄,否則就上傳;該步驟也要解析指令字段,如果指令要求結束TCP鏈接或者收到了TCP的FIN幀,則CPU需要去組建TCP斷開過程中相關幀的描述符,之后轉步驟十六,否則重復該步驟;
步驟十八,MAC控制器將應答幀或FIN幀通過PHY發(fā)出,重復步驟十一至步驟十七。
所述下行過程包括以下步驟:
步驟二十一,由超幀處理單元讀取超幀的指令字段,如果指令字段要求發(fā)送ARP廣播幀,則轉步驟二十二,如果指令字段要求建立TCP鏈接,則轉步驟二十三,如果指令字段要求修改IP地址或MAC地址,則轉步驟二十四,其余情況轉步驟二十五;
步驟二十二,由CPU構造ARP廣播幀的發(fā)送描述符以及幀頭,交給發(fā)送DMA組幀并由MAC控制器發(fā)出,之后轉步驟二十一;
步驟二十三,由CPU構造TCP請求幀描述符以及幀頭,交給發(fā)送DMA組幀并發(fā)出,之后CPU配合各相關模塊進行三次TCP握手操作,如果握手成功則轉步驟二十五,否則轉步驟二十六;
步驟二十四,CPU分別配置MAC控制器和接收DMA的相關寄存器,以此修改MAC地址,IP地址,之后轉步驟二十一;
步驟二十五,超幀處理單元解析超幀的包頭,將一個超幀分解成若干個以太網(wǎng)幀,并通過下載DMA傳遞給發(fā)送數(shù)據(jù)緩存,同時生成發(fā)送描述符;CPU根據(jù)此描述符在幀頭生成器中生成以太網(wǎng)幀的幀頭;發(fā)送DMA將幀頭生成器中的幀頭和發(fā)送數(shù)據(jù)緩存中的數(shù)據(jù)融合成完整的以太網(wǎng)幀,交給MAC控制器發(fā)出;每發(fā)出一個TCP幀,就要等待一個ACK幀的返回,如果ACK幀在規(guī)定時間返回則轉步驟二十七,否則轉步驟二十八;
步驟二十六,握手失敗,重復握手操作三次之后丟棄整個超幀,轉步驟二十一;
步驟二十七,對于返回的ACK幀,需要進行ID號和二次水印的鑒別,如果通過則繼續(xù)重復步驟二十一至步驟二十五,否則轉步驟二十八,直到指令字段要求發(fā)送FIN幀,CPU配合各相關模塊完成TCP斷開操作,從而結束本次TCP鏈接,轉步驟二十一;
步驟二十八,經(jīng)過三次重傳操作,如果收到ACK幀,則轉步驟二十七,否則主動發(fā)起斷開TCP鏈接操作,重復步驟二十一至步驟二十七。
本發(fā)明用Xilinx或者Altera的FPGA實現(xiàn)都很方便,或采用開發(fā)專用ASIC芯片來實現(xiàn),同時基于FPGA或ASIC芯片開發(fā)相應PCI/PCIE的TOE網(wǎng)卡板。
本發(fā)明可應用的實際例子來進一步說明:一種網(wǎng)絡型門禁系統(tǒng),核心部件是門禁控制器,由門禁安全管理單元和網(wǎng)絡處理單元構成。一般情況下,門禁控制器通過讀卡器或生物識別儀來獲取刷卡人員的卡號信息,并將接收到的卡號與控制器中儲存的卡號權限進行比對判斷,以此決定是否允許該人員該時段的進出。門禁控制器通過TCP/IP網(wǎng)絡與管理計算機聯(lián)網(wǎng),將事件記錄和接收到的刷卡人員的信息傳遞給管理計算機,并接收來自管理計算機的更新消息。在某些特殊情況下,遠端管理計算機全面接管門禁控制器,禁止本地卡號權限比對,實現(xiàn)遠程控制人員的進出。這樣的網(wǎng)絡門禁控制器不需要傳輸大量的數(shù)據(jù),但是需要加密的TCP/IP協(xié)議以及花最少的硬件代價處理網(wǎng)絡協(xié)議棧,其網(wǎng)絡處理單元完全利用本發(fā)明方案實現(xiàn)。實現(xiàn)本發(fā)明方案時,使用Altera的EP2S60/130系列FGPA自帶軟核NIOS就能完全滿足處理要求了,如果利用Xilinx的ZYNQ系列FPGA還能在本發(fā)明的基礎上進一步的增加協(xié)議以滿足更廣泛的應用。
本發(fā)明有以下特點:一,單片F(xiàn)PGA實現(xiàn)TCP/IP協(xié)議棧。為此需要合理簡化現(xiàn)有TCP/IP協(xié)議棧,要求通過簡化后的協(xié)議棧構造的以太網(wǎng)幀能滿足正常幀格式要求,不影響其在現(xiàn)有網(wǎng)絡中的傳播。二,數(shù)據(jù)在網(wǎng)絡中安全傳輸。需要對TCP/IP協(xié)議棧進行安全化改造,通過在TCP層上增加一個安全層并構造加密超幀的方式來形成安全機制。三,方便廣泛應用。本發(fā)明無需操作系統(tǒng)軟件。利用SOPC實現(xiàn),直接面向硬件編程,代碼簡單,無需操作系統(tǒng)參與。另外本發(fā)明將控制指令包含在了數(shù)據(jù)包中的方式使得接口十分簡單,可以任意擴展或者直接使用。
除了門禁系統(tǒng)以外,本發(fā)明適用于任何需要安全網(wǎng)絡通信且通信速率和數(shù)據(jù)量要求不是特別高的場合。我們已經(jīng)利用現(xiàn)有的FPGA網(wǎng)卡開發(fā)板并基于本發(fā)明方案開發(fā)出了網(wǎng)絡安全通信原型系統(tǒng),該系統(tǒng)能做到安全地傳輸一些特殊信息,本發(fā)明對于TCP/IP協(xié)議棧的硬件加速處理保證了該系統(tǒng)能以較快速度運作。
以上所述的具體實施例,對本發(fā)明的解決的技術問題、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。