¿Cómo funcionan TCP e IP?
Descripción general de la arquitectura general de TCP/IP
El protocolo TCP/IP no cumple completamente con el modelo de referencia de siete capas OSI. El modelo de referencia tradicional de interconexión de sistemas abiertos es una abstracción de siete capas de protocolos de comunicación, en la que cada capa realiza una tarea específica. El propósito de este modelo es permitir que varios hardware se comuniquen entre sí en el mismo nivel. Las siete capas son: capa física, capa de enlace de datos, capa de red, capa de transporte, capa de voz, capa de presentación y capa de aplicación. El protocolo de comunicación TCP/IP adopta una estructura jerárquica de 4 capas, y cada capa llama a la red proporcionada por la siguiente capa para satisfacer sus propias necesidades. Estas 4 capas son:
Capa de aplicación: la capa de comunicación entre aplicaciones, como Transferencia simple de correo (SMTP), Protocolo de transferencia de archivos (FTP), Protocolo de acceso remoto a la red (Telnet), etc.
Capa de transporte: En esta capa se proporcionan servicios de transmisión de datos entre nodos, como el Protocolo de control de transmisión (TCP), el Protocolo de datagramas de usuario (UDP), etc. TCP y UDP agregan datos de transporte al paquete y los pasan a la siguiente capa, que es responsable de transmitir los datos y determinar si se han entregado y recibido.
Capa de Internet: Responsable de proporcionar funciones básicas de transmisión de paquetes de datos para que cada paquete de datos pueda llegar al host de destino (pero no verifica si se recibe correctamente), como el Protocolo de Internet (IP).
Capa de interfaz de red: gestiona los medios de red reales y define cómo utilizar la red real (como Ethernet, líneas serie, etc.) para transmitir datos.
Protocolos en TCP/IP
La siguiente es una breve introducción a las funciones de los protocolos en TCP/IP y cómo funcionan:
1. IP
El Protocolo de Internet (IP) es el núcleo de TCP/IP y el protocolo más importante en la capa de red.
La capa IP recibe un paquete de una capa inferior (capa de interfaz de red, como un controlador de dispositivo Ethernet) y envía el paquete a una capa superior (capa TCP o UDP a su vez, la capa IP); Los paquetes recibidos de la capa TCP o UDP se transmiten a capas inferiores. Los paquetes IP no son confiables porque IP no puede confirmar si los paquetes se enviaron en orden o si estaban dañados.
Un paquete IP contiene la dirección del host que envió el paquete (dirección de origen) y la dirección del host que recibió el paquete (dirección de destino).
Cuando los servicios TCP y UDP de alto nivel reciben paquetes, generalmente asumen que la dirección de origen del paquete es válida. En otras palabras, la dirección IP es la base para que muchos servicios autentiquen que el paquete es enviado por un host válido. La validación de IP incluye una opción llamada Enrutamiento de origen IP, que le permite especificar una ruta directa entre una dirección de origen y una dirección de destino. Para algunos servicios TCP y UDP, los paquetes IP que utilizan esta opción parecen enviarse desde el último sistema en la ruta, en lugar de desde su ubicación real. Esta opción existe con fines de prueba, lo que indica que se puede utilizar para engañar al sistema para que realice conexiones que normalmente estarían prohibidas. Esto hace que muchos servicios que dependen de direcciones IP de origen para la verificación sean problemáticos y vulnerables a verse comprometidos.
2.
Si los paquetes IP contienen paquetes TCP sellados, entonces IP los enviará "hacia arriba" a la capa TCP.
TCP ordena paquetes y realiza verificación de errores mientras habilita conexiones entre circuitos virtuales.
TCP envía información a aplicaciones de nivel superior, como servicios Telnet y programas cliente.
Las aplicaciones se turnan para enviar mensajes a la capa TCP, que a su vez envía los mensajes a la capa IP, a los controladores de dispositivos, a los medios físicos y, finalmente, al receptor.
Los servicios orientados a la conexión como Telnet, FTP, rlogin, X Windows y SMTP requieren un alto grado de confiabilidad, por lo que utilizan TCP. DNS usa TCP (para enviar y recibir bases de datos de nombres de dominio) en algunos casos, pero usa UDP para transmitir información sobre hosts individuales.
3. UDP
UDP está al mismo nivel que TCP, pero se utiliza para transmitir paquetes desordenados o retransmitidos. Por lo tanto, UDP no se utiliza para servicios orientados a conexión que utilizan circuitos virtuales. UDP se utiliza principalmente para servicios orientados a consultas y respuestas, como NFS, que requieren menos información para intercambiar que FTP o Telnet. Los servicios que utilizan UDP incluyen NTP (Protocolo de hora de red) y DNS (DNS también utiliza TCP).
Dado que UDP no establece una conexión inicial (también llamada protocolo de enlace) (porque no hay un circuito virtual entre los dos sistemas), es más fácil falsificar paquetes UDP que paquetes TCP, lo que significa que con UDP Los servicios relacionados corren mayor riesgo.
4.ICMP
ICMP está ubicado en la misma capa que IP y se utiliza para transmitir información de control de IP. Se utiliza principalmente para proporcionar información de ruta a la dirección de destino. El mensaje "Redireccionamiento" de ICMP informa al host de una ruta más precisa a otro sistema, mientras que los mensajes "Inalcanzable" indican un problema con la ruta. Además, ICMP puede terminar "elegantemente" una conexión TCP si la ruta ya no está disponible.
5. Estructura de puertos TCP y UDP
Los servicios TCP y UDP suelen tener una relación cliente/servidor. Por ejemplo, el proceso del servicio Telnet se inicia en un estado inactivo en el sistema, esperando. para conexiones. El usuario utiliza el programa cliente Telnet para establecer una conexión con el proceso de servicio. El programa cliente escribe información en el proceso de servicio, el proceso de servicio lee la información y envía una respuesta, y el programa cliente lee la respuesta e informa al usuario. Por tanto, la conexión es dúplex y se puede utilizar tanto para lectura como para escritura.
¿Cómo se reconocen y coordinan entre sí múltiples conexiones Telnet entre dos sistemas? Una conexión TCP o UDP se identifica de forma única mediante los siguientes cuatro elementos en cada mensaje:
Dirección IP de origen La dirección IP desde la que se envió el paquete.
Dirección IP de destino La dirección IP desde la que se recibió el paquete.
Puerto de origen El puerto de conexión en el sistema de origen.
Puerto de destino El puerto de conexión en el sistema de destino.
Un puerto es una estructura de software utilizada por un programa cliente o proceso de servicio para enviar y recibir información. El puerto corresponde a un número de 16 bits. Los procesos de servicio suelen utilizar un puerto fijo, por ejemplo, SMTP utiliza 25 y Xwindows utiliza 6000. Estos números de puerto son "bien conocidos" porque estas direcciones y direcciones de destino son necesarias para la comunicación al establecer una conexión a un host o servicio específico.