本博文出自CSDN博主 刘锐群 的博客,有任何问题请进入博主页面互动讨论! 博文地址:http://blog.csdn.net/liuruiqun/article/details/45645091 |
在计算机网络中,localhost 代表了本主机,通过使用localhost可以访问自己主机的网络服务。注意,使用localhost的时候,使用的是回环网络接口,这会绕过本地网络接口硬件,独立于任何网络配置(不受网络防火墙和网卡相关的的限制)。
在windows7系统的hosts文件中,可以看到:
- # localhost name resolution is handled within DNS itself.
- # 127.0.0.1 localhost
- # ::1 localhost
windows将localhost解析为 127.0.0.1(IPv4)或者 ::1 (IPv6)
网上有些文章提到localhost与127.0.0.1的区别时说到:localhot(local)是不经网卡传输;127.0.0.1是通过网卡传输。事实真的是这样的吗?
我们先做个试验来看看:
首先,执行命令: ping localhost -t
接着,尝试用wireshark抓取报文。你会发现没有抓取到任何相关的报文。这是为什么呢?
原因在于:本地回环地址不属于任何一个有类别地址类,它代表设备的本地虚拟接口。发送到发送到环回地址的任何数据包在 TCP/IP 协议栈的链路层被执行,这些数据包不会交付给任何网络接口控制器(NIC)和设备驱动程序,即数据流不会被发送到一个真正的网络接口。这样一来,你在抓包的时候当然看不到这些数据包了。
如果一定要抓取回环地址上的数据包,怎么办呢?window操作系统上很麻烦(至少WinPcap是不可能嗅探到这种网络流量)。但是通过一些其他配置还是可以尝试一下的,具体参考:https://wiki.wireshark.org/CaptureSetup/Loopback或者http://www.hsc.fr/ressources/articles/win_net_srv/missing_loopback.html
原文转自:http://blog.csdn.net/liuruiqun/article/details/45645091