豆瓣
扫码直接下载
读过 深入解析Windows操作系统
windows的网络总体结构 OSI参考模型 七层: 应用层----处理两个网路应用程序之间的信息传输(安全检查,标识参与的及其,发起数据交换的功能) 表示层--------处理数据的格式化(行末是否有回车换行,数据是否要压缩或加密) 会话层--------管理协作应用程序之间的连接(包括高层次的同步,以及监视哪个应用程序正在“通话”,哪个应用程序正在“监听”) 传输层---------在客户端,这一层将消息分成数据包,并且为它们分配序列号,以确保它们全部按照正确顺序被接受到。在目标端,这一层已经接收到的数据包组装起来。它也使会话层避免受到硬件变化的影响 网络层----------创建包头,以及处理路由,阻塞控制和网络互连。它是理解网路拓扑结构的最高层。这里的网络拓扑结构指的是网络中的机器的物理配置,带宽的限制等 数据链路层---------传输低层的数据帧,等待确认消息以表明这些数据帧已被接收到,以及重传那些在不可靠线路上被丢失的帧 物理层-----------把数据位传送到网络线缆或其他的传输介质上 一个请求在它这边往下传递,而网络另一边向上传递到同样的层次上,这一过程所经过的协议集合被称为一个协议栈。引自 网络 windows网络组件 OSI层和网络组建的映射关系并不是精确的。 网络API--------为应用程序提供了一种与协议无关的方法来跨网络进程通信。网络API既可以在用户模式下实现,也可以再用户模式下实现,也可以同时在用户模式和内核模式下实现。 传输驱动程序接口(TDI)客户 ------它是内核模式的设备驱动程序,通常实现了一个网络API具体实现的内核模式部分。TDI客户只所以得以此名称,是因为,它们发送给协议驱动程序的I/O请求包(IRP)是根据windows的传输驱动程序接口标准来格式化的 TDI传输器-------也称为传输器,网络驱动程序接口规范(NDIS)协议驱动程序和协议驱动程序。它们是内核模式的协议驱动程序。它们接受来自TDI客户的IRP,并处理。这一处理过程可能要求与一个对等体之间进行网络通信,促使该TDI传输器在此IRP所传递的数据中加入与协议相关的头(TCP,UDP,IP)以及使用NDIS函数与适配器驱动程序进行通信。TDI传输器透明地执行一些消息操作(分段,分组,加入序号,确认和重传,从而为应用程序的网络通信提供便利的设施) NDIS库(Ndis.sys)---------封装了适配器驱动程序,为它们隐藏了windows内核模式环境的各种细节。NDIS库导出一些供TDI传输器使用的函数,以及一些供适配器驱动程序使用的支持函数 NDIS小端口驱动程序---------内核模式驱动程序,负责为TDI传输器与特定的网络适配器建立连接。NDIS小端口驱动程序被windows NDIS库包装了起来(提供了与Consumer windows之间的跨平台兼容性)。NDIS小端口驱动程序并不处理IRP,相反地,它们向NDIS库注册了一个调用表接口,表中包含的函数指针对应于NDIS库导出给TDI传输器的函数。NDIS小端口驱动程序利用NDIS库函数(被解析为硬件抽象层[HAL]的函数)与网络适配器进行通信。引自 网络 网络API windows实现了多个网络API,以便为遗留应用程序提供支持,并且与工业标准保持兼容。 1.windows套接字(WinSock) 2.远程过程调用(RPC) 3.Web访问API 4.命名管道和邮件槽 5.NetBIOS 6.其他网络API 引自 网络 windows套接字 WinSock现代版包含了BSD套接字的绝大多数功能,远远超出了BSD套接字规范,充分利用windows异步I/O的功能,它们提供了直接BSD套接字编程更好的性能和伸缩性。 特性: 1.支持分撒-聚集和异步应用程序I/O 2.服务质量(QoS)规范,因而当底层网络支持Qos时,上层应用程序可以协商延迟需求和带宽需求。 3.扩展性。除了windows要求winsock支持的协议以外,winsock还可以与其他的协议一起被使用 4.支持集成的名字空间,而不仅仅是应用程序正在使用的winsock协议所定义的名字空间 5.对多点消息的支持,即从单个源并发地传输给多个接收者引自 网络 Winsock客户的操作 WinSock应用程序采取的第一个步骤是调用一个初始化函数,以便初始化winsock API。创建一个套接字,这套接字一般代表一个通信端点。调用gethostnyname来获得想要连接的服务器的地址。获得服务器地址后,面向连接的客户程序使用connect并指定此服务器地址,试图与该服务器建立连接。当连接建立起来以后,就可以send和recv了。引自 网络 WinSock服务器的操作 先初始化WinSock API以后,首先创建套接字,然后利用bind将它绑定到一个本地地址上。面向连接用listen,如果当前有一个请求等待,则accept调用立即完成引自 网络 Winsock的扩展 WinSock API的一个显著的特性是,它与windows消息集成在一起。windows应用程序可以充分利用这种特性来实现异步的套接字操作,它们可以通过标准的windows消息或执行回调函数来接受一个操作的完成通知。里面也有一堆不属于WinSock标准的函数。引自 网络 扩充WinSock windows上,WinSock是一个可扩充的API,因为第三方可以加入一个传输服务提供者,由该传输服务提供者将WinSock与叠加在已有协议之上的其他协议或层连接起来,以便提供诸如代理之类的功能。引自 网络 WinSock实现 应用程序接口是由一个API DLL构成的,即Ws2_32.dll,它为应用程序提供了对于winsock函数的访问,通过调用名字空间服务提供者和传输服务提供者的服务,来执行名称和消息操作。Mswsock.dll库是一个传输服务提供者,实现了microsoft在WinSock中所支持的协议,并且,Mswsock.dll库利用WinSock辅助库来跟内核模式的协议驱动程序进行通信。 如同命名管道和邮件槽一样,WinSock也跟Windows I/O模型集成在一起,它使用文件句柄来标识套接字,所以Msafd.dll使用辅助功能驱动成(AFD)来实现基于套接字的函数。AFD是一个TDI客户,它通过向协议驱动程序发送TDI IRP来执行网络套接字操作。引自 网络 Windows套接字直接访问 windows套接字直接访问(WSD)是一个接口,它使得WinSock应用程序可以再不需要修改的情况下充分发挥系统区域网络(SAN)的优势,这里SAN也称为RDMA(远程直接内存访问)结构。SAN这种高性能特征使得这种结构在从分布式计算到三层电子商务结构中的应用都非常理想。 SAN连接 SAN的交换硬件实现了一个不可路由的协议,它提供了类似于TCP的保证。SAN的实现也允许应用程序绕过内核模式的组件,直接发送数据给用户应用程序,或者从用户应用程序接收数据。 WSD结构 使得应用程序可以绕过TCP/IP的协议栈,直接访问SAN硬件。性能提高2到2.5倍。引自 网络
windows的网络总体结构 OSI参考模型
windows网络组件
网络API
windows套接字
Winsock客户的操作
WinSock服务器的操作
Winsock的扩展
扩充WinSock
WinSock实现
Windows套接字直接访问
> hao的所有笔记(427篇)
NTFS文件系统驱动程序 基本框架: I/O管理器与其他内核组件互交,可能还会调用底层的NTFS驱动...
数据压缩和稀疏文件 NTFS支持以每个文件,每个目录或每个卷为基础的压缩功能(NTFS的压缩只在...
远程过程调用 远程过程调用(RPC)是一个网络编程标准。微软的RPC实现是与OSF/DCE标准相兼容...
NetBIOS NetBIOS同时支持可靠的面向连接的通信和不可靠的无连接的通信。windows支持NetBIOS是...
表示其中内容是对原文的摘抄