0.0.0.0 与 127.0.0.1的区别
一、总结
一句话总结:
a、0.0.0.0:它表示的是这样一个集合:所有不清楚的主机和目的网络。
b、255.255.255.255:限制广播地址,这个地址不能被路由器转发。
c、127.0.0.1:本机地址,在Windows系统中,这个地址有一个别名“Localhost”
二、0.0.0.0 与 127.0.0.1的区别
一、0.0.0.0
严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
二、255.255.255.255
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
三、127.0.0.1
本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。
二、127.0.0.1、0.0.0.0和本机IP地址的区别和使用
一、表面上的区别如下:
首先假设本机有多个网卡:eth0 :192.168.0.1 eth1:192.168.1.1 lo: 127.0.0.1
0.0.0.0 不能ping通,代表本机所有的IP地址;
监听127.0.0.1,创建Socket,那么用本机地址建立tcp连接不成功,反过来也是如此;也就是,监听时采用的地址为192.168.0.1,就只能用192.168.0.1进行连接。 而监听0.0.0.0创建Socket,那么无论使用127.0.0.1或本机ip都可以建立tcp连接,也就是不论通过127.0.0.1或192.168.0.1、192.168.1.1都能连接成功。 0.0.0.0建立tcp连接的时候也可以通过绑定IP_ADDR_ANY来实现。
那么问题来了,还回地址必须是127.0.0.1么?
答案:不是必须!IPv4 的环回地址是保留地址之一 127.0.0.1。尽管只使用 127.0.0.1 这一个地址,但地址 127.0.0.0 到 127.255.255.255 均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。
可以做一个简单的测试,用ssh root@127.2.3.4 然后登录看看是不是还是本机?不用修改ip,随意一个此范围内长度ip地址均可以ping通,并且通过ssh登录到本机。
二、事实上处理的区别,如下图:
他们是在数据链路层区别开的,路径很清楚,就不详述了。