NetBEUI |
Previous versions of NetBIOS used a 1- byte (8-character binary) number with a maximum decimal value of 256 to identify NetBIOS sessions. Session numbers were assigned per computer. Therefore, a computer using previous versions of NetBEUI can support a maximum of 254 network connections, since NetBIOS reserves session numbers 0 and 255.
NBF breaks the 254-session barrier by using a combination of two matrices, one maintained by NBF and one maintained by NetBIOS. NBF is not constrained by the session limitation of earlier versions of NetBEUI. NBF uses the TDI and a TDI 32-bit handle composed of the session number and the network adapter address of the remote computer. This allows a virtually limitless range of unique numbers that can be used to uniquely identify sessions.
Figure 16.4 illustrates the additional sessions provided by the addition of the NBF matrix.
Figure 16.4 Additional Sessions from NBF Matrix
Along the side of the NBF matrix are the Local Session Numbers (LSNs) from 0 to 255. Across the top are the network adapter addresses for the different computers that it has sessions with. In the cell defined by the intersection of the LSN and network address, is the TDI handle. For more information about LSNs, see "Establishing Sessions" later in this chapter.
Note
The matrix concept and its contents are for illustration purposes only. The physical storage algorithm and exact contents are beyond the scope of this chapter.
Using NBF, it is possible for a Windows 2000 server with a single network adapter to support simultaneous sessions that exceed the previous NetBEUI session limit of 254. For example, a Windows 2000 server running NBF with a single network adapter is able to support sessions with more than 1,000 clients.
Although NBF breaks the 254-session barrier of previous NetBIOS versions, a limitation is still present when connecting to a remote client with a group NetBIOS name.
Consider the following three scenarios:
When a client connects to a computer running NBF, NBF can inspect the incoming frame to determine the remote adapter's address and assign a session number for that adapter.
When NBF is connecting to a remote client, it first sends a FindName frame. A response from the remote client means that the name is a unique name. NBF can then assign a session number for that remote adapter address because only that remote client owns that name.
If the FindName response indicates that the connection is being made to a group name, NBF has no way to determine which adapter belonging to the group responds when it tries to connect. In this case, NBF has to assign a session number on a global basis, just as NetBEUI does for all connections.
NBF has no limit on sessions, unless it is establishing connections to group names. In this case, the old NetBEUI limit still applies. For instance, if you have n group name connections, then you can have 254-n connections to any particular remote client. If n is 0, then you can have a full 254 connections to a remote. If n is 253, you can still have one connection to each remote, but if n is 254, then no more connections can be made until one of the existing connections is disconnected.