Provided by: manpages-pt_20040726-2_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.

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