新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的TCP粘合設計實現

        基于FPGA的TCP粘合設計實現

        作者: 時間:2011-08-15 來源:網絡 收藏
        2.2

        本文引用地址:http://www.104case.com/article/150354.htm

          在該系統中,為完成并且保證通信的可靠性,必須能夠正確識別接收到的數據包類型;同時由于實際網絡數據傳輸的延時,在一個客戶端通信過程中可能會插入很多其他客戶端發起的新的連接請求,系統內部根據對CAM查找返回的地址來區分不同的數據流,因此要對內部地址空間進行有效的釋放回收,為處理網絡通信異常中斷而導致內部地址無法回收而引入定時器機制;在數據發送部分,客戶端數據發送模塊偽裝成服務器與客戶端完成三次握手協議;服務器數據發送模塊則偽裝成客戶端與服務器完成TCP三次握手協議。雙方在通信過程中轉發對方的數據包。

          2.2.1 數據收發

          對于系統的發送接口來說,所有發送數據包的轉發由數據包映射單元完成,因此發送接口僅完成簡單的數據包轉發功能。而當系統接收到數據包時,要對數據包進行協議解析,從而決定數據包后端處理的方式。在接收部分主要對三種數據包進行區分:(1)雙方發起連接的SYN數據包。這表示一個新連接的發起,因此交給地址管理單元,為它分配一個新的地址空間,同時要求發送端返回一個ACK數據包;(2)客戶端發來的GET數據包中含有客戶端所需信息的URL地址,將該數據包送給字符串匹配表以獲得該信息所在后端服務器的位置;(3)雙方通信的普通數據包。該數據包交給數據包映射單元雙發的通信。具體接收的狀態轉換圖如圖3所示。

          

          2.2.2 地址管理單元

          在地址管理的方式上,在此處利用一個地址鏈表進行管理,如圖4所示。

          

          每次地址管理單元接收到新的請求連接就從鏈表的頭部取出該可用地址空間,將新請求的SIP、DIP信息寫入該地址的CAM中,同時在該地址對應的SSRAM的頁面中寫入相關的信息,假設鏈表中取出地址為n,頁面大小為m,則SSRAM中對應的頁面起始地址l為:

          l=n×m

          當地址管理單元接收到字符串匹配表返回的后端服務器位置信息時,首先通過該數據包的SIP、DIP從CAM中查找該數據流對應的地址,通過上述計算公式找出SSRAM中對應的頁面,寫入返回信息。

          對于地址空間的回收,為防止通信異常中斷而無法回收地址,在系統中采用定時器機制,即在一段時間后對SSRAM中的定時器標志位進行檢測,一旦發現該標志位過時則通知地址管理單元回收地址。地址管理單元收到某一地址過時的信息后,將該地址掛在地址管理鏈表尾部,同時清除該地址CAM中的SIP、DIP信息。這樣當同一IP發起新的連接時就不會查找到過時信息。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 淮阳县| 平顶山市| 手游| 县级市| 南川市| 吐鲁番市| 安溪县| 沁阳市| 利川市| 晴隆县| 获嘉县| 锡林郭勒盟| 观塘区| 东源县| 德州市| 横山县| 上栗县| 望谟县| 西藏| 进贤县| 泽普县| 博客| 利辛县| 张家口市| 鹤峰县| 宝鸡市| 铁岭县| 吴江市| 夏津县| 安化县| 琼结县| 墨玉县| 岳普湖县| 枣强县| 交口县| 邮箱| 巴塘县| 从化市| 诏安县| 怀仁县| 连州市|