您的位置 首页 杂谈

网络篇

宽带保鲜盒,王思想,黑市交易

很多小伙伴遇到网络故障 或者无法连通时, 大多情况下, 我们都会一顿ping操作 判断是否网络故障。 那么我想问下, Ping 127.0.0.1的原理是什么? 我相信大部分小伙伴…

很多小伙伴遇到网络故障

或者无法连通时,

大多情况下,

我们都会一顿ping操作

判断是否网络故障。

那么我想问下,

Ping 127.0.0.1的原理是什么?

我相信大部分小伙伴,

都会有“心有力,而语不出”这种感觉

心里感觉好像应该懂点什么,

到嘴里又好像没有什么可说的。

就问你,尴尬不尴尬?

今天,我们就好好聊聊

“Ping 127.0.0.1”背后那点事

首先,我们要弄清楚127.0.0.1的位置

1.window系统里,在hosts文件里可以找到127.0.0.1

可以发现localhost解析地址为127.0.0.1

2.linux中是写在/etc/hosts中

通过ifconfig命令,是可以看到这个lo0写了127.0.0.1地址

我们可以发现127.0.0.1默认配给了一个loopback虚拟接口上。

其次,我们要弄清楚ping 127.0.0.1的数据包是否经过网卡.

先简单的阐述下ping的程序

ping是对两个TCP/IP系统连通性进行测试的基本工具,

它只利用ICMP回显请求和回显应答报文,

而不用经过传输层(TCP/UDP)

我们一般把发送回显请求的ping程序为客户端,

而被ping的主机为服务器。

大多数的TCP/IP实现都在内核中直接支持ping服务器。

然后,我们引用“TCP/IP协议卷一”,

关于“网卡驱动处理IP数据包”的流程图,来解释下。

在我们输出ping 127.0.0.1时,

IP输出函数会先检查地址是不是换回地址:

1. 如果是环回地址,直接交给环回驱动程序处理,返回ip输入函数

2. 如果不是环回地址,检查是不是广播地址或者多播地址,

如果是广播地址或者组播地址数据报复制一份传给环回接口。然后在送到以太网上。(因为广播和多播包含主机本身)

3. 如果不是广播或者多播地址,才检查是不是本机地址,如果是本机地址,则交给环回驱动程序处理,环回驱动程序返回给ip输入函数

另外,请童鞋注意的是,目前大部分网卡接口不能读会它自己发送出去的数据包,

所以如果是发送给本地的数据包,

最好是不需要经过网卡的。

很多网卡驱动的注释上都有备注。

从上面可以看出 ping 127.0.0.1数据包是不经过网卡的。

而如果ping本机IP是需要经过网卡。

那么,我们是不是可以得出这样的一个结论:

1.ping 127.0.0.1是检查TCP/IP协议栈是否正常。

2.ping 本地IP 是检查你网卡、配置是否正常。

为了验证这个问题,我们通过实验去看下结果:

window环境下,我们把网卡禁用,我们来尝试ping 127.0.0.1

图一:网卡禁用

图二:Ping 结果

通过这个简单实验验证我们上面的结论。

那么,有童鞋会问

ping 127.0.0.1会不会被防火墙的影响

我们继续做一个实验去验证:

1.首先测试机开启防火墙功能

2.我们添加127.0.0.1的地址过滤,在高级设置-入站规则里与出站规则:新建规则

3.然后DOS里ping 127.0.0.1,同时wireshark抓包本地网卡的包

可以发现还是能正常ping通,而且网卡上没有127.0.0.1的数据包。

所以ping 127.0.0.1的数据包不受防火墙影响。

总结:ping 127.0.0.1环回地址,

如果不能ping通过说明当前机器的TCP/IP协议栈有问题。

Window的TCP/IP协议栈重装步骤:

1.删除注册表键值
开始-运行-regedit,找到
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2

把这两个删除 。
2.重新安装协议
本地连接-属性-安装-协议-增加-从硬盘导入-选择%Windir%\inf 文件夹(一般为 C:\Windows\inf)-选择TCP/IP协议v4 。
3.将TCP/IP协议栈恢复至初始状态
管理员权限运行 cmd, netsh int ip reset C:\resetlog.txt 。其中C:\resetlog.txt为记录日志,一定要指定。
4.重启;

本文来自网络,不代表加推新闻网立场,转载请注明出处:http://www.bafangmiaomu.com/shehui/98551/

作者: 头条新闻

为您推荐