Connection-Oriented Network Communications

With reliable connection-oriented communications, NBF transfers the frame from the source computer to the destination computer using a link ** between the sending and receiving LLC computers. The frame is composed of the sending SSAP, the DSAP, and the network adapter address of the destination computer. The frame can be addressed as:

  • An individual computer's network adapter address where the LLC frame is received by a single LLC computer that registered the DSAP.

  • A NetBIOS multicast address where the LLC frame is received by all LLC computers that have registered the multicast DSAP.

Reliable connection-oriented communication (also called session, or Type 2 operation) requires more overhead than connectionless communication. For example, an acknowledgment from the destination client that the frame is received is required. The transport protocol driver assumes responsibility for transferring the entire message from source to destination, within an acceptable time period. Sequencing is provided; a message that is larger than the maximum transmit frame size can be broken down into multiple frames, sent across the network, and properly reassembled at the receiving computer.

The following procedure uses the net use command as an example to describe the signaling process in connection-oriented communication.

  1. When you type net use at the command prompt to connect to a shared resource, NBF must first locate the server by sending Unnumbered Information frames, and then initialize the link. This is handled by the redirector when it makes a connection to the NBF drivers by using the TDI interface.

  2. NBF begins the sequence by generating a NetBIOS Find Name frame.

  3. When the server is found, a session is set up with Class-II frames that contain timing parameters following the 802.2 protocol standard (802.2 governs the overall flow of data).

  4. The client sends a Set Asynchronous Balance Mode Extended frame, and the server returns an Unnumbered Acknowledgment frame.

  5. The client sends a Receive Ready (RR) frame, notifying the server that it is ready to receive Informational (I) frames, which have sequence numbers starting at 0. The server acknowledges this frame.

  6. When the LLC-level session is established, additional NetBEUI-level information is exchanged. The client sends a Session Initialize frame, and then the server responds with a Session Confirm frame. At this point, the NetBEUI-level session is ready to handle application-level frame Server Message Blocks (SMBs).

Reliable transfer is achieved with link-oriented frames by numbering the I-frames. This allows the receiving computer to determine whether the frames were lost and in what order they were received.

NBF improves performance for connection-oriented traffic using two techniques: adaptive sliding windows and link timers, which are described in the following sections.

Adaptive Sliding Windows

NBF uses an adaptive sliding window algorithm to improve performance while reducing network congestion and providing flow control. An adaptive sliding window algorithm allows the Windows 2000–based computer using NBF to dynamically tune the number of LLC frames sent before an acknowledgment is requested.

If the sending computer can send only one frame on the network and then has to wait for an acknowledgment (ACK), the sending computer is underused. The frames travel forward, and then ACKs for the received frames have to travel back to the sending computer before it can send another frame. The number of frames that the sender is allowed to send before it must wait for an ACK is referred to as the send window.

The number of frames that a receiving computer is allowed to receive before sending an ACK to the sending computer is referred to as a receive window. In general, NBF has no receive window, unless it detects that the remote sending computer is running a version of IBM NetBEUI that does not support polling (polling is accomplished by sending a frame to check the status of the peer); in this case, NBF uses a receive window based on the value of MaximumIncomingFrames in the registry.

The default value for MaximumIncomingFrames is 2 and this value does ** not change dynamically. It must be changed manually by using the Registry Editor.

Limiting the send window size can improve performance by reducing network traffic. The adaptive sliding window tries to determine the best size for the send window based on current network conditions. Ideally, the window is big enough for maximum throughput. However, if the window gets too big, the receiving computer can become overloaded and drop frames, which then have to be retransmitted. This can result in significant network traffic on slow links, or when frames have to pass over multiple hops to find the destination computer.

NBF uses three timers to help regulate network traffic: the response timer (T1), the acknowledgment timer (T2), and the inactivity timer (Ti). These timers are controlled by the values of the registry entries DefaultT1Timeout, DefaultT2Timeout, and DefaultTiTimeout, respectively.

The response timer is used to determine an interval, after which the sender assumes that the I-frame is lost. In this event, NBF sends an RR frame and doubles the value for the response timer (T1). If the RR frame is not acknowledged after the number of retries (defined by the value of LLCRetries), the link is dropped.

When an I-frame cannot be sent within the specified time period, the acknowledgment timer (T2) begins, and an ACK message is sent. The default T2 value is 150 milliseconds. To avoid delays over slow links, and other possible timing issues, NBF is optimized so that the last frame from the sender has the Poll bit turned on. This forces the receiver to send an ACK immediately.

The inactivity timer (Ti) is used to detect whether the link has gone down. The default value Ti value is 30 seconds. If Ti milliseconds pass without activity on the link, NBF sends an I-frame for polling. An ACK is then sent, and the link is maintained.

note-icon

Note

T2 is less than or equal to T1, which is less than or equal to Ti.

The T1 entry is tuned dynamically per link, based on link conditions and throughput. The value of the T1 entry as specified in the registry is used as the starting value for the time period that the process waits for a response. This entry can be changed. For example, if you know that the computer connects to the network on a slow link, the T1 value can be increased. However, even if this value is not changed, NBF can detect the slow link quickly and automatically tune the T1 value. T2 and Ti are not adapted dynamically.