1.3.5 Datagramas y Sesiones.

Llegados a este punto, hagamos una introducción sobre otra responsabilidad de NBT: proporcionar servicios de conexión entre dos máquinas NetBIOS. Existen actualmente dos servicios ofrecidos por NetBIOS sobre TCP/IP: el servicio de sesiones y el servicio de datagramas. El comprender cómo funcionan estos dos servicios no es esencial para usar Samba, pero te va a dar una idea sobre cómo trabaja NBT y cómo arreglar problemas cuando Samba no funcione.

El servicio de datagramas ofrece una conexión no estable entre una máquina y otra. Los paquetes de datos son simplemente enviados o difundidos (broadcasting) de una máquina a otra, sin considerar el orden en que estos llegan al destino, o si han llegado todos. El uso de datagramas no incrementa tanto el trafico de la red como el uso de sesiones, aunque pueden echar abajo una red si se usan indebidamente (¿Te acuerdas de la difusión de la resolución de nombres de antes?) Los datagramas, por tanto, son empleados para enviar rápidamente sencillos bloques de datos a una o más máquinas. El servicio de datagramas comunica usando las primitivas simples mostradas en la Tabla 4.


Table: Primitivas de Datagramas.
Primitiva Descripción
Send Datagram Envía paquete datagrama a máquina o grupos de máquinas.
Send Broadcast Datagram Difunde (broadcast) datagrama a cualquier máquina, esperando un datagrama de acuse de recibo.
Receive Datagram Recibe un datagrama de una máquina.
Receive Broadcast Datagram Espera por un datagrama de difusión.


El servicio de sesiones es más complejo. Las sesiones son un método de comunicación que, en teoría, ofrece la capacidad de detectar conexiones problemáticas o inoperativas entre dos aplicaciones NetBIOS. Esto lleva a pensar en una sesión NBT en términos de una llamada telefónica. Una conexión full-duplex es abierta entre una máquina que llama y una máquina que es llamada, y la conexión debe permanecer abierta durante la duración de la conversación. Cada parte implicada conoce a la otra máquina, y pueden comunicar con las primitivas que se muestran en la Tabla 5.


Table: Primitivas de Sesiones.
Primitiva Descripción
Call Inicia una sesión con una máquina que está a la escucha bajo un nombre específico.
Listen Espera una llamada de un llamante conocido o cualquier otro.
Hang-up Termina una llamada.
Send Envía datos a la otra máquina.
Receive Recibe datos de la otra máquina.
Session Status Obtiene información sobre sesiones pedidas.


Las sesiones son el troncal de la compartición de recursos en una red NBT. Son normalmente usadas para establecer conexiones estables desde máquinas clientes a unidades de disco o impresoras compartidas en un servidor. El cliente "llama" e inicia la conversación, enviando información del tipo qué ficheros desea abrir, qué datos quiere intercambiar, etc. Estas llamadas pueden durar mucho tiempo -horas, incluso días- y todo esto ocurre dentro del contexto de una única conexión. Si se produce un errorerror, el software de sesión (TCP) retransmitirá hasta que los datos sean recibidos correctamente, a diferencia del "envía-y-reza" del servicio de datagramas (UDP).

En realidad, mientras que las sesiones se supone están para manejar comunicaciones problemáticas, normalmente no lo hacen. Como probablemente habrás descubierto al usar redes Windows, es un serio problema el usar sesiones NBT. Si la conexión es interrumpida por la razón que sea, la información de sesión que está abierta entre dos computadoras puede fácilmente volverse inválida. Si esto ocurre, la única forma de restablecer la sesión para las dos mismas máquinas es llamar de nuevo y comenzar desde ceero.

Si deseas más ínformación sobre cada uno de estos servicios, te recomendamos mires el RFC 1001. Sin embargo, hay dos cosas importantes a recordar aquí:

TLDP-ES 03/11/2002