Protocolos y modelo OSI (Open Systems Interconnection)

Capa enlace de datos. Comunicación Física. HDLC (High-level Data Link Control). LAN (Local Area Network). WAN (Wide Area Network). Niveles de Implantación Comunicaciones

  • Enviado por: Carlos Y Armando
  • Idioma: castellano
  • País: España España
  • 40 páginas

publicidad
cursos destacados
Desarrollo Web en PHP desde formularios hasta bots
Desarrollo Web en PHP desde formularios hasta bots
Curso completo de PHP. Desde la introducción a completos bots que son capaces de rastrear otras páginas y todo en PHO.
Ver más información

Instalación de WordPress
Instalación de WordPress
En el siguiente curso aprenderemos a subir los archivos de Wordpress a nuestro hosting contratado, dar de alta una Base...
Ver más información


  • 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 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

Procesadores Ubicados en el Mismo

Ejemplo

0.1 metro

La Tarjeta del Circuito

Maquina de Flujo de Datos

1 metro

El Sistema

Multiprocesador

10 metros

El Cuarto

Red Local (LAN)

100 metros

El Edificio

Red Local (LAN)

1kilometro

Los Terrenos de la Universidad

Red de Gran Alcance (WAN)

10 kilómetros

La Ciudad

Red de Gran Alcance (WAN)

100 kilómetros

El país

Red de Gran Alcance (WAN)

1.000 kilómetros

El Continente

Interconexión de WAN

10.000 kilómetros

El Planeta

Interconexión de WAN

Cuadro 1-1

  • 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.

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.

  • 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, 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 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 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 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.

    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.

    • 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 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

    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:

    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.

    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 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.

    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.

    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

    Dispositivos y protocolos

    1

    Físico

    Se ocupa de la transmisión del flujo de bits a través del medio.

    Cables, tarjetas y repetidores

    RS-232, X.21.

    2

    Enlace

    Divide el flujo de bits en unidades con formato (tramas) intercambiando estas unidades mediante el empleo de protocolos.

    Puentes (bridges).

    HDLC y LLC.

    3

    Red

    Establece las comunicaciones y determina el camino que tomarán los datos en la red.

    Encaminador (router).

    IP, IPX

    4

    Transporte

    La función de este nivel es asegurar que el receptor reciba exactamente la misma información que ha querido enviar el emisor, y a veces asegura al emisor que el receptor ha recibido la información que le ha sido. Envía de nuevo lo que no haya llegado correctamente.

    Pasarela (gateway).

    UDP, TCP, SPX

    5

    Sesión

    Establece la comunicación entre las aplicaciones, la mantiene y la finaliza en el momento adecuado. Proporciona los pasos necesarios para entrar en un sistema utilizando otro. Permite a un mismo usuario,realizar y mantener diferentes conexiones a la vez (sesiones).

    Pasarela.

    6

    Presentación

    Conversión entre distintas representaciones de datos y entre terminales y organizaciones de sistemas de ficheros con características diferentes.

    Pasarela.

    Compresión, encriptado, VT100.

    7

    Aplicación

    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 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).

    X.400

    • 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

    Paquete

    Receptor

    Aplicación

    C7 Datos

    Aplicación

    Presentación

    C6 C7 Datos

    Presentación

    Sesión

    C5 C6 C7 Datos

    Sesión

    Transporte

    C4 C5 C6 C7 Datos

    Transporte

    Red

    C3 C4 C5 C6 C7 Datos

    Red

    Enlace

    C2 C3 C4 C5 C6 C7 Datos

    Enlace

    Físico

    C2 C3 C4 C5 C6 C7 Datos

    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).

    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 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

    Ejemplo

    Flujo de mensaje fiable

    Secuencia de paginas

    Flujo de octetos fiables

    Conexión remota

    Conexión no fiable

    Voz digitalizada

    Datagrama no fiable

    Correo electrónico basura

    Datagrama con asentimiento

    Correo certificado

    Pregunta/repuesta

    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

    Significado

    Solicitud

    Una entidad desea que el servicio realice un trabajo

    Indicación

    Una entidad es informada acerca de un evento

    Respuesta

    Una entidad desea responder a un evento

    Confirmación

    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.

  • 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.

    • 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).

    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

    Protocolos y modelo {OSI}

    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

    Protocolos y modelo {OSI}

    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.