dhcp资料

来源:互联网 发布:vm虚拟机没有网络 编辑:程序博客网 时间:2024/06/15 22:11
DHCP具体是如何工作的?         1.当一个client接入网络的时候,没有有效的IP地址,为了参与通信,于是它发出DHCPdiscover数据包进行请求。因为它不知道自己属于哪一个网络,所以只能把源IP字段置为0.0.0.0,同时他也不知道谁是DHCP服务器,所以把目标IP置为255.255.255.255。从数据链路层的封装来看,client是知道自己的MAC地址的,所以在源MAC字段,填写的是自己的MAC地址,由于不知道DHCP服务器的MAC地址,所以置为全f,进行泛洪。这里需要注意的是,client使用的UDP端口号是68,server使用的UDP端口号是67,因此源端口号是68,目标端口号是67。当DHCP discover发出去之后,如果在1s之内没有收到响应,然后发送第二个DHCPdiscover,如果间隔9s还是没有收到的话,则发送第三个DHCPdiscover,如果间隔13s的话还没有收

到DHCPdiscover,则发送第四个DHCP discover,如果16s之内还没有收到回应,则宣告没有找到DHCP服务器(后三个间隔都会加上1-1000ms的随机时延),于是从169.254.0.0/16这个网段获取一个安慰地址(总不能忙活了半天啥都没拿到)。但是,client还不死心,间隔5分钟依然会发送一次DHCP discover,一直持续到获得有效地址或者关机。         2.当DHCP服务器收到DHCP discover的时候,会检查自己的IP地址池,如果有可分配的IP,则把分配出来的ip地址和一些配置信息(比如租约,子网掩码,网关一类的东西)通过DHCP offer广播出去。这里二层和三层的目标地址仍然都使用的是广播地址,源地址使用的DHCP server自己的MAC地址和IP地址,这样做的原因是通知域内的所有client这个ip地址将被分配。        3.如果有多个DHCP offer进行了响应,则client会选择最先收到的那个,并且会向网络发送一个DHCP request,来表明自己使用的是哪个DHCP服务器提供的IP,因此,这次也是广播。目标三层地址使用广播地


后续有时间继续补充

0 0
原创粉丝点击