José Luis Villada Romero

Instalación y configuración del software de servidor web. IFCT0509


Скачать книгу

align="center">

      3.2. El protocolo TCP/IP

      TCP/IP es un conjunto de protocolos que siguen la especificación del modelo OSI y que se usan para establecer una comunicación de datos entre dispositivos conectados a través de una o varias redes.

Image

      Importante

      El modelo OSI es una descripción conceptual mientras que TCP/IP es una especificación de un conjunto de protocolos.

      En la década de los 70, la Agencia de Proyectos de Investigación Avanzada para la Defensa (DARPA), de los Estados Unidos, desarrolló ARPAnet (el embrión de lo que hoy se conoce como Internet).

      ARPAnet crecía a una velocidad de vértigo y los protocolos de comunicación que usaba comenzaron a volverse demasiado lentos y poco fiables. Además, no podían comunicar dos dispositivos que estaban conectados en redes de distintas características. ARPA decide investigar y desarrollar un conjunto de protocolos que resuelva estos inconvenientes, y es entonces cuando surge TCP/IP.

      Actualmente, IETF (Internet Engineering Task Force) es la responsable de TCP/IP. Se trata de la organización internacional encargada de la normalización y especificaciones de Internet.

      TCP/IP se divide en cuatro capas o niveles. Y aunque son muchos los protocolos que pertenecen a alguna de estas capas, son el protocolo TCP y el protocolo IP los más famosos y, por eso, los que dan nombre al conjunto.

image image

      Capa de aplicación

      En contraste con el modelo OSI, la capa de aplicación de TCP/IP es plenamente responsabilidad de la aplicación que usa la comunicación mediante este conjunto de protocolos. Cada aplicación implementaría su propio protocolo de aplicación y usaría según le convenga el conjunto de servicios que proporciona la capa de transporte. Esto implica mayor flexibilidad por parte de los desarrolladores sobre el software que realiza las comunicaciones. Ejemplos muy conocidos de protocolos de aplicación serían: HTTP, SMTP, POP, FTP, TELNET, etc.

      Capa de transporte

      Esta capa está compuesta de dos protocolos únicamente: TCP y UDP, pero su importancia es vital para las comunicaciones. Es la primera capa responsable de la comunicación extremo a extremo. El uso de estos protocolos puede ser simultáneo por parte de múltiples protocolos de aplicación.

      La capa de transporte proporciona dos servicios distintos para definir una comunicación. El servicio debe ser elegido en función del tipo de aplicación que esté desarrollando, así como los requisitos que dicho software establezca para las comunicaciones: un primer servicio, que permite establecer comunicaciones seguras y fiables; y otro, que permite rápidas transferencias con tolerancia a la pérdida de información.

      A continuación, se explican con más profundidad dos mecanismos.

      TCP

      TCP (Transmission Control Protocol) es el protocolo de transporte más usado por las aplicaciones. Se utiliza para proporcionar una comunicación libre de errores y fiable. Es un protocolo orientado a la conexión, lo que significa que la comunicación se lleva a cabo en tres fases: establecimiento de conexión, transmisión de datos y finalización de la conexión.

      La unidad de transmisión para este protocolo es la de paquete. La información a transmitir al destino es dividida en paquetes de un tamaño fijo. El protocolo marca cada paquete con un número de secuencia y lo envía después de haber establecido la conexión con el destino.

      Para establecer la conexión, el protocolo envía al destino un paquete de tipo SYN, el destino interpreta este paquete como intento de establecer la conexión y, acto seguido, si todo va bien, envía un paquete de tipo SYN ACK. Finalmente, el cliente envía un paquete ACK y, a continuación, los paquetes correspondientes al mensaje. A este tipo de mecanismo se lo conoce como negociación a tres pasos.

      La finalización de la conexión se produce en cuatro pasos. El cliente o el servidor pueden en cualquier momento solicitar la finalización. Para ello, el emisor envía un paquete de tipo FIN y el receptor confirma su llegada enviando un paquete de tipo ACK.

      Acto seguido, el que actuó como receptor lo hará como emisor enviando un paquete FIN y el que actúo como emisor devolverá un paquete ACK, completando la finalización de la conexión. Este mecanismo se conoce como negociación a cuatro pasos.

image

      UDP

      UDP es un protocolo no orientado a la conexión, lo que significa que no hace falta un diálogo entre el origen y el destino previo al envío del mensaje. A diferencia de TCP, se trata de un protocolo tolerante a fallos, sin control de flujo ni ordenamiento de las secuencias de bytes. Además, el coste computacional del procesamiento de un datagrama UDP es mucho menor que el de un datagrama TCP, por lo que está especializado en conexiones donde el retardo de los datagramas a través de la red es crítico. En la transmisión mediante UDP puede existir pérdida de datagramas en la red y debe ser la aplicación la encargada del control sobre esa pérdida de información. Ejemplos de aplicaciones que usan este protocolo son aquellas que deben recibir y/o enviar un flujo de información constante en el tiempo y donde una pequeña pérdida de información no altera el mensaje global que se transmite: aplicaciones de videostreaming o de VozIP.

image Image

      Actividades

      2. ¿Cómo se puede distinguir a qué aplicación debe entregar UDP el datagrama que acaba de llegar?

      3. ¿Tiene algún sentido hablar de conexión entre dos ordenadores que se comunican mediante UDP? Razone la respuesta.

      TCP y UDP se basan en servicios que proporciona la propia capa de transporte y que son extremadamente importantes para las comunicaciones. Toda comunicación, sea del tipo que sea a nivel de transporte, usa los dos conceptos que se explican a continuación y sirven como mecanismos conceptuales para el desarrollo de aplicaciones que utilizan conexiones.

      Puertos

      Para conseguir establecer la comunicación entre aplicaciones es necesario conocer, no solo el dispositivo al que hay que conectarse, sino además qué programa, de todos los que en ese momento están en ejecución, puede responder a esa comunicación. Esto se consigue con el concepto de puerto, y es gestionado a nivel de la capa de transporte de TCP/IP. En concreto, cada aplicación que puede recibir comunicación de la red se asigna a un puerto, de forma que, si llegan datos a ese puerto, la capa de transporte devolverá esos datos a la aplicación correspondiente.

      Los puertos van desde el 0 al 65536. Los puertos dentro del rango 1 al 1024 son puertos que ya están asignados a aplicaciones que usan protocolos de aplicación importantes y no pueden ser reasignados.

TCP20FTP (File Transfer Protocol)
TCP21FTP (File Transfer Protocol) para control
TCP25SMTP (Simple Transfer Protocol)
TCP53DNS (Domain Name System)
UDP53DNS (Domain Name System)
UDP67BOOTP (BootStrap Protocol, Server) y por DHCP
UDP68BOOTP (BootStrap Protocol, Client) y por DHCP
UDP69TFTP (Trivial File Transfer Protocol)
TCP80HTTP (HyperText Transfer Protocol)
TCP88Kerberos
TCP110POP3