NetBIOS stands for Network Basic Input Output System which is created by IBM. NetBIOS defines a software interface and standard methods providing a communication interface between the application program and the attached medium. NetBIOS is used in various LAN (Ethernet, Token Ring etc) as well as WAN environment such TCP/IP, PPP and X.25 networks.
NetBIOS frees the application from having to understand the details of the network, including error recovery (in session mode). A NetBIOS request is provided in the form of a Network Control Block (NCB) which, among other things, specifies a message location and the name of a destination.
NetBIOS provides the session and transport services described in the Open Systems Interconnection (OSI) model. However, it does not provide a standard frame or data format for transmission. A standard frame format is provided by NetBEUI (NetBIOS Extended User Interface), which provides transport and network layer support to NetBIOS.
NetBIOS names are 16 bytes long (padded if necessary) and there are very few restraints on the byte values which can be used. There are three methods of mapping NetBIOS names to IP addresses on small networks that don"t perform routing:
- IP broadcasting - A data packet with the NetBIOS computer name is broadcast when an associated address is not in the local cache. The host who has that name returns its address.
- The lmhosts file - This is a file that maps IP addresses and NetBIOS computer names.
- NBNS - NetBIOS Name Server. A server that maps NetBIOS names to IP addresses. This service is provided by the nmbd daemon on Linux.
Protocol Structure
NetBIOS packets have many different formats depends on the services, message types as well as the transport protocols used to carry the NetBIOS packets. NeBIOS has three basic services: NAME, SESSION and DATAGRAM. As an example, we display the general NetBIOS Name packet format in the TCP/IP environment:
| Header (12 bytes) |
| Question Entry (variable) |
| Answer Resource Records (variable) |
| Authority Resource Records (variable) |
| Additional Resource Records (variable) |
The format of the NetBIOS header is shown below:
| 2 bytes | 2 bytes | 1 bytes | 1 bytes | 2 bytes | 2 bytes | 2 bytes |
| Length | Deliminator | Command | Data1 | Data2 | XMIT Cor | RSP Cor |
| Destination name (16 bytes) | ||||||
| Source name (16 bytes) | ||||||
- Length - The length of the NETBIOS header.
- Deliminator - A delimiter indicating that subsequent data is destined for the NetBIOS function.
- Command - A specific protocol command that indicates the type of function of the frame.
- Data 1 - One byte of optional data per specific command.
- Data 2 - Two bytes of optional data per specific command.
- Xmit/response correlator - Used to associate received responses with transmitted requests.
- Destination name/num - In non-session frames this field contains the 16-character name.
- Source name/num - In non-session frames this field contains the 16-character source name. In session frames this field contains a 1 byte source session number.
Related Terms: UDP, TCP, Ethernet, Token Ring, X.25, PPP, IPX, NetBEUI
Sponsor Source: NetBIOS and NetBEUI are IBM protocols.
Reference:
http://ourworld.compuserve.com/homepages/TimothyDEvans/contents.htm: NetBios, NetBEUI, NBF, SMB, CIFS Networking
http://www.javvin.com/protocol/rfc1001.pdf: PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: CONCEPTS AND METHODS
http://www.javvin.com/protocol/rfc1002.pdf: PROTOCOL STANDARD FOR A NetBIOS SERVICE ON A TCP/UDP TRANSPORT: DETAILED SPECIFICATIONS
