Sobes.tech
Junior — Middle

É possível explicar as principais diferenças entre os protocolos TCP e UDP, e em que situações é preferível usar cada um deles?

sobes.tech IA

Resposta da IA

TCP (Protocolo de Transmissão de Controlo) e UDP (Protocolo de Datagrama de Utilizador) são dois protocolos principais de transporte na rede.

Diferenças principais:

  • Confiabilidade: TCP garante a entrega fiável de dados — garante que todos os pacotes cheguem e na ordem correta. UDP não garante a entrega nem a ordem.
  • Estabelecimento de ligação: TCP estabelece uma ligação através de um handshake de três vias, UDP funciona sem estabelecer ligação.
  • Velocidade: UDP é mais rápido, pois não gasta tempo em confirmações e controlo de erros.
  • Controlo de erros: TCP verifica erros e recupera dados perdidos, UDP não.

Quando usar:

  • TCP: para aplicações onde a fiabilidade e a ordem são importantes — servidores web, email, transferência de ficheiros.
  • UDP: para aplicações onde a velocidade e a latência são cruciais, e a perda de alguns pacotes é aceitável — jogos online, streaming de vídeo/áudio, VoIP.

Exemplo de uso de UDP em Python:

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(b"Hello", ("example.com", 12345))