En los inicios de la informática el diseño de un ordenador
resultaba en sí mismo una tarea tan compleja que no se tomaba en consideración
la compatibilidad con otros modelos de ordenadores; la preocupación fundamental
era que el diseño fuera correcto y eficiente. Como consecuencia de esto era
preciso crear para cada nuevo modelo de ordenador un nuevo sistema operativo y
conjunto de compiladores. Los programas escritos en lenguaje máquina o en
ensamblador (que entonces eran la mayoría) tenían que ser prácticamente
reescritos para cada nuevo modelo de ordenador.
En 1964 IBM anunció un nuevo ordenador denominado Sistema/360.
Se trataba en realidad de una familia formada por varios modelos que compartían
una arquitectura común (era la primera vez que se utilizaba este término
referido a ordenadores). La arquitectura establecía unas especificaciones
comunes que hacían compatibles a todos los modelos de la familia (conjunto de
instrucciones, forma de representar los datos, etc.), pudiendo así ejecutar los
mismos programas, utilizar el mismo sistema operativo, compiladores, etc. en
toda la familia, que comprendía una gama de ordenadores de potencias y precios
diversos. El nombre 360 se eligió en base a la década en que se creó (los 60) y
a la idea de que era una arquitectura polivalente, que pretendía servir para aplicaciones
de todo tipo (360º, o sea que puede ir en todas direcciones). La arquitectura
360 ha ido evolucionando hasta desembocar en nuestros días en la arquitectura
ESA/390, utilizada en los grandes ordenadores IBM (mainframes) actuales, que
son aún la base de las aplicaciones críticas en grandes empresas (bancos,
líneas aéreas, etc.). Todos los fabricantes de ordenadores actuales utilizan
una o varias arquitecturas como base para el diseño de sus equipos.
Las primeras redes de ordenadores tuvieron unos inicios muy
similares a los primeros ordenadores: Las redes y los protocolos se diseñaban
pensando en el hardware a utilizar en cada momento, sin tener en cuenta la
evolución previsible, ni por supuesto la interconexión y compatibilidad con
equipos de otros fabricantes (seguramente muchos creían que bastante trabajo
suponía conseguir que las cosas funcionaran como para perder el tiempo con
florituras¡). A medida que la tecnología avanzaba y se mejoraba la red se
vivieron experiencias parecidas a las de los primeros ordenadores: los
programas de comunicaciones, que habían costado enormes esfuerzos de
desarrollo, tenían que ser reescritos para utilizarlos con el nuevo hardware, y
debido a la poca modularidad prácticamente nada del código era aprovechable.
El problema se resolvió de forma análoga a lo que se había
hecho con los ordenadores. Cada fabricante elaboró su propia arquitectura de
red, que permitía independizar las funciones y el software del hardware
concreto utilizado. De esta forma cuando se quería cambiar algún componente
sólo la función o el módulo afectado tenía que ser sustituido. La primera
arquitectura de redes fue anunciada por IBM en 1974, justo diez años después de
anunciar la arquitectura S/360, y se denominó SNA (Systems Network Architecture).
La arquitectura SNA se basa en la definición de siete niveles o capas, cada una
de las cuales ofrece una serie de servicios a la siguiente, la cual se apoya en
esta para implementar los suyos, y así sucesivamente. Cada capa puede
implementarse en hardware, software o una combinación de ambos. El módulo
(hardware y/o software) que implementa una capa en un determinado elemento de
la red debe poder sustituirse sin afectar al resto de la misma, siempre y
cuando el protocolo utilizado se mantenga inalterado. Dicho en otras palabras,
SNA es una arquitectura altamente modular y estructurada. No vamos a entrar en
mas detalles sobre la arquitectura SNA, ya que cae fuera de los objetivos del
presente curso, pero sí diremos que el modelo de capas que utiliza ha sido la
base de todas las arquitecturas de redes actualmente en uso, incluidas las
basadas en el modelo OSI (Open Systems Interconnection) y el TCP/IP
(Transmission Control Protocol/Internet Protocol) que veremos en detalle más
adelante.
Las ideas básicas del modelo
de capas son las siguientes:
- La capa n ofrece una serie de servicios a la capa n+1.
- La capa n solo ‘ve’ los servicios que le ofrece la capa n-1.
- La capa n en un determinado sistema solo se comunica con su homóloga en el sistema remoto (comunicación de igual a igual o ‘peer-to-peer’). Esa ‘conversación’ se efectúa de acuerdo con una serie de reglas conocidas como protocolo de la capa n.
La comunicación entre dos capas adyacentes en un mismo
sistema se realiza de acuerdo con una interfaz. La interfaz es una forma
concreta de implementar un servicio y no forma parte de la arquitectura de la
red.
La arquitectura de una red queda perfectamente especificada
cuando se describen las capas que la componen, su funcionalidad, los servicios
que implementan y los protocolos que utilizan para hablar con sus ‘iguales’. El
conjunto de protocolos que utiliza una determinada arquitectura en todas sus
capas se denomina pila de protocolos (‘protocol stack’ en inglés); así
es frecuente oír hablar de la pila de protocolos OSI, SNA, TCP/IP o DECNET, por
ejemplo.
Para mejor comprender como funciona el modelo de
arquitectura de redes basado en capas hagamos una analogía. Supongamos que un
ejecutivo de la empresa A desea enviar de forma urgente un importante informe a
un colega suyo en la empresa B. Para esto hablará con aquél notificándole el
envío y a continuación pasará a su secretaria el informe con las instrucciones
correspondientes. La secretaria llamará a la secretaria de B para averiguar la
dirección exacta, pondrá el informe en un sobre y llamará a un servicio de
mensajería, que enviará a un motorista para que recoja el paquete y lo lleve al
aeropuerto. Cuando el paquete llega al aeropuerto de destino es recogido allí
por otro motorista que lo lleva a la oficina de la empresa B y lo entrega a la
secretaria; ésta se ocupará de los trámites administrativos (pagar al
mensajero, abrir el paquete, comprobar su contenido, acusar recibo a la
secretaria de A, etc.) y lo pasará después a su jefe, el cual una vez estudio el
informe llamará al ejecutivo de A.
Obsérvese que en el proceso anterior existen diferentes
niveles claramente diferenciados: los ejecutivos, las secretarias, los
motoristas, y por último la empresa de líneas aéreas que se ocupa del
transporte físico de la mercancía. En todos los niveles (menos probablemente el
más bajo) hay dos entidades, la transmisora (A) y la receptora (B). Si todo
ocurre según lo previsto cada entidad sólo hablará con su correspondiente en el
otro lado, y con sus entidades vecinas, es decir, el jefe de A sólo habla con
el jefe de B y con su secretaria, la secretaria habla con su jefe, con el
motorista y con la otra secretaria para confirmar el envío, etc. En ningún caso
se contempla que la secretaria de A hale con el ejecutivo de B. Si por ejemplo
la secretaria de A es sustituida por enfermedad por otra persona los
procedimientos seguirán funcionando, siempre y cuando la secretaria suplente
desarrolle la misma función. Las variaciones de carácter interno sólo han de
ser conocidas por las entidades contiguas, por ejemplo, el motorista de B
podría ser reemplazado por una furgoneta de reparto, y este hecho solo ha de
ser conocido por la secretaria de B y por la persona que entrega los paquetes
en el aeropuerto. Esto es lo que denominamos una interfaz. Obsérvese que el
modelo de capas simplifica considerablemente la tarea de cada una de las
entidades, que sólo tiene que preocuparse de una pequeña parte de todo el
mecanismo. En esencia se trata de aplicar a la resolución de problemas la vieja
fórmula de divide y vencerás.
Cuando un sistema desea enviar un mensaje a un sistema
remoto normalmente la información se genera en el nivel más alto; conforme va
descendiendo se producen diversas transformaciones, por ejemplo adición de
cabeceras, de colas, de información de control, la fragmentación en paquetes
mas pequeños si es muy grande (o mas raramente la fusión con otros si es
demasiado pequeño), etc. Todas estas operaciones se invierten en el sistema
remoto en las capas correspondientes, llegando en cada caso a la capa
correspondiente en el destino un mensaje igual al original.
No hay comentarios:
Publicar un comentario