UDP e Transporte sem Conexão
O User Datagram Protocol (UDP) é o transporte leve e sem conexão da Internet, adicionando pouco mais do que multiplexação de processos e um checksum opcional ao serviço de melhor esforço do IP, de modo que as aplicações obtêm sobrecarga e latência mínimas ao custo de garantias de confiabilidade.
Definition
O User Datagram Protocol (UDP) é um protocolo de camada de transporte sem conexão que fornece entrega de melhor esforço, orientada a mensagens, entre processos, adicionando multiplexação baseada em porta e um checksum opcional à camada de rede, mas não oferecendo confiabilidade, ordenação, controle de fluxo ou controle de congestionamento.
Scope
Este tópico aborda o transporte sem conexão: o formato do segmento UDP, sua multiplexação e demultiplexação via números de porta, seu checksum opcional e as razões pelas quais uma aplicação o escolheria em vez do TCP — sem atraso na configuração da conexão, sem estrangulamento por controle de congestionamento, controle mais refinado sobre o que e quando enviar, e pequena sobrecarga por pacote. Ele examina aplicações típicas baseadas em UDP e as responsabilidades (como confiabilidade ou controle de taxa) que são transferidas para a aplicação. Exclui os mecanismos de confiabilidade e congestionamento do TCP.
Core questions
- Quais serviços mínimos o UDP adiciona sobre o IP?
- Como o UDP multiplexa e demultiplexa dados usando números de porta?
- Por que uma aplicação preferiria UDP a TCP?
- Quais responsabilidades, como confiabilidade e controle de taxa, são transferidas para a aplicação com o UDP?
- Que tipos de aplicações tipicamente usam UDP?
Key concepts
- serviço sem conexão
- orientação a datagramas (mensagens)
- formato do segmento UDP
- multiplexação/demultiplexação baseada em porta
- checksum opcional
- baixa sobrecarga e latência
- sem controle de congestionamento
- confiabilidade na camada de aplicação
Key theories
- Serviço mínimo sem conexão
- O UDP expõe o serviço de datagrama de melhor esforço do IP às aplicações quase inalterado, adicionando apenas multiplexação por porta e um checksum opcional, de modo que não possui configuração, estado ou recuperação automática — trocando garantias por simplicidade e baixa latência.
- Transporte controlado pela aplicação
- Ao evitar o controle de congestionamento e a confiabilidade do TCP, o UDP oferece à aplicação controle direto sobre o tempo e o que retransmitir, o que é adequado para protocolos em tempo real e personalizados, mas obriga a aplicação a lidar com perdas e evitar sobrecarregar a própria rede.
Clinical relevance
O UDP sustenta serviços onde a baixa latência ou o controle refinado são mais importantes do que a entrega garantida: consultas DNS, voz e vídeo em tempo real, jogos online e gerenciamento de rede. Transportes mais recentes, como o QUIC, são construídos sobre o UDP precisamente para obter controle sobre o transporte, contornando as restrições do TCP, tornando o transporte sem conexão central para as redes modernas de baixa latência.
History
O UDP foi especificado na RFC 768 (1980) como um transporte mínimo para aplicações que não necessitavam dos mecanismos do TCP, quando o TCP e o IP foram separados em protocolos distintos. Ele permaneceu essencialmente inalterado, e seu papel cresceu à medida que as aplicações sensíveis à latência proliferaram e os desenvolvedores construíram novos recursos de transporte, incluindo o protocolo QUIC, sobre ele.
Key figures
- Jon Postel
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc768
- kurose2021
Frequently asked questions
- Se o UDP não é confiável, por que usá-lo?
- Para muitas aplicações, a entrega rápida é mais importante do que a entrega perfeita. Voz e vídeo em tempo real podem tolerar perdas ocasionais, mas não atrasos; o DNS se beneficia de uma consulta rápida de troca única; e algumas aplicações implementam sua própria confiabilidade. A falta de configuração e o estrangulamento de congestionamento do UDP proporcionam menor latência e mais controle.
- O UDP faz algo além do IP?
- Sim, mas pouco. O UDP adiciona números de porta para que os dados cheguem ao processo de aplicação correto em um host (multiplexação e demultiplexação), e um checksum opcional para detectar corrupção. Além disso, ele mantém a entrega de melhor esforço e sem conexão do IP inalterada.