接口驱动程序是一个小型计算机程序或一组程序,充当计算机软件和网络接口卡 (NIC) 硬件之间的联络人。 NIC 制造商和程序员使用称为网络驱动程序接口规范 (NDIS) 的特定应用程序编程接口 (API)。它规定了计算机程序(例如操作系统)与 NIC 交互所需的所有规则。实际上,NDIS 下描述了多种类型的接口驱动程序,但本质上,NDIS 的主要工作是让开放系统互连 (OSI) 模型的几个层相互协作。
OSI 模型是由以下组成的七层,其中一些有多个子层。第一层是物理层,它处理 NIC 的物理规范,例如通用串行总线 (USB) 加密狗、以太网卡、无线适配器卡等。 OSI 模型的第二层和第三层是所有 NDIS 的所在地魔法发生了。第二层是数据链路层,由两个子层组成,上层称为逻辑链路控制(LLC),下层称为媒体访问控制(MAC)。设备驱动程序处理 MAC 子层,而接口驱动程序处理 LLC 子层,在它和 OSI 模型的第三层(网络层)之间提供接口。
作为中介,NDIS 本质上封装了 NIC 硬件的所有令人困惑的复杂性,并提供了一组与其交互的功能通信所需的网络协议。程序员只需遵循 NDIS 中规定的规则即可创建实际的接口驱动程序。在较低处硬件级别,这些驱动程序称为微型端口驱动程序,而上层驱动程序是使用 NDIS API 编写的,用于处理核心网络协议,例如 Internet 协议 (IP)、Internet 协议安全 (IPsec)、Internet 控制消息协议 (ICMP)和互联网数据包交换 (IPX) 等。
当通过 NIC 进行网络通信时,数据位为首先由物理设备接收,然后通过 OSI 模型的体系结构,数据从硬件向上移动到 OSI 模型的不同层,直到以用户更容易理解的格式呈现。因此,模型的每一层都为其邻居提供服务。数据离开第一层r,物理层,并命中第二层中较低子层的 MAC,设备驱动程序将其传递给 LLC。然后,LLC 的协议驱动程序将其向上移动到网络层。
另一种类型的接口驱动程序是中间驱动程序,它充当外壳的作用,包含微型端口驱动程序和网络协议驱动程序的接口。然后,这些中间驱动程序可以链接在一起,并为接口驱动程序提供控制 NIC 接收的流量的能力。中间驱动程序可用于满足各种需求,例如数据过滤、负载平衡、监视网络流量和收集统计信息。它们还可以很好地充当旧传输驱动程序和微型端口驱动程序之间的转换器,与旧驱动程序无法理解的媒体格式进行通信。
NDIS 最初由 Microsoft® 与 3Com® 合作设计,因此许多硬件制造商编写驱动程序以支持 Microsoft® o首先是操作系统。因此,NDIS 仅限于基于 Intel® 80386 系列 32 位或 64 位处理器的计算机硬件架构。自由软件运动还开发了一个名为 NDISWrapper 的程序,该程序能够加载最初为 Microsoft® Windows® 开发的接口驱动程序,以便与免费的类 Unix® 操作系统(例如 Linux®)一起使用。 Berkley Software Distributions (BSD) 免费衍生产品(例如 FreeBSD® 和 NetBSD®)的用户还发现可以通过使用由 Project Evil 项目开发的软件来使用 Windows® 接口驱动程序。 NDIS 的 x86 硬件限制催生了另一个由 Apple 和 Novell® 开发的项目,称为开放数据链路接口 (ODI),该项目提供与 NDIS 大部分相同的规则和功能,但重点关注 Apple® Macintosh&;和 Novell NetWare® 系统。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!