当然了,新接入网络设备被发现的这个自动工作过程肯定不是由服务器主动检测出来的,如果服务器每时每刻都检测网络内是否有新接入的设备,这样也会对网络造成不小的压力。
实际上的工作方式是新接入网络的设备会在第一时间向网络发送一个动态主机配置协议数据包,这个包包含了他自己的唯一设备码,数据包会在网络内广播一直到被协议服务器接收到。
协议服务器在收到新设备的信息后,就会根据自己的配置信息,从从可用的 IP 地址池中选择一个未被分配的 IP 地址,并将其与其他配置参数一起封装在 DHCP Offer 数据包中,发送给请求设备。
其他配置参数一般包含子网掩码、默认网关、DNS 服务器地址等。子网掩码用于确定设备所在的网络范围;默认网关是设备访问其他网络的出口;DNS 服务器也就是域名服务器,他的地址则用于域名解析,让设备能够通过域名访问网络资源。
一个网络里面可能会有多个 DHCP 服务器,设备也可能会收到多个 DHCP 服务器发送的 Offer 数据包,但它通常只会选择第一个收到的 Offer,并向对应的 DHCP 服务器发送 DHCP Request 广播数据包,请求使用该服务器提供的 IP 地址及配置参数。
DHCP 服务器收到 Request 数据包后,会检查该 IP 地址是否仍然可用。如果可用,服务器会发送 DHCP ACK 确认数据包,正式将该 IP 地址及相关配置参数分配给请求设备,设备收到 ACK 数据包后,就可以使用分配到的 IP 地址等信息进行网络通信了。
分配完之后,服务器也会对已分配的 IP 地址进行管理和监控,一般会使用租约到期、主动释放、探测机制、网络心跳检测等机制来检测设备是否退网。
当设备不再需要使用分配到的 IP 地址时,例如设备关机或离开网络,服务器会自动回收该 IP 地址,以便重新分配给其他需要的设备。这样可以有效地利用有限的 IP 地址资源,避免 IP 地址的浪费。
域名服务器则主要提供域名解析的功能,虽然 IP 地址能够让网络的设备互相识别和通信,但 IP 地址是一串数字,难以记忆。域名服务器可以将人们容易记忆的域名转换为计算机能够识别和使用的 IP 地。
除了域名解析这个基本功能之外,其在后续还会有负载均衡、反向解析等功能。
负载均衡允许网络服务提供商配置多个 IP 地址对应同一个域名,这样能将用户对某个域名的访问请求分配到不同的服务器上,以分担服务器的压力,提高系统的整体性能和可靠性。