关于Mobile IPv6的协议是很好理解的。随着网络的V6化,手机网络的协议必然也需要兼容这种形式,这也就催生了多平台可植入Mobile IPv6的研究,现在我们在这方面进行一个具体深入的讨论。希望从中能够帮助大家理解这方面的知识。
多平台可移植Mobile IPv6协议栈(Multi Plat Mobile IPv6)协议栈设计的主要目标是无论操作系统平台如何变化,Multi Plat Mobile IPv6协议栈尽可能少地修改代码,并且采用模块化替换方式简化平台移植过程。
为此,需要区分开Multi Plat Mobile IPv6协议栈所包含的平台相关与平台无关两类代码:平台相关代码与具体的操作系统或硬件相关联,不能脱离操作系统具体特性;平台无关代码不直接与操作系统或硬件相关联,不依赖于具体的操作系统。
区分出这两部分代码才能在设计中确定不同平台下保持通用的代码(平台无关代码),和必须重新编写的代码(平台相关代码);Multi Plat Mobile IPv6协议中哪些功能可用平台无关代码实现,哪些功能必须采用平台相关代码实现是设计的重点工作,需要根据操作系统以及Mobile IPv6相关特点综合考虑。
与Mobile IPv6协议的功能相对应,Multi Plat Mobile IPv6协议栈包括两个主要的功能模块:
1) 移动相关功能模块识别MN当前所在网络,完成网络切换,通知HA、CN,MN的当前位置,建立MN和CN之间的路由优化关系以及维护移动相关状态信息,它是一些逻辑过程的集合,与操作系统以及硬件无直接联系,通过合适的设计方法,可作为平台无关部分在用户态以服务程序的方式实现;
2) 数据接收和发送功能模块分别处理路由优化前后的数据接收与发送,由于这部分直接相联系的网络协议程序是在操作系统内核运行,并需要和硬件驱动程序相关接口通信,因此这部分必须运行在内核态必定是平台相关的。
根据对以上分析我们将MultiPlat Mobile IPv6协议栈设计成为3个主要的结构部分:
移动相关功能模块与平台无关称之为通用功能体工作在用户态;数据接收和发送功能模块与平台相关称之为内核功能体工作在内核态;另外需要在内核态与用户态程序之间建立一个中间层,该层与移动协议规定的功能没有直接的关系,但包括一系列内核态和用户态之间通信接口函数、通用线程管理函数、定时函数。
这些函数为通用功能体对不同操作系统函数的调用保持统一函数名和参数格式,用以屏蔽平台差异,称之为适配层。
通用功能体在不同的操作系统下保持了通用性(源代码通用性),其他两部分需要根据操作系统的不同而做适应性修改。该体系结构划分出通用代码和不通用代码,并将其模块化,操作系统平台间移植过程被简化为部分模块替换。这是MultiPlat Mobile IPv6的主要特点。