家庭云实验室 HomeCloud Lab | 宽带实验室 Broadband Lab

 家庭云实验室   
  HomeCloud-Lab.com 

 

   关于 | 论坛 | 应用平台 | 下载
您当前位置:网站首页 >> 家电控制 >> 信息家电远程控制中IPv4/IPv6兼容的实现方案

信息家电远程控制中IPv4/IPv6兼容的实现方案

2013-08-23 22:44:00 来源:宽带实验室 浏览:3204
0 引言

  随着现代信息技术和家电控制技术的融合与发展,现代家庭也将加入“信息化、自动化、网络化”的行列,“通过Internet远程访问由家用电器组成的局域网”已成为未来家庭的一个重要标志,通过Web浏览器实现远程控制家电运行和查看家电运行状态的功能也是家电控制发展的一个方向。但是,现在使用的 IPv4,无论从计算机本身的发展,还是从Internet的规模和网络传输速率、服务质量(Qos)、传输安全性等方面来看,都已经很不适用了,其主要的问题是:一、32bit的IP地址很快就要耗尽,PDA、无线设备、3G移动电话等新技术的应用,使IP地址短缺的矛盾更加激化,甚至汽车、冰箱都需要一个全球单播地址连到Internet中去,IPv4的地址空间满足不了这些需求;二、网络的服务质量(Qos)和安全性难以满足用户不断增长的需求。

  IPv6是在1999年完成IETF要求的协议审定和测试的下一代Internet协议,它保留了IPv4许多赖以成功的特点,同时具备以下新特性:一、全新的报文结构,报文头包括固定头部和扩展头部,使路由器在处理协议头时效率更高。二、巨大的地址空间,128bit的IP地址能使世界上每一个人拥有5.7×1028个IPv6地址,并且地址配置更加简化。三、对Qos更好的支持,IPv6的包头中有流标签字段,使路由器可以不打开传送的内层数据包就可以识别流。四、安全性好,另外,IPv6还支持IPSec,具有邻居发现协议等。

  在网络今后的一段发展时间中,IPv4将逐步被IPv6所取代,但构建在IPv4或IPv6技术基础之上的信息家电仍将共存。在信息家电的远程控制系统中,实现IPv4/IPv6的无缝过渡和兼容也将是一个热门研究课题。由于在信息家电的远程控制系统中一般都有一个信息家电控制中心进行家电局域网的组织和管理功能,而且是通过客户端Web浏览器远程控制家电的运行和查看家电运行的状态。本文在此基础上,分析了IPv4/IPv6协议栈对域名解析地址格式处理方法的基础上,提出并实现了一种通过合并信息家电控制中心,并增加双协议栈和代理等功能实现信息家电远程控制的IPv4/IPv6兼容的方法。

1 信息家电远程控制系统的中用IPv4协议栈实现与IPV6进程的通信方法

  1.1 信息家电远程控制系统的结构



图1信息家电远程控制系统的结构示意图


  图1是信息家电远程控制系统的结构示意图,其中上半部分分别是IPv4信息家电远程控制系统的结构和IPv6信息家电远程控制系统的结构,下半部分是两者兼容系统的结构。在IPv4和IPv6信息家电远程控制系统中信息家电通过无线网络接入点组成家电局域网,并接入Internet,而“家电控制中心”具有中心控制地位。

  在IPv4的家电局域网中,“家电控制中心”实质上是一个应用网关,其功能是组织家电局域网、进行数据格式的转换、管理用户和家电等,实现信息家电通过一个公有IP地址接入Internet,并配置有WWW服务器、Sendmail服务器、防火墙等。其中,WWW服务器中有访问各个家电的Web页,可以使用户通过Web浏览器远程访问应用网关,实现对家电的远程监控。

  在IPv6的家电局域网中,“家电控制中心”与网络家电具有同等的地位,其功能是对家电局域网的用户和网络家电的地址进行管理,同时对家电的电源开启进行管理,也可以将它看成是一个具有网管功能的网络家电。结合IPv6协议和网络家电的特点,考虑到嵌入式系统的功能不断增强,处理能力和存储容量也有了很大的提高,同时,也为了使家庭网络用户使用信息家电的更方便和更实用,在信息家电的嵌入式控制系统中直接配置WWW服务器、Sendmail服务器、防火墙等网络服务。其中,WWW服务器中包含有家电自身管理和控制的Web页,使用户可以通过Web浏览器实现对家电的远程监控,并能随时与厂家互动。

  在两种信息家电都有的兼容系统中,“家电控制中心”具有IPv4家电局域网和IPv6家电局域网“家电控制中心”的双重功能,并具有 IPv4/IPv6双协议栈和IPv4/IPv6地址识别功能,能根据用户访问的目的IP地址自动调用IPv4或IPv6的协议栈和信息家电控制系统。在此家电局域网中,IPv4、IPv6的信息家电与“家电控制中心”的关系和独立的IPv4、IPv6家电局域网中的关系是一致的,单独来看,没有改变原来 IPv4、IPv6家电局域网的结构。

  1.2 IPv4协议栈与IPV6的Web服务器通信的原理和方法

  IPv4的Web浏览器无法访问基于IPv6的网页是因为IPv4应用程序都使用struct sockaddr_in结构体存储服务器的IPv4地址(32位),在调用connect函数或者sendto函数的时候,如果指定了一个IPv6地址,而结构体中in_addr仅仅有4个字节,无法容纳 IPv6的128位地址,所以不可能通过客户端IPv4协议栈与IPv6服务进程通信。如果在IPv4的Web浏览器中设置代理端口,相当于在浏览器和 Internet之间增加了一层转发机制,代理一方面成为了浏览器发出请求的“服务器”端,另一方面又作为客户端向远端的服务器转发请求,既代理服务器一方面要接受来自浏览器的TCP连接请求,另一方面又必须能够向Web服务器发出TCP连接请求。

  虽然IPv4的Web浏览器无法访问基于IPv6的网页,但是浏览器在使用socket函数建立本地套接口时,都使用AF_INET参数指定使用本地 IPv4协议栈,如果在具有IPv4/IPv6双协议栈的主机上,使用socket函数建立本地接口的时,能够使用AF_INET6标志指定使用IPV6 协议栈,则通过这个协议栈就可以实现与IPV6服务进程的通信。一旦connect函数建立连接后,网络通信都简化成了文件的读写操作,此时与具体的协议栈和IP地址都没有关系。但是现在使用的客户端基本上都是IPv4的单协议栈,而且改写浏览器本身的代码是不现实的。

  这样,可以在“家电控制中心”增加一项“IPv4/IPv6双协议栈的代理服务”功能,浏览器通过代理端口的设置,将请求交给“家电控制中心”处理,通过编程处理让“家电控制中心”根据客户端请求的目的地址的不同调用系统的IPv4或IPV6协议栈,分别实现客户端与IPv4或IPV6进程的通信。

2 信息家电远程控制中IPv4/IPv6兼容的实现

  2.1 信息家电控制中心中代理功能的设置和浏览器的选择

  在基于IPv4技术的家电远程控制系统中,一般家电用户可以直接输入“家电控制中心”的IP地址,直接访问到信息家电及其控制/状态页面。但在基于 IPv6的信息家电中,每个家电都可具有自己的一个或多个IP地址,当然也可以具有域名。这样,在考虑信息家电远程控制IPv4/IPv6兼容问题时,不但要考虑用户的URL请求直接是IP地址,还要考虑用户对信息家电应用的域名。因此,在“家电控制中心”中首先要添加IPv4/IPv6双协议栈,并使之成为Web代理服务器,同时也要具有请求域名解析的功能,最后,判断地址的格式,根据不同协议地址调用对应的协议栈。

  网络中客户端Web浏览器的代理端口设置为“家电控制中心”的对应端口,浏览器将URL中输入的内容交给“家电控制中心”处理,经过域名解析,如果是 IPv4地址,则“家电控制中心”的代理不进行处理,按照原来的模式发送请求;如果是IPv6的地址,则“家电控制中心”的代理将请求交给IPv6处理模块,调用系统的IPV6协议栈,实现与IPV6的通信。图2是“家电控制中心”对IPv4客户端的URL处理流程图。



图2 家电控制中心对URL的处理流程图


  2.2 浏览器的选择和多URL同时请求的解决方案

  在客户端选择使用Netscape浏览器,因为在通过手动设置代理联入Internet 的时,IE要对其URL中输入的内容进行语法检查,而 Netscape则完全不作任何检查,把从域名解析到数据转发的任务都交给“家电控制中心”,这样无论在URL中输入的是域名还是IPv4或IPv6地址,Netscape都会不加任何检查地送入“家电控制中心”,所以,客户端Web服务的接入和浏览工具选择Netscape。

  由于“家电控制中心”要对一个浏览器的多个请求或者多个浏览器的多个请求同时作出反应,在具体实现时,使用“家电控制中心”的daemon侦听端口,使“家电控制中心”遇到请求就产生子进程进行处理,即通过socket函数创建监听套接字listenfd,并调用bind和listen函数将其变成一个监听套接口,使系统内核接收来自客户的连接请求。“家电控制中心”调用accept函数等待客户端的连接。当客户端Web浏览器发起的TCP连接请求转发到“家电控制中心”处理时,TCP使用三次握手建立连接,当握手完毕时,accept函数返回,其返回值是一个称为已连接描述字(connetcted descrIPtor)的新描述字connfd。“家电控制中心”用fork函数为这个描述字开启一个子进程,并用此子进程处理连接和通信,同时父进程仍保持监听状态。

  另外,在实现“家电控制中心”的IPv4/IPv6双协议栈代理功能时,在处理监听套接口的同时,又要处理已连接套接口,还要处理多个描述字,在解决这个问题时用到了I/O复用技术。在I/O复用中,系统阻塞于select 调用,等待数据报套接口可读,当select返回套接口可读时,系统调用 readline函数将数据报读到缓冲区中。在连接建立和传输过程中,“家电控制中心”为每一幅图片和每一个文本文件建立一个描述字,因此,在 select的参数设置中要保证每一个描述字都是可读取的。

3 测试和结论

  在测试环境中,家电局域网由“家电控制中心”、基于IPv4的信息家电和基于IPv6的信息家电。“家电控制中心”除具有用户管理、家电管理、信息格式转换等模块外,具有IPv4/IPv6双协议栈、Web代理服务、域名解析、IPv4/IPv6地址识别等功能。基于IPv4的信息家电和基于IPv6 的信息家电都具有Web服务的功能,并有对应的控制/状态页面。客户端计算机是IPv4协议栈,Web浏览器使用Netscape,并将代理设置为“家电控制中心”。由于使用Netscape作为Web浏览器,操作系统均选用了Linux。在测试中,通过客户端实现了对两类家电的访问和控制。

  本文作者创新点是利用信息家电局域网中的“家电控制中心”,在不改变家电网络结构的情况下,针对信息家电远程控制提出并实现了IPv4/IPv6兼容的一种方法,使基于IPv4的信息家电和基于IPv6的信息家电通过具有IPv4/IPv6双协议栈、域名解析、地址的识别和不同协议栈调用等功能的“家电控制中心”融合在了同一个局域网中,从而方便了用户的使用和厂家的开发及维护。

 

转自:http://www.ca800.com/apply/d_1nrutga2l25fj_1.html

 

发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
关于我们 - 联系我们 - 法律声明