Bootstrap

【Java】`IPv4` 的一些小细节

一、目前是如何解决IPv4不够的问题呢?

IPv6 还没有大量普及,但是 IPv4 又分配完了,那么目前是如何解决IP不够的问题呢?

此时就要说到 IPv4 的地址分类,它可以分为两类:公网地址(万维网使用)和私有地址(局域网使用),私有IP也叫做局域网IP。

其中 192.168. 开头的就是私有地址,范围即为 192.168.0.0 -- 192.168.255.255,现在就是用局域网IP去节省IP的使用。

我们以网吧为例,网吧里面是有很多很多电脑的,但是不是每一台电脑在连接外网的时候都有一个公网的IP。

它们往往是共享同一个公网IP,再用路由器给每一台电脑分配一个局域网IP,这样就可以实现节约IP的效果。

所以在之前你有没有听过一件事情:网吧里面某个人上了一些网站,然后这个IP就被禁了上不了网了,就会导致网吧中部分电脑一起连不上外网,其实就是这些电脑共享同一个公网IP的原因。

image-20240508090552708

二、特殊IP地址

在众多IP中有一个特殊的IP需要我们记一下。

127.0.0.1,它也叫做 localhost,是回送地址,也称本地回环地址,其实也就表示本机,也就是我们自己电脑的IP,它永远只会寻找当前所在的本机。

疑问:假设 192.168.1.100 是我自己电脑的IP,那么这个IP跟 127.0.0.1 是一样的吗?

答案是不一样的。

假设现在我的局域网中有6台电脑,这些IP都是由路由器所分配的

image-20240508091109420

假设我自己的电脑现在是 192.168.1.100,现在我发送数据的时候,也往这个IP中发送数据,那你觉得它是怎么发的?

此时这个数据是先发到路由器,路由器再找到你当前的IP,这样才能实现数据的发送。

但是此时会有一个小细节:每一个路由器给你分配的IP是有可能不一样的。

image-20240508091206803

但是如果我往 127.0.0.1 发送数据,此时它是不经过路由器的。

你的数据在经过网卡的时候,网卡发现,你要往 127.0.0.1 发送数据,此时它就直接把这个数据给你自己发过来了,不管你是在哪个地方上网,永远都是这样的,这就是两个的区别。

所以:在以后我们自己写练习的时候,如果是自己给自己发数据,那就写 127.0.0.1 就行了。


三、常用的CMD命令

  • ifconfig:查看本机IP地址
  • ping:检查网络是否连通

如下图就是我自己电脑的IP

image-20240508091737952

接下来测试两台电脑之间网络是否畅通,例如现在在我的局域网里面,它有一个电脑的IP是 192.168.1.105,现在我的电脑正在测试跟这台电脑的网络是否畅通,它一共发送了四个数据包,四个数据包全部能接收到,没有丢失,那就表示我的电脑跟这台电脑的网络是畅通的。

image-20240508092102988

那我现在换一个,换成 192.168.1.106,在我的局域网里面现在是没有这个电脑的,那么在这个下面就会显示网络不通。

image-20240508092210669

ping 除了能检查局域网中网络是否畅通,还可以检查你的电脑跟外网是否畅通,例如现在我们可以 ping 一个百度。

要注意的是,现在我虽然ping的是一个网址,但是网址的底层逻辑其实也是一个IP。

image-20240508092311823
;