"User Datagram Protocol" (UDP)O protocolo IP não pode ser directamente usado pelas aplicações porque não utiliza números de porta. A funcionalidade acrescentada pelo UDP ao IP limita-se à definição de números de porta e "checksum" sobre todo o "datagrama" (incluindo dados) (RFC 768). O UDP é um protocolo de troca de mensagens não fiável, não garantindo a entrega dos "datagramas", a ordem de entrega nem a eliminação de duplicados. Este tipo de fiabilidade é disponibilizada pelo TCP O cabeçalho UDP é muito reduzido, é constituido por 4 campos de 16 bits cada: - Porta de Origem - Porta de Destino - Comprimento do "datagrama" (Cabeçalho UDP + Dados) - Checksum de todo o "datagrama" (Pseudo-cabeçalho IP + Cabeçalho UDP + Dados) Os endereços IP de origem e destino encontram-se no cabeçalho do datagrama IP no qual os dados UDP são encapsulados sob o identificador 17. Números de PortaA definição de números de porta é fundamental para permitir mais do que um destino em cada máquina, num sistema operativo multi-processo cada processo que utiliza a rede requesita uma porta ("abertura da porta") que lhe fica associada, todos os dados que chegam à máquina com essa porta de destino são encaminhados para esse processo. Tanto o UDP como o TCP implementam números de porta, mas são independentes umas das outras. O sistema operativo garante que numa dada máquina cada porta apenas é usada por um processo. As portas de número inferior a 1024 são reservadas para serviços especificos e conhecidas por "well known ports". Apresenta-se a seguir um extracto de um ficheiro /etc/services de um sistema UNIX, com as associações "well known port" - serviço: # # Network services, Internet style # # Note that it is presently the policy of IANA to assign a single well-known # port number for both TCP and UDP; hence, most entries here have two entries # even if the protocol doesn't support UDP operations. # Updated from RFC 1340, ``Assigned Numbers'' (July 1992). Not all ports # are included, only the more common ones. # # from: @(#)services 5.8 (Berkeley) 5/9/91 # $Id: services,v 1.9 1993/11/08 19:49:15 cgd Exp $ # tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp 21/tcp # 22 - unassigned telnet 23/tcp # 24 - private smtp 25/tcp mail # 26 - unassigned time 37/tcp timserver time 37/udp timserver rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 whois 43/tcp nicname domain 53/tcp nameserver # name-domain server domain 53/udp nameserver mtp 57/tcp # deprecated bootps 67/tcp # BOOTP server bootps 67/udp bootpc 68/tcp # BOOTP client bootpc 68/udp tftp 69/udp gopher 70/tcp # Internet Gopher gopher 70/udp rje 77/tcp netrjs finger 79/tcp www 80/tcp http # WorldWideWeb HTTP www 80/udp # HyperText Transfer Protocol link 87/tcp ttylink kerberos 88/tcp krb5 # Kerberos v5 kerberos 88/udp supdup 95/tcp # 100 - reserved hostnames 101/tcp hostname # usually from sri-nic iso-tsap 102/tcp tsap # part of ISODE. csnet-ns 105/tcp cso-ns # also used by CSO name server csnet-ns 105/udp cso-ns rtelnet 107/tcp # Remote Telnet rtelnet 107/udp pop2 109/tcp postoffice # POP version 2 pop2 109/udp pop3 110/tcp # POP version 3 pop3 110/udp sunrpc 111/tcp sunrpc 111/udp auth 113/tcp tap ident authentication sftp 115/tcp ........................ Os números de porta são o nível mais elevado de uma sequência de mecanismos de multiplexagem que permitem implementações paralelas das várias camadas:
A figura seguinte ilustra este processo: |