TCP IP協議棧設計 TCP設計實現小結

2021-09-29 13:09:42 字數 1452 閱讀 6334

tcp/ip協議棧設計—tcp設計實現小結

設計目的:在fpga上採用純verilog描述的方式,實現可定製裁剪的tcpip硬體協議棧,並加入超時重傳、滑動視窗等優化演算法,最終希望實現傳輸速率能超過200mhz的千兆乙太網。

去年3月份,就開始了設計之旅,期間參考了眾多**,網上也查了許多資料。經過一步步設計,現在終於實現了初步的tcpip傳輸。現將實現的工程進行簡單介紹和總結。

開發環境:ise14.7 ,win7 x64 台式電腦,採用具備phy介面晶元的黑金開發板ax516,高速網線一根。

測試工具:網路除錯助手netassist.exe 、tcp&udp測試工具 、wireshark軟體

問題小結:在充分了解了乙太網,特別是mac層介面工作原理後,開始設計tcpip協議棧。但發現困難重重,一直前進不了。不斷在網上查閱資料,參考了udpip協議棧設計,然後實現了arp、icmp。並給出完整的udpip協議棧設計**。但在除錯tcp傳輸時,遇到一些問題,始終未能解決。

直到最近,在找工作期間,為了應付ic設計中的筆試題,特別學習了ic設計相關的書,對其中的時序分析,有了很多認識,特別是保持時間、建立時間、關鍵路徑等等。最近再回過頭來,設計、除錯tcp時,發現,在系統時鐘到125mhz後,存在時序約束不滿足的情況。具體問題見前面相關博文。他們主要是:①crc保持時間不夠,該下降沿傳送,增加保持時間;②checksum組合路勁延遲太大,換更快速的方法;③tcp建立連線,第乙個幀必須待選項。④全域性使用同一時鐘rx_clk,導致刪除和時鐘偏斜skew太大,改用pll分頻,作為傳送時鐘。很多問題,只有在做的時候,才會發現。真的需要對tcpip協議足夠地熟悉,才能把它設計出來。

工程介紹:rtl頂層如下。該工程,包含arp、icmp、udp、tcp、ip和mac全過程的傳輸。其綜合原理圖見tcpip_stack_top_sch_v1.1.pdf 。設計過程的**檔案也如下圖。

測試結果:前面已進行過許多測試,參見前面的博文。這裡再用netassist助手測試一下。如下,先測試了整個過程,並斷開tcp。

再次連線,並擷取傳送過程的結果,如下圖。

TCP IP協議棧 之 TCP協議

1 tcp的特點 2 tcp資料格式 tcp在ip協議的基礎上進行傳輸資料,tcp資料在ip報文中的位置如下 ip頭部 20位元組 tcp頭部 20字 tcp資料 tcp報文包含頭部和資料兩部分,其資料格式如下 源埠號 16位 目的埠號 16位 序列號 32位 確認號 32位 頭部長度 4位 保留 ...

TCP IP協議 TCP協議

今天算是對了tcp協議有個膚淺的理解了 儘管tcp和udp都是一樣的網路層ip,但是tcp卻和udp實現著不一樣的服務,tcp是乙個面向連線的,可靠地位元組流服務!面向連線是指 兩個使用tcp的程式要建立乙個tcp連線才能交換資料。tcp以以下方式提供可靠性 1 應用程式被分為tcp認為合適傳送的資...

TCP IP 協議 協議棧

tcp ip協議棧 整個協議棧被分為了四層,每一層協議負責不同的功能 鏈路層 負責處理物理介面的細節,接受傳送的都是位元流,鏈路層主要有三個目的 1.為ip模組傳送和接收i p資料報 2.為arp模組傳送arp請求和接收arp應答 3.為rarp傳送rarp請求和接收rarp應答 網路層 用來處理網...