IP地址
* 0.0.0.0
当主机启动时,如初生的婴儿(0.0.0.0),没有身份信息,需要向外界大声哭泣,“大神,请赐予我一个名字吧”!(Discovery)
婴儿的呼唤被广播了出去,使用的是255.255.255.255这个地址。
* 255.255.255.255
255.255.255.255是一个特殊的广播地址,意味着所有的主机,有同学会好奇地问,是否是指互联网上所有主机?
No!因为255.255.255.255传播范围非常有限,到了广播域的边界(网关)会自动终结,如果把广播比作谣言,那么网关是什么呢?
“谣言止于智者”中的智者!
那么能听到婴儿哭泣的都有哪些人?
* 婴儿自己
婴儿听到也没有用,因为无法给自己起名字,左耳进右耳出。
* 大神
大神,就是这里的DHCP Server,专业给别人起名字,应答了婴儿的啼哭,是这么回应的:
“小宝贝,你的名字是192.168.0.2,喜欢吗?”(Offer)
* 广播域其它主机
其它主机也听到了,但是由于没有起名字(DHCP Server / Listening UDP Port 67)的功能,当作什么事没有。
婴儿的反应
婴儿听到了大神的天籁之音,停止了哭泣,于是很快乐地回复了大神的美意(Offer)
“大神,我很喜欢192.168.0.2这个名字,就它了” (Request)
大神最后的确认
看到了小婴儿接受了自己的推荐的名字,大神很愉快滴回复了小婴儿:
“祝一切都好,再见!” (ACK)
大神为了防止 192.168.0.2这个名字被其他小朋友使用,将这个名字标记为“已使用”状态。
0.0.0.0 在不同的情况下有不同的意义:例如,在socket bind中表示所有可用的interface,在网卡初始化时表示“还未获得IP”(注意可能不代表没有获得IP)。比如一个程序选择监听在0.0.0.0,则表示要监听在所有的自己可用的IP(所有的网卡)上;在运行dhcpclient之前将网卡IP设置为0.0.0.0,则表示此网卡要参与DHCP的IP申请过程。
255.255.255.255 表示3层广播的目标地址,在同一个广播域范围内所有主机都会接收这个包,同一个广播域范围内所有需要转发包的网络设备(例如交换机)应该转发这个包。广播域的尺寸可变,一般来说边界为一个3层关系的子网,或者一个未经配置的默认路由器等。
DHCP协议是用于分配IP地址的,需要满足几个特定条件:
1 申请者(客户机)可能没有自己的IP(续约时有IP);
2 申请者可能不知道DHCP服务器的地址(续约时知道);
3 申请者所在的网络上,可能有多个有效的DHCP服务器。
因此,除了续约情况,在申请者申请IP的时候,必须考虑到以下特点:
1 自己还未获得合法的IP地址;
2 自己不清楚DHCP服务器的地址;
3 要避免多个DHCP服务器同时为自己服务导致的争用。
所以,除了续约情况,并且没有3层IP helper转发时,DHCP的client与server之间的通讯为:
1 申请者发送discover指令,从0.0.0.0,发送到255.255.255.255,意在找到所有的可以服务的DHCP服务器。发送地址为0.0.0.0,因为申请者暂无IP;目标地址为255.255.255.255,因为申请者不知DHCP服务器地址。——发简历的过程
2 DHCP服务器回应offer指令,从自身的服务地址,发送到255.255.255.255,意在说明自己的服务地址,并同时提供一个IP地址作为客户机备选。发送地址为自身的服务地址,因为服务确实工作在此地址;目标地址为255.255.255.255,因为申请者暂无IP地址。——收聘书的过程
3 申请者在等待一段时间,以期待接收到所有可能的offer后,从中选择一个自己最中意的,并发送request指令,从0.0.0.0,发送到255.255.255.255,意在通知所有DHCP服务器自己期待使用这个IP地址。发送地址为0.0.0.0,因为申请者暂无IP;目标地址为255.255.255.255,因为申请者需要通知到所有的DHCP服务器。——准备去签合同
4 所有DHCP服务器收到request指令后,对比自己的地址池和offer记录。
4.1 如果确认此申请者选择了自己的IP地址,则将地址记录在已分配地址对照表中;并回应ack指令,从自身的服务地址,发送到255.255.255.255,意在说明此IP已确认可分配至此申请者使用。发送地址为自身的服务地址,因为服务确实工作在此地址;目标地址为255.255.255.255,因为申请者暂无IP地址。——合同签订成功
4.2 如果确认此申请者选择了自己的IP地址,但此IP已经无法使用,或者有其他情况导致服务器无法批准申请者的申请,则回应nak,从自身的服务地址,发送到255.255.255.255,意在说明此IP不能被申请者使用。发送地址为自身的服务地址,因为服务确实工作在此地址;目标地址为255.255.255.255,因为申请者暂无IP地址。——公司暂时不再招人,或者条件不同意,或者岗位已经被人先占了
4.3 如果确认此申请者未选择自己的IP地址,则忽略,或将已经提供offer的地址从暂存列表中清除,并无需回应任何信息。——申请者未选择此岗位