The mapping between OSI layers and networking components isn't
precise, which is the reason that some components cross layers.
The various components are illustrated in the figure below including
the following:
Networking APIs provide a protocol-independent way for
applications to communicate across a network. Networking APIs
can be implemented in user mode or in both user mode and kernel
mode, and in some cases are wrappers around another networking
API that implements a specific programming model or provides
additional services.
Transport Driver Interface (TDI) clients are kernel-mode
device drivers that usually implement the kernel-mode portion
of a networking API's implementation. TDI clients get their
name from the fact that the I/O request packets (IRPs) they
send to protocol drivers are formatted according to the
Windows 2000 Transport Driver Interface standard .
This standard specifies a common programming interface for
kernel-mode device drivers.
TDI transports, also known as transports, Network Driver
Interface Specification (NDIS) protocol drivers, and protocol
drivers, are kernel-mode protocol drivers. They accept IRPs
from TDI clients and process the requests these IRPs represent.
This processing might require network communications with a
peer, prompting the TDI transport to add protocol-specific
headers (such as TCP, UDP, IPX) to data passed in the IRP and
to communicate with adapter drivers using NDIS functions .
TDI transports generally facilitate application network
communications by transparently performing message operations
such as segmentation and reassembly, sequencing,
acknowledgment, and retransmission.
The NDIS library (Ndis.sys) provides encapsulation for adapter
drivers, hiding from them specifics of the Windows 2000
kernel-mode environment. The NDIS library exports functions
for use by TDI transports as well as support functions for
adapter drivers.
NDIS miniport drivers are kernel-mode drivers that are
responsible for interfacing TDI transports to particular
network adapters. NDIS miniport drivers are written so that
they are wrapped by the Windows 2000 NDIS library. The
encapsulation provides cross-platform compatibility with
Consumer Windows. NDIS miniport drivers don't process IRPs;
rather, they register a call-table interface to the NDIS
library that contains pointers to functions corresponding to
ones that the NDIS library exports to TDI transports. NDIS
miniport drivers communicate with network adapters by using
NDIS library functions that resolve to hardware abstraction
layer (HAL) functions.
|