首页资源分类嵌入式开发嵌入式系统 > 嵌入式移动代理的设计与实现.pdf

嵌入式移动代理的设计与实现.pdf

已有 460221个资源

下载专区


TI最新应用解决方案

工业电子 汽车电子 个人消费电子

文档信息举报收藏

标    签: 嵌入式移动代理的设计与实现

分    享:

文档简介

嵌入式移动代理的设计与实现.pdf

文档预览

嵌入式移动代理的设计与实现 彭凌云 龙 翔 高小鹏 陈 炜 童 超 ( 北京航空航天大学计算机学院, 北京 100083) 摘 要 随着移动通信的快速发展, 以及手持移动设备的增多, 人们已经进入到一个移动计算的时代。移动管理是移动 通信中的核心问题。针对 IETF 的移动 IP 协议的不足, 论文提出了基于嵌入式 Windows CE.net 操作系统实现通信设备的 移动管理方案。首先简述移动 IP 协议, 并指出其不足之处; 然后介绍了嵌入式移动代理的整体框架; 最后详细说明了移 动代理的实现。该方案主要特点如下: 可以最大限度地减小移动管理对移动管理基础设施的依赖; 嵌入式移动代理可以 为操作系统提供透明的移动服务。 关键词 移动管理 移动 IP 嵌入式系统 Windows CE.net 文章编号 1002- 8331- ( 2006) 21- 0084- 03 文献标识码 A 中图分类号 TP393 Design and Implementation of Embedded Mobile Agent Peng Lingyun Long Xiang Gao Xiaopeng Chen Wei Tong Chao ( Computer School of Beijing University of Aeronautics and Astronautics, Beijing 100083) Abstr act: With the explosive growth of wireless networks and portable devices, mobile computing has become part of day - today life for many people.People are bringing to a mobile computing era.Mobility management is one of the important tasks in mobile communication.A mobility management schema based on Windows CE.net Embedded OS has been proposed to solve the drawbacks of mobile IP protocol proposed by IETF.Firstly, we introduce MIP and its shortcuts; secondly, we describe the architecture of the schema; finally, we explain the implementation of embedded mobile agent.The major features of this scheme can be stated as follows: It could make the dependence of mobility management on router as less as possible, Embedded mobile agent could provide transparent mobile service to operation systems. Embedded mobile agent is the most important part of this schema; this essay describes its theory and implementation. Keywor ds: mobile management, mobile IP, embedded system, Windows CE .net 1 引言 随着无线通信技术的发展, 以及手持移动设备的增多, 人 们 已 经 进 入 一 个 移 动 计 算 的 时 代 。由 于 大 多 数 网 络 应 用 运 行 在 基于数据分组的 IP 协议上, 而 IP 地址是与用 户 所 在 地 理 位 置 相关的, 因此用户在地理位置上发生移动后, 就会导致用户的 IP 地 址 发 生 变 化 。 为 了 解 决 上 述 问 题 , IETF 提 出 了 MIPv4 ( Mobile IPv4) [1]和 MIPv6( Mobile IPv6) [2]两 个 移 动 IP 协 议 , 并 得到了广泛的认可。 但是 MIPv4 和 MIPv6 这两个移动 IP 协议并非完美, 尚存 在 以 下 不 足 : ① 移 动 IP 协 议 要 求 有 HA( Home Agent) 或 FA ( Foreign Agent) 的 支 持 , 但 在 绝 大 多 数 应 用 场 合 , 现 有 网 络 尚 不能有效地提供这些基础设施; ②目前的操作系统大都无法透 明地支持通信设备的移动。 本文提出基于嵌入式 Windows CE.net 操 作 系 统 实 现 通 信 设备的移动管理方案。该方案通过将具备 HA/FA 功能的嵌入 式移动代理集成到移动设备中, 可以有效避免 HA/FA 部署的 问题; 嵌入式代理集成到系统后, 在移动主机看来, 此代理就是 它的默认网关, 拥有不变的 IP 地址, 嵌入式移动代理给操作系 统屏蔽了移动管理的细节, 使操作系统得到透明的移动服务。 本文将详细介绍嵌入式移动代理的设计与实现。 2 移动 IP 协议简析 2.1 移动 IP 协议基本工作原理 MIPv4 由 CN( Correspondent Node) 、HA、FA 和 MN( Mobile Node) 四个实体组成。每 个 MN 有 一 个 永 久 性 的 IP 地 址- HoA ( Home of Address) 。当 MN 移动到新网络后, 将获得一个临时 IP 地 址- CoA ( Care- of Address) 。MN 获 得 CoA 后 , 通 过 BU ( Binding Update) 消息把 CoA 通知给 HA; HA 通过 BA( Binding Acknowledge) 消息响应 BU。CN 发 送 数 据 包 给 MN 时 , 总 是 把 数 据 包 发 到 MN 的 HoA。 根 据 MN 是 否 处 于 家 乡 网 络 ( Home Network) 中, HA 需要处理两种情况: ①MN 处于家乡网络中。 MN 直接接收来自 CN 的数据包; ②MN 不在 家 乡 网 络 。HA 截 获数据包, 并根据 MN 注册的 CoA 把数据包转发到 MN 的当前 FA, FA 再把数据包转发给 MN。MIPv6 的工作原理与 MIPv4 的 工作原理类似, MIPv6 由 CN、HA 和 MN 组成, 不再有 FA。 在 MIPv6 中 , MN 会 把 CoA 通 知 给 CN, CN 在 收 到 MN 的 绑 定 更 新后, 直接把数据包发送到 CoA( 不再通过 HA) 。 2.2 移动 IP 协议存在的问题 通 过 对 MIPv4 和 MIPv6 的 分 析 , 可 以 发 现 其 存 在 部 署 困 难和操作系统支持问题。 基金项目: 微软亚洲研究院 2004 年嵌入式 RFP 计划资助 作者简介: 彭凌云( 1979- ) , 硕士研究生, 主要研究方向为移动通信网络和网络安全。龙翔( 1963- ) , 男, 博士, 教授, 博士生导师, 主要研究领域为计 算 机 体 系 结 构 、移 动 通 信 网 络 和 网 络 安 全 。 84 2006.21 计算机工程与应用 ( 1) 部署问题 从 2.1 节 可 以 看 出 , MIPv4 协 议 对 HA 和 FA 有 很 强 的 依 赖性。类似的, MIPv6 对 HA 也有很强的依赖性。因此, 无论是 MIPv4 还是 MIPv6, 在 HA 和 FA 广泛部 署 之 前 , 均 无 法 获 得 广 泛应用。 ( 2) 操作系统的支持 目前的操作系统大多不支持移动 IP 协议, 因此无法透明 地支持移动通信。 3 移动管理的整体框架 针对 MIP 协议 的 不 足 , 本 文 提 出 基 于 嵌 入 式 移 动 代 理 的 移动管理解决方案。本节给出该方案的整体设计框架。 3.1 网络拓扑 该方案的网络结构如图 1 所示。其主要由地址服务器、嵌 入 式 移 动 代 理 和 各 种 网 络 设 备 ( 如 路 由 器 、无 线 基 站 等 ) 组 成 。 通信主机通过嵌入式移动代理与外界通信, 嵌入式代理通过把 移动协议集成其中, 使 通 信 主 机 在 移 动 中 感 知 不 到 位 置 ( 即 IP 地址) 的改变, 从而得到透明的移动服务。 统与移动管理程序以及系统配置参数, 当系统上电后, 系统引 导 程 序 首 先 将 操 作 系 统 影 像 、移 动 管 理 程 序 影 像 及 系 统 参 数 加 载至主存, 然后将控制转交至主存中的操作系统。通信主机通 过移动代理的通信主机接口与移动代理连接。 出于研究的目的, 本文采用了原型系统的实现方式。在原 型系统中采用了 Intel 公司 PXA255 400MHz 处理器开发板。其 存储器包括 64M 字节的 SDRAM 和 32M 字节的 Flash。以太网 接口为 CS8900A 10BaseT, 有一个 PCMCIA 接口。在原型系统 中 移 动 代 理 采 用 以 太 网 直 接 与 通 信 主 机 相 连 。无 线 模 块 用 开 发 板 PCMCIA 接口接一个 Cisco PCM352 无线网卡来实现。 3.4 移动管理 下面介绍移动管理的操作过程。因为文章篇幅所限, 本文 不详细讨论消息格式, 只介绍移动管理协议的基本工作原理。 为了方便起见, 本文假设有通信主机 1( 集成了移动代理 1) 和 通信主机 2( 集成了移动代理 2) 进行通信, 通信主机与所集成 的移动代理直接通信, 所以在图中没有画出通信主机。而且在 一 段 时 间 后 , 移 动 代 理 2 获 得 了 新 的 CoA, 变 为 移 动 代 理 2’。 移动管理的过程如图3 所示。‘||’代表载荷的链接。 3.2 地址服务器 本文所实现的移动代理需要一个地址服务器来记录移动 主机当前的位置。地址服务器是位于 Internet 的一个公共服务 器, 具有移动代理所预知的 IP 地 址 或 DNS 域 名 。 当 移 动 代 理 要与某台移动主机通信时, 它将首先向地址服务器查询此主机 的当前位置。移动代理向地址服务器发送所要通信主机的 HoA, 地址服务器返回代理所要查询的 CoA。 3.3 嵌入式移动代理 本文基于 Windows CE.NET 嵌入式系统实现移动代理。移 动代理由嵌入式 CPU、存储器、无线模块和通信主机接口构成, 其硬件基本结构如图 2 所示。 移 动 代 理 采 用 低 功 耗 的 高 性 能 嵌 入 式 处 理 器 。配 有 无 线 通 信模块, 存储器包括 Flash 和 RAM 两部分。操作系统及移动管 理程序均运行在主存中。Flash 中存储着系统引导程序、操作系 ( 1) 移 动 代 理 1→地 址 服 务 器 : Type( Register) ||LifeTime|| HoA( 通 信 主 机 1) ||CoA( 移 动 代 理 1) 。 这 条 消 息 是 注 册 ( Reg- ister) 消息。系统启动时, 移动代理 1 向地址服务器注册通信主 机 1 的 CoA。Type 表 示 消 息 的 类 型 ( 如 注 册 消 息 , 订 阅 消 息 等) ; LifeTime 表示注册的有效期。 ( 2) 地址服务器→移动代理 1 Type( Register Acknowlege) ||LifeTime||HoA( 通信主机 1) ||CoA( 移动代理 1) 。这是地址服务 器对移动代理 1 注册消息的回应, 指示服务器是否接受移动 1 的注册。 ( 3) 移 动 代 理 2→ 地 址 服 务 器 : Type ( Register) ||LifeTime|| HoA( 通 信 主 机 2) ||CoA( 移 动 代 理 2) 。 这 条 消 息 是 注 册 ( Reg- ister) 消息。移动代理 2 向地址服务器注册通信主机 2 的 CoA。 ( 4) 地址服务器→移动代理 2 Type( Register Acknowlege) ||LifeTime||HoA( 通信主机 2) ||CoA( 移动代理 2) 。 ( 5 ) 移 动 代 理 1→ 地 址 服 务 器 : Type ( Subscribe ) | | Target HoA( 通信主机 2) ||HoA( 通 信 主 机 1) 。 这 条 消 息 是 订 阅 ( Sub- scribe) 消息。移动代理 1 通过向地址服务器提供通信主机 2 的 HoA, 订阅移动代理 2 的 CoA, 表示通信主机 1 关心通信主机 2 的当前位置。 ( 6) 地址服务器→移动代理 1 Type( Subscribe Acknowlege) ||LifeTime||Target HoA( 通信主机 2) 。这是地址服务器对移动代 理 1 订阅消息的回应, 表示服务器是否接受移动 1 的订阅。 计算机工程与应用 2006.21 85 ( 7 ) 移 动 代 理 2→ 地 址 服 务 器 Type ( Subscribe ) | | Target HoA( 通信主机 1) ||HoA( 通 信 主 机 2) 。 这 条 消 息 是 订 阅 ( Sub- scribe) 消息。移动代理 2 通过向地址服务器提供通信主机 1 的 HoA, 订阅移动代理 1 的 CoA。 ( 8) 地 址 服 务 器 → 移 动 代 理 2 Type ( Subscribe Acknowl- ege) ||LifeTime||Target HoA( 通信主机 1) 。这是地址服务器对移动 代理 2 订阅消息的回应, 表示服务器是否接受移动 2 的订阅。 ( 9) 通信主机 1 和通信主机 2 之间通过移动代理 1 和移动 代理 2 进行通信。 ( 10) 移 动 代 理 2’→地 址 服 务 器: Type( Update) ||LifeTime|| HoA( 通信主机 2) ||CoA( 移动代理 2) 。这条消息是更新( Update) 消息。移动代理 2 获得新的 CoA, 将新的 CoA 通知地址服务器。 ( 11) 地 址 服 务 器 → 移 动 代 理 2’ Type ( Update Acknowl- ege) ||LifeTime||Target HoA( 通 信 主 机 2) ||CoA( 移 动 代 理 2) 。 这是地址服务器对移动代理 2 更新消息的回应。 ( 12) 地址服务器→移动代理 1: Type( Notify) ||HoA( 通 信 主 机 2) ||CoA( 移动代理 2) 。这条消息是通知( Notify) 消息。地址服 务器将移动代理 2 新的 CoA 通知给移动代理 1。 ( 13) 地 址 服 务 器→移 动 代 理 1: Type( Notify Acknowlege) || HoA ( 通 信 主 机 1) 。 这 条 消 息 是 移 动 代 理 对 地 址 服 务 器 通 知 ( Notify) 的回应。 ( 14) 通 信 主 机 1 和 通 信 主 机 2 之 间 通 过 移 动 代 理 1 和 移 动代理 2’进行通信。 中间层( Intermediate) 驱动[4]实现。本文使用 WinCE 自带的中间 层驱动实例 PASSTHRU 实现所需的内核模块。 为 了 使 内 核 模 块 能 与 用 户 层 进 行 通 信 与 数 据 交 换 。我 们 在 中间层驱动上附加一个流式接口。首先实现了流式接口必需的 函 数 : XXX_Init 、XXX_Deinit 、XXX_Close 、XXX_Open 、XXX_ Read、XXX_Seek、XXX_Write、XXX_IOControl。 其 中 XXX 为 驱 动的名字, 这个名字在系统内是唯一的。在这个方案里, 我们取 名为 MKM。在上述函数中, 我们使用 MKM_IOControl 与用户层 程序进行数据交换。MKM_IOControl 根据不同的 控 制 码 , 向 应 用 程 序 返 回 所 需 的 数 据 。 在 内 核 模 块 初 始 化 函 数 DriverEntry 中, 调用 ActivateDevice 注册一个流式驱动接口。这样, 移动管 理程序就能把内核模块当作一个文件, 通过调 用 CreateFile, 指 定文件名为“MKM1: ”, 打开我们的驱动。再通过 DeviceIOCon- trol 功能函数, 发送相应的控制码, 与移动管理程序交换数据。 4.3 内核模块 IP- in- IP 封装 IP- in- IP 的封装是在 NDIS 中 间 层 驱 动 ProtocolReceive 和 ProtocolReceivePacket 函数中实现 的 , 具 体 使 用 哪 个 函 数 , 是 根 据 网 卡 的 型 号 来 决 定 的 。所 以 必 须 在 这 二 个 函 数 中 都 实 现 相 同 的功能。IP 包隧道封装[5]如图 5 所示。 4 嵌入式移动代理的软件实现 4.1 嵌入式代理的软件结构 移 动 代 理 基 于 Windows CE .NET 嵌 入 式 操 作 系 统 实 现 , 其网络协议栈结构如图 4 所示。软件部分主要由移动管理内核 模 块 与 用 户 层 应 用 程 序 两 部 分 组 成 。应 用 程 序 与 内 核 模 块 相 互 配合, 完成移动管理的功能。 检测 IP 地址的改变是内核模块的主要功能之一。在 IPv6 中 , 移 动 主 机 可 以 通 过 邻 居 发 现 协 议 ( Neighbor Discovery) [3]得 到新的 IP 地址。内核模块在监测到路由器广播消息包( Router Advertisement Message) [3], 检 验 移 动 代 理 的 IP 地 址 是 否 已 经 改变。内核模块的另一个主要功能是 IP- in- IP[5]的封装。当 IP 地址改变时, 由移动管理内核模块通过事件通知应用层的移动 管理应用程序, 再由移动管理应用程序向地址服务器更新移动 代理的地址。 4.2 移动管理内核模块与应用程序的交互 移 动 管 理 内 核 模 块 作 为 一 个 Windows CE .NET 的 NDIS 86 2006.21 计算机工程与应用 内核模块时刻检测流经它的 IP 包, 对 不 同 流 向 的 IP 包 作 不同的处理。对于来自主机的 IP 包, 内核 模 块 根 据 IP 包 的 目 的地址 HoA, 向地址服务器查询通信主机的当前 IP 地址 CoA。 得到地址服务器回应后, 内核模块把这对 HoA 与 CoA 缓存在 Radix[6]树 结 构 里 , 下 次 向 相 同 主 机 发 IP 包 时 , CoA 就 直 接 从 Radix 树结构中获取, 而不用重新向地址服务器查询。然后内核 模块把移动代理的 IP 地址作为源地址, 目标通信主机的 CoA 作为目的地址, 形成一个新的 IP 头, 加在主机 发 来 的 IP 包 前 。 最后把经过封装后的 IP 包发出。 移动代理对收到的 IP 包, 首先把 IP 数 据 包 的 头 剥 去 , 恢 复原来的 IP 头, 再把数据包发送到主机。 4.4 移动管理应用程序 移动管理应用程序位于用户层, 它与内核模块配合, 一起 完成移动管理功能。它要与地址服务器通信, 再与内核模块交 换数据。管理程序与地址服务器使用 UDP 协议进行通信。移动 管理程序的工作流程如下: ( 1) 在 系 统 启 动 时 , 应 用 程 序 向 地 址 服 务 器 发 送 Register 消息, 注册主机的 HoA 与 CoA。 ( 2) 在接收到内核模块 IP 地址改变事件时, 向地址服务器 发送 Update 消息, 更新本机的 CoA。通知事件是 HEVENT 类 型 , 这 个 事 件 在 内 核 里 创 建 , 然 后 通 过 DeviceIOControl 传 给 应 用程序。应用程序使用三个线程。一个线程通过 WaitSingleObject 来 等 待 内 核 事 件 , 与 内 核 模 块 交 换 数 据 ; 另 一 个线程监听 UDP 端口, 接收地址服务器传送的数据; 第三个线 程响应用户操作。 ( 3) 在本机向别的主机发送 IP 包时, 内核模块检测本机是 否 已 向 地 址 服 务 器 订 阅 该 机 的 CoA, 如 果 没 有 , 则 由 应 用 程 序 ( 下转 126 页) //查询数据库用户信息表 , 如 果 存 在 此 用 户 ID, 则 返 回 true, 否 则 返回 false … } //查询某个用户是否具有访问某一页面的权力 , 如 果 有 则 返 回 true, 否则返回 false public boolean hasRight( String userid, String pageid) { //连接数据库, 查询 userid 的 roleid //查询角色- 页面表格是否存在( userid, pageid) 这对记录 … } … } ( 1) ( 4) 步骤的 jsp 片断内容如下: rightjudge.jspf <% String userID = ( String) Session.getValue( “userID”) ; Usermamager um = new Usermanager( ) ; if( ( userID == null) ||( ! um.isUserExist( userID) ) ) { response.sendRedirect( “error.jsp”) ; } If( ! um.hasRight( userID, ”PAGEID”) ) { response.sendRedirect( “error.jsp”) ; } %> ( 上接 86 页) 向地址服务器发送 Subscribe 消息。 ( 4) 当本机所订阅的别的主机 的 CoA 改 变 时 , 接 收 从 地 址 服务器发送过来的 Notify 消 息 , 并 更 新 内 核 模 块 的 Radix 树 结 构数据。 ( 5) 移动管理程序还有计时功 能 , 当 本 机 所 注 册 的 CoA 生 命期终结时, 需重新向地址服务器进行注册。 5 地址服务器的软件实现 地 址 服 务 器 运 行 在 Windows 平 台 , 采 用 Winsock[7]实 现 其 通信功能。地址服务器的软件结构如图 6 所示。 地址服务器使用 UDP 协议与嵌入式代理应用程序进行通 信。为了提高服务器性能, 实现时采用多线程模式。一个线程监 听固定的 UDP 端口, 并发送与接收数据; 另一个线程对接收后 的数据进行处理。地址服务器的主要功能有: ( 1) 接 收 代 理 发 送 的 Register 消 息 , 把 代 理 的 HoA 与 CoA 放到 Radix 缓冲中保存, 并回送一个注册成功或失败的消息给 代理。 ( 2) 接 收 代 理 发 送 的 Update 消 息 , 更 新 Radix 缓 冲 中 的 地 址 数 据 , 回 送 结 果 给 代 理 , 并 发 送 Notify 消 息 给 所 有 已 经 订 阅 此代理的主机。 ( 3) 接 收 代 理 发 送 的 Subscribe 消 息 , 保 存 在 相 应 的 列 表 , 126 2006.21 计算机工程与应用 以上四个步骤实现了对各个页面对于用户的可见性的控 制。由于页面功能划分遵循原则 1, 则控制用户对页面的可见 性, 即实现了对用户访问权限的管理。 5 总结 在 B/S 应 用 模 式 下 , 建 立 角 色 和 页 面 的 对 应 关 系 , 通 过 控 制页面对用户是否可见来实现用户权限的管理, 其最大优势在 于 : 简 化 了 RBAC 模 型 的 实 现 , 减 少 了 应 用 编 程 实 现 中 繁 琐 的 权限判断逻辑代码, 大量减少了编程工作量, 使 Web 应用的开 发更加方便迅速。 但其缺点也很明显: 由于这种方法将页面功能和用户角色 绑定起来, 权限控制的粒度取决于对于页面实现功能的划分: 页面实现的功能越少, 控制粒度越细, 灵活性和扩展性就高, 但 造成应用的页面过多, 开发和管理困难; 反之, 页面的功能越 强, 但灵活性和扩展性就越差。因此该方法要求在设计阶段必 须有合适的页面- 功能划分, 这一点对于应用的实施来说具有 相当的难度。( 收稿日期: 2005 年 10 月) 参考文献 1.Ravi Sandhu, Edward Coyne, Hal Feinstein et al.Role- Based Access Control Models[J].IEEE Computer, 1996; 29( 1) : 38 ̄47 2.叶锡君, 许勇, 吴国新.基于角色访问控制在 Web 中的实现技术[J].计 算机工程, 2002; 28( 1) : 167 ̄169 3.祖峰, 熊忠阳, 冯永.信息系统权限管理新方法及实现[J].重庆大学学 报, 2003; 26( 11) : 91 ̄94 并从 Radix 缓冲中查找相应的地址数据, 把它回送给代理。 6 性能测试 在 本 文 的 测 试 环 境 中 , 用 两 个 基 于 Intel 公 司 PXA255 400MHz 处理器开发板作为嵌入式移动代理。两台 P4 1.6G 的 Windows XP 主机各自通过一个移动代理相连, 嵌入式代理之 间用思科 352 无线网卡通信。然后一台主机 Ping 另一台主机。 Ping 命 令 一 次 发 送 32 byte 数 据 , 再 收 到 回 应 , 总 共 经 过 二 次 数据包封装与二次数据包解封装。这样测试 100 次, 平均每次 的延时为 8ms。 7 结束语 本文首先简述移动 IP 协议, 并指出其不足之处; 然后介绍 了嵌入式移动代理的整体框架; 最后详细说明了移动代理的实 现。本文所实现的 移 动 管 理 方 案 , 可 以 有 效 地 解 决 系 统 对 HA 和 FA 的依赖; 能为操作系统屏蔽移 动 服 务 的 底 层 技 术 细 节 , 使操作系统得到透明的移动服务。( 收稿日期: 2005 年 11 月) 参考文献 1.C Perkins.IP Mobility Support[S].IETF RFC2002, 1996- 10 2.D Johnson , C Perkins , J Arkko.Mobility Support in IPv6[S].IETF RFC3775, 2004 3.T Narten, E Nordmark, W Simpson.Neighbor.Discovery for IP Version 6 ( IPv6) [S].IETF RFC2461, 1998 4.Microsoft Corporation.Windows CE.net 4.2 documents.2003- 03 5.C Perkins.IP Encapsulation within IP[S].RFC2003, 1996- 05 6.Gary R Wright, W Richard Stevens.TCP/IP Illustrated Volume 2: The Implementation.2000- 07 7.http: //msdn.microsoft.com/

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。