Currently Being Moderated
dougb

All about NDIS

Posted by in Wired Ethernet on

If you run Windows* and you run networking, you run NDIS.  NDIS - Network Driver Interface Specification has been around since well, forever.  I still have a copy of the old NDIS2 documentation in a hard copy at my desk.  Boy have things changed.  It started basically as a miniport, went monolithic and end up miniport again.  Miniport “plugs” into a protocol layer, while a monolithic has the protocol (or most of it) built into the driver.


This is a list of NDIS versions and the OS they tended to run on.  For a long time you could run the older revisions on the new O/S.  For example Win95* could run NDIS2.  It just wasn’t the first choice for performance and other reasons.  If you can run the previous version of the specification, I would recommend you run the native version since that will offer the best performance.  If we offer a driver of that specification, it will be listed as Y.  In the NDIS2 case, we only ship the DOS version of the driver.  If you need O/S2 NDIS2, put it in the comments and we’ll see about it.  10 Gigabit never got an NDIS2 driver, mostly because NDIS2 today is only used during manufacturing.  And 10 Gigabit LOM systems tend to have EFI and use that for “gas pumping” O/S images down.  Need 10 Gigabit NDIS2?  Again, let me know in the comments!

(Warning HTML tables!)

Version

OS Support

1 G

10 G

NDIS 2

O/S 2, Windows for Workgroups* 3.1, DOS

Y

N

NDIS 3

Windows for Workgroups 3.11

N

N

NDIS 4

Windows* 95, NT4

N

N

NDIS 5.0

Windows 98, 98 SE, ME, Windows 2000

N

N

NDIS 5.1

Windows XP*, Server 2003, CE6

Y

N

NDIS 5.2

Windows Server* 2003 SP2  or SP1 with the Scalable   Networking Pack

Y

Y

NDIS 6.0

Windows Vista*

Y

Y

NDIS 6.1

Windows Vista SP1, Server 2008

Y

Y

NDIS 6.20

Windows 7, Server 2008 R2

Y

Y



That’s a lot of drivers!  So what did each of those iterations bring to the table?  Here is a listing of features from our point of view.  Some TCP/IP Offload Engine stuff AKA TOE AKA Chimney was added somewhere in there, but since we didn’t use it; I don’t have in our chart.  I start with NDIS5 since it is the start of the modern era.  Ancient history isn’t my strong suit


  • NDIS 5.0: Return to the “full” miniport, start of the modern Windows networking driver.
  • NDIS 5.1: Windows XP, Server 2003

       IPsec Offload v1 - Offload Internet protocol security tasks (either IPsec or LSO)

       IP (v4) and TCP/UDP Checksum offloads

  • NDIS 5.2: Windows Server 2003 SP2

       RSS (Receive Side Scaling) was introduced in SP1 w/Scalable Networking Pack and in SP2

       Start of Quick Data support

       DCA (Direct Cache Access)

       LLI (Low Latency Interrupts)

       LSO (Large Send Offload)--in 2003 it is known as TCP Segmentation Offload

       LSOv1 Large Send Offload - Offload segmentation of large TCP packets greater than MTU - IPv4

       LSOv2 Large Send Offload - Offload segmentation of packets greater than 64K and support for IPv6

       Checksum Offload - Offload TCP and IP checksums (required for LSO)

       RSS - Receive Side Scaling - enables the efficient distribution of network receive processing across multiple CPUs in multiprocessor systems

       MSI-X - Message-signaled interrupts

       NETDMA v1.0 - generic interface for memory-to-memory direct memory access (DMA) transfers

       SGMDA - Scatter/Gather DMA - method to transfer data between a NIC and system memory

       Miniport State Machine - A chart listing the various NDIS Miniport operational states.

  • NDIS 6.1: Windows Vista SP1, Server 2008

       IPSec Offload v2 - Improved performance, security algorithms, IPv6, and can work with LSOv2

       Header data split - improves network performance by splitting the header and data in received Ethernet frames into separate buffers

       NETDMA v1.1 & v2.0

       VMQ - Virtual Machine Queue - Offload technology in which networking stack offloads receive processing in the context of a virtualized environment

       RST - Receive Side Throttle - reduce the possibility of glitches in multimedia application


Here is another useful link for you.  Part of the Windows experience is that rarely, just sometimes, it crashes.  Known worldwide as The Blue Screen of Death (BSOD), it will often come with a code.  Here is the cheat sheet for those codes.


A lot of these links are to the MSDN resource that Microsoft provides.  They are used for education purposes and do not constitute endorse of either party by either party.  That should keep the lawyers happy.  Is there a link about Windows Networking that makes you happy?  Post it in the comments!

Thanks to Christopher P for all his help making this article!

Comments

Filter Blog

By author: By date:
By tag: