Os datagramas são usados em situações onde:
*
A comunicação sem conexão é desejada: As redes de datagrama não estabelecem uma conexão dedicada antes de enviar dados. Cada pacote é independente e roteado individualmente. Isso contrasta com protocolos orientados a conexão como o TCP.
*
A eficiência é fundamental, mesmo ao custo da confiabilidade: Como os datagramas não precisam de configuração de conexão e tecer suspenso, eles são mais eficientes para rajadas curtas de dados ou quando as condições da rede são imprevisíveis. No entanto, essa eficiência tem o custo de possíveis perdas de pacotes ou entrega fora de ordem, o que requer protocolos de nível superior.
*
é necessária uma comunicação de transmissão ou multicast: Os datagramas são adequados para enviar uma única mensagem para vários destinatários simultaneamente.
*
aplicativos em tempo real com jitter tolerável estão envolvidos: Embora os datagramas não garantem o pedido de entrega, geralmente são suficientes para aplicações onde atrasos ocasionais ou perda de pacotes são aceitáveis, como streaming de áudio ou vídeo. Nesses casos, o próprio aplicativo lida com retransmissão ou correção de erros.
*
As aplicações precisam de implementação simples: A falta de estabelecimento e desmontagem de conexão simplifica a implementação de aplicativos que usam datagramas.
Exemplos de protocolos que usam datagramas: *
udp (protocolo de datagrama do usuário): Um protocolo de camada de transporte amplamente usado, fornecendo comunicação sem conexão. Freqüentemente usado para transmitir mídia, jogos on -line e pesquisas de DNS.
*
IP (Internet Protocol): O protocolo da camada de rede que dirige os datagramas na Internet. É a base da comunicação da Internet.
Em resumo, os datagramas são o cavalo de trabalho da comunicação sem conexão, fornecendo eficiência ao custo de alguma confiabilidade. Sua adequação depende muito dos requisitos do aplicativo específico. Se a confiabilidade for crucial, o TCP (ou outro protocolo orientado a conexão) é geralmente preferido.