Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la diferencia entre tcp y udp? ¿Cuáles son las ventajas y desventajas de tcp y udp?

¿Cuál es la diferencia entre tcp y udp? ¿Cuáles son las ventajas y desventajas de tcp y udp?

La diferencia entre TCP y UDP

La diferencia entre el protocolo TCP y el protocolo UDP

En primer lugar, tenemos que dejar claro que muchas personas están confundidas acerca de la conexión entre el protocolo TCP, Protocolo UCP y protocolo TCP/IP. Siempre hablan de la diferencia entre el protocolo TCP/IP y el protocolo UDP. ¡No creo que esto sea inherentemente claro acerca de la comunicación en red!

El protocolo TCP/IP es un conjunto de protocolos. Hay muchos protocolos allí. UDP es sólo uno de ellos. La razón por la que se denomina protocolo TCP/IP es porque los protocolos TCP e IP son dos protocolos muy importantes, por lo que reciben nombres uno después del otro.

El conjunto de protocolos TCP/IP incluye capa de aplicación, capa de transporte, capa de red y capa de acceso a la red.

La capa de aplicación incluye:

Protocolo de transferencia de hipertexto: el protocolo básico de la World Wide Web.

Transferencia de archivos (Protocolo simple de transferencia de archivos TFTP):

Telnet proporciona acceso remoto a otros hosts y permite a los usuarios iniciar sesión.

Host de Internet y ejecutar comandos en ese host.

La gestión de red (Protocolo simple de gestión de red SNMP) proporciona métodos para monitorear dispositivos de red, así como gestión de configuración, recopilación de estadísticas, gestión del rendimiento y gestión de seguridad.

El Sistema de Nombres de Dominio (DNS) se utiliza para traducir nombres de dominio y sus nodos de red de transmisión pública en direcciones IP en Internet.

En segundo lugar, la capa de red incluye:

Protocolo de Internet (IP)

Protocolo de mensajes de control de Internet (ICMP)

Protocolo de resolución de direcciones ( ARP)

Protocolo de resolución de dirección inversa

La última es la capa de acceso a la red: la capa de acceso a la red también se denomina capa de host a red. Las funciones de la capa de acceso a la red incluyen el mapeo de direcciones IP al hardware de direcciones físicas y la encapsulación de IP en tramas. Basada en interfaces de red de diferentes tipos de hardware, la capa de acceso a la red define la conexión al medio físico.

Por supuesto, lo que dije aquí no es perfecto. El protocolo TCP/IP es una ciencia y cada rama es un proceso muy complicado, pero creo que es necesario que todo estudiante que estudia desarrollo de software lo comprenda cuidadosamente.

Me centraré en la diferencia entre el protocolo TCP y el protocolo UDP.

TCP (Protocolo de control de transmisión) es un protocolo orientado a la conexión, es decir, antes de enviar y recibir datos, se debe establecer una conexión confiable con la otra parte. Una conexión TCP requiere que se establezcan tres "conversaciones" y el proceso es muy complicado. Describa brevemente el proceso simple de estas tres conversaciones: el Host A envía un paquete de solicitud de conexión al Host B: "Quiero enviarle datos, ¿puedo?" Esta es la primera conversación que el Host B envía un paquete de datos al Host A; El host A acepta la conexión y requiere sincronización (la sincronización se refiere a dos hosts que envían y reciben, coordinando el trabajo): "Está bien, ¿cuándo lo enviará?" host de sincronización B: "Lo enviaré ahora, ¡puedes continuar!" "Esta es la tercera conversación. El propósito de las tres conversaciones es sincronizar el envío y la recepción de paquetes de datos. Después de tres conversaciones, el Host A enviará oficialmente datos al Host B. .

Proceso de protocolo de enlace de tres vías TCP

1 El Host A solicita al Host B que establezca una conexión enviando un segmento de datos que contiene el bit de bandera del número de secuencia de sincronización al Host B.

El Host A le dice al Host B dos cosas: quiero comunicarme con usted; ¿qué número de secuencia se puede utilizar como segmento de datos inicial para responderme?

2 ¿Recibido del host A? Después de la solicitud, el host B responde al host A con un segmento de datos con indicadores de acuse de recibo (ACK) y número de secuencia de sincronización (SYN) y le dice al host A dos cosas:

He recibido su solicitud, los datos se pueden transmitir; ¿qué número de secuencia desea utilizar como segmento de datos inicial para responderme?

Después de recibir este segmento de datos, el host A envía una respuesta de confirmación para confirmar la recepción. el segmento de datos del host B: "Recibí la respuesta y ahora es el momento de transferir los datos reales.

De esta manera, se completa el protocolo de enlace de tres vías y el host A y el host B pueden transmitir datos.

Características del protocolo de enlace de tres vías

No hay datos de la capa de aplicación.

Solo cuando TCP establezca una conexión de producción, el indicador SYN se establecerá en 1.

El indicador SYN se establece en 0 después del protocolo de enlace.

TCP requiere 3 apretones de manos para establecer una conexión y 4 apretones de manos para desconectar.

1 Cuando el host A completa la transferencia de datos, establece el bit de control FIN en 1 y solicita detener la conexión TCP.

El host B responde a FIN después de recibirlo, confirma que la conexión TCP en esta dirección se cerrará y establece ACK en 1.

3. El lado B enviará una solicitud de apagado en la dirección opuesta y establecerá FIN en 1.

El host A confirma la solicitud del host B, establece ACK en 1 y finaliza el cierre bidireccional.

Se puede ver en el protocolo de enlace de tres vías y las cuatro desconexiones de TCP que TCP adopta un método de comunicación orientado a la conexión, lo que mejora en gran medida la confiabilidad de la comunicación de datos y hace que el envío de datos sea terminal

Interactuar con el destinatario antes de la transmisión formal de datos sienta una base confiable para la transmisión formal de datos.

Explicación del término

ack es uno de los bits de control en el encabezado TCP, utilizado para confirmar datos. El acuse de recibo lo envía el destino y se utiliza para informar al remitente del segmento de datos que precede al número de secuencia.

Por ejemplo, si el número de acuse de recibo es X, significa que se ha recibido el primer segmento de datos X-1. El número de confirmación es válido sólo cuando ACK=1. Cuando ACK=0, el número de confirmación no es válido. En este punto, será necesario retransmitir los datos para garantizar su integridad.

Número de secuencia de sincronización SYN, establecido en 1 cuando TCP establece una conexión.

El transmisor FIN completa el bit de tarea de envío. Cuando es necesario desconectar TCP después de completar la transmisión de datos, la parte que propone la desconexión establecerá este bit en 1.

Estructura del encabezado TCP:

Puerto origen 16 bits

Puerto destino 16 bits

Número de secuencia 32 bits

El número de secuencia de respuesta es de 32 dígitos

La longitud del encabezado TCP es de 4 dígitos.

Reservado 6 dígitos

Código de control 6 dígitos

Tamaño de ventana 16 dígitos

Compensación 16 dígitos

Suma de comprobación 16 bits

Opción 32 bits (opcional)

De esta forma obtenemos la longitud mínima de la cabecera TCP, 20 bytes.

UDP (Protocolo de datos de usuario).

(1) UDP es un protocolo sin conexión. La fuente y el terminal no establecen una conexión antes de transmitir datos. Cuando quiere transferir datos, simplemente los toma de la aplicación y los envía a través de la red lo más rápido posible. En el lado emisor, la velocidad de transferencia de datos UDP está limitada únicamente por la velocidad a la que la aplicación genera los datos, las capacidades de la computadora y el ancho de banda de transmisión. En el extremo receptor, UDP coloca cada segmento de mensaje en una cola y la aplicación lee los segmentos de mensajes de la cola uno por uno.

(2) Dado que no se establece ninguna conexión al transmitir datos, no es necesario mantener el estado de la conexión, incluido el estado de recepción y envío, por lo que un servidor puede transmitir el mismo mensaje a varios clientes al mismo tiempo. .

(El encabezado del paquete UDP es muy corto, solo 8 bytes, lo cual es muy pequeño en comparación con el paquete TCP de 20 bytes.

(4) El rendimiento no se ve afectado por el algoritmo de control de congestión El ajuste solo está limitado por la velocidad de generación de datos del software de la aplicación, el ancho de banda de transmisión y el rendimiento de los hosts de origen y terminal.

(5) UDP utiliza la transmisión de mejor esfuerzo. , lo que no garantiza una transmisión confiable, por lo que no es necesario mantener el host. La tabla de estado del enlace (hay muchos parámetros en ella).

(6) UDP está orientado a mensajes. El UDP enviado a la aplicación por el remitente se transmitirá a la capa IP después de agregar el encabezado. Los límites de estos mensajes permanecen sin cambios en lugar de dividirse o fusionarse, por lo que la aplicación debe elegir un tamaño de mensaje apropiado. A menudo utilizamos el comando "ping" para probar la comunicación TCP/IP entre dos hosts. ¿Es normal que el principio del comando "ping" sea enviar un paquete UDP al host de la otra parte y luego al de la otra parte? El host confirma la recepción del paquete. Si el mensaje de si el paquete llega se retroalimenta a tiempo, entonces la red está conectada.

Estructura del encabezado UDP:

Puerto origen 16 bits

Puerto destino 16 bits

Longitud 16 bits

Suma de comprobación de 16 bits

Resumen de las diferencias entre TCP y UDP:

1. Basado en conexión y sin conexión;

2. Requisitos para los recursos del sistema (Más TCP). , menos UDP);

3. La estructura del programa UDP es simple;

4. El modo de transmisión y el modo de datagrama

5. UDP puede perder paquetes, TCP garantiza el orden de los datos, pero UDP no.