TCP/IP協議棧設計—TCP設計實現(初步)

TCP/IP協議棧設計—TCP設計實現(初步)

目錄

1TCP連接(三次握手)測試

2TCP數據發送與接收測試

3TCP收發的優化與測試

4,結束連接與請求重置測試

 

1,TCP連接(三次握手)測試

經過這幾天艱難的調試,終於初見成效:TCP連接成功啦。下面給出連接的抓包情況。

下面是TCP&UDP調試助手的設置情況。

 

2,TCP數據發送與接收測試

上面連接成功後,開始進行數據傳輸測試。如下圖,助手任意設置發送數據,點擊發送後,接收窗口,開始接收TCP數據。TCP傳輸成功。

下面是對應的TCP數據發送抓包情況。

到此,基本打通TCP連接與傳輸,下面繼續進行改進、優化和完善。

 

3,TCP收發的優化與測試

3.1 發送過程實測截圖1,如下。FPGA發送一個,PC端的助手回覆一個ACK。測試中採用低速,1s發送一次。所以,可見接收速率爲46MB/S。

3.2 改變發送字節的長度,測試如下。此時,接收速率爲48MB/S。

3.3 再次測試TCP數據傳輸,如下,傳輸狀態正常。

 

4,結束連接與請求重置測試

4.1 疑問:客戶端發送TCP請求重置,需要服務器端回覆ack嗎?

查了下,沒有明確的回答。當前設計,認爲收到RST幀後,讓FPGA端重置,且不再回復ACK了。只有等下次SYN幀來了,纔開啓下個TCP的連接。

4.2 請求斷開FIN幀測試

結果如下,由TCP助手發起請求斷開,FPGA作出斷開回應,並也回覆FIN幀,最後TCP助手接收到FPGA發來的FIN幀,並作出迴應。4次握手完成,斷開成功!

4.3 FIN可靠性測試與TCP重連

結果如下,上個10000端口號的TCP4次握手斷開連接後,10001端口號進行連接建立,成功握手。

在此連接下,啓動數據發送,均正常。

此時,點擊斷開連接,抓取結果如下。4次握手正常斷開。

到此,tcp連接、接收、發送、斷開的整個流程測試完成。實現了初步的TCP/IP協議棧。

歡迎交流、源碼分享見CSDN資源,筆者扣扣:1021100382 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章