今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么( 四 )


得到DHCPACK之后立马就能使用这个IP了吗?
这就好像在问 , 拿到offer之后你是第一时间就去上班吗?
不 。
你会先告诉你的同事同学朋友 , 甚至会发朋友圈 。
你的机子也一样 。
在得到DHCPACK之后 , 机子不会立刻就用这个IP 。
而是会先发三条ARP消息 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
大家知道ARP消息的目的是通过IP地址去获得mac地址 。 所以普通的ARP消息里 , 是填了IP地址 , 不填mac地址的 。
但这三条ARP协议 , 比较特殊 , 它们叫无偿ARP(GratuitousARP) , 特点是它会把IP和mac地址都填好了 , 而且填的还是自己的IP和mac地址 。
目的有两个 。
一个是为了告诉本地网段内所有机子 , 从现在起 , xxIP地址属于xxmac地址 , 让大家记录在ARP缓存中 。
另一个就是看下本地网段里有没有其他机子也用了这个IP , 如果有冲突的话 , 那需要重新再走一次DHCP流程 。
在三次无偿ARP消息之后 , 确认没有冲突了 , 才会开始使用这个IP地址进行通信 。
这种行为 , 实际上就跟你拿了offer之后发了这么个朋友圈没啥区别 。
而且 , 还连发了三条 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
别骂了 , 图是P的 , 我没这么发过
秀offer , offer冲突了不可怕 。 秀对象秀冲突了才可怕 。
如果你朋友圈里有这种人 , 答应我 , 删了吧 。 总结
电脑插上网线 , 联网后会通过DHCP协议动态申请一个IP , 同时获得子网掩码 , 路由器地址等信息 。
DHCP分为四个阶段 , 分别是Discover , Offer , Request和ACK 。 如果曾经连过这个网 , 机器会记录你上次使用的IP , 再次连接时优先使用原来的那个IP , 因此只需要经历第三第四阶段 。
DHCP是应用层协议 , 考虑到需要支持广播功能 , 底层使用的是UDP协议 , 而不是TCP协议 。
DHCP分配下来的IP是有可能跟某台手动配置的IP地址重复的 。
DHCP得到IP之后还会发3次无偿ARP通告 , 在确认没有冲突后开始使用这个IP 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么】最后给大家留个问题吧 。 我们上面的IP都是从DHCP服务器上申请的 , 在服务器返回DHCPOffer的时候 , 可以看到上面写了DHCP服务器的IP 。 比如192.168.31.1 , 这明显是个局域网内的IP , 但这能说明 , 你的DHCP服务器一定在这个局域网里吗?
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片