# NetBIOS

NetBIOS (del inglés, "Network Basic Input/Output System") es, en sentido estricto, una especificación de interfaz para acceso a servicios de red, es decir, una capa de software desarrollado para enlazar un sistema operativo de red con hardware específico. NetBIOS fue originalmente desarrollado por IBM y Sytek como API/APIS para el software cliente de recursos de una Red de área local (LAN). Desde su creación, NetBIOS se ha convertido en el fundamento de muchas otras aplicaciones de red.

## Utilidad

Resumiéndola de forma sencilla, NetBIOS permite a las aplicaciones 'hablar' con la red. Su intención es conseguir aislar los programas de aplicación de cualquier tipo de dependencia del hardware. También evita que los desarrolladores de software tengan que desarrollar rutinas de recuperación ante errores o de enrutamiento o direccionamiento de mensajes a bajo nivel.
En una red local con soporte NetBIOS, las computadoras son conocidas e identificadas con un nombre. Cada computador de la red tiene un único nombre.
Cada PC de una red local NetBIOS se comunica con los otros bien sea estableciendo una conexión (sesión), usando datagramas NetBIOS o mediante broadcast. Las sesiones permiten, como en el protocolo TCP, mandar mensajes más largos y gestionar el control y recuperación de errores. La comunicación será punto a punto. Por otro lado, los métodos de datagramas y broadcast permiten a un ordenador comunicarse con otros cuantos al mismo tiempo, pero estando limitados en el tamaño del mensaje. Además, no hay control ni recuperación de errores (al igual que ocurre en UDP). A cambio, se consigue una mayor eficiencia con mensajes cortos, al no tener que establecer una conexión.

## Funcionamiento y servicios

NetBIOS provee los servicios de sesión descritos en la capa 5 del modelo OSI. Se encarga de establecer la sesión y mantener las conexiones. Pero este protocolo debe transportarse entre máquinas a través de otros protocolos; debido a que por sí mismo no es suficiente para transportar los datos en redes LAN o WAN, para lo cual debe usar otro mecanismo de transporte (Ej: en redes LAN protocolo NetBEUI, en redes WAN protocolo TCP/IP). Los protocolos que pueden prestar el servicio de transporte a NetBIOS son:
* IPC/IPX
* NetBEUI
* TCP/IP
El hecho de tener que ser transportado por otros protocolos se debe a que al operar en la capa 5 de OSI no provee un formato de datos para la transmisión, el cual es provisto por los protocolos antes mencionados.
NetBIOS permite comunicación orientada a conexión (TCP) o no orientada a conexión (UDP). Soporta tanto broadcast como multicast, además de 4 tipos de servicios diferentes: Servicios Generales, Servicio de Nombres, Servicio de Sesión y Servicio de Datagramas.
Cuando un programa de aplicación necesita de los servicios NetBIOS, este ejecuta una interrupción de software específica. Esta interrupción direcciona el control del microprocesador para el software del adaptador de red que procesa el pedido.
Cuando un programa de aplicación emite una interrupción NetBIOS, este requiere un servicio de red. La interfaz NetBIOS define exactamente cómo los programas de aplicación pueden usar la interrupción NetBIOS y sus servicios.
El NetBIOS identifica estos servicios a través del campo NCB_COMMAND de Network Control Block, de un comando NetBIOS.