W5500是一个功能强大的芯片,同时支持8个socket功能,这些功能可以任意定义,直到符合你的应用需求,在我的这个应用里,我先使用两个作为UDP应用功能,第三个通道用于ping功能。属于网络层的一个功能。
ICMP是Internet控制报文协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有), 这个“Ping”的过程实际上就是ICMP协议工作的过程。Ping命令利用ICMP回射请求报文和回射应答报文来测试目标系统是否可达。
执行 ping 后,首先向目标服务器发出回送请求报文。计算机送出的回送请求到达目标服务器后,服务器回答这一请求,向送信方发送回送请求。这个 ICMP 回送回答报文在 IP 层来看,与被送来的回送请求报文基本上一样。不同的只是,源和目标 IP 地址字段被交换了,类型字段里填入了表示回送回答的 0, 这两点。也就是,从送信方来看,自己送出的 ICMP 报文从目标服务器那里象鹦鹉学舌那样原样返回了。
调试过程中出现过几个问题,就是W5500实现ping的过程中经常死循环出不来,但是其他任务都正常。这些问题主要是:</