Boletín electrónico Nº 59 - Mayo, 2009

 
 
La necesidad de un protocolo
 
Email this Article | Print this page | Home
 

Cuando queremos establecer una comunicación, las personas utilizan un medio físico ya determinado. Pese a esto, debemos “definir” el idioma que utilizaremos, el volumen de voz en el cual nos sentimos cómodos, de acuerdo al ruido ambiente, las capacidades auditivas de ambos, la distancia, etc. Inconcientemente “probamos” el canal con palabras que no son necesarias para el mensaje que queremos transmitir. Verificamos el nivel de sofisticación de las palabras que utilizamos, verificando que es el correcto para la comunicación. Incluso nos aseguramos del nivel de atención de la otra persona, y el momento exacto cuando emitir el mensaje principal. Todo esto lo hacemos con nuestros “hola”, comentarios sobre el clima, etc.

Veremos que todo esto tiene su equivalente en la comunicación entre computadores, y los protocolos son esenciales para lograr ese objetivo.

Imaginemos, por ejemplo, la transferencia de un archivo entre dos computadoras. Naturalmente debemos contar con el medio físico que puede ser una conexión local directa, o una conexión a través de una o varias redes.

Antes que nada el sistema emisor debe activar el medio de comunicación directamente (conexión local) o avisar a la red cuál es el destino de esa comunicación. Luego se debe asegurar que el sistema destino esté preparado para recibir los datos. Este paso involucra posibles validaciones de identidad, disponibilidad de medios físicos de almacenaje, aceptación de los datos, etc. Finalmente, si el formato de los datos fuese incompatible uno de los dos sistemas debería realizar una conversión de datos.

Toda esta tarea representa un alto grado de cooperación entre los sistemas. Como se ve, no es una tarea sencilla, y es lógico pensar en dividirlas en subtareas, cada una con una misión específica. Los protocolos realizan una o varias de estas subtareas. De este modo, se puede incluso asignar algunas subtareas a un protocolo, y otras a otro, aprovechando las mejores características de cada uno. Es una práctica común describir un protocolo como una serie de capas apiladas en forma vertical. A cada capa le corresponde una función específica o subtarea.

Cada capa delega a la inferior tareas más simples y específicas, por el contrario, cada capa realiza servicios para la capa superior. Este esquema tiene sentido si los cambios en cada capa tienen escaso o nulo impacto en su inmediata superior e inferior.

Por supuesto, en ambos extremos se debe tener el mismo esquema de capas, y cada nivel tiene su equivalente en el otro extremo. Esto se puede ver como que las dos capas con igual nivel dialogan horizontalmente entre ellas, ambas confiando e ignorando lo que sucede abajo y arriba en la estructura de capas. Ese diálogo horizontal está formado por bloques de datos que obedecen a ciertas reglas y convenciones que integran lo que llamamos “protocolo”.

Estas reglas y convenciones que conforman un protocolo deben estar claramente definidas en cuanto a los siguientes aspectos:

  • De sintaxis, que definen el formato de esos bloques de datos,

  • De semántica, que agregan a los bloques de datos información de control y manejo de errores

  • Temporales, que controlan la secuencia de los bloques, y la velocidad a la que se transmiten.

CARACTERÍSTICAS DE UN PROTOCOLO

Los protocolos tienen normalmente los siguientes objetivos:

1. Optimización: Se refiere a la habilidad de seleccionar la mejor ruta entre origen y destino. Esta selección se basa en ciertas características o “métricas” que se incluyen en un cálculo según se desee optimizar retrazo, número de saltos, etc.

2. Simplicidad: Se desea que un protocolo sea lo más simple posible. Esto afecta las características del software o hardware que debe implementarlo, y la demora en los procesos involucrados. Esto es particularmente importante cuando algún nodo de la ruta presenta limitaciones físicas.

3. Robustez: La robustez de un protocolo está relacionada con el funcionamiento ante situaciones inusuales o imprevistas (fallas de hardware, demoras excesivas, etc.)

4. Rapidez de convergencia: La convergencia de una red es la consistencia de todos los ruteadores en cuanto a rutas óptimas. Cuando un ruteador sale de servicio o vuelve a funcionar, se genera un intercambio de información en toda la red que refleja esa nueva situación. Con esa información se actualizan tablas de ruteo, cálculos de retrasos, etc. Es deseable que este proceso se realice rápidamente a fin de evitar cuellos de botella o ruteo en lazos interminables.

5. Flexibilidad: Los protocolos deben ser flexibles, a fin de poder adaptarse a distintas circunstancias de la red.

LA ARQUITECTURA DE PROTOCOLOS OSI

Para comprender más el modelo de capas, y dar un ejemplo que la mayoría de los protocolos actuales toman como referencia (pero rara vez cumplen estrictamente), analizaremos brevemente el modelo desarrollado por la International Organization fo Standardization (ISO). Este modelo se llama Open Systems Interconnection (OSI), y está dividido en diferentes capas pudiendo cada una, o varias juntas, dar origen a un protocolo estandarizado. Es interesante ver los principios que fundamentan la división de un sistema en capas, a saber:

1. Una capa debería crearse cuando se requiere de un diferente nivel de abstracción.

2. Cada capa debería realizar una función bien determinada.

3. Al definir cada capa, debería tenerse en cuenta la existencia de protocolos internacionales ya existentes.

4. El fin de una capa y el comienzo de otra deberían elegirse de modo que se minimice la información entre capas.

5. El número de capas debería ser grande, de modo de no mezclar funciones bien diferenciadas en la misma capa, pero no tan grande como para volver inmanejable al arquitectura de protocolos que la satisfaga.

El modelo OSI utiliza 7 capas, que son:

  • Aplicación: Es aquí donde se desarrollan las aplicaciones, manejo de usuarios, y definición de servicios disponibles al usuario (impresoras, servicios de mail, bases de datos, etc.). En esta capa se puede realizar la división de una tarea entre diferentes computadoras locales o remotas.

  • Presentación: Aísla a las aplicaciones de las diferencias que puede haber entre los formatos de datos. Agrupa en forma de librerías rutinas que se pueden requerir con cierta frecuencia. Cuando la aplicación lo requiere, en esta capa se realizan la compresión de datos y el cifrado de datos para obtener privacidad. En esta capa también se manejan la elección de distintos modos gráficos, set de caracteres, etc, ya sea porque son opcionales o porque los dos sistemas extremos presentan incompatibilidades.

  • Sesión: Establece, gerencia y termina las conexiones (sesiones) entre las aplicaciones. Controla y se recupera de distintos errores que le pueda reportar la capa de Transporte. Asegura que un grupo de datos se presente indivisible a la capa de sesión del otro extremo. Por ejemplo: una serie consecutiva de comandos a un servicio remoto, que deben presentarse indivisiblemente para evitar que el sistema remoto quede en un estado inconsistente. En esta capa se realiza la identificación y autenticación de los usuarios. Cuando la capa de Transporte entrega los datos en forma desordenada, delega a la capa de sesión la tarea de presentarlos ordenados a la capa superior.

  • Transporte: Provee una transferencia de datos confiable y transparente entre los dos puntos finales. Para esto administra el flujo (velocidad entre los dos sistemas extremos) y orden de los datos y el manejo de los errores entre los extremos finales. Además aísla a la capa de sesión de posibles cambios de hardware. Ella puede establecer más de una conexión de red si la velocidad de transporte no es suficiente, o mezclar (multiplexar) diferentes mensajes en la misma conexión de red si éstas son caras. Esta capa se implementa normalmente como una pieza de software en el sistema o computador.

  • Red: Provee a las capas superiores de independencia de las conmutaciones, transformaciones y derivaciones a otras subredes que sufrirán los datos para llegar al otro extremo, ya sea que se conecten en la misma red, o deban pasar por diferentes redes. Para esto administra el flujo de datos y el manejo de los errores entre las partes o subredes parciales. Es aquí donde se produce la división de los paquetes, y el ruteo de los mismos, con objeto de evitar congestión, evitar pasar por nodos fuera de servicio, etc. Esta capa se implementa normalmente como un driver en el sistema o computador.

  • Enlace: Tiene la misión de producir transmisión de datos confiables sobre el medio físico. En el sistema transmisor, divide los paquetes en unidades llamadas frames. En el sistema receptor, recibe los bits individuales del medio físico y con un número determinado de ellos arma las frames. Sobre las frames realiza sincronización (orden), control de errores y de flujo de datos. También realiza la confirmación de recepción de las frames (acknogledgement o “ack”) de modo que la capa de enlace del extremo remoto sepa que los datos han llegado correctamente o en caso contrario deba retransmitirlos. Si una frame se transmite duplicada (porque un ack no llega al otro extremo) se descarta en esta capa. También es misión de la capa de enlace que se eviten pérdidas de datos porque el emisor transmite más rápido de lo que la capa de enlace del receptor puede procesar.

  • Física: Esta capa entiende la transmisión y recepción de bits individuales. Tiene en cuenta características eléctricas y mecánicas del medio utilizado. Por ejemplo, se debe definir en esta capa qué nivel de tensión representa un “1” y un “0” lógico, cuanto tiempo dura cada bit, si se pueden transmitir en ambo sentidos a la vez, como se establece y termina el envío de bits, cómo se sincronizan los sistemas, etc.

La figura I-1 muestra gráficamente el modelo OSI, donde se ha incluido un nodo intermedio para mostrar más claramente el paso de información a través de un elemento de red, o un puente entre dos redes diferentes. Notar que las líneas llenas simbolizan una conexión real, mientras que las punteadas simbolizan una conexión virtual entre capas equivalentes.

Figura I-1. El modelo OSI

 

Figura I-2. Relación entre el modelo OSI y otros protocolos.

 

La figura I-2 ejemplifica la relación entre el modelo OSI y algunos de los protocolos reales actuales o que han tenido relevancia en la historia de las comunicaciones en redes de paquetes.

Roberto Rossi
Universidad Blas Pascal
 

 

 

Información Adicional: La Universidad Blas Pascal, nodo del Centro de Excelencia para la Región Américas de la Unión Internacional de Telecomunicaciones ofrecerá el curso autoasistido de Servicios y protocolos de Internet del 7 de septiembre al 7 de diciembre de 2009 (3 meses). CITEL ofrece 15 becas del monto completo de la matrícula. Este artículo es parte del material del curso.

 

© Copyright 2009. Organización de los Estados Americanos.
Comisión Interamericana de Telecomunicaciones.
Todos los Derechos Reservados.
1889 F St., N.W., Washington, D.C. 20006 - USA
Tel. (202)458-3004 | Fax. (202) 458-6854 | [email protected] | http://citel.oas.org

Para cancelar la subscripción ir al siguiente link [email protected]
Términos de Uso y Privacidad