




已阅读5页,还剩59页未读, 继续免费阅读
(计算机应用技术专业论文)windows+ce平台上多径源路由的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 新一代移动通讯技术侧重于提高网络带宽和发掘网络性能,以应对急剧增长 的数据流和业务流的需求。同时,也注重对新增的电信服务类型的研究,以满足 日益增长的移动通信需求。然而,对于移动自组网的应用研究却关注不多。 考虑到无线接入的速度限制和对多媒体视频传输的性能要求,本文提出了具 有组通信功能的节点的设计:让基于w i n c e 平台的p d a 设备作为无线节点,采用 8 0 2 1 l b 作为无线网络接口,工作在a dh o c 模式;在网络层实现多径源路由, 并使用s i p 作为通讯的信令控制,在应用层进行视频传输;由此构成了具备组通 讯功能的节点。 为了实现上述设计,需要分别实现路由协议的开发、s i p 信令的控制、流媒 体的传输三部分。本文重点研究的是如何在w i n c e 平台上实现多径源路由协议, 从而为上层的服务提供路由功能。 多径源路由是从动态源路由直接派生而来,它充分利用了动态源路由在路由 发现和路由维护过程中得到的多条路径信息,将数据包在多条路径上进行传递。 仿真结果表明:多径源路由能够显著提高数据包发送速率,并能降低端到端的延 迟以及平均队列长度,而只引入很少的额外开销。特别是对于多媒体服务,能提 供更好的链路性能。因此在设计中,作者选择m s r 作为网络层协议。 考虑到在l i n u x 平台下已经实现了d s r 和m s r 协议,而微软的视窗操作系统 作为目前最流行的操作系统,因此作者选择w i n d o w sc e n e t 作为目标开发平台。 利用w i n d o w s 系统提供的网络驱动接口规范,编写中间层驱动程序,添加多径源 路由算法,最终让安装有w i n d o w sc e n e t 的移动设备能够通过多径源路由算法 进行通信。 关键词:多径源路由,网络驱动接口规范,中间层驱动程序,路由发现,路由 维护 a b s t r a c t t h en e x tg e n e r a t i o nm o b i l ec o m m u n i c a t i o n sf o c u so ne x p a n d i n gt h eb a n d w i t ho r i m p r o v i n gt h ec a p a b i l i t yo fn e t w o r kt os a t i s i 母t h er e q i r e m e n t o fh i 曲s p e e d i n e r e a s i n gt r a f f i c s a l s o ,i tp u t sf o c u s o nt h er e s e a r c ho fn e w c o m i n gt y p e so fm o b i l e s e r v i c e s b u tt h er e s e a r c ho nt h ea p p l i c a t i o no f m o b i l en e t w o r ki sn o tt o om u c h c o n s i d e r i n gt h ep e r f o r m a n c ea n dc o s t ,t h i sp a p e rp r o p o s et h ec o n c e p tt h a tn o d e s b a s e do nw i n c ep d au s i n g8 0 2 1l bw i r e l e s sn e t w o r ki n t e r f a c ec a r d si na dh o cm o d e c a l lh a v et h eg r o u pc o m m u n i c a t i o na b i l i t yb yi m p l e m e n tm s ro nn e t w o r kl a y e ra n d u s i n gs i ps i g n a l i n gt oc o n t r o lt h ec o m m u n i c a t i o n t oi m p l e m e n tt h ed e s i g np r o p o s ea b o v e ,w ep a r to u rr e s e a r c ho nt h r e ep a r t s :t h e i m p l e m e n to fm s r ,s i ps i g n a lc o n r t o l ,t h et r a n s f f e ro fm u l t i m e d i as t r e a m t h i sp a p e r f o c u s e so ni m p l e m e n tm s ro nw i n c ep l a t f o r m s ot h a ti tc a np r o v i d et h er o u t i n g f u n c t i o nt ot h eu p p e rl a y e r t h em u l t i p a t hs o u r c er o u t i n g ( m s r li st h ed k e e td e s c e n d a n to fd y n a m i c s o u r c er o u t i n gp r o t o c o l ( d s 鼢i tu s em u l t ip a t h st os e n dp a c k e t ss ot h a ti tc a nf u l l y u s et h er o u t e st h a tg e t 蛀n gd u r i n gt h er o u t ed i s c o v e r ya n dr o u t em a i n t a i n t h e s i m u l a t i o nr e s u l t ss h o wt h a tm s ri m p r o v e st h ep a c k e td e l i v e r yr a t i oa n dr e d u c e st h e e n d - t o - e n dd e l a ya n dt h ea v e r a g eq u e u es i z e , w h i l ea d d i n gl i t t l eo v e r h e a d s ow e c h o o s em s ra st h en e f w o r kl a y e rp r o t o c o li no u rd e s i g n c o n s i d e r i n gt h a tt h e d s r m s rh a sb e e ni m p l e m e n t e do nl i n u xw ec h o o s e w i n d o w sc e n e ta st h et a r g e tp l a t f o r m 船t h em i c r o s o f tw i n d o w so p e r a t i o ns y s t e m i st h em o s tp o po sc u r r e n t l y b yu s i n gt h ew i n d o w sn e t w o r kd r i v e ri n t e r f a c e s p e c i f i c a t i o n , w ea d d i n gt h em s ra r o g r a t h mt ot h ei n t e r m e d i a t ed r i v e ra n df i n a l l y m a k et h en o d e so nw i n d o w sc e n e tp l a t f o r mc a nc o m m u n i c a t ew i t he a c ho t h e rb y r o u t i n go nm s r k e yw o r d s :m u l t i p 砒s o u r c er o u t i n g ( m s r ) n e t w o r kd r i v e ri n t e r f a c e s p e c i f i c a t i o n ( n d i s ) ,i m m e d i a t ed r i v e r ( i m d ) ,r o u t ed i s c o v e r y , r o u t em a i n t e n a n c e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得鑫生盘茎或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:睬南迎签字日期:善,p 易年月日 学位论文版权使用授权书 本学位论文作者完全了解鑫壅盘堂有关保留、使用学位论文的规定。 特授权叁注盘茎可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 紊 斑 签字日期:如菇年f 月f 角 导师签名:企舂冈i 签字日期:v6 年f 月,y 日 第一章绪论 1 1 本文选题背景及其意义 第一章绪论 新一代的移动通讯技术不应只关注数据流的急剧增长和新增的无线接口类 型,而应该涵盖无线通讯并能满足高速无线接入的需求。为了兼顾性能和丌销, 本文提出了具备组通讯功能的节点的概念,如图1 1 所示。 a p p l i c a t i o n s i p t c p ,i p d s r ,m s r m a c p h y s i c 图i - 1 节点架构 基于w i n c e 平台的p d a 设备作为无线节点,采用8 0 2 1 l b 作为无线网络接 口,工作在a dh o c 模式。通过在网络层实现m s r ,并使用s i p 作为通讯的信令 控制,使之具备组通讯能力。 多径源路由( m u l t i p a t h s o u r c e r o u t i n g ,m s r ) 是从动态源路由( d y n a m i c s o u r c e r o u t i n g p r o t o c o l ,d s r ) 直接派生而来。仿真结果表明:多径源路由能够 显著提高数据包发送速率,并能降低端到端的平均队列长度,而只引入很少的额 外开销【1 】。因此在设计中,本文选择m s r 作为网络层协议。 人们已经在基于l i n u x 的p c 和p d a 上实现了d s r 和m s r 。而目静,微软 的视窗操作系统占据了大量的市场份额,并支持众多的硬件平台和无线网络接 口,而w i n d o w s c e 作为w i n d o w s 系列的一员自然在嵌入式操作系统中占据重要 地位。因此本文w i n d o w sc e 作为目标开发平台。 人们已经在w i n d o w s 平台上实现了d s r ,但在w i n d o w sc e 上还没有相应 的版本。因此为了满足上面提出的设计,本文需要实现w i n d o w sc e 平台上的 m s r 路由协议。同时,通过本文的研究工作,可以了解如何编写基于w i n d o w 平台的驱动,从而为今后的学习和研究工作奠定基础。 本文的设计目标是,在w i n d o w s 平台上实现d s r m s r 协议,并建立测试 平台,加载d s r m s r 协议。如果可以,对其进行扩展,以用于实现其他的m a n e t 网络协议。 第一章绪论 1 2 本文的主要工作 本文的主要工作是实现w i n d o w sc e 平台上的多径源路由协议。 首先,选择w i n d o w sd r i v e rd e v e l o p m e n tk i t ( d d k ) 【2 】中n d i s 部分的驱动 例子程序p a s s t h r u 作为开发原型。通过修改p a s s t h r u ,使其具备数据包的 解析、缓存、转发等功能。然后添加m s r d s r 路由算法。 算法( 驱动) 完成后,首先在虚拟机中进行测试,然后在w i n d o w sx p 平台 下测试其可运行行和效能。接着移植w i n d o w sx p 下的驱动程序到w i n d o w $ c e 平台上,利用w i n d o w sc e 的开发环境p l a t f o r mb u i l d e r 重新编译程序,并加载 到w i n d o w sc e 模拟器中,进行测试,验证其可运行性。 1 3 本文结构 本文首先在第二章介绍m s r d s r 路由协议的基本概念及其特点,第三章介 绍w i n d o w sc e 平台及n d i s ,然后在第四章中详细介绍了w i n d o w s 平台上 m s r d s r 协议的设计与实现;第五章介绍了m s r d s r 协议在w i n d o w s 平台上 的安装测试及其运行性能。最后在第六章对本文进行总结和展望。 第二章m s r d s r 路由协议 第二章m s r d s r 路由协议 无线通讯技术出现后,如何将多个具备无线通信功能的节点组织起来成为人 们研究的重点。目| j ,从无线节点的组织架构上分,主要有两种方式【3 】: 其一,基站模式。网络中的各个节点通过一个称为接入点( a c c e s sp o i n t a p ) 的固定设备进行通信。加入网络的节点发送数据包给接入点,接入点再将数据包 转发给目的节点,从而实现各个节点之间的信息交流。 其二,自组织模式,又称a dh o c 模式。网络中没有固定设备( a p ) 的存在。 所有节点,或能够直接与目的节点通信( 单跳) ,或通过其他中间节点转发数据 包从而实现通信( 多跳) 。 由此可见,与传统网络中存在固定的路由设备不同,a d h o e 网络中的所有节 点需要具备路由功能,才能实现实现数据包在多跳a d h o c 模式下的转发功能。 同时,考虑到a dh o e 网络中节点具有可移动性以及有限的电源,因此,目 前提出的各种无线网络路由协议都是按需路由协议,即只有当有数据包要发送或 转发时才会构建到达目的断的路由,并根据需要维护链路信息。 按需路由一般包括两个部分:路由发现和路由维护。根掘路由发现的过程、 维护路由信息的方法以及传输数据方式的不同,人们设计出了多种的按需路由协 议,如a o d v 、d s r 和m s r 等。 本文要实现的是多径源路由协议,即m s r ( m u l f i p a t hs o u r c er o u t i n g ) 。因此 这一章将首先介绍动态源路由协议,然后介绍动态源路由基础上扩展实现的多径 源路由协议。 2 。1d s r 路由协议 2 1 1 动态源路由协议简介 动态源路由( d y n a m i cs o u r c er o u t i n g ,d s r ) 协议1 4 】是一种为适应在多跳无 线a dh o c 网络中的移动节点所设计的路由协议,它允许无线网络在不存在任何 固定设备和统一管理的情况下完全自主地构建网络并进行通信。 同其他按需路由协议一样,d s r 路由协议包含了路由发现和路由维护两部分 机制。它们协同工作以保证无线网络中的节点可以发现并保持到达网络中任意目 的节点的源路由。源路由概念在d s r 中的使用,使得数掘包可以根据已经获得 第二章m s r d s r 路由协议 的路径进行发送,中间节点只需要根据携带在源路由包中的下一跳目的节点进行 数据包转发。同时,利用侦听到的路由信息,中问节点可以减少新的路由发现过 程,大大提高了性能。由于在获得源路由之后,可以很快的比较发现重复节点, 从而有效地避免了路由循环。 2 1 2d s r 基本路由发现过程( r o u t e d i s c o v e r y ) 当源节点有新的数据包要发往目的节点的时,它将在该包的包头里添加标识 到达目的节点的源路由信息。首先,源节点会在路由缓存中查询是否存在到目的 节点的路由。如果存在,则构建源路由包将其发送出去;如果不存在,则源节点 将发起路由发现以获得到达目的节点的路由信息。此时,动态源路由算法会先将 数据包缓存在发送缓存( s e n db u f f e r ) 中。如果发送缓存满,则使用一定的淘汰 算法来保证其能正常工作。 除了新的数据包,对于上面提到的暂时存储在发送缓存中的数据包,节点也 需要周期性的发起路由请求,以将数据包发送出去。当然,节点也可以采用一定 的超时机制来丢弃数据包,由上层协议进行重传。 当发起路由请求后,节点就需要维护一个路由请求表。如果在某一段时间内, 已经有发往同一目的地址的路由请求包,则在收到路由应答之前,发往此目的节 点的所有数据包都应该先缓存起来。这样就可以避免在某一段时间内发往同一个 目的节点的路由请求包的泛滥。当超过一定时间还没有收到路由应答,则节点应 该发起新的路由请求。 路由请求包一般包含以下四个部分; ( 1 ) 源节点的地址:记录了发起路由请求的节点妒; ( 2 ) 目的节点地址:记录了请求的目的节点m ; ( 3 ) 路由请求i d :标识由源节点发出的路由请求的编号; ( 4 ) 路由列表:记录了路由请求包经过的节点口列表。 例如,当节点a 需要得到到达节点e 的路由时,由节点a 发起的路由发现 过程如下图所示: a a ,b a b ,c a b ,c ,d 三) m = 三) m = :母- o = h e ) 舻( j 图2 - 1 路由发现图示 首先节点a 将构造一个路由请求包,并进行初始化( 源地址为节点a 的璩 地址,目的地址为节点e 的i p 地址,路由请求d 为2 ,初始路由列表为空) 。 构造好之后,就广播出去。处在a 的通信范围内的节点,如节点b ,收到该数 第二章h s r d s r 路由协议 据包之后首先判断是否为目的节点。如果不是,则将自己的i p 地址写入地址列 表,然后转发( 广播) 该数据包。如上图所示,节点c 、d 也如是处理。当到达 节点e 的时候,e 判断出自己就是目的地址。此时,节点e 就得到了从节点a 到节点e 的路由信息,即a ,b ,c ,d 。由此,节点e 就可以根据这个路由请求 包构造路由应答包。路由应答包的传送可以采用两种方式,一种是将已经得到的 由a 至e 的路由反序,即可得到由e 到a 的路由,但前提是链路是可双向通信 的。另一种是,如果节点e 有到达a 的路由,则构造源路由包,将路由应答包 作为数据内容发送出去:如果没有,则发起新的路由请求,并附带路由应答包。 2 1 3d s r 基本路由维护过程( r o u t em a i n t e n a n c e ) 当采用源路由包传输数据时,需要保证链路的连通。因为a dh o c 网络中, 节点的移动性或者电源不济等原因都可能导致网络拓扑发生变化,从而使先静获 得的路由信息不再能反映当前网络连通状况而变得无用。此时,就需要采取一定 的措施来保证在发生断路的情况下,能够及时更新路由信息,并将数据包传送到 目的节点。这些措施就成为路由维护。仍采用上面的例子,如下图所示:当节点 a 获得到达节点e 的路由之后,就会利用此路由发送数据包给节点e 。 臣工驾:屯田 图2 - 2 路由维护图示 当数据包成功的发送给下一跳,如从b 到c ,节点c 收到数据包之后就会 发送确认包给节点b ,节点b 如果收到节点c 发送过来的确认包之后就知道节 点c 已经成功收到源路由包,因此由b 至c 的链路工作正常。如果发生断路, 如从c 到d ,节点d 由于某种原因无法正常工作,那么节点c 就无法收到由节 点d 发送过来的确认包。当在某一段时间内,节点c 一直都没有收到节点d 的 确认包,而节点c 又有数据包要发送给节点d ,那么节点c 就可以认为节点d 已经离开了由a 至e 的路由。此时,节点c 就会将所有包含c - d 的路由信息 删除,同时构造路由错误包并广播出去。其他节点,如a ,b ,收到此路由错误 包后,也会删除所有包含c d 的路由项。此时,如果仍有数据包要发送给节点 e ,那么如果存在到达e 的其他路由则采用其他路由。如果没有,则发起新的路 由发现过程。 第二章m s r d s r 路由协议 2 1 4d s r 其他提高性能措施 2 141 缓存侦听到的路由信息 当节点在接收或者转发数据包的时候,都能够获得数据包中的路由信息,因 此,并不一定每次要发送数据包都需要发起路由请求,而可以根据侦听到的路由 信息构造源路由包。例如,第一个例子中,在节点a 获得到达节点e 的路由信 息的同时,节点d 也获得了到达节点b 的路由信息。因此,当节点d 要何节点 b 通信的时候,就可以直接利用此路由信息进行通行。 b c d 田e 二卜 j因 图2 - 3 缓存侦听到的路由 当然,这里假定节点的在m a c 具备双向通信的能力,即节点b 发送的数据 包能够被节点c 接收,而节点c 发送的数据包也能够被节点b 接收。如果链路 不是双向的,或者个别节点不具备双向通信的能力,那么在更新路由的时候就需 要分别侦听并记录不同方向的路由。 2 142 用路由缓存应答路由请求 当中间节点收到源节点的路由请求包时,要检查本地节点的路由缓存中是否 有到达目的节点的路由。如果有,则利用此路由构造路由应答包,而不再转发此 请求包。这里需要注意的是:构造路由应答包的时候,要去掉重复节点信息以避 免环路的出现。 如下图所示,节点a 发起路由请求以获得到达目的节点e 的路由。当请求包 到达节点f 时,由于在节点f 的路由缓存中存在了一条从节点f 到节点e 的路 由,此时就可以利用这条路由信息构造应答包,而不必继续转发。 m m : i 一 图2 _ 4 用缓存路由信息应答 第二章m s r d s r 路由协议 此时通过节点序列的拼接,得到这样的路由序列:a b - c f c - d e 。 在这个序列中出现了重复节点c 。所以,在节点f 处就应该删除重复节点c 及 其之| 日j 的路由,即c f - c ,最终得到的路由列表为:a b - c d e 。但是这 样做有一个隐患就是,如果当发生路由错误的时候,节点f 可能不能及时得到这 个错误信息。不过,由于有路由确认包的存在,所以如果节点f 要与节点e 通 信的话,仍然能够识别出路由错误。如果不需要通信,那么也不会影响路由拓扑。 2 1 4 3 防止路由应答风暴 由于节点可以利用自己的路由缓存对路由请求包进行应答,因此在某些情况 下就会出现路由应答风暴。如下图所示:当节点a 广播目的节点为g 的路由请 求包时,此时它的邻居节点( b ,c ,d ,e ,f ) 都缓存了到达该目的节点的路 由,因此每个邻居节点都会向节点a 发送一个路由应答包,而且可能是同时发 送这个路由应答包。而在无线网络中,这种情况的出现不仅可能导致冲突的发生, 而且也占用了带宽。 c b g a ,b ,g 图2 - 5 发生路由应答风暴 r l 。_ j 为了减少和避免这种情况的发生,可以对路由应答采用一定的延迟机制,如 随机延迟或者二进制退让法,以减少冲突的发生。常用的算法是:应答的节点按 照d = h ( h 1 + r ) ,来计算应答的延迟时间,其中,d 为延迟,r 是一个0 1 范围内的随机数字,h 为一个延迟常数,但至少为两倍的无线网的信号传输延迟。 h 为跳数。 如果节点侦听到了早于它发送的路由应答,而且该路由应答中的路径比它所 要发送的路由应答中的路径要短,那么该节点可以选择取消发送它自己对路由请 求的应答或者延迟较长一段时间再发送。 2 14 4 自动路由缩短 当某条路由信息中的一个或多个中间节点变得无用时,源路由应该能够自动 w 印w甲甲卤 墨匿 第二章m s r d s r 路由协议 删除这些无用的节点,从而缩短路由。当收到源路由包时,节点会检查源路由列 表。如果这个节点不是上一跳的“直接下一跳的目的”节点的话,且在源路由中 未使用( 即未经过) 的部分中出现,那么就可以认为从上一跳到此节点之前的其 他中间节点不再需要。 c d 图2 - 6 自动路由缩短 如图8 所示,节点c 侦听到一个本应该从a 发送到b ,再从b 发送到c 的 数据包。因此在节点c ,上一跳( 即节点a ) 与此节点( 即节点c ) 之问的中间 节点b 就不再需要了。缩短后的路由为:a - c - d 。 2 2m s r 路由协议简介 由上面的介绍可以看到:动态源路由协议是按需的路由协议;它不需要靠发 送任何的周期性消息来获得网络状态。在d s r 的路由发现过程中,由于对路由 应答并没有做太多的限制,因此在一次或多次路由发现过程之后,会得到从源端 到目的端的多条路由。然而d s r 在设计上并没有充分利用这些额外的路由信息。 因此,人们在d s r 基础上提出了多径源路由协议,即通过计算链路的踟,在 多条路径上进行负载的分配。 采用多径源路由之后,就可以实现许多的应用。例如,可以对不同的路径采 用不同的权重,以提供不同q o s 的应用。如将多媒体服务中的图像与声音分离 发送。或者,也可以利用将同样的数据在不同的路由中传送以提高可靠性。 由于需要维护多条路由,因此就需要更大的路由表控件以及更多的c p u 处 理时间。但是,m s r 继承了d s r 天然的按需路由特点,从而减少了这些开销: 其一,源路由机制使得中间节点不需要进行过多的处理,所有的路由决定和权重 分配都是在源端完成。其二,按需的特性本身就大大减少了路由存储所需的空间 和路由计算所需的时间。 与逐跳路由不同,源路由中每个数据包都携带了从源端到目的端的完整路由 信息,即一个m 地址序列。m s r 协议的设计了如下所示的数据结构,用以存储 路由信息、计算和分配链路的权重。 第二章_ i s r d s r 路由协议 s t r u c tm u l d c s t i mi n d e x ; i dd e s t ; f l o a td e l a y ; f l o a tw e i g h t ; ) ; 其中:d e s t 是目的节点的编号,对应于一个i p 地址;i n d e x 是在d s r 的路由 缓存中存储的到达目的节点路由信息序号;d e l a y 是该路由r t t ;w e i g h t 是根据 负载分布算法计算得到的权重 利用这个数据结构,就可以统计链路的负载,并根据统计的到的r t t 和已经 分配的负载来调控不同链路上的数据流也可以据此,来对数据包进行分级实现 不同的服务类型,等等 仿真结果表明,m s r 较之d s r 能够获得更大的链路的吞吐量,减少端到端 延迟,较少丢包率以及更快的链路恢复速度。 第三章w i n d o w sc e 平台及n d i s 第三章w i n d o w sc e 平台及n d i s 本文的开发目标平台是w i n d o w s c e ,因此这一章将对w i n d o w c e 平台进行 介绍。同时,本文的设计架构采用了微软的网络驱动接口规范,即n d i s ,因此, 还会介绍n d i s 的基本概念及如何利用n d i s 进行网络驱动程序的开发。 3 1w i n d o w sc e 平台概述 相对于大多数人熟悉的w i n d o w s 视窗系列,如w i n d o w s9 8 ,w i n d o w s2 0 0 0 , w i n d o w sx p ,作为嵌入式设备上的操作系统的w i n d o w sc e 并不为人们所了解。 然而,它却出现在我们身边的很多地方,小到手机、掌上电脑,大到重型机械、 自动生产线,乃至为国人所骄傲的神州载人飞船上都有它的身影。 随着网络、通信、芯片等技术的发展,嵌入式设备的功能更加多元化。而作 为硬件与应用之间的接口和管理者的嵌入式操作系统也扮演越来越重要的角色, 具备更加强大的功能【”。作为嵌入式系统中的后起之秀,w i n d o w sc e 借助传统 视窗操作系统所具备的友好的用户界面,全面而细致的技术支持和超强的兼容 性,占据了大量的市场份额。 3 1 1w m c e 集成开发环境 对于一个开发人员来说,功能前大、方便易用的集成开发环境是不可缺少的。 因此,针对w i n d o w sc e ,微软提供了p l a t f o r mb u d d e r 这样一个类似v i s u a ls t u d i o 的集成开发环境。利用它,可以轻松的编辑,编译的程序。还可以根据开发的具 体目标平台,定制并生成一个镜像,然后在模拟器中加载运行这个镜像,以方便 程序的调试,实现所见即所得的真实效果,大大缩短了程序的开发周期。不仅如 此,p l a t f o r mb u i l d e r 还可以自动为定制的平台生成相应的s d k ,以方便程序的 开发和调试。 3 1 2w m c e 模拟器 w i n c e 模拟器是一个模拟w i n c e 硬件平台行为的工具,使用它可以用软件 的方法测试模拟硬件行为的运行时镜像 “。如常见的桌面显示、各种应用程序的 使用。特别的,它能够虚拟出常用的真实设备,如p c i 总线,声卡,显卡,网卡 第二章w i n d o w sc e 平台及i d i s 等,对这些设备,都能够如真实设备上一样进行管理和控制。因为都是虚拟的, 所以不用担心会出现安全性问题。因此,人们就能够针对这些虚拟设备进行编程 和调试。 由于镜像的运行需要耗费一定的c p u 和内存资源,因此从性能上看,在模 拟器上运行的应用程序往往比直接在硬件上运行的应用程序的速度要慢。 3 2 网络驱动接口规范( n d i s ) 3 2 1n d i s 概述 m i c r o s o f tw i n d o w s 系列的网络体系结构设计都是依据国际标准化组织 ( i s o ) 开发的7 层网络模型。i s o 开发系统互连( o s l ) 参考模型于1 9 7 8 年被 引进,用来描述网络是一个一系列的协议层,每个协议层上都有特定的功能。一 个设计合理的处于两个相邻层的界面定义了下一个协议层为上一个协议层提供 何种服务及如何实现这些服务的内容【刁。 w i n d o w s 下的网络驱动程序实现网络体系架构中自下而上的4 个协议层:物 理层,数掘链路层、网络层和传输层。n d i s 从网络驱动程序中抽象了网络硬件, 并在分层的网络驱动程序中规定了一个标准接口,从而抽象了低层次的硬件来提 供给搞层次网络上的网络管理。同时,n d i s 也维护户用于网络驱动程序的状态 信息和参数,包括函数的指针,句柄,连接的参数快和其他的一些系统变量。可 以说,n d i s 的引入将网卡、网络驱动程序和操作系统完全独立开,它们之间通 过n d i s 提供的接口进行通信,从而明晰了各自的分工,也方便开发。 w i n d o w s 支持三种基本的内核模式网络驱动程序:微软口驱动程序,中间层 驱动程序和协议驱动程序。 ( 1 ) 微端口驱动程序:一个微端口的驱动程序管理一个网络接口卡( n i c ) , 包括通过n i c 发送和接收数据。同时提供与高级驱动程序的接口。 ( 2 ) 中间层驱动程序:一个中层协议驱动程序处于微端口驱动程序和协议 驱动程序之间,分别提供了与二者的接口。中间层驱动程序的存在有重要的作用: 首先它可以在不同的网络媒体中起到翻译的作用,如将a t m 微端口上的数据包 传提给以太网的传输驱动程序或反之。其次,过虑数据包,如对数据包进行优先 级划分。还有就是可以实现多个n i c 之间的负载平衡,即将数掘包通过多个网 卡发送出去,以减轻个别网卡的负担,提高效率。 ( 3 ) 协议驱动程序:协议驱动程序通常在一个传输驱动程序中被用来作为 最底层的驱动程序来实现传输协议栈,如t c p i p 协议栈。传输协议驱动程序分 配,拷贝来自应用程序申请发送的数据包,同时也提供协议接口来接收从下层收 第二章w i m o w sc e 平台及n d i s 到的数据包。 综上所述,可以把n d i s 所划分的网络层次表示如下图所示的层次结构: 图3 - 1n d i sd r i v e r 在本文的实现中,选择的是中间层驱动程序。因此下面重点介绍n d i s 的中 间层驱动程序。 3 2 2 中间层驱动程序( i m d ) 中问层驱动程序( i n t e r m e d i a t e n d i sd r i v e r ,i m d ) 是介于微端口驱动程序 和协议驱动程序之间的为了实现某些功能而抽象出来的。 在它的下边界提供了协议驱动接口,因此能够将中间层驱动程序加载到其他 微端口驱动或者中间层驱动之上;在它的上边界提供了为端口驱动接口,因此能 够挂载到其他协议驱动或者中问层驱动之下。这样的挂载,或者说绑定,被称之 为外部绑定,是由n d i s 控制和管理的。而中将层驱动本身的协议驱动和微端口 驱动之间的绑定( 又称内部绑定) 不是由n d i s 控制的,因此根据内部绑定的对 应关系,可以将中将层驱动程序划分成两大类型:过虑驱动程序和m u x 驱动程 序。 3 2 2 1 过虑驱动程序: 过虑驱动程序是1 对1 关系的中间驱动程序。每一个微端口驱动都对应了一 第三章w i n d o w sc e 平台及n i ) i s 个协议驱动。 p r o w 删 螨r te d g e f i 妊r l 旭e 陋姆 孙 口 p r 相删e 6 归 e 碰刚掰捃 笋 e 撼删8 | “姆 图3 - 2n d i sf i l t e rd r i v e r 如上图所示,对于每一个底层的微端口驱动而言,中间层的协议接口将绑定 其上,而对于上层协议栈,每一个中间层的微端口接口都将挂在其下。这些都是 外部绑定( e x t e r n a l b i n d i n g s ) 。而每一个中间层自己的协议驱动和微端口驱动之 间是一一对应关系。这些称之为内部绑定( i n t e r n a lb i n d i n g s ) 。 在w i n d o w 系统中,过虑驱动程序有且仅能有三种类型,它们自上而下分别 是:包调度( s c h e d u l e r ) ,负载平衡( 1 0 a d b a l a n e e ) 和错误挽救( f a i l o v e r ) 。 ( 1 ) 包调度:这种中间层驱动位于协议栈的最上层,如果数据包携带了8 0 2 1 p 协议所规定的头部,则该驱动能够根据数据包的优先级来提供相应的服务质量。 ( 2 ) 负载平衡:这种中间层驱动位于包调度和错误挽救之间,它能够在驱 动绑定的多个底层微端口之间平衡发送的负载。 ( 3 ) 错误挽救:这是最底层的过虑驱动。当某个绑定的底层微端口无法工 作时,它能够自动的选择可替代的微端口驱动,继续为上层提供服务。 3 2 2 2m u x 驱动程序: m u x 驱动程序是1 对多或者多对1 关系的中间驱动程序。 第二章w i n d o w sc e 平台及n d i s p r 科o m l 赫 狲d 甜le d g e o 删m u x i n t e r m 酬ed 脚e r p m t o a 0 4e d g e e x t c c n j & r i d 瓠g s e ) 畦e r a a l8 皤h t 昭 臣堕三口臣堕圈 图3 - 3n d i so n e - t o - nm u :xi n t e r m e d i a t ed r i v e rc o n f i g u r a t i o n 一个一对n 的m u x 中间层驱动程序,可以绑定到多个物理设备上。传输驱 动程序绑定到一个虚拟的m u x 微端口驱动上。 耩n 呻 椰驴 n 4 0 - o n e 赫u x 打蚌e 册e 由咖d 月v e r e 甜醐德l 韵堪哦芦 lm 删舳牌x | i ,i 恻鲰脚 i 。唧tl p 翔i d c 嘲神笋 妯b h 吲商儆b r 笋 图3 - 4n d i sn - t o - o n ei v l u xi n t e r m e d i a t ed r i v e rc o n f i g u r a t i o n 一个n 对一的m u x 中日j 驱动程序可以在单个物理设备上虚拟出多个微端口 驱动接口给上层协议栈。 第三章w i n d o w sc e 平台及n d i s 3 2 3p a s s t h r u 驱动例子程序 在本文的设计中,选择了n d i s 的p a s s t h r u 例子程序作为设计和实现的架 构基础。p a s s t h r u 是一个典型的过虑驱动程序。 3 2 3 1d r i v e r e n t r y 函数 与应用层程序中的m a i n 函数一样,中间层驱动程序也需要有程序初始化的 入i s i 函数。在驱动中,这个入口函数名为d r i v e r e n t r y 。具体定义如下: n t s t a u s d r i v e r e n t r y ( i np d r i v e r _ o b j e c t d r i v e r o b j e c t , i np u n i c o d e _ s t r i n g r e g i s t r y p a t h ) ; 其中: d r i v e r o b j e e t 为系统中指向该驱动的指针; r e g i s t r y p a t h 为该驱动在注册表中对应的路径。 在中问层驱动程序中,d r i v e r e n t r y 至少应该完成以下工作: ( 1 ) 调用n d i s m i n i t i a l i z e w r a p p e r 通知n d i s 有新的微端口驱动要进行初始 化。并将指向驱动本身的指针存储在n d i s w r a p p e r h a n d l e 中: ( 2 ) 利用获得的n d i s w r a p p e r h a n d l e 句柄调用n i d s l m r e g i s t e r l a y e r d m i n i p o r t 函数,注册m i n i p o r t x x x 系统功能函数并开放出为上层协议驱动提供的接口。 ( 3 ) 、调用n d i s r e g i s t e r p r o t o c o l 函数注册p r o t o c o l x x x 系列功能函数并开放 出为底层m i n i p o r t 驱动提供的接口,并将本身绑定到底层驱动程序上。 ( 4 ) 、如果既注册了m i n i p o r t x x x 函数又注艇了p r o t o e o l x x x 函数,则调用 n d i s l m a s s o c i a t e m i n i p o r t 函数,通知n d i s 库这个中间驱动程序,这样既提供了 底层p r o t o e o l x x x 接口,又提供了上层m i n i p o r t x x x 接1 2 1 。 第三章w i n d o w sc e 平台及n d i s 图3 - 5d r i v e r e n t r y 注册中问层驱动流程 3 2 3 2 注册中间微端口驱动 中间层驱动程序通过调用n d i s l m r e g i s t e r l a y e r e d m i n i p o r t 导出m i n i p o r t x x x 函数。n d i s i m r e g i s t e r l a y e r e d m i n i p o r t 以如下方式进行声明: n d i s _ s t a t u s n d i s l m r e g i s t e r l a y e r e d m i n i p o r t ( i nn d i s _ h a n d l e n d i s w r a p p e r h a n d l e , i np n d i s m i n i p o r t c h a r a c t e r i s t i c sm i n i p o r t c h a r a e t e r i s t i e s , i nu 1 n tc h a r a c t e r i s t i c s l e n g t h , o u t p n d i s h a n d l e d r i v e r h a n d l e ) ; 中间层驱动程序保存调用n d i s l m r e g i s t e r l a y e r e d m i n i p o r t 后返回的 d r i v e r h a n d l e 句柄,然后调用n d i s l m l n i t i a l i z e d e v i e e l n s t a n c e 函数,请求中间层驱 动程序的m i n i p o r t l n i t i a l i z e 函数对虚拟n i c 进行初始化时,将该句柄输入n d i s 。 第二章w i n d o w sc e 平台及n d i s 当中间层驱动程序成功的绑定到一个或多个低层n i c 驱动程序上或者当其绑定 在一个非n i c 设备驱动程序上后,将调用n d i s 订i n i t i a l i z e d e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源防城港市2025秋招笔试题库含答案
- 中国广电那曲市2025秋招企业文化50题速记
- 中国广电茂名市2025秋招综合管理类专业追问清单及参考回答
- 中国广电博尔塔拉自治州2025秋招供应链采购类专业追问清单及参考回答
- 黄山市中石油2025秋招面试半结构化模拟题及答案机械与动力工程岗
- 国家能源福建地区2025秋招财务审计类面试追问及参考回答
- 中国广电江西地区2025秋招企业文化50题速记
- 嘉兴市中石化2025秋招面试半结构化模拟题及答案炼油设备技术岗
- 泉州市中储粮2025秋招战略研究博士岗高频笔试题库含答案
- 中国广电宝鸡市2025秋招供应链采购类专业追问清单及参考回答
- 反诈知识竞赛题库及答案(共286题)
- 《有理数加减法的混合运算-添括号》教学课件
- 质量承诺保证保函
- 2025年10月自考15040习概押题及答案
- 安徽省宿州市埇桥区教育集团2024-2025学年上学期九年级第一次月考数学试卷
- 汾酒白酒招商手册
- 甜米酒创业计划书
- 塔吊租赁服务技术实施方案技术标
- 员工组织承诺的形成过程内部机制和外部影响基于社会交换理论的实证研究
- 优质课件:几代中国人的美好夙愿
- 2023年真空镀膜机行业市场分析报告及未来发展趋势
评论
0/150
提交评论