ip地址怎么换算子网掩码_什么是ip地址?

b1845dd4e8530be6a3947b25e9191bc6.png

提到“地址”,我们会想到快递,收发快递时候,得有发件人地址和收件人地址,才能保证快递能正确的送达目的地,比如这样

8a75428d2cf162c48d72b094c2246e61.png

ip地址其实就是互联网上的地址,全称Internet Protocol Address,我们在网上刷知乎啊,刷美剧啊,和师妹聊天啊,其实就是一个一个数据包在互联网上收发的过程。

知乎有个ip,我们电脑有个ip,这篇回答就从知乎发到了电脑上。

b站有个ip,我们电脑有个ip,后浪就从b站发到了电脑上。

师妹手机有个ip,我们电脑有个ip,师妹消息总是不来,不知道为什么。

那么,我们电脑的ip地址是什么样呢

ad3e96df17fa8914485eefac22ddbff5.png

百度一下,怎么查看ip地址,我们能看到这样的内容

ip地址分为ipv4和ipv6,当前主流是ipv4

可以看出现在这台电脑的ip地址是192.168.11.165

那么这个地址是怎么来的呢,我们打开电脑就开始刷知乎刷b站和师妹聊天,并没有设置地址呀

在我们网络里有个“dhcp服务器”,dhcp服务器的作用就是给各个电脑(或手机)自动分配ip地址。

第一步,电脑开机,没地址,会发出一个请求地址的数据包。这个数据包叫dhcp discover,是要发给dhcp服务器的,向dhcp服务器请求地址。

现在问题来了,是先有鸡还是先有蛋的问题。

f2dcd8e091d4de6efa6316881fcf1456.png

鸡是由蛋孵出来的,所以得先有蛋。

蛋是鸡下的,所以得先有鸡。

互联网上的报文必须有源地址和目标地址,所以得先有地址才能把数据包发出去。

现在要发个包给dhcp服务器,但是没有地址,这个包怎么发出去呢?

鸡和蛋的千古难题,无法考证

但是dhcp是这么做的

电脑发出的包,没地址没关系,就把源地址写成0.0.0.0,所以数据包中看到这个地址,说明源主机暂时还没有地址,但是为了遵循互联网协议标准,先把地址写上0.0.0.0

目标地址应该是dhcp服务器,但是dhcp服务器是谁也不知道呀,这里就把目标地址写成255.255.255.255,这个特殊地址代表“广播”,顾名思义,就是给所有人都发。

数据包的内容也很简单,意思就是“请dhcp服务器回答,我需要个地址”

那么无关主机收到,就会丢弃这个包,因为自己不是dhcp服务器,不回答。

dhcp服务器收到,那么就会履行他的职责,给电脑分配一个地址。

58aa35fa11aae7d0ce7a883af7593fe3.png

如图,通过抓包工具捕获的dhcp discover包,源地址是0.0.0.0,目标地址是255.255.255.255

现在看dhcp工作的第二步,发offer

dhcp服务器收到请求后,会给电脑分配地址,这也是通过一个数据包返回给电脑的。电脑收到这个包,就会根据dhcp协议为自己配上地址。

等下,问题又来了,刚才说了电脑还没地址,那么dhcp服务器是怎么把这个包发给电脑的的呢?

虽然电脑没ip地址,但是电脑有另外一个地址,“mac地址”,也就是前面那张图片上的“物理地址”,dhcp服务器也可以通过mac地址将数据包发给电脑,这样电脑收到后,就会给自己配上ip地址了。

听起来很复杂,既然用mac地址就可以,为什么非得配ip地址,这么麻烦

答案是这样的,虽然可以用mac地址通信,但是只限于本地通信,也就是一个很小的局域网,没办法加入互联网,所以也没办法刷知乎,看b站,和师妹聊天了。所以还是得有ip地址。

现在来看dhcp工作的第二步,也就是dhcp服务器给电脑发的dhcp offer包。

a529103f8182bc4491429def7295f161.png

这里看到目标mac地址

d1c4f928ff09030c748cb36347dbaaa8.png

打开offer包,会看到服务器准备给电脑分配的地址。

然后第三步,电脑会通过发送dhcp request包,确定使用这个地址。

服务器明明都把地址发过来了,为什么电脑还要再申请一次呢?

是因为网络中为了可靠性,可能会部署多台dhcp服务器,这样电脑可能会收到多个offer,到底使用哪个地址,则需要再发一个dhcp request来确认。服务器也是收到dhcp request后,才会真正的把这个地址分配出去。

最后一步,dhcp服务器通过ack包,真正的把地址分配给电脑

那么ip地址中的“子网掩码”是做什么用的呢,配置地址时,子网掩码是必不可少的

举个熟悉的例子

小明是大一新生,小明的学号是05510050433

小明看到另一个学号,立即可以知道另一个同学和自己是不是同班同学。

比如好看的女生小红05510050435是同班同学

好看的男生小蓝05510030313不是同班同学

怎么看出的呢,学号前面部分数字相同就是同班同学

学号大致分为两部分,前面部分是班级编号,后面部分是个人编号。

现在回到ip地址和子网掩码

电脑(或者手机、ipad、小爱同学)都要联网,联网就会有ip地址,ip地址一般是自动获取的,但是如果用手动配置的话,会发现必须填写子网掩码,否则是不让确认的。

b6ef8267757f7dae4826f8b14ac10baf.png

子网掩码的作用,是确定ip地址所在的网段。

小明必须知道自己的班级,电脑也必须知道自己的网段。

小明学号的前9位代表班级编号,这个是学校制定的

那么ip地址的前多少位代表网段呢,这个就得看子网掩码了。

ip地址分为两部分,前面部分叫“网络位”,类似于学号中的班级编号,只要两个ip的网络位相同,那么他们就是同网段。

ip地址后面的部分叫“主机位”,代表这个主机的个体编号,类似学号中老师每次点名喊的数字。

那么两个ip是否同网段,要看他们的网络位是否相同

192.168.1.199

255.255.255.0

这样的掩码,代表192.168.1.是网络位,另一个地址只要也是192.168.1开头,就是同网段了

192.168.1.199

255.255.0.0

这样的掩码,代表192.168.是网络位,另一个地址只要192.168开头就是同网段了

看到这里,应该已经发现规律了,子网掩码几个255,那ip地址的前几段就是网络位

可是实际情况往往错综复杂。

比如苹果手机热点给电脑分配的地址是这样的

ef34c36d47b0435fef21238ca6e0e752.png

发现掩码是3个255还带个240

在实际的工程项目中,也会做类似的网络规划,那么后面这个240又是怎么回事呢

这里需要把ip地址换成二进制来看,用win10 自带的计算器可以换算,先算完再来看原理。

打开打算器,选择“程序员”,输入172,可以得到172对应的二进制,然后再得到其他几个数的二进制。

2c60991e4b51f86ed33a16c59d971750.png

172=10101100

20=‭00010100‬

10=00001010

8=00001000

注意,每个数字都要凑齐8位的二进制,不够8位前面写0

换算完后,ip地址172.20.10.8变成了

10101100. ‭00010100‬. 00001010. 00001000

然后再换算掩码

255.255.255.240变成了

11111111.11111111.11111111.11110000

发现掩码非常整齐,前面全是1后面全是0

那这里怎么从掩码来得出网络位,其实非常简单,掩码有多少个1,ip地址的前多少位就是网络位,那么这个ip的网络位就是前28位

也就是10101100. ‭00010100‬. 00001010. 0000

如果另一个ip的二进制,前28位也是这样,那么就是同网段

当然,二进制很不友好,所以我们还可以计算出自己所在的网段的范围

那就是网络位固定下来,主机位从全0到全1就可以

10101100. ‭00010100‬. 00001010. 00000000到10101100. ‭00010100‬. 00001010. 00001111

换回十进制就是

172.20.10.0到172.20.10.15

所以,超过15的都不是同网段了。

用掩码算了半天的网段,那么问题来了,为什么要算网段?

因为对电脑老说,访问同网段的目标,和访问不同网段的目标,采取的通信方法不一样,他得先知道是否同网段,才能做下一步的动作。

如果目标是同网段,那么可以直接通信,直接发数据就好了。

如果目标不是同网段,那么不能直接通信,必须先交给一个中间人,也就是网关设备,由网关设备帮忙转发。

如果你看到了这里,百哥想请你帮个小忙:

1.帮我点赞,喜欢,收藏三连,方便你最快找到百哥,也让更多的人真正爱上ICT技术,学好ICT技术

2.关注我和专栏,这是一个会陪你至少10年的技术号,定期分享ICT技术。

3.关注我的直播课 百哥的直播 自助自取哦听百哥讲云计算 ,让你的技术之路走的更顺遂。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值