• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Redes: Quais as diferenças entre o Protocolo TCP e UDP

kokas

GF Ouro
Entrou
Set 27, 2006
Mensagens
40,723
Gostos Recebidos
3
Em 2009 escrevemos aqui um artigo sobre as diferenças de usar o protocolo TCP e UDP. Agora recordamos este tema uma vez que teve um sucesso muito interessante na altura.



Certamente que já ouviu falar no protocolo TCP e UDP mas sabe quais as diferenças entre um e outro? Hoje vamos a explicar.









Certamente que já ouviram falar em serviços/aplicações que usam como protocolo de transporte TCP ( Transmission Control Protocol) ou o UDP (User Datagram Protocol ).



Numa referência ao modelo OSI, estes protocolos pertencem à camada 4 (camada de transporte). Já no modelo TCP/IP, estes protocolos encontra-se igualmente na camada de transporte mas que corresponde à camada 3.


TCP_OSI-3.jpg



Numa máquina existem (teoricamente) 65.536 portos lógicos TCP que podem ser usados 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 endereço IP identifica a máquina e o porto lógico identifica a aplicação/serviço. Além dos portas TCP temos também 65.536 portas UDP (teoricamente).


Protocolo TCP VS Protocolo UDP



TCP



O TCP é o protocolo mais usado isto porque fornece garantia na entrega de todos os pacotes entre um PC emissor e um PC recetor. No estabelecimento de ligação entre emissor e recetor existe um “pré-acordo” denominado de Three Way Handshake (SYN, SYN-ACK, ACK).




  • [*=center]A sessão entre um cliente e um servidor é sempre iniciada pelo cliente, que envia um pedido de ligação pacote com aflag SYN ativada;



  • [*=center]O cliente envia também umnúmero sequencial aleatório;
    [*=center]O servidor responde com um pacoteSYN,ACKcom o seupróprio número sequencial aleatórioe umnúmero de confirmação(igual ao número sequencial do cliente +1);
    [*=center]Para finalizar ocliente responde com um pacote ACKcom onúmero de confirmação(igual ao número de sequência do servidor +1).

way_02_thumb.jpg




Para saber mais sobre o Three Way Handshake aceda aqui.


Exemplo




Considerem por exemplo que querem transmitir um filme ou um ficheiro com um jogo que ocupa 800 MB. Esse ficheiro terá de ser partido 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 ordenados do outro lado (uma vez que podem seguir 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???? … o recetor simplesmente não iria conseguir abrir esse ficheiro recebendo provavelmente a mensagem “ficheiro corrompido”.
7D-720x540.jpg

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 o protocolo UDP, uma máquina emissor envia uma determinada informação e a máquina recetor 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 deixa de existir para o destinatário.
Exemplo


Vamos a um exemplo comum. Imaginem que vão usar streaming de vídeo e áudio através da Internet e usam 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 recetor 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.


streaming-720x405.jpg

Quais as unidades nesta camada?



Erradamente é normal chamar-se “pacotes” a tudo. O pacote é a unidade (PDU – Protocol Data unit) da camada 3 do modelo OSI, que corresponde à camada de rede. No caso do modelo TCP/IP, corresponde à camada 2.



Quando falamos na camada de transporte, usámos segmento para designar a unidade quando usámos o protocolo TCP ou datagrama quando fazemos uso do protocolo UDP.






logopplware.png
 

oLMOST

GF Bronze
Membro Inactivo
Entrou
Set 7, 2019
Mensagens
2
Gostos Recebidos
0
Boas bem explicado
gostei

Cumps
tota
 
Topo