在智能仪器网络中实现DHCP动态IP地址分配》及本站其它信息均来自网络!
行业新闻技术文章解决方案电路图产品库厂商库供应信息求购信息外刊文摘
 技术文章 -> PCB电源单片机DSP设备与仪器EDA放大/转换存储器嵌入式接口与连接通讯与网络模拟技术其它技术文章
 解决方案 -> 汽车电子光电与显示测试测量计算机与外设仪器仪表通讯与网络视像设备消费电子工业控制其它解决方案
 产 品 库 -> 存储器嵌入式单片机电源通讯网络接口电路DSP视频音频EDA/PLD显示光电电测仪表传感与控制其它产品
 首页 -> 技术文章 -> 设备与仪器 -> 正文

在智能仪器网络中实现DHCP动态IP地址分配

 
  [ ] 智能仪器网络中的IP分配机制会影响到系统的灵活性和稳定性。该文在智能仪器中嵌入了单片机对于DHCP动态地址分配协议的处理,实现了智能仪器网络中的基于服务器/客户端的动态地址分配机制,实现了智能仪器IP的自动分配和获取。
    [关键词] 智能仪器;DHCP;动态分配;IP地址;TCP/IP;以太网


1    
  随着互联网技术的发展,以以太网作为通讯方式的智能仪器得到越来越广泛的应用。这种类型的智能仪器把TCP/IP协议嵌入现场智能仪器的ROM中,使信号的收、发都以TCP/IP方式进行,在数据采集、信息发布、系统集成等方面都以企业内部网络(Intranet)为依托。由于仪器作为网络中的独立节点存在,因而能够很自由的组成数据采集系统,并且在互联网上实现网络化的虚拟仪器和数据分析、管理系统。由于采用了以太网作为传输媒介,测试系统的拓扑结构灵活自由、易于改变,系统稳定性好。
  但是,事实上,对于以太网中的节点来说,IP地址是节点的标识,节点的IP地址受到网络划分的制约。一般的网络由一些子网组成,在多数情况下,每个子网拥有不超过255个节点。节点的IP地址与所在子网的网号是对应的。
  目前智能仪器在网络中的地址分配方式有静态分配IP和动态分配IP两种。静态分配是智能仪器 最常用的IP分配方式,仪器的IP地址在接入网络之前就被人为确定,它和仪器所在子网的子网号对应,以后不再改变。但是,一旦仪器网络被重新组合,某个仪器节点从一个子网内移到另一个子网时,将会发生仪器的IP地址与该子网号冲突的情况;另外,一旦这个网络中出现IP地址相同的计算机或者仪器时,就会发生IP地址冲突,这些情况不仅导致仪器网络的拓扑结构灵活程度受到制约,并进而影响到系统稳定程度。所以,更好的方案是在仪器网络里引入动态地址分配机制,根据系统的具体组合情况来自动确定智能仪器的IP地址。
2 仪器网络的动态IP分配  
  在文中所述的智能仪器网络中,采用了DHCP动态地址分配机制。DHCP是BOOTP的扩展,是基于客户端/服务器模式的一种动态指定IP地址和配置参数的机制。如图2—1所示,在每个子网内设置DHCP服务器。服务器端使用了Win2000服务器自带的DHCP服务器。DHCP控制台是管理DHCP服务器的主要工具,在安装DPCH服务时加入到管理行管理设置。
  智能仪器执行DHCP机制的客户端协议。它首先必须进行与网络中的计算机之间的IP层通讯。仪器上电之后,先要做DHCP请求DHCP服务器进行IP配置,从DHCP服务器端中取得自身的配置信息,包括IP、仪器所在子网掩码、网关和完成数据采集功能的服务器地址。
  在DHCP完成之后,仪器还须向数据采集服务器提供自己的各种信息,包括IP、ID(仪器的具体标识)、当前状态等。数据采集服务器得到仪器的信息后,将建立起ID-IP对应表,这样数据采集服务器就可以在网络上根据不同的仪器情况收集仪器的数据,并存入数据库。


3 智能仪器单片机实现动态地址分配流程
  智能仪器采用单片机进行客户端的DHCP协议处理时,需要实现的协议有:
    (1)ICMP回显应答:测试仪器接入网络正常。
  (2)ARP请求:作DHCP服务时保证获得的IP地址没有被别人使用。
  (3)ARP应答:仪器被访问的时候回答自己的IP地址。
  (4)UDP接收发送:实现DHCP协议的基础,同时用来作对仪器的控制操作。
  (5)TCP协议:仪器和计算机通信传输数据使用。保证数据传输的安全性。
    (6)DHCP协议:实现获取IP的过程。
  在DHCP协议中,单片机须处理DHCPDISCOV-ER、DHCPOFFER、DHCPREQUEST、DHCPDECLINE、DHCPACK、DHCPNAK、DHCPRELEASE共7种DHCP消息类型,仪器处理消息的流程如图3—1所示。其中,DHCP消息格式如表3—1。  
  申请IP的仪器首先在本子网段内广播一个DHCPDISCOVE消息,源端口为68,目的端口为67。随机生成“xid”字段作为本次通话的标识。”client i-dentifier”采用网卡的以太网地址。消息内包含希望租用的时间(options中将“IPAddressLeaseTime”设为0xffffffff,即永久租用)。还包括希望得到的网络配置参数,自身的IP和网关的IP(options中设置“Parameter Request List”项)。


  智能仪器将会接收到一个或多个服务器发来的DHCPOFFER提供地址和配置参数。选定第一个DHCPOFFER消息,比较Transaction ID字段是否和自己的相符,不符合则丢弃,接收另外的DHCPOFFER消息。若20s内没有收到任何所需的DHCPOFFER消息,重新广播DHCPDISCOVER。
  从DHCPOFFER消息中提取出服务器的“serveridentifier”以及“yiaddr”。
  然后智能仪器广播DHCPREQUEST消息,在这个消息中的“server identifier”字段就是DHCPOFFER中的“serveridentifier”,此消息中也包括希望获得的网络配置参数,且与DHCPDISCOVER中的设置要一致。而“Requested IPAddress”选项填写DHCPOFFER信息包中‘yiaddr’的内容,也就是服务器给仪器提供的IP地址。如果在规定时间内没有收到任何服务器的回应,它会再次发送DHCPREQUEST。如果一定次数后仍未收到任何服何器的回应,重新开始配置过程。
  仪器接收到包括配置参数的DHCPACK包,从中提取“yiaddr”、“subnet mask”和“router”信息,用ARP对接收到的IP进行验证,没有发现冲突时进行配置,初始化完成。
  如果发现有别的仪器或者计算机已经使用了这个地址,它向服务器发送DHCPDECLINE包,等待一段时间后重新开始配置过程。


  如果超时而未接收到DHCPACK或DHCPNAK包,仪器需要再次发送DHCPREQUEST。如果收到DHCPNAK消息或发送一定次数后还是没有收到DHCPACK或DHCPNAK包,仪器要返回初始状态,初始化过程失败,重新开始配置过程。
4 单片机程序设计  
   
单片机程序流程如图4—1所示。
  首先,initparameter()函数中,先生成一个4字节的随机数作为DHCP报文的xid字段。然后调用dodhcpdiscover()发送一个DHCPDISCOVER请求。下面是一个无限的循环,循环开始先取得网络上的报文并进行分析,若是BOOTREPLY报文,置haved-hcpreply=1。
  接下来根据单片机的不同状态执行不同的程序。
  定义单片机有两种状态,用status表示:status=0,单片机发完DHCPDISCOVER消息,正在等待DHCPOFFER的状态。status=1,单片机发完DHCPREQUEST消息,正在等待DHCPACK或DHCP-NAK的状态。
    (1)status=0
  如果有DHCP服务器的BOOTREPLY消息(havedhcpreply==1),分析消息的options字段,从中取得所需要的参数信息(消息类型、服务器标识
Server-identifier)。查看消息类型:



  ①DHCPOFFER,调用dodhcprequest()发送DHCPREQUEST消息,单片机状态变为1(status=1)。  ②不是DCHPOFFER,丢弃该报文,继续等待DHCPOFFER消息的到来,20s内没有收到DHCPOF-FER重发DHCPDISCOVER。
    (2)status=1
  如果有DHCP服务器的BOOTREPLY消息(havedhcpreply==1),分析消息的options字段,从中取得所需要的参数信息(消息类型、子网掩码、网关)。查看消息类型:
  ①DHCPNAK,20s后重发DHCPDISCOVER,状态变为0。
  ②DHCPACK,从字段yiaddr中得到分配的IP地址,调用doarpcheck()函数检查该IP地址是否已被使用。若已被使用,调用dodhcpdecline()发送DHCP-CLINE消息到服务器,重发DHCPDISCOVER,状态变为0。若未被使用,将此IP作为自己的IP地址,配置完成,返回。
  ③不是DHCPNAK或DHCPACK,丢弃该报文。
20s内没有收到DHCPACK或DHCPNAK重发DHCPREQUESET,3次后仍没有收到重发DHCPDIS-COVER,状态变为0。
5 结 论  
  在智能仪器网络中引入了DHCP动态地址分配机制,成功的解决了智能仪器网络中的IP地址分配问题,自动避免了IP地址冲突情况的出现,实现了仪器在网络中的随意组合,提高了系统的稳定性。

参考文献
[1] Douglas E.Comer.用TCP/IP进行网际互联[M].电子工业出版社.
[2] W.Richard Stevens.TCP/IP详解[M].机械工业出版社,2000,4.
[3] 宋 莉,贾振元,等.基于网络的分布式虚拟仪器测试系统[J].仪表技术与传感器,2002.


()
Google
 >> 最近更新
 • 上海贝尔阿尔卡特TriplePlay解决方案
 • 普天TD-SCDMA整体解决方案
 • 烽火通信智能光网络整体解决方案
 • 安捷伦协议分析仪和试验器E2960B系列助力PCIe 2
 • TI数字光端机方案
 • 中兴通讯xPON系统的典型应用
 • 中兴通讯ICT综合解决方案
 • 频谱可用性对移动电视解决方案的影响
 • 完整的GPS+蓝牙接收系统解决方案
 • 基于T-DMB标准的手机电视解决方案
 • 手机中的电容式传感解决方案
 • 泰克整套针对IMS的性能测试和网络监测方案
 • 安捷伦全新多重播放测量解决方案满足多种需求
 • 如何才能提高无线网络覆盖的解决方案
 • 华硕服务器助力中小企业VoIP话音系统案例
 • 傲威通信:电信级虚拟运营商VoIP解决方案
 • 大学城视频直播系统解决方案(上)
 • 大学城视频直播系统解决方案(下)
 • WiMAX中小企业综合接入的优势
 • 校园网IP地址冲突的分析以及解决的方案
Copyright © 2005-2008 555DZ.com 联系站长:55dz@163.com