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