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

今天这篇文章 , 很有意思 , 它来源于我曾经的一次真实面试里的其中一个小问题 。 当时是终面 , 面我的是那家公司的技术顾问 , 在面试前hr还让我看了他的履历 , 是一位1996年就进了麻省理工计算机系的大佬 。
属实有被震惊到 , 什么概念?1996年 , 没记错的话那是个用BP机和大哥大的年代?有几个人能用上电脑?又有几个人有这种机会能出国深造 。
这是哪部爽文小说的主人公剧情?
就算放到现在 , 这也是非常强的事情 。
我这辈子是没希望了 , 也不知道我的儿子或者孙子辈有没有机会能做到 。
也就是说 , 这位大佬 , 至少领先了我两代人 。
那一天 , 我感受到了 , 那种跨越时代的碾压感 。
好了 , 不讲骚话了 , 直接开始主题吧 。
我们知道 , 如果你知道某台电脑的IP , 就可以向这个IP发起连接请求 , 建立连接后就可以操作收发数据 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
五层网络协议对应的消息体变化分析
要发送的数据 , 会在网络层里加入IP头 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
ip报头
这里面最重要的是发送端和接收端的IP地址 。 这个IP地址就像是一个门牌号一样 , 有了它 , 数据包就能在这个纷繁复杂的网络世界里找到该由谁来接收这个数据包 。
所以说上面的网络通信离不开IP 。
假设我有一台新买的电脑 , 还没联网呢 , 这时候拿着新买的网线 , 插入网线口 , 网线插口亮起来了 。
然后就可以开始用它上网了 。
那么问题来了 。
刚插上网线 , 电脑怎么知道自己的IP是什么?怎么就突然能上网了呢?
这个话题 , 我们从DHCP聊起吧 。 DHCP是什么
插上网线之后 , 获得IP的方式主要有两种 。
第一种是 , 自己手动在电脑里配 。 像下图那样 , 是macOS的一个截图 , 在选择手动配置之后 , 除了IP地址还需要配上子网掩码和路由器的地址 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
手动配IP
这就很不科学了 , 电脑又不只是卖给程序员 , 这几个词对于大部分普通人来说 , 比赋能抓手闭环这种黑话还要难理解 。
大部分人没事都不应该去配这玩意 。
有没有办法可以让这些IP信息自动获得?
有 , 这就是第二种获取IP的方式 , DHCP(DynamicHostConfigurationProtocol , 动态主机配置协议) 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
DHCP自动生成IP
通过DHCP , 在联网之后可以自动获取到本机需要的IP地址 , 子网掩码还有路由器地址 。 DHCP的工作原理
DHCP的工作原理也非常简单 。
说白了 , 就是向某个管IP分配的服务器 , 也就是DHCP服务器 , 申请IP地址 。 其实一般家里用的路由器就自带这个功能 。
整个操作流程分为4个阶段 。
今天这篇文章|刚插上网线,电脑怎么知道自己的ip是什么
文章图片
DHCP协议
DHCPDiscover:在联网时 , 本机由于没有IP , 也不知道DHCP服务器的IP地址是多少 , 所以根本不知道该向谁发起请求 , 于是索性选择广播 , 向本地网段内所有人发出消息 , 询问"谁能给个IP用用" 。
DHCPOffer:不是DHCP服务器的机子会忽略你的广播消息 , 而DHCP服务器收到消息后 , 会在自己维护的一个IP池里拿出一个空闲IP , 通过广播的形式给回你的电脑 。
DHCPRequest:你的电脑在拿到IP后 , 再次发起广播 , 就说"这个IP我要了" 。