Documentos de Académico
Documentos de Profesional
Documentos de Cultura
O Nvel de Transporte
Implementa um servio de comunicao fima-fim:
Protocolos de transporte rodam nos sistemas finais e permitem que aplicaes em uma mquina enviem mensagens individuais para aplicaes parceiras, localizadas em qualquer outra mquina da internet.
Prov uma comunicao lgica entre processos de aplicao rodando em diferentes hosts.
Comunicao Fim-a-Fim
application transport network data link physical network data link physical network data link physical
network data link physical application transport network data link physical
Protocolo do nvel de transporte que implementa um servio do tipo best-effort (no confivel, sem garantia de entrega dos dados). Tempo real, garantia de banda passante e multicast confivel.
Protocolo de transporte fim-a-fim, orientado a conexo, que fornece um servio de transferncia confivel de dados entre aplicaes parceiras. Garante que os dados so entregues livres de erro, em seqncia e sem perdas ou duplicao.
Encapsulamento
Caractersticas Gerais
Usa o conceito de sockets para caracterizar uma conexo. Permite estabelecer uma conexo entre um par de sockets de acordo com parmetros de qualidade de servio e segurana previamente especificados. Prov comunicao do tipo full-duplex entre os dois sockets da conexo. Esta comunicao sempre unicast e ponto-a-ponto.
Uma conexo definida univocamente por um par de sockets. Socket = endereo IP + porta
Caractersticas Gerais
(cont.)
O estabecimento de conexes negociado (uso do mecanismo de three-way handshaking). Admite o trmino negociado ou abrupto de conexes. Implementa temporizao na entrega de dados. Realiza a entrega ordenada de dados. Permite a sinalizao de dados urgentes. Permite o relato de falha de servio. Permite a entrega obrigatria de dados (flag push).
Handshaking = troca de mensagens de controle.
Caractersticas Gerais
(cont.)
Controle de fluxo baseado no uso de janelas deslizantes com alocao de crditos. Controle de erros atravs do uso de nmeros de seqncia e do clculo do checksum para todo o segmento. Recuperao de erros para dados perdidos e duplicados. Demultiplexao entre mltiplas aplicaes em um dado host destino. Segmentao de dados para aumentar a eficincia da transmisso.
O Conceito de Porta
Para cada nvel da arquitetura existe um campo no protocolo da camada que indica para quem os dados encapsulados devem ser entregues.
De maneira similar, para distinguir dentre as vrias aplicaes, o nvel de transporte associa um identificador a cada processo de aplicao. Esse identificador chamado de Porta (port number).
No nvel de enlace, o campo Type indica qual o protocolo que est encapsulado no frame Ethernet (p.ex., um valor igual a 0x0800 indica que os dados devem ser passados para o IP). No nvel de rede, o campo Protocol no cabealho do IP identifica o protocolo para o qual o datagrama deve ser repassado (p.ex., 17 para o UDP e 6 para o TCP).
Porta
(cont.)
Porta
(cont.)
Uma porta um objeto abstrato, codificado por um nmero inteiro de 16 bits, usado para identificar processos de aplicao. Para uma aplicao poder falar com uma outra numa mquina remota, preciso conhecer no apenas o endereo IP da mquina destino mas tambm a porta associada aplicao parceira. O UDP e o TCP fornecem um conjunto de portas que permite a mltiplos processos dentro de uma nica mquina usarem os servios de comunicao providos pelo UDP e TCP simultaneamente.
Portas
(cont.)
Well-Known Ports
Nmeros de portas referentes a servios especficos, pblicos e globais, conhecidos de todas as aplicaes.
Modelo de Comunicao
(cont.)
O TCP retira ento parte desses dados do buffer e adiciona um cabealho, formando um segmento. O segmento constitui a PDU da camada de transporte.
Modelo de Comunicao
(cont.)
Buffer de transmisso
Dados recebidos
Vazio
Segmento
Segmento
A unidade de dados trocada entre as entidades de transporte denominada de Segmento. Cada segmento entregue ao IP para transmisso em um nico datagrama. Entretanto, a fragmentao pode ser necessria no nvel de rede. Como um protocolo orientado a byte o TCP livre para dividir o stream de bytes em segmentos de qualquer tamanho para transmisso.
O segmento a unidade bsica de transferncia de dados do TCP.
Segmento
(cont.)
P3
receiver
M M
P4 P2
P1
M
Segmento
(cont.)
O tamanho de cada segmento independente dos blocos de dados que a aplicao fornece. Normalmente, o TCP espera juntar uma quantidade razovel de dados no buffer antes de formar um segmento. Segmentos de tamanho grande permitem um uso mais eficiente das facilidades de transmisso. Entretanto, no so adequados para certas aplicaes, como as interativas.
Segmento
(cont.)
Nmeros de Seqncia Cada byte de um segmento de dados enviado em uma conexo TCP visto como tendo um nmero de seqncia. O cabealho do TCP contm o nmero de seqncia do primeiro byte do segmento. Cada lado de uma conexo TCP possui o seu prprio conjunto de nmeros de seqncia.
Nmeros de Seqncia
(cont.)
[205] [204] [203] [202] [201] [200] [400] [401] [402] [403] [404] [405]
Nmero de Seqncia
(cont.)
O primeiro nmero de seqncia para cada lado de uma conexo especificado no estabelecimento da conexo. Para que uma conexo seja estabelecida os dois lados devem se sincronizar (concordar) com o nmero de seqncia inicial de cada lado.
Portas TCP
O TCP usa o conceito de porta para identificar a aplicao destino. Os nmeros das portas TCP variam de 0 a 65535. Portas de 0 a 1023 so reservadas para o acesso a servios padro, como FTP e Telnet (well-known ports). As portas permitem que vrios processos dentro de uma estao utilizem simultaneamente as facilidades de transmisso do TCP. A associao de portas aos processos tratada independentemente em cada estao.
Decimal 1 5
Description TCP Multiplexer Remote Job Entry Echo Discard Active Users Daytime Who is up? Quote of the Day Character Generator File Transfer Protocol (data) File Transfer Protocol (control) Telnet Simple Mail Transport Protocol Time Resource Location Protocol Host Name Server Who Is Domain Name Server
7 9 11 13 15 17 19 20 21 23 25 37 39 42 43 53
Description Bootstrap Protocol Server Bootstrap Protocol Client Trivial Filter Transfer Any Private Dial-out Server Any Private RJE Service Who is on System NIC Host Name Server ISO-TSAP X.400 Mail Service X.400 Mail Sending SUN Remote Procedure Call Authentication Service Net Bios Session Service
Sockets
Um socket definido pela combinao de um endereo IP e uma porta, sendo escrito sob a forma nmero IP.nmero da porta
Ex: 128.1.50.30.23 130.2.15.8.2219
Um socket prov toda a informao de endereamento que um cliente ou um servidor necessita para identificar seu parceiro na comunicao. Uma conexo TCP caracterizada univocamente por dois sockets, um em cada lado da conexo.
Sockets
(cont.)
O exemplo abaixo mostra uma sesso TCP de um cliente, identificado pela porta 2219 e endereo IP 130.2.15.8, para a porta padro Telnet (23), na mquina 128.1.50.30.
> netstat -na Active Internet connections (including servers) Proto .......... Local Address Foreing Address
(state) Established
tcp
..........
128.1.50.30.23 130.2.15.8.2219
Sockets
(cont.)
TCP Connection of Two Hosts Connection Source IP Address 1 2 192.9.218.97 192.9.218.97 TCP Port Destination IP Address 1234 1235 192.9.218.96 192.9.218.96 TCP Port 23 Telnet 23 Telnet
Sockets
host A
(cont.)
server B
Controle de Fluxo
Tcnica usada para garantir que a estao transmissora no envia mais dados do que a estao receptora pode processar. Quando dados so recebidos, a estao gasta um certo tempo com o seu processamento e somente depois que libera o buffer e fica apta a receber mais dados. Na ausncia do controle de fluxo, os buffers de recepo poderiam encher enquanto ainda se estivesse processando dados antigos no buffer. Tcnicas de controle de fluxo:
Pra-e-Espera (Stop-and-Wait) Janelas Deslizantes (Sliding Windows)
Stop-and-Wait
a forma mais simples de controle de fluxo (no o esquema usado no TCP!). Os blocos de dados so numerados, alternadamente, como 0 e 1. Inicialmente, a entidade origem transmite o bloco de dados 0. Aps a recepo, a entidade destino indica o seu desejo de aceitar um outro bloco enviando de volta uma confirmao de recebimento (Ack) do bloco 0.
Geralmente, Ack1 confirma o recebimento do bloco 0 e solicita a transmisso do bloco de nmero 1, e Ack0 confirma o recebimento do bloco 1 e solicita a transmisso de um bloco de nmero 0.
A entidade origem sempre aguarda a recepo do Ack correspondente antes de enviar o prximo bloco. Desta forma, a estao destino pode controlar o fluxo de dados simplesmente retardando o envio do Ack.
(cont.)
(cont.)
(cont.)
Controle de Erros
Refere-se aos mecanismos usados para detectar e corrigir erros que ocorrem em uma transmisso de dados. Normalmente so considerados dois tipos de erro:
Bloco danificado: o bloco chega estao destino mas alguns dos seus bits possuem erros (foram alterados durante a transmisso). Bloco perdido: o bloco no chega estao destino. Pode ter sido descartado em um roteador ou um rudo pode t-lo danificado numa extenso tal que o receptor no est ciente de que ele tenha sido enviado.
Controle de Erros
(cont.)
Retransmisso aps timeout: a estao origem retransmite um bloco que no tenha sido confirmado aps certo tempo. Ack negativo com retransmisso: a estao destino retorna um Ack negativo para aqueles blocos onde erros foram detectados. A estao origem ento retransmite-os.
Coletivamente, esses mecanismos so referidos como tcnicas ARQ (Automatic Repeat Request). As trs verses mais comuns dessas tcnicas so:
Stop-and-wait ARQ Go-back-N ARQ Selective-reject ARQ
Todas essas tcnicas so baseadas no uso dos esquemas de controle de fluxo anteriormente descritos (Stop-andWait e Sliding Windows).
Stop-and-Wait ARQ
Stop-and-Wait ARQ
(cont.)
Go-Back-n ARQ
Mecanismo usado no TCP, em conjunto com o esquema de janelas deslizantes. A janela possui tamanho N, significando que at N blocos consecutivos so permitidos na janela. Os blocos de dados so numerados em seqncia mod N
Ex: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 ... (para N=8)
Ack(n):
Reconhece todos os blocos at o de nmero de seqncia n-1.
Go-Back-N em Ao
source port #
dest port #
checksum
Nmero das Portas Origem e Destino Identificam a aplicao transmissora e receptora, cada uma delas associada a um ponto da conexo. Esses dois valores, juntamente com os endereos IP de origem e destino, presentes no cabealho IP, identificam univocamente a conexo. Conexo = par de sockets.
Nmero de Seqncia
Identifica o nmero do primeiro byte dentro do stream de bytes que est sendo transmitido naquele segmento. Assume valores entre 0 e 232-1.
Nmero do Acknowledgement Como cada byte numerado, esse campo identifica o prximo nmero de sequncia (prximo byte) que se espera receber do host remoto. Esse valor igual ao nmero do ltimo byte recebido + 1. O campo vlido somente se o flag de ACK estiver ligado.
Nmero do Acknowledgement
(cont.)
Alguns segmentos carregam somente Ack enquanto outros carregam dados ou solicitaes para estabelecer ou encerrar uma conexo. Uma vez estabelecida a conexo, este campo ter sempre algum valor e o flag de ACK estar sempre ligado. Observao:
O TCP no faz Ack Seletivo nem tampouco Ack Negativo de bytes.
Tamanho do Cabealho Informa o tamanho do cabealho do segmento, medido em palavras de 32 bits. A informao de tamanho necessria porque o campo de Options do TCP possui tamanho varivel. Com 4 bits, o tamanho do cabealho limitado a 60 bytes. Sem opes, o tamanho default de 20 bytes.
Campo de Flags Os flags identificam o propsito e o contedo de cada segmento. Existem seis flags:
URG, ACK, PSH, RST, SYN e FIN.
Significado
Indica a presena de dados urgentes no segmento (urgent pointer vlido). Vale 1 para todos os segmentos, exceto p/ segmento SYN inicial (aknowledgement number vlido). Transmissor notifica ao receptor para que ele passe todos os dados que possui no seu buffer para o processo de aplicao. Resseta a conexo. Sincroniza os nmeros de seqncia no setup da conexo. Transmissor solicita trmino normal da conexo (parou de enviar dados).
Tamanho da Janela
Para implementao do seu mecanismo de controle de fluxo (sliding window), o TCP requer que cada um dos lados anuncie o tamanho da sua janela de recepo. O tamanho da janela determina o nmero de bytes que se est disposto a aceitar, iniciando-se com o valor definido no campo ack number. limitado ao valor 65.535 (0 a 216-1).
(cont.)
Solicita conexo a uma estao remota especfica, com nveis de segurana e precedncia especificados.
Estabelecimento de Conexo
(cont.)
As conexes podem ser estabelecidas no modo passivo ou ativo. No modo passivo, o usurio solicita ao TCP que aguarde pedidos de conexo (via primitiva Passive Open). Na Passive Open completamente especificada o usurio especifica um socket remoto do qual ele aceitar conexes. Uma conexo ento estabelecida quando uma Active Open executada na porta remota.
Estabelecimento de Conexo
(cont.)
Na Passive Open no especificada o usurio declara o seu desejo de estabelecer conexo com qualquer outro usurio. No modo ativo, usando a primitiva Active Open, o usurio solicita uma conexo com um socket especfico. A conexo pode ser aberta se existir uma primitiva Passive Open no socket remoto ou se o socket remoto tiver emitido um Active Open.
Estabelecimento de Conexo
Primitivas
(cont.)
Active Open, Active Open Os endereos de destino em cada primitiva referem-se ao outro socket. Parmetros de segurana so idnticos. Active Open, Passive Open completamente especificada Os endereos de destino em cada primitiva referem-se ao outro socket. Parmetro de segurana na Active Open est dentro da faixa especificada pela Passive Open. O parmetro de segurana na Active Open est dentro da faixa especificada pela Passive Open.
Open Failure
Relata falha de um pedido de Active Open.
Open Success
Relata a concluso de um pedido de Active Open ou Passive Open pendente.
Three-Way Handshake
O TCP se utiliza do mecanismo de three-way handshake para estabelecer uma conexo. Este mecanismo garante a correta sincronizao entre os usurios da conexo de transporte. O three-way handshake envolve a troca de trs segmentos (isto , o mecanismo possui trs passos).
Three-Way Handshake
A
(cont.)
Open ID
Open ID
SYN(y), ACK(x+1)
Open Success
ACK(y+1)
Open Success
Handshake #1
Quando um socket local estabelecido, o TCP envia um segmento SYN inicial para o TCP remoto, seta um timer de retransmisso e espera at que o timer expire ou que receba um ACK do socket remoto. O segmento de handshake #1 identificado pelo bit SYN no campo de Flag e carrega o nmero de seqncia inicial (x).
Handshake #1
(cont.)
Handshake #2
(cont.)
O segmento de handshake #2 tem tanto o bit SYN quanto o bit ACK ligados, confirmando o recebimento do segmento de handshake #1 e indicando a continuao do processo de handshaking. Quando o segmento chega ao socket remoto, o TCP verifica se o flag SYN est presente e se o checksum est ok. O TCP do lado passivo (servidor) guarda o nmero de seqncia inicial do lado ativo e envia um segmento SYN+ACK. Um timer de retransmisso tambm ligado.
Handshake #2
(cont.)
Handshake #3
O segmento de handshake #3 possui somente o bit ACK ligado, podendo ou no conter dados. usado para informar ao destino que ambos os lados concordam que uma conexo foi estabelecida. Quando o TCP recebe o segmento SYN+ACK do lado servidor (passivo), ele confirma o recebimento enviando um segmento ACK. Somente quando o lado servidor recebe este segmento de ACK a conexo estabelecida.
Handshake #3
(cont.)
Caso o timer de retransmisso estoure antes do recebimento do segmento SYN+ACK, o TCP retransmite o segmento inicial SYN e reinicia o timer. O TCP abandona a conexo aps um nmero pr-definido de retransmisses. Nesse caso, o TCP envia mensagem ao seu usurio e libera os recursos alocados.
Handshake #3
(cont.)
Encerramento de Conexo O encerramento de conexo no TCP pode ser feito de uma das duas formas:
Normal, para encerramento negociado. Abrupta, para encerramento unilateral, no negociado.
Abort
Fecha a conexo de forma abrupta, sem qualquer negociao.
Encerramento de Conexo
(cont.)
Terminate
Informa que a conexo foi encerrada, sendo fornecida uma descrio da razo do encerramento.
Close / Closing
client server
Close
Closing
Close / Terminate
client server
Close
Terminate Terminate
A primitiva Close informa que o lado cliente completou a transferncia dos dados. Implicitamente, obriga a execuo da funo push, isto , o envio de todos os dados armazenados no buffer de transmisso.
(cont.)
(cont.)
O TCP remoto transmite todos os dados pendentes e sinaliza ao TCP cliente que est pronto para encerrar a conexo. O TCP cliente entrega os dados pendentes aplicao local e emite para esta uma primitiva Terminate, informando-a que encerrou a conexo no lado cliente. O TCP cliente tambm sinaliza ao TCP remoto que encerrou a conexo. Para isso, envia-lhe um segmento especfico. Ao receber esse ltimo segmento, o TCP remoto emite para a aplicao remota a primitiva Terminate, encerrando a conexo no lado servidor.
(cont.)
Observe que, num esquema de encerramento de conexo negociado, aps a emisso da primitiva Close, o usurio do TCP local obrigado a continuar recebendo dados pela conexo at que o TCP remoto termine de enviar todos os seus dados e, posteriormente, tambm decida encerrar a conexo.
client
server
Close
Closing Close
Terminate Terminate
(cont.)
O TCP remoto informa esse fato aplicao destino atravs da primitiva Terminate. Ele responde imediatamente abortando a conexo. O TCP tambm informa aplicao local sobre tal ocorrncia, emitindo uma primitiva Terminate. Os recursos alocados, tais como buffers, so liberados.
Troca de Segmentos no Encerramento da Conexo O encerramento normal da conexo envolve a troca de 4 segmentos. Atravs desse mecanismo, o TCP permite que um lado sinalize o trmino da sua transmisso, enquanto ainda permite que ele receba dados do outro lado da conexo. Uma vez encerrada a conexo em uma certa direo, o TCP no aceita mais dados naquele sentido. Esse mecanismo conhecido como Half-Close.
Ao receber a primitiva de encerramento de conexo do usurio local, o TCP finaliza a transmisso enviando os dados pendentes e espera receber os correspondentes acks. Em seguida, o TCP envia um segmento FIN. O TCP remoto responde com um ACK do segmento FIN e informa aplicao do seu lado que no h mais dados disponveis.
client
server
Close
FIN(x) ACK(x+1)
Dados pendentes de B para A
Closing Close
Terminate
Terminate
Transferncia de Dados Se inicia aps o trmino do Three-way handshake. Cada segmento contm no campo Ack o nmero de seqncia do prximo byte esperado do parceiro.
Transferncia de Dados
client
(cont.)
data 100, ack 301 data 301, ack 201 data 201, ack 401 data 301, ack 401 data 401, ack 401 no data, ack 501
server
Transferncia de Dados
client
(cont.)
server
Timeout!
Delayed Ack Normalmente, o TCP no envia o Ack no instante em que ele recebe dados. Ao contrrio, ele retarda o envio do Ack esperando que tenha dados para enviar na mesma direo. Esse mecanismo conhecido como Piggyback (confirmao por carona). A maioria das implementaes usa um delay de 200ms.
Allocate
Solicita ao TCP aumento da rea alocada para a recepo dos dados (negociada no estabelecimento da conexo).
Transferncia de Dados
(cont.)
Send usada pelo processo de aplicao para enviar dados atravs de uma conexo TCP/IP. Por meio da primitiva Send , os blocos de dados da aplicao so entregues ao TCP, que os coloca no buffer de transmisso. Se o push flag estiver ligado na primitiva Send, todos os dados contidos no buffer so enviados imediatamente, em um ou mais segmentos; seno, tenta-se maior eficincia.
Transferncia de Dados
(cont.)
Dados que chegam atravs da conexo so armazenados no buffer de recepo. Na recepo, se o push flag estiver ligado os dados do buffer so imediatamente entregues ao usurio, atravs da primitiva Deliver. Deliver: relata a chegada de dados. Se o push flag no estiver ligado, tenta-se minimizar as interrupes do sistema.
Transferncia de Dados
(cont.)
Aos dados tambm pode estar associado um urgent flag, existente na primitiva Send. Nesse caso, o usurio destino recebe um indicador urgent junto com os dados, sendo sua responsabilidade process-los to rpido quanto possvel. A primitiva Allocate utilizada para informar ao TCP sobre a quantidade de bytes que o usurio espera receber.
Estado da Conexo
Primitiva de Servio: Status
Solicita o estado atual da conexo. Parmetros: nome (Id) da conexo local.
Relata o estado atual da conexo. Parmetros: nome da conexo local, porta origem e destino, end. origem e destino, estado da conexo, janela de recepo e transmisso, nmero de acks aguardando, nmero de recepes aguardando, estado de urgncia, etc.
(cont.)
Quando o TCP executa um Close e envia o Ack final, a conexo deve permanecer no estado Time_Wait por um tempo igual a 2xMSL. Isso permite ao TCP reenviar o Ack final no caso desse Ack se perder (em cujo caso ocorre timeout e outro lado da conexo retransmite o segmento final FIN).
(cont.)
O tamanho da janela de recepo definido por cada um dos lados no estabelecimento da conexo. Um anncio de alterao deste valor pode ser feito a qualquer momento, por qualquer um dos lados. O resultado um mecanismo simples de controle de fluxo. O valor do tamanho da janela relativo (tem como byte inicial) ao acknowledge sequence number.
Transferncia de 8192 bytes da mquina svr4, porta 1056, para a mquina bsdi, porta 7777, em oito blocos de 1024 bytes.
(cont.)
Os valores da janela de recepo anunciados (win 4096) so iguais, bem como os valores do maximum segment size (<mss 1024>), do transmissor e receptor. Como visto anteriormente, o valor do mss indica que no se quer receber segmentos maior do que esse limite. Os valores 1305814529 e 1367249409 vistos nos Segmentos 1 e 2 indicam o nmero de seqncia inicial do lado svr4 e bsdi, respectivamente. Os valores entre parnteses indicam o nmero de bytes no campo de dados. Assim, 1305814529:1305814529 (0) indica que o nmero de seqncia do segmento 1305814529 e que o nmero de bytes no segmento zero.
(cont.)
No Segmento 3, Ack 1 indica que a mquina svr4 espera agora receber o byte 1 de dados. Nos segmentos 4, 5 e 6, PSH 1:1025(1024) indica a transmisso de um segmento de tamanho 1024, comeando no byte 1 e terminando no byte 1025. O segmento 7 reconhece dois segmentos apenas (Ack 2049). Observe que o mecanismo de delayed ackest sendo usado no exemplo. Observe que no anncio de tamanho da janela do Segmento 8, est refletido o fato de que 1024 bytes ainda esto no buffer de recepo para serem lidos pelo processo de aplicao na mquina bsdi.
O Flag PUSH
uma notificao enviada pelo TCP transmissor para o TCP receptor para que este passe imediatamente todos os dados que tiver no seu buffer para o processo receptor. Na especificao original do TCP, era assumido que a interface de programao permitiria ao processo transmissor dizer ao TCP quando setar o bit de PUSH. Permitir que a aplicao cliente diga ao TCP transmissor que ligue seu flag PUSH significa:
Uma notificao de que o processo cliente no quer que o seu TCP fique esperando pela chegada de dados adicionais da aplicao no seu buffer para ento enviar segmentos para o lado remoto (servidor). Uma notificao ao TCP remoto (lado servidor) para que, se ele receber um segmento com o PUSH flag ligado, passar imediatamente os dados existentes no seu buffer para o processo servidor e no ficar esperando que mais dados cheguem ao seu buffer ento para isso acontecer.
Atualmente, a maioria das APIs no fornece uma maneira da aplicao dizer ao TCP quando setar o flag PUSH. assumido que uma boa implementao do TCP sabe determinar quando setar este bit por si mesma.
No existe o envio ou recebimento acknowledgments, mecanismo usado quando se deseja garantir a confiabilidade do servio.
Caractersticas
rpido
No existe estabelecimento de conexo (que uma fonte de delay). No mantm o estado da conexo na origem e no destino. Apresenta um pequeno cabealho. No implementa nenhum mecanismo de controle de congestionamento, de fluxo ou de erros. Permite adio de confiabilidade com a introduo de mecanismos de recuperao de erros especficos da aplicao (o que pode ser visto como uma vantagem).
simples
Caractersticas Adicionais ao IP
Possui a habilidade de demultiplexar dados para um processo de aplicao baseado no nmero da porta destino.
Permite que os datagramas sejam direcionados para a aplicao apropriada na camada superior.
Apresenta um checksum que permite detectar erros que porventura ocorram quando dados so transmitidos de uma fonte a um destino.
Aplicaes UDP
O UDP ideal para aplicaes de monitoramento, gerncia, debugging e testes. tambm adequado para aplicaes de broadcast e multicast. freqentemente usado em aplicaes multimdia, que so tolerante a erros e sensveis taxa de transmisso. Principais usurios:
NFS - sistema de arquivos SNMP - gerncia de redes TFTP - transferncia de arquivos DNS - servio de nomes
Description Remote Job Entry Echo Discard Active Users Daytime Who is up or NETSTAT Quote of the Day Character Generator Time Resource Location Protocol Host Name Server Who Is Domain Name Server Bootstrap Protocol Server Bootstrap Protocol Client Trivial Filter Transfer Finger Sun Microsystems' RPC Network Time Protocol SNMP Message
Formato do Cabealho
Source Port
Identifica a porta associada ao processo remetente.
Destination Port
Identifica a porta do processo destino. Campo que permite demultiplexar segmentos entre os processos de aplicao da mquina destino.
Length
Indica o tamanho (nmero de bytes) da mensagem UDP, incluindo o cabealho.
Checksum
Cobre cabealho e dados, sendo opcional (no TCP mandatrio).
Observaes
O IP s faz o checksum do cabealho. Logo, o checksum do UDP pode ser a nica forma de garantir a integridade dos dados. Para evitar problemas com um possvel valor de checksum igual a zero, o UDP checksum usa o complemento de um. Nesse caso, existem dois valores para zero (todos os bits zero e todos os bits 1). O valor com todos os bits 1 usado se o checksum for realmente Zero.