Anda di halaman 1dari 3

Protocolo TCP vs Protocolo UDP

Pedro Pinto 12 Nov 2009 Networking25 Comentrios


Certamente que j ouviram falar em servios/aplicaes que usam o protocolo TCP ou
UDP. Os protocolos TCP e UDP pertencem camada 4 do modelo OSI (camada de
transporte) e em traos gerais, em conjunto com o porto/porta e IP da mquina, definem
como uma determinada informao transmitida na rede.
Numa mquina existem (teoricamente) 65.536 portas TCP que podem ser usadas pelas
mais diversas aplicaes/servios, o que (teoricamente) poderamos ter 65.536
aplicaes/servios distintos a correr em simultneo na nossa mquina. Relembrando o
que foi referido em artigos anteriores: o IP identifica a mquina e o porto identifica a
aplicao/servio. Alm das portas TCP temos tambm 65.536 portas
UDP(teoricamente).

Mas afinal qual a diferena entre usar o protocolo TCP ou o protocolo UDP?

Protocolo TCP
O TCP o protocolo mais usado isto porque fornece garantia na entrega de todos os
pacotes entre um PC emissor e um PC receptor. No estabelecimento de ligao entre
emissor e receptor existe um pr-acordo denominado de Three Way Handshake (SYN,
SYN-ACK, ACK).
Exemplo
Considerem por exemplo que querem transmitir um filme ou o ficheiro com um jogo
que ocupa 800 MB. Esse ficheiro ter de ser partidos em partes mais pequenas
(fragmentao), para que seja vivel a sua transferncia para outro PC. Recorrendo ao
protocolo TCP existe a garantia que todos os pacotes sero entregues e reordenados do
outro lado (uma vez que podem ir por caminhos diferentes). Alm disso, por cada
pacote ou conjunto de pacotes (previamente definido), a mquina de destino confirma
que recebeu essa informao ao emissor e no caso de falha de algum pacote, a mquina
de destino procede ao emissor o pedido de retransmisso do(s) pacote(S) em falta.
J pensaram se na transmisso do ficheiro do filme ou jogo de (800 MB) faltassem por
exemplo apenas 2 k???? bem, o receptor simplesmente no iria conseguir abrir esse
ficheiro recebendo provavelmente a mensagem ficheiro corrompido.

Ento e o UDP?
O UDP um protocolo mais simples e por si s no fornece garantia na entrega dos
pacotes. No entanto, esse processo de garantia de dados pode ser simplesmente
realizado pela aplicao em si (que usa o protocolo UDP) e no pelo protocolo.
Basicamente, usando UDP, uma mquina emissor envia uma determinada informao e

a mquina receptor recebe essa informao, no existindo qualquer confirmao dos


pacotes recebidos. Se um pacote se perder no existe normalmente solicitao de
reenvio, simplesmente no existe.
Exemplo
Vamos a um exemplo comum. Imaginem que vo usar streaming de vdeo e udio
atravs da Internet e usam por exemplo o Skype como aplicao. Se estabelecerem uma
ligao com um amigo vosso, vo notar que existem muitos pacotes na transmisso que
se perdemouvem aquele barulho normal aquando das transmissesbluuup ou a
perda/bloqueio de imagem por alguns ms (milisegundos), o que perfeitamente
aceitvel. No teria muita lgica que a meio dessa transmisso a vossa aplicao parasse
o streaming e fosse solicitar ao receptor pacotes perdidossimplesmente comevamos
uma conversa e a meio iramos receber informaes provavelmente daquilo que falamos
no incio.
No muito normal encontrar aplicaes que usem exclusivamente o protocolo UDP,
usando o exemplo do streaming existe sempre o recurso ao TCP para trocar informaes
de controlo, libertando o UDP apenas para o envio da informao.
Nota final: Tentou-se explicar de forma simples e abreviada as principais caractersticas
do UDP e TCP. Contamos com os vossos comentrios de forma a analisarem o mesmo e
a darem dicas para novos artigos.

Aplicaes que precisam o protocolo TCP so aqueles que so orientados a


conexo e que precisam de confiabilidade.
Por exemplo quase todos os programas de transmisso de arquivos de
dados utilizam o TCP pois devem garantir a integridade da chegada e
recebimento dos dados. Um exemplo clssico o programa de FTP (File
TransferProtocol).
J os programas que usam UDP so aqueles que no precisam de garantir a
chegada dos dados. Todos os programas de video e voz so do tipo UDP
(skype, todos os programas do tipo "Voz sobre IP" e streaming de videos).
Um programa clssico que usa o UDP o "TFTP" (Trivial File TransferProtocol)

Modelo OSI, (Open Systems Interconnection), ou Interconexo de


Sistemas Abertos, um conjunto de padres ISO relativo comunicao
de dados

Estabelecimento de conexes
1. O cliente envia um pacote com a flag SYN ativa;
2. O servidor responde com um pacote com as flags SYN + ACK;
3.O cliente reponde com um pacote ACK.
Traduzindo
1. Cliente: Servidor, estou enviando a mensagem 100 (Nmero de sequncia do cliente).
D pra sincronizar (SYN)?
2. Servidor: Claro, sincroniza a mensagem 200 (Nmero de sequncia do servidor) que
estou enviando (SYN). Prossiga com a mensagem 101 (ACK).
3. Cliente: Ok, estou enviando a mensagem 101. Prossiga com a mensagem 201 (ACK).
O cliente e o servidor, possuem nmeros de sequncia distintos, por este motivo faz-se
necessria a sincronizao em ambos os sentidos.
Feita a sincronizao, comeam a troca de pacotes com base em nmeros de sequncia,
que tem o objetivo de enumerar as pacotes de cada um.