




已阅读5页,还剩46页未读, 继续免费阅读
(计算机应用技术专业论文)ad+hoc网络分簇节点组通信功能的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 随着人们对于无线通信技术需求的不断增加和对该技术的关注,无需设置任 何中心控制节点的a dh o c 网络日益成为研究的焦点。它可以满足人们在没有无 线基站配置的任意地点自由地组网通信的需求,相比传统的依赖于基站的无线通 信方式具有更高的灵活性。但由于a dh o e 网络本身的一些局限性,比如无线节 点的覆盖范围有限,能源有限以及a dh o e 网络拓扑结构动态变化等特点,需要 用一种与传统有线网不同的优化方案来组织a dh o c 网络中的节点,本文提出的 分簇无线节点的组通信即是其中的一种方案。 a dh o c 网络的体系结构可分为平面结构和分级结构。平面结构的可扩充性 较差,只适用于规模较小的a dh o c 网络。利用分级结构可以很好地解决平面结 构中存在的问题。在分级结构中,通常将整个a dh o e 网络进行分簇,一个簇通 常包括_ 个簇头和若干个簇成员。在分簇结构中,簇头的任务相对较重,有可能 成为网络的瓶颈。因此,簇头的合理选举对于分簇a dh o e 网络的性能至关重要。 同时,为了尽量减小网络路由信息的冗余,希望仅仅将路由功能局限在簇头之问, 而在簇内节点间进行点对点的一跳通信,因此需要选择一个合适的路由算法以支 持簇头的路由功能。 本文在分簇算法上,选择了一种自适应按需加权分簇算法,综合考虑了无线 节点的移动性,节点度,剩余能量等因素,并对每个因素赋予不同的权重以适应 在不同环境要求下的需要。选择了d s r 源路由协议作为簇头节点的路由协议,d s r 是一种按需驱动的路由协议,可以有效地减小网络的路由信息冗余。将d s r 实现 在w i n d o w sn d i s 中间层驱动程序中,并在w i n d o w sx p 和w i n d o w sc e 平台上均 做了尝试。 关键词:分簇算法动态源路由协议a dh o cn d i s 自适应按需加权算法 a b s t r a c t w i t hp e o p l e si n c r e a s i n gd e m a n da n dc o n c e i t lo ft h ew i r e l e s sc o m m u n i c a t i o n t e c h n o l o g y , t h ea dh o en e t w o r kw h i c hn e e d sn oc e n t r a lc o n t r o ln o d ei sb e c o m i n gt h e r e s e a r c hf o c u s a dh o en e t w o r kc o u l ds u p p l yw i r e l e s sc o m m u n i c a t i o nw i t h o u tt h e s u p p o r to ft h et r a d i t i o n a la pa ta n ys p o tf r e e l y , t h u sg i v i n gp e o p l em o r ea g i l i t y b u t d u et oa dh o en e t w o r k ss o m el i m i t a t i o n ss u c ha st h el i m i t e ds i g n a lc o v e r a g eo ft h e n o d e s ,t h el i m i t e dp o w e ro ft h en o d e sa n dt h ed y n a m i cc h a n g i n gt o p o l o g yo ft h ea d h o en e t w o r k , s o m eo p t i m i z e ds o l u t i o n sw h i c ha r en o tn e c e s s a r yf o rt r a d i t i o n a lw i r e d n e t w o r ks h o u l db e a p p l i e d t oc o n s t r u c tt h ea dh o en e t w o r k t h e g r o u p c o m m u n i c a t i o no ft h ec l u s t e r i n ga dh o en o d e si ss u c has o l u t i o n t h ea r c h i t e c t u r eo fa dh o cn e t w o r km a yd i v i d ei n t ot h ef l a ts t r u c t u r ea n dt h e h i e r a c h i c a ls t r u c t u r e t h ef l a ts t r u c t u r eh a sb a de x t e n d i b i l i t y , w h i c hi so n l ys u i t a b l e f o rs m a l ls c a l ea dh o en e t w o r k s t h eh i e r a c h i c a ls t r u c t u r ec a ns o l v et h ep r o b l e m e x i s t i n gi nt h ef l a ts t r u c t u r e c l u s t e r i n gi su s u a l l yu s e dt oc o n s t r u c tt h eh i e r a r c h i c a l s t r u c t u r e ac l u s t e ri n c l u d e so n ec l u s t e r - h e a da n ds e v e r a lc l u s t e r - m e m b e r s i n c l u s t e r i n gs t r u c t u r e ,t h ec l u s t e r - h e a dh a sr e l a t i v e l yh e a v yl o a d ,a n dh a st h ep o s s i b i l i t y t ob e c o m et h eb o t t l e n e c ko ft h en e t w o r k t h e r e f o r e ,i t sr e a s o n a b l ee l e c t i o ni sv e r y i m p o r t a n tt ot h ep e r f o r m a n c eo ft h en e t w o r k a tt h es a m et i m e ,t or e d u c et h er o u t i n g i n f o r m a t i o nr e d u n d a n c y ,i t sag o o di d e al i m i t i n gt h er o u t i n gf u n c t i o nj u s ti nt h e c l u s t e r - h e a d s ,a n dt h en o d e sw i t h i nt h es a m ec l u s t e rc o u l dc o m m u n i c a t ew i t he a c h o t h e rp o i n tt op o i n t t h i sa s k sf o rag o o dr o u t i n gp r o t o c o lt os u p p o r tt h ec l u s t e r - h e a d r o u t i n gf u n c t i o n i nt h i sp a p e la na d a p t i v eo n d e m a n dw e i g h t e dc l u s t e r i n ga l g o r i t h mi sc h o s e na s t h ec l u s t e v h e a de l e c t i o na l g o r i t h m w h e ns e l e c t i n gac l u s t e r - h e a d ,t h i sa l g o r i t h m t a k e sf a c t o r sl i k en o d e sm o b i l i t y , n o d e sd e g r e e ,a n dn o d e se n e r g yi n t oa c c o u n t ,a n d g i v e se a c hf a c t o rad i f f e r e n tw e i g h tu n d e rd i f f e r e n ts i t u a t i o n s t h ed s rw h i c hi sa l l o n d e m a n dr o u t i n gp r o t o c o li sc h o s e na st h er o u t i n gp r o t o c o lf o rt h ec l u s t e r - h e a d s ,i t c o u l dr e d u c et h e r o u t i n gi n f o r m a t i o nr e d u n d a n c ye f f i c i e n t l y t h ed s rw i l lb e i m p l e m e n t e do nn d i si n t e r m e d i a t ed r i v e ra n dt e s t e do nb o t hw i n d o w sx pa n d w i n d o w sc e k e yw o r d s :c l u s t e r i n ga l g o r i t h m ,d s ra dh o e ,n d i s ,a o w 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞叁堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:签字日期: 及p 。7 年石月i 铲日 学位论文版权使用授权书 本学位论文作者完全了解叁鲞盘堂有关保留、使用学位论文的规定。 特授权苤盗盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 导师签名: 签字日期:知叼年6 月铲日 签字日期: 食屯1 日。 1 年月日 第一章绪论 1 1 课题的背景与意义 第一章绪论 在移动技术日新月异的今天,人们已不再满足于被有线网络束缚于固定的场 所,希望可以在更大更自由的环境下充分发挥网络的潜力。同时,在某些特殊场 合下,仅仅依靠传统的基于基站的无线网络,仍然无法满足人们的需求:比如公 司的每个职员都配有一台具有无线上网功能的笔记本电脑,来到一间没有a p 也 没有有线接入的房间开会,要互相共享电脑桌面,怎么办? 抑或,战场上,一个 大部队分成n 个小部队协同推进,小部队内部要保持无线通信的同时,各个小部 队之间也要交流沟通,怎么办? 本文就是针对上述问题,结合a dh o c 网络技术【2 l 】以及网络分簇技术的发展, 提出了一个解决问题的模型,即: 1 解决小范围内节点之间的点对点通信问题 小范围内的所有节点组成一个簇,簇内的节点是两两可见的; 由于是点到点的通信,网络冗余开销可以降到最低; 2 解决较大范围内无线节点的组通信问题 通过分簇算法,为每个子网选择一个簇头: 簇间的通信通过簇头进行; 簇头之间的通信使用d s r 源路由协议; a dh o c 网络的路由协议大致可以分为先验式( p r o a c t i v e ) 路由协议和反应式 ( r e a c t i v e ) 路由协议。现在几种比较典型的a dh o c 网络路由协议包括:动态 源路由协议( d s r ) ,目的序列距离矢量路由协议( d s d v ) ,临时按序路由算法 ( t o r a ) 以及a dh o c 按需距离矢量路由协议( a o d v ) 。从其中选择出易于实 现,并且在提高a dh o c 网络路由效率、减少路由冗余方面表现相对较好的路由 协议,是本文将要解决的问题之一。 a dh o c 网络的体系结构可分为平面结构和分级结构【5 】。在分级结构中,通常 将整个a dh o e 网络进行分簇,一个簇( c l u s t e r ) 通常包括一个簇头和若干个簇成 员。在分簇结构中,分簇算法的关键在于簇头的选举,不同的分簇算法其簇头选 举的规则也不同。分簇算法的选择依赖于具体应用的需求、网络的环境和节点的 特征。不同的分簇算法具有不同的优化目标,目前比较典型的分簇算法包括链路 第一章绪论 分簇算法、最d q d 分簇算法、最高节点度算法和最低移动性算法等。它们最大的 特点均是考虑了某一个方面因素对于簇头选举的影响,并针对该因素对簇头的选 举做了优化,但是对于多个方面因素综合影响考虑不足。本文实现的分簇算法就 是要综合考虑多个方面因素对簇头选举的影响,从而尽量使簇头的选举和维护更 为合理。 1 2 典型的a dh o c 网络的路由协议比较 1 动态源路由协议( d s r ) 【2 4 】 d s r 是一种基于源路由的按需路由协议,它使用源路由算法。d s r 主要 包括两个过程:路由发现和路由维护。当节点s 向节点d 发送数据时, 它首先检查缓存是否存在未过期的到目的节点的路由,如果存在,则直 接使用可用的路由,否则启动路由发现过程。此外,中间节点也可以使 用路由缓存技术( r o u t i n gc a c h e ) 来对协议作进一步优化。d s r 的优点: 节点仅需要维护与之通信的节点的路由,减少了协议开销;使用路 由缓存技术减少了路由发现的耗费;一次路由发现过程可能会产生多 条到目的点的路由。d s r 的缺点:每个数据报文的头部都需要携带路 由信息,数据包的额外开销较大;路由请求消息采用洪泛方式,相邻 节点路由请求消息可能发生传播冲突并可能会产生重复广播;由于缓 存,过期路由会影响路由选择的准确性。 2 目的序列距离矢量路由协议( d s d v ) 1 4 】 在d s d v 中,每个移动节点都需要维护一个路由表。路由表表项包括目 的节点、跳数和目的地序号,其中目的地序号由目的节点分配,主要用 于判别路由是否过时,并可防止路由环路的产生。每个节点必须周期性 与邻节点交换路由信息,当然也可以根据路由表的改变来触发路由更新。 路由表更新有两种方式:一种是全部更新( f u l l d u m p ) ,即拓扑更新消息 中将包括整个路由表,主要应用于网络变化较快的情况;另一种方式是 部分更新( i n c r e m e n t a lu p d a t e ) ,更新消息中仅包含变化的路由部分,通 常适用于网络变化较慢的情况。在d s d v 中只使用序列号最高的路由, 如果两个路由具有相同的序列号,那么将选择最优的路由( 如跳数最短) 。 3 临时按序路由算法( t o r a ) 【3 】 t o r a 是一个基于链路反转方法的自适应的分布式路由算法,主要用于 高速动态的多跳无线网络。作为一个由源端发起的按需路由协议,它可 以找到从源到一个目的节点的多条路由。t o r a 的主要特点是:当拓扑 第一章绪论 发生改变时,控制消怠只在拓扑发生改变的局部范围传播。因此,节点 只需维护相邻节点的路由信息。 4 a dh o c 按需距离矢量路由协议( a o d v ) 【2 】 a o d v 是d s d v 算法的改进,但它与d s d v 的区别在于它是反应式路由 协议。为了找蚕通往强翡节点的路嘲,源端将广播一个籍由请求分组, 邻居节点依次向周嗣节点广播此分组直到该分组被送到一个知道目的节 点路由信息的中间节点或目的节点本身。一个节点将丢弃重复收到的请 求分组,貉由请求分缀孛的序列号用来防止路由环路,并能判断中阅节 点是否响应了相应的路由请求。当节点转发路由请求分组时,它会将其 上游节点的标志i d 录入路由表,从而能够构建一条从目的节点到源节点 的反向路由。当源端移动时,它会熏新发起路由发现算法;如果中间节 点移动,那么与其相邻的节点会发现链路失效并翔其主游节点发送链路 失效消息并一直传到源节点,然后源节点根据情况重新发起路嘲发现过 程。 薹。3 凡种典型的分簇算法及优缺点 1 3 1 基于节点i d 的分簇算法 1 ) 链路分簇算法( l c a ) 链路分簇算法( l c a ) 【6 】是较早提出的一种分簇算法。l c a 算法中,邻 居节点中具有最高i d 的节点成为簇头,并且如果一个节点是其某个邻居 节点的薹d 最高酌邻屠节点,此节点也成为簇头。该分簇算法的一种实现 方法是首先选择i d 最高的节点作为簇头。如果次商i d 的节点覆盖的范围 内存在没有被i d 最高的簇头覆盖的节点,那么次高i d 节点也成为簇头, 否则继续检查下一个l d 较高的节点,直到所有节点郝属于某个簇。 l c a 算法最大的优点就是实现简单,分簇过程中节点的计算量较小。僵 是,使用l c a 算法会产生过多的簇头,特别是当节点按i d 递增的顺序 线性排列时,此时除第一个节点外,其他节点都是簇头。为了解决上述 问题,可以弓| 入簇头消减机制来消除多余的簇头,铡懿规定懿粜一个簇 的节点都在其他簇头的覆盖范围之内,则取消此簇头的资格。l c a 算法 的另一个缺点是,没宥考虑公平性因素和负载平衡因素。 动最小i d 分簇算法 最小国分簇算法p 】也是基于节点l d 的分簇算法之一。最d q d 算法对l c a 第一章绪论 算法作了改进,进一步减少了簇头的个数。算法规定,相邻节点中具有 最d q d 的节点作为簇头,其一跳邻居节点成为该簇头所在簇的成员节点, 并不再参与簇头选举过程。此外,在某些特殊情况下,簇头可以将其职 责交付给簇内具有最d q d 的成员节点。 最小i d 分簇算法计算简单,实现方便,算法收敛较快。在移动环境下, 最小i d 算法中簇头更新的频率较慢,维护簇花费的开销较小。最小i d 算法同样没有考虑公平性因素,也没有考虑负载平衡等因素。因为,该 算法倾向于选择i d 较小的节点作为簇头,这部分节点由于充当簇头而耗 费过多的资源( 如能量,处理能力等) ,不利于延长网络的整体寿命。 1 3 2 最高节点度分簇算法 最高节点度分簇算法【8 】( 也称最高连接度算法) 借鉴了i n t e m e t 中选择路由节 点的方法,原则是尽量减少路由节点的数目,其目标是提高网络的控制能力和减 少簇的数目。每个节点通过交互控制消息来获得邻居节点的数目,然后它将自己 的节点度向邻居节点广播。该节点和其相邻节点中具有最大节点度的节点被选为 簇头;当节点度相同时,则选择i d 较小的节点作为簇头。簇头的一跳邻居节点则 成为该簇的成员节点,并不再参与簇生成过程,重复以上过程直到所有节点都加 入到某个簇。 最高节点度算法的优点在于网络中簇的数目较少,源、目的节点对之间的平 均跳数较少,从而减少了分组投递时延【9 】。最高节点度算法的缺点是没有对簇中 簇成员的个数进行限制。当一个簇中的簇成员过多时,簇头的负担过重,可能会 成为网络的瓶颈。而且,当网络中节点的移动性较低时,网络拓扑较稳定,某些 节点可能一直充当簇头,直至其能量耗尽,同样不利于延长整个网络的寿命。 1 3 3 最低移动性分簇算法 节点的移动会造成网络拓扑的变化,为适应节点的移动特性,提高簇结构的 稳定性,可以根据节点的移动性为节点分配权重,并依据节点的权重来选举簇头。 最低节点移动性分簇算法【1 0 】规定:节点的移动性越高,其权重越低,选择邻居节 点中具有最高权重的节点作为簇头,即选择移动性最低的节点作为簇头。在算法 的实现中,可采用一种相对移动性指标来表示节点的移动性,节点通过比较收到 的来自某一邻居节点的连续两次的信号强度来估计它们之间的相对移动性。下面 介绍这种相对移动性指标的计算方法。 定义节点y 相对于节点z 的相对移动性指标: 第一章绪论 州删g 焉 其中,戤p 点表示当前节点y 收到来自节点x 的接收功率,m p 芒。表示上 一测量时刻节蔚收到来自节点x 的接收功率。如果m 。( z ) d 的路由信息 删除,同时构造路由错误包并广播出去。其他节点,如a ,b ,收到此路由错误 包后,也会删除所有包含c d 的路由项。此时,如果仍有数据包要发送给节点 e ,那么如果存在到达e 的其他路由则采用其他路由。如果没有,则发起新的路 由发现过程。 3 1 4d s r 其他提高性能措施 1 缓存侦听到的路由信息 2 用路由缓存应答路由请求 3 防治路由应答风暴 4 自动路由缩短 3 2 网络驱动接口规范( n d i s ) m i c r o s o f tw i n d o w s 系列的网络体系结构设计都是依据国际标准化组织 ( i s o ) 开发的7 层网络模型。w i n d o w s 下的网络驱动程序实现网络体系架构中 自下而上的4 个协议层:物理层,数据链路层、网络层和传输层。n d i s 从网络 驱动程序中抽象了网络硬件,并在分层的网络驱动程序中规定了一个标准接e l , 从而抽象了低层次的硬件来提供给高层次网络上的网络管理。同时,n d i s 也维 护用于网络驱动程序的状态信息和参数,包括函数的指针,旬柄,连接的参数和 其他的一些系统变量。可以说,n d i s 的引入将网卡、网络驱动程序和操作系统 第三章d s r 路由协议及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 协议栈。传输协议驱动程序分 配、拷贝来自应用程序申请发送的数据包,同时也提供协议接口来接收从下层收 到的数据包。 综上所述,可以把n d i s 所划分的网络层次表示如下图所示的层次结构: 图3 3n d i sd r i v e r 在本文的实现中,选择的是中间层驱动程序。因此下面重点介绍n d i s 的中 第三章d s r 路由协议及n d i s 间层驱动程序。 3 2 1 中间层驱动程序( 1 i v i d ) 中间层驱动程序( i n t e r m e d i a t en d i sd r i v e r ,i m d ) 是介于微端口驱动程序 和协议驱动程序之间的为了实现某些功能而抽象出来的。 在它的下边界提供了协议驱动接口,因此能够将中间层驱动程序加载到其他 微端口驱动或者中间层驱动之上;在它的上边界提供了微端口驱动接口,因此能 够挂载到其他协议驱动或者中间层驱动之下。这样的挂载,或者说绑定,被称之 为外部绑定,是由n d i s 控制和管理的。而中间层驱动本身的协议驱动和微端口 驱动之间的绑定( 又称内部绑定) 不是由n d i s 控制的,因此根据内部绑定的对 应关系,可以将中将层驱动程序划分成两大类型:过滤驱动程序和m u x 驱动程 序。 过滤驱动程序是1 对1 关系的中问驱动程序。每一个微端口驱动都对应了一 个协议驱动。 m u x 驱动程序是l 对多或者多对1 关系的中间驱动程序。 3 2 1 1p a s s t h r u 驱动例子程序 在本文的设计中,选择t n d i s 的p a s s t h r u t 2 0 1 例子程序作为设计和实现的 架构基础。p a s s t h r u 是一个典型的过滤驱动程序【2 2 】。 d r i v e r e n t r y 函数 与应用层程序中的m a i n 函数一样,中间层驱动程序也需要有程序初始化 的入口函数。在驱动中,这个入口函数名为d r i v e r e n t r y 。 在中间层驱动程序中,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 l l x x x 系统功能函数并开放出为上层协议驱动提供的 接口。 3 1 调用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 驱动提供的接e l ,并将本身绑定到底层驱动程序上。 4 ) 如果既注册了m i n i p o r t x x x 函数又注册了p r o t o c o x x x 函数,则调用 n d i s i 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 c o l x x x 接口,又提供了上层m i n i p o r t x x x 接口。 第三章d s r 路由协议及n d i s 注册中间微端口驱动 中间层驱动程序通过调用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 导出m i n i p o r t x x x 函数。 中间层驱动程序保存调用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 c 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 。当中问层驱动程序成功地绑定到一个或多个低层n i c 驱动程序上或者当 其绑定在一个非n i c 设备驱动程序上后,将调用n d i s i m i n i t i a l i z e d e v i c e l n s t a n c e 函数,使得中间层驱动程序可以初始化m i n i p o r t 组件来接受虚拟n i c 上的i o 请 求。 注册中间协议驱动 中间层驱动程序通过调用n d i s r e g i s t e r p r o t o c o l 向n d i s 注册p r o t o c o l x x x 函 数。 在调用n d i s r e g i s t e r p r o t o c o l 函数之前,中间层驱动程序必须完成以下操作: 1 ) 零初始化一个n d i sp r o t o c o lc h a r a c t e s t i c s 类型的结构。中 间层驱动程序能够使用4 0 或者5 0 版的p r o t o c o l c h a r a c t e r i s t i c s 结构。协 议驱动程序必须支持即插即用功能,因此n d i s 不再支持3 0 版的协议驱 动程序。 2 ) 保存所有驱动程序支持的强制性的和非强制的p r o t o c o l x x x 函数的地址; 该调用的返回句柄n d i s p r o t o c o l h a n d l e r 对中间层驱动程序是不透明的,中 间层驱动程序必须保存该句柄,并在将来n d i s 中问层驱动程序的协议部分的函 数调用中作为输入参数传递,例如,打开低层适配器的函数调用。 中间驱动程序的动态绑定 中问层驱动程序必须提供p r o t o c o l b i n d a d a p t e r 和p r o t o c o l u n b i n d a d a p t e r 函数 以支持对低层n i c 的动态绑定。当n i c 可用时,n d i s 调用中间层驱动程序( 能 够绑定到n i c ) 的p r o t o c o l b i n d a d a p t e r 函数实现动态绑定操作。 绑定时的操作包括为该绑定分配n i c 相关的环境区域并进行初始化,接着调 用n d i s o p e n a d a p t e r 绑定到d e v i c e n a m e 参数指定的适配器。d e v i c e n a m e 可以 是低层n i c 驱动程序管理的n i c ,也可以是介于被调用的中间层驱动程序和管 理适配器的n i c 驱动程序之间,由中问层n d i s 驱动程序导出的控制传输请求的 虚拟n i c 。通常情况下,可能仅有一个基于n i c 驱动程序的中间层n d i s 驱动程 序,实现早期的高层协议驱动程序支持的介质格式和低层n i c 驱动程序支持的 介质格式之间的转换。 第三章d s r 路由协议及n d i s i m d 基本发送流程 注册中间层微端口之后,就可以使用n d i s 提供的s e n d h a n d l e r 和 s e n d p a c k e t s h a n d l e r 接口,注册发送函数m p s e n d ( 发送单个数据包) 和 m p s e n d p a c k e t s ( 发送多个数据包) 进行数据包的发送。如果注册了 s e n d p a c k e t s h a n d l e r 接口,则s e n d h a n d l e r 会自动被屏蔽掉。本文设计是,采用 的是s e n d p a c k e t s h a n d l e r 接口。 当上层协议栈传递数据包下来之后,n d i s 会从包描述符缓存中分配新的包 描述符,然后对上层传递下来的数据包进行重新封包。构造新的数据封包之后, 会调用n d i s s e n d 将数据包从驱动绑定的物理网卡发送出去。如果发送立刻完成, 则释放分配的包描述符,否则会调用注册的s e n d c o m p l e t e h a n d l e r ( p t s e n d c o m p l e t e ) 完成资源的释放。i m d 基本发送流程如下所示: 图3 4i m d 基本发送流程 在本文的设计中,由于对于从本机发送出去的数据包需要添加源路由项,即 需要对数据包的内容进行修改。因此,不仅仅要完成上述已有的封包流程,还需 要重新分配分配包缓存和相应内存,重新构造一个全新的数据包。 具体的做法是,首先利用上层传递下来的包描述符,调用n d i s q u e r y b u f f e r 函数,获得整个数据包的内容。接着,将得到的数据包内容存储在自己开辟的内 存区间。分配包缓存描述符,指向存储数据包内容的内存空间,最后分配新的包 描述符,指向包缓存描述符。这样就完成了全新数据包的重新封包。 第三章d s r 路由协议及n d i s l i v i d 基本接收流程 注册中间层协议驱动之后,就可以使用n d i s 提供的r e c e i v e h a n d l e r 和 r e c e i v e p a c k e t h a n d l e r 接口,注册发送函数p t r e c e i v e ( 接收单个数据包) 和 p t r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同终止补偿
- 2025物业租赁安全协议责任书合同
- 第五节 戏曲教学设计-2023-2024学年中职音乐第五单元 走进戏剧高教版(公共艺术·音乐篇·第二版)
- 2025房屋买卖租赁合同模板
- 6. 6 -次函数、-元-次方程和-元-次不等式 说课稿 -2024-2025学年苏科版数学八年级上册
- 人教版高一物理必修一《1 质点 参考系和坐标系》教学设计
- 电池厂固定资产盘点实施办法
- 济南事业单位笔试真题2025
- 2025民事诉讼授权代理协议(合同范本)
- 2025年吉林省农村信用社个人经营借款合同
- 神经外科住院医师培训工作总结
- 深圳市房屋租赁合同书(空白)
- 2024年中级经济师《经济基础》考试真题及参考答案
- 2024档案数字化加工服务合同
- TSGD7002-2023-压力管道元件型式试验规则
- 《铁路危险货物运输管理规则》
- 人教版(2024新版)七年级上册数学期中模拟检测试卷(含答案)
- 高速公路桥梁施工组织
- 城镇污水处理厂工程质量验收规范
- 钢结构建筑施工合同范本
- 《电力应急电源装备测试导则》
评论
0/150
提交评论