(计算机应用技术专业论文)ndis协议驱动设计与实现.pdf_第1页
(计算机应用技术专业论文)ndis协议驱动设计与实现.pdf_第2页
(计算机应用技术专业论文)ndis协议驱动设计与实现.pdf_第3页
(计算机应用技术专业论文)ndis协议驱动设计与实现.pdf_第4页
(计算机应用技术专业论文)ndis协议驱动设计与实现.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

n d i s 协议驱动设计j 实现 n d i s 协议驱动设计与实现 摘要 t c p 协议是目前i n t e m e t 上使用最广泛的一种传输协议,它为用 户提供了一种基于连接的、可靠的、端到端的数据包传输服务。i n t e m e t 上总字节数的9 5 和总报文数的9 0 使用t c p 协议传输,但是t c p 协议主要适用于差错率低和网络拥塞是造成报文丢失的主要原因的 有线链路。但在无线有线混合网络环境下,发生丢包的原因不仅仅是 拥塞造成的,也会出现由于误码而导致的丢包现象。因此,如何提高 t c p 在异构网络环境下的性能已经成为一个活跃的研究领域。 为了提高t c p 协议在异构网络的性能,需要改善t c p 在异构网 络下的拥塞控制算法( 在w i n d o w s 环境下) ,而w i n d o w s 环境下并不 是源代码开放环境,所以本文提出实现t c p i p 协议驱动的方法来代 替现有系统的t c p 协议,在此协议驱动中改善拥塞控制算法。 论文主要介绍开发t c p i p 协议驱动所使用的技术和实现方法, 以及协议栈各个部分的流程设计。根据w i n d o w s 的驱动开发套件 ( d d k ) 中对网络协议驱动说明与规定,可以开发一个协议驱动其 下层接口符合网络驱动接口规范( n d i s ) ,则无需关心下层网卡相关 驱动;上层接口符合传输驱动接口( t d i ) 规定,则无需关心上层应 用。因此,选择n d i s 和t d i 作为整体上下层接口的规范。 论文首先介绍了t c p i p 的协议栈模型和w i n d o w s 下网络驱动开 发的理论基础。之后阐述了n d i s 协议驱动的各模块组成,主要分为 四个部分,n d i s 接口,t d i 传输器,t d i 客户,应用程序。n d i s 接 口实现对低层网卡的一些操作和交互。t d i 传输器为主要实现部分, 实现t c p i p 协议。t d i 客户的主要作用是完成上层应用层程序的请 求,或者根据该请求产生相应的操作,并将该操作传递给下层的n d i s 协议驱动。应用程序是用于测试协议驱动系统的上层工具。 论文详细介绍了n d i s 接口的开发以及t c p i p 协议栈的设计。 n d i s 接口主要完成对低层网卡的动态绑定,收发网络数据包和相关 状态维护及完成上层用户程序发送到协议驱动的i r p 请求。t c p i p 协议栈通过上层接口与t d i 客户交互,下层与n d i s 接口通信,进行 北京邮i 也人学硕二l :论文n d i s 踟 义驱动设计与实现 网络数据包的发送。目前t c p i p 协议栈主要实现了a r p ,t c p ,i p 协议,还需不断完善。 关键词:t c p ,协议驱动,n d 工s ,i r p ,数据包 北京邮电人学硕上论文n d l s 协议驱动设计与实现 d e s i g na n di m p l e m e n to fn d i s p r o t o co ld r i v e r a b s t r a c t t c pp r o t o c 0 1i st h em o s tb o a r du s e dt r a n s p o r tp r o t o c 0 1o nt h e i n t e m e tn o w ,i tp r o v i d ec o n n e c t i o n - o r i e n t e d ,r e l i a b l e ,e n d - t o - e n dp a c k e t t r a n s p o r ts e i c ef o ru s e r t h et o t a ln u m b e ro fb 吼e so nt h ei n t e m e t9 5 p e r c e n to ft h et o t a lr e p o r t e d ,a n d9 0 o ft h en u m b e ro ft r a n s m i s s i o n u s i n gt c pp i o t o c o l ,b u ti sm a i n l ya p p l i e dt ot c pp r o t o c 0 1e n 的rr a t ei s l o wa n dc a u s e dn e t w o r kc o n g e s t i o n ,t h el o s sw a st h em a i nr e a s o nt h e c a b l e1 i n k u n d e rt h ee n v i r o n m e n to fm i x e dn e t w o r ke n v i r o n m e n t c o n g e s t i o ni sn o to n l yt h er e a s o nc a u s eo fp a c k e tl o s s ,t h eb i te r r o rw i l l a l s o b r i n g p a c k e t 1 0 s s t h e r e f o r e , h o wt o i m p r o v et c p i na h e t e r o g e n e o u sn e t w o r ke n v i r o n m e n tp e r f o m l a n c eh a sb e c o m ea na c t i v e a r e ao fr e s e a r c h i no r d e rt oi m p r o v et c pp r o t o c o li nah e t e r o g e n e o u sn e t w o r k p e r f o r m a n c e , w en e e dt o i m p r o v et h ec o n g e s t i o na l g o n t h mu n d e r h e t e r o g e n e o u sn e t w o r k , b u tw i n d o w si sn o to p e ns o u r c ee v i r o n m e n t ,s o w en e e dt oi 瑚【p l e m e n tt c pp r o t o c 0 1 t h i sp a p e rg i v eaw a yt h a tt o i m p l e m e n tat c p i pp r o t o c o ld r i v e rt oi n s t e a dt h ew i n d o w st c pp r o t o c o l a n dw ec a ni m p r o v et h ec o n g e s t i o no nt h ep r o t o c o ld r i v e r t h i sp a p e rm a i n l yi n t r o d u c e dt h et e c h n 0 1 0 9 y ;m a t e “a lm e t h o da n d t h ei m p l e m e n t i n gp r o c e s so fu sd e v e l o p i n gt h et c ps t a c k a c c o r d i n gt o t h ei n s t m c t i o na n dr e g u l a t i o no ft h ep r o t o c o ld r i v e ri nt h ew i n d o w sd r i v e r d e v e l o p m e n tk i t ,w ec a nd e v e l o pap r o t o c 0 1d r i v e rw h i c h1 0 wi n t e r f a c e c o n f o r mn e t w o r kd r i v e ri n t e r f a c es p e c i f i c a t i o n ( n d i s ) ,s ow en e e d n tt o c a r ea b o u tb o t t o mn i cd r i v e r a n di t sh i g hl a y e ri n t e r 角c ec o n f o 瑚 1 、r a n s p o r t d r i v e ri n t e r f a c e ( t d i ) r e g u l a t i o n ,s ow en e e d n tc a r ea b o u t h i g hl a y e ra p p l i c a t i o n f o rt h e s er e a s o n s ,w ec h o o s en d i sa n dt d if o r i i l 北京邮i 乜人学硕l 论文n d l s 协议驱动设计与实现 o u rs p e c l f i c a t l o no f w h 0 1 eh l g h l o w l a y e ri n t e r f a c e s t h i sp 印e rf i r s ti n t r o d u c e st h em o d e lo ft h et c p i ps t a c ka n dt h e t h e o 巧o ft h ew i n d o w sn e 帆o r kd “v e rd e v e l o p m e n t t h e ne x p a t i a t ee v e w p a r to f o u rn d i sp r o t o c o ld r i v e r i tc o n s i s to ff o u rp a n ,n d i si n t e r f a c e , n d i sp r o t o c o ld r i v e r ,t d ic l i e n t ,a p p l i c a t i o np r o g r a m n d i si m p l e m e n t t h eo p e r a t i o nt ot h el o wl a y e rn i cd n v e r n d i sp r o t o c o ld r i v e ri st h e p r i m ep a r t ,i nt h i sp a i r tw ei m p l e m e n tt h et c p i ps t a c k t d ic “e n tw i l l c o m p l e t et h er e q u e s to ft h e 印p l i c a t i o np r o g r a mo rm a k en e wo p e r a t i o n a c c o r d i n gt ot h er e q u e s t ,t h e nt r a n s f e rt h er e q u e s tt on d i sp r o t o c 0 1d r i v e r t h ea p p l i c a t i o nl a y e ri st h et o o lu s e dt ot e s tt h ep r o t o c o ld r i v e rs y s t e m t h e nt h ep 印e ri n t r o d u c e st h en d i si n t e 恼c ea n dt h ed e s i g no ft h e t c p i ps t a c k n d i si n t e r f a c em a i n l yc o m p l e t et h ed y n a m i cb i n d i n gt o n e t w o r kc a r d ,s e n d r e c e i v ep a c k e ta n ds t a t u sm a i n t e n a n c e ,a n da l s o c o m p l e t et h ei r pr e q u e s tf i r o mt h eh i g h - l e v e lu s e rp r o g r a m t c p i p p r o t o c o ls t a c kc o m m u n i c a t ew i t ht d ic l i e n tt h r o u g hu p p e rl a y e r ,a n d c o m m u n i c a t ew i t hn d i s ,s e n dt h en e t w o r kp a c k e t n o wt h et c p i ps t a c k m a i n l yi m p l e m e n t sa r p ,t c p ,i pp r o t o c o l ,i tn e e d st ob ei m p r o v e d k e yw o r d s : t c p ,p r o t o c o ld r iv e r ,n d i s ,i r p , d a t ap a c k e t i v 北京邮电人学硕士论文n d i s 赤议驱动设汁与实耵 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包 含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 至蝗 日期:迎g ! 墨! ! 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 御乎、 北京邮电大学顾十论文 n d i s 协议驱动设计与实现 1 1 课题背景 第一章引言 随着经济高速发展,社会信息化程度越来越高,互联网和多媒体的发展、技 术进步以及世界范围内经济和技术的竞争加剧,人们对移动性、个性化、人性化 和智能化提出了越来越高的要求。而无线数据通信作为向社会公众迅速、准确、 安全、灵活、高效地提供数据交流的有力手段,其市场需求也同益迫切。 由于有极好的应用前景,无线通信己成为全球通信和i t 业界共同关注的热 门技术。经过数年的研究和发展,各种无线网络标准日渐成熟,无线网络技术己 不再是一种试验性的技术,这种技术已经具有足够的可靠性和可用性,可以提供 可靠的移动计算服务。同时,其传输速率、通信距离也在不断增加,能够满足越 来越多、越来越高的应用需求。 无线网络在很多应用领域具有独特的优势:一是可移动性,它提供了不受线 缆限制的应用,用户可在移动过程中对网络进行不问断的访问,并且可以实现漫 游;二是容易安装、无须布线,大大节约了建网时间;三是组网灵活,即插即用, 网络管理人员可以迅速将其加入到现有网络中,并在某种环境下运行;四是成本 低,特别适合于变化频繁的工作场合。随着无线网络技术的不断发展,形成共生 互补的发展趋势。可以预见它必然与现有的有线网络逐渐结合在一起,未来的通 信网络将是有线网络和无线网络混合互连的异构网络。 t c p 协议是目前i n t e m e t 上使用最广泛的一种传输协议,它为用户提供了一 种基于连接的、可靠的、端到端的数据包传输服务。根据m c i 公司的统计,i n t e m e t 上总字节数的9 5 和总报文数的9 0 使用t c p 协议传输,但是t c p 协议主要适 用于差错率低和网络拥塞是造成报文丢失的主要原因的有线链路。无线信道由于 其差错率高、多种衰落和移动性等特点,刚络中发生丢包的原因不仅仅是捌塞, 链路错误、衰落和主机移动等都会造成报文丢失。因此,当t c p 协议应用于异 构网络( 有线网络和无线网络混合) 时,其性能会出现显著下降。目前,随着无线 接入技术的快速发展,网络己经越来越呈现异构性。因此,如何提高t c p 在异 构网络环境下的性能已经成为一个活跃的研究领域。 当客户端与服务器之间进行端到端的t c p 连接通信时,根据传统的t c p 保 北京邮 u 人学顾: :论文n d i s 协议驱动设计与实现 证传输的带宽调整算法,当有丢包现象发生时,则认为该通信链路上发生了拥塞, 从而会自动调整发送端的发送速率减小带宽占用率,以缓解拥塞状况。在有线网 络的情况下,这种处理是很合理的,因为有线网络的传输底层保证了数据流量的 传输。但是在无线通信的环境下,由于无线通信的特殊性,使得当链路带宽充足 的条件下,由于其他各种原因,仍然会出现由于误码而导致的丢包现象。在这种 情况下,使用传统的t c p 算法,单一的依靠调整带宽占用率就显得不合理且低 效率。所以我们需要改善现有的拥塞控制算法,提高在异构网络下t c p 算法的 吞吐量。 然而,控制策略的使用必须通过修改t c p 的拥塞控制部分源码实现,但是 w i n d o w s 操作系统的t c p i p 协议栈源码是非开放的,这使得新的策略和算法无 法应用其中。因此,我们需要丌发一个基于、矾n d o w s 平台的t c p i p 协议栈,以 便测试和应用这些新的策略和算法。 1 2 开发方案 我们的目的是开发自己的t c p 协议并加入我们的拥塞算法以改善对移动系 统的拥塞控制,但是w i n d o w s 系统不是源代码开放的,所以需要自己实现t c p 协议。我们采用w i n d o w sd d k 丌发包,w i n d d k 提供了传输层与应用层之间的 接口规范t d i ,以及网络层与底层驱动之问的接口规范n d i s 。n d i s 协议驱动程 序与n d i s ( 网络驱动接口规范) 进行通信来发送和接收网络数据包,并绑定和 使用低层微端口n i c 驱动程序。我们上层采用t d i 接口,下层采用n d i s 接口, 这样就提供了w i n d o w s 的标准接口,我们就只实现传输层和网络层的t c p i p 协 议,而可以忽略底层网卡驱动和上层应用层的协议。 1 3 本文结构 第一章主要介绍项目开发背景及丌发方案。 第二章主要介绍计算机网络体系结构o s i 模型与t c p i p 模型。 第三章主要介绍w i n d o w s 协议驱动丌发及n d i s 协议驱动开发理沦。 第四章主要说明整个协议驱动系统的设计方案及各部分组成功能。 第五章主要说明n d i s 接口的开发及各个模块功能。 第六章主要介绍t c p i p 协议族的实现及n d i s 协议驱动的主要部分。 2 北京邮电大学硕上论文n d i s 协议驱动设计与实现 第二章计算机网络体系结构 2 1o s l 体系结构 为了使不同体系结构的计算机网络都能够互联,1 9 7 7 年国际标准化组织i s o ( i n t e m a t i o n a ls t a n d a r do r g a n i z a t i o n ) 建立了一个分委员会来专门研究这样一种 体系结构,提出了开发系统互联o s i ( o p e ns y s t 锄i n t e r c o i u l e c t i o n ) 模型,这是一 个定义连接异种计算机标准的主体结构。o s i 为连接分布式应用处理的“开放” 系统提供了基础。“开放”这个词表示能使任何两个遵守参考模型和有关标准的 系统进行连接,只要遵守0 s i 标准,一个系统就可以和在世界上任何地方的、 也遵循这一标准的其他任何系统进行通信。“系统”指的是现实的系统与互联有 关的各部分。 2 1 1o s i 模型的层次结构 要想让两台计算机进行通信,必须使它们采用相同的信息交换规则。计算机 网络用于规定信息的格式以及如何发送和接受信息的一套规则被成为网络协议 或通信协议。为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所 谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解为一个个功能 层,不同及其上的同等功能层之间采用相同的协议,同一机器上的相邻功能层之 间通过接口进行信息传递。 网络中同等层之间的通信规则就是该层使用的协议,而同一计算机的不同功 能层之间的通信规则称为接口。总的来说,协议是不同机器同等层之问的通信约 定,而接口是同一机器相邻层之间的通信约定。不同的网络,分层数量、各层的 名称和功能以及协议都各不相同。但是,在所用的网络中,每一次的目的都是向 它的上一层提供一定的服务。 计算机网络体系结构是网络中分层模型以及各层功能的精确定义。对网络体 系结构的描述必须包括足够的信息,使实现者可以为每一功能层进行硬件设计或 编写程序,并使之符合相关协议。网络协议实现的细节不属于网络体系结构的内 容,因为它们隐含在机器内部,对外部来说不可见。 0 s i 采用分层的结构化技术。建立七层模型的主要目的是为解决异种网络互 北京邮i u 大学硕:i :论文 n d i s 协 义驱动设计与实现 联时所遇到的兼容性问题。它的最大有点是将服务、接口和协议这三个概念明确 地区分开来:服务说明某一层为上一层提供一组操作,接口说明上一层如何使用 下层的服务,而协议涉及如何实现本层的服务;这样,各层之间具有很强的独立 性,互联网络中个实体采用什么样的协议是没有限制的,只要向上提供相同的服 务并且不改变相邻层的接口即可。 网络七层的划分也是为了使网络的不同功能模块( 不同层次) 分担起不同的 职责,从而带来如下优点:减轻问题的复杂程度,一旦网络发生故障,可迅速定 位故障所在层处,便于查找和纠错;在各层分别定义标准接口,使具备相同对等 层的不同网络设备能实现互操作,各层之间则相对独立,一种高层协议可放在多 种低层协议上运行;能有效刺激网络技术革新,因为每次更新都可以在小范围内 进行。 i s o 分委员会的任务是定义一组层次和每一层所完成的服务。层次的划分应 该从逻辑上将功能分组。丌放系统互联( o s i ) 参考模型共有七层:物理层、数 据链路层、网络层、传输层、会话层、表示层、应用层。 o s i 参考模型具有如下特征: ( 1 ) 这是一种将异构系统互联的分层结构; ( 2 ) 它提供了控制互联系统交互规则的标准骨架; ( 3 ) 它定义了一种抽象结构,而并非具体实现的描述; ( 4 ) 不同系统上的相同层的实体称为同等层实体; ( 5 )同等实体之间通信由该层的协议管理; ( 6 ) 相邻层间的接口定义了原语操作和低层向上层提供的服务; ( 7 ) 所提供的公共服务是面向连接的或无连接的数据服务; ( 8 ) 直接的数据传送仅在最低层实现; ( 9 ) 每层完成所定义的功能,修改本层的功能并不影响其他层。 2 1 2o s i 模型 网络七层包括物理层、数据链路层、网络层、传输层、会话层、表示层和应 用层。 下图是o s i 七层模型的协议堆栈示意,它们由下到上分别为: 4 北京邮电大学硕士论文n d i s 协议驱动设计与实现 o s i 参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 图2 一lo s i 七层模型 第一层物理层,物理层的任务就是透明地传送比特流。 第二层数据链路层,数据链路层的作用就是通过一定的手段( 将数据分 成帧,以数据帧为单位进行传输) 将有差错的物理链路转化成对上层来说没有错 误的数据链路。 第三层网络层,网络层主要负责为分组交换网上的不同主机提供通信。 第四层传输层,传输层主要提供对上层透明( 不依赖于具体网络) 的可 靠的数据传输,主要任务就是负责两个主机中进程之间的通信。 第五层会话层,是面向信息处理的o s i 高层和面向数据通信的o s i 低层 的接口。会话层管理于对方会话服务用户之间简历和释放会话连接以进行数据传 输。 第六层表示层,负责所传输消息的语法和语义的分析,处理数据的格式 化。 第七次应用层,应用层是面向用户的最高层,唯一直接给应用进程提供 服务的层,通过软件应用实现嘲络于用户的直接对话。 北京邮 匕人学硕一l j 论文n d i s 协 义驱动设计与实现 2 2t c p i p 模型 2 2 1t c p ,i p 协议栈 与o s i 模型类似,t c p i p 也是以协议栈的方式运作。该协议栈是在两台计 算机之间传送数据所必须的协议总和,数据通过上述协议之后到达另一台计算机 或网络中的目的节点,在这里,以相反的过程来进行处理( 数据首先到达物理层, 随后沿着协议栈向上传送) 。整个过程中,源主机和目的主机都有对应的差错检 验系统。 每一层都可以从其相邻层接收和发送数据,每一层也都与多种协议相关联。 在各层中,不同的协议为用户提供了不同的服务。两个应用程序通过网络进行通 信时,数据沿着协议栈从发送端的应用层向下传送,到达目的主机时又沿着协议 栈向上到达目的应用程序。随着信息沿着协议栈向下发送时,附加的信息以头的 形式添加到数据包中,这种头部信息类似于一个信封,其中装载着前一层的数据 信息。随着数据包沿着协议栈向上传送,这些头部信息在传送给上一层之前会逐 步被处理并剥除掉。 t c p i p 这个协议遵守一个四层的模型概念即网络接口层、网际层、传输层和 应用层。 主机a主机b 应用层应用层 传输层传输层 网际层网际层 网络接口层网络接口层 、厂、 u 腓各) 图2 2t c p i p 参考模型 第一层网络接口层,也称作数据链路层,这是t c p i p 的最底层。这 6 北京邮电人学硕上论文n d i s 协议驱动设计与实现 层负责数据帧的发送和接收,帧是独立的网络信息传输单元。网络接口层将帧放 在网上,或者从网上把帧取下来。接受i p 数据报并发送至选定的网络。 第二层i p 层,处理及其之问的通信。它接收来自传输层的请求,并将带 有目的地址的分组发送出去。将分组封装到数据报中,填入数据报头,使用路由 算法以决定是直接将数据报传送至目的主机还是传送给路由器,然后把数据报送 至相应的网络接口来传送。i p 层还要处理接收到的数据报,验证其正确性,并 决定是由本地接收还是路由至相应的目的站。 i p 层包含如下四个主要协议。网际协议i p 负责在主机和网络之问寻址和路 由数据包。地址解析协议a r p 获得同一物理网络中的硬件主机地址。网际控制 消息协议i c m p 发送消息,并报告有关数据包的传送错误。互联组管理协议i g m p 被i p 主机拿来向本地多路广播路由器报告主机组成员。 第三层传输层,传输层的基本任务是提供应用层之间的通信,也就是端 到端的通信。传输层管理信息流,提供可靠的传输服务,以确保数据无差错的、 按序到达。传输层软件将要传送数据流划分成分组,并连同目的地传送至下一层。 传输层中的传输协议在计算机之间提供通信会话。传输协议的选择根据数据 传输方式而定。该层主要使用了如下两个协议。传输控制协议t c p 为应用程序 提供可靠的通信连接。u d p 提供了无连接通信,且不对传送包进行可靠的保证。 第四层应用层,应用程序通过应用层访问网络。在最高层,用户调用应 用程序来访问t c p i p 互联网提供的多种服务。应用程序负责发送和接收数据。 每个应用程序选择所需的传输服务类型,可以是独立的报文序列,或者是连续的 字节流。应用程序将数据按要求的格式传送给传输层。 2 2 2t c m p 数据封装与解封装 数据是通过t c p i p 协议栈的方式传递的。t c p i p 的数据封装模型如图所示: 数据接收端 应用层 传输层 网际层 网络接口层 封 装 数据发送端 国一口因一幂 蕊丑 一 黜 瓜三| i 一 一 懋 一0 一 叠 一删一 图 北京邮f 乜人学烦i :论文n d i s 协议驱动设计与实现 2 2 3t c p i p 协议族原理 t c p ,i p 协议包括许多协议子集,例如:a r p ( a d d r e s sr e s 0 1 u t i o np r o t o c o l ,地址 解析协议) 、r a r p ( r e v e r s e a r p ;逆地址解析协议) 、i p ( i n t e m e tp r o t o c o l ,互联网协 议) 、o s p f ( o p e ns h o r t e s tp a t hf i r s t ,内部网关路由选择协议) 、b g p ( b o r d e rg a t e w a y p r o t o c 0 1 ,外部网关路由选择协议) 、i c m p ( i m e m e tc o n t r o lm e s s a g ep r o t o c o l ,互联网 控制报文协议) 、t c p ( t r a n s m i s s i o nc o n t r o lp r o t o c o l ,传输控制协议) 、u d p ( u s e r d a t a 野锄p r o t o c o l ,用户数据报协议) 等,以及应用用层的d n s ( d o m a i nn 锄e s y s t e m ,域名解析协议) 、s n m p ( s i m p l en e t w o r km a n a g e m e n tp r o t o c 0 1 ,简单网络 管理协议) 、s m t p ( s i m p l em a i lt r a n s 衔p r o t o c o l ,简单邮件传输协议) 、 h t t p ( h y p e n e x tt r a n s f e rp r o t o c o l ,超文本传输协议) 等。 ( 1 1 ) 网络接口层:负责管理特定的物理介质,例如:以太网、蓝牙等。对应于o s i 参考模型中的物理层和数据链路层。网络接口层定义了一台计算机如何访问物理 网络。常用a r p 协议属于该层。 ( 2 ) 网络层:有时也称为互联网层,通过多个不同的物理网络向目的节点传输数 据报文,对应于0 s i 参考模型中的网络层。网络层协议定义了网络传输的基本 数据单元,提供路由支持。 ( 3 ) 传输层: 对应于o s i 参考模型中的传输层,传输层主要解决不同应用程序 之问的识别问题,因为在一般的通用计算机中,常常有多个应用程序同时访问网 络。为区分各应用程序,传输层在每一分组中增加了识别信源应用程序和信宿应 用程序的信息。用户的应用程序往往需要特定层次的服务水平,这可能涉及到可 靠性、错误率、延迟或这些特性的某些组合。传输层协议同时为应用层程序提供 所需要的服务水平。 ( 4 ) 应用层:向用户提供一组常用的应用程序,比如,虚拟终端、电子邮件等。 0 s i 参考模型中的应用层、表示层和会话层合并到t c p i p 分层模型中的应用层。 严格说起来,应用层协议不能算作t c p i p 协议的一部分。事实上,用户完全可 以在传输层之上建立自己的专用的应用程序。常用的应用层协议有:h t t p ( 超文 本传输控制协议) 、t e l n e t ( 远程登录协议) 、f t p ( 文件传输协议) 、s m t p ( 简单 邮件传送协议) 、s n m p ( 简单网络管理协议) 等。 2 2 3 1a i 冲协议 a r p 协议( a d d r e s sr e s o l u t i o np r o t o c 0 1 ) 用来把i p 地址解析成物理网络地址, 在以太网中就是以太网地址。a r p 协议允许一台主机在知道同一物理网络上一 台目标主机i p 地址的情况下,找到目标主机的物理硬件地址。其过程如下:假定 北京邮电大学硕士论文n d i s 协议驱动设计与实现 在某一广播型物理网络上,主机a 欲解析主机b 的i p 地址i p b ,a 首先广播一个 a r p 请求报文,请求i p 地址为i p b 的主机应答其物理地址p b 。物理网络上的 所有主机( 包括主机b ) 都将接收到这个a r p 请求报文,但是只有主机b 识别出 自己的i p 地址i p b ,并做出应答:向a 发回一个a r p 应答报文,回答自己的物 理地址i p b 为了提高效率,a r p 使用了高速缓存技术。在每台使用a i 冲的主机 中,都开辟了一个专用的内存空间,即高速缓存,存储最近获得的i p 地址和对 应的物理网络地址,这就是a r p 表。每当接收到一个a r p 应答,主机就把目标 主机的i p 地址和对应的物理网络地址存入a r p 表。当发送数据报文的时候,主 机首先查询a r p 表,如果没有,再进行地址解析。由于网络的局部性,这样就 大大提高了a r p 效率。t c p i p 将a i 冲报文设计成一种能够适应各种物理地址 和协议地址的格式,针对以太网这一特定的物理网络,其a r p 报文格式如图所 示: 2 2 3 2i p 协议 图2 4 a r p 请求格式 i p 协议,又叫网际协议。t c p i p 协议通过i p 报文和i p 地址屏蔽了底层物 理帧的差异,并向上层提供统一的数据格式。i p 协议提供不可靠的、无连接的 数据报传输服务。 i p 只提供尽力而为的传输服务。当发生某种错误时,例如:某个路由器暂时 耗尽数据缓冲区,i p 有一个简单的错误处理算法:丢弃该数据报文,然后发送 i c m p ( i n t e m e tc o n t r 0 1m e s s a g ep r o t o c 0 1 ) 消息报文给信源主机。任何可靠性要求都 由上层协议( 例如:t c p ) 来保证。但是,i p 报文独立于任何底层的物理网络技术, 它是一种通用的数据传输方式。 i p 不维护任何有关数据报文的状态信息。每个数据报文的处理相互独立。 这说明:数据报文可能不按发送顺序接收。如果一个信源主机向同一个信宿主机 发送两个连续的数据报文( 先发送数据报文a ,再发送数据报文b ) ,每个数据报 文都独立进行路由选择,这就有可能选择不同的传输路径,不同的路由质量,因 此,数据报文b 可能先于a 到达信宿主机 9 北京邮l u 人学硕上论文 n d i s 协议驱动设计一0 实现 0掐撕飘 4 链 4 斑隋嚣8 位鬏务缀丝 i 锻总长度( 字节欺 版本 k 发f l b s 3 绽 1 3 位片饷移 l 嗷椽i 琏 椽惫 g 伍生彩时阋 f i t u g 位晦说 1 6 位嚣荔绝皱稠 3 2 位濂i p 地址 3 2 位翻的盈地垃 7 选项 m 旬o r f u n c t i o n ( 功能代码) 的每一个域罩都对应一个 2 7 北京邮i u 人学硕上论文n d i s 协议驱动设计与实现 函数指针,这些函数实现与上层应用程序的接口。每一个函数都有一个相应的功 能代码,并且与上层应用程序中所使用的w i n 3 2a p i 相对应。例如:功能代码为 i r pm jr e a d 的注册函数是i r d c t c p r e a d ,那么当上层应用程序调用r e a d f i l e 时,最终将由i r d c t c p r e a d 函数进行处理。 分配数据包:在n d i s 协议驱动程序中,数据的接收与发送都是以数据包为 单位进行的。构造一个数据包需要申请各种资源,通过得到的资源构造一个可用 于收发数据的数据包。 5 2n d j s 协议驱动加载及注册 5 2 1n d i s 协议驱动加载和初始化过程 1 启动系统自动加载n d i s s y s 2 启动协议驱动,加载i r d c t cp s y s 3 调用d r i v e r e n t 巧函数 4 创建应用程序可以通过该对象与n d i s 设备通信的设备对象和符号链接 5 初始化p r o t o c 0 1c h a r a c t e r s t i c 结构 6 调用n d i s r e 西s t e r p r o t o c o l 注册协议驱动 7 声明d i s p a t c h 例程 5 2 2 注册n d i s 协议驱动程序 协议驱动程序在d r i v e r e n t r y 环境中通过调用n d i s r e 百s t e r p r o t o c 0 1 向n d i s 注 册p m t o c 0 1 x x x 函数。n d i s r e 百s t e r p r o t o c 0 1 定义如下: v o i d n d i s r e 百s t e r p r o t o c o l ( o u tp n d i s s t a t u s & 口f 嬲, o u tp n d i s - h a n d l ej 7 7 如p 阳幻c d 肛舷胛( 玩厂, i nn d i s - p r o t o c o l c h a r a c t e r i s t i c s 尸r d 幻c o ,c 锄以,日c 胞,括f f c s , 瞰u l 登nc h n r n c t e r i s t i c s l e n g t h ) ; 该调用的返回句柄m 黼勿胁甩砒耐协议驱动程序是透明的,协议驱动 程序必须保存该句柄并在将来对n d i s 的调用中作为输入参数传递,例如,打开 2 8 北京邮电大学硕:卜论文n d i s 协议驱动设计与实现 低层适配器。 在调用n d i s r e 百s t e r p r o t o c o l 之前,d r i v e r e n 时必须完成以下操作: 1 零初始化一个n d i sp r o t o c o lc h a r a c t e r i s t i c s 类型的结构,例如 调用 n d i s z e r o m e m o r y 函数。这将确保可选入口点的尚未使用的成员设置为n u l l 。如 果该结构没被置零,那么在调用n d i s r e g i s t e r p r o t o c o l 之前,任何不再使用的成员 必须置为n u l l : n d i s z e r o m e m o 耿& p r o t o c o l c h a r ,s i z e o f 烈d i s p r o t o c o l _ c h a r a c t e r i s t i c s ) ) ; 2 在n d i sp r o t o c o lc h a r a c t e r i s t i c s 结构中指定协议兼容的 n d i s 版本: 3 在n d i sp r o t o c 0 lc h a r a c t e r i s t i c s 结构中保存驱动程序导出的 强制性的和非强制的p r o t o c o l x x x 函数的地址。 5 3n 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 d i s 注册了这些函数,那么将可以延迟打开和绑定低层网 卡而不必在d r i v e r e n t r y 函数中实现该功能,只要用p r o t o c o l b i n d a d 印t e r 函数就 可代替执行该操作。如果协议驱动程序提供了这些函数,那么只要低层网卡可用, n d i s 将调用能够将自己绑定到该适配器的任何协议驱动程序的 p r o t o c o l b i n d a d 印t e r 函数。并且只要低层网卡被关闭,那么n d i s 将可以调用互 逆的p r o t o c o l u n b i n d a ( 1 a p t e r 函数。 5 3 1n d i s 动态绑定网卡 驱动程序向n d i s 注册了i r d c t c p b i n d a d a p t e r 函数,只要低层n i c 可用,n d i s 将调用能够将自己绑定到该适配器协议驱动程序的i r d c t c p b i n d a d a p t e r 函数。 n d i s 通过d e v i c e n 锄e 向i r d c t c p b i n d a d a p t e r 函数提供最近叫用的适配器 名。n d i s 在b i n d c o n t e x t 中为绑定请求传递代表其环境的句柄。防议驱动程序 必须保存该句柄并在驱动程序完成绑定相关的操作,并准备传输和接收数据包时 将该句柄作为n d i s c o m p l e t e b i n d a d a p t e r 的参数传递给n d i s 。 北京邮 u 大学硕_ 上论文n d i s 协议驱动设计1 j 实现 动态绑定网卡实现流程: i r d c t c p b i n d a d 印t e “参数略) n d i s a l l o c a t e m e m o 巧w i t h t a g ( ) ;调用n d i s a l l o c a t e m e m o 哆w i t h t a g 为 设备分配驻留系统的内存 初始化设备信息 检查驱动是否已经绑定到该设备,如果没有,则开始进行绑定 建立绑定 s t a t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论