TCP/IP协议栈设计—ICMP设计与实现

TCP/IP协议栈设计ICMP设计与实现

前言:基于前面两篇文章,实现的UDPIP以太网通信,其已经实现了ARP通信,再次基础上,继续实现ICMP通信。

文中主要目录:

一、ICMP接收解析;二、ICMP发送组帧准备;二、ICMP发送组帧准备;四、ICMP的测试;五:ICMP可靠性验证

 

ICMP设计与实现

20191105 周二

以上版本为基础,继续完善ICMP的接收和回传设计。这个不要花太多时间,重点还在TCP设计上,加油。

一、ICMP接收解析

模块文件为:icmp_rx_parsing.v 顶层接口如下:

TCP/IP协议栈设计—ICMP设计与实现

二、ICMP发送组帧准备

模块文件:icmp_tx_framing.v  顶层接口如下:

TCP/IP协议栈设计—ICMP设计与实现

设计模式同UDP。调通了UDP,再来设计ICMP就觉得很简单了。

三、ICMP发送仿真结果如下: 如图中所示,ICMP校验和计算完好。

TCP/IP协议栈设计—ICMP设计与实现

四、ICMP的测试

使用cmd控制台ping命令测试,直接使用[ping [IP地址]],便可对目的地址进行试探查询。

PING的结果如下:可见PING成功。因为PC与FPGA是直接相连的,中间没有路由器,所以其往返时间很短,显示为0ms ,嘿嘿。

TCP/IP协议栈设计—ICMP设计与实现

对应的WireShark抓取数据,可见,我计算的校验和均是正确的。很完美。

TCP/IP协议栈设计—ICMP设计与实现

到此,ICMP的测试成功。可以进入下一阶段的代码设计了。

五:ICMP可靠性验证

为了验证PING的可靠性,在UDP发送期间进行PING测试,结果如下,功能正常,完美。

TCP/IP协议栈设计—ICMP设计与实现

 

欢迎交流、源码分享见CSDN资源,笔者扣扣:1021100382