Protocolos y modelo OSI (Open Systems Interconnection)

Anuncio
• Introducción:
Antes de empezar a desarrollar los temas referidos a este trabajo primero señalaremos la importancia de las
redes de ordenadores, y su utilidad. Nos referiremos a los objetivos de las redes, a las aplicaciones de las redes
y ya mas técnicamente a su estructura.
• Objetivos de las Redes:
Son muchas las organizaciones que ya cuentan con un número considerable de ordenadores en operación y
con frecuencia alejados unos de otros. Por ejemplo una compañía con varias fabricas puede tener un
ordenador en cada una de ellas para mantener un seguimiento de inventarios, observar la productividad y
llevar la nomina local. Inicialmente cada uno de ellos puede haber estado trabajando de forma aislada de los
demás pero, en algún momento, la administración puede decidir interconectarlos para tener así la capacidad de
extraer y correlacionar información referente a toda la compañía.
Puesto en una forma mas general, el tema aquí consiste en compartir recursos, y el objetivo es hacer que
todos los programas, datos y equipo estén disponibles para cualquiera de la red que así lo solicite, sin importar
la localización. Otro aspecto de compartir recursos es el relacionado con la compartición de la carga. Este
objetivo se puede resumir diciendo que es un intento para terminar con la "tiranía de la geografía.
Un segundo objetivo consiste en proporcionar una alta fidelidad, al contar con fuentes alternativas de
suministro. Por ejemplo, todos los archivos podrían duplicarse en dos o tres maquinas, de tal manera que si
una de ellas no se encuentra disponible (como consecuencia de un fallo de hardware), podría utilizarse alguna
de las otras copias. Además, la presencia de múltiples CPU significa que si una de las otras deja de funcionar,
las otras pueden ser capaces de encargarse de su trabajo, aunque se mantenga un trabajo global menor. Para
aplicaciones militares, bancarias, de control de tráfico aéreo y muchas otras, es muy importante la capacidad
de los sistemas para continuar funcionando a pesar de existir problemas de hardware.
Otro objetivo es el ahorro económico. Los ordenadores pequeños tienen una mejor relación
coste/rendimiento, comparada con la ofrecida por las maquinas grandes. Estas son a grandes rasgos, diez
veces más rápidas que el más rápido de los microprocesadores, pero su coste es miles de veces mayor. Este
desequilibrio ha ocasionado que muchos diseñadores de sistemas construyan sistemas constituidos por
poderosos ordenadores personales, uno por usuario, con los datos guardados en una o más maquinas que
funcionan como servidor de archivo compartido.
Este objetivo conduce al concepto de redes con varios ordenadores localizados en el mismo edificio. A este
tipo de red se le denomina LAN (red de área local), en contraste con lo extenso de una WAN (red de área
extendida), a la que también se le conoce como red de gran alcance.
Un punto muy relacionado es la capacidad para aumentar el rendimiento del sistema en forma gradual a
medida que crece la carga, simplemente añadiendo mas procesadores. Con maquinas grandes, cuando el
sistema esta lleno, deberá reemplazarse con uno más grande, operación que por lo normal genera un gran
gasto y una perturbación inclusive mayor al trabajo de los usuarios.
Otro objetivo del establecimiento de una red de ordenadores no tiene nada que ver con la tecnología. Una red
de ordenadores puede proporcionar un poderoso medio de comunicación entre personas que se encuentran
muy alejadas entre sí. Con el empleo de una red es relativamente fácil que dos personas que viven en lugares
separados, escriban un informe juntos. Cuando un autor hace un cambio en un documento que se mantiene en
línea, los otros pueden ver el cambio de inmediato, en lugar de esperar varios días para recibirlo por carta.
Esta rapidez hace que la cooperación entre grupos de individuos que se encuentran alejados, y que
1
anteriormente había sido imposible de establecer, pueda realizarse ahora. A la larga el uso de las redes, como
un medio para enriquecer la comunicación entre seres humanos, puede ser más importante que los mismos
objetivos técnicos, como por ejemplo la mejora de la fiabilidad.
En el siguiente cuadrado 1−1 se muestra la clasificación de sistemas multiprocesadores distribuidos de
acuerdo a su tamaño físico. En la parte superior se encuentran las maquinas de flujo de datos, que son
ordenadores con un alto nivel de paralelismo y muchas unidades funcionales trabajando en el mismo
programa. Después vienen los procesadores, que son sistemas que se comunican a través de memoria
compartida. Seguido de los multiprocesadores se muestran las verdaderas redes, que son ordenadores que se
comunican por medio del intercambio de mensajes. Finalmente, a la conexión de dos o más redes se le
denomina interconexión de redes.
Distancia entre Procesadores
0.1 metro
1 metro
10 metros
100 metros
1kilometro
10 kilómetros
100 kilómetros
1.000 kilómetros
10.000 kilómetros
Procesadores Ubicados en el
Mismo
La Tarjeta del Circuito
El Sistema
El Cuarto
El Edificio
Los Terrenos de la Universidad
La Ciudad
El país
El Continente
El Planeta
Cuadro 1−1
Ejemplo
Maquina de Flujo de Datos
Multiprocesador
Red Local (LAN)
Red Local (LAN)
Red de Gran Alcance (WAN)
Red de Gran Alcance (WAN)
Red de Gran Alcance (WAN)
Interconexión de WAN
Interconexión de WAN
• Aplicaciones de las Redes:
El reemplazo de una maquina grande por estaciones de trabajo sobre una LAN no ofrece la posibilidad de
introducir muchas aplicaciones nuevas, aunque podrían mejorarse la fiabilidad y el rendimiento. Sin embargo,
la disponibilidad de una WAN (pública) sí genera nuevas aplicaciones viables, y algunas de ellas pueden
ocasionar importantes efectos en la totalidad de la sociedad. Para dar una idea sobre algunos de los usos
importantes de redes de ordenadores, veremos ahora brevemente tres ejemplos: el acceso a programas
remotos, el acceso a bases de datos remotos y facilidades de comunicación de valor añadido.
Una compañía que ha producido un modelo que simula la economía mundial puede permitir que sus clientes
se conecten usando la red y corran el programa para ver como pueden afectar a sus negocios las diferentes
proyecciones de inflación, de tasas de interés y de fluctuaciones de tipos de cambio. Con frecuencia se
prefiere este planteamiento que vender los derechos del programa, en especial si el modelo se esta ajustando
constantemente o necesita de una maquina muy grande para correrlo.
Otra aérea principal para la utilización de redes es el acceso a bases de datos remotas. En esta categoría
también caen las operaciones bancarias que se llevan a cabo desde el domicilio particular, así como las
noticias del periódico recibidas de forma automática, la automatización de las bibliotecas.
Todas estas aplicaciones operan sobre redes por razones económicas: el llamar a un ordenador remoto
mediante una red resulta más económico que hacerlo directamente. La posibilidad de tener un precio mas bajo
se debe a que el enlace de una llamada telefónica normal utiliza un circuito caro y en exclusiva durante todo el
tiempo que dure la llamada, en tanto que el acceso a través de una red, hace que solo se ocupen los enlaces de
larga distancia cuando se están transmitiendo datos.
2
Una tercera forma que muestra el amplio potencial del uso de redes, es su empleo como medio de
comunicación, con el conocido correo electrónico, que es capaz de transmitir voz digitalizada, así como
fotografías e imágenes móviles de televisión y vídeo. El uso de las redes como un sistema de comunicación
sofisticado puede reducir el número de viajes, ahorrando de esta manera energía.
• Estructura de la Red:
En toda red existe una colección de maquinas destinadas para correr programas de usuario (aplicaciones).
Seguiremos la terminología de unas de las primeras redes, denominada ARPANET, y llamaremos hostales a
las maquinas antes mencionadas. También, en algunas ocasiones se utiliza en la literatura el termino sistema
terminal o sistema final. Los hostales están conectados mediante una subred de comunicación, o
simplemente una subred. El trabajo de la subred consiste en enviar mensajes entre hostales, de la misma
manera como el sistema telefónico envía palabras entre la persona que habla y la que escucha. El diseño
completo de la red se simplifica notablemente cuando se separan los aspectos puros de comunicación de la red
(la subred), de los aspectos de aplicación (los Hostales).
Una subred en la mayor parte de las redes de aérea extendida (WAN) consiste en dos componentes diferentes:
las líneas de transmisión y los elementos de conmutación. Las líneas de transmisión también se les conoce
como circuitos, canales o troncales, y son los encargados de mover bits entre las maquinas.
Los elementos de conmutación son ordenadores especializados que se utilizan para conectar dos o más líneas
de transmisión. Cuando los datos llegan por una línea de entrada, el elemento de conmutación deberá
seleccionar una línea de salida para reexpedirlos. Así, considerando la terminología de ARPANET, a los
elementos de conmutación se pueden llamar IMP (procesadores de intercambio de mensajes), aunque
también son conocidos como: nodo de conmutación de paquetes, sistemas intermedio y central de
conmutación de datos.
En el dibujo 1−2 cada uno de los hostales esta conectado a un IMP (en ocasiones lo hace con mas de uno).
Todo el tráfico que va o viene del hostal pasa a través de su IMP.
En términos generales, puede decirse que hay dos tipos de diseños para la subred de comunicación:
• Canales punto a punto.
• Canales de difusión.
En el primero de ellos, la red contiene varios cables o líneas telefónicas alquiladas, conectando cada una de
ellas un par de IMP. Si dos IMP desean comunicarse y no comparten un cable común, deberán hacerlo
indirectamente a través de otros IMP. Cuando un mensaje, denominados paquetes, se envía de un IMP a otro,
a través de uno o mas IMP intermediarios, el paquete se recibe íntegramente en cada uno de estos IMP
intermediarios. Se almacenaran ahí y no continuara su camino hasta que la línea de salida necesaria para
reexpedirlo este libre. La subred que utiliza este principio se denomina subred punto a punto, de
almacenamiento y reenvío o de conmutación de paquetes. Casi todas las WAN tienen subredes del tipo de
almacenamiento y reenvío.
Un aspecto importante de diseño, cuando se utiliza una subred punto a punto, consiste en considerar como
deberá ser la topología de interconexión de los IMP. En el dibujo 1−3 se muestran varias topología posibles.
Las redes locales que se diseñaron como tales, tienen por lo general una topología simétrica. A diferencia de
estas, las WAN tienen típicamente topología irregulares.
• Estrella.
• Anillo.
• Arbol.
3
• Completa.
• Intersección de anillos.
• Irregular.
La difusión se emplea como un segundo tipo de arquitectura de comunicación y la utilizan la mayoría de las
redes de área local (LAN) y un numero reducido de WAN. En una LAN, el IMP se reduce a un solo chip, el
cual se incluye en el interior del hostal, de tal manera que siempre habrá un hostal por cada IMP, mientras que
en una WAN podrá tener varios hostales por IMP.
Los sistemas de difusión tienen un solo canal de comunicación que a su vez, es compartido por todas las
maquinas que constituyen la red. Los paquetes que una maquina cualquiera envía, son recibidos por los
demás, el campo de dirección, localizado en el interior de un paquete, especifica a quien va dirigido. En el
momento en que se recibe un paquete, se verifica el campo de dirección y, si el paquete esta destinado a otra
maquina, este simplemente se ignora.
Por lo normal, los sistemas de difusión también admiten la posibilidad de dirigir un paquete a todos los
destinos mediante el empleo de un código especial, incluido en el campo de la dirección. Cuando se transmite
un paquete con dicho código, este es recibido y procesado por todas las maquinas de la red. Algunos sistemas
de difusión también soportan la transmisión a un subconjunto de maquinas, lo cual se conoce como difusión
restringida. Un esquema común consiste en reservar todas las direcciones que tengan el bit de mayor peso
igual a 1, como direcciones de difusión restringida. Los (n−1) bits restantes de la dirección forman un mapa
de bits correspondiente a (n−1) grupos. Si se transmite un paquete con los bits, digamos, x, y, yz puestos a 1,
este es aceptado por todas las maquinas subscriptas a uno o más de estos tres grupos.
En el dibujo 1−4 se muestran algunas posibilidades de subredes de difusión. En cualquier instante una
maquina, en un bus (a), tiene la función maestra y esta capacitada para transmitir. El resto de las maquinas no
pueden enviar. Se necesita un mecanismo de arbitraje para resolver los conflictos en el momento en que dos o
más maquinas quieren transmitir a la vez. Este mecanismo de arbitraje puede estar centralizado o distribuido.
Una segunda posibilidad es la representada por la inclusión de un satélite o sistema de radiodifusión (b)
terrestre. Cada IMP tiene una antena a través de la cual puede enviar o recibir. Todos los IMP pueden oír la
salida desde el satélite y, de la misma forma, en algunos casos, también pueden oír las transmisiones que
hacen otros IMP hacia el satélite.
Un tercer sistema de difusión es el de anillo (c), en donde cada bit se propaga solo, sin esperar el resto del
paquete al cual pertenece. Cada uno de los bits, típicamente, circunnavega el anillo completo en el tiempo que
se tarda en transmitir algunos bits; por lo general, antes de que el paquete completo haya transmitido. Al igual
que en los otros sistemas de difusión, se necesita una regla para arbitrar los accesos simultáneos al anillo.
Existen varios métodos que se utilizan.
• Bus.
• Satélite o Radio.
• Anillo.
Las subredes de difusión pueden además dividirse en estáticas y dinámicas, dependiendo de cómo se haya
asignado el canal. Una asignación estática típica seria dividir el tiempo en intervalos discretos y permitir así
que cada maquina difunda su mensaje solo cuando le llegue su intervalo correspondiente. Las asignaciones
estáticas despreciarían la capacidad del canal cuando una de las maquinas no tiene nada que decir durante el
tiempo que tiene asignado, así algunos sistemas asignan el canal en forma dinámica (es decir, bajo demanda).
Los métodos de asignación dinámica para un canal pueden ser centralizados o distribuidos. En el método de
asignación de canal centralizado hay una entidad única, por ejemplo una unidad de arbitraje de bus, que,
4
determina quien es el siguiente. Esto podría hacerlo al aceptar solicitudes y tomar una decisión con base en
algún algoritmo interno. En el método de asignación de canal descentralizado no existe una unidad central;
cada una de las maquinas deberá decidir por si misma si trasmite o no. Podría pensarse que esto siempre lleva
a un caos, pero no es así, ya que existen algoritmos diseñados para eliminar la posibilidad de este caos
potencial.
• Diseño de Redes:
Generalmente una red se compone de varios ordenadores, alguno de los cuales tienen varios procesos, se
necesita un medio que permita a un proceso especificar con quién desea establecer una conexión. Establecer
una conexión y terminarla pueden parecer procedimientos triviales pero que en realidad son bastante
complejas.
También en el diseño de redes nos encontramos con la problemática de la transferencia de datos. En algunos
sistemas los datos viajan en una sola dirección, unilaterales. En otros viajan en ambas direcciones,
semidúplex. Por último existen otros sistemas en los que los datos viajan en ambas direcciones y al mismo
tiempo, dúplex. En este caso el protocolo deberá de ser capaz de determinar el número de canales lógicos que
corresponden a la conexión y cuales son sus prioridades.
El control de errores es un problema de gran relevancia en el diseño de las redes. Actualmente existen varios
códigos detectores y correctores de error, es muy importante que los dos extremos de la conexión estén de
acuerdo en cuál utilizar.
También en el diseño de redes se ha de tener en cuenta el orden de los mensajes que se envían. El protocolo
deberá establecer, de forma explícita, un procedimiento seguro para que el receptor pueda colocar los
mensajes nuevamente en su forma original.
Otro aspecto que ha de tenerse en cuenta es el proteger a un receptor lento de una cantidad abrumadora de
datos enviados por un transmisor rápido. Otro problema, es la incapacidad para aceptar mensajes
arbitrariamente extensos por todos los procesos. Esta propiedad nos conduce a mecanismos de segmentación,
transmisión y ensamblaje de mensajes.
Siempre que se considere conveniente, y no sea muy costoso, establecer una conexión separada entre un par
de procesos comunicantes la capa subyacente puede decidir utilizar la misma conexión para conversaciones
múltiples, sin que estas tengan relación alguna. Este procedimiento se puede realizar en cualquier capa
siempre que la multiplexión y demultiplexión se haga de forma transparente.
• Protocolos:
• Arquitectura de Redes:
Existe una serie de organizaciones que se encargan de establecer una serie de normas que globalicen las redes
de ordenadores. En los últimos años, los diferentes fabricantes de computadores han ido desarrollando
diferentes arquitecturas para la realización de sistemas distribuidos orientados fundamentalmente hacia la
interconexión de equipos diseñados por los propios fabricantes. Aunque dichas arquitecturas son similares no
permiten, en principio, la interconexión de material heterogéneo. El objetivo de organizaciones como ISO,
CCITT, IEEE es desarrollar un modelo de arquitectura de referencia para sistemas heterogéneos, utilizando
los medios públicos de transmisión de datos, para dar una orientación a las múltiples arquitecturas que
aparecen con una de referencia, negociada, hacia la que han de converger las demás.
El procedimiento que utiliza la ISO para el establecimiento de normas, está diseñado para conseguir el mayor
consenso posible. El proceso se inicia cuando una de las organizaciones de normalización de carácter nacional
5
siente la necesidad del establecimiento de una norma internacional en un área específica.
Esta problemática de las normalizaciones es ciertamente compleja; en primer lugar aparecen soluciones y a
continuación una de ellas se toma como base, un comité la corrige y modifica convenientemente y finalmente
elabora una norma; posteriormente se adopta, pero no exactamente como ha sido emitida.
La organización que se ha tomado como referencia es ISO, que pretende desarrollar su modelo de referencia
teniendo en cuenta la posibilidad de que su arquitectura permitiera fácilmente la utilización de las diferentes
normas emitidas por otros organismos internacionales, especialmente el CCITT.
El interés que para un informático tiene el modelo de referencia de ISO reside en el hecho de que ha
conseguido presentar una visión global y estructurada del problema de interconexión de sistemas
informáticos.
En el análisis de un sistema de interconexión se utiliza habitualmente la metodología consistente en una
estructura según una jerarquía de niveles o estratos, técnica por otro lado ya habitual en informática, a los
cuales se les asigna funciones distintas y complementarias. El propósito de cada capa es ofrecer ciertos
servicios a las capas superiores, liberándolas del conocimiento detallado sobre como se realizan dichos
servicios.
• El sistema de interconexión está formado por un conjunto de entes situados a diferentes niveles
estructurales, denominados igualmente estratos. Los entes de un determinado nivel n cooperan entre sí
de acuerdo con un determinado protocolo n. La capa n en una máquina conversa con la capa n de otra
máquina. A las reglas y convenciones utilizadas en esta conversación se conocen conjuntamente como
protocolo de la capa n.
• Los entes que forman las capas correspondientes en máquinas diferentes se les denomina procesos
pares (igual a igual). Son los procesos pares los que se comunican mediante el uso del protocolo.
• Los entes de un nivel n utilizan los servicios (n−1) proporcionados por los entes de los niveles
inferiores, mediante un acceso a ellos. La estructura de estos niveles inferiores es desconocida para el
nivel n el cual nuevamente tiene en cuenta los servicios proporcionados, por lo que se ha denominado
bloque n−1. En realidad no existe una transferencia directa de datos desde la capa n de una máquina a
la capa n de otra; sino, más bien, cada capa pasa la información de datos y control a la capa
inmediatamente inferior, y así sucesivamente hasta que se alcanza la capa localizada en la parte más
baja de la estructura. Debajo de la primera capa está el medio físico, a través del cual se realiza la
comunicación real.
• Los entes de un nivel n realizan unas determinadas funciones n , utilizando los servicios de los entes
del nivel n−1 y proporcionando a su vez servicios a los entes del nivel n+1. Entre cada par de capas
adyacentes hay un interfase, la cual define los servicios y operaciones primitivas que la capa inferior
ofrece a la superior.
Cuando los diseñadores de redes deciden el número de capas por incluir en una red, así como lo que cada una
de ellas deberá hacer, una de las consideraciones más importantes consiste en definir claramente las interfases
entre capas. Hacer esto, a su vez, requiere que cada capa efectúe un conjunto específico de funciones bien
definidas. El diseño claro y limpio de una interfase, además de minimizar la cantidad de información que debe
pasarse entre capas, hace más simple la sustitución de la realización de una capa por otra completamente
diferente.
Al conjunto de capas y protocolos se les denomina arquitectura de red. Uno de los estratos se ocupa de las
relaciones con las aplicaciones que utilizan el sistema de interconexión, los tres siguientes se ocupan de
6
materializar las relaciones con el sistema informático y los tres últimos están orientados fundamentalmente
hacia la resolución de los problemas específicos de las comunicaciones.
En la elaboración del modelo de referencia para la interconexión de sistemas abiertos, se consideran los
siguientes aspectos:
• El punto de vista del usuario. Un sistema distribuido continuará viéndose como cualquier otro sistema
informático, es decir, formado por un conjunto de elementos que aquí se denominarán procesos de
aplicación y entre los cuales podrá establecerse un conjunto de relaciones denominadas aquí
conexiones. Este punto constituye un aspecto importante del modelo. El aspecto distribuido del
sistema debe, en principio, ser transparente al usuario. Las funciones que pueda ser capaz de realizar
deben, pues, ser similares a las que se ejecutan en un sistema basado en una máquina única.
• El hecho de que el sistema puede estar formado por máquinas físicamente distantes. Ello implica
fundamentalmente que la información deba ser transportada entre ellas, ya que en definitiva
constituyen elementos finales del sistema. La problemática del transporte de la información viene
claramente reflejada en el modelo de ISO.
• El hecho de que para la interconexión pueda utilizarse una red pública de transmisión de datos. El
transporte de la información implica la utilización de un medio de transmisión de datos, generalmente
una red pública. Por ese motivo se diferencia claramente esta problemática de transmisión de la
información como una parte de las funciones que constituye el transporte.
• Problemas de Diseño para las capas:
Algunos problemas de diseño claves que aparecen en redes de ordenadores, también se presentan en varias
capas. Seguidamente se mencionaran algunos de los más importantes.
Cada capa deberá tener un mecanismo para el establecimiento de la conexión. Como, por lo general, una red
tienen varios ordenadores, algunos de los cuales tienen múltiples procesos, se necesita un medio que permita a
un proceso especifico con quien desea establecer una conexión. Como consecuencia de tener destinatarios
múltiples, se necesita alguna forma de direccionamiento par así poder determinar un destino especifico.
El mecanismo para terminar una conexión dentro de una red, una vez que esta ya no se necesite, esta
intensamente relacionado con aquel que se utiliza para resestablecerla.
Otro conjunto de decisiones de diseño es el que se refiere a las reglas para la transferencia de datos. En
algunos sistemas los datos viajan en una sola dirección (comunicación unilateral o simplex). En otros, los
datos pueden viajar en ambas direcciones y al mismo tiempo (comunicación dúplex o bilateral simultanea).
El protocolo debe también ser capaz de determinar el numero de canales lógicos que corresponden a la
conexión y cuales son sus prioridades. Un numero considerable de redes tienen, por lo menos, dos canales
lógicos por conexión: uno para los datos normales y otro para los urgentes.
Dada la imperfección de los circuitos físicos de comunicación, el procedimiento para el control de errores es
un aspecto de gran relevancia. En la actualidad se conocen varios códigos detectores y correctores de error,
pero lo importante aquí es que los dos extremos de la conexión estén de acuerdo en cual utilizar. Además, el
receptor debe tener alguna forma de indicar al emisor que mensajes se han recibido correctamente y cuales no.
No todos los canales de comunicación mantienen el orden de los mensajes que les envían; de tal manera que,
para recuperar una posible perdida en la secuencia del mensaje, el protocolo deberá establecer, en forma
explícita, un procedimiento seguro que permita al receptor colocar las unidades nuevamente en su forma
original. Una solución obvia seria la de numerar las unidades, pero esta solución deja todavía abierta la
7
cuestión de ¿Qué hacer con aquellas que lleguen fuera de orden?.
Algo que ocurre comúnmente en cada uno de los niveles es lo referente a como proteger un receptor lento de
una cantidad abrumadora de datos enviados por un transmisor rápido. Las soluciones a este problema esta
relaciona con un tipo de realimentación del receptor al transmisor, ya sea de forma directa o indirecta, y que
toma en consideración la situación actual del receptor.
Otro problema, que es común a varios niveles y que deberá resolverse, es el relacionado con la incapacidad
para aceptar mensajes arbitrariamente extensos por todos los procesos. Esta propiedad conduce a mecanismos
de segmentación, transmisión y embalaje de mensajes. Otro aspecto relacionado con el anterior es el
correspondiente a que hacer cuando los procesos insisten en transmitir datos en unidades tan pequeñas que su
envío, en forma separada, los hace insuficientes. La solución es este caso, seria reunir varios de estos
pequeños mensajes, con encabezamientos dirigidos a un destino común, en un solo mensaje de gran extensión,
de tal forma que, al llegar al otro extremo, solo se tenga que volver a separar.
Cuando resulte inconveniente, o muy costoso, establecer una conexión separada entre un par de procesos
comunicantes la capa adyacente puede decidir utilizar la misma conexión para conversaciones múltiples, sin
que estas tengan necesariamente relación alguna. Este procedimiento se puede utilizar mientras el proceso de
multiplexión y demultiplexión se haga en forma transparente. En la capa física, por ejemplo, se utiliza el
proceso de multiplexión dado que el tráfico, para todas las conexiones, se tiene que enviar sobre un numero
reducido de circuitos físicos.
Siempre que existan caminos múltiples entre la fuente y el destino se debe escoger un encamisamiento.
Algunas veces esta decisión debe tomarse en dos o más capas. Por ejemplo, para enviar datos de Londres a
Roma, deberá tomarse una decisión importante para saber si se opta por ir a través de Francia o Alemania,
basándose, por ejemplo, en sus respectivas leyes de privacidad; en tanto que, por otra parte, se podría tomar
una decisión de menor importancia que permitiera escoger alguno los circuitos disponibles, de acuerdo con el
tráfico real.
• El Modelo OSI:
Una de las necesidades más acuciantes de un sistema de comunicación es el establecimiento de estándares, sin
ellos solo podrían comunicarse entre sí equipos del mismo fabricante y que usaran la misma tecnología. La
conexión entre equipos se ha ido estandarizando paulatinamente siendo las redes telefónicas las pioneras en
este campo. Por ejemplo la histórica CCITT definió los estándares de telefonía: PSTN, PSDN e ISDN.
Otros organismos internacionales que generan normas relativas a las telecomunicaciones son: ITU−TSS
(antes CCITT), ANSI, IEEE e ISO.
La ISO (International Organisation Standrisation) ha generado una gran variedad de estándares, siendo uno de
ellos la norma ISO−7494 que define el modelo OSI, este modelo nos ayudara a comprender mejor el
funcionamiento de los ordenadores.
El modelo OSI no garantiza la comunicación entre equipos pero pone las bases para una mejor estructuración
de los protocolos de comunicación. Tampoco existe ningún sistema de comunicaciones que los siga
estrictamente, siendo la familia de protocolos TCP/IP la que más se acerca.
El modelo de referencia OSI, reconocido actualmente por casi la totalidad de la industria informática y
estandard hacia el que tienden a evolucionar las Arquitecturas de Redes, no constituye una arquitectura para
una red de computadores en sí, sino un marco de referencia sobre el que diseñar dicha red. Este sistema hace
referencia a la conexión de sistemas heterogéneos, es decir, a sistemas dispuestos a establecer comunicación
con otros distintos.
8
Esta compuesto por siete capas basados en los siguientes principios:
• Una capa se creará en situaciones en donde se necesita un nivel diferente de Abstracción.
• Cada capa efectuará una función diferente.
• La función que realizará cada capa deberá seleccionarse con la intención de definir protocolos
normalizados internacionalmente.
• Los límites de las capas deberán seleccionarse tomando en cuenta la minimización del flujo de
información a través de las interfases.
• El número de capas deberá ser lo suficientemente grande para que funciones diferentes no tengan que
ponerse juntas en la misma capa y, por otra parte, también deberá ser lo suficientemente pequeño para
que su arquitectura no llegue a ser difícil de manejar.
El modelo OSI, por si mismo, no es una arquitectura de red, dado que no especifica, en forma exacta, los
servicios y protocolos que se utilizaran en cada una de las capas. Solo indica lo que cada capa deberá hacer.
Sin embargo, la ISO también ha generado normas para todas las capas, aunque estas, estrictamente hablando,
no forman parte del modelo. Cada una de ellas se ha publicado como normas internacionales independientes.
A continuación estudiaremos cada una de las 7 capas que conforman el modelo, las cuales se dividen en tres
bloques:
• Bloque de Transmisión: que incluye la capa física (nivel 1), la capa de enlace (nivel 2) y la capa
de red (nivel 3).
• Bloque de Transporte: que incluye la capa de transporte (nivel 4).
• Usuarios del Bloque de Transporte: que incluye la capa de sesión (nivel 5), la capa de presentación
(nivel 6) y la capa de presentación (nivel 7).
7 Niveles del Modelo OSI
• Nivel 1. Capa Física:
En este nivel se definen y materializan las características mecánicas, eléctricas, funcionales y de
procedimiento para establecer, mantener y terminar la interconexión física entre un ETD (Equipo Terminal de
Datos) y un ETCD (Equipo Terminal del Circuito de Datos).
En la conexión de sistemas a través de una red pública a este nivel se retira la interconexión del sistema
informático recomendado por el CCITT en el caso de conexión a través de una red de datos.
Esta capa se ocupa de la transmisión de bits a lo largo de un canal de comunicación. Su diseño debe asegurar
que cuando un extremo envía un bit con valor 1, este se recibe exactamente como un bit con ese valor en el
otro extremo, y no como un bit de valor 0. Preguntas aquí comunes son cuantos voltios deberán utilizarse para
representar un bit de valor 1 ó 0; cuantos microsegundos deberán durar un bit; la posibilidad de realizar
transmisiones bidireccionales en forma simultanea; la forma de establecer la conexión inicial y como
interrumpirla cuando ambos extremos terminan su comunicación; o bien, cuantas puntas terminales tiene el
conector de la red u cual es su uso de cada una de ellas. Los problemas de diseño a considerara aquí son los
aspectos mecánicos, eléctricos, de procedimiento de interfase y el medio de transmisión física, como
decíamos al principio, que se encuentra bajo la capa física. Se puede considerar que el diseño de la capa física
cae dentro del dominio del ingeniero eléctrico.
9
• Nivel 2. Capa de Enlace:
El objetivo de este nivel es proporcionar los elementos necesarios para establecer, mantener y terminar
interconexiones de enlace de datos por el enlace entre el ETD y el ETCD.
Un enlace de datos se establece siempre entre dos puntos físicos de conexión del sistema. En todos los casos
se considera que un enlace es siempre bidireccional. Existen en la práctica diferentes tipos de protocolos de
enlace utilizados en el intercambio de información entre sistemas informáticos.
El procedimiento utiliza el principio y la terminología del procedimiento de control para enlaces de datos de
alto nivel (HDLC) especificado por ISO.
La tarea primordial de la capa de enlace consiste en, a partir de un medio de transmisión común y corriente,
transformarlo en una línea sin errores de transmisión para la capa de red. Esta tarea la realiza al hacer que el
emisor trocee la entrada de datos en tramas de datos (típicamente constituidas por algunos cientos de
octetos), y la trasmita en forma secuencial y procese las tramas de asentimiento, devueltas por el receptor.
Como la capa física básicamente acepta y transmite un flujo de bits sin tener en cuenta el significado o
estructura, recae sobre la capa de enlace la creación o reconocimiento de los limites de la trama. Esto puede
llevarse a cabo mediante la inclusión de un patrón de bit especial de inicio y al termino de la trama. Si estos
patrones de bits pueden aparecer entre los datos, deberá tenerse cuidado especial para evitar cualquier
confusión al respecto.
La trama puede destruirse por completo debido a una ráfaga de ruido en la línea, en cuyo caso el software de
la capa de enlace, perteneciente a la maquina receptora, deberá retransmitir la trama. Sin embargo, múltiples
transmisiones de la misma trama introducen la posibilidad de duplicar la misma. Por ejemplo, el duplicado de
una trama podría enviarse, si el acuse de recibo que regresa al receptor se hubiera destruido. Corresponde a
esta capa resolver los problemas causados por daño, perdida o duplicidad de tramas. La capa de enlace ofrece
diferentes clases de servicios a la capa de red, cada uno de ellos con distinta calidad y precio.
Otro de los problemas que aparecen en la capa de enlace (y también en la mayoría de las capas superiores) es
el referente a como evitar que un transmisor muy rápido sature con datos a un receptor lento. Se deberá
emplear un mecanismo de regulación de tráfico que permita que el transmisor conozca el espacio de menoría
que en ese momento tiene el receptor. Frecuentemente, y por conveniencia, los procedimientos de regulación
de flujo y control de errores se tratan conjuntamente.
Otra dificultad aparece cuando la línea tiene la capacidad de utilizarse para transmitir datos
bidireccionalmente. El problema radica en que los asentimientos para el tráfico de A a B compiten por el uso
de la línea con tramas de datos del trafico que va de B hacia A. Para resolver este problema se ha inventado
una solución inteligente consistente en el envío de aquellos superpuntos (piggy backing).
• Protocolos de Enlace de Datos:
Dentro de las funciones básicas que utilizan los protocolos del nivel de enlace podemos
diferenciar :
• Protocolos orientados a carácter.
• Protocolos orientados a bit.
La diferencia principal entre estos dos tipos generales de protocolos reside en la unidad de transmisión. Como
su propio nombre indica los protocolos orientados a carácter tienen su información agrupada en bloques y
10
transmiten caracteres (favorecen a estructuras primarias y secundarias y no se ven las estaciones combinadas).
En cambio en los protocolos orientados a bit la unidad de datos, como parece
obvio, es el bit: los mensajes se forman por una serie de bits y tendremos un bit que será el de control.
Ejemplos típicos de protocolos orientados a carácter son: BSC (IBM), DDCMP (ISO) que son
estándares o BPA, TAP, SLC etc... y de protocolos orientados a bit tenemos una gran variedad
como son los HDLC, ADCCP, LAPB, SDLC, BDLC etc.
A continuación pasaremos a estudiar algunos de ellos.
• Protocolos Orientados a Bit:
El rápido crecimiento de las aplicaciones de comunicación de datos, junto con la evolución de
la tecnología que ha proporcionado ordenadores y terminales más rápidos, más potentes y más baratos, motivó
la búsqueda de protocolos más eficientes que los orientados a carácter.
Estos protocolos, orientados a bit , se diseñaron para cumplir una amplia variedad de
requerimientos del enlace de datos, entre los que podemos mencionar:
• Adaptación a las diversas configuraciones del enlace: punto a punto, multipunto y otras, mediante
líneas conmutadas o dedicadas.
• Posibilidad de manejar estaciones primarias secundarias y combinadas.
• Operación dúplex o semidúplex. Posibilidad de conectar terminales que trabajen en modo semidúplex
y dúplex al mismos tiempo y al mismo enlace.
• Posibilidad de funcionar en enlaces de gran tiempo de tránsito(enlaces por satélite) o
pequeño(conexiones directas de corta distancia) y por supuesto de enlaces de alta y baja capacidad.
Además estos protocolos están pensados para satisfacer los siguientes objetivos:
• Independencia de código. Los mensajes del nivel superior pueden estar constituidos por cualquier
combinación de bits.
• Gran eficiencia. La relación entre bits de datos transmitidos y bits de control del protocolo debe ser
alta.
• Elevada fiabilidad. Tanto los tramos de datos como los de control deben protegerse con métodos
potentes de detección de errores.
La clave para cumplir estos requerimientos y objetivos es la utilización de una estructura de
trama monoformato, con guión de apertura y cierre y campos de significado posicional.
Existe una amplia variedad de protocolos orientados a bit muy similares:
HDLC (High−level Data Link Control).Constituye una familia de protocolos definida por la
11
Organización Internacional de Normalización (ISO).
ADCCP (Advanced Data Communication Control Procedures). Desarrollado por la organización Americana
de Normalización (ANSI) y conocido como Norma Federal Americana.
LAPB (Link Acces Procedure Balanced).Subconjunto de HDLC adoptado por el CCITT para
el nivel de enlace de la interfase X.25 de acceso a las redes públicas de conmutación de paquetes.
SDLC ( Synchronous Data Link Control). De IBM, similar a un subconjunto de HDLC aunque
con variaciones adicionales.
BDLC (Burroughs Data Link Control) y UDLC (Univac Data Link Control). Utilizados por
Burroughs y Univac respectivamente.
• Protocolos Orientados a Carácter:
Los protocolos orientados a carácter se caracterizan por constar los mensajes del nivel superior de un número
entero de caracteres pertenecientes a un código determinado. Se comenzaron a desarrollar protocolos de este
tipo a partir de los primeros años 60 con el surgimiento de las comunicaciones de datos entre terminales
conectados al ordenador por medios públicos de telecomunicación.
A pesar del más reciente desarrollo de los protocolos orientados a bit, que son más eficientes y flexibles, los
protocolos orientados a carácter están muy extendidos y se usan todavía en muchos entornos.
Históricamente, los protocolos de nivel de enlace surgieron condicionados por los servicios específicos que
debían proporcionar, en base a las características de las aplicaciones. De esta forma los fabricantes hicieron
sus propios protocolos; diversos grupos de usuarios como bancos y líneas aéreas desarrollaron luego
protocolos para cumplir sus necesidades específicas, y por último las administraciones de telecomunicación en
cada país, a partir de los años 70, han desarrollado protocolos para conexión de equipos informáticos a través
de sus redes de datos. Por estas razones, existe una amplia gama de protocolos no compatibles.
La Organización Internacional de Normalización (ISO), empezó a estudiar los protocolos de enlace tan pronto
como surgiera (1962), preocupada por el problema de la incompatibilidad; pero el desarrollo de la norma ISO
17450 Modo Básico duró 8 años, por lo que los fabricantes se anticiparon y realizaron sus propias versiones.
La amplia extensión del desarrollado por IBM, conocido como BSC, ha dado lugar a que a veces, al hablar de
los protocolos orientados a carácter, se particularice para el BSC.
Los protocolos orientados a carácter emplean determinados caracteres de control del código utilizado, para
realizar las funciones de control de la comunicación. Por esto, las tramas de control están constituidas por uno
o varios de estos caracteres, por lo que las estaciones se intercambian tramas de datos y caracteres de control.
El código más utilizado es el ASCII o CCITT Nº5 pero también es posible utilizar el código EBCDIC o el
Transcode. En estos protocolos, a la unidad de datos del protocolo se le denominaba bloque.
Como ejemplo de estos protocolos vamos a describir brevemente el Protocolo BSC.
Podemos agrupar los caracteres de control básicos utilizados en estos protocolos en tres categorías en razón de
su funcionalidad:
• Para Delimitación de los Bloques:
12
SYN (Syncronous Idle): dos o más de estos caracteres proporcionan un medio para que el receptor adquiera y
mantenga la sincronización de carácter.
SOH (Start of header): este carácter identifica el principio de una secuencia de caracteres que constituyen la
cabecera de un mensaje.
STX (Start of Text): indica el principio de los datos del bloque.
ETX (End of Text): identifica el final de un bloque y el final del texto de un mensaje.
ETB (End of Transmisision Block): identifica el final de un bloque pero indica que siguen mas bloques en
secuencia del mismo bloque.
• Para Controlar el Dialogo de las Estaciones:
EOT (End of Transmission): identifica el final de una secuencia completa de transmisión y normalmente
implica la liberación del enlace.
ENQ (Enquiry): petición de repuesta de la otra estación. Se utiliza también para establecer el enlace.
ACK (Affirmative Acknowledgment): respuesta afirmativa. Confirma o valida un bloque.
NAK (Negative Acknowledgment): respuesta de rechazo. Indica que el bloque anterior se recibió con errores.
• Para la Transmisión en Modo Transparente:
DEL (Data Link Escape): utilizado para cambiar el significado de los caracteres de control que le siguen
El control de errores en estos protocolos son los siguientes:
• Simple paridad: Se añade un bit de paridad por carácter. Este procedimiento VRC permite al receptor
detectar errores simples. Únicamente se emplea en la transmisión de las tramas de control.
• Paridad horizontal/vertical: Se añade un bit por carácter (paridad horizontal) y un carácter final
(paridad vertical) constituido por la paridad de todos los bits de todos los caracteres del bloque.
• Códigos cíclicos: Se añaden dos caracteres de control por bloque, calculados por la técnica de los
códigos cíclicos y utilizando como polinomio generador uno de los dos siguientes:
x^16+x^15+x^2+1
x^16+x^12+x^5+1
• Nivel 3. Capa de Red:
El objetivo de este nivel es proporcionar los elementos necesarios para intercambiar información entre los
entes del nivel de transporte a través de una red de transmisión de datos.
El intercambio de paquetes entre el ETD y el ETCD se realiza a través de lo que se ha denominado un canal
lógico, de forma que entre un ETD y un ETCD pueden existir uno o más canales lógicos con la posibilidad de
ser utilizados independientemente unos de otros. El número de canales lógicos de cada enlace se fijaría de
acuerdo con la administración de la red.
13
Las funciones asignadas a los entes del nivel de red cobran pleno sentido cuando en la comunicación se utiliza
una red de transmisión de datos. El intercambio de información entre dos sistemas informáticos se realizará a
través de unos circuitos virtual, operación que se realizará en niveles superiores.
Esta capa se ocupa del control de la operación de la subred. Un punto de suma importancia en su diseño, es la
determinación sobre como encamisar los paquetes del origen al destino. Las rutas podrían basarse en tablas
estáticas que se encuentran cableadas en la red y que difícilmente podrían cambiarse. También podrían
determinarse al inicio de cada conversación, por ejemplo en una sesión de terminal. Por ultimo, podrían ser de
tipo dinámico, determinándose en forma diferente para capa paquete, reflejando la carga real de red.
Si en un momento dado hay demasiados paquetes presentes en la subred, ellos mismos se obstruirán
mutuamente y darán lugar a un cuello de botella. El control de tal congestión dependerá de la capa de red.
Como los operadores de la subred esperan alguna remuneración al esfuerzo que realizan, en muchas ocasiones
se introduce una función de contabilidad en la capa de red. El software deberá saber, por lo menos, cuantos
paquetes o caracteres o bits se enviaron al cliente, con objeto de producir información de facturación. Cuando
un paquete cruza una frontera nacional, con precios distintos en cada lado, el calculo de la cuenta puede llegar
a complicarse.
También pueden surgir otros problemas cuando un paquete tenga que desplazarse de una red a otra para llegar
a su destino. El direccionamiento utilizado en la segunda red puede ser diferente al empleado en la primera.
La segunda podría no aceptar el paquete en su totalidad, por ser demasiado grande. Los protocolos podrían ser
diferentes, etc. la responsabilidad, para resolver problemas de interconexión de redes heterogéneas recaerá, en
todo caso, en la capa de red.
En redes de difusión el problema del encaminamiento es simple, por lo cual la capa de red es normalmente
delgada o incluso inexistente.
• Nivel 4. Capa de Transporte:
El objetivo de los elementos que componen este nivel consiste en proporcionar un servicio de transporte de la
información a través del sistema. Este servicio deberá ser transparente para los usuarios (elementos del nivel
sesión) liberándolos de ese modo de todo lo referente a la forma de llevar a cabo dicho transporte.
El nivel transporte proporcionará fundamentalmente tres tipos de servicios:
• Servicios orientados hacia el establecimiento de una conexión
• Servicios orientados hacia la realización de transacciones.
• Servicios orientados hacia la difusión de información a múltiples destinatarios.
A los entes de este nivel se les denominan estaciones de transporte o puntos filiales del bloque de transporte.
Las operaciones de intercambio de información entre estaciones de transporte se realizan mediante protocolos
denominados de transporte entre puntos filiales.
La función principal de la capa de transporte consiste en aceptar los datos de la capa de sesión, dividirlos,
siempre que sea necesario, en unidades más pequeñas, pasarlos a la capa de red y asegura que todos lleguen
correctamente al otro extremo. Además, todo este trabajo se debe hacer de manera eficiente, de tal modo que
aísle la capa de sesión de los cambios inevitables a los que esta sujeta la tecnología del hardware.
Bajo condiciones normales, la capa de transporte crea una conexión de red distinta para cada conexión de
14
transporte solicitada por la capa de sesión. Si la conexión de transporte necesita un gran caudal, esta podría
crear múltiples conexiones de red, dividiendo los datos entre las conexiones de la red con objeto de mejorar
dicho caudal. Por otra parte, si la creación o mantenimiento de la conexión de una red resulta costoso, la capa
de transporte podría multiplexar varias conexiones de transporte sobre la misma conexión de red para reducir
dicho costo. En todos los casos, la capa de transporte se necesita para hacer el trabajo de multiplexión
transparente de la capa de sesión.
La capa de transporte determina que tipo de servicio debe dar a la capa de sesión, y en ultimo termino a los
usuarios de la red. El tipo más popular de conexión de transporte corresponde al canal punto a punto sin error,
por medio del cual se entregan mensajes en el mismo orden en que fueron enviados. Sin embargo, el
transporte de mensajes aislados sin garantizar el orden de distribución y la difusión de mensajes a destinos
múltiples es otra posibilidad de servicio de transporte. El tipo de servicio se determina cuando se establece la
conexión.
La capa de transporte es una capa del tipo origen−destino o extremo a extremo. Es decir, un programa en la
maquina de origen lleva una conversación con un programa parecido que se encuentra en la maquina destino,
utilizando las cabeceras de los mensajes y los mensajes de control. Los protocolos, de las capas inferiores, son
entre cada maquina y su vecino más inmediato, y no entre las máquinas origen y destino, las cuales podrían
estar separadas por muchos IMPs. En la arquitectura de red basándose en el modelo OSI representada
anteriormente en el dibujo 1−6 se ilustra la diferencia entre las capas 1 a 3, que están encadenadas, y las capas
4 a 7, que son de extremo a extremo.
Algunos hostales son multiproceso, lo cual implica que múltiples conexiones estarán entrando y saliendo en
cada uno de ellos. Se necesita alguna forma para decir que mensaje pertenece a que conexión. La cabecera de
transporte de transporte (H4 en la figura 1−7), es un lugar donde puede colocarse la información.
Además de multiplexar varios flujos de mensaje en un canal, la capa de transporte debe ocuparse del
establecimiento y liberación de conexiones a través de la red. Esto requiere algún mecanismo de
denominación, de tal manera que en un proceso en una maquina tenga una manera para describir con quien
quiere conversar. También debe haber un mecanismo para regular el flujo de información, de manera que un
hostal muy rápido no pueda desbordar a otro mas lento. El control de flujo entre hostales es diferente a aquél
entre IMP, aunque se aplican a los dos principios semejantes.
• Nivel 5. Capa de Sesión:
El objetivo de los elementos situados en este nivel es proporcionar un soporte a la comunicación entre los
entes del nivel de presentación. Los entes del nivel de sesión utilizan a su vez los servicios del nivel de
transporte de acuerdo con la estructura jerarquizada del modelo de referencia.
Una sesión es una relación de cooperación entre dos entes del nivel de presentación para permitir la
comunicación entre ellos. En este nivel pueden existir tantos entes como sea necesario, uno por cada uno de
los del nivel superior. Cada ente del nivel de sesión se identificará mediante una dirección, asociada a un
elemento capaz de almacenar la información que se intercambia.
Hay que añadir que una sesión puede establecerse bien para permitir una comunicación bidireccional, bien
únicamente unidireccional.
La capa de sesión permite que los usuarios de diferentes maquinas puedan establecer sesiones entre ellos. A
través de una sesión se puede llevar a cabo un transporte de datos ordinario, tal y como lo hace la capa de
transporte, pero mejorando los servicios que esta proporciona y que se utilizan en algunas aplicaciones. Una
sesión podría permitir al usuario acceder a un sistema de tiempo compartido a distancia, o transferir un
archivo entre dos maquinas.
15
Uno de los servicios de la capa de sesión consiste en gestionar el control de dialogo. Las sesiones permiten
que el tráfico vaya en ambas direcciones al mismo tiempo, o bien, en una sola dirección en un instante dado.
Si el tráfico solo puede ir en una dirección en un momento dado (en forma análoga a un solo sentido en una
vía de ferrocarril), la capa de sesión ayudará en el seguimiento de quien tiene el turno.
La administración del testigo es otro de los servicios relacionados con la capa de sesión. Para el caso de
algunos protocolos resulta esencial que ambos lados no traten de realizar la misma operación en el mismo
instante. Para manejar estas actividades, la capa de sesión proporciona testigos que pueden ser
intercambiados. Solamente el extremo con el testigo puede realizar la operación critica.
Otro de los servicios de la capa de sesión es la sincronización. Considérense, por ejemplo, los problemas que
podrían ocurrir cuando se tratara de hacer una transferencia de archivo de dos horas entre dos maquinas en
una red con un tiempo medio de una hora entre caídas. Después de abortar cada archivo, la transferencia
completa tendría que iniciarse de nuevo y, probablemente, se encontraría de nuevo con la siguiente caída de la
red. Para eliminar este problema, la capa de sesión proporciona una forma de insertar puntos de verificación
en el flujo de datos, con objeto de que, después de cada caída, solamente tengan que repetirse los datos que se
encuentren después del último punto de verificación.
• Nivel 6. Capa de Presentación:
El objetivo de los elementos situados a este nivel es proporcionar un conjunto de servicios a los entes que
constituyen el nivel superior. Dichos servicios están fundamentalmente orientados a la interpretación de la
estructura de las informaciones intercambiadas por los procesos de aplicación.
En este nivel se han concentrado todas aquellas funciones que sea necesario realizar para permitir la existencia
de una heterogeneidad entre la forma en que intercambian información los procesos de aplicación que
dialogan, en el caso de que dicha heterogeneidad exista. El nivel de presentación contribuye a asegurar el
carácter abierto del sistema.
Las funciones asignadas a los niveles de aplicación y presentación son de la misma naturaleza y en cierto
modo complementarias. Podría decirse que la diferencia entre dichas funciones es similar a la que existe entre
significado y representación de la información, entre semántica y sintaxis de los datos que constituyen la
comunicación entre procesos de aplicación.
La capa de presentación realiza ciertas funciones que se necesitan bastante a menudo como para buscar una
solución general para ellas, mas que dejar que cada uno de los usuarios resuelva los problemas. En particular
y, a diferencia de las capas inferiores, que únicamente están interesadas en el movimiento fiable de bits de un
lugar a otro, la capa de presentación se ocupa de los aspectos de sintaxis y semántica de la información que se
transmite.
Un ejemplo típico de servicio de la capa de presentación es el relacionado con la codificación de datos
conforme a lo acordado previamente. La mayor parte de los programas de usuario no intercambian ristras de
bits binarios aleatorios, sino más bien, cosas como nombre de personas, datos, cantidades de dinero y facturas.
Estos artículos están representados por ristras de caracteres, números enteros, números de punto flotante, así
como por estructuras de datos constituidas por varios elementos más sencillos. Los ordenadores puede tener
diferentes códigos para representar ristras de caracteres (por ejemplo, ASCII y EBCDIC), enteros (por
ejemplo, complemento a uno o complemento a dos), etc. Para posibilitar la comunicación de ordenadores con
diferentes representaciones, la estructura de los datos que se van a intercambiar puede definirse en forma
abstracta, junto con una norma de codificación que se utilice en el cable. El trabajo de manejar estas
estructuras de datos abstractas y la conversión de la representación utilizada en el interior del ordenador a la
representación normal de la red, se lleva a cabo a través de la capa de presentación.
16
La capa de presentación esta relacionada también con otros aspectos de representación de la información. Por
ejemplo, la compresión de datos puede utilizarse aquí par reducir el número de bits que tienen que
transmitirse, y el concepto de criptografía se necesita utilizar frecuentemente por razones de privacidad y de
autenticidad.
• Nivel 7. Capa de Aplicación:
Se trata del nivel superior del modelo de referencia y en él se llevan a cabo las funciones específicas de
comunicación entre los diferentes procesos de aplicación que constituyen el sistema.
Es necesario considerar que los procesos de aplicación que utilizan el mecanismo de interconexión se
encuentran distribuidos y deben comunicarse para llevar a cabo objetivos comunes. La comunicación se
realiza utilizando protocolos de diálogo apropiados. Desde el punto de vista del usuario, un proceso se
comunica con otros procesos, y esta operación se lleva a cabo a través del sistema operativo.
La comunicación entre los procesos se realiza mediante un determinado protocolo. En las especificaciones de
ISO se mencionan cinco grupos de posibles protocolos, son los siguientes:
• Protocolos de gestión del sistema
• Protocolos de gestión de la aplicación.
• Protocolos del sistema.
• Protocolos específicos para aplicaciones.
La capa de aplicación contiene una variedad de protocolos que se necesitan frecuentemente. Por ejemplo, hay
centenares de tipos de terminales incompatibles en el mundo. Considérese la situación de un editor orientado a
pantalla que desea trabajar en una red con diferentes tipos de terminales, cada uno de ellos con distantes
formas de distribución de pantalla, de secuencias de escape para insertar y borrar texto, de movimiento de
cursor, etc.
Una forma de resolver este problema consiste en definir un terminal virtual de red abstracto, con el que los
editores y otros programas pueden ser escritos para trabajar con él. Con objeto de transferir funciones del
terminal virtual de una red a un terminal real, se debe escribir un software que permita el manejo de cada tipo
de terminal. Por ejemplo, cuando el editor mueve el cursor del terminal virtual al extremo superior izquierdo
de la pantalla, dicho software deberá emitir la secuencia de comandos apropiados para que el terminal real
ubique también su cursor en el sitio indicado. El software completo del terminal virtual se encuentra en la
capa de aplicación.
Otra función de la capa de aplicación es la transferencia de archivos. Distintos sistemas de archivo tienen
diferentes convenciones para denominar un archivo, así como diferentes normas de representar las líneas de
texto, etc. La transferencia de archivos entre dos sistemas diferentes requiere de la resolución de estas y de
otras incompatibilidades. Este trabajo, así como el correo electrónico, la entrada de trabajo a distancia, el
servicio de directorio y otros servicios de propósito general y especifico, también corresponden a la capa de
aplicación.
Nivel
Nombre
Función
1
Físico
Se ocupa de la transmisión del flujo de bits a través
del medio.
Dispositivos y protocolos
Cables, tarjetas y
repetidores
RS−232, X.21.
17
2
3
Divide el flujo de bits en unidades con formato
(tramas) intercambiando estas unidades mediante el
empleo de protocolos.
Enlace
Establece las comunicaciones y determina el camino
que tomarán los datos en la red.
Red
4
Transporte
5
Sesión
6
Presentación
7
Aplicación
Puentes (bridges).
HDLC y LLC.
Encaminador (router).
IP, IPX
La función de este nivel es asegurar que el receptor
reciba exactamente la misma información que ha
Pasarela (gateway).
querido enviar el emisor, y a veces asegura al emisor
que el receptor ha recibido la información que le ha
UDP, TCP, SPX
sido. Envía de nuevo lo que no haya llegado
correctamente.
Establece la comunicación entre las aplicaciones, la
mantiene y la finaliza en el momento adecuado.
Proporciona los pasos necesarios para entrar en un
Pasarela.
sistema utilizando otro. Permite a un mismo
usuario,realizar y mantener diferentes conexiones a
la vez (sesiones).
Pasarela.
Conversión entre distintas representaciones de datos
y entre terminales y organizaciones de sistemas de
Compresión, encriptado,
ficheros con características diferentes.
VT100.
Este nivel proporciona unos servicios estandarizados
para poder realizar unas funciones especificas en la
red. Las personas que utilizan las aplicaciones hacen
una petición de un servicio (por ejemplo un envío de X.400
un fichero). Esta aplicación utiliza un servicio que le
ofrece el nivel de aplicación para poder realizar el
trabajo que se le ha encomendado (enviar el fichero).
• La Transmisión o Comunicación de Datos en el Modelo OSI:
La comunicación según el modelo OSI siempre se realizará entre dos sistemas. Supongamos que la
información se genera en el nivel 7 de uno de ellos, y desciende por el resto de los niveles hasta llegar al nivel
1, que es el correspondiente al medio de transmisión (por ejemplo el cable de red) y llega hasta el nivel 1 del
otro sistema, donde va ascendiendo hasta alcanzar el nivel 7. En este proceso, cada uno de los niveles va
añadiendo a los datos a transmitir la información de control relativa a su nivel, de forma que los datos
originales van siendo recubiertos por capas datos de control.
De forma análoga, al ser recibido dicho paquete en el otro sistema, según va ascendiendo del nivel 1 al 7, va
dejando en cada nivel los datos añadidos por el nivel equivalente del otro sistema, hasta quedar únicamente
los datos a transmitir. La forma, pues de enviar información en el modelo OSI tiene una cierta similitud con
enviar un paquete de regalo a una persona, donde se ponen una serie de papeles de envoltorio, una o más
cajas, hasta llegar al regalo en sí.
Emisor
Aplicación
Presentación
Sesión
Transporte
Paquete
C7 Datos
C6 C7 Datos
C5 C6 C7 Datos
C4 C5 C6 C7 Datos
Receptor
Aplicación
Presentación
Sesión
Transporte
18
Red
Enlace
Físico
C3 C4 C5 C6 C7 Datos
C2 C3 C4 C5 C6 C7 Datos
C2 C3 C4 C5 C6 C7 Datos
Red
Enlace
Físico
C7−C2 : Datos de control específicos de cada nivel.
Los niveles OSI se entienden entre ellos, es decir, el nivel 5 enviará información al nivel 5 del otro sistema
(lógicamente, para alcanzar el nivel 5 del otro sistema debe recorrer los niveles 4 al 1 de su propio sistema y el
1 al 4 del otro), de manera que la comunicación siempre se establece entre niveles iguales, a las normas de
comunicación entre niveles iguales es a lo que llamaremos protocolos. Este mecanismo asegura la
modularidad del conjunto, ya que cada nivel es independiente de las funciones del resto, lo cual garantiza que
a la hora de modificar las funciones de un determinado nivel no sea necesario reescribir todo el conjunto.
La idea fundamental, a lo largo de este proceso, es que si bien la transmisión efectiva de datos es vertical,
como se ve en la tabla, cada una de las capas esta programada como si fuera una transmisión horizontal.
Cuando la capa de transporte emisora obtiene, por ejemplo, un mensaje de la capa de sesión le asigna una
cabecera de transporte y lo envía a la capa de transporte receptora. Desde el punto de vista de esta capa, el
hecho de que debe realmente entregar el mensaje a la capa de red de su propia máquina es un detalle técnico
sin importancia. Una analogía de este hecho es, por ejemplo, cuando un diplomático de habla Uighur se dirige
a las Naciones Unidas, piensa como si estuviera dirigiéndose personalmente a los diplomáticos ahí
congregados. El hecho de que le este hablando solo a su traductor, se ve como un simple detalle técnico.
• Servicios:
La verdadera función de cada una de las capas OSI consiste en proporcionar servicios a las capas superiores.
Para saber que es un servicio se detallara brevemente la terminología empleada en el modelo OSI.
• Terminología OSI:
Se llenan entidades a los elementos activos que se encuentran en cada una de las capas. Las entidades
pueden ser software (como un proceso), o hardware (como un chip inteligente de E/S). Las entidades de la
misma capa, pero de diferentes máquinas, se conocen como entidades pares o iguales. A las entidades de la
capa 7 se les conoce como entidades de aplicación; a las de la capa 6 como entidades de presentación, etc.
Las entidades de la capa N desarrollan un servicio que utiliza la capa (N + 1), en este caso a la capa N se le
denomina Proveedor del servicio y a la capa (N + 1) usuario del servicio. La capa N puede utilizar los
servicios de la capa (N − 1) con objeto de proporcionar su servicio. El servicio que ofrece puede ser de
varias clases, por ejemplo, una comunicación rápida y costosa, o bien, una comunicación lenta y
económica.
Los servicios se encuentran disponibles en el SAP (punto de acceso al servicio). Los SAP de la capa N son
los lugares en donde la capa (N + 1) puede acceder a los servicios que se ofrecen. Cada uno de los SAP
tiene una dirección que lo identifica de forma particular. Para aclarar este punto, los SAP en el sistema
telefónico son los enchufes en los que se conectan los teléfonos y las direcciones de los SAP son los
números de teléfono correspondientes a dichos enchufes. Para poder llamar a alguien, se debe conocer la
dirección de su SAP. En el sistema postal, de manera análoga, las direcciones de los SAP son las
direcciones de las calles y de las oficinas postales. Para poder enviar una carta, se debe conocer la
dirección del SAP del destinatario. En el sistema UNIX de Berkeley, los SAP son los enchufes y las
direcciones de los SAP son los números de los enchufes. El concepto de SAP esta estudiado con mayor
detalle por Tomas y sus colaborados (1987).
19
Para que se lleve a cabo un intercambio de información entre dos capas, deberá existir un acuerdo sobre
un conjunto de reglas acerca de la interfase. En una interfase típica, la entidad de la capa (N + 1) pasa una
IDU (unidad de datos de la interfase) a la entidad de la capa N, a través del SAP, como se muestra en el
dibujo 1−8. El IDU consiste en una SDU (unidad de datos del servicio) y de alguna información de control.
La SDU es la información que se pasa, a través de la red, a la entidad par y posteriormente a la capa (N +
1). La información de control es necesaria porque ayuda a que las capas inferiores realicen su trabajo (por
ejemplo, el número de bytes en el SDU), pero no forma parte de los datos.
Para hacer la transferencia de una SDU, podrá ser necesario su fragmentación por parte de la entidad de
la capa N en varias partes, de tal forma que a cada una de ellas se le asigne una cabecera y se envíe como
una PDU (unidad de datos del protocolo) distinta. Las entidades pares utilizan cabeceras de la PDU para
llevar a cabo su protocolo de igual a igual. Por medio de ellos se identifica cuales son las PDU que
contienen datos y cuales las que llevan información de control, además proveen la secuencia numérica y
las cuentas, etc. Con frecuencia a las PDU de transporte, sesión y aplicación se las conoce como TPDU
(unidad de datos del protocolo de transporte), SPDU (unidad de datos del protocolo de sesión), APDU
(unidad de datos del protocolo de aplicación), respectivamente. No es muy común oír hablar de los otros
tipos de PDU.
A este lenguaje se le conoce por lo como international bureaucrat speak (jerga burocráticamente
internacional).
• Servicios, orientados a conexión y sin conexión:
Las capas pueden ofrecer dos tipos diferentes de servicios a las capas que se encuentran sobre ellas: uno
orientado a conexión y otro sin conexión. Veremos los tipos y sus diferencias.
El servicio orientado a la conexión se modeló basándose en el sistema telefónico. Para poder hablarle a
alguien se debe tomar el teléfono, marcar el número, hablar y colgar. Similarmente, para utilizar una red
con servicio orientado a conexión, el usuario del servicio establece primero la conexión, la utiliza y después
termina la conexión. El aspecto fundamental de la conexión es que actúa en forma parecida a la de un
tubo: el que envía, introduce objetos por un extremo, y el receptor los recoge, en el mismo orden, por el
otro extremo.
A diferencia de esto, el servicio sin conexión se modela con base en el sistema postal. Cada mensaje (carta)
lleva consigo la dirección completa de destino y cada uno de ellos se encamina, en forma independiente, a
través del sistema. Normalmente, cuando dos mensajes se envían al mismo destino, el primero que se envíe
será el primero en llegar. Es posible, sin embargo, que el primero que se envíe sufra un retardo y llegue
antes el que se envío en segundo lugar. Con un servicio orientado a conexión es imposible que suceda esto.
Cada servicio se caracteriza por la calidad del servicio, algunos de ellos son fiables en la medida que nunca
pierdan la información que transportan. Por lo general, un servicio fiable se realiza haciendo que el
receptor notifique haber recibido cada mensaje, para que el transmisor este seguro de que su mensaje llegó
a destino. El proceso de notificación introduce un exceso de trafico y retardos, que a menudo son
convenientes, pero también son algunas veces indeseables.
La transferencia de archivos es una situación típica en la que es deseable y apropiado tener un servicio
orientado a conexión fiable. El propietario de un archivo quiere tener la seguridad de que todos los bits
lleguen correctamente y en el mismo orden en que se enviaron. Muy pocos clientes preferirían un servicio
que, aun cuando lo hiciera con mucha rapidez, ocasionalmente mezclara en forma desordenada o perdiera
información de algunos bits durante la transferencia de archivo.
El servicio orientado a conexión fiable tiene dos variantes mínimas: secuencia de mensajes y flujos de
20
octetos. En la primera de ellas, se mantienen los limites del mensaje. Cuando se envían dos mensajes de
1K, estos llegan como dos mensajes distintos de 1K, y nunca como un mensaje de 2K. En la segunda
variante, la conexión es simplemente un flujo de octetos sin limites de mensaje. Cuando llegan al receptor
2K octetos, no hay manera de saber si se enviaron como un mensaje de 2K, dos mensajes de 1k o 2048
mensajes de un octeto. Si las páginas de un libro se enviaran por una red, para una composición
fotográfica, como mensajes separados, podría ser importante mantener los limites del mensaje. Por otra
parte, con un terminal accediendo a un sistema remoto de tiempo compartido, lo único que se necesita es el
flujo de octetos del terminal del ordenador.
En algunas aplicaciones no se pueden aceptar los retardos introducidos por el proceso de asentimientos;
una de estas es el tráfico de la voz digitalizada. Para los usuarios del teléfono resulta preferible oír un bit
de ruido en una línea o palabra mutilada de vez en cuando, en lugar de introducir un retardo esperando
una señal de acuse de recibo.
No todas las aplicaciones necesitan conexión, por ejemplo, en el correo electrónico el emisor no tiene
problemas para establecer y posteriormente romper una conexión, solo para enviar un mensaje. Tampoco
es esencial tener un envió 100% fiable, especialmente si se eleva su costo. Todo lo que se necesita, a fin de
cuentas, es un medio de envío de mensaje sencillo que tenga una alta probabilidad, pero no una garantiza
de alcanzar su destino. Un servicio sin conexión no es fiable (es decir, que no tenga asentimientos), se
conoce con frecuencia como servicio datagrama, por analogía con el servicio de telegramas, el cual
tampoco proporciona acuse de recibo de la información al emisor.
En algunas ocasiones convendría no tener que establecer una conexión para enviar un mensaje pequeño,
pero si seria fundamental que el proceso sea fiable. Para estas aplicaciones se proporcionaría el servicio de
datagrama con asentimientos de información, cuyo servicio es parecido al proceso de enviar una carta
certificada y solicitar un acuse de recibo. Cuando éste regresa, el emisor está completamente seguro de que
la carta se entrego a la persona interesada.
Otro servicio alternativo es el servicio de pregunta/respuesta, en el que la persona que envía, transmite un
datagrama sencillo que contiene una solicitud, la contestación contiene una respuesta. Por ejemplo, la
petición a la biblioteca local preguntado en que lugar se habla Uighur caería en esta categoría. En la
siguiente tabla se resumen los tipos de servicios que hemos discutido.
Servicios
Flujo de mensaje fiable
Flujo de octetos fiables
Conexión no fiable
Datagrama no fiable
Datagrama con asentimiento
Pregunta/repuesta
Ejemplo
Secuencia de paginas
Conexión remota
Voz digitalizada
Correo electrónico basura
Correo certificado
Interrogación de base de datos
• Primitivas de Servicio:
Un servicio esta formalmente especificado por un conjunto de primitivas (operaciones), a disposición de
todos los usuarios o de otras entidades para acceder al servicio. Estas primitivas le indican al servicio que
debe efectuar una acción o notifican la acción tomada por una entidad par. Como se muestra en la
siguiente tabla las primitivas de servicio en el modelo OSI pueden dividirse en cuatro clases.
Primitiva
Solicitud
Significado
Una entidad desea que el servicio realice un trabajo
21
Indicación
Respuesta
Confirmación
Una entidad es informada acerca de un evento
Una entidad desea responder a un evento
Una entidad va a ser informada acerca de su solicitud
La primera clase de primitiva es la primitiva petición o solicitud (request). Esta se utiliza para que un
trabajo se realice, por ejemplo, establecer una conexión o enviar datos. Una vez se ha efectuado el trabajo,
se le avisa a la entidad corresponsal mediante la primitiva indicación (indication). Por ejemplo, después de
una petición de conexión (CONNECT, request), en notación OSI, la entidad que se está direccionando
obtiene una indicación de conexión (CONNECT, indication) con la cual se le anuncia que alguien desea
establecer una conexión con ella. La entidad que recibió la CONNECT, indication utiliza entonces la
primitiva respuesta de conexión (CONNECT, response) para decir si acepta o rechaza la conexión
propuesta. En cualquier caso, la entidad que emite CONNECT, request inicial, sabe lo que paso a través de
la primitiva confirmación de la conexión (CONNECT, confirm).
Las primitivas pueden tener parámetros y, efectivamente, la mayoría los tienen. Los parámetros para una
CONNECT, request podrían especificar la máquina a la que se va a conectar, el tipo de servicio que se
desea, así como el tamaño máximo del mensaje utilizado en la conexión. Los parámetros de una
CONNECT, indication, podrían contener la identidad del que llama, el tipo de servicio que desea y el
tamaño máximo del mensaje propuesto. Si la entidad llamada no esta de acuerdo con el tamaño máximo
del mensaje propuesto, podría hacer una contrapropuesta en su primitiva de respuesta, la cual estaría a
disposición del que llamo originalmente en la primitiva de confirmación. Los detalles de esta negociación
son parte del protocolo. En caso de existir dos propuestas en conflicto sobre el tamaño del mensaje, por
ejemplo, el protocolo podría especificar que siempre que suceda esto se escogerá aquella que tenga menor
costo.
Haciendo un paréntesis en la terminología, el modelo OSI evita cuidadosamente el empleo de los términos
abre una conexión y cierra una conexión, porque, para los ingenieros eléctricos un circuito abierto es
aquel que tiene una abertura o separación, y la electricidad solo puede fluir por circuitos cerrados. Los
científicos en ordenadores nunca estarían de acuerdo en tener la información fluyendo en circuito cerrado.
Para mantener ambas partes en paz, los términos oficiales al respecto son establece una conexión y libera
una conexión, respectivamente.
Los servicios pueden ser confirmados o no confirmados. En un servicio confirmado, hay una petición, una
indicación, una respuesta y una confirmación. En un servicio sin confirmar, solamente hay una petición y
una indicación. La expresión CONNECT siempre considerara un servicio confirmado, porque el
corresponsal remoto deberá estar de acuerdo en establecer una conexión. Por otra parte, la transferencia
de datos puede ser confirmada o sin confirmar, dependiendo de sí el emisor necesita o no tener acuse de
recibo de la información. En las redes se utilizan dos tipos de servicio.
Para tener una idea más concreta del concepto de servicio, considérese un ejemplo sencillo con servicio
orientado a conexión, con ocho primitivas definidas de la siguiente manera:
• CONNECT, request: Solicitud para establecer una conexión.
• CONNECT, indication: Aviso de llamada a la entidad solicitada.
• CONNECT, response: Utilizada por la entidad corresponsal como un medio para aceptar/rechazar las
llamadas.
• CONNECT, confirm: Notifica al que llama si la llamada fue aceptada.
• DATA, request: Solicitud para que envíen los datos.
• DATA, indication: Aviso de llegada de datos, vale tanto para el emisor como para el receptor.
• DISCONNECT, request: Solicitud para liberar la conexión.
• DISCONNECT, indication: Aviso al llamado acerca de la solicitud de desconexión.
22
En este ejemplo, CONNECT es un servicio confirmado (es decir, necesita una respecta explícita), en tanto que
DISCONNECT es un servicio sin confirmar (no es necesario tener respuesta).
Podría ser de utilidad hacer una analogía con el sistema telefónico, para observar la manera como se emplean
estas primitivas. Considérense, por ejemplo, los pasos necesarios para llamar por teléfono alguien (Juan) para
invitarle a un asadero.
• CONNECT, request: Marcar el número de teléfono de Juan.
• CONNECT, indication: Su teléfono suena.
• CONNECT, response: Él descuelga el teléfono.
• CONNECT, confirm: Usted escucha que termino de sonar.
• DATA, request: Usted le hace la invitación.
• DATA, indication: Él escucha la invitación.
• DATA, request: Él contesta que efectivamente le gustaría ir.
• DATA, indication: Usted escucha su aceptación.
• DISCONNECT, request: Usted cuelga el teléfono.
• DISCONNECT, indication: Él oye que usted colgó y él también cuelga.
En el dibujo 1−9 se muestra la misma secuencia de pasos como una serie de primitivas de servicio, incluyendo
la confirmación de desconexión final. Cada uno de los pasos toma en cuenta una interacción entre dos capas
en uno de los ordenadores. Cada una de las peticiones o respuestas genera una indicación o confirmación en el
otro extremo, un instante después. En este ejemplo, los usuarios del servicio (usted y Juan) están en la capa (N
+ 1) y el proveedor del servicio (el sistema telefónico) esta en la capa N. Los números que aparecen en la
parte final de las flechas se refiere a las ocho primitivas de servicio estudiadas en este apartado.
• Relación entre servicios y protocolos:
Los conceptos de servicio y protocolo tienen un significado distinto, a pesar de que frecuentemente se les
confunde. Esta diferencia es tan importante que nuevamente se hará énfasis aquí.
Un servicio es un conjunto de primitivas (operaciones), que una capa proporciona a la capa superior. El
servicio define las operaciones que la capa efectuara en beneficio de sus usuarios, pero no dice nada con
respecto a como se realizan dichas operaciones. Un servicio se refiere a una interfase entre dos capas,
siendo la capa inferior la que provee el servicio y la capa superior la que utiliza el servicio.
Un protocolo, a diferencia del concepto de servicio, es un conjunto de reglas que gobiernan el formato y el
significado de las tramas, paquetes o mensajes que son intercambiados por las entidades corresponsales
dentro de una capa. Las entidades utilizan protocolos para realizar sus definiciones de servicio, teniendo
libertad para cambiar el protocolo, pero asegurándose de no modificar el servicio visible a los usuarios. De
esta manera, se observa con claridad como los conceptos de servicio y protocolo están completamente
desacoplados.
Seria conveniente hacer una analogía con los lenguajes de programación. Un servicio es como un tipo de
dato abstracto que define las operaciones que pueden efectuarse sobre un objeto, pero no especifica la
manera como se realizan estas operaciones. Un protocolo se relaciona con la realización de un servicio y,
como tal, no es visible para el usuario del servicio.
Varios protocolos pre−OSI no distinguían el servicio del protocolo. En efecto, una capa típica podría haber
tenido una primitiva de servicio SEND PACKET, con el usuario proporcionando un puntero a un paquete
completamente ensamblado. Este convenio significa que todos los cambios al protocolo eran de inmediato
visibles para los usuarios. Ahora se acepta, de manera universal, que dicho diseño es un error de gran
magnitud.
23
• Normalización del Modelo OSI:
El momento correcto para establecer una norma es sumamente critico para que tenga éxito. David Clark,
del MIT, tiene una teoría sobre el establecimiento de normas, que él llama el Apocalipsis de los dos
elefantes, la cual se ilustra en el dibujo 1−10.
En este dibujo se muestra la tremenda actividad que provoca un nuevo tema. Cuando se descubre un tema,
empieza a existir una intensa actividad de investigación manifestada por discusiones, artículos y reuniones.
Después de un tiempo de mantenerse la actividad, las compañías descubren el tema y lo impactan con una
inversión de billones de dólares.
Es muy importante que las normas se escriban durante la parte intermedia, localizada entre los dos
elefantes; porque, si éstas se escribieran antes de concluir la investigación, el tema podría estar pobremente
comprendido, llegando a diseñar normas malas. Por otra parte, si las normas se escribieran demasiado
tarde, muchas compañías habrían tenido la oportunidad de realizar grandes inversiones, en tan
diversificadas maneras de hacer las cosas que preferirán ignorar las normas. Si el intervalo localizado
entre los dos elefantes es muy pequeño (dado que cada parte interesada tiene prisa en el proceso), es
factible que la gente que esté desarrollando las normas se sienta completamente desbordada.
Algunos especialistas en este campo creen que esto es exactamente lo que sucedió con el modelo OSI.
Muchas de las discusiones que se efectuaron sobre el modelo de siete capas, dan la impresión de que el
número y contenido de las capas, que eventualmente se escogieron, fue la única alternativa, o al menos la
mas obvia. En los siguientes párrafos, se presentan algunos argumentos que disienten de este punto de
vista.
Hubiera sido perfecto que las siete capas tuvieran, a grandes rasgos, el mismo tamaño y fueran igualmente
importantes, lo cual esta lejos de ser cierto. Por ejemplo, la capa de sesión tiene muy poco uso en muchas
aplicaciones y la capa de presentación esta casi siempre vacía. En efecto, la propuesta británica que se le
hizo a la ISO solo consideraba 5 capas, y no las 7 establecidas. Además, a diferencia de las capas de sesión
y presentación, las capas de enlace y de red están saturadas, que el trabajo consiguiente que tienen que
realizar ha obligado a dividirlas en múltiples subcapas, cada una con diferentes funciones.
El modelo, junto con las definiciones de servicio y protocolo asociados, tiene una extraordinaria
complejidad. Cuando se apilan las normas impresas, ocupan una fracción significativa de un metro de
papel. También son difíciles de realizar e ineficientes en su aspecto operativo. Un problema se deriva de
algunas funciones, hecho que por ejemplo, el direccionamiento, el control de flujo y de errores, reaparecen
una y otra vez en cada una de las capas. Saltzer y sus colaboradores (1984) han señalado, por ejemplo, que
para que el control de errores sea efectivo, debería realizarse en la capa mas alta, por lo cual la repetición
constante en cada una de las capas inferiores es innecesaria e ineficiente.
Otro punto de interés, es que la inclusión de ciertas características en capas particulares no siempre es
obvia. Durante gran parte del desarrollo de la norma de gestión virtual del terminal virtual se situó ésta
capa de presentación (ahora se considera en la capa de aplicación). Se cambio la capa de aplicación
porque el comité tuvo problemas con la decisión sobre los usos de la capa de presentación. La seguridad y
criptografía de los datos fueron aspectos tan controvertidos, que nadie se puso de acuerdo en que capa
deberían ir, así que se dejaron de lado. La administración de redes fue otro aspecto que se omitió, también
en el modelo, por razones parecidas.
Otra de las criticas a la norma original, es que se ignoraron, por completo, los servicios y protocolos sin
conexión, aun cuando era bien sabido que es la forma en que trabajan la mayor parte de las redes de área
local. Subsiguientes añadidos se ocuparon de estos puntos (los cuales se conocen, en el mundo del
software, como corrección de errores).
24
Quizás la critica más seria es la de que el modelo esta totalmente dominado por una mentalidad enfocada a
las comunicaciones. En muy pocas partes se menciona la relación que guarda la informática con las
comunicaciones, y algunas de las elecciones que se tomaron son completamente inapropiadas con respecto
al modo en que trabajan los ordenadores y el software. Por ejemplo, consideres el conjunto de primitivas
estudiadas anteriormente. En particular, piensen cuidadosamente en las primitivas y como podría uno
utilizarlas en el lenguaje de programación.
La primitiva CONNECT, request es sencilla, pues uno podría imaginarse un procedimiento de biblioteca
llamado conexión que los programas pudieran llamar con objeto de establece una conexión. Ahora
pensemos en la primitiva CONNECT, indication. El proceso de destino tiene que ser notificado una vez que
ha llegado el mensaje. Esto equivale a una interrupción, la cual resulta difícilmente apropiada para
programas escritos en lenguajes de alto nivel moderno.
Si el programa estuviese esperando un intento de conexión, podría llamar un procedimiento de biblioteca
llamado recibir y bloquearse a sí mismo, pero si así fuera ¿por qué razón no iba a ser recibirla primitiva del
indicación? Recibir esta claramente orientado hacia la manera en que trabaja un ordenador, en tato que el
concepto indicación esta claramente orientado a la forma en que trabajan los teléfonos. Los ordenadores
son diferentes a los teléfonos, no tienen un timbre que suene. En pocas palabras, el modelo semántico de
un sistema manejado por interrupción es una idea conceptual muy pobre y completamente opuesta a las
ideas modernas de programación estructurada.
Trabajo Sobre Redes de Ordenadores
1
25
Dibujo 1−6 Arquitectura de la red basada en el modelo OSI
Usuarios
del Bloque
de Transporte
Bloque
de
Transmisión
Bloque de Transporte
Dibujo 1−5 Capas, Protocolos e Interfases
Dibujo 1−7 Ejemplo de Flujo de información que soporta la comunicación virtual en la capa 7
26
Dibujo 1−8 Relación entre capas en una interfase
A Conexión
Sin Conexión
Dibujo 1−9
Dibujo 1−10: El Apocalipsis de los dos Elefantes.
27
Descargar