Capítulo 2: Conexión de sistemas en red
El modelo TCP/IP
El modelo TCP/IP es un estándar abierto con un planteamiento muy parecido al modelo de referencia OSI. A pesar de todo, el modelo TCP/IP es el que se utiliza de forma generalizada en la actualidad.
En este caso, también encontramos una estructura de capas. Sin embargo, a diferencia del modelo OSI, ahora sólo encontramos cuatro:
-
Aplicación: Implementa los diferentes protocolos de servicio incluidos en las capas de Aplicación (7), Presentación (6) y Sesión (5) incorporados en el modelo OSI. Así, esta capa incluye la comunicación con el software de aplicación, la traducción y la codificación de los datos, y el diálogo entre sistemas.
Algunos de los protocolos de aplicación que se implementan en esta capa son: Telnet, HTTP, FTP, SMTP, TFTP, DNS y DHCP, entre otros. Hablaremos de ellos más abajo.
-
Transporte: Como en el modelo OSI, esta capa administra la conexión lógica entre los equipos que se comunican y el envío de datos entre ellos.
En esta capa disponemos de dos protocolos distintos: TCP y UDP. También en este caso, hablaremos de ellos más abajo.
-
Internet: Como recordarás, en el modelo OSI, la capa de red identificaba el origen y el destino de la transmisión y, cuando se encontraban en redes diferentes, los enrutadores (routers) que los unían elegían la mejor ruta posible para entregar cada paquete en su destino. En el caso del modelo TCP/IP, esta tarea corresponde a la capa Internet. Por lo tanto, los routers utilizan esta capa para realizar su trabajo (direccionamiento lógico, determinación de la ruta y reenvío).
En esta capa encontramos cinco protocolos, IP, ARP, ICMP, IGMP y RARP, de los que hablaremos más abajo.
-
Acceso a la red: Esta capa se corresponde con las capas Enlace de datos y Física del modelo OSI. Contiene las especificaciones relativas a la transferencia de los paquetes recibidos de la capa Internet a través de la red física. El destinatario puede ser otro equipo de la misma red o un router que se encargue de enviar los paquetes a una red distinta.
Por lo tanto, a diferencia de la capa Internet, que tiene alcance sobre toda la red, el de la capa de Acceso a la red sólo llega hasta el primer router.
En esta capa, se resuelven aspectos como:
-
Enrutamiento de datos a través de la conexión
-
Sincronización de la transmisión
-
Formato de los datos
-
Conversión de señales (analógica/digital)
-
Detección de errores
-
etc.
Como se puede deducir, en esta capa encontramos un gran número de protocolos, como los protocolos Ethernet, cuando nos encontramos en una red local, o los protocolos PPP (Point-to-Point Protocol) y Frame Relay, cuando nos encontramos en una red WAN. De cualquier modo, son el sistema operativo y los controladores de hardware los responsables de su manejo.
-
Correspondencia entre el modelo OSI y el modelo TCP/IP
A pesar de que el modelo OSI dispone de siete capas diferentes y el modelo TCP/IP sólo tiene cuatro, podemos establecer un paralelismo entre ambos modelos teniendo en cuenta su funcionalidad.
Esta correspondencia puede verse en la siguiente imagen:
Protocolos de la capa de aplicación
Como decíamos más arriba, la capa de Aplicación tiene asociados diferentes protocolos. Entre los más frecuentes, tenemos los siguientes:
-
Telnet: Es un protocolo que permite emular una terminal de texto de un equipo remoto. El equipo accedido (servidor) debe ejecutar un servicio, también llamado Telnet, que atiende las solicitudes de los equipos remotos (clientes).
En el sistema operativo cliente, también necesitaremos un programa que establezca la conexión y nos muestre el contenido de la terminal de texto del servidor.
El sistema operativo del servidor procesará las órdenes recibidas en la terminal remota como si procedieran de los dispositivos de entrada locales.
-
HTTP (Hypertext Transfer Protocol, en español, Protocolo de Transferencia de Hipertexto): Facilita la transferencia de páginas web, con todo su contenido relacionado, entre un equipo servidor y un equipo cliente.
El programa que utiliza este protocolo en el lado servidor suele denominarse servidor web o servidor http. De igual modo, el programa que realiza las solicitudes y recibe los contenidos en el lado cliente suele llamarse cliente web o cliente http. Es común que la tarea de cliente web la realice un navegador de internet.
-
FTP (File Transfer Protocol, en español, Protocolo de Transferencia de Archivos): Es un protocolo para la transferencia de archivos entre dos equipos. De nuevo, necesitamos un software específico que actúe como servidor y como cliente en ambos lados de la conexión.
Con el programa cliente, el usuario tendrá acceso al árbol de directorios (o a una parte de éste) y descargar o subir archivos en él.
-
SMTP (Simple Mail Transfer Protocol, en español, Protocolo Para Transferencia Simple de Correo): Permite enviar correos electrónicos, desde un programa que actúa como cliente smtp al servidor smtp de la entidad que provee el correo al usuario remitente.
Dicho servidor enviará el mensaje al servidor smtp que provee el correo al usuario destinatario, usando también el protocolo SMTP.
Finalmente, éste último envía el mensaje al destinatario usando los protocolos POP3 o IMAP.
-
TFTP (Trivial File Transfer Protocol, en español, Protocolo de Transferencia de Archivos Trivial): Es una versión simplificada del protodolo FTP que sólo permite enviar y recibir archivos. Es muy rápido y fácil de implementar, pero también inseguro, porque no permite autenticación.
-
DNS (Domain Name System, en español, Sistema de Nombres de Dominio): Se trata de un protocolo que permite atender solicitudes para un servidor dns. Las funciones de este tipo de servidores consisten en traducir un nombre de dominio en su dirección IP correspondiente. Así se evita que el usuario deba aprender las direcciones IP de los servidores que visita.
De este modo, cada vez que escribimos la dirección de una página web en un navegador, éste actúa como cliente de un servidor dns que la traduce en su dirección IP correspondiente. Después, el navegador establecerá una sesión HTTP con el servidor de dicha dirección IP.
-
DHCP (Dynamic Host Configuration Protocol, en español, Protocolo de Configuración Dinámica de Host): Mediante este protocolo, un equipo de la red puede obtener su dirección IP, la dirección de un servidor dns, una máscara de subred, etc., de forma automática. El equipo que lo proporciona recibe el nombre de servidor dhcp.
Protocolos de la capa de transporte
Como hemos dicho más arriba, la capa de transporte tiene asociados dos protocolos:
-
TCP (Transmission Control Protocol, en español, Protocolo de Control de Transmisión): Es un protocolo confiable, orientado a la conexión, que utiliza en método de acuse de recibo independiente de los niveles inferiores.
Un datagrama es un fragmento de un mensaje con la información necesaria para encaminarlo a su destino.
Esto significa que los diferentes fragmentos del mismo mensaje pueden seguir diferentes caminos y llegar desordenados o, incluso, no llegar
De este modo, los routers que intervienen en la comunicación, y que sólo actúan a nivel de red, únicamente ven un datagrama y no tienen responsabilidad sobre su contenido. Será TCP el encargado de verificarlos y ordenarlos.
-
UDP (User Datagram Protocol, en español, Protocolo de datagrama de usuario): Se trata de un protocolo muy simple, y no confiable, que no incluye detección de errores. Es decir, no está orientado a la conexión.
La cabecera UDP sólo contiene la longitud del paquete y un chequeo de sumas. Esto lo hace más ligero y rápido, y lo convierte en la solución ideal para el transporte de información pesada, como vídeo o audio, siempre que la red sea fiable.
En estos casos, las comprobaciones de confiabilidad se atiende en la capa de aplicación.
Concepto de puerto
Tanto TCP como UDP utilizan el concepto de número de puerto para realizar su trabajo.
Un equipo que se encuentra unido a una red, puede estar ejecutando a la vez varias aplicaciones que envíen y/o reciban datos a través de esta. La forma de separar el tráfico de cada aplicación consiste en que éstas usen puertos diferentes. Tanto TCP como UDP añaden un número de puerto en el encabezado del tráfico que generan.
El puerto concreto que se utilice dependerá del protocolo de aplicación utilizado en la capa de aplicación. De hecho, los más comunes disponen de un puerto predeterminado en el intervalo 1 hasta 1024. De este modo, los programas que usen dichos protocolos escucharán sus puertos correspondientes TCP o UDP. Analizando la cabecera, sabrán a quién hacer llegar los paquetes que reciban.
En la siguiente tabla disponemos de una lista con los números de puerto asignados a los protocolos de aplicación más usados:
En el equipo que inicia la comunicación también se asigna un número de puerto aleatorio a cada sesión (siempre mayor que 1024) para recibir el tráfico de retorno.
El conjunto formado por la dirección IP del equipo, el protocolo utilizado (TCP o UDP) y el número de puerto recibe el nombre de socket.
El concepto de socket permite que una aplicación pueda comunicarse con diferentes equipos de la red de forma simultánea. El motivo es que el socket usado con cada uno será diferente.
Protocolos de la capa Internet
Como hemos dicho más arriba, en esta capa encontramos los siguientes cinco protocolos: IP, ARP, ICMP, IGMP y RARP. De ellos hablaremos a continuación:
-
IP (Internet Protocol, en español, Protocolo de Internet): Se encarga del transporte de datagramas, pero no garantiza su entrega.
-
ARP (Address Resolution Protocol, en español, Protocolo de Resolución de Dirección): Lo utilizan los enrutadores (routers) para obtener información sobre las diferentes redes que se encuentran a su alcance.
-
ICMP (Internet Control Message Protocol, en español, Protocolo de mensajes de control de Internet): Facilita la administración de los mensajes de error.
-
IGMP (Internet Group Management Protocol, en español, Protocolo de Gestión de Grupo de Internet«): Permite que diferentes equipos formen parte de un grupo de multidifución. Los routers analizan periódicamente si se mantiene la pertenencia.
-
RARP (Reverse Address Resolution Protocol, en español, Protocolo de Resolución de Direcciones Inverso): Facilita la resolución de la dirección IP de un dispositivo a partir de su dirección hardware (por ejemplo, su dirección Ethernet).