另外一个小细节不知道大家注意到没 , 上面在提到DHCPOffer阶段时 , 提到的是DHCP服务器会使用广播的形式回复 。 但抓个包下来却发现并不是广播 , 而是单播 。
其实 , 这是DHCP协议的一个小优化 。 原则上大家在DHCPoffer阶段 , 都用广播 , 那肯定是最稳的 , 目标机器收到后自然就会进入第三阶段DHCPRequest 。 而非目标机器 , 收到后解包后发现目的机器的mac地址跟自己的不同 , 也会丢掉这个包 。
但是问题就出在 , 这个非目的机器需要每次都在网卡收到包 , 并解完包 , 才发现原来这不是给它的消息 , 这 。。。 真 , 有被打扰到 。
如果本地网段内这样的包满天飞 , 也浪费机器性能 。
如果能用单播 , 那当然是最好的 。 但这时候目的机器其实并没有IP地址 , 有些系统在这种情况下能收单播包 , 有些则认为不能收 , 这个跟系统的实现有关 。 因此 , 对于能收单播包的系统 , 会在发DHCPDiscover阶段设一个Broadcastflag=0(unicast)的标志位 , 告诉服务器 , 支持单播回复 , 于是服务器就会在DHCPOffer阶段以单播的形式进行回复 。
文章图片
Discover要求使用单播回复是不是每次联网都要经历DHCP四个阶段?
只要想联网 , 就需要IP , 要用IP , 就得走DHCP协议去分配 。
但大家也发现了 , DHCP第一阶段和第二阶段都可能会发广播消息 。 对于家用电脑还好 , 插个网线 , 之后就雷打不动 。 但像手机这样的移动设备 , 是要带着到处跑的 , 坐个地铁 , 进个电梯 , 公司里到处走走 , 都可能会涉及到网络切换 。
这每次都要来一个完整的四阶段 , 各种广播消息满天飞 , 其实对网络环境不太友好 。
于是问题叒来了 , 是不是每次联网都要经历DHCP四个阶段?
当然不需要 。
我们会发现每次断开wifi再打开wifi时 , 机子会经历一个从没网到有网的过程 。
这时候去抓个包 , 会发现 。
文章图片
其实只发生了DHCP的第三和第四阶段 。 这是因为机子记录了曾经使用过192.168.31.170这个IP , 重新联网后 , 会优先再次请求这个IP , 这样就省下了第一第二阶段的广播了 。
另外需要注意的是 , 抓包图里DHCPRequest之所以出现两次 , 是因为第一次Request发出后太久没得到回应 , 因此重发 。 DHCP分配下来的IP一定不会重复吗?
一般来说DHCP服务器会在它维护的IP池里找到一个没人用的IP分配给机子 ,
这个IP如果重复分配了 , 那本地网段内就会出现两个同样的IP , 这个IP下面却对应两个不同的mac地址 。 但其他机器上的ARP缓存中却只会记录其中一条mac地址到IP的映射关系 。
于是 , 数据在传递的过程中就会出错 。
因此本地网段内IP必须唯一 。
那么DHCP分配下来的IP有没有可能跟别的IP是重复的?
都这么问了 , 那肯定是可能的 。
有两个常见的情况会出现IP重复 。
文章开头提到 , IP是可以自己手动配的 , 自己配的IP是有可能跟其他DHCP分配下来的IP是相同的 。 解决方案也很简单 , 尽量不要手动去配IP , 统一走DHCP 。 或者在DHCP服务器里维护的IP范围里 , 将这条IP剔除 。
一个本地网段内 , 是可以有多个DHCP服务器的 , 而他们维护的IP地址范围是有可能重叠的 , 于是就有可能将相同的IP给到不同的机子 。 解决方案也很简单 , 修改两台DHCP服务器的维护的IP地址范围 , 让它们不重叠就行了 。
不过吧 , 上面的解决方案 , 都需要有权限去修改DHCP服务器 。
- 今天|红魔8pro+氘锋透明版图赏
- 折叠屏|折叠屏手机为什么还没成为主流?
- 雷鸟|超大屏电视不贵了!75英寸低至2799元,85英寸不高于4999元
- 投影仪|坚果p3s投影仪测评,随身携带影院
- 固态硬盘|支付宝欠款被起诉了该怎么办?
- 今天|苹果官网上线跨年福利优惠活动,却被吐槽太没诚意
- 微信 iOS版8.|微信灰度测试文章“划线”功能看到金句可转发给好友
- 微信|iPhone微信主题怎么设置?
- 英特尔|2022年混过的那些SAP项目
- dbc|非工业级流量计应用