sexta-feira, 7 de novembro de 2014

TCP e UDP diferenças entre Protocolos

TCP (Transmission Control Protocol)

 comunicação pela internet é feita, basicamente, através de protocolos, sendo o TCP (Transmission Control Protocol) um dos mais importantes deles. Isso porque o TCP está incluído no conjunto de protocolos que formam o TCP/IP, a base de comunicação via dados de toda a internet. De acordo com a definição dada por Júlio Battisti neste artigo, as principais características do TCP são:
:: Garantir a entrega de datagramas IP: esta talvez seja a principal função do TCP, ou seja, garantir que os pacotes sejam entregues sem alterações, sem terem sido corrompidos e na ordem correta. O TCP tem uma série de mecanismos para garantir esta entrega;
:: Executar a segmentação e o reagrupamento de grandes blocos de dados enviados pelos programas, garantir o seqüenciamento adequado e a entrega ordenada de dados segmentados:esta característica refere-se ao recurso de dividir grandes arquivos em pacotes de dados menores e transmitir cada pacote separadamente. Os pacotes podem ser enviados por caminhos diferentes e chegar fora de ordem. O TCP tem mecanismos para garantir que, no destino, os pacotes sejam ordenados corretamente, antes de serem entregues ao programa de destino.
:: Verificar a integridade dos dados transmitidos usando cálculos de soma de verificação: o TCP faz verificações para garantir que os dados não foram alterados ou corrompidos durante o transporte entre a origem e o destino.
:: Enviar mensagens positivas dependendo do recebimento bem-sucedido dos dados. Ao usar confirmações seletivas, também são enviadas confirmações negativas para os dados que não foram recebidos: no destino, o TCP recebe os pacotes de dados, verifica se estão ok e, em caso afirmativo, envia uma mensagem para a origem, confirmando cada pacote que foi recebido corretamente. Caso um pacote não tenha sido recebido ou tenha sido recebido com problemas, o TCP envia uma mensagem ao computador de origem, solicitando uma retransmissão do pacote. Com esse mecanismo, apenas pacotes com problemas terão que ser reenviados, o que reduz o tráfego na rede e agiliza o envio dos pacotes.
:: Oferecer um método preferencial de transporte de programas que devem usar transmissão confiável de dados baseada em sessões, como bancos de dados cliente/servidor e programas de correio eletrônico: o TCP é muito mais confiável do que protocolos como o UDP (explicado adiante) e é indicado para programas e serviços que dependam de uma entrega confiável de dados.
O funcionamento do TCP é baseado em conexões. Assim, para um computador cliente iniciar uma "conversa" com um servidor, é necessário enviar um sinal denominado SYN para este último. O servidor então responde enviando um sinal SYN combinado com um sinal de nome ACK para confirmar a conexão. O cliente responde com outro sinal ACK, fazendo com que a conexão esteja estabelecida e pronta para a troca de dados. Por ser feita em três transmissões, esse processo é conhecimento como three-way handshake (algo como triplo aperto de mãos).
Processo three-way handshake
Confiança/Segurança: Orientado à conexão. Entrega Garantida;
Ordenação dos pedidos: É garantida a ordem de recebimento das mensagens;
Peso do Protocolo: Pesado, devido à elevada informação no cabeçalho das mensagens;
Pacotes: Os dados são transmitidos do forma sequêncial, sem distinção de início e fim do pacote. Podem existir multiplos pacotes por chamada.
Protocolos que usam TCP: HTTP, FTP e SMTP
Aplicações: Servidor Web, p2p

UDP (User Datagram Protocol)
Protocolo UDP
O UDP (User Datagram Protocol) é tido como um protocolo "irmão" do TCP, mas é mais simples e também menos confiável. Isso acontece porque o funcionamento do TCP é, como já dito, baseado em conexões, o que não ocorre com o UDP. Como conseqüência, não há procedimentos de verificação no envio e recebimento de dados (todavia, pode haver checagem de integridade) e se algum pacote não for recebido, o computador de destino não faz uma nova solicitação, como acontece com o TCP. Tudo isso faz do UDP um pouco mais rápido, porém inutilizável em certas aplicações.
Por essas características, pode parecer que o UDP é inútil, mas não é. Há aplicações em que é preferível entregar os dados o mais rapidamente possível, mesmo que algumas informações se percam no caminho. É o caso, por exemplo, das transmissões de vídeo pela internet (streaming), onde a perda de um pacote de dados não interromperá a transmissão. Por outro lado, se os pacotes não chegarem ou demorarem a chegar, haverá congelamentos na imagem, causando irritação no usuário.
Confiança/Segurança: Sem conexão. Entrega não garantida;
Ordenação dos pedidos: Não é garantida a ordem de recebimento das mensagens;
Peso do Protocolo: Leve, devido à pouca informação no cabeçalho das mensagens;
Pacotes: Datagramas, um pacote por uma chamada de leitura.
Protocolos que usam UDP: DNS, DHCP e TFTP
Aplicações: Usado para aplicações do tipo streaming de vídeo ou outras onde se possa perder alguns dados sem comprometer a recepção da informação. Utilizado em aplicações p2p. O UDP é mais rápido e eficiente para aplicações que não necessitem de entrega garantida.


Nenhum comentário:

Postar um comentário