TCP vs UDP - ¿Qué es una conexión TCP? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

¿Qué es exactamente una conexión TCP? Entiendo que no hay una conexión física del cliente al servidor. ¿Esta conexión es solo el socket del cliente que está siendo enlazado con el nuevo socket creado por el servidor después del apretón de manos de tres vías? A partir de entonces una vez la" conexión " está configurada, los sockets en cualquiera de los extremos de la conexión saben dónde enviar sus paquetes.

¿En qué se diferencia esto de la forma en que funciona UDP que no sea el handshake inicial con TCP? ¿Es que cada socket de servidor solo tiene un cliente que envía paquetes a ese socket en particular?

¿Cuáles son algunas de las posibles ventajas de tener una conexión dedicada entre hosts? Mi comprensión de TCP y UDP sigue siendo muy básica, por lo que las generalizaciones amplias deberían suficiente.

Author: Sorangwala Abbasali, 2011-11-16

2 answers

Dividamos esto en partes. En primer lugar, la red se basa en IP, que es un protocolo que asigna una dirección a cada nodo de red, y que le permite enviar pequeñas cantidades de datos (generalmente hasta 64kB, pero típicamente solo 1500B) de un nodo a otro.

Eso por sí solo no vale mucho todavía, porque no podemos hacer ninguna comprobación de que los datos realmente llegaron, y que llegaron en el orden correcto. Si queremos un mecanismo abstracto para transmitir arbitrario cantidades de datos y asegurar que llegaron, necesitamos otro protocolo en la parte superior de la red que maneja esta "transmisión". Y ese es el propósito de TCP.

Sin embargo, en paralelo a TCP, hay otro protocolo de "transmisión" que no hace ninguna comprobación en absoluto y no tiene confiabilidad, UDP. UDP es solo una envoltura delgada alrededor de paquetes IP sin procesar, que agrega un poco de metadatos (como un número de puerto ).

UDP sigue siendo útil, sin embargo, ya que hay muchas situaciones en que la integridad de los datos ya se ha transferido a un protocolo aún más alto, por lo que no hay necesidad de un protocolo de transmisión complejo. Esto se usa, por ejemplo, en servicios de redes virtuales, donde otra instancia de TCP/IP normalmente se ejecuta sobre un canal UDP. (Hacer que el canal use un protocolo confiable como TCP en realidad puede tener consecuencias desastrosas en ese caso debido a reenviar cascadas.)

Así que el término "conexión TCP" se refiere a la aplicación del TCProtocol. Protocolo es con estado, naturalmente, y normalmente procede en una secuencia SYN-ACK-data-FIN, o SYN / RST en caso de una transmisión rechazada; ambos pares mantienen un estado de la conexión (handshake, established, closing, closed.) TCP también introduce los términos "servidor" y "cliente", el servidor es el par que listen()s para una conexión entrante.

 40
Author: Kerrek SB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-11-16 17:54:59

La principal diferencia entre los sockets TCP y UDP es que UDP no tiene conexión y no usa ninguna confirmación de que el otro extremo recibió los datos.

El Protocolo de Control de Transmisión (TCP) es uno de los protocolos principales de la Suite de Protocolos de Internet. TCP es uno de los dos componentes originales de la suite, complementando el Protocolo de Internet (IP), y por lo tanto la suite completa se conoce comúnmente como TCP/IP. TCP proporciona entrega confiable y ordenada de un flujo de bytes de un programa en una computadora a otro programa en otra computadora. TCP es el protocolo en el que se basan las principales aplicaciones de Internet, como la World Wide Web, el correo electrónico, la administración remota y la transferencia de archivos. Otras aplicaciones, que no requieren un servicio de flujo de datos confiable, pueden usar el Protocolo de Datagramas de usuario (UDP), que proporciona un servicio de datagramas que enfatiza la latencia reducida sobre la confiabilidad.1

 3
Author: Hasteur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-09 02:31:23