我正在学习Linux上的datalink原始套接字编程,并且我发现这些帮助examples。我编译了icmp4_ll.c,并用它将ICMP数据包发送到同一局域网中的另一台计算机。我可以收到目标计算机的回复。但是,当我使用它向本地计算机发送ICMP数据包时,即将源和目标以太网MAC和IP地址设置为eth0的MAC和IP地址时,我无法在eth0或lo上收到ICMP应答接口(在Wireshark中,我只注意到通过eth0发送的ICMP请求,但在任何接口上都没有ICMP回复。) 我认为ICMP请求消息组成正确,否则远程目标不会回复。但我不知道为什么操作系统没有回复请求。任何帮助或暗示赞赏。通过本地接口发送和接收带有数据链路原始套接字的ICMP
0
A
回答
0
RFC 792定义的ICMP消息的特殊条件:
否ICMP错误消息响应于ICMP错误消息发送到避免无限重复。
对于零碎的IP数据报,ICMP消息仅针对分片零(第一个片段)上的错误发送。
ICMP错误消息永远不会发送以响应发往广播或多播地址的数据报。
ICMP错误消息从不响应作为链路层广播发送的数据报而发送。
ICMP错误消息从不响应发送到一个数据报的源地址不表示一个唯一的主机(源地址 不能为零,环回地址,广播地址或组播 地址)。
ICMP错误消息不会响应任何类型的IGMP消息发送。当接收到一个未知类型的ICMP消息时,必须丢弃它,并且默认为 。
路由器将几乎总是产生ICMP消息,但是当它涉及到一个目标主机,产生ICMP消息的数量与实现有关。
相关问题
- 1. 通过套接字和端口发送和接收数据
- 2. 在套接字(ICMP)上接收数据
- 3. 通过TCP套接字发送和接收数据的问题
- 4. 通过Java中的套接字发送和接收数据
- 5. 通过套接字发送和接收数据python3
- 6. 通过套接字发送和接收数据
- 7. 从通过Python原始套接字接收到的ICMP消息中读取TTL
- 8. Python原始套接字未收到ICMP数据包
- 9. VB.net中的原始套接字发送和接收
- 10. 如何通过套接字发送ICMP数据包?
- 11. 原始套接字通过Wifi - 接收器无法接收数据包
- 12. 在Linux原始套接字中接收完整修改的icmp数据包
- 13. 通过TCP套接字的Android发送/接收字节[]通过TCP套接字
- 14. 套接字接收和发送数据端口C
- 15. 套接字 - 不发送/接收数据
- 16. 计算通过套接字发送/接收的数据的带宽速度?
- 17. 通过wlan和eth接口发送和接收单个套接字
- 18. 如何通过套接字发送/接收数据文件?
- 19. 如何通过套接字发送/接收二进制数据?
- 20. 通过套接字发送和接收数组
- 21. 通过套接字接口接收不同的数据类型
- 22. 通过网络套接字发送和接收相同的数据通过网络套接字
- 23. 发送和接收带有套接字的压缩文件
- 24. 通过python套接字接收数据
- 25. 分别通过TCP套接字发送和接收字符串
- 26. 用本地链接发送HTML并通过Gmail邮箱接收
- 27. 没有正确的数据正在接收原始套接字
- 28. 发送和接收通过相同的套接字
- 29. 通过原始套接字发送源MAC和IP
- 30. 记录通过套接字连接发送/接收的内容
如果您没有得到回复,回应请求可能是错误的,或者有其他地方阻止了回复。 – nos
我正在考虑这种可能性,但是当使用同一个程序向远程计算机发送ICMP请求时,我可以看到远程计算机的答复表单。只有当程序用于向本地接口发送请求时,回复才会丢失。 – user2975098