[发明专利]Windows CE平台下源路由的实现方法无效
申请号: | 200810236506.7 | 申请日: | 2008-12-26 |
公开(公告)号: | CN101459945A | 公开(公告)日: | 2009-06-17 |
发明(设计)人: | 杨新宇;亢旭;叶安华;赵鹏;黄钺峰 | 申请(专利权)人: | 西安交通大学 |
主分类号: | H04W40/02 | 分类号: | H04W40/02;H04L12/56;H04W84/18 |
代理公司: | 西安通大专利代理有限责任公司 | 代理人: | 陈翠兰 |
地址: | 710049*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | windows ce 平台 路由 实现 方法 | ||
技术领域
本发明属于嵌入式移动平台Windows CE(以下简称WinCE)下建立无线自组织网络(Ad Hoc网络)源路由协议提供方法,特别涉及Windows CE平台下源路由的实现方法。
背景技术
操作系统自身开放程度的限制使我们不太可能对WinCE的核心协议栈本身作修改,因此只能通过调用现有的函数接口和增加功能模块的方式来实现Ad Hoc路由协议。在网络编程方面,WinCE支持NDIS(Network DriverInterface Specification)中间层驱动,可以用于网络数据包的过滤和修改;提供Windows Sockets网络通信接口,可以用于部分收发包操作和对协议可用性的测试;提供IPHelper函数接口,可以用于对IP路由表的操作。基于以上原因,本方法主要描述了在NDIS层实现源路由的方法。
由于操作系统自身开放程度的限制,在网络协议编程方面,使用Linux系统平台可以更直观地在其网络层编写或修改,使其具备路由功能。相对于此,Windows平台并未为我们提供如此宽松的开发空间,WinCE下的路由协议也相对较少。当前WinCE下已实现的有AODV、DSDV等基于距离矢量的路由协议。因为系统自身具备路由功能,此类协议可以简单地利用系统自身的路由表实现转发操作。源路由的实现不仅需要此类技术的支持,还需要通过数据包头部信息的获取及修改,实现路由功能。
发明内容
本发明的目的在于克服上述现有技术不足,提供一种Windows CE平台下源路由的实现方法,描述了在嵌入式操作系统WinCE上源路由的实现方法及关键技术。使用了本方法的源路由协议不仅能使网络中的节点在一跳范围内具有良好的通讯性能,而且具备多跳通信能力,并可以正确地建立路由和实时地启动路由维护过程。本发明为其它Ad Hoc网络路由协议的编写提供了一种实用框架。
本发明的技术方案是这样实现的:包括以下步骤:
Step1在PASSTHRU实例程序的基础上,在发送封包的函数MiniPortSendPackets和接收封包的接口函数ProtocolReceivePacket中分别加入发送过滤器和接收过滤器,将截获的网络封包送入源路由算法模块进行处理,从而对处理的封包进行路由;
Step2发送过滤器用来判断上层发来的封包是否需要经过源路由算法模块的处理,源路由算法模块首先使用队列缓存没有到达目的节点的路由的封包,并为该封包发起一次路由发现过程;
Step3若路由发现过程返回一条路径,则利用IPHelper的API接口函数实时地更新位于TCP/IP协议栈的系统路由表,且同时为该封包创建源路由头部,该头部位于UDP头部之后、数据字段之前,将此路径放入该源路由头部path字段中,并设置一个指向该路径中每一跳的索引指针Index,在将头部各个字段作相应的初始化之后,向下发送至微端口;
Step4接收过滤器负责分离下层发来的封包是否是源路由协议的控制包,如果是协议的控制包则送入源路由算法模块进行处理,对于数据包,则根据path和Index字段综合判定是否已经到达目的节点,或者根据包头中提供的路由转发该数据包;
所述的源路由算法模块负责发送、接收、分析和处理源路由协议的控制包及数据包,控制包被定义为固定端口的UDP包,使用WinSocket的API接口发送,对数据包的分析和处理主要集中于对其包头的操作之上。
本发明通过对WinCE的NDIS层的研究,利用自定义的数据包头部、相应的控制包和NDIS层数据过滤的功能,完善了节点路由层的功能,为建立基于WinCE的Ad Hoc网络提供支持。
附图说明
图1为本发明的整体设计框架图;
图2为本发明的发送过滤器流程图;
图3为本发明的接收过滤器流程图。
下面结合附图对本发明的内容作进一步详细说明。.
具体实施方式
参照图1所示,在这里详细说明本发明的工作流程。
Step1在NDIS层的入口函数DriverEntry中为句柄SendPacketsHandler和句柄ReceivePacketHandler分别定义发包与收包入口函数MiniportSendPackets和ProtocolReceivePacket。在这两个函数中分别加入发送过滤器OutputHook和接收过滤器InputHook,以便将截获的网络封包送入源路由算法模块进行处理,从而对处理的封包进行路由;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810236506.7/2.html,转载请声明来源钻瓜专利网。