Protocolo UDP
Até agora descrevemos ligações que utilizam apenas o protocolo TCP, e onde este era o responsável pela divisão das mensagens em datagramas assim como da sua posterior reconstrução. Muitas aplicações têm mensagens que cabem num único datagrama, sendo um exemplo o uso do conhecido serviço de nomes (DNS).
O serviço de DNS é chamado sempre que um utilizador especifica um nome de uma máquina cujo endereço o computador não conhece. Neste caso o computador que estamos a utilizar terá de recorrer a um servidor de DNS para conhecer o endereço IP correspondente ao nome indicado. O que o computador faz nesta situação é enviar um pedido a um dos sistemas DNS que tem a base de dados dos endereços IP, esta mensagem como é muito curta cabe num único datagrama, assim como a resposta. Neste caso não é muito adequado usar TCP, uma vez que não necessitamos de toda a complexidade e segurança que este protocolo oferece. Para este tipo de mensagens existem alternativas ao TCP.
A alternativa mais comum é o UDP ("User Datagram Protocol"), que é adequada para aplicações que não necessitam de recontruir a sequência dos datagramas, é bastante semelhante ao TCP. Existe um cabeçalho UDP que é posto à frente dos dados (como no TCP) embora mais pequeno que o do TCP, sendo depois este datagrama enviado para o IP onde é acrescentado o cabeçalho IP mas com o numero do UDP no campo protocol type.
O UDP não faz o mesmo que o TCP, não divide os dados em datagramas, nem segue o rasto do que é enviado pelo que não pode reenviar os dados se for necessário. O que o UDP fornece é o numero dos portos que é usado da mesma forma que os portos no TCP, pelo que vários programas podem utilizar o protocolo UDP ao mesmo tempo. Neste protocolo existem vários portos pré-defenidos para servidores que usam UDP. O cabeçalho UDP para além dos portos origem e destino possui também um campo de checksum, não possui um campo para um numero de sequência pois não é necessário. O UDP é usado para o serviço de