下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

为什么断网了还能 ping 通 127.0.0.1

作者:匿名     来源: 云计算点击数:2415发布时间: 2021-10-21 12:47:43

标签: 虚拟化127.0.0.1ping

  我们在ping的时候,可以ping成功127.0.0.1,这是大家都知道的,如果不能,那就是有问题了。

  有网的情况下,ping最后是通过网卡将数据发送出去的。

  但是,在没有网的情况,依然可以ping通127.0.0.1。

  首先,在没有网的情况下,网卡是不会工作的,那么ping是如何成功的呢?

  为什么断网也可以ping通127.0.0.1。

  我们首先来看一张ping回环地址的图片  

  从应用层到传输层再到网络层。当到达网络层时,系统将根据目的IP,从路由表中获得相应的路由信息,其中包括选择哪个网卡发送消息。

  当发现目标IP是外网IP时,会从"真网卡"发出。

  当发现目标IP是回环地址时,就会选择本地网卡。

  本地网卡,实际上是一张“假网卡”,它不像"真网卡"那样有ring buffer什么的,"假网卡"把数据放到一个名为input_pkt_queue的链表中。这个链表,实际上是所有网卡共享的,挂着发送给本机的各种消息。在向该链表发送消息之后,将再触发一个软中断。

  关于软中断,不得不提到一个专用工具人"ksoftirqd"(这是个内核线程),它是用来专门处理软中断的。当它收到软中断时,它会立刻去链表里将消息取出来,然后沿着数据链路层、网络层等层层往上传递最后到应用程序。 

  ping回环地址以及通过TCP等各种协议发送数据到回环地址都是走这条路径。整个路径是从发送到接收,没有经过“真网卡”。

  之所以,我们这里把127.0.0.1叫本地回环地址,我们可以理解为,当消息发出到这个地址上时,就不会离开网络,在本机打个转就又回来了。所以,当你断网的时候,你仍然可以通127.0.0.1。

  结尾

  本文主要讨论了断网的情况下,还可以对127.0.0.1ping成功。之所以这样,是因为有本地网卡的存在。

  对于此现象的理解,我们要理解本地网卡,以及ksoftirqd的工具,从而帮助我们对该现象加以理解。

    >>>>>>点击进入计算专题

赞(12)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程