您现在的位置:智能制造网>技术首页>自动化资料

信息家电远程控制中*4/*6兼容的具体实现方案

2008年07月16日 10:01来源:烟台勾股通信技术有限公司 >>进入该公司展台人气:666

  1 信息家电远程控制系统的中用*4协议栈实现与*6进程的通信方法
  1.1 信息家电远程控制系统的结构
  其中上半部分分别是*4信息家电远程控制系统的结构和*6信息家电远程控制系统的结构,下半部分是两者兼容系统的结构。在*4和*6信息家电远程控制系统中信息家电通过无线网络接入点组成家电局域网,并接入Internet,而“家电控制中心”具有中心控制地位。
  在*4的家电局域网中,“家电控制中心”实质上是一个应用网关,其功能是组织家电局域网、进行数据格式的转换、管理用户和家电等,实现信息家电通过一个公有IP地址接入Internet,并配置有WWW服务器、Sendmail服务器、防火墙等。其中,WWW服务器中有访问各个家电的Web页,可以使用户通过Web浏览器远程访问应用网关,实现对家电的远程监控。
  在*6的家电局域网中,“家电控制中心”与网络家电具有同等的地位,其功能是对家电局域网的用户和网络家电的地址进行管理,同时对家电的电源开启进行管理,也可以将它看成是一个具有网管功能的网络家电。结合*6协议和网络家电的特点,考虑到嵌入式系统的功能不断增强,处理能力和存储容量也有了很大的提高,同时,也为了使家庭网络用户使用信息家电的更方便和更实用,在信息家电的嵌入式控制系统中直接配置WWW服务器、Sendmail服务器、防火墙等网络服务。其中,WWW服务器中包含有家电自身管理和控制的Web页,使用户可以通过Web浏览器实现对家电的远程监控,并能随时与厂家互动。
  在两种信息家电都有的兼容系统中,“家电控制中心”具有*4家电局域网和*6家电局域网“家电控制中心”的双重功能,并具有*4/*6双协议栈和*4/*6地址识别功能,能根据用户访问的目的IP地址自动调用*4或*6的协议栈和信息家电控制系统。在此家电局域网中,*4、*6的信息家电与“家电控制中心”的关系和独立的*4、*6家电局域网中的关系是一致的,单独来看,没有改变原来*4、*6家电局域网的结构。
  1.2 *4协议栈与*6的Web服务器通信的原理和方法
  *4的Web浏览器无法访问基于*6的网页是因为*4应用程序都使用struct sockaddr_in结构体存储服务器的*4地址(32位),在调用connect函数或者sendto函数的时候,如果了一个*6地址,而结构体中in_addr仅仅有4个字节,无法容纳*6的128位地址,所以不可能通过客户端*4协议栈与*6服务进程通信。如果在*4的Web浏览器中设置代理端口,相当于在浏览器和Internet之间增加了一层转发机制,代理一方面成为了浏览器发出请求的“服务器”端,另一方面又作为客户端向远端的服务器转发请求,既代理服务器一方面要接受来自浏览器的TCP连接请求,另一方面又必须能够向Web服务器发出TCP连接请求。
  虽然*4的Web浏览器无法访问基于*6的网页,但是浏览器在使用socket函数建立本地套接口时,都使用AF_INET参数使用本地*4协议栈,如果在具有*4/*6双协议栈的主机上,使用socket函数建立本地接口的时,能够使用AF_INET6标志使用*6协议栈,则通过这个协议栈就可以实现与*6服务进程的通信。一旦connect函数建立连接后,网络通信都简化成了文件的读写操作,此时与具体的协议栈和IP地址都没有关系。但是现在使用的客户端基本上都是*4的单协议栈,而且改写浏览器本身的代码是不现实的。
  这样,可以在“家电控制中心”增加一项“*4/*6双协议栈的代理服务”功能,浏览器通过代理端口的设置,将请求交给“家电控制中心”处理,通过编程处理让“家电控制中心”根据客户端请求的目的地址的不同调用系统的*4或*6协议栈,分别实现客户端与*4或*6进程的通信。
  2 信息家电远程控制中*4/*6兼容的实现
  2.1 信息家电控制中心中代理功能的设置和浏览器的选择
  在基于*4技术的家电远程控制系统中,一般家电用户可以直接输入“家电控制中心”的IP地址,直接访问到信息家电及其控制/状态页面。但在基于*6的信息家电中,每个家电都可具有自己的一个或多个IP地址,当然也可以具有域名。这样,在考虑信息家电远程控制*4/*6兼容问题时,不但要考虑用户的URL请求直接是IP地址,还要考虑用户对信息家电应用的域名。因此,在“家电控制中心”中首先要添加*4/*6双协议栈,并使之成为Web代理服务器,同时也要具有请求域名解析的功能,zui后,判断地址的格式,根据不同协议地址调用对应的协议栈。
  网络中客户端Web浏览器的代理端口设置为“家电控制中心”的对应端口,浏览器将URL中输入的内容交给“家电控制中心”处理,经过域名解析,如果是*4地址,则“家电控制中心”的代理不进行处理,按照原来的模式发送请求;如果是*6的地址,则“家电控制中心”的代理将请求交给*6处理模块,调用系统的*6协议栈,实现与*6的通信。图2是“家电控制中心”对*4客户端的URL处理流程图。
  2.2 浏览器的选择和多URL同时请求的解决方案
  在客户端选择使用Netscape浏览器,因为在通过手动设置代理联入Internet 的时,IE要对其URL中输入的内容进行语法检查,而Netscape则*不作任何检查,把从域名解析到数据转发的任务都交给“家电控制中心”,这样无论在URL中输入的是域名还是*4或*6地址,Netscape都会不加任何检查地送入“家电控制中心”,所以,客户端Web服务的接入和浏览工具选择Netscape。
  由于“家电控制中心”要对一个浏览器的多个请求或者多个浏览器的多个请求同时作出反应,在具体实现时,使用“家电控制中心”的daemon侦听端口,使“家电控制中心”遇到请求就产生子进程进行处理,即通过socket函数创建监听套接字listenfd,并调用bind和listen函数将其变成一个监听套接口,使系统内核接收来自客户的连接请求。“家电控制中心”调用accept函数等待客户端的连接。当客户端Web浏览器发起的TCP连接请求转发到“家电控制中心”处理时,TCP使用三次握手建立连接,当握手完毕时,accept函数返回,其返回值是一个称为已连接描述字(connetcted descrIPtor)的新描述字connfd。“家电控制中心”用fork函数为这个描述字开启一个子进程,并用此子进程处理连接和通信,同时父进程仍保持监听状态。
  另外,在实现“家电控制中心”的*4/*6双协议栈代理功能时,在处理监听套接口的同时,又要处理已连接套接口,还要处理多个描述字,在解决这个问题时用到了I/O复用技术。在I/O复用中,系统阻塞于select 调用,等待数据报套接口可读,当select返回套接口可读时,系统调用readline函数将数据报读到缓冲区中。在连接建立和传输过程中,“家电控制中心”为每一幅图片和每一个文本文件建立一个描述字,因此,在select的参数设置中要保证每一个描述字都是可读取的。
  3 测试和结论
  在测试环境中,家电局域网由“家电控制中心”、基于*4的信息家电和基于*6的信息家电。“家电控制中心”除具有用户管理、家电管理、信息格式转换等模块外,具有*4/*6双协议栈、Web代理服务、域名解析、*4/*6地址识别等功能。基于*4的信息家电和基于*6的信息家电都具有Web服务的功能,并有对应的控制/状态页面。客户端计算机是*4协议栈,Web浏览器使用Netscape,并将代理设置为“家电控制中心”。由于使用Netscape作为Web浏览器,操作系统均选用了Linux。在测试中,通过客户端实现了对两类家电的访问和控制。
全年征稿/资讯合作 联系邮箱:1271141964@qq.com
  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。


编辑精选

更多


宣传样本推荐图书

旗下子站

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备



关于我们|本站服务|会员服务|企业建站|旗下网站|友情链接| 兴旺通| 产品分类浏览|产品sitemap

智能制造网 - 工业4.0时代智能制造领域“互联网+”服务平台

Copyright gkzhan.comAll Rights Reserved法律顾问:浙江天册律师事务所 贾熙明律师

客服热线:0571-87756395加盟热线:0571-87759904媒体合作:0571-89719789

客服部:编辑部:展会合作:市场部:

关闭