DHCP协议——IP是如何来的
我们知道,一台主机想要和其他主机进行通信,必须要有IP地址。那么,这个IP地址是怎么来的呢?和MAC地址不同的是,当你买了台笔记本电脑时,MAC地址就存储在网卡的只读存储器里,但IP地址是没有的。所以,IP地址需要靠你自己去设定。但自己配置需要了解IP地址的知识,需要配置IP地址、子网掩码以及网关地址等。所以,一般用户可能不会去配置IP。绝大部分情况下都是使用了动态主机配置协议DHCP去自动获取IP地址等信息。
DHCP的工作流程有四个步骤,分别是
- DHCP discover:新主机发送广播包,说自己需要分配一个IP
- DHCP offer:dhcp server收到了请求,发送一个广播包,告诉新主机被分配的ip等信息。
- DHCP request:新主机收到dhcp server的消息,知道自己有了新ip。发送广播包,告诉dhcp server,自己知道了新分配的ip。
- DHCP ack:广播一个消息包,告诉这个网络里的其他主机有新朋友加入了。
DHCP DISCOVE
当一台新主机(MAC地址是00:0b:82:01:fc:42)刚加入到一个网络时,这时候它是没有IP地址的,所以它需要去发送一个广播包,让这个网络的管理员DHCP SERVER收到数据包(dhcp server是专门用来分配ip及管理ip的)。广播包格式如下图
这里补充一个知识点:255.255.255.255是一个特殊的ip地址,做广播用途。但它广播的范围是有限了,传播到了网关就会停止传播。
DHCP OFFER
当dhcp server收到Boot Request时,就知道有新来的主机需要分配IP了,这个时候dhcp server也发送一个广播包(因为新来的主机还没有分配到IP),里面的信息是分配给新来主机的IP、子网掩码、租期等信息。
DHCP REQUEST
新主机收到了来自dhcp server的消息,知道了自己被分配到的IP,但这个时候,还不能用,必须要告诉dhcp server,我已经收到了ip地址。所以,还是需要发广播包告诉dhcp server。
DHCP ACK
当dhcp server收到boot request消息后,会广播返回给客户机一个 DHCP ACK 消息包,表明已经接受客户机的选择,并将这一 IP 地址的合法租用信息和其他的配置信息都放入该广播包,发给客户机,欢迎它加入网络大家庭。
至此,新主机有了自己的IP地址,之后发送数据包都会带上自己的IP了。