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 

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