我正在学习Linux上的数据链接原始套接字编程,我发现这些有用examples . 我编译了icmp4_ll.c,并用它将ICMP数据包发送到同一局域网中的另一台计算机 . 我可以收到目标计算机的回复 . 但是,当我用它向本地计算机发送ICMP数据包时,即我将源和目标以太网MAC和IP地址设置为eth0的MAC和IP地址,我无法在eth0或lo上收到ICMP回复接口(在Wireshark中,我只注意到通过eth0发送的ICMP请求,但在任何接口上都没有ICMP回复 . )我认为ICMP请求消息组成正确,(否则远程目标不会回复) . 但是我没有回复请求 . 任何帮助或提示都表示赞赏 .
1 回答
RFC 792 为ICMP消息定义了特殊条件:
路由器几乎总是生成ICMP消息,但是当它到达目的主机时,生成的ICMP消息的数量取决于实现 .