Protocolo TCP vs Protocolo UDP
Certamente que já ouviram falar em serviços/aplicações que usam o protocolo TCP ou UDP. Os protocolos TCP e UDP pertencem à camada 4 do modelo OSI (camada de transporte) e em traços gerais, em conjunto com o porto/porta e IP da máquina, definem como uma determinada informação é transmitida na rede.
Numa máquina existem (teoricamente) 65.536 portas TCP que podem ser usadas pelas mais diversas aplicações/serviços, o que (teoricamente) poderíamos ter 65.536 aplicações/serviços distintos a correr em simultâneo na nossa máquina. Relembrando o que foi referido em artigos anteriores: o IP identifica a máquina e o porto identifica a aplicação/serviço. Além das portas TCP temos também 65.536 portas UDP(teoricamente).
Mas afinal qual a diferença 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 ligação 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 (fragmentação), para que seja viável a sua transferência para outro PC. Recorrendo ao protocolo TCP existe a garantia que todos os pacotes serão entregues e reordenados do outro lado (uma vez que podem ir por caminhos diferentes). Além disso, por cada pacote ou conjunto de pacotes (previamente definido), a máquina de destino confirma que recebeu essa informação ao emissor e no caso de falha de algum pacote, a máquina de destino procede ao emissor o pedido de retransmissão do(s) pacote(S) em falta.
Já pensaram se na transmissão do ficheiro do filme ou jogo de (800 MB) faltassem por exemplo apenas 2 k???? …bem, o receptor simplesmente não iria conseguir abrir esse ficheiro recebendo provavelmente a mensagem “ficheiro corrompido”.
Então e o UDP?
O UDP é um protocolo mais simples e por si só não fornece garantia na entrega dos pacotes. No entanto, esse processo de garantia de dados pode ser simplesmente realizado pela aplicação em si (que usa o protocolo UDP) e não pelo protocolo. Basicamente, usando UDP, uma máquina emissor envia uma determinada informação e a máquina receptor recebe essa informação, não existindo qualquer confirmação dos pacotes recebidos. Se um pacote se perder não existe normalmente solicitação de reenvio, simplesmente não existe.
Exemplo
Vamos a um exemplo comum. Imaginem que vão usar streaming de vídeo e áudio através da Internet e usam por exemplo o Skype como aplicação. Se estabelecerem uma ligação com um amigo vosso, vão notar que existem muitos pacotes na transmissão que se perdem…ouvem aquele barulho normal aquando das transmissões…”bluuup” ou a perda/bloqueio de imagem por alguns ms (milisegundos), o que é perfeitamente aceitável. Não teria muita lógica que a meio dessa transmissão a vossa aplicação parasse o streaming e fosse solicitar ao receptor pacotes perdidos…simplesmente começávamos uma conversa e a meio iríamos receber informações provavelmente daquilo que falamos no início.
Não é muito normal encontrar aplicações que usem exclusivamente o protocolo UDP, usando o exemplo do streaming existe sempre o recurso ao TCP para trocar informações de controlo, libertando o UDP apenas para o envio da informação.
Nota final: Tentou-se explicar de forma simples e abreviada as principais características do UDP e TCP. Contamos com os vossos comentários de forma a analisarem o mesmo e a darem dicas para novos artigos.
Artigos relacionados:
- Tudo sobre Networking
- NetWorx – Monitorize sempre a sua ligação
- Quais as portas abertas no meu computador?
- Servidores WEB e o mito do porto 8080
- Problemas na rede, será DNS?
- IPv6 – a tua tartaruga dança?
- 3ffe:6a88:85a3:08d3:1319:8a2e:0370:7344 – sabe o que isto?
- Endereços Públicos e Privados
- 169.254.0.0/16 – Vamos lá explicar!
- Dica: Troque o endereço IP por um nome
- Redes – Cabo UTP Categoria 6
- Como fazer um cabo cruzado (crossover) ?
- Subnetting sem complicações
- IP Subnet Calculator
Este artigo tem mais de um ano
Muito bom!!! Parabéns
Sim, sim. Para quem entende pouco da área está um excelente explicação!!!
Parabéns
bacana… beatiful man!
Excelente! Se calhar, aborrecido para “sabões”. Mas quem não percebe quase nada, como eu, foi simples e claro.
Good Job!!!
Caro Amigo, Perfeito ! Simples e objetivo.
Abraço a todos.
Parabéns.
Está aí um Overview dos dois protocolos muito simples e bastante exacto.
O ideal para que quem não entende muito sobre redes fique mais culto.
🙂
Poder-se-ia também explicar de forma simples como o FTP se apoia em TCP, que determinadas portas são usadas exclusivamente para determinadas aplicações como standart (ex. 80), de resto, sem dúvida dos melhores artigos que passou por aqui nas últimas semanas…
Sim, e no caso do FTP são usadas 2 portas, 20 e 21 🙂
Muito bem… Vejo pelo seguimento das noticias ultimamente que alguém anda a tirar um curso de redes das cisco :P…
Bom artigo sim senhor.
Obrigado a todos !!!
Pedro Pinto
Super Pinto!! Muito bom, adorei!
Muito bom Pedro
simples e bem explicado com os exemplos utilizados!
Cumprimentos
Fantastico simples e eficaz como se quer.
Parabens pedro
Viva Pedro, bom artigo 🙂
Já agora uma sugestão, uma vez que já explicaste varios aspectos do mundo de redes, seria, talvez, uma mais valia mencionares o modelo OSI.
É provavel um assunto para varios topicos, mas já dava para juntar varias peças do que nos tens vindo a mostrar 😉
Caro amigo, caso nao saiba o modelo OSI está morto, apenas se dá o téorico nas escolas, actualmente não existe nenhum router, core router, switch ou firewall a trabalhar com OSI.
O protoclo IP veio para ficar e a muito que é o standard defacto.
Apenas 4 camadas definem o protoclo IP, em vez das 7 do OSI onde existem várias incongruências no dia de hoje.
Por exemplo se eu lhe perguntar onde se enquadra o protocolo telnet ou HTTP na camada OSI irá dar para discussão durante cerca de 1 mês… 😛
Abraço
Muito bem explicado, Sr. MV porém nos não usamos somente o IP com o tem dito, o IP é mais um protocolo usado na camada “internet” na Pilha de pacotes TCP/IP. As redes mundo a fora, ou pelo menos 97% delas, usam a pilha de protocolos TCP/IP.
Em teoria, o HTTP não existe na camada OSI e sim na camada de aplicação da pilha TCP/IP, logo me contradizendo (que seria o motivo de uma discurção de 1 mês) o http estária compreendito nas camadas de aplicação, apresentação e sessão.
att, Lucas Kutz
Faça o próximo post sobre o protocolo HTTP =)
Torrent utiliza UDP
Ai Pedrocas, daqui a 2 dias tenho teste de Redes… mas já passei pela camada de Aplicação e Transporte, por isso tudo o que disseste faz muito sentido!
5ª feira é a camada de Ligação de Dados. Algoritmos, yeah.
Óptimo artigo!
Muito bom! Parabéns! Vale destacar que alguns serviços utilizam os dois protocolos, como DNS: UDP – Para consultas, e TCP – Para Tranferencia de zonas.
Embora não tenha lido todos os comentarios; Vou deixar a minha opinião:
MUITO BOM O ARTIGO;)
Basicamente o UDP e bom quando:
– A transferencia de dados em tempo real; (Televisão, skype, etc);
– Suporta Broadcast e Multicast;
O TCP ajuda quando:
– Os dados sao importantes, (Ex: Transferencias bancarias, os jogos citados no artigo, etc);
Pois:
– Faz um optimo controlo de fluxo;
– Acrescenta a desejada fiabilidade ao IP;
Bom estudos
Adorei a explicacao…..
thanks
Muito bom o topico, continuação de bom trabalho.
mais facil que isso para compreeender, só fechando os olhos e descubrir que os olhos estão fechados.
ótimo trabalho thy !!!!
Claro e objetivo. Muito obrigado ^^
Muito Obrigado! ótima postagem!
Quem diria que iria usar o pplware para estudar 🙂
😀 Estuda bem e boa sorte.
🙂
Muito bom. Fiquei muito esclarecido. Muito obrigado! 😀
Impecável. Parabéns!
Excelente. Estava aqui a dar isto numa aula e não entendi nada porque o professor estava a usar o protocolo UDP e perderam-se monstes de pacotes que o homem é uma seca a falar e parece que está a embalar bebés. Vim aqui, li e em segundos fiquei elucidado.
Obrigado
Eu quero desenvolver uma aplicação na internet.qual protocolo de transporte devo usar?e porque?
No caso de um “Rastreador veicular” qual seria o mais aconselhável, TCP ou UDP?