¿Por qué la conexión http de datasnap también genera una conexión tcp inactiva?
Introducción al protocolo TCP/IP
Protocolo de comunicación TCP/IP
Esta sección presenta brevemente la estructura interna de TCP/IP para discutir temas relacionados con Internet. Sentar las bases para las cuestiones de seguridad. El conjunto de protocolos TCP/IP es popular en parte porque se puede utilizar en una amplia variedad de canales y protocolos subyacentes (como interfaces seriales T1 y X.25, Ethernet y RS-232). Para ser precisos, el protocolo TCP/IP es un grupo de protocolos que incluyen el protocolo TCP y el protocolo IP, el protocolo UDP (Protocolo de datagramas de usuario), el protocolo ICMP (Protocolo de mensajes de control de Internet) y algunos otros protocolos.
Descripción general de la arquitectura general de TCP/IP
El protocolo TCP/IP no cumple totalmente con el modelo de referencia de siete capas OSI. El modelo de referencia de interconexión de sistema abierto tradicional es un modelo de referencia abstracto de 7 capas de un protocolo de comunicación, en el 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. Estas siete capas son: capa física, capa de enlace de datos, capa de red, capa de transporte, capa de canal 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 completar sus propias necesidades. Las cuatro capas son:
Capa de aplicación: la capa para la comunicación entre aplicaciones, como la transferencia simple de correo electrónico (SMTP), el protocolo de transferencia de archivos (FTP), el protocolo de acceso remoto a la red (Telnet), etc.
Capa de transporte: En esta capa, proporciona 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 transmisión a los paquetes de datos Los datos se transfiere a la siguiente capa, que es responsable de transmitir los datos y determinar que los datos han sido entregados y recibidos.
Capa de red de interconexión: 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ínea serie, etc.) para transmitir datos.
Protocolos en TCP/IP
La siguiente es una breve introducción a qué funciones tienen los protocolos en TCP/IP y cómo funcionan:
1 . IP
Protocolo de Internet IP es el corazón de TCP/IP y el protocolo más importante en la capa de red.
La capa IP recibe el paquete de datos enviado por la capa inferior (capa de interfaz de red como el controlador de dispositivo Ethernet) y envía el paquete de datos a la capa superior (capa TCP o UDP, por el contrario); IP La capa también transmite paquetes de datos recibidos de la capa TCP o UDP a capas inferiores. Los paquetes IP no son confiables porque IP no hace nada para confirmar que los paquetes se enviaron en orden o que no estaban dañados. Un paquete IP contiene la dirección del host que lo envió (dirección de origen) y la dirección del host que lo recibió (dirección de destino).
Cuando los servicios TCP y UDP de alto nivel reciben paquetes de datos, normalmente asumen que la dirección de origen del paquete es válida. También se puede decir que las direcciones IP forman la base de autenticación para muchos servicios, que creen que los paquetes de datos se envían desde un host válido. La confirmación de IP contiene una opción llamada enrutamiento de origen IP, que se puede utilizar para especificar una ruta directa entre la dirección de origen y la dirección de destino. Para algunos servicios TCP y UDP, los paquetes IP que utilizan esta opción parecen entregarse 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. Entonces, muchos servicios que dependen de direcciones IP de origen para su confirmación causarán problemas y serán pirateados ilegalmente.
2. TCP
Si hay paquetes TCP sellados en el paquete IP, entonces IP los transmitirá 'hacia arriba' a la capa TCP. TCP clasifica paquetes y realiza verificación de errores mientras realiza conexiones entre circuitos virtuales. Los paquetes TCP incluyen números de secuencia y acuses de recibo, por lo que los paquetes recibidos fuera de orden se pueden ordenar y los paquetes dañados se pueden retransmitir.
TCP envía su información a aplicaciones de nivel superior, como programas de servicio Telnet y programas cliente. Las aplicaciones se turnan para enviar mensajes de regreso a la capa TCP, que los pasa a la capa IP, los controladores de dispositivos y 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 en algunos casos (para enviar y recibir bases de datos de nombres de dominio), pero usa UDP para transmitir información sobre hosts individuales.
3.UDP
UDP está en la misma capa que TCP, pero el orden de los paquetes de datos es incorrecto o se retransmite. Por lo tanto, UDP no debe usarse para servicios orientados a conexión que usan circuitos virtuales. UDP se usa principalmente para servicios orientados a respuesta a consultas, como NFS. En comparación con FTP o Telnet, estos servicios requieren el intercambio de una menor cantidad de información. Los servicios que utilizan UDP incluyen NTP (Protocolo de hora de red) y DNS (DNS también utiliza TCP).
Falsificar paquetes UDP es más fácil que falsificar paquetes TCP porque UDP no establece una conexión inicial (también llamada apretón de manos) (porque no hay un circuito virtual entre los dos sistemas), es decir, servicios relacionados con UDP. corren mayor peligro.
4.ICMP
ICMP está en la misma capa que IP y se utiliza para transmitir información de control de IP. Se utiliza principalmente para proporcionar información sobre la ruta que conduce a la dirección de destino. Los mensajes ICMP 'Redirect' informan al host de una ruta más precisa a otros sistemas, mientras que los mensajes 'Inalcanzables' indican problemas con la ruta. Además, ICMP puede hacer que las conexiones TCP finalicen "correctamente" si la ruta deja de estar disponible. PING es el servicio basado en ICMP más utilizado.
5. Estructura de puertos TCP y UDP
Los servicios TCP y UDP suelen tener una relación cliente/servidor. Por ejemplo, un proceso de servicio Telnet se inicia en un estado inactivo en el sistema, esperando. Conectar. 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 para lectura y escritura.
¿Cómo se confirman y coordinan varias 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 del paquete receptor.
Puerto de origen El puerto del sistema de origen al que está conectada la conexión.
Puerto de destino El puerto al que conectarse en el sistema de destino.
Un puerto es una estructura de software utilizada por programas cliente o procesos de servicio para enviar y recibir información. Un puerto corresponde a un número de 16 bits. El proceso de servicio suele 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 con un host o servicio específico.