Similitudes y diferencias entre TCP y UDP
TCP/IP
La capa de transporte del modelo tiene dos protocolos diferentes: UDP
protocolo de datagrama de usuario y TCP
protocolo de control de transmisión.
Similitudes
TCP
YUDP
protocolos se están ejecutando en la capa de transporteTCP
UDP
Se requieren puertos abiertos para la comunicación con
Diferencia
TCP
TCP
Es un protocolo orientado a la conexión que proporciona comunicación full-duplex. Necesita establecer un enlace antes de transmitir datos, y la carga de transmisión de datos es relativamente grande.TCP
Brinde servicios de entrega confiables, utilizando servicios como control de flujo y control de congestión para garantizar una comunicación confiable.TCP
El20
byte más pequeño y el60
byte más grande del encabezado incluyen puerto de origen, puerto de destino, número de serie, número de confirmación, desplazamiento de datos, bandera de control, ventana, suma de verificación, puntero de emergencia, opciones y otra información.TCP
Solo comunicación uno a uno.TCP
Para la comunicación de flujo de bytes.TCP
Para garantizar el orden de transmisión de datos,TCP
determine el orden de transmisión codificando un número de secuencia para cada byte del flujo de datos en la conexión.TCP
Proporcione funciones como suma de verificación, respuesta de confirmación, número de secuencia, retransmisión de tiempo de espera, gestión de conexión, control de flujo, control de congestión, etc.TCP
Adecuado para aplicaciones que requieren una transmisión confiable, como la transferencia de archivos
UDP
UDP
No tiene conexión, es decir, no es necesario establecer una conexión antes de enviar datos, y la carga de transmisión de datos es relativamente pequeña.UDP
Use la entrega de mejor esfuerzo, que no garantiza una entrega confiable, y no usa control de flujo y control de congestión.UDP
El primer8
byte incluye puerto de origen, puerto de destino, longitud, información de suma de verificación.UDP
Tiene las funciones de unidifusión, multidifusión y difusión, y admite métodos de transmisión de datos uno a uno, uno a muchos, muchos a muchos y muchos a uno.UDP
Está orientado a la comunicación de mensajes, y los mensajes entregados desde la capa de aplicación no se fusionan ni se dividen, pero los límites de estos mensajes se retienen y se entregan a laIP
capa después de agregar el encabezado .UDP
El orden de transmisión de datos no está garantizado. El programa de capa de aplicación necesita agregar un número de secuencia al segmento de datos para controlar el orden.UDP
SoloIP
se agregan algunas funciones al servicio de datagramas, es decir, la función del puerto y la función de detección de errores.UDP
Adecuado para aplicaciones en tiempo real, como telefonía por Internet, videoconferencia, transmisión en vivo, etc.
Problemas relacionados
UDP realiza una transmisión confiable
La capa de transporte no puede garantizar la transmisión confiable de datos, y solo se puede lograr a través de la capa de aplicación.El método de implementación puede referirse al método de TCP
transmisión confiable, pero la implementación no está en la capa de transmisión, y la implementación se transfiere a la capa de aplicación, principalmente mediante la implementación del mecanismo de confirmación y el mecanismo de retransmisión. , el mecanismo de ventana de confirmación para lograr una transmisión fiable, se RUDP
, RTP
, UDT
como el uso de fuente abierta UDP
para lograr la transmisión de datos fiable, además hay se incorporan TCP
fiabilidad y la UDP
compensación de velocidad KCP
protocolo.
La diferencia entre conexión corta TCP y conexión larga
conexión corta: Client
a Server
enviar un mensaje, Server
responder Client
, y luego escribir una vez completada, esta vez ambos lados puede iniciar cualquier close
operación, pero estos son generalmente Client
los primeros en iniciar close
la operación. Las conexiones cortas generalmente solo Client/Server
pasan una operación de lectura y escritura en el medio. Los enlaces cortos son relativamente simples de administrar. Establecer conexiones existentes es una conexión útil y no requiere métodos de control adicionales. Sin embargo, si las solicitudes de los clientes son frecuentes, perderá TCP
tiempo y ancho de banda en el establecimiento y cierre de operaciones.
Larga conexión: Client
a Server
, tras la finalización de una escritura, y la conexión entre ellos no se cierra de forma activa, subsiguientes operaciones de lectura y escritura continuarán utilizando la conexión, la conexión se puede omitir más larga TCP
operación y establecer una cerrada, reducir los residuos, conservar El tiempo, para los clientes que solicitan recursos con frecuencia, es más adecuado para conexiones largas, pero a medida que el cliente se conecta cada vez más, la Server
carga se hará más y más grande. En este momento, debe adoptar algunas estrategias para reducir la carga, como apagar sin leer durante un tiempo prolongado. Escriba el LRU
algoritmo de enlace , limite el número de enlaces de clientes, etc.
Solución de desempaquetado de paquetes fijos TCP
Dado TCP
que está orientado al flujo de bytes y no puede comprender los datos comerciales de la capa superior, no hay garantía de que el paquete de datos no se dividirá ni reorganizará en la capa inferior. Este problema solo puede resolverse mediante el diseño de la pila de protocolos de aplicación de la capa superior.
- Longitud fija del mensaje: el emisor encapsula cada paquete de datos en una longitud fija (si no es suficiente, se puede
0
llenar), de modo que cada vez que el receptor lee una longitud fija de datos en el búfer de recepción, cada paquete de datos se divide naturalmente Ven - Establezca el límite del mensaje: el servidor separa el contenido del mensaje del flujo de red de acuerdo con el límite del mensaje y agrega un retorno de carro y un carácter de avance de línea al final del paquete para la segmentación, como un
FTP
protocolo. - El mensaje se divide en un encabezado de mensaje y un cuerpo de mensaje: el encabezado del mensaje contiene un campo que indica la longitud total del mensaje (o la longitud del cuerpo del mensaje).
Referencia
https://zhuanlan.zhihu.com/p/108822858
https://www.cnblogs.com/liangyc/p/11628148.html
https://blog.csdn.net/m_xiaoer/article/details/72885418
https://blog.csdn.net/pangyemeng/article/details/50387078
https://blog.csdn.net/quiet_girl/article/details/50599777
https://blog.csdn.net/liuchenxia8/article/details/80428157
https://blog.csdn.net/qq_40732350/article/details/90902396
https://www.cnblogs.com/fundebug/p/differences-of-tcp-and-udp.html