Para reducir la complejidad de su diseño, la mayoría de las redes está
organizada como una pila de capas o niveles, cada una construida
a partir de la que está debajo de ella. El número de capas, así como el nombre,
contenido y función de cada una de ellas difieren de red a red. El propósito de
cada capa es ofrecer ciertos servicios a las capas superiores, a las cuales no
se les muestran los detalles reales de implementación de los servicios ofrecidos.
Este concepto es muy conocido y utilizado en la ciencia computacional,
donde se conoce de diversas maneras, como ocultamiento de información, tipos de
datos abstractos, encapsulamiento de datos y programación orientada a objetos.
La idea básica es que una pieza particular de software (o hardware) proporciona
un servicio a sus usuarios pero nunca les muestra los detalles de su estado
interno ni sus algoritmos.
La capa n de una máquina mantiene una conversación con la capa n
de otra máquina. Las reglas y convenciones utilizadas en esta conversación
se conocen de manera colectiva como protocolo de capa n. Básicamente, un
protocolo es un acuerdo entre las partes en comunicación sobre cómo se
debe llevar a cabo la comunicación. Como una analogía, cuando se presenta una
mujer con un hombre, ella podría elegir no darle la mano. Él, a su vez, podría
decidir saludarla de mano o de beso, dependiendo, por ejemplo, de si es una
abogada americana o una princesa europea en una reunión social formal. Violar
el protocolo hará más difícil la comunicación, si no es que imposible.
En la figura 1 se ilustra una red de cinco capas. Las entidades que
abarcan las capas correspondientes en diferentes máquinas se llaman iguales (peers).
Los iguales podrían ser procesos, dispositivos de hardware o incluso seres
humanos. En otras palabras, los iguales son los que se comunican a través del
protocolo.
Figura 1: Capas, protocolos e interfaces.
En realidad, los datos no se transfieren de manera directa desde la capa
n de una máquina a la capa n de la otra máquina, sino que cada
capa pasa los datos y la información de control a la capa inmediatamente
inferior, hasta que se alcanza la capa más baja. Debajo de la capa 1 se
encuentra el medio físico a través del cual ocurre la comunicación real.
En la figura 1, la comunicación virtual se muestra con líneas punteadas, en
tanto que la física, con líneas sólidas.
Entre cada par de capas adyacentes está una interfaz. Ésta define
qué operaciones y servicios primitivos pone la capa más baja a disposición de
la capa superior inmediata. Cuando los diseñadores de redes deciden cuántas
capas incluir en una red y qué debe hacer cada una, una de las consideraciones
más importantes es definir interfaces limpias entre las capas. Hacerlo así, a
su vez, requiere que la capa desempeñe un conjunto específico de funciones bien
entendidas. Además de minimizar la cantidad de información que se debe pasar
entre las capas, las interfaces bien definidas simplifican el reemplazo de la
implementación de una capa con una implementación totalmente diferente (por
ejemplo, todas las líneas telefónicas se reemplazan con canales por satélite) porque
todo lo que se pide de la nueva implementación es que ofrezca exactamente el
mismo conjunto de servicios a su vecino de arriba, como lo hacía la
implementación anterior. De hecho, es muy común que diferentes hosts utilicen
diferentes implementaciones.
Un conjunto de capas y protocolos se conoce como arquitectura de red.
La especificación de una arquitectura debe contener información suficiente
para permitir que un implementador escriba el programa o construya el hardware
para cada capa de modo que se cumpla correctamente con el protocolo apropiado.
Ni los detalles de la implementación ni las especificaciones de las interfaces son
parte de la arquitectura porque están ocultas en el interior de las máquinas y
no son visibles desde el exterior. Incluso, tampoco es necesario que las interfaces
de todas las máquinas en una red sean las mismas, siempre y cuando cada máquina
pueda utilizar correctamente todos los protocolos. La lista de protocolos
utilizados por un sistema, un protocolo por capa, se conoce como pila de
protocolos.
Una analogía podría ayudar a explicar la idea de comunicación entre
múltiples capas. Imagine a dos filósofos (procesos de iguales en la capa 3),
uno de los cuales habla urdu e inglés, y el otro chino y francés. Puesto que no
tienen un idioma común, cada uno contrata un traductor (proceso de iguales en
la capa 2) y cada uno a su vez contacta a una secretaria (procesos de iguales
en la capa 1). El filósofo 1 desea comunicar su afición por el oryctolagus
cuniculus a su igual. Para eso, le pasa un mensaje (en inglés) a través de
la interfaz de las capas 2-3 a su traductor, diciendo: “Me gustan los conejos”,
como se ilustra en la figura 2. Los traductores han acordado un idioma neutral
conocido por ambos, el holandés, para que el mensaje se convierta en “Ik vind
konijnen leuk”. La elección del idioma es el protocolo de la capa 2 y los
procesos de iguales de dicha capa son quienes deben realizarla.
Entonces el traductor le da el mensaje a una secretaria para que lo
transmita por, digamos, fax (el protocolo de la capa 1). Cuando el mensaje
llega, se traduce al francés y se pasa al filósofo 2 a través de la interfaz de
las capas 2-3. Observe que cada protocolo es totalmente independiente de los
demás en tanto no cambien las interfaces. Los traductores pueden cambiar de
holandés a, digamos, finlandés, a voluntad, siempre y cuando los dos estén de
acuerdo y no cambien su interfaz con las capas 1 o 3. Del mismo modo, las
secretarias pueden cambiar de fax a correo electrónico o teléfono sin molestar
(o incluso avisar) a las demás capas. Cada proceso podría agregar alguna información
destinada sólo a su igual. Esta información no se pasa a la capa superior.
Ahora veamos un ejemplo más técnico: cómo proporcionar comunicación a la
capa superior de la red de cinco capas de la figura 3. Un proceso de aplicación
que se ejecuta en la capa 5 produce un mensaje, M, y lo pasa a la capa 4
para su transmisión.
La capa 4 pone un encabezado al frente del mensaje para
identificarlo y pasa el resultado a la capa 3. El encabezado incluye
información de control, como números de secuencia, para que la capa 4 de la
máquina de destino entregue los mensajes en el orden correcto si las capas
inferiores no mantienen la secuencia. En algunas capas los encabezados también
pueden contener tamaños, medidas y otros campos de control.
Figura 2: Arquitectura filósofo-traductor-secretaria
En muchas redes no hay límites para el tamaño de mensajes transmitidos
en el protocolo de la capa 4, pero casi siempre hay un límite impuesto por el
protocolo de la capa 3. En consecuencia, la capa 3 debe desintegrar en unidades
más pequeñas, paquetes, los mensajes que llegan, y a cada paquete le coloca un
encabezado. En este ejemplo, M se divide en dos partes, M1 y M2.
La capa 3 decide cuál de las líneas que salen utilizar y pasa los
paquetes a la capa 2. Ésta no sólo agrega un encabezado a cada pieza, sino
también un terminador, y pasa la unidad resultante a la capa 1 para su
transmisión física. En la máquina receptora el mensaje pasa hacia arriba de
capa en capa, perdiendo los encabezados conforme avanza. Ninguno de los
encabezados de las capas inferiores a n llega a la capa n.
Figura 3: Ejemplo de flujo de información que soporta una comunicación
virtual en la capa 5.
Lo que debe entender en la Figura 3 es la relación entre las
comunicaciones virtual y real, y la diferencia entre protocolos e interfaces.
Por ejemplo, los procesos de iguales en la capa 4 piensan conceptualmente de su
comunicación como si fuera “horizontal”, y utilizan el protocolo de la capa 4.
Pareciera que cada uno tuviera un procedimiento llamado algo así como EnviadoalOtro-
Lado y RecibidoDesdeElOtroLado, aun cuando estos procedimientos en
realidad se comunican con las capas inferiores a través de la interfaz de las
capas 3-4, no con el otro lado.
La abstracción del proceso de iguales es básica para todo diseño de red.
Al utilizarla, la inmanejable tarea de diseñar toda la red se puede fragmentar
en varios problemas de diseño más pequeños y manejables, es decir, el diseño de
las capas individuales.
Vale la pena precisar que las capas inferiores de una jerarquía de
protocolos se implementan con frecuencia en el hardware o en el firmware.
No obstante, están implicados los algoritmos de protocolo complejos, aun
cuando estén integrados (en todo o en parte) en el hardware.