浏览 2862 次
锁定老帖子 主题:网络协议
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-02
DHCP是对BOOTP的扩展,它的包格式和BOOTP也一样,这样它就可以使用BOOTP的中转发代理来发送DHCP包了,这使得BOOTP和DHCP之间可以实现互操作。对于BOOTP转发代理来说,发的是DHCP包还是BOOTP包,它根本分不清楚。它们使用的服务器端口号是67和68,但是有些地方还有些不同: DHCP定义了一种可以使IP地址使用一段有限时间的机制,在客户期限到了的时候可以重新分配这个IP地址。 DHCP为用户提供所有IP配置参数。 DHCP包长度比BOOTP包长度稍长。既然包比BOOTP的长,那也不是白带的,这多出的长度里包括了网络配置参数。 DHCP的包都比BOOTP的长,那协议也复杂了。DHCP有七种消息类型,而BOOTP只有两种。 下图中我们可以清楚地看到客户机请求获得网络地址和配置参数的最初几个步骤: 第一步的时候客户发出包的名称叫DHCPDISCOVER,而服务器返回包的名称叫DHCPOFFER。 1.BOOTP转发代理接收到请求包,并负责向DHCP其它网络内的DHCP服务器转发。 2.DHCP服务器以DHCPOFFER响应客户的要求,这个包内包括可用的IP地址和参数。 3.BOOTP转发代理接收包,并对它进行检查。如果它觉得没有问题,就向客户转发。 4.如果客户在发出DHCPOFFER包后一段时间内没有接收到回应,它有机会重新发送请求10次,否则就通知用户。客户机可以同时接收到许多个服务器的应答,它可以自己决定用哪一个。下图是客户决定了以后,向服务器发送应答时的情况。 5.当客户选定了某个目标服务器后,它会广播DHCPREQUEST包,用以通知选定的服务器和未选定的服务器。 6.转发工作仍然由BOOTP转发担任。 7.收到DHCPREQUEST包服务器会检查收到的包,如果包内的地址和提供的地址一致,证明现在客户机选择的是这台服务器提供的地址,如果不是,自己提供的地址被拒绝了。 8.被选定的服务器在接收到DHCPREQUEST包以后,因为某些原因可能不能向客户提供这个网络地址或参数,它可以向客户发送DHCPNAK包,如果可以提供则可以发送DHCPACK包。 客户在收到包后,检查内部的网络地址和租用时间,如果客户觉得这个包有问题,它可以发送DHCPDECLINE包拒绝这个地址,然后重新发送DHCPDISCOVER包。如果觉得没有问题,就可以接受这个配置参数。同样当客户接收到DHCPNAK包时,它也可以发送DHCPDISCOVER包。客户可以在租期到期之前释放网络地址,这通过发送DHCPRELEASE包来实现。 用户下一次可以再次获得相同的IP地址。在这一过程中,许多步骤就可以不用麻烦了,老客户当然要方便一点了。 1.客户在发送的DHCPREQUEST包内包括自己以前使用的IP地址。 2.此包由BOOTP转发代理转发。 3.DHCP服务器检查DHCPREQUEST包内包括的配置参数。 4.它如果是原来提供这个网络地址的参数的服务器,它会认出这些数来,并以DHCPACK包回应。 5.客户接收到DHCPACK包后,它可以接收或拒绝,如果拒绝它可以申请新的网络地址。 当然了,如果服务器觉得客户的请求是无效的,服务器会以DHCPNAK包响应,客户接收到这个包后,会重新会获得网络地址而发送DHCPDISCOVER包。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |