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

¿Cuál es la diferencia entre tcp y udp?

Comparación:

(Recomendación de video de aprendizaje: video tutorial de Java)

UDP

El nombre completo del protocolo UDP es Protocolo de datagramas de usuario En la red, se utiliza para procesar paquetes de datos como el protocolo TCP y es un protocolo sin conexión. En el modelo OSI, la cuarta capa, la capa de transporte, es la capa superior del protocolo IP. UDP tiene la desventaja de no proporcionar agrupación y ensamblaje de paquetes de datos y la incapacidad de ordenar paquetes de datos. En otras palabras, después de enviar un mensaje, es imposible saber si ha llegado de forma segura y completa.

Tiene las siguientes características:

1. Sin conexión.

En primer lugar, UDP no necesita realizar un protocolo de enlace de tres vías antes de enviar datos a establezca una conexión como TCP. Sí, puede comenzar a enviar datos si lo desea. Y es solo un portador de paquetes de datos y no realizará ninguna operación de división o empalme en paquetes de datos.

Específicamente:

En el extremo de envío, la capa de aplicación pasa los datos al protocolo UDP de la capa de transporte. UDP solo agregará un encabezado UDP a los datos. es el protocolo UDP y luego se pasa a la capa de red. En el extremo receptor, la capa de red pasa los datos a la capa de transporte. UDP solo elimina el encabezado IP y lo pasa a la capa de aplicación sin ninguna operación de empalme. p>

2. Hay funciones de unidifusión, multidifusión y transmisión.

UDP no solo admite transmisión uno a uno, sino que también admite transmisión uno a muchos, muchos a muchos y muchos a uno En otras palabras, UDP proporciona la función de transmisión unidifusión y multidifusión.

3. UDP está orientado a mensajes

El UDP del remitente entrega el mensaje a la capa IP después de agregar un encabezado a la aplicación. UDP no fusiona ni divide los paquetes entregados por la capa de aplicación, pero conserva los límites de estos paquetes. Por lo tanto, la aplicación debe elegir un mensaje del tamaño apropiado

4. Falta de confiabilidad

En primer lugar, la falta de confiabilidad se refleja en la falta de conexión. comunicación. Fa, esta situación definitivamente no es confiable.

Y los datos se transferirán tal como se reciben y no se realizará una copia de seguridad de los datos. Al enviar los datos, no le importará si la otra parte los ha recibido correctamente.

Además, el entorno de red es bueno y malo, pero UDP siempre enviará datos a una velocidad constante porque no hay control de congestión. Incluso si las condiciones de la red no son buenas, la tasa de envío no se ajustará. La desventaja de esta implementación es que puede causar pérdida de paquetes cuando las condiciones de la red no son buenas, pero las ventajas también son obvias. En algunos escenarios con altos requisitos de tiempo real (como llamadas de conferencia), es necesario utilizar UDP en lugar de. TCP.

5. La sobrecarga del encabezado es pequeña y es muy eficiente al transmitir mensajes de datos.

TCP

Cuando una computadora quiere comunicarse con otra computadora, la comunicación entre las dos computadoras debe ser fluida y confiable para que los datos se puedan enviar y recibir correctamente. Por ejemplo, cuando desea ver una página web o consultar su correo electrónico, desea ver la página web completa y en orden sin perder ningún contenido. Cuando descarga un archivo, espera obtener el archivo completo, no solo una parte del archivo, porque si los datos se pierden o están desordenados, no es el resultado que desea, por lo que se utiliza TCP.

El nombre completo del protocolo TCP es Protocolo de control de transmisión, que es un protocolo de comunicación de capa de transporte basado en flujo de bytes, confiable y orientado a la conexión, definido por el RFC 793 del IETF. TCP es un protocolo de transmisión confiable y orientado a la conexión. Una corriente se refiere a una estructura de datos ininterrumpida. Puede pensar en ella como agua que fluye por un desagüe.

1. Proceso de conexión TCP

Primer apretón de manos

El cliente envía un segmento de solicitud de conexión al servidor. Este segmento de mensaje contiene su propio número de secuencia inicial de comunicación de datos. Una vez enviada la solicitud, el cliente ingresa al estado SYN-SENT.

Segundo apretón de manos

Después de que el servidor recibe el segmento de solicitud de conexión, si acepta la conexión, enviará una respuesta, que también incluirá su propio número de serie de comunicación de datos. , una vez completada la transmisión, ingresa al estado SYN-RECEIVED.

El tercer apretón de manos

Cuando el cliente recibe la respuesta de aprobación de la conexión, también envía un mensaje de confirmación al servidor. Después de que el cliente envía este segmento de mensaje, ingresa al estado ESTABLECIDO. Después de que el servidor recibe esta respuesta, también ingresa al estado ESTABLECIDO. En este momento, la conexión se establece con éxito.

Puede que tengas una pregunta aquí: ¿Por qué TCP requiere tres apretones de manos para establecer una conexión, en lugar de dos? Esto se debe a que esto es para evitar que el servidor reciba segmentos de solicitud de conexión no válidos, lo que provocará errores.

2. TCP se desconecta

TCP es full-duplex y ambos extremos deben enviar FIN y ACK al desconectarse.

Primer apretón de manos

Si el cliente A cree que el envío de datos se ha completado, debe enviar una solicitud de liberación de conexión al servidor B.

Segundo apretón de manos

Después de recibir la solicitud de liberación de la conexión, B le indicará a la capa de aplicación que libere el enlace TCP. Luego se enviará un paquete ACK y se ingresará al estado CLOSE_WAIT. Esto indica que la conexión de A a B se ha liberado y los datos enviados por A ya no se recibirán. Pero debido a que la conexión TCP es bidireccional, B aún puede enviar datos a A.

El tercer apretón de manos

Si B todavía tiene datos sin terminar en este momento, continuará enviando. Una vez completado, enviará una solicitud de liberación de conexión a A, y luego B lo hará. ingrese al estado ÚLTIMO ACK.

El cuarto apretón de manos

Después de recibir la solicitud de liberación, A envía una respuesta de confirmación a B. En este momento, A ingresa al estado TIEMPO DE ESPERA. Este estado durará 2MSL (vida útil máxima del segmento, que se refiere al tiempo que el segmento del mensaje sobrevive en la red y se descartará después del tiempo de espera. Si no hay una solicitud de reenvío de B dentro de este período de tiempo, entrará en CERRADO). estado. Cuando B recibe la respuesta de confirmación, también ingresa al estado CERRADO.

3. Características del protocolo TCP

Orientado a la conexión

Orientado a la conexión significa que se debe establecer una conexión en ambos extremos antes de enviar datos. El método para establecer una conexión es el "apretón de manos de tres vías", que puede establecer una conexión confiable. Establecer una conexión sienta las bases para una transmisión fiable de datos.

Solo admite transmisión unidifusión

Cada conexión de transmisión TCP solo puede tener dos puntos finales, solo puede realizar transmisión de datos punto a punto y no admite métodos de transmisión de multidifusión ni difusión.

Orientado a flujos de bytes

TCP no transmite mensajes de forma independiente como UDP, sino que los transmite en un flujo de bytes sin conservar los límites de los mensajes.

Transmisión confiable

Para una transmisión confiable, la determinación de la pérdida y el error de paquetes depende del número de segmento TCP y del número de confirmación. Para garantizar la confiabilidad de la transmisión del mensaje, TCP asigna a cada paquete un número de secuencia. Al mismo tiempo, el número de secuencia también garantiza que los paquetes transmitidos a la entidad final receptora se reciban en orden. Luego, la entidad receptora devuelve un acuse de recibo correspondiente (ACK) para los bytes recibidos exitosamente; si la entidad emisora ​​no recibe el acuse de recibo dentro de un retraso de ida y vuelta razonable (RTT), entonces los datos correspondientes (que se supone perdidos) serán retransmitidos. .

Proporciona control de congestión

Cuando la red está congestionada, TCP puede reducir la velocidad y la cantidad de datos inyectados en la red y aliviar la congestión

TCP proporciona dualidad completa Comunicación industrial

TCP permite que las aplicaciones en ambos lados de la comunicación envíen datos en cualquier momento, porque ambos extremos de la conexión TCP tienen cachés para almacenar datos temporalmente para la comunicación bidireccional. Por supuesto, TCP puede enviar un segmento de datos inmediatamente o puede almacenarlo en caché durante un período de tiempo para enviar más segmentos de datos a la vez (el tamaño máximo del segmento de datos depende del MSS)

Recomendaciones relacionadas: PHP entrenamiento