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 dos seus protocolos originais - o Protocolo de Controle de Transmissão (TCP) e o Protocolo de 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 os roteadores intermediários e para o destino.
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 o envio das páginas da Web 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, faz 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.
O TCP tem tudo a ver com confiabilidade - os pacotes enviados com o 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 que haja falhas na rede. É claro que, se o destinatário estiver completamente off-line, seu computador 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.
O 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 ter certeza de que o destinatário recebeu 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 online.
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 poderá 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 player 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 da Ditching 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 indo e voltando.