首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

DHCP的若干原理解释(2)

DHCP的若干原理解释(2)

前面反复提到DHCP Message Type项,这里列出所有DHCP协议报文的种类。DHCP协议采用CLIENT-SERVER方式进行交互,其报文格式共有8种,具体含义如下:
1:DHCPDISCOVER(0x01),此为Client开始DHCP过程的第一个报文
2:DHCPOFFER(0x02),此为Server对DHCPDISCOVER报文的响应
3:DHCPREQUEST(0x03),此报文是Slient开始DHCP过程中对server的DHCPOFFER报文的回应,或者是client续延IP地址租期时发出的报文
4:DHCPDECLINE(0x04),当Client发现Server分配给它的IP地址无法使用,如IP地址冲突时,将发出此报文,通知Server禁止使用IP地址
5:DHCPACK(0x05),Server对Client的DHCPREQUEST报文的确认响应报文,Client收到此报文后,才真正获得了IP地址和相关的配置信息。
6:DHCPNAK(0x06),Server对Client的DHCPREQUEST报文的拒绝响应报文,Client收到此报文后,一般会重新开始新的DHCP过程。
7:DHCPRELEASE(0x07),Client主动释放server分配给它的IP地址的报文,当Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。
8:DHCPINFORM(0x08),Client已经获得了IP地址,发送此报文,只是为了从DHCP SERVER处获取其他的一些网络配置信息,如route ip,DNS Ip等,这种报文的应用非常少见。
是一个运行IPCONFIG/RELEASE后释放IP的报文,从图中可以看出DHCP Message Type是7,他的作用是主动释放server分配给它的IP地址的报文,Server收到此报文后,就可以回收这个IP地址,能够分配给其他的Client。
上面提到的都是在已经开机的情况下获得的报文,如果计算机重新启动,是不是完全按照文章提到的四步得到IP参数。
其中包含关机前获得的IP=192.168.0.22,这是不同与前面提到的 10.177.124.X段的IP。原来客户机保留了上一次获得的地址,客户机在重新启动时,如果租用期未超过50%,它就会认为它已经知道该与哪台 DHCP服务器进行联系,于是就跳过前两步,并发送另一个DhcpRequest报文给同一个服务器。如果该IP地址仍然可用的话,该DHCP服务器将给 这台客户机返回另一个确认消息。 同样,DHCP服务器上也会保留(在租用期内的)客户机的地址。如果你的DHCP服务器中的租用期设的足够长,你就会发现,重启一台客户机后,客户机总是 得到同一个地址。这正是由于客户机、服务器能保存已分配地址所造成的。
如果一台客户机未从该DHCP服务器获取过地址,或者它获得的地址已过期,那么它将需要经过全部四个步骤才能得到一个IP地址。
由于图太多没有将图上传。
###################################################################

DHCP RFC
2009-09-02 13:26
有幸拜读了DHCP RFC文档,只有一句话,真不是写个人看得.飘忽不定,像做广告般的参考xxx参考xxx.无语.

DHCP的报文格式
   尝试的翻译了点,实在头大.能懒就懒,这是我一贯的风格,没办法大多数就都还是copy的e文,当做是学英语喽^_^
DHCP的报文格式,如图1,


OP(1)

Htype(1)

Hlen(1)

Hops(1)

Transaction ID(4)

Seconds(2)

Flags(2)

Ciaddr(4)

Yiaddr(4)

Siaddr(4)

Giaddr(4)

Chaddr(16)

Sname(64)

File(128)

Options(variable)

(图1 DHCP的 报文格式)

  • OP:若是client送给server的封包,设为1,反向为2;
  • Htype:硬件类别,ethernet为1;
  • Hlen:硬件长度,ethernet为6;
  • Hops:若数据包需经过router传送,每站加1,若在同一网内,为0;
  • Transaction ID:事务ID,是个随机数,用于客户和服务器之间匹配请求和相应消息;
  • Seconds:由用户指定的时间,指开始地址获取和更新进行后的时间;
  • Flags:从0-15bits,最左一bit为1时表示server将以广播方式传送封包给 client,其余尚未使用;
  • Ciaddr:用户IP地址;
  • Yiaddr:客户IP地址;
  • Siaddr:用于bootstrap过程中的IP地址;
  • Giaddr:转发代理(网关)IP地址;
  • Chaddr:client的硬件地址;
  • Sname:可选server的名称,以0x00结尾;
  • File:启动文件名;
  • Options:,厂商标识,可选的参数字段
继承事业,薪火相传
返回列表