PROTOCOLO TCP/IP


 

 

TCP/IP es un conjunto de protocolos diseñado con una arquitectura en capas. Las capas permiten a los diseñadores del protocolo dividir en módulos las tareas y servicios que realizará el mismo. El diseño también especifica la manera en que un módulo interactúa con otros. La arquitectura en capas de los protocolos está diseñada como una pila en la que los protocolos de más alto nivel interactúan con protocolos de niveles más bajos.

El modelo de TCP/IP está formado por cuatro capas:

    1. La capa de aplicaciones es la capa más alta de la pila; ésta provee servicios de alto nivel a los usuarios como transferencia de archivos, entrega de correo electrónico, y acceso a terminales remotas. Los programas de aplicación escogen entre diferentes protocolos de transporte dependiendo del tipo de servicio de transporte que requieran.
    2. La principal tarea de la capa de transporte es proveer comunicación punto a punto entre las aplicaciones. Los protocolos de transporte (TCP y UDP) usan el servicio de entrega de paquetes que provee la capa de Internet.
    3. La capa de Internet provee el servicio de entrega de paquetes de una máquina a otra, por medio del protocolo de Internet (IP). La integridad de los datos no se verifica en este nivel, por lo que el mecanismo de verificación es implementado en capas superiores (Transporte o Aplicación).
    4. La capa de acceso al medio acepta datagramas de la capa de Internet y los envía físicamente. El "módulo" para el acceso al medio es con frecuencia un manejador de dispositivo (device driver) para una pieza particular de hardware, y la "capa" de acceso al medio puede consistir de múltiples módulos.

Para que la información fluya a través de las capas, ésta pasa por un proceso de encapsulamiento.

Los mensajes o información recibida por la capa de TCP es encapsulada con un encabezado de TCP en un paquete llamado "Segmento de TCP",

este segmento de TCP es entregado a la capa de IP, en el que se le agrega un encabezado de IP y el paquete llamado "Datagrama de IP" es creado.

El paso final incluye el encapsulamiento del datagrama de IP en paquetes creados para la capa de acceso al medio. Gracias a este campo, existe la posibilidad de que por una red Ethernet circulen simultáneamente -bajo el punto de vista funcional, no físico-, paquetes de diferentes familias de protocolos: TCP/IP, IPX, DECnet, etc.

Cada una de ellas pondrá un número diferente en el campo de tipo. En último lugar el controlador Ethernet calcula un checksum, suma de chequeo, del paquete completo y lo coloca al final del mismo. Al alcanzar su destino se recalcula el checksum y si su valor no coincide con el original el paquete se desecha directamente.

El resultado final sería el siguiente:
 

 
Al recibir en el otro extremo los paquetes todas las cabeceras se van quitando en la capa de protocolo que las generó:

Ethernet remueve su cabecera tras comprobar que el checksum es el correcto y tras comprobar en el campo de tipo de código que el datagrama es del tipo IP lo pasa a la capa del Protocolo Internet.

IP verifica su cabecera y al comprobar en el campo de protocolo que pertenece a TCP quita su cabecera para recomponer los datagramas que va recibiendo hasta formar el fichero original.

 

 

 

TCP (Transmission Control Protocol) y UDP (User Datagram Protocol)

Los dos protocolos de la capa de transporte de la "suite" TCP/IP son TCP y UDP. Ambos utilizan el servicio de entrega de paquetes de IP, y pueden distinguir entre múltiples procesos en la misma máquina usando un número de puerto. Las funciones que realiza TCP son las siguientes:

Servicios de entrega de paquetes
TCP provee un servicio confiable de entrega de paquetes Orientado-a-Conexión, o sea, TCP se encarga de dar la ilusión de que la comunicación entre dos computadoras es de punto-a-punto con un flujo continuo de información, a diferencia de IP, donde se sabe que la información fluye en paquetes y que dicha información puede ser retransmitida varias veces antes de alcanzar su destino.

UDP provee la capacidad de acceder a los puertos, a diferencia de TCP, con servicios Sin-Conexión y No-Confiables. Muchas aplicaciones necesitan direccionar a IP y el acceso a puertos de TCP, pero manejando ellas mismas la verificación de los datos, por lo que UDP es la solución ideal. También es usado por aplicaciones que solamente envían mensajes cortos y pueden enviar de nuevo los mensajes si la respuesta no llega en corto tiempo.

 
El concepto de conexión es muy importante porque le permite a un puerto local dar servicio a muchos puertos remotos concurrentemente. Esta es la base del modelo de aplicación cliente-servidor que es usado en redes.
 

Responsabilidades

La comunicación punto-a-punto confiable indica que TCP acepta la responsabilidad de la secuenciación de datos, validación y, si es necesario, retransmisión; la aplicación o proceso que use los servicios de TCP no necesita preocuparse de todo lo anterior, puede asumir que los datos que envía serán recibidos íntegros, en el orden exacto en el que fueron enviados.

Otra de las responsabilidades de TCP es el Control del flujo, el cual es un mecanismo que previene al transmisor de enviar datos más rápido de lo que el receptor pueda manejar.

 

Siguiendo con la analogía del correo, ¿que sucedería si se quiere enviar un libro a otra persona?. Resulta que la oficina postal solamente envía cartas. Una solución sería desprender cada página del libro, poner cada una de ellas en un sobre separado y depositarlos en el buzón. El destinatario tendría que asegurarse de que todas páginas lleguen y pegarlas en el orden correcto. Lo mismo hace TCP.

TCP toma la información que se quiere transmitir, la divide en pedazos y numera cada uno de estos, de tal manera que el receptor pueda verificar la llegada de los mismos y colocarlos en orden.

 

IP (Internet Protocol)

El protocolo de Internet (IP) es llamado la base tecnológica de TCP/IP. Las funciones que realiza IP son las siguientes:

Servicios de entrega de paquetes
IP provee un servicio de entrega de datagramas "Sin-Conexión"; llamado así porque no se lleva a cabo una coordinación entre el punto transmisor y el punto receptor. Cada paquete es tratado independientemente, los cuales pueden llegar en desorden y hasta podrían no llegar.
La entrega "Sin-Conexión" es similar a poner una carta en el buzón: se deposita (datagrama) y se olvida de ella. Se asume que el servicio postal (red IP) entregará la carta (datagrama) a su destino.
Este servicio "Sin-Conexión" es "No-Confiable" porque IP no puede garantizar la entrega, pero es llevado a cabo con el "Mejor-Esfuerzo", esto es, los datagramas no son descartados fácilmente (precisamente como el cartero no tira las cartas sin razón). Los datagramas pueden no ser entregados por la falta de recursos o por una falla en el hardware de la red.

Servicios de direccionamiento

El servicio de direccionamiento de IP determina rápidamente si una dirección IP dada por la capa de transporte pertenece a la red local o a otra red.
Las direcciones IP son números de 32 bits divididos en 4 octetos. Cada dirección es la combinación del identificador único de la red y el identificador único de la máquina.
El problema inmediato con las direcciones IP es que son difíciles de memorizar. Por esta razón, las computadoras también pueden ser identificadas con nombres particulares. El DNS fue implementado para facilitar el uso de las direcciones IP a los seres humanos.

Responsabilidades

Una función de la capa de Internet es definir la "Unidad básica de Transferencia de Datos" usada en las redes TCP/IP: el Datagrama IP.

IP también es responsable de la selección del camino por el que viajan los datos, esto es llamado "enrutamiento".

El protocolo Internet también incluye un conjunto de reglas que define cómo se procesarán los paquetes, incluyendo cuándo generar mensajes de error y cuándo se descartan datagramas. Parte de este proceso incluye la "Fragmentación de Datos" y el "Reensamblado", aunque IP realiza esta función solo cuando el hardware lo requiere.

El siguiente modelo que ejemplifica perfectamente qué es la Internet y cómo opera, aunque las tecnologías sean completamente diferentes: