【计算计网络】localhost,和127.0.0.1和本机IP三者的区别?

localhost,和127.0.0.1和本机IP三者的区别?


本篇文章:

       对于网络方面的知识,自己是一窍不通,于是打算开始学习网络,遇到了一个问题,如何区别 localhost127.0.0.1 和本机IP这三者?于是,在百度上面学习了一番,写下这篇文章,记录下自己的学习成果。


---------------------------------------------------正文---------------------------------------------------
① 127.0.0.1:
一、什么是环回地址??与 127.0.0.1 的区别呢??

环回地址: 主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。

可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开 TCP/IP协议栈 的下层。(也就是说:不用再通过什么链路层,物理层,以太网传出去了,而是可以直接在自己的 网络层,运输层 进行处理了)

IPv4的环回地址为: 127.0.0.0127.255.255.255 都是环回地址(只是有两个特殊的保留),此地址中的任何地址都不会出现在网络中

网络号为127的地址 根本就不是一个网络地址(因为产生的 IP 数据报就不会到达外部网络接口中,是不离开主机的包)

当操作系统初始化本机的 TCP/IP 协议栈时,设置协议栈本身的 IP 地址为 127.0.0.1(保留地址),并注入路由表 。当IP层接收到目的地址为 127.0.0.1(准确的说是:网络号为 127IP )的数据包时,不调用网卡驱动进行二次封装,而是立即转发到本机 IP 层进行处理,由于不涉及底层操作。因此,ping 127.0.0.1 一般作为测试本机 TCP/IP 协议栈正常与否的判断之一。

所以说:127.0.0.1 是保留地址之一,只是被经常的使用,来检验本机 TCP/IP 协议栈而已

如果我们可以 ping 通的话,就说明:本机的网卡和 IP 协议安装都没有问题。(跟我们当前主机有没有联网没有一点关系)

127.0.0.1 这个地址通常分配给 loopback 接口。loopback 是一个特殊的网络接口(可理解成虚拟网卡),用于本机中各个应用之间的网络交互。只要操作系统的网络组件是正常的,loopback 就能工作。Windows 中看不到这个接口,Linux 中这个接口叫 lo:

#ifconfig
eth0    Link encap:Ethernet hwaddr 00:00:00:00:00:00
            inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0
           ......
lo        Link encap:Local Loopback
           inetaddr: 127.0.0.1 Mask: 255.0.0.0
           ......
           
② localhost

localhost: 首先是一个域名(如同:www.baidu.com ),也是本机地址,它可以被配置为任意的 IP 地址(也就是说,可以通过 hosts 这个文件进行更改的),不过通常情况下都指向:(如下)
IPv4: 指向 127.0.0.1

IPv6: 指向 [::1]

cmd 输入: ping localhost ,即可看到对应的主机地址

③ IP

“本机地址”并不是一个规范的名词。通常情况下,指的是“本机物理网卡所绑定的网络协议地址”。由于目前常用网络协议只剩下了 IPV4,IPX/Apple Tak 消失了,IPV6 还没普及,所以通常仅指 IP 地址甚至 ipv4 地址。一般情况下,不会把 127.0.0.1 当作本机地址。

本机地址是与具体的网络接口绑定的。比如以太网卡、无线网卡或者 PPP/PPPoE 拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。

局域网内可以设置固定的IP地址,也可以随机得到不同的IP地址,可以人为控制。

在互联网一般都是电信商随机分配一个IP,每次拨号的IP地址都是不同的,是不可控的。重新拨号上网或重启路由器,IP地址就会产生变化。

IP地址是可变的,电脑的MAC地址才是不变的。

  • localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)::1 (ipv6)
  • 整个 127. 网段通常被用作 loopback 网络接口的默认地址,按惯例通常设置为 127.0.0.1。这个地址在其他计算机上不能访问,就算你想访问,访问的也是自己,因为每台带有 TCP/IP 协议栈的设备基本上都有 localhost/127.0.0.1。
  • 本机地址通常指的是绑定在物理或虚拟网络接口上的 IP 地址,可供其他设备访问到。

最后,从开发度来看

  • localhost 是个域名,性质跟 “www.baidu.com” 差不多。不能直接绑定套接字,必须先 gethostbyname 转成 IP 才能绑定。
  • 127.0.0.1 是绑定在 loopback 接口上的地址,如果服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。

参考链接:

https://blog.csdn.net/weixin_43970743/article/details/89670998

作者:文小白


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值