ping环回地址和ping主机以太网地址的区别

来源:互联网 发布:提升排名软件搜狗优化 编辑:程序博客网 时间:2024/05/16 15:59

一、

这个问题是在TCP/IP详解 卷一中7.5问题,查资料总结如下:

1,ping 127.0.0.1是环回地址,如果不能ping通说明当前机器的TCP/IP协议栈有问题,127本身是一个虚接口,任何时候都是直接上交到内核中处理的。(
如果开启了wifi共享,可能会ping不通)

2,ping 192.168.1.X 本机的以太网地址,则是测试本机的网络适配器(就是网卡啦),一般是以太网驱动程序。
ping这两个地址时你会发现,但使用wireshark抓包时,是没有ICMP的回显请求发出的,这说明这两个ping程序是不会发送到网络中的(只在局域网中)。

3,ping 同一网段中的网络地址,不通则说明网络线路出现了故障,如果网络中还存在路由器,则应该先ping路由器在本网络的地址,不通则是本机和路由器之间的线路有问题
通了,则再ping路由器所在目标计算机网络所在网段的端口IP地址,不通则说明了路由器出现了故障,通了就再ping目标主机的IP地址。

4,如果ping www.baidu.com等网络地址ping不通时,则说明本机的DNS服务器设置错误。


二、

ping127.0.0.1和ping本机的过程是不一样的
ip输出函数先检查地址是不是环回地址
1.如果是环回地址 直接交给环回驱动程序处理 返回ip输入函数
2.如果不是环回地址   检查是不是广播或者多播地址
3.如果不是广播或者多播地址   才检查是不是本机地址   如果是本机地址 则交给环回驱动程序处理,环回驱动程序返回给ip输入函数
从上面可以看出 ping127.0.0.1 数据包是不经过网卡的 ping本机则是需要经过网卡的

三、

ping127.0.0.1 这个数据包不会发送到网络上 用来检查本机tcp/ip配置 可以这样理解 这个数据包从cmd的shell发到了kernel的tcp/ip模块,然后从tcp/ip模块返回到cmd下,就看到ping成功了。也表示本机tcp/ip配置没问题
ping 本机ip地址 这个数据包发送到局域网上,所有机器都收到了这个数据包 也包括自己的机器 然后自己的机器回应这个数据包 回应了就看到cmd下ping成功了 这也表示这个ip地址是正确的 是被其他机器承认的ip


from:  http://hi.baidu.com/anqgqykqilbacnq/item/21a30bc3116c3bc6984aa09e

0 0
原创粉丝点击