NetBIOS is an acronym for
Network Basic Input/Output System which may seem a bit odd. NetBIOS is currently used mostly by Microsoft Windows operating systems in order to provide some services to the other network hosts. In this tutorial, we will learn NetBIOS and its services.
What Is NetBIOS?
NetBIOS protocol is first created by IBM where it is implemented for Microsoft Windows operating systems. The time was 1985 when Microsoft implemented it for the MS-DOS. NetBIOS gained popularity with the Windows operating systems because of the Windows popularity. Even it is created to run on the Token Ring network it is also extended to run on 802.2 or Ethernet networks. NetBIOS is standardized with the RFC 1001 and RFC 1002 in order to run on TCP/UDP protocols which is simply an emulation.
NetBIOS can work over TCP/IP port number 139. The client and server both use the TCP port 139 in order to call each other. Both sides can send and receive commands by calling each other. Another alternative for the NetBIOS port is UDP 138. Like TCP all communication is done over UDP 138.
NetBIOS provides three distinct services which are:
- `Name Service` is used for name registration and resolutions in the same LAN. This service is also called `NetBIOS-NS` in short.
- `Datagram Distributions Service` is used for connectionless communication and data transfer between NetBIOS clients. It is called `NetBIOS-DGM` in short.
- `Session Service ` is used for connection-oriented sessions and data transfer between NetBIOS clients. It is called `NetBIOS-SSN` in short.
Name service provides the following functions for NetBIOS hosts and groups.
- `Add Name` function will register the selected NetBIOS names for the NetBIOS host. If it is already registered the registration will fail.
- `Add Group Name` will register the selected NetBIOS group name for the NetBIOS group.
- `Delete Name` will delete already registered NetBIOS names whether it is a group name or hostname.
- `Find Name` will look up and find the given NetBIOS name on the network.
Datagram Distribution Service
Datagram Distribution Service provides the following function for NetBIOS hosts and groups.
- `Send Datagram` will send a datagram to the NetBIOS host for the specified NetBIOS name.
- `Send Broadcast Datagram` is used to send a datagram to multiple NetBIOS hosts for the specified NetBIOS names or groups.
- `Receive Datagram` will wait and accept datagram from other NetBIOS hosts.
- `Receive Broadcast Datagram` will wait for a broadcast datagram from other NetBIOS hosts.
Sessions Service mainly used to manage sessions and data transfer over already established sessions.
- `Call` will start a session to the specified NetBIOS name.
- `Listen` will wait to attempt a sessions request to the current NetBIOS host.
- `Hang Up` is used to close an already established NetBIOS session.
- `Send` will send a packet over the specified sessions.
- `Send No Ack` is the same as Send but it will not require an acknowledgment for the arriving of the packet.
- `Receive` will want for an incoming packet from the session from the remote NetBIOS host.
nbtstat is a command-line tool used to run some NetBIOS functions. We can use nbtstat command in order to manage like register, list, remove local NetBIOS names. In the following example, we will list local NetBIOS names registered to the local system.
> nbtstat -n