Windows Networking Architecture

Next

The Simplified Block Diagram below illustrates the Windows Networking Architecture and the data paths for sending and receiving network packets by a Win32 application on a NDIS miniport (NIC) driver:

 

[ Click Here To Enlarge Diagram... ]

As the diagram illustrates, the software path between a Win32 application and a NIC driver is not direct. The path traverses several components including:

A NDIS Protocol Driver - Only a NDIS protocol driver can access the upper edge of the NDIS Wrapper for the purpose of sending and receiving packets and performing NIC-specific NDIS operations. Notice that a NDIS protocol driver is an OS-dependent driver: several different NDIS protocol drivers are required to support the spectrum of current Windows operating systems.

The NDIS Wrapper - A kernel mode driver or library that exports the set of software interfaces and services defined by the Network Driver Interface Specification (NDIS). The wrapper effectively isolates the actual NIC driver from the host operating system.

All Microsoft-provided networking services as well as a third-party networking products follow the basic path and implementation illustrated in the diagram to access NIC drivers.

Microsoft provides several high-level networking protocols and services as part of each Windows operating system. The Microsoft-provided networking services and protocols include:

bullet

Internet Protocol (TCP/IP)

bullet

AppleTalk Protocol (Windows NT/Windows 2000 Only)

bullet

NetBEUI Protocol

bullet

NwLink SPX/IPX Transport Protocol (Novell Compatible)

Unfortunately, none of the built-in Microsoft-provided networking services provide a mechanism to send or receive "raw" network packets or to perform other NDIS operations on specific NIC drivers.

Note: Windows sockets ("Winsock") on Windows XP includes "raw sockets" functionality similar to the raw sockets functionality available on other platforms such as Linux. The "raw sockets" capability added to Windows XP  includes the ability to send and receive raw IP packets; Winsock "raw socket" functionality on earlier Windows platforms was basically crippled.

See the Winsock FAQ, maintained by Warren Young, for more information...

 

The next topic on the Tour describes how to develop a solution to this problem.

Next

 

Mailing Lists  · PCAUSA Newsletter · PCAUSA Discussion List
·
Privacy Statement · 
WinDis 32 is a trademark of Printing Communications Assoc., Inc. (PCAUSA).
Rawether for Windows and Rawether .NET are trademarks of Printing Communications Assoc., Inc. (PCAUSA).
Microsoft, MS, Windows, Windows 95, Windows 98, Windows Millennium, Windows 2000, Windows XP, and Win32 are registered trademarks and Visual C++ and Windows NT are trademarks of the Microsoft Corporation.
Send mail to rawether-webmaster@pcausa.com with questions or comments about this web site.
Copyright © 1996-2008 Printing Communications Assoc., Inc. (PCAUSA).
All rights reserved.
Last modified: December 31, 2007