HIP技术在异构网整合中的应用
来源:电子元器件应用 作者:—— 时间:2010-10-08 10:10
随着各种网络技术的发展,融合网络已是一个大的趋势。网络融合有两层含义,其一层是在应用层面,它把以前各种异构网络上的应用全部整合到一个IP网络上,从而实现在应用上的大统一,这是一种直观的理解。但是,如果主机要在网络中移动,也就是改变网络位置时,就必然要改变自己的网络定位符,即IP地址,这样,由于上层协议也把IP地址作为端标识符的一部分,因此必然造成了上层端地址的改变,也就使得原来端到端的通信中断。另外,由于对网络安全的要求不断提高,除了应用需要自我标识外,网络对于端系统也需要有一个标识符,以实现对端系统的认证和端到端的通信安全。现在已经有多种技术可以帮助IP协议解决这个问题,每种技术都有自己的适用范围和特点,比如移动IP技术、SCTP协议、HIP协议等等。在这些技术中,HIP协议提出了一个新的名字空间,称为主机身份标识,HIP通过引入主机标识符使得网络层和传送层进一步分离,从而克服了上述缺点,从根本上还原了IP地址网络定位符的本来角色,并通过使用一个具有安全意义的公钥作为端系统标识符,为端系统的认证和通信过程的安全提供重要的基础。HIP协议的研究对于满足网络移动和安全需求有着重要的意义。
1 HIP协议分析
HIP协议引入了主机标识符和分离IP地址的双重角色,这样也就消除了现在体系结构中上层协议与网络层协议之间的耦合。这一点可以通过对比HIP协议引入前后网络协议层次模型来清楚的看到。TCP/IP协议使用5层协议模型,自下而上分别为物理层、链路层、网络层、传送层和应用层。HIP层逻辑上位于传送层和网络层之间,图1所示是引入HIP层前后的网络逻辑层次模型。之所以说HIP层消除了传送层和网络层的耦合,不仅仅是因为其所在的位置,而且在加入HIP层前后的网络通信过程也充分说明了HIP协议对传送层和网络层的分离。在没有HIP协议的模型里,传送层协议程序使用(IP地址,端口)对来作为网络通信中应用层对等实体的地址。
与此同时,网络层使用IP地址来交付报文,而在引入HIP协议后,网络层仍然采用IP地址来交付报文,上层协议却使用(HI,端口)对来作为对等实体的地址,同时使用HI来作为主机的标识,而并没有使用代表网络接口位置的IP地址来代表主机。
由以上分析可以看出,要实现在切换(改变IP)时的通信不中断,传统的IPv4或者IPv6都不能做到,因为它们并没有从根源上解决IP地址的双重身份的缺陷。
2 HIP通信方案分析
由于HIP协议在理论上是介于IP层和传送层之间较独立的模块处理,故可考虑把这部分处理放到用户空间来完成,这就产生了用户进程的解决方案。
这种方案的大体流程是,用户在进行域名解析的过程中,先由本机的解析函数向HIP守护进程请求HIT/HI到IP地址的映射绑定;之后,应用程序用返回的HIT进行网络通信,由于HIT是128位,因此,应用程序的调用接口不需要进行变化,通信到了传送层时,也认为128位的HIT是IPv6地址。直到到了需要进行HIP处理的模块人口检测时,才会根据目前HIT的定义与IPv6地址的区别进行筛选,同时把需要进行HIP通信的报文送往用户的守护进程。
这种实现方式的优点是实现简单,因为很多的功能都是在用户空间完成的,而与内核进行交互的函数很少,软件也容易控制;其次是对内核的改动较少,对原来的协议栈不需要太大的修改。而其缺陷是应用程序不能控制HIP协议,因为它对HIP协议的存在是透明的;其次是协议的层次不清楚.把处于传送层下的处理放到应用层去处理,这在协议的体系层次上是不清晰的;再就是效率问题,Linux中用户空间的进程在运行时是可以被抢占的,这样,对HIP的处理就会带来一些时延。鉴于这些问题,本文用改进的接口在内核进行HIP通信处理的方案。
3 用改进的API进行HIP通信
虽然用户可以用守护进程来完成简单HIP通信,但在用户空间实现通信协议栈,无论在效率上,还是在层次上,都是不理想的。而引入HIP协议的目的是让用户明确的知道自己在用主机标识,并让它充分地发挥其功能,这也是使用用户守护进程无法体现的。所以本文提出了更改API解决HIP通信的通信模式。
该方案把HIP协议的处理放在内核中让HIP模块来处理,HIP协议在理论上象楔子一样夹在传送层和网络层之间,这种形象的表示来源于HIP协议的具体工作方式。HIP层的通信可以分为三种类型:第一,通信连接的建立;第二,通信的进行;第三,通信连接的维护。通信连接的建立和维护可由HIP模块来处理,需要用原始套接字发送HIP类型的报文。而对已经建立起连接的通信来讲,需要传输的报文中是没有HIP类型报文头的,而且在HIP层的处理也是很少的,所以看上去象楔子一样在两层之间。HIP通信的关键是主机的HIT和对应的IPv6地址映射和HIP协议本身的处理,为此,可以增加HIP应用程序接口和HIP协议的处理模块。
HIP协议处理模块可以进一步划分成:HIP基本通信处理部分、HIP连接控制处理部分、HIP安全处理部分、HIP移动和多宿主机通信处理部分、配置管理处理部分等。下面对这几部分进行简单的描述。
3.1 HIP应用程序接口
HIP通信的关键是主机的HIT和对应的IPv6地址映射,以及HIP协议本身的处理。HIP应用程序接口的引入可以解决以下四种问题:第一是应用程序知道HIP协议的存在(通过调用新的接口和设置标志项);第二是提供主机标识的查询接口;第三是提供HIT到IPv6地址的映射绑定接口;第四是为控制程序提供控制管理入口。
3.2 HIP基本通信处理部分
从前面分析HIP协议的通信模式可知,HIP通信主要有两条通信线路,其中一条是进行基本的HIP连接、控制、协商的通信过程,这可由HIP基本通信处理部分完成,它负责通信双方的主机身份认证、安全参数协商、安全连接的建立以及地址更新通告的处理等。
3.3 HIP基本通信处理
这部分负责HIP连接建立后的HIP通信,它的主要工作是完成HIT和IPv6地址的相互查找、替换以及根据HIP连接时协商的参数进行相关操作。
3.4 HIP安全处理部分
由于HIP引入了可以进行身份认证的标识,并且通信的安全参数协商和交换也在HIP基本通信处理部分完成,而HIP的安全实施最终要靠IPsec支持完成,所以,HIP的安全部分包括HIP协议中的身份认证、安全协商以及利用IPsec提供的安全设施等。
3.5 HIP移动和多宿主机通信处理
HIP协议支持主机地址和HIT的动态绑定,故能够在多宿主机中实现自己的地址策略:HIP协议提供有RVS机制,可支持移动通信,也允许其它主机发起向移动主机的通信。
此外,配置管理处理部分主要完成有关HIP协议提供的功能选择,以及通信模式选择等管理工作。
4 HIB API实现
本文选择的操作系统平台是Linux内核的移动终端,并且尽量复用已有方案中的代码,可分别实现用户空间的解析库函数接口和内核提供的SOCKET接口。之后,应用程序还可以有机的组合二者来为HIP通信服务,图2所示是HIP API的结构框架。下面就常用通信调用进行简单分析。
4.1 服务器创建连接过程
通过HIP接口可在服务器创建连接的工作流程,也可以把HIP协议引入的特点放到HIP接口层来处理,这对于传送层来讲都是透明的,也就是说,在传送层调用的函数都与传统的IPv6在传送层调用的函数一样。
4.2 客户创建连接
应用程序要通过HIP接口进行网络通信,首先要进行HIP套接字的创建。完成创建工作后,可得到套接字描述符fd,然后进行域名解析,以得到应用层标识符EID。在这个过程中,解析函数和内核已经对EID-HIT-IPv6地址进行了映射绑定,而应用程序则可以根据自己的选择进行面向连接的流通信或非连接的数据报通信。
5 实验和测试
实验和测试的内容主要是利用开发的HIP接口进行HIP常规通信和传统的IPv6通信。本设计通过wireshark截取通信报文来进行分析。
实验得出,用HIP接口进行HIP通信测试是成功的,从截获的报文来看,客户端向服务器发起请求后,当传送层的连接SYN报文达到HIP处理模块时,发现没有为对端主机建立HIP连接。此后,HIP模块为对端HIT发起连接请求,这时截获到的4个IPv6流报文正是进行HIP连接通信的报文,而后面的ESP报文也是HIP连接完成后进行的HIP常规通信,所有的数据都是用在HIP连接时协商的算法进行封装后传递的。
6 结束语
由实验可以看出,将HIP应用于移动终端,可以保证移动终端在进行网络切换时(改变IP)的通信不中断,因而可为异质网络融合提供基本的技术支持。
上一篇:现代电动车辆中电控技术的应用
下一篇:英飞凌针推出创新医疗平台解决方案