来自论坛提问,出处:http://www.cnpaf.net/Forum/viewthread.php?tid=28012
alvas:
当发送icmp包的时候,这些包的发送路径是什么?都经过了什么地方?router的选择和interface的选择都由什么决定?
kapiter:
ping 127.0.0.1和ping本机的过程是不一样的
ip输出函数先检查地址是不是环回地址:
1. 如果是环回地址,直接交给环回驱动程序处理,返回ip输入函数
2. 如果不是环回地址,检查是不是广播地址或者多播地址
3. 如果不是广播或者多播地址,才检查是不是本机地址,如果是本机地址,则交给环回驱动程序处理,环回驱动程序返回给ip输入函数
从上面可以看出 ping 127.0.0.1数据包是不经过网卡的 ping本机则是需要经过网卡的
ICMP报文是封装在ip数据包里面的,所以router选择和interface选择过程和ip数据包是一样的
alvas:
thx
maoyinjie:
ping 127.0.0.1 和 ping本机同样是不经过网卡的,都是环回驱动处理掉的
dingcuipu8888:
lz你拔掉网线照样能ping 127.0.0.1,但是IP地址是ping不通的。2#说的没问题
liuyongq:
支持二楼的
jergolfer:
ping 127.0.0.1是测试本机是否安装了TCP/IP协议,而路由器和接口的选择是由路由表决定的,windows下可通过router print查看
ping 127.0.0.1是不会经过本机网卡的,当然抓包是看不到的
ping本机IP也不会经过本机网卡的
Richard Steven卷一中有详细分析,正如kapiter所说的