| Artículos | 01 MAY 1996

Redes locales para programadores Windows

Tags: Histórico
Algo más que transportar información
David Rodríguez.

NetBios es, tal vez, la interfaz más extendida dentro del mundo de los ordenadores personales. Conozca cómo se realiza su gestión desde el punto de vista del programador Windows.

Con la aparición de Windows 3.10 (alias para Trabajo en Grupo), todos nos sentimos muy felices al saber que no necesitábamos, en la mayoría de los casos, de ningún software adicional para instalar una red local. Ciertos flecos que se habían descuidado, fueron solventados en la versión 3.11 para terminar en un sistema superpoderoso denominado Windows 95. En efecto, todo se tornó fácil para el usuario: basta con decir el protocolo que se va a usar para que los ordenadores se entiendan entre sí. Y para compartir recursos, enviar mensajes, y otras funciones, disponemos de excelentes herramientas que ya vienen con el sistema y que son muy visuales y fáciles de usar. A pesar de todo, no vamos a hablar de las peripecias de los usuarios con las redes locales sino de un tema mucho más complejo que nos hace replantearnos la siguiente pregunta: ¿qué ha sido del programador?

Lo primero que hay que aclarar es que la función básica de una red local es transportar información. Esta información, con la ayuda de sistemas operativos como Windows se traduce en tres vertientes: gestión de recursos compartidos (directorios, impresoras, módems, etc.), correo electrónico y control remoto. Sin embargo, nuestras aplicaciones, a excepción del correo electrónico, sólo tienen acceso a la última capa del sistema, ignorando el tipo de información que se está transmitiendo.

Por poner un ejemplo, cuando nos conectamos a una unidad de red, nuestro software la trata como una unidad de disco más, sin saber nada de los procesos que están transcurriendo para que tenga lugar dicha conexión. En ocasiones, el programador se enfrenta a la necesidad de desarrollar sistemas paralelos que transmitan información específica de las aplicaciones que estén en juego, sin importarle los métodos estándar establecidos. Esto genera un amplio abanico de posibilidades que podrían concretarse en dos: compartir un recurso no estándar por parte de un servidor, lo que implicaría la instalación de controladores cliente-servidor, o generar una comunicación de bajo nivel con paquetes de información entre distintas máquinas.

Aplicación ejemplo

Vamos a basar nuestra exposición en el siguiente ejemplo: se dispone de un buen número de ordenadores (nivel B) de bajas prestaciones que poseen una información vital (supongamos que controlan una serie de máquinas sobre las que actúan y de las que reciben información sensorial). Adicionalmente, existen otros ordenadores (nivel A), estos ya más capacitados, que desean monitorizar la información recibida y al mismo tiempo enviar órdenes a las otras máquinas del nivel B.

Concretando algo más, supongamos que en el nivel B existen sensores de temperatura que miden el valor de la temperatura ambiente o real a la vez que interruptores de calefactores que permiten el control de la misma en función de una variable que es la temperatura deseada. El objetivo es que las máquinas A reciban dicha información, mostrando en pantalla la temperatura real y aceptando como entrada la temperatura deseada, que es transmitida a su vez a las del otro nivel. Para complicarlo un poco más, suponemos que el sistema debe seguir ciertas normas de seguridad, por lo que la comunicación debe ser correctamente contrastada. Asimismo, en caso de que falle uno de los ordenadores del nivel A, otro podría tomar su lugar.

Nuestra primera pregunta es: ¿se puede solucionar el problema con un servicio estándar?. La respuesta debería ser no. Aunque a primera vista existe una solución basada en la mensajería electrónica, ello supondría un consumo de recursos elevado y, lo que es peor, innecesario. Además, dado que las máquinas B son de bajas prestaciones, suponemos que sólo admiten programas DOS, lo que dificulta la utilización de software muy elaborado. En definitiva, crearemos una comunicación privada basada en nuestro ingenio, y el BIOS de la red, por supuesto.

Capas de abstracción

En 1.978 la organización ISO (International Standards Organization) creó un modelo de red local que ha influido en todos los diseños posteriores. Era un modelo basado en distintas capas de software y hardware con dos principios básicos: comunicación igual-a-igual, donde cada capa supone que se está comunicando (exclusivamente) con su homónima en el ordenador remoto y que cada capa proporciona un servicio a la que está por encima (únicamente).

Sin entrar en detalles, podríamos decir que la primera capa a tratar es la física, donde se vería el tipo de medio (radio, cable coaxial, par trenzado, etc...) y la topología (Ethernet, Token-Ring, ...). La siguiente sería la de enlace de datos, donde gracias al empleo de ciertas técnicas (secuencia de paquetes, detección de colisiones ...) se genera un paquete de información proveniente de la capa anterior que está libre de errores. La capa de red local nos indica de la ruta total que existe entre las estaciones. La capa de transmisión considera la forma de envío y llegada de los paquetes de información (por ejemplo, multiplexados o troceados). Finalmente, las capas de sesión (gestiona la sesión donde dos procesos están comunicados) y presentación (determina como se muestra la información) consideran los aspectos finales de tratamiento de la información y conexiones a nivel lógico. Podríamos hablar también de una capa de aplicación que nos explicaría lo que hace una determinada aplicación con la información, pero nosotros vamos a actuar a un nivel inferior.

NetBIOS

NetBIOS se desarrolló por primera vez en 1.984 para los adaptadores de IBM y es el estándar más utilizado en las conexiones de red local. Se trata de una interfaz a nivel de capa de sesión que es utilizada por redes Novell, IBM PC LAN, IBM LAN Server, Microsoft Networks y Microsoft LAN Manager, por citar a los grandes. Según lo visto, el NetBIOS nos va a proveer de una serie de servicios que serán usados en capas superiores (en este caso definidas por nuestra aplicación).

Los paquetes de información que circulan por la red local son definidos como cuadros por NetBIOS, los cuales contienen una serie de comandos. Cada cuadro de NetBIOS se empaqueta en un cuadro LLC, que a su vez de empaqueta en un cuadro MAC (Media Access Control).

Los cuadros de NetBIOS (ver figura 1) se clasifican en cuadros informativos (cuadros I) y cuadros informativos no numerados (cuadros UI). Los primeros transmiten o reciben cuadros que están numerados y por tanto se garantiza el orden en su recepción, mientras que los segundos pueden llegar en cualquier orden, además de no implicar ninguna respuesta de reconocimiento de recepción. El uso más habitual de los primeros es la transferencia de ficheros o cualquier otra información de alto valor. La gestión de aspectos como poner los números a los cuadros y controlar su llegada lo hace la capa LLC que hemos mencionado.

Los servicios que proporciona NetBIOS pueden agruparse en tres partes: gestión de nombres, transferencia de datos y servicios de propósito general.

Gestión de nombres

Cada tarjeta adaptadora tiene una dirección física que es asignada por el fabricante y que permite identificarla de forma única en la red. Asimismo, nada impide que un ordenador (llamado estación en términos de red local) tenga más de un adaptador. NetBIOS permite que cada adaptador tenga un máximo de 254 nombres lógicos (o nombres NetBIOS) que son nombres creados por las aplicaciones para referirse a la dirección física del adaptador. Estos nombres se guardan en una tabla y generan una capa de abstracción adicional, puesto que de otra forma un cambio en la tarjeta adaptadora implicaría un cambio en el software, lo que es de dudosa utilidad. La longitud máxima de los nombres es de

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información