A camada de transporte conecta pontos de extremidade das aplicações através de uma rede IP. Tanto o TCP quanto o UDP usam números de porta de 16 bits, mas expõem às aplicações modelos de comunicação e garantias diferentes.
Noções Básicas de Rede · Lição 6
Camada de transporte
Aprenda como TCP e UDP usam portas e diferentes semânticas de entrega entre pontos de extremidade das aplicações.
Portas e sockets
Uma porta de destino ajuda o sistema operacional a entregar o tráfego a um socket em escuta. Uma conexão ou fluxo é identificado por mais de uma porta: importam o protocolo, os endereços de origem e destino e as portas de origem e destino. Por isso, a mesma porta de servidor pode atender muitos clientes simultaneamente.
Como uma porta de servidor TCP pode atender vários clientes ao mesmo tempo?
Fluxos de bytes TCP
O TCP fornece um fluxo de bytes confiável e ordenado enquanto a conexão permanece viável. Ele usa números de sequência, confirmações, retransmissão, controle de fluxo e controle de congestionamento. O TCP não preserva os limites das mensagens da aplicação: uma gravação pode chegar por meio de várias leituras, ou uma leitura pode retornar várias gravações. As aplicações definem seu próprio enquadramento.
Confiabilidade não significa entrega absoluta. Uma conexão pode atingir o tempo limite, ser redefinida ou falhar, e uma confirmação não comprova que uma aplicação gravou os dados de forma durável.
O que acontece com os limites das mensagens da aplicação no TCP?
O handshake TCP
Uma conexão TCP normal começa com um handshake de três vias:
- O iniciador envia
SYNcom suas informações iniciais de sequência. - O ouvinte responde com
SYN-ACK, suas próprias informações de sequência e uma confirmação. - O iniciador retorna
ACK.
Isso estabelece o estado do transporte nos dois pontos de extremidade. Não autentica o servidor da aplicação nem comprova que a operação solicitada da aplicação terá sucesso.
Qual é a ordem normal do handshake TCP de três vias?
Datagramas UDP
O UDP preserva os limites dos datagramas e fornece detecção de erros baseada em soma de verificação, mas não oferece o estado de conexão, a ordenação, a retransmissão, o controle de fluxo nem o controle de congestionamento do TCP. Uma aplicação pode acrescentar por conta própria qualquer comportamento necessário de confiabilidade ou congestionamento. O UDP não é automaticamente mais rápido; o desempenho depende do projeto do protocolo, da carga de trabalho, do caminho e da implementação.
Qual propriedade o UDP fornece às aplicações?
Inspecionando pontos de extremidade do transporte
Use ss para inspecionar sockets em escuta e conectados sem alterá-los:
$ ss -lntup
$ ss -tn state established
Os detalhes dos processos podem exigir privilégios. Um socket em escuta comprova a prontidão local apenas no limite do transporte; firewall, roteamento, família de endereços, TLS e integridade da aplicação ainda precisam dos testes adequados.
O que um socket TCP em escuta estabelece?
Lição concluída
Você concluiu Camada de transporte
Agora você pode diferenciar o comportamento de fluxo do TCP do comportamento de datagrama do UDP.
Identifique um fluxo usando o protocolo, os endereços e as portas.
Trate o TCP como um fluxo de bytes confiável e ordenado, sem limites de mensagens.
Reconheça o que o handshake TCP comprova e o que ele não comprova.
Trate a confiabilidade e o comportamento de congestionamento do UDP como escolhas de projeto da aplicação.
Verifique a integridade da aplicação além do estado do socket local.
Salve seu progresso
Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.
Criar uma conta gratuita