Overview of Windows 2000 Network Architecture

This chapter describes software and hardware components and the connections between them that allow computers to function as a network. Windows 2000 network components are arranged in layers. Each layer has specific tasks to perform and within each layer more than one component can perform a similar task.

The Windows 2000 network layers are described in the following sections from the bottom of the network architecture model up to the top. The layers are:

Network Driver Interface Specification (NDIS) Layer    NDIS is the layer that provides a communication path from a network transport to a physical device, such as a network adapter. NDIS acts as a boundary layer between network adapters and network protocols and manages the binding between these components. NDIS adds support for connection-oriented network media such as ATM and Integrated Services Digital Network (ISDN) and continues to support traditional connectionless network media such as Ethernet, Token Ring, and Fiber Distributed Data Interface (FDDI). This layer contains the miniport drivers that interface directly with the network adapter.

Network Protocol Layer    The network protocols provide services for clients. These services allow applications or clients to send data over a network. Network protocols include TCP/IP, ATM, NWLink Internetwork Packet Exchange/Sequenced Packet Exchange (IPX/SPX), NetBEUI, Infrared Data Association (IrDA), AppleTalk and Data Link Control (DLC). Systems Network Architecture (SNA) protocols are available with the addition of Microsoft® SNA Server.

Transport Driver Interface Layer    The transport driver interface (TDI) provides a standard interface between network protocols and clients of these protocols (such as applications, network redirectors or networking Application Programming Interfaces (APIs)).

Network Application Programming Interface Layer    The network application programming interface (API) provides standard programming interfaces for network applications and services. They support Winsock, NetBIOS, Telephony API (TAPI), Messaging API (MAPI), WNet API and other services.

Interprocess Communications Layer    Interprocess communications (IPC) support client/server computing and distributed processing. Some of the services that they support are remote procedure calls (RPC), Distributed Component Object Model (DCOM), named pipes, mailslots, and Common Internet File System (CIFS).

Basic Network Services Layer    Basic network services support network user applications by providing services. These include network address management, name services, file services and advanced network services such as Internet Protocol Security (IPSec) and Quality of Service (QoS).

The International Organization for Standardization has a model for computer networking, also called the Open Systems Interconnection (OSI) Reference Model. This model is useful to describe network layers. The OSI model defines a modular approach to networking, with each layer responsible for some discrete aspect of the networking process. The OSI model does not correspond exactly to most existing network architectures. However, models assist in understanding how networks function by providing a structure to use as a comparison. For more information about the OSI model, see "OSI Model" in this book.

Network communication begins when an application program attempts to access resources on another computer. Data and requests move from layer to layer within a computer. Each layer is able to communicate with the layer immediately above it and the layer immediately below it. If the packet is not meant for use by the current layer, it passes the packet to an adjacent layer. Packets travel down the network protocol stack of the first computer. If the destination is on another networked computer, the packets of data are sent across the physical media (such as wiring, fiber optic cable or satellite). The data is passed upward through the lower layers of the second computer up to the same layer that started the exchange of data.

Figure B.1 represents a model of Windows 2000 network architecture.


Figure B.1 Windows 2000 Network Architecture

Software components are represented by rectangles. These components are in horizontal layers. Components that are on the same horizontal level provide similar functionality. The top layer of the diagram is where user applications reside. In order to communicate with other networked computers, additional software and hardware support is needed. Each layer below the applications and services layer provides services that are necessary to create packets of data, arrange for their delivery and send them across the physical media to another computer.

Boundary layers are interfaces between functional layers in the Windows 2000 network architecture model. Creating boundaries as breakpoints in the network layers helps standardize programming for developers. Because the functionality between the layers is well-defined, developers need to program only to a boundary layer instead of having to code from the top (an application program) to the bottom of the protocol stack (network adapter). If software is correctly written to a boundary layer, then support on the other side of that layer already exists and does not need to be written. Both the transport device interface (TDI) and Network Driver Interface Specification (NDIS) are boundary layers. In the diagram, DLC and Native ATM both have a gap between the top edge of DLC, Native Asynchronous Transfer Mode (ATM) and the TDI layer because they do not interface through the TDI layer.

Binding is the linking of network components on adjacent layers of the protocol stack. Binding occurs at boundary layers and other adjacent layers. Binding enables communication between the various layers.

Components are portions of software that perform specific tasks. A network component can bind to one or more network components above or below it. When adding network software, Windows 2000 binds all needed and associated components together. During binding, an information file (.inf) contains the instructions necessary to establish the required binding relationships.

Figure B.2 shows two protocols binding to two network adapters inside the same computer.


Figure B.2 Binding