Qual é a diferença entre TCP e UDP?
Você provavelmente já viu referências a TCP e UDP ao configurar o encaminhamento de porta em um roteador ou ao configurar um software de firewall. Esses dois protocolos são usados para diferentes tipos de dados.
O TCP / IP é um conjunto de protocolos usado por dispositivos para se comunicar pela Internet e pela maioria das redes locais. É nomeado após dois de seus protocolos originais - o protocolo de controle de transmissão (TCP) e o protocolo Internet (IP). O TCP fornece aos aplicativos uma maneira de fornecer (e receber) um fluxo ordenado e verificado por erros dos pacotes de informações pela rede. O User Datagram Protocol (UDP) é usado por aplicativos para fornecer um fluxo mais rápido de informações, eliminando a verificação de erros. Ao configurar algum hardware ou software de rede, talvez seja necessário saber a diferença.
O que eles têm em comum
TCP e UDP são protocolos usados para enviar bits de dados - conhecidos como pacotes - pela Internet. Ambos os protocolos são construídos sobre o protocolo IP. Em outras palavras, se você está enviando um pacote via TCP ou UDP, esse pacote é enviado para um endereço IP. Esses pacotes são tratados de maneira semelhante, pois são encaminhados do computador para roteadores intermediários e para o destino.
O TCP e o UDP não são os únicos protocolos que funcionam em cima do IP. No entanto, eles são os mais utilizados.
Como funciona o TCP
O TCP é o protocolo mais comumente usado na Internet.
Quando você solicita uma página da Web em seu navegador, o computador envia pacotes TCP ao endereço do servidor da Web, solicitando que ele envie a página da Web de volta para você. O servidor da Web responde enviando um fluxo de pacotes TCP, que seu navegador da Web une para formar a página da Web. Quando você clica em um link, entra, publica um comentário ou faz qualquer outra coisa, seu navegador envia pacotes TCP para o servidor e o servidor envia os pacotes TCP de volta.
TCP é tudo sobre confiabilidade - pacotes enviados com TCP são rastreados para que nenhum dado seja perdido ou corrompido em trânsito. É por isso que os downloads de arquivos não são corrompidos mesmo se houver falhas na rede. É claro que, se o destinatário estiver completamente offline, seu computador irá desistir e você verá uma mensagem de erro informando que ele não pode se comunicar com o host remoto.
O TCP consegue isso de duas maneiras. Primeiro, ordena pacotes numerando-os. Segundo, verifica o erro fazendo com que o destinatário envie uma resposta ao remetente informando que recebeu a mensagem. Se o remetente não obtiver uma resposta correta, ele poderá reenviar os pacotes para garantir que o destinatário os receba corretamente.
Process Explorer e outros utilitários do sistema podem mostrar o tipo de conexões que um processo faz - aqui podemos ver o navegador Chrome com conexões TCP abertas para uma variedade de servidores web.
Como funciona o UDP
O protocolo UDP funciona de forma semelhante ao TCP, mas elimina todo o material de verificação de erros. Toda a comunicação de ida e volta introduz latência, atrasando as coisas.
Quando um aplicativo usa o UDP, os pacotes são enviados apenas para o destinatário. O remetente não espera para garantir que o destinatário receba o pacote - ele apenas continua enviando os próximos pacotes. Se o destinatário perder alguns pacotes UDP aqui e ali, eles serão perdidos - o remetente não os reenviará. Perder toda essa sobrecarga significa que os dispositivos podem se comunicar mais rapidamente.
O UDP é usado quando a velocidade é desejável e a correção de erros não é necessária. Por exemplo, o UDP é freqüentemente usado para transmissões ao vivo e jogos on-line.
Por exemplo, digamos que você esteja assistindo a um fluxo de vídeo ao vivo, que geralmente é transmitido usando UDP em vez de TCP. O servidor apenas envia um fluxo constante de pacotes UDP para computadores assistindo. Se você perder sua conexão por alguns segundos, o vídeo pode congelar ou ficar nervoso por um momento e, em seguida, pular para o bit atual da transmissão. Se você tiver perda menor de pacotes, o vídeo ou o áudio pode ficar distorcido por um momento, enquanto o vídeo continua a ser reproduzido sem os dados ausentes..
Isso funciona de forma semelhante em jogos online. Se você perder alguns pacotes UDP, os personagens do jogador podem parecer se teletransportar pelo mapa à medida que você recebe os novos pacotes UDP. Não adianta pedir os pacotes antigos se você os perdeu, pois o jogo continua sem você. Tudo o que importa é o que está acontecendo agora no servidor do jogo - não o que aconteceu alguns segundos atrás. A correção de erros do TCP ajuda a acelerar a conexão do jogo e reduz a latência.
E daí?
Se um aplicativo usa TCP ou UDP, ele depende do desenvolvedor e a escolha depende do que um aplicativo precisa. A maioria dos aplicativos precisa da correção de erros e robustez do TCP, mas alguns aplicativos precisam da velocidade e da sobrecarga reduzida do UDP. Se você disparar uma ferramenta de análise de rede como o Wireshark, poderá ver os diferentes tipos de pacotes viajando.
A menos que você seja um administrador de rede ou desenvolvedor de software, isso não deve afetá-lo muito. Se você estiver configurando o software do roteador ou do firewall e não tiver certeza se um aplicativo usa TCP ou UDP, geralmente é possível selecionar a opção “Ambos” para que o seu roteador ou firewall aplique a mesma regra ao tráfego TCP e UDP.