APP下载

面向固定终端移动IPv6 协议的设计与实现

2014-04-14艳,陈

电子测试 2014年8期
关键词:哈希消息条目

潘 艳,陈 姝

(1.渤海大学,辽宁锦州,121000;2.辽宁省基础测绘院,辽宁锦州,121000)

0 引言

随着下一代互联网协议IPv6 以及嵌入式技术的成熟,对功能、成本及执行速度等都有严格要求的小型固定终端嵌入式设备也得到了广泛应用,它们对网络互联的需求日益增长,如智能家电,医疗仪器的远程监控等,人们可以利用智能手机等移动终端设备对其进行远程控制。而它们不需要支持移动节点和家乡代理的功能,只是需要与移动终端进行通信,因此在这种设备上运行目前已经实现了支持包括移动节点和家乡代理所有实体功能的移动IPv6 协议,显然是对资源的一种浪费。

1 固定终端移动IPv6 协议的分析

固定终端节点与移动终端节点的通信过程主要有以下五个过程:第一,从移动节点接收数据包,主要包括接收带有家乡地址选项的数据包的操作和对移动头消息的处理操作;第二,返回路径可达过程,包括家乡和转交地址测试初始消息的接收和家乡和转交地址测试消息发送;第三,绑定的处理过程,主要包括接收处理绑定更新、请求注册一个绑定、请求删除一个绑定、发送绑定确认、发送绑定刷新请求和发送绑定错误消息操作;第四,向移动节点发送数据包,主要检验绑定缓存中是否包含此目的地址的绑定条目以及使用第2 类路由头将数据包发送到移动节点的操作;第五,接收ICMPv6(第六版网络控制报文协议)错误消息。

2 固定终端移动IPv6 模块的设计

针对固定终端与移动节点相互通信的操作过程,固定终端节点除了要提供对扩展头处理模块和ICMPv6 处理模块的修改支持外,还要提供全新的移动头处理模块和绑定处理模块的支持。总体模块图如图1 所示。

图1 固定终端移动IPv6 总体模块图

3 固定终端移动IPv6 模块的实现

3.1 扩展头处理模块的实现

扩展头处理模块的实现主要包括以下几个内容:

(1)家乡地址选项(HAO)和第2 类路由头选项(RT2)的定义。

(2)接收处理家乡地址选项(HAO)。

(3)第2 类路由头选项(RT2)的添加。

(4)对要发出去的数据包选项进行修改。

3.2 移动头处理模块的实现

3.2.1 移动头消息及选项的定义

在移动IPv6 中新定义了移动头消息及选项,主要包括移动头、绑定刷新请求信息、家乡和转交地址测试初始、家乡和转交地址测试、绑定更新、绑定确认、绑定错误和各个移动选项的定义。

3.2.2 接收移动头消息

当接收到移动节点发来的带有移动头的消息时,由mh_rcv()处理函数进行处理,首先会对检验和和移动头长度进行检验,通过检验后再判断下一个报头字段是否为59,若不是59 则发送代码为0 的头部错误的ICMPv6 参数错误报文。否则,判断消息类型的有效性,若不合法则发送status 为2 的未知移动头消息类型的BE 报文。否则,若类型不空则转向相应的绑定更新处理或者地址测试初始处理程序。

3.2.3 返回路径可达过程的处理

当移动节点MN 接收到通过家乡代理转发来的固定终端通信节点发来的信息后,就会发送家乡和转交地址测试初始,而相应的固定终端通信节点会立即发送家乡和转交地址测试来进行回应,从而开始绑定过程之前的返回路径可达过程。

3.2.4 绑定更新消息的处理

当进行完返回路径可达过程之后,移动节点就会发送绑定更新消息给固定终端通信节点,通知其现在的所处的位置信息,主要包括家乡地址Homeaddr 和转交地址CoA 以及用于设定这个家乡地址与转交地址对的生存期的生存时间,固定终端节点通过这些信息,在绑定缓存中为此移动节点生成一个绑定条目,以便后继的数据包的发送不经过移动节点的家乡代理以隧道的方式发送。

3.2.5 绑定回应消息的发送

(1)发送绑定确认BA

当固定终端通信节点接收了移动节点发来的绑定更新消息,并为其生成或者修改了一个绑定缓存条目,绑定更新中的确认位A 位被置位,那么发送绑定确认的状态域必须设置为小于128。若A 位没置位,则不会发送绑定确认消息。当固定终端通信节点拒绝了这个绑定更新,没有为移动节点生成或修改一个绑定缓存条目,那么即使绑定更新中的确认位没有被设置,接收节点也必须发送绑定确认信息,并且状态值域要设置成大于或等于128。

(2)绑定错误BE

当固定终端通信节点从移动节点接收到带有家乡地址目的选项的数据包,若它的下一个报头不为移动头135 并且检验绑定缓存中不存在这样的绑定条目,或者存在这样的绑定条目但是它的转交地址与绑定缓存中的地址不一致,则会发送status 为1的错误的使用HAO 的BE 消息。当固定终端通信节点接收到的移动头中的移动消息类型不合法时,则发送status 为2 的不能识别移动头的BE 消息。

(3)绑定刷新请求BRR

当一个移动节点的绑定缓存条目快到期,但此节点还在与这个移动节点相互通信时,则发送绑定刷新请求BRR 给移动节点来延续生命时间。发送的最大数目为3,发送间隔为1s,并且一旦接收到了移动节点发来的地址测试初始消息就会停止发送绑定刷新请求。

3.2.6 发送移动头消息

首先,计算移动头、移动消息的长度,并分配空间,设置上层来的信息,然后查看第2 类路由头的地址是否为空,若不空则使用第2 类路由头发送信息,否则按正常方式发送。然后分配所有扩展头选项的空间,将原有的选项添加到这个空间中,若转交地址不空则添加第2 类路由头信息,下一步就是对移动头的各个字段进行添加,并计算校验和,发送到下层的队列,从而完成了对移动头及消息的发送过程。

3.3 绑定处理模块的实现

3.3.1 绑定缓存的结构

绑定缓存的设计,采用了哈希桶加循环双链表的结构。哈希函数是通用的哈希桶标识的函数H(key)mod N,这个N 值为哈希桶数,根据移动节点与固定终端节点同时连接数的实际情况考虑最大的值设置为16,将哈希桶数N 设置为8。所以将此绑定缓存的哈希函数设置为如下:主键Key 为移动节点的家乡地址表示为homeaddr,为了使计算时间更快,本绑定缓存设计了一个最简单的哈希函数H(homeaddr)=homeaddr,那么将这个绑定条目所存取的哈希桶数设为y,则y =homeaddr mod N。

由于绑定缓存中要对过期的绑定条目进行删除处理,所以还设计了一个以生存时间进行排序的链表,使此列表的第一个元素总是第一个要过期的元素,从而避免了为每个绑定缓存设置一个计时器数。

3.3.2 绑定缓存的操作

(1)绑定缓存的初始化

当一个固定终端节点启动后就会立即启动绑定缓存的初始化程序,考虑到小型固定终端设备的实际应用和可扩展性,规定绑定缓存所能允许的最大的绑定缓存条目值为16,当缓存条目数大于这个值时就会采取相应的删除最近一个要过期的绑定缓存条目作为绑定缓存的替换策略。

(2)绑定缓存的查询

首先,根据移动节点的家乡地址home_addr 和哈希函数计算出了此绑定缓存条目所要存储的哈希桶数y 为H(home_addr)mod 8,并查找到当前的这个哈希桶,然后在这个桶的链表中根据MN 的home_addr 关键字进行顺序查找,若找到,则返回0,否则返回-1。

(3)绑定缓存的添加

当移动节点发送来的绑定更新消息被确定为添加一个绑定缓存条目的操作后,会调用此绑定缓存的添加函数来进行注册一个绑定。在这个过程中又分为两个操作,添加一个新的绑定条目的操作和更新一个绑定条目的操作。

(4)绑定缓存的删除

当移动节点发送来的绑定更新消息被确定为删除一个绑定缓存条目的操作,或者当一个绑定缓存条目的生存时间到期,或者经过对接收到的目的地不可达报文的判断此绑定已经不存在,则会调用绑定缓存的删除操作进行处理。

(5)时间处理操作

在绑定缓存中由于绑定条目有生存期限,所以当绑定缓存条目过期后就要对过期的绑定条目进行处理。

(6)绑定缓存的退出

当一个固定终端节点退出了网络或者关机时,则将绑定缓存的计时器删除,哈希链表结构变量置空,并将排序链表和哈希链表删除,释放绑定缓存的空间,并释放这个哈希链表所占用的空间。

3.4 ICMPv6 处理模块的实现

首先判断扩展头中是否有第2 类路由头选项,若有则说明是发送给移动节点的信息,并将目的地址与第2 类路由头中的家乡地址进行互换,若没有则说明是一般的目的地不可达消息,从而退出此过程。然后检验绑定缓存中是否存在此绑定条目,若存在,则对目的地不可达数进行判断,从而根据目的地不可达数对绑定缓存的条目进行修改,若绑定条目中的目的地不可达数大于5,则说明这个绑定条目已经失效,然后删除此绑定缓存条目

4 结论

通过对面向固定终端与移动节点的通信过程的分析,设计实现了对资源占有有着严格要求的小型固定终端设备移动IPv6 协议,通过对返回路径可达过程、绑定过程和绑定后的正常通信过程的测试,基本符合移动IPv6 协议规范RFC3775 的要求。

[1] R.Hinden,Internet Protocol Version 6(IPv6) Specification,RFC2460, December 1998.

[2] D.Johnson,C.Perkins,J.Arkko,Mobility Support in IPv6,RFC3775, June 2004.

[3] A.Conta,S.Deering,Internet Control Message Protocol(ICMPv6) for the Internet Protocol Version 6(IPv6) Specification,RFC2463,December 1998.

[4] 孙利民等:移动IP 技术,电子工业出版社,2003.8,88-92。

猜你喜欢

哈希消息条目
哈希值处理 功能全面更易用
文件哈希值处理一条龙
一张图看5G消息
《词诠》互见条目述略
Can we treat neurodegenerative diseases by preventing an age-related decline in microRNA expression?
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件
消息
消息
消息