lunes, 1 de diciembre de 2014

Unidad 1 Introducción: Modelo de Referencia TCP/IP

El modelo de referencia TCP/IP


En 1969 la agencia ARPA (Advanced Research Projects Agency) del Departamento de Defensa (DoD, Department of Defense) de los Estados Unidos inició un proyecto de interconexión de ordenadores mediante redes telefónicas. Al ser un proyecto desarrollado por militares en plena guerra fría un principio básico de diseño era que la red debía poder resistir la destrucción de parte de su infraestructura (por ejemplo a causa de un ataque nuclear), de forma que dos nodos cualesquiera pudieran seguir comunicados siempre que hubiera alguna ruta que los uniera. Esto se consiguió en 1972 creando una red de conmutación de paquetes denominada ARPAnet, la primera de este tipo que operó en el mundo. La conmutación de paquetes unida al uso de topologías malladas mediante múltiples líneas punto a punto dio como resultado una red altamente fiable y robusta.

La ARPAnet fue creciendo paulatinamente, y pronto se hicieron experimentos utilizando otros medios de transmisión de datos, en particular enlaces por radio y vía satélite; los protocolos existentes tuvieron problemas para interoperar con estas redes, por lo que se diseñó un nuevo conjunto o pila de protocolos, y con ellos una arquitectura. Este nuevo conjunto se denominó TCP/IP (Transmission Control Protocol/Internet Protocol) nombre que provenía de los dos protocolos más importantes que componían la pila; la nueva arquitectura se llamó sencillamente modelo TCP/IP, los nuevos protocolos fueron especificados por vez primera por Cerf y Kahn en un artículo publicado en 1974. A la nueva red, que se creó como consecuencia de la fusión de ARPAnet con las redes basadas en otras tecnologías de transmisión, se la denominó Internet.

La aproximación adoptada por los diseñadores del TCP/IP fue mucho más pragmática que la de los autores del modelo OSI. Mientras que en el caso de OSI se emplearon varios años en definir con sumo cuidado una arquitectura de capas donde la función y servicios de cada una estaban perfectamente definidas, y solo después se planteó desarrollar los protocolos para cada una de ellas, en el caso de TCP/IP la operación fue a la inversa; primero se especificaron los protocolos, y luego se definió el modelo como una simple descripción de los protocolos ya existentes. Por este motivo el modelo TCP/IP es mucho más simple que el OSI. También por este motivo el modelo OSI se utiliza a menudo para describir otras arquitecturas, como por ejemplo la TCP/IP, mientras que el modelo TCP/IP nunca suele emplearse para describir otras arquitecturas que no sean la suya propia.

En el modelo TCP/IP se pueden distinguir cuatro capas:

o   La capa host-red
o   La capa internet
o   La capa de transporte
o   La capa de aplicación

Pasemos a describirlas brevemente.

La capa host-red


Esta capa engloba realmente las funciones de la capa física y la capa de enlace del modelo OSI. El modelo TCP/IP no dice gran cosa respecto a ella, salvo que debe ser capaz de conectar el host a la red por medio de algún protocolo que permita enviar paquetes IP. Podríamos decir que para el modelo TCP/IP esta capa se comporta como una ‘caja negra’. Cuando surge una nueva tecnología de red (por ejemplo ATM) una de las primeras cosas que aparece es un estándar que especifica de qué forma se pueden enviar sobre ella paquetes IP; a partir de ahí la capa internet ya puede utilizar esa tecnología de manera transparente.

La capa internet


Esta capa es el ‘corazón’ de la red. Su papel equivale al desempeñado por la capa de red en el modelo OSI, es decir, se ocupa de encaminar los paquetes de la forma más conveniente para que lleguen a su destino, y de evitar que se produzcan situaciones de congestión en los nodos intermedios. Debido a los requisitos de robustez impuestos en el diseño, la capa internet da únicamente un servicio de conmutación de paquetes no orientado a conexión. Los paquetes pueden llegar desordenados a su destino, en cuyo caso es responsabilidad de las capas superiores en el nodo receptor la reordenación para que sean presentados al usuario de forma adecuada.

A diferencia de lo que ocurre en el modelo OSI, donde los protocolos para nada intervienen en la descripción del modelo, la capa internet define aquí un formato de paquete y un protocolo, llamado IP (Internet Protocol), que se considera el protocolo 'oficial' de la arquitectura.

La capa de transporte


Esta capa recibe el mismo nombre y desarrolla la misma función que la cuarta capa del modelo OSI, consistente en permitir la comunicación extremo a extremo (host a host) en la red. Aquí se definen dos protocolos: el TCP (Transmission Control Protocol) ofrece un servicio confiable, con lo que los paquetes (aquí llamados segmentos) llegan ordenados y sin errores. TCP se ocupa también del control de flujo extremo a extremo, para evitar que por ejemplo un host rápido sature a un receptor más lento. Ejemplos de protocolos de aplicación que utilizan TCP son el SMTP (Simple Mail Transfer Program, correo electrónico) y el FTP (File Transfer Protocol).

El otro protocolo de transporte es UDP (User Datagram Protocol) que da un servicio CLNS, no fiable. UDP no realiza control de errores ni de flujo. Una aplicación típica donde se utiliza UDP es la transmisión de voz y vídeo en tiempo real; aquí el retardo que introduciría el control de errores produciría más daño que beneficio: es preferible perder algún paquete que retransmitirlo fuera de tiempo. Otro ejemplo de aplicación que utiliza UDP es el NFS (Network File System); aquí el control de errores y de flujo se realiza en la capa de aplicación.

La capa de aplicación


Esta capa desarrolla las funciones de las capas de sesión, presentación y aplicación del modelo OSI. La experiencia ha demostrado que las capas de sesión y presentación son de poca utilidad, debido a su escaso contenido, por lo que la aproximación adoptada por el modelo TCP/IP parece más acertada.

La capa de aplicación contiene todos los protocolos de alto nivel que se utilizan para ofrecer servicios a los usuarios. Entre estos podemos mencionar tanto los ‘tradicionales’, que existen desde que se creó el TCP/IP: terminal virtual (TelNet), transferencia de ficheros (FTP), correo electrónico (SMTP) y servidor de nombres (DNS), como los más recientes, como el servicio de news (NNTP), el Web (HTTP), el Gopher, etc.

Comparación de los modelos OSI y TCP/IP


Como ya hemos comentado, la génesis del modelo OSI y TCP/IP fue muy diferente. En el caso de OSI primero fue el modelo y después los protocolos, mientras que en TCP/IP el orden fue inverso. Como consecuencia de esto el modelo OSI es más elegante y esta menos condicionado por ningún protocolo en particular, y se utiliza profusamente como modelo de referencia para explicar todo tipo de redes. El modelo OSI hace una distinción muy clara entre servicios, interfaces y protocolos, conceptos que a menudo se confunden en el modelo TCP/IP. Podríamos decir que la arquitectura (o el modelo) OSI es mas modular y académico que el TCP/IP.

Pero este mayor nivel de abstracción también tiene sus inconvenientes. Los diseñadores del modelo OSI no tenían experiencia práctica aplicando su modelo para desarrollar protocolos y olvidaron algunas funcionalidades importantes. Por ejemplo, las redes broadcast no fueron previstas inicialmente en la capa de enlace, por lo que se tuvo que insertar a la fuerza la subcapa MAC para incluirlas. Otro problema era que no se había previsto la interconexión de redes diferentes, cosa que fue como ya hemos visto el alma mater del modelo TCP/IP.

El modelo OSI tiene siete capas, mientras que el modelo TCP/IP sólo tiene cuatro. Aunque es desafortunada la fusión de la capa física y la de enlace en una oscura capa host-red, la fusión de las capas de sesión, presentación y aplicación en una sola en el modelo TCP/IP es claramente más lógica que la del modelo OSI.

Otra diferencia fundamental estriba en los servicios orientados a conexión (CONS) o no orientados a conexión (CLNS). El modelo OSI soporta ambos modos en la capa de red, pero sólo el modo CONS en la capa de transporte, que es la que percibe el usuario. El modelo TCP/IP en cambio soporta solo CLNS en la capa de red, pero ambos en la de transporte. Quizá un sutil detalle pueda explicar esta diferencia: el servicio CONS a nivel de red hace mucho mas sencillo facturar por tiempo de conexión, cosa a la que están muy acostumbradas las compañías telefónicas, que son las que han participado activamente en los comités técnicos de ISO que diseñaron el modelo OSI.

En la práctica los protocolos basados en las normas estándar OSI definidas por la ISO nunca llegaron a tener gran relevancia a nivel mundial, a pesar de que la mayoría de los grandes fabricantes de ordenadores y compañías telefónicas impulsaron su utilización ofreciendo productos y servicios basados en ellos. Las razones principales que motivaron este fenómeno las podemos resumir en los siguientes puntos:

  • Momento inadecuado: Para cuando estaban disponibles productos comerciales basados en protocolos OSI (finales de los ochenta) ya estaban ampliamente difundidos los productos basados en los protocolos TCP/IP; esto era especialmente cierto en entornos académicos (universidades y centros de investigación), que aunque económicamente no eran los mejor dotados sí tenían las mayores redes a nivel mundial.

  • Tecnología inapropiada: como ya hemos comentado la elección del modelo de siete capas para el protocolo OSI era algo forzada. Una de las razones que llevaron a elegir este número de capas era que coincidía con el del modelo SNA de IBM, que dominaba el mercado de la informática por aquel entonces; los autores del modelo OSI creían que aproximándose a SNA tenían mayores posibilidades de éxito. La complejidad de la arquitectura OSI (análogamente a la SNA) es considerable, y en muchos aspectos difícil de traducir en programas.

  • Implementaciones inadecuadas: en parte como consecuencia de su complejidad, los productos comerciales que aparecían basados en los protocolos OSI eran muy caros y poco fiables. Esto creó un círculo vicioso, ya que al ser caros los usuarios no los compraban, y al no usarse en condiciones reales los nuevos productos no se depuraban; además, las empresas fabricantes tenían que mantener un alto precio del software OSI para compensar los elevados costos de desarrollo y mantenimiento. Como contraste una de las primeras implementaciones de TCP/IP formaba parte del UNIX de Berkeley, era muy buena y además se distribuía gratuitamente. No es extraño pues que rápidamente se asociara OSI con baja calidad, complejidad y costos elevados.

  • Mala política: el desarrollo de OSI era patrocinado principalmente por la ISO, las PTTs europeas, la Comunidad Europea y los gobiernos de sus países miembros; las decisiones eran fruto de multitud de reuniones de los diversos comités y grupos de trabajo, y en ocasiones se tomaban en consideración no sólo aspectos técnicos sino también políticos, buscando el compromiso entre sus miembros. Por el contrario el desarrollo de TCP/IP seguía un curso mucho más improvisado e informal, cualquier persona podía (y puede) proponer un nuevo protocolo para su estandarización independientemente de su nacionalidad, prestigio o situación laboral. Haciendo una simplificación podríamos decir que OSI funcionaba como una 'democracia parlamentaria' (similar a un gobierno moderno), mientras que TCP/IP era más similar a una ONG, o a un movimiento alternativo; esto se reflejaba incluso en la indumentaria utilizada por uno y otro colectivo. No es de extrañar que en entornos académicos (de nuevo recordemos los más avanzados en redes globales) se viera con mucha más simpatía el mecanismo de estandarización del TCP/IP que el de OSI.

Aunque por la exposición anterior pueda parecer lo contrario, también existen aspectos negativos en los protocolos TCP/IP. Por un lado no se distinguen claramente los conceptos de servicio, interfaz y protocolo. En segundo lugar, el 'modelo' TCP/IP fue diseñado con posterioridad al protocolo, intentando imitar la labor de síntesis que se había hecho en el modelo OSI (podríamos decir que es como si se hubieran cortado los patrones después de cosido el traje). En tercero esta la 'caja negra' que hemos llamado capa host-red y que en el modelo TCP/IP es más bien una interfaz que una capa, ya que lo único que se especifica de ella es que ha de ser capaz de transmitir paquetes IP. Como consecuencia de esto el modelo TCP/IP no distingue entre la capa física y la de enlace, ya que ambas entran en la 'capa' host-red.

Por otro lado, aun cuando los protocolos IP y TCP fueron diseñados concienzudamente y bien implementados, algunos protocolos, especialmente del nivel de aplicación, fueron el resultado de una improvisación para resolver un problema concreto; como las implementaciones se distribuían después de forma gratuita se extendían con rapidez por lo que resultaban difíciles de sustituir; un ejemplo de esto lo tenemos en el protocolo TelNet que se utiliza ampliamente a pesar de no tener soporte para interfaz gráfica, ratón, etc.

Durante la década de los ochenta en Europa las redes académicas de la mayoría de los países (incluido España) utilizaban protocolos OSI por imposición de los respectivos gobiernos y de la Comunidad Europea; a la vista de los problemas ya mencionados de los productos OSI, y la extensión y buen resultado de los protocolos TCP/IP, se empezaron a ofrecer en 1991 servicios basados en TCP/IP, lo cual provocó su inmediata difusión por toda Europa y el estancamiento y casi desaparición de los servicios basados en protocolos OSI.

Probablemente el único protocolo OSI que sobrevivirá la batalla contra TCP/IP será el X.500, protocolo a de aplicación que implementa los servicios de directorio. Estos estaban cubiertos en TCP/IP por un servicio denominado Whois de funcionalidad mucho más pobre. Probablemente es el hecho de no haber una alternativa en TCP/IP lo que ha salvado a X.500, que actualmente funciona sobre TCP/IP.

Consecuentemente con los puntos fuertes y débiles de cada modelo y protocolo, nos basaremos en una versión modificada del modelo OSI, del cual hemos suprimido la capa de sesión y la de presentación. Sin embargo utilizaremos este modelo para describir fundamentalmente protocolos TCP/IP, si bien también hablaremos de otros más modernos y que en muchos casos se utilizan como medio de transporte para TCP/IP. En la tabla siguiente hacemos un resumen del modelo y los protocolos más comunes de cada capa.


Capa
Protocolo
Aplicación
TCP/IP (DNS, SMTP, SNMP, NNTP, HTTP)
Transporte
TCP/IP (TCP, UDP) ATM (AAL1, AAL2, AAL3/4, AAL5)
Red
TCP/IP (IP, ICMP, ARP, RARP, OSPF, BGP, IPv6), ATM (Q2931)
Enlace
ISO( HDLC), TCP/IP (SLIP, PPP), ATM, LANs
Física
N-ISDN, B-ISDN (ATM), GSM, SONET/SDH, LANs
Cable coaxial, cable UTP, fibra óptica, microondas, radioenlaces, satélite


Ejemplos de protocolos en cada uno de los niveles del modelo de red OSI-TCP/IP

No hay comentarios:

Publicar un comentario