《Windows网络体系结构总结》.pdf

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Windows网络体系结构总结》.pdf

Windows网络体系结构总结 学习各种高级外挂制作技术,马上去百度搜索 魔鬼作坊,点击第一个站进入, 快速成为做挂达人。 做了一些东西自己也看了一些书,最近总结了一下,想给大家分享一下,高手可以飞过了。如果有什么问 题可以给小弟指正一下,多谢! 在介绍Windows网络体系架构之前,我首先介绍一下Windows中的两个重要编程规范——TDI,NDIS.,然 后再介绍网络体系的架构。 TDI,Transport Driver Interface,传输驱动程序接口。\Windows\System32\Drivers\Tdi.sys 在实现网络API驱动程序时,由于牵涉到很多不同协议,会用到不同协议驱动提供的接口,使得开发的工 作复杂化。所以Microsoft在网络API驱动程序和协议驱动之间又增加了一层TDI。TDI接口只是一种“将 网络请求格式化成IRP,以及申请网络地址和数据通信”的做法规范化。遵从TDI标准的传输协议向他们 的客户(如Socket emulator,Netbios emulator等)导出了TDI接口,有利于上下层之间的通信: l 一方面,对于TDI上层的网络API驱动程序就不需要使用所有协议驱动程序所提供的接口,直接使用 TDI提供的统一接口。 l 另一方面,对于下层协议驱动程序(也称为TDI Transport Provider传输器)直接由TDI接口来调用, 发出请求。 在Windows VISTA版本之后,TDI就不再使用了,取而代之的是Windows filter platform和Winsock ke rnel。 NDIS,Network Driver Interface Specification,网络驱动程序接口规范,在操作系统中的位置 \Windows\System32\Drivers\NDIS.sys 当一个协议驱动程序想要按照其协议的格式解析网上读写的数据时,而这些数据必须通过网络适配器才能 取得,期望协议驱动程序能够理解市场上的每一款网络适配器的细微区别是不可能的。所以在1989年,由 Microsoft和3Com联合开发的了NDIS,使得协议驱动程序可以以一种与设备无关的方式来跟网络适配器驱 动程序进行通信。遵从NDIS的网络适配器驱动程序称为NDIS minport driver。 NDIS规范实现了与TDI标准类似的功能,都是将复杂的下层调用规范化、标准化,大大提高了Windows操 作系统的可扩展性和兼容性。也表现在两个方面: l 对于下层,让网络适配器制造商很easy的开发自己的设备驱动程序,也就是Ndis miniport driver。 这些miniport driver直接利用NDIS提供的接口发送指令,NDIS对这些格式化的指令进行解析,做进一 步处理。(这些处理就到了HAL了) l 对于上层,多个协议驱动程序与下层minport driver之间的通信,也都是通过统一的NDIS接口,Ni dsAllocatePacket,NdisSend等函数来收发数据。 废话两句:TDI和NDIS两大接口规范,有力的提升了Windows操作系统对不同设备厂商的支持,降低了设 备厂商对设备驱动程序开发的难度;也增加了对于不同网络协议的支持,给用户更强大的网络功能支持。 这种设计我们也可以在Windows存储管理中看到,从中我们似乎可以了解到一些,Windows操作系统在商 业上取得成功的原因。Linux操作系统中没有这样的驱动层次结构。 设备制造商开发的Ndis miniport driver直接调用NDIS库中的接口函数,因此不需要考虑重入的问题, 就是一个请求尚未结束的时候,新的请求又进来了。NDIS库对请求进行了序列化,但是这种序列化也妨碍 了多处理器的扩展性。所以NDIS5中提供了非序列化的操作项。下面,我来介绍一下,Deserialized和Se rialized minport driver的区别: Deserialized NDIS miniport driver自己序列化对MinportXxx函数的操作,排队和管理多个并发请求的 任务都由驱动程序自己来完成。而Serialized NDIS miniport driver以上的工作都是依赖于NDIS库来完 成的。从性能角度看,Deserialized NDIS miniport driver的性能是Serialized NDIS miniport drive r性能的2倍多,所以到NDIS6.0之后的所有Miniport driver都是deserialize的。 以上是

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档