4º SECCION: NBT (NetBIOS /TCP-IP)

 Indice

COMPARACION DE NetBIOS y TCP/IP CON EL MODELO OSI 


La siguiente figura muestra la relación entre los protocolos NetBIOS y TCP/IP en relación al modelo de las siete capas.

Figura 4

Estos protocolos son usados por una extensa variedad de sistemas operativos de red; y no solo por el que se menciona en el gráfico (LAN Manager), sino que también incluye LAN Server, Windows NT, Windows For Workgroups, Windows `95, Lantastic y Banyan VINES.

La combinación de estos protocolos es conocida, en el ambiente de Microsoft por NBT.

Algunas consideraciones

En lo que concierne a la interacción entre ambos protocolos deben tenerse en cuenta dos conceptos, además de los mencionados en la 2º sección y que son: 

  1. Nodos finales
  2. Servidores soportados

Se debe entender por "nodos finales" a aquellos nodos que son los extremos de la comunicación.

En cuanto a los "servidores" los mismos son invisibles a las aplicaciones NetBIOS pero son parte del mecanismo fundamental de este protocolo, debido a que uno se encarga de la "administración de los nombres NetBIOS", Nodo NetBIOS Name Server y el otro se encarga de la "distribución de datagramas" Nodo NetBIOS Distribution Datagrams. De ahora en adelante serán referenciados por sus siglas: NBNS y NBDD.

 

NODOS FINALES


Existen tres tipos de nodos finales:  

 Una dirección IP debe estar asociada con solo una de los tipos de nodos mencionados anteriormente.

 Los nodos B usan el broadcasting de la red local par encontrarse con uno o más receptores; por su parte los nodos P y M se valen de los servidores soportados por NetBIOS para comunicarse con otras nombres, NBNS y NBDD.

Nodos B

Estos nodos se comunican usando una mezcla de datagramas UDP y conexiones TCP. Pueden operar con otros nodos libremente dentro de un área broadcast.

Los nodos B están limitados a la red local dado que los routers TCP/IP no transmiten el broadcast de solicitud de nombres a otras redes. Por tal razón es que este modo no opera con el NBNS y NBDD; sino que por el contrario cuando necesita información de un nombre usa una lista de computadoras y direcciones almacenadas en el archivo /etc/inethosts. Si el intento del nodo B falla, el sistema mira en este archivo para encontrar el nombre.

 

Nodos P

Estos nodos son punto a punto, unicast y no transmiten el broadcast de mensajes, sino que se confían de los servidores soportados por NetBIOS.

Nodos M

Son una combinación de los nodos P y B, ya que usa tanto el broadcast como el unicast. De este modo primero se hace un broadcast para la solicitud de un nombre, sino se recibe respuesta hace una solicitud al NBNS.

Si se configura con este nodo, se obtiene una respuesta lenta en el caso que el nombre solicitado este en otra red.

 

Nodos H

En el RFC1001 solo se hace mención a estos tres nodos, pero de acuerdo a otra documentación existe también este nodo H, Hybrid; que es un tipo mixto.

A la inversa de los nodos M, primero solicita un nombre al servidor de nombres y si este no responde, hace broadcast para la solicitud del nombre. Esta es la configuración preferida cuando se configura el soporte WINS.

 

SERVIDORES SOPORTADOS


Como ya mencionó los servidores soportados son el de nombres, NBNS y el de distribución de datagramas, NBDD; los cuales constituyen los focos para los nodos P y M. Estos servidores pueden cambiar parte de sus operaciones a los nodos P o M.

El NBNS puede se implementado obedeciendo a dos caminos: 

  1. Monitoreando y participando de la actividad de los nombres, asegurando la consistencia de los datos; es decir teniendo la responsabilidad total.
  2. Que sea implementado para se un bolletin board que contenga información de nombres y dirección pero que la responsabilidad en relación a la consistencia sea delegada a los nodos finales P y M.

Además el NBNS debe coincidir con el DNS, Domain Name Server, por tal razón:

  1. Lo nombre NetBIOS son encriptados en una forma aceptable por el DNS.
  2. A cada nombre NetBIOS se le agrega un campo identificador, el cual es necesario cuando las comunicaciones usan NetBIOS sobre TCP/IP.

De esta forma el NBNS puede ser usado como un bolletin board que contiene información de nombres y direcciones.

Dado que en Internet no soporta el broadcasting o multicasting, el NBDD extiende el servicio de distribución de datagramas a este ambiente.

 

 

SERVICIO DE NOMBRES


Antes de explicar los que es e l "servicio de nombres" vamos a dar un poco más de detalle en lo que concierne al término nombre.

Como ya se mencionó en párrafos anteriores NetBIOS identifica a los que intervienen en una comunicación mediante nombres, el cual esta formado por 16 caracteres alfanuméricos. Cada byte puede consistir de cualquier valor entre 0 a 255, excepto el primer byte que no puede se * (asterisco). Los nombres que tenga un largo menor a 16 byte son llenados con espacios y ajustados a la derecha. El último campo del nombre NetBIOS es llamada subcódigo.

Existen dos tipos de nombres: 

  1. Nombre único: es el nombre usado por una única estación en toda la red, identifica a un host en particular; siendo la red la encargada de chequear que cuando una estación use un nombre sea la única en hacerlo. Un ejemplo de nombre único es el que una estación usa para conectarse y comunicarse con el servidor, este es usualmente el nombre de la estación.
  2. Nombre de grupo: es el nombre usado por muchas estaciones simultáneamente. A este nombre de grupo pueden sumarse cualquier número de host. Este nombre facilita el multicasting.

Hay dos niveles de encriptado en lo que se refiere a los nombres NetBIOS:

  1. Primer Nivel: mapea el nombre NetBIOS dentro de un dominio de sistemas de nombres.
  2. Segundo Nivel: toma el resultante del primer nivel y lo mapea dentro de una representación comprimida, para que pueda interactuar con el Domain Name Server (DNS).

Además para el caso de aplicaciones de red que se comunican usando NetBIOS sobre TCP/IP se agrega otro elemento conocido como el campo identificador, que es un cadena de caracteres; esto es lo que se obtiene con el encriptado del nombre. Este campo identificador debe ser el mismo en todas las computadoras de la red usando a NetBIOS y a TCP/IP como transporte; si hubiera distintos campos identificadores NetBIOS asume que son parte de una red lógica diferente y no pude comunicarse con ellas.

Cuando una estación quiere poseer un nombre ya sea único o de grupo o quiere dar de baja el que tiene o necesita buscar el nombre de la estación a la que quiere enviar el mensaje recurre a lo que se conoce como: "Servicio de Nombres", que es provisto por el mismo protocolo. O sea que en definitiva un servicio de nombres es el conjunto de procedimientos a través del cual los nodos obtienen información de los nombres (adquirir, defender, localizar).

El servicio de nombres posee procedimientos fundamentales que permiten la administración de los nombres, los mismo varían de acuerdo al tipo de nodo final B, P o M. Esos procedimientos son: 

  1. Registración de nombres.
  2. Resolución de nombres.
  3. Liberar un nombre.

 

 

Registración de nombres

 Es simplemente la adquisición de un nombre, y que como se mencionó el nombre puede ser exclusivo (único) y grupal (no exclusivo).

Cada nodo mantiene información de los nombres que tiene registrado, dicha información incluye: 

  1. Si es un nombre único o de grupo.
  2. Si esta en conflicto.
  3. Si esta en proceso de borrado.

En el segundo caso, un nombre se dice que esta en conflicto cuando un nombre único ha sido registrado por más de un nodo dentro de la red. Los nodos B , M y NBNS pueden detectar estas situación. Los nodos B y M tienen un mecanismo de detección el cual esta activo solo durante la resolución de nombres. Por su parte el NBNS puede detectar esta situación en cualquier momento, ya que verifica la consistencia de los nombres de la Base de Datos.

Un nodo B ejecuta este procedimiento a través de broadcast. Los nodos P recurren al NBNS y los nodos M combinan las técnicas de los nodos P y B.

Durante la registración del nombre se establece el tiempo de vida del nombre, debe entenderse como el tiempo de vida que el nodo tendrá la posesión de nombre, el cual es negociado entre el nodo final y el NBNS. El nodo final puede proponer un valor para el tiempo de vida o solicitar un tiempo de vida infinito.

 

Resolución de nombres

Cuando un dispositivo es llamado, se busca la dirección IP asociada con el nombre NetBIOS.

Este procedimiento es usado durante el establecimiento de una sesión, donde se tiene que especificar el nombre de destino y de origen. Lo mismo sucede cuando se quiere enviar un datagrama, ya que se debe establecer también las direcciones de origen y destino.

 Este procedimiento es llevado a cabo por: 

 

Liberar nombre

Los mismos pueden ser liberados "explícitamente" o "silenciosamente" por un nodo final. El segundo se da cuando un nodo final falla o es apagado. En tanto que el primero depende de cada tipo de nodo final: 

 

 

SERVICIO DE SESION


Como ya se mencionó una sesión es un intercambio seguro de mensajes conducido entre un par de aplicaciones NetBIOS. Los datos son organizados dentro de mensajes, donde cada mensaje tiene un rango de 0 a 131.071 bytes.

El servicio de sesión propiamente dicho no difiere según el tipo de nodo final.

Los servicios de sesión primitivos son: 

  1. Llamar: inicia una sesión con un proceso que es escuchado bajo el nombre específico. La entidad que llama debe indicar ambas: un nombre del que llama y un nombre del que recibe.
  2. Escuchar: Acepta una sesión de un llamador.
  3. Terminar o Colgar: terminar una sesión. Todo dato pendiente es transferido antes de que la sesión termine.
  4. Enviar: transmitir un mensaje.
  5. Recibir: recibir datos.
  6. Estado de la sesión: obtiene información de todas las sesiones peticionadas, bajo un nombre específico. La actividad de la red no es involucrada.

 El servicio de sesión involucra tres fases, a saber: 

  1. Establecer la sesión.
  2. Estado continuo.
  3. Terminar la sesión.

 

 

Establecer la sesión  

Aquí la dirección IP y el puerto TCP (SSN_SRVC_TCP_PORT) de la llamada es determinado y la conexión TCP esta establecida con la parte remota. Cada conexión TCP que ingresa representa el intento de inicio de una sesión NetBIOS y el servidor de sesión NetBIOS quién acepta la conexión TCP ingresante.

Cuando la conexión TCP esta abierta, el nodo llamador envía el paquete requerido por el servicio de sesión. Dicho paquete contiene: 

 Cuando el servidor NetBIOS recepta ese paquete puede suceder que: 

  1. Existe un ESCUCHAR NetBIOS compatible con la llamada entrante y que existen los recursos adecuados para establecer la sesión.
  2. Existe un ESCUCHAR NetBIOS compatible con la llamada entrante pero los recursos no son los adecuados.
  3. No existe un ESCUCHAR NetBIOS compatible con la llamada entrante pero el que recibe existe en el nodo llamado.
  4. El que recibe no existe en el nodo llamado.

Si no se puede establecer la sesión (casos 2, 3 y 4), la conexión TCP es cerrada y la fase de la sesión termina.

En el caso de un nombre único el que llama puede hacer nuevamente un intento usando la misma dirección IP siempre y cuando no le haya tocado el caso 4; en el cual el nombre NetBIOS debería se resuelto. En el caso de un nombre de grupo el que llama puede intentar con el siguiente miembro del grupo.

El servidor de sesión puede redirigir al que llama a otro puerto TCP y dirección IP para que pueda iniciar el establecimiento de la sesión nuevamente.

 

Estado continuo

Es durante esta fase que los datos o mensajes son intercambiados sobre la sesión establecida, enviando los mensajes compuestos por una cabecera y el dato del usuario sobre la conexión TCP. Cuando el mensaje llega a destino, el que recibe remueve la cabecera y toma el dato propiamente dicho.  

Los paquetes keep-alive pueden ser intercambiados, si así los nodos son configurados. El fin de estos paquetes es detectar las fallas de los nodos o particioamiento de la red.

 

Terminar la sesión  

Sucede cuando una de las partes así lo quiere o cuando esta determinado de antemano que una de las parte hace down. Esto es terminar la sesión normalmente. 

Una sesión puede terminar anormalmente y es el servicio de sesión quien detecta esta pérdida de conexión. La pérdida de la misma puede ser detectada por la función keep-alive del servicio de sesión o TCP o por mensajes de fallo de sesión enviados por una operación.

 

SERVICIO DATAGRAMA


El servicio de datagrama es un servicio inseguro, no secuenciado y sin conexión. 

Al igual que en el servicio de sesión, cada datagrama tiene nombre de destino y de origen. 

Los datagramas NetBIOS son llevados dentro de paquetes UDP. Un datagrama esta compuesto por: 

A su vez el dato del datagrama esta integrado por: 

El tamaño máximo del datagrama es de 1064 bytes. Si el datagrama NetBIOS es más largo que un paquete UDP, el mismo puede ser fragmentado dentro de varios paquetes antes de su transmisión y reensamblados cuando son recibidos en el destino; pero la cabecera IP, UDP y la cabecera de datagrama NetBIOS están en cada fragmento. El dato del usuario está repartido en los fragmentos, sin superponerse.

Los campos en la cabecera del datagrama NetBIOS que varían son: 

  1. Flags: cuyo primer bit indica si el fragmento es el primero en una secuencia de fragmentos. Y el bit "More" del campo Flags indica si sigue otro fragmento.
  2. Offset: es igual a la suma de los datos NetBIOS en los fragmentos anteriores. Siendo 0 para el primer fragmento.

De acuerdo a lo anterior son dos los casos posibles que pueden presentarse: 

  1. Si el datagrama NetBIOS no fue fragmentado
    1. Campo FLAGS:

            FIRST: True

            MORE: False

      Campo OFFSET: 0

 

 2. Si el datagrama NetBIOS fue fragmentado

 

 Los servicios datagramas primitivos son: 

  1. Envío de datagramas: envía un datagrama a una aplicación asociada con el destino especificado. El nombre puede ser único o de grupo, quien envía no esta enterado de la diferencia; pero si el nombre en cuestión es de un grupo el datagrama será recibido por cada miembro del grupo.  
  2. Envío de datagramas broadcast: envía un datagrama no confiable a alguna aplicación con un recibidor de datagrama broadcast puesto.  
  3. Recibir datagrama: recibe un datagrama enviado por un origen especificado a un destino específico.  
  4. Recibir broadcast datagramas

 En relación con los nombres, los datagramas NetBIOS pueden ser: 

  1. Unicast: cuando es direccionado a un nombre único.
  2. Multicast: cuando es direccionado a un nombre de grupo.
  3. Broadcast: es cuando un datagrama NetBIOS es enviado usando el primitivo NetBIOS "enviar datagramas broadcast".

  

AL MOMENTO DE CONFIGURAR NetBIOS


En esta sección vamos a tener en cuenta algunos aspectos que deben considerarse al momento de configurar este protocolo y son:

WINS: protocolo Windows Internet Naming Service:

WINS es lo mimso que NBNS, Servidor de Nombres NetBIOS .

Es un protocolo para una base de datos distribuída, es similar al DNS (Servicio de Dominio de Nombres) pero es usado específicamente para los nombres NetBIOS y la resolución de direcciones IP. Al igual que DNS, WINS es usado para la registración y resolución de nombres de computadoras a través de una internetwork. En el mismo, solo se registra la primera entrada de un nombre NetBIOS, evitando la duplicación de los mismos. 

En definitiva, WINS provee los nombres NetBIOS a las computadoras y TCP/IP el número de registración de las mismas dentro en una internetwork. 

WINS soporta los tres tipos de nodos finales de NetBIOS: B, P y M. Pero como ya fue visto en secciones anteriores, los nodos B prescinden de este servidor. 

Resumiendo: 

  1. WINS provee una dinámica base de datos para la registración y resolución de nombres NetBIOS asociados con una dirección IP.
  2. Diseñado para resolver los problemas que ocurren con la resolución de nombres en complejas internetwork.
  3. Reduce el uso de mensajes broadcast local para la resolución de nombres, permitiendo a los usuarios localizarlos fácilmente.

Las funciones WINS están automáticamente instaladas cuando se instala el paquete NetBIOS y está contenido en el conjunto de archivos netbios.rte.

 

DHCP: Protocolo de Configuración Dinámica de Host: 

Permite la asignación dinámica de direcciones IP. El protocolo TCP/IP permite que los principales parámetros de los dipositivos de red (incluyendo las direcciones IP) sean configurados por el serividor central DHCP.

LANA: Adaptador de Red del Area Local:

Es un número que identifica a los dispositivos usados por NetBIOS.