2.1.1 NetBIOS-Based Transports

The Network Basic Input/Output System (NetBIOS) is a software interface layer. NetBIOS is specified in [NETBEUI].<2> NetBIOS imposes semantic requirements on the underlying transport mechanism. NetBIOS-based transports MUST support three common services:

The NetBIOS name service provides a mechanism for registering and releasing NetBIOS names. NetBIOS names are end-point addresses; each name represents an application or service running on a node on the network.

The NetBIOS datagram service provides connectionless, unreliable transport for unicast, multicast, and broadcast messages (datagrams).

The NetBIOS session service provides reliable, point-to-point transport. When using the NetBIOS session service, CIFS makes no higher-level attempts to ensure reliable, sequenced delivery of messages between the client and server. The underlying transport is responsible for detecting failures of either the client node or server node and for delivering failure indications to the client or server software so that resources can be freed and errors can be reported to applications.

The NetBIOS session service supports the following behavior:

  • If the client generates malformed requests (for example, if messages received on the session do not begin with the '\xFF', 'S', 'M', 'B' protocol identifier string), a server can drop the transport connection to the client. The server SHOULD<3> first return an error message response with an SMB error class of ERRCMD (0xFF). If a server receives a hard error on the transport (such as a send failure) the transport connection to that client can be aborted.

  • If a client has no open resources on the server (no open files, directories, search contexts, and so on), the server can terminate the transport connection. It is expected that the client implementation can automatically reconnect to the server. See section 3.3.2.2 for a description of the Idle Connection Timer.

For more information about NetBIOS, see  [NBF2CIFS], [XOPEN-SMB] Appendix E, [NBF], and [RYAN].