NetBIOS is an acronym for Network Basic Input/Output System. The NetBIOS API allows applications on separate computers to communicate over a local area network. In modern networks, it normally runs over TCP/IP (NetBIOS over TCP/IP, or NBT), giving each computer in the network both a NetBIOS name and an IP address corresponding to a (possibly different) host name. Older operating systems ran NetBIOS over IPX/SPX or IEEE 802.2 (NBF). NetBIOS provides services related to the session layer of the OSI model.
When NetBIOS is run over the TCP/IP protocol, each computer may have multiple "names" — names for the NetBIOS API and another (or others) for basic TCP/IP.
The NetBIOS name is specified when Windows networking is installed/configured. In order to connect to a computer running TCP/IP via its NetBIOS name, the name must be resolved to a network address. Today this is usually an IP address (the NetBIOS name-IP address resolution is often done by either broadcasts or a WINS Server — NetBIOS Name Server). A computer's NetBIOS name is often the same as that computer's host name (see below), although truncated to 15 characters, but it may also be completely different. NetBIOS names can include almost any combination of alphanumeric characters except for spaces and the following characters: The Windows LMHOSTS file provides a NetBIOS name resolution method that can be used for small networks that do not use a WINS server.
There may also be "connection specific suffixes" which can be viewed or changed on the DNS tab in Control Panel → Network → TCP/IP → Advanced Properties. Host names are used by applications such as , , web browsers, etc. In order to connect to a computer running the TCP/IP protocol using its HOST name, the host name must be resolved into an IP Address. Host name- or Fully Qualified Domain Name (FQDN)-IP address resolution is typically done by a Domain Name System (DNS) server.
In 1985, IBM went forward with the token ring network scheme and a NetBIOS emulator was produced to allow PC-Network applications to work over this new design, using the NBF protocol to provide the NetBIOS services over the IEEE 802.2 Logical Link Control layer. This emulator also expanded upon the base NetBIOS API and the new API was deemed NetBEUI or NetBIOS Extended User Interface. With Novell's release of Advanced Novell NetWare 2.0 in 1986, NetBIOS was reconfigured to be encapsulated in the IPX/SPX protocol. After the PS/2 computer hit the market in 1987 IBM was finally prompted to release the PC LAN Support Program, which included a driver for NetBIOS.
In 1987, a method of encapsulating NetBIOS in TCP and UDP packets, NetBIOS over TCP/IP (NBT), was published; it is described in RFC 1001 — "Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concepts and methods" and RFC 1002 — "Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specifications". This was developed in order to "allow an implementation [of NetBIOS applications] to be built on virtually any type of system where the TCP/IP protocol suite is available" and to "allow NetBIOS interoperation in the Internet".
NetBIOS name resolution is not supported by Microsoft for Internet Protocol Version 6 (IPv6).
(Note: SMB, an upper layer, is a service that runs on top of the Session Service and the Datagram service, and is not to be confused as a necessary and integral part of NetBIOS itself. It can now run atop TCP with a small adaptation layer that adds a packet length to each SMB message; this is necessary because TCP only provides a byte-stream service with no notion of packet boundaries.)
The name service primitives offered by NetBIOS are:
The session service primitives offered by NetBIOS are:
In the original protocol used to implement NetBIOS services on PC-Network, to establish a session, the computer establishing the session sends an Open request which is responded to by an Open acknowledgment. The computer that started the session will then send a Session Request packet which will prompt either a Session Accept or Session Reject packet. Data is transmitted during an established session by data packets which are responded to with either acknowledgment packets (ACK) or negative acknowledgment packets (NACK). Since NetBIOS is handling the error recovery, NACK packets will prompt retransmission of the data packet. Sessions are closed by the non-initiating computer by sending a close request. The computer that started the session will reply with a close response which prompts the final session closed packet.
The datagram service primitives offered by NetBIOS are: