Provided by: manpages-pt_20040726-5_all bug

NOME

       udp - Protocolo UDP do IPv4.

SINÓPSE

       #include <sys/socket.h>
       #include <netinet/in.h>
       udp_socket = socket(PF_INET, SOCK_DGRAM, 0);

DESCRIÇÃO

       Esta  é  uma  implementação  do  User  Datagram Protocol descrito na RFC768. Ele implementa um serviço de
       datagramas sem checagem dos pacotes e não orientado a conexão.   Os  pacotes  podem  ser  reordenados  ou
       duplicados  antes  de  chegar ao destino. O UDP gera e checa a validade (checksum) dos pacotes para pegar
       possíveis erros de transmissão.

       Quando um soquete UDP é criado, os endereços local e remoto são indefinidos.   Os  datagramas  podem  ser
       usados  imediatamente  através do comando: sendto(2) ou sendmsg(2) com um endereço de destino válido como
       argumento. Quando o comando connect(2) é usado no soquete, o endereço de destino padrão é  definido  e  o
       datagrama pode ser enviado usando-se o comando: send(2) ou write(2) sem a necessidade de especificação do
       endereço  de  destino.   Pode-se  também  enviar para outros destinos passando um endereço para o comando
       sendto(2) ou sendmsg(2).  Para poder receber os pacotes um  endereço  local  deve  ser  definido  para  o
       soquete  usando-se  o  comando:  bind(2),  quando  este não é o caso, a camada do soquete automáticamente
       atribuirá uma porta local ao primeiro requisito do usuário.

       Todas as operações de recepção retornam apenas um pacote. Quando  o  pacote  é  menor  do  que  o  buffer
       informado,  apenas  a  quantidade  referente  aos  dados  é  retornada. Quando o pacote é maior o mesmo é
       truncado e o indicador MSG_TRUNC é ativado.

       Opções IP podem ser enviadas ou recebidas usando as opções do soquete descritas no ip(7).   Elas  só  são
       processadas  pelo  Linux  quando  a sysctl apropriada está habilitada (mas ainda é passada para o usuário
       mesmo quando desativada). veja no ip(7).

       Quando o indicador MSG_DONTROUTE está ativo, o envio do endereço de destino deve referir-se  ao  endereço
       da interface local e o pacote só é enviado para esta interface.

       O UDP fragmenta um pacote quando seu tamanho total excede a MTU (Maximum Transmission Unit) da interface.
       Uma alternativa mais amigável é usar a deteção da MTU como descrita na seção IP_PMTU_DISCOVER do ip(7).

FORMATO DO ENDEREÇO

       O UDP usa o formato de endereço sockaddr_in do IPv4 descrito no ip(7).

TRATAMENTO DE ERROS

       Todos  os  erros  fatais  serão passados para o usuário como um erro retornado mesmo quando o soquete não
       está conectado. Esta característica difere de  outras  implementações  de  soquete  BSD  que  não  passam
       quaisquer erros a menos que o soquete esteja conectado. Esta característica no Linux está de acordo com a
       RFC1122.

       Para  compatibilidade  é  possível  definir a opção SOL_SOCKET SO_BSDCOMPAT para só receber erros remotos
       quando o soquete estiver conectado (exceto para EPROTO e EMSGSIZE).  É  melhor  corrigir  o  código  para
       manipular  os  erros adequadamente do que habilitar esta opção.  Os erros gerados localmente sempre serão
       passados.

       Quando a opção IP_RECVERR está habilitada todos os erros são armazenados na fila de erros  do  soquete  e
       podem ser recebidos pelo recvmsg(2) com o indicador MSG_ERRQUEUE ativado.

ERROS

       Todos  os  erros  documentados  pelo  socket(7) ou ip(7) podem ser retornado por um send ou receive em um
       soquete UDP.

       ECONNREFUSED Nenhum receptor foi associado ao endereço de destino. Isto pode  ter  sido  causado  por  um
       pacote enviado anteriormente no soquete.

VERSÕES

       IP_RECVERR é uma nova característica do Linux 2.2

CRÉDITOS

       Esta página de manual foi escrita por Andi Kleen.

VEJA TAMBÉM

       ip(7), socket(7), raw(7).

       RFC768 - O protocolo UDP.
       RFC1122 - Requesitos da máquina.
       RFC1191 - Descrição da deteção do MTU.

TRADUZIDO POR LDP-BR em 21/08/2000.

       [u00E1]bio    Henrique    F.    Silva    <fabiohfs@mail.com>   (Tradução)   André   L.   Fassone   Canova
       <lonelywolf@blv.com.br> (revisão)

Página de Manual Linux                             02/10/1998                                             UDP(7)