miércoles, 6 de junio de 2012

Visualizando el Modelo OSI

Uno de los primeros temas teóricos que suelen verse al principio de los cursos de redes es el modelo con el cual se han estructurado las transmisiones en una red de datos, y que describe las diferentes capas que componen la red y la función que realizan, este modelo es conocido como el Modelo OSI.

Figura 1: Modelo OSI.
Si bien en mis cursos de redes la importancia de dicho modelo siempre fue mencionada y todos los libros de redes que leí siempre tomaban su tiempo en describir su estructura y razones de ser, temo decir que fue hasta hace poco que pude comprender realmente su funcionamiento y mas importante aun, la razón de ser de varias de las capas en si.

Esto podría parecer extraño (mas en un blog que durante meses no hablo de otra cosa), sin embargo si solo se ve tal como esta en los libros un par de detalles del modelo OSI lucen en extremo redundantes.

Tener dos capas (o niveles en la Figura 1) dedicadas al direccionamiento suena redundante y la capa de Transporte parece no estar bien definida, después de todo esas tres capas parecen quedar en lo que hace el protocolo TCP/IP y eso sin mencionar las capas de Sesión, Presentación y Aplicación que no parecen tener protocolo que las cubra, ¿O no?

Pues no, esas valerosas afirmaciones sobre el protocolo TCP/IP y las capas superiores del modelo se basan en suposiciones *erradas* de como funciona una red, ciertamente tienen cierta lógica tras de si y algunas nomenclaturas parecen darles valides esto sin mencionar que los componentes de una red se diseñaron para ser transparentes al usuario, es obvio que no son visibles para el usuario final.

Sin embargo existen herramientas que nos permiten examinar a mas detalle lo que ocurre dentro de una red, de modo que podamos ver no solo los datos que se deseaban emitir, si no también los datos y parámetros usados y generados por cada etapa de la transmisión, es al examinar estos que las razones de la estructura del modelo OSI quedan claras.Una de estas herramientas es el analizador de paquetes de red.

Una muestra de esto puede verse en la figura 2, en la cual se capturo un paquete de una transferencia HTTP y las diferentes secciones mostradas en Wireshark se conectaron con su capa correspondiente del modelo OSI.

Figura 2: Correspondencia con el Modelo OSI.
De este modo es mas sencillo visualizar la función de cada capa,y varias de las "valerosas afirmaciones" empiezan a lucir menos como el resultado de aplicar lógica y mas como el resultado de sobre simplificaciones de como funciona una red.

Como ultimo, y para dejar en claro los detalles que no muestra del todo, se enlistara a que capa corresponde cada uno de los protocolos mostrados en la Figura 2 y una breve explicara en que forma su función corresponde a la capa que se indica.

Antes de hacer esto hay que indicar que si bien Wireshark si muestra algo que podría corresponderse con la capa física, esto no es del todo correcto, puesto que la capa física no se indica por las tramas emitidas, si no por frecuencias y voltajes eléctricos y es mas fácil de visualizar con un osciloscopio

  • Ethernet - Capa de enlace de datos: La función de Ethernet es proporcionar los mecanismos para el direccionamiento *físico* manejando a nivel tarjeta de red a donde deben de enviarse los paquetes.
  • Internet Protocol - Capa de red: Maneja como se direcionan los paquetes a nivel software, permitiendo cambiar el hardware sin modificar el sistema en si.
  • Transfer Control Protocol - Capa de Transporte: Permite las transferencias orientadas a conexión y la fiabilidad del sistema.
  • Capa de aplicación - HTTP: En esta capa están los protocolos que ya cumplen una función y envían datos que son usados o solicitados por aplicaciones.