从PC1的e0/0/1接口进行抓包
客户端基于UDP、源端口68、目标端口67进行广播请求,源IP0.0.0.0,(无效地址,代表本地无地址)目标IP255.255.255.255;
从下面截图可以看出:
源mac为电脑mac,目标mac为ff:ff:ff:ff:ff:ff
源IP为0.0.0.0,目标IP为255.255.255.255
源端口为68,目标端口为67
服务器在收到客户端的请求后,回复提议,源端口67,目标端口68,源IP本地地址,目标IP为计划分给客户端的IP,主要还是靠目标的MAC地址来将提议发送给客户端(offer);
从下图可以看出:
源mac为DHCP服务器mac,目标IP为电脑PC1mac
源IP地址为192.168.1.254(DHCP服务器IP地址),目标IP地址为192.168.1.253(欲给电脑PC1分配的IP地址)
源端口为67,目标端口为68
客户端在收到提议后,若确定使用该IP,将应答服务器(request);
源mac为电脑pc1的mac,目标mac为ff:ff:ff:ff:ff:ff
源IP地址为0.0.0.0,目标IP地址为255.255.255.255
源端口为68,目标端口为67
客户端最终ACK确认后,该IP地址才可以被真正使用(ack)。
源mac为DHCP服务器的mac,目标mac为电脑PC1的mac
源IP地址为192.168.1.254(DHCP服务器的IP),目标IP为192.168.1.253(分配给电脑PC1的IP地址)
源端口号为67,目标端口号为68
注:过程中服务端与客户端均会使用ARP来进行地址冲突检测,确认该地址唯一时,才进行分配和使用。