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

发布于:2007/5/30 8:46:38 | 597 次阅读

 
  [ ] 智能仪器网络中的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.


参与讨论
后参与讨论

//评论区

推荐阅读

智能网联汽车国际标准法规协调专家组(HEAG)召开工作会议

近年来智能网联汽车快速发展,新技术不断涌现,与相关产业融合度持续提升,正在推动全球汽车产业发生深刻变革。为应对此种形势,欧、美、日等汽车工业发达国家和地区都加大了智能网联汽车的国际标准法规协调的参与力度,在联合国世界车辆法规论坛(UN/WP.29)和国际标准化组织(ISO)层面,智能网联汽车相关国际标准法规协调活动正快速推进。 为更有效地支撑上述组织的国际标准法规协调活动,2017年全国汽车标准

0215jiejie | 发布于:2022-12-01 0评论 0赞

苹果推出搭载M2芯片的新款iPad Pro 799美元起售

据苹果官网,苹果推出搭载M2芯片的新款iPadPro。 11英寸wifi版起售价为799美元,wifi+蜂窝网络版起售价为999美元;12.9英寸wifi版起售价为1099美元,wifi+蜂窝网络版起售价为1299美元。

0215jiejie | 发布于:2022-10-19 0评论 0赞

新能源汽车领衔 “中国智造”加速登陆欧洲市场

全球五大车展之一巴黎车展时隔四年再度启幕。在这场被视为“全球汽车行业风向标”的盛会上,国内外汽车品牌云集,长城汽车、比亚迪等再次领衔中国汽车出海。 长城汽车欧洲区域总裁孟祥军表示:“欧洲是长城汽车最重要的海外市场之一,巴黎车展是长城汽车向欧洲市场展示GWM品牌和产品的最佳机会。长城汽车正在研究汽车行业碳排放的整个生命周期,到2025年,将推出50多款新能源产品,全力支持可再生能源使用,为全球用户

0215jiejie | 发布于:2022-10-19 0评论 0赞

严监管时代来临,电子烟“通配”大战走向何方?

针对通配烟弹厂商的一系列诉讼的结果,将对生产通配烟弹的品牌未来在电子烟行业的发展产生深远影响。 10月1日,《电子烟强制性国家标准》正式实施,中国电子烟监管全面生效。而在电子烟行业进入规范化、法治化阶段前夕,一场围绕着通配烟弹的争论在行业里发酵。 “通配”是电子烟从业者约定俗成的概念。换弹式电子烟由烟杆和烟弹组成,“通配”烟弹指的是非品牌商生产、可与品牌烟杆匹配使用的烟弹。多位业内人士表示,被

0215jiejie | 发布于:2022-10-19 0评论 0赞

Bourns 全新大功率分流电阻器

采用金属感应引脚,专用于大电流应用中进行精确测量 全新分流电阻器专为电池管理系统、大电流工业控制和电动汽车充电站 提供高可靠性、高成本效益的解决方案 美国柏恩Bourns全球知名电子组件领导制造供货商,宣布新增12款CSM2F系列功率分流电阻器,扩展其产品组合。全新系列采用铆接通孔金属传感引脚,可满足大电流应用中对电压测试点精确定位日益增长的需求。最新型Bourns?CSM2F系列分流电阻器

0215jiejie | 发布于:2022-10-18 0评论 0赞

请尊重元宇宙“这个筐”

元宇宙是个筐,啥都往里装,但区别在于有的像聚宝盆,有的像垃圾桶。国庆假期刚结束,中青宝“90后”董事长李逸伦便亲自上阵,玩起了元宇宙婚礼。靠着老板首秀和代言,中青宝顺势推出“MetaLove元囍”App,正式进军元宇宙婚礼赛道。 就产品而言,如同其他元宇宙产品,李逸伦的元宇宙婚礼“新奇与吐槽齐飞”:有人说是有趣的尝试,有人则认为像QQ炫舞结婚系统。要知道,QQ炫舞是一款推出了十余年的老游戏。

0215jiejie | 发布于:2022-10-13 0评论 0赞

边缘计算:突围商业模式痛点

截至8月末,中国5G基站总数达210.2万个,中国5G发展已经进入下半场。随着5G加速融入千行百业,互动直播、vCDN、安防监控等场景率先大规模落地,车联网、云游戏、工业互联网、智慧园区、智慧物流等场景也快速走向成熟,这些更大流量、更低时延、更高性能的场景涌现,对边缘计算的刚性需求势必爆发。 GrandViewResearch预测,即使在新型冠状病毒肺炎疫情肆虐全球的背景下,边缘计算和5G网络市

0215jiejie | 发布于:2022-10-13 0评论 0赞

商务部回应美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”

商务部新闻发言人10日就美商务部升级半导体等领域对华出口管制并调整出口管制“未经验证清单”应询答记者问。 有记者问:近日,美国商务部在半导体制造和先进计算等领域对华升级出口管制措施。同时,在将9家中国实体移出“未经验证清单”过程中,又将31家中国实体列入,请问中方对此有何回应? 对此,商务部新闻发言人回应称,中方注意到相关情况。首先,通过中美双方前一阶段共同努力,9家中国实体zui终

0215jiejie | 发布于:2022-10-13 0评论 0赞

TCL华星官宣与奔驰合作:推出全球首款横贯A柱的车载显示屏

今年1月,奔驰带来了VISIONEQSS概念车,其中控台采用了一块完全无缝的47.5英寸曲面显示屏,横贯整个A柱,令人印象深刻。今天,TCL华星正式官宣与奔驰达成合作,并认领了VISIONEQSS上这块全球首款横贯整个A柱曲面的车载显示屏。 根据TCL介绍,这款显示屏采用了完全无缝的超薄一体化设计,将仪表盘、中控与副驾娱乐显示融为一体,并能够与3D实时导航系统相辅相成。 同时,这块显示屏还采用

0215jiejie | 发布于:2022-10-12 0评论 0赞

半导体板块暴跌 谁最受伤

国庆假期后首日开盘,上证综指时隔5个月再次失守3000点,与此同时,半导体板块也再度走低,其中,北方华创、雅克科技等个股跌停。10月11日早盘期间,半导体板块持续下挫,北方华创、雅克科技再度跌停。截至下午收盘,北方华创、雅克科技维持跌停状态,华海清科、拓荆科技-U、盛美上海、清溢光电、海光信息的跌幅则超10%。同日,半导体板块中的119只个股中超五成呈现下跌趋势。 在半导体板块遭遇下挫的同时,北

0215jiejie | 发布于:2022-10-12 0评论 0赞