TCP vs UDP: desmitificar o debate de fiabilidade vs. eficiencia

Hoxe imos comezar centrándonos en TCP. Antes no capítulo sobre capas, mencionamos un punto importante. Na capa de rede e a continuación, trátase máis do host para conexións de host, o que significa que o seu ordenador precisa saber onde está outro ordenador para conectarse a el. Non obstante, a comunicación nunha rede adoita ser unha comunicación interprocesada máis que a comunicación intermachina. Polo tanto, o protocolo TCP introduce o concepto de porto. Un porto pode ser ocupado só por un proceso, que proporciona unha comunicación directa entre os procesos de aplicación que se executan en diferentes hosts.

A tarefa da capa de transporte é como proporcionar servizos de comunicación directa entre os procesos de aplicación que se executan en diferentes hosts, polo que tamén se coñece como protocolo de extremo a extremo. A capa de transporte esconde os detalles básicos da rede, permitindo que o proceso de aplicación poida ver como se exista unha canle de comunicación de extremo a extremo lóxico entre as dúas entidades de capa de transporte.

TCP significa o protocolo de control de transmisión e coñécese como protocolo orientado á conexión. Isto significa que antes dunha aplicación pode comezar a enviar datos ao outro, os dous procesos teñen que facer un aperto de man. O aperto de man é un proceso conectado loxicamente que asegura unha transmisión fiable e a recepción ordenada de datos. Durante o aperto de mans, establécese unha conexión entre os servidores de orixe e destino intercambiando unha serie de paquetes de control e acordando algúns parámetros e regras para garantir a transmisión de datos exitosa.

Que é TCP? (Mylinking'sTap de redeeCorredor de paquetes de redePodería procesar paquetes TCP ou UDP)
TCP (Protocolo de control de transmisión) é un protocolo de comunicación de transporte baseado en fliables, fiable, fiable, baseado en bytes.

Orientado á conexión: Orientado á conexión significa que a comunicación TCP é unha a unha, é dicir, a comunicación punta a punta, a diferenza de UDP, que pode enviar mensaxes a varios hosts ao mesmo tempo, polo que non se pode conseguir unha comunicación única.
Fiable: A fiabilidade de TCP asegura que os paquetes sexan entregados de forma fiable ao receptor independentemente dos cambios na ligazón de rede, o que fai que o formato de paquete de protocolo de TCP sexa máis complexo que o de UDP.
Baseado en byte-stream: A natureza baseada en transmisión de bytes de TCP permite a transmisión de mensaxes de calquera tamaño e garante a orde de mensaxes: aínda que a mensaxe anterior non se recibise completamente e, aínda que se recibiron os bytes posteriores, TCP non os entregará á capa de aplicacións para o seu procesamento e deixará automaticamente os paquetes duplicados.
Unha vez que o host A e o host B estableceron unha conexión, a aplicación só debe usar a liña de comunicación virtual para enviar e recibir datos, asegurando así a transmisión de datos. O protocolo TCP é o responsable de controlar tarefas como o establecemento de conexión, a desconexión e a celebración. Cómpre sinalar que aquí dicimos que a liña virtual só significa establecer unha conexión, a conexión do protocolo TCP só indica que os dous lados poden iniciar a transmisión de datos e asegurar a fiabilidade dos datos. Os nodos de enrutamento e transporte son manexados polos dispositivos de rede; O propio protocolo TCP non está preocupado con estes detalles.

Unha conexión TCP é un servizo de duplex completo, o que significa que o host A e o host B poden transmitir datos en ambas as direccións nunha conexión TCP. É dicir, os datos pódense transferir entre o host A e o host B nun fluxo bidireccional.

TCP almacena temporalmente os datos no búfer de envío da conexión. Este búfer de envío é un dos caché configurados durante o aperto de man a tres bandas. Posteriormente, TCP enviará os datos na caché de envío á caché de recepción do servidor de destino no momento adecuado. Na práctica, cada compañeiro terá unha caché de envío e unha caché de recepción, como se mostra aquí:

TCP-UDP

O búfer de envío é unha área de memoria mantida pola implementación TCP no lado do remitente que se usa para almacenar temporalmente os datos a enviar. Cando se realiza o aperto de man a tres bandas para establecer unha conexión, a caché de envío está configurada e úsase para almacenar datos. O búfer de envío axústase dinámicamente segundo a conxestión da rede e a retroalimentación do receptor.

Un búfer de recepción é unha área de memoria mantida pola implementación TCP no lado receptor que se usa para almacenar temporalmente os datos recibidos. TCP almacena os datos recibidos na caché de recepción e agarda a aplicación superior para lela.

Teña en conta que o tamaño de caché de envío e recibo caché é limitado, cando a caché está chea, TCP pode adoptar algunhas estratexias, como o control de conxestión, o control de fluxo, etc., para garantir a transmisión de datos fiable e a estabilidade da rede.

Nas redes informáticas, a transmisión de datos entre hosts realízase mediante segmentos. Entón, que é un segmento de paquetes?

TCP crea un segmento TCP, ou segmento de paquetes, dividindo o fluxo entrante en anacos e engadindo cabeceiras TCP a cada troco. Cada segmento só se pode transmitir durante un tempo limitado e non pode exceder o tamaño máximo do segmento (MSS). No seu camiño cara a abaixo, un segmento de paquetes pasa pola capa de ligazón. A capa de ligazón ten unha unidade de transmisión máxima (MTU), que é o tamaño máximo do paquete que pode pasar pola capa de enlace de datos. A unidade de transmisión máxima normalmente está relacionada coa interface de comunicación.

Entón, cal é a diferenza entre MSS e MTU?

Nas redes informáticas, a arquitectura xerárquica é moi importante porque ten en conta as diferenzas entre os diferentes niveis. Cada capa ten un nome diferente; Na capa de transporte, os datos chámanse segmento e, na capa de rede, os datos chámanse paquete IP. Polo tanto, a unidade de transmisión máxima (MTU) pódese pensar como o tamaño máximo do paquete IP que pode ser transmitido pola capa de rede, mentres que o tamaño máximo do segmento (MSS) é un concepto de capa de transporte que se refire á cantidade máxima de datos que poden ser transmitidos por un paquete TCP á vez.

Teña en conta que cando o tamaño máximo do segmento (MSS) é maior que a unidade de transmisión máxima (MTU), a fragmentación IP realizarase na capa de rede e TCP non dividirá os datos máis grandes en segmentos adecuados para o tamaño da MTU. Haberá unha sección na capa de rede dedicada á capa IP.

Estrutura do segmento de paquetes TCP
Imos explorar o formato e o contido das cabeceiras TCP.

Segmento TCP

Número de secuencia: Un número aleatorio xerado polo ordenador cando a conexión se establece como o seu valor inicial cando se establece a conexión TCP e o número de secuencia é enviado ao receptor a través do paquete SYN. Durante a transmisión de datos, o remitente aumenta o número de secuencia segundo a cantidade de datos enviados. O receptor xulga a orde dos datos segundo o número de secuencia recibido. Se os datos se atopan fóra de orde, o receptor reordenará os datos para garantir a orde dos datos.

Número de recoñecemento: Este é un número de secuencia usado en TCP para recoñecer a recepción de datos. Indica o número de secuencia dos seguintes datos que o remitente espera recibir. Nunha conexión TCP, o receptor determina que datos foron recibidos con éxito en función do número de secuencia do segmento de paquetes de datos recibido. Cando o receptor recibe con éxito os datos, envía un paquete ACK ao remitente, que contén o número de recoñecemento de recoñecemento. Despois de recibir o paquete ACK, o remitente pode confirmar que os datos antes de recoñecer o número de resposta foron recibidos con éxito.

Os bits de control dun segmento TCP inclúen o seguinte:

Bit ack: Cando este bit é 1, significa que o campo de resposta de recoñecemento é válido. TCP especifica que este bit debe estar configurado en 1, excepto para os paquetes SYN cando se establece inicialmente a conexión.
Primeiro bit: Cando este bit é 1, indica que hai unha excepción na conexión TCP e a conexión debe ser obrigada a ser desconectada.
Syn bit: Cando este bit está configurado en 1, significa que se debe establecer a conexión e o valor inicial do número de secuencia está configurado no campo do número de secuencia.
Bit de aleta: Cando este bit é 1, significa que non se enviarán máis datos no futuro e se desexa a conexión.
As diversas funcións e características do TCP están plasmadas pola estrutura dos segmentos de paquetes TCP.

Que é UDP? (Mylinking'sTap de redeeCorredor de paquetes de redepodería procesar paquetes TCP ou UDP)
O Protocolo de Datagram de usuario (UDP) é un protocolo de comunicación sen conexión. En comparación con TCP, UDP non proporciona mecanismos de control complexos. O protocolo UDP permite que as aplicacións envíen directamente paquetes IP encapsulados sen establecer unha conexión. Cando o desenvolvedor opta por usar UDP en vez de TCP, a aplicación comunica directamente coa IP.

O nome completo do protocolo UDP é o protocolo de datagrama de usuarios e o seu encabezado é só oito bytes (64 bits), o que é moi conciso. O formato da cabeceira UDP é o seguinte:

Segmento UDP

Portos de destino e fonte: O seu principal propósito é indicar a que proceso UDP debe enviar paquetes.
Tamaño do paquete: O campo do tamaño do paquete ten o tamaño do cabeceiro UDP máis o tamaño dos datos
Cheque: Deseñado para garantir a entrega fiable de cabeceiras e datos UDP O papel do checkum é detectar se se produciu un erro ou corrupción durante a transmisión dun paquete UDP para garantir a integridade dos datos.

Diferenzas entre TCP e UDP en Mylinking'sTap de redeeCorredor de paquetes de redePodería procesar paquetes TCP ou UDP
TCP e UDP son diferentes nos seguintes aspectos:

TCP vs UDP

Conexión: TCP é un protocolo de transporte orientado á conexión que require que se poida establecer unha conexión antes de que se poidan transferir datos. A UDP, por outra banda, non require unha conexión e pode transferir datos inmediatamente.

Obxecto de servizo: TCP é un servizo de dous puntos, é dicir, unha conexión ten só dous puntos finais para comunicarse entre si. Non obstante, UDP admite unha comunicación interactiva de un, un a moitos e moitos a moitos, que pode comunicarse con varios hosts ao mesmo tempo.

Fiabilidade: TCP ofrece o servizo de entrega de datos de forma fiable, garantindo que os datos sexan libres de erros, sen perdas, non duplicados e cheguen baixo demanda. A UDP, por outra banda, fai o seu mellor esforzo e non garante a entrega fiable. O UDP pode sufrir perda de datos e outras situacións durante a transmisión.

Control de conxestión, control de fluxo: TCP ten mecanismos de control de conxestión e control de fluxo, que poden axustar a taxa de transmisión de datos segundo as condicións da rede para garantir a seguridade e estabilidade da transmisión de datos. O UDP non ten mecanismos de control de conxestión e control de fluxo, aínda que a rede estea moi conxestionada, non fará axustes á taxa de envío de UDP.

Cabeceira de cabeza: TCP ten unha longa lonxitude de cabeceira, normalmente 20 bytes, o que aumenta cando se usan campos de opción. A UDP, pola súa banda, ten un cabezazo fixo de só 8 bytes, polo que o UDP ten unha cabeceira inferior.

TCP vs UDP

Escenarios de aplicación TCP e UDP:
TCP e UDP son dous protocolos de capa de transporte diferentes e teñen algunhas diferenzas nos escenarios de aplicación.

Dado que TCP é un protocolo orientado á conexión, úsase principalmente en escenarios onde é necesario a entrega de datos fiable. Algúns casos de uso común inclúen:

Transferencia de ficheiro FTP: TCP pode asegurarse de que os ficheiros non se perden e corrompen durante a transferencia.
HTTP/HTTPS: TCP asegura a integridade e a corrección do contido web.
Debido a que UDP é un protocolo sen conexión, non proporciona garantía de fiabilidade, pero ten as características da eficiencia e do tempo real. UDP é adecuado para os seguintes escenarios:

Tráfico de baixo paquete, como DNS (sistema de nomes de dominio): As consultas DNS adoitan ser paquetes curtos e UDP pode completalos máis rápido.
Comunicación multimedia como vídeo e audio: Para a transmisión multimedia con altos requisitos en tempo real, UDP pode proporcionar unha latencia máis baixa para asegurarse de que os datos poidan transmitirse de xeito oportuno.
Comunicación de transmisión: UDP admite unha comunicación individual e moitos e moitos e pódese usar para a transmisión de mensaxes de transmisión.

Resumo
Hoxe aprendemos sobre TCP. TCP é un protocolo de comunicación de transporte baseado en conexións orientado á conexión, fiable, baseado en bytes. Asegura a transmisión fiable e a recepción ordenada de datos establecendo conexión, aperta de man e recoñecemento. O protocolo TCP usa portos para realizar a comunicación entre procesos e ofrece servizos de comunicación directa para os procesos de aplicación que se executan en diferentes hosts. As conexións TCP son dúplex completas, permitindo transferencias de datos bidireccionais simultáneas. En contraste, UDP é un protocolo de comunicación orientado a conexión, que non proporciona garantías de fiabilidade e é adecuado para algúns escenarios con altos requisitos en tempo real. TCP e UDP son diferentes no modo de conexión, obxecto de servizo, fiabilidade, control de conxestión, control de fluxo e outros aspectos e os seus escenarios de aplicación tamén son diferentes.


Tempo de publicación: decembro do 03-2024