![]() |
TCP ou UDP? |
|
![]() |
Por Izabela Vanessa de Almeida Melo(izabela@dsc.ufcg.edu.br) |
Você lembra quais são as funções da camada de transporte de uma rede? Lembra o que significa UDP, TCP? Quais são as diferenças entre esses conceitos? Recapitule tudo isso agora! |
![]() Figura 1 - Modelo OSI.
Hoje em dia, os usuários da rede estão cada vez mais exigentes e, em alguns casos, essas exigências correspondem a necessidades (em uma cirurgia à distância, por exemplo, é necessário que todos os dados cheguem ao destino). Com isso, as aplicações (HTTP - HyperText Transfer Protocol, SMTP - Simple Mail Transfer Protocol e FTP - File Transfer Protocol, por exemplo), cada vez mais, necessitam de um serviço confiável e de qualidade. A camada de rede (3ª camada) não trata questões como congestionamento, perda ou ordenação de pacotes. Esse papel de entrega confiável dos dados é atribuído à 4ª camada (tanto no modelo OSI quanto no modelo TCP/IP) de uma rede, a camada de transporte. Os principais serviços oferecidos pela camada de transporte são:
Dois protocolos da camada de transporte, como já mencionados anteriormente, são UDP e TCP. Protocolo de Datagrama do Usuário - UDP
O UDP é um serviço de entrega dos dados não orientado à conexão e não confiável. Fornece apenas os serviços de endereçamento e fragmentação, não fornecendo o serviço de confiabilidade. O UDP não adiciona nenhum serviço ao protocolo IP (protocolo da camada de rede) sendo, então, uma extensão desse protocolo. A principal função do UDP é multiplexar na origem e demultiplexar no destino os datagramas transmitidos. Para isso, cada segmento UDP contém a seguinte estrutura (descrição baseada na Figura 2):
![]() Figura 2 - Segmento UDP.
Um programa que usa o UDP aceita a responsabilidade de lidar com a questão da confiabilidade (perda de mensagem, duplicação, retardo, transmissão defeituosa e perda de conectividade). O código de implementação de um protocolo UDP é bastante simples. Além disso, é necessário um número menor de mensagens para transmitir um pacote (comparado ao TCP), pois não necessita de uma configuração inicial, sendo, dessa forma, teoricamente mais rápido. Protocolo de Controle de Transmissão - TCP
O protocolo TCP faz a comunicação fim-a-fim da rede e é um serviço orientado à conexão bastante confiável (independente da qualidade de serviços das sub-redes que lhe servem de caminho). Ele garante a entrega dos dados na sequência em que foram fornecidos e sem perda nem duplicação. Veja, a seguir, características do TCP que permitem as garantias citadas acima.
![]() Figura 3 - Estabelecimento de conexão entre cliente e servidor.
![]() Figura 4 - Encerramento de conexão.
![]() Figura 5 - Conexão TCP.
A estrutura de um pacote TCP pode ser observada na Figura 6 (para informações sobre cada pedaço do pacote leia [2]). Observe que, por fornecer serviços que o UDP não fornece, a complexidade dessa estrutura é maior que a de um segmento UDP.
![]() Figura 6 - Segmento TCP.
Qual o melhor protocolo?
Para uma aplicação em que a velocidade na entrega dos dados é mais útil do que a confiabilidade (como, por exemplo, aplicações de multimídia), o protocolo UDP é mais adequado. Outra aplicação que utiliza o UDP é o DNS (Domain Name System). Mas, em aplicações em que a confiabilidade é mais importante do que a velocidade, como, por exemplo, na transferência de arquivos (aplicação de gerenciamento de downloads), o TCP se torna mais adequado. Logo, o conceito de melhor protocolo torna-se abstrato se pensarmos em função das necessidades de cada aplicação. Cada aplicação tem uma necessidade e, para cada necessidade, um protocolo se torna mais adequado ou não. Fontes: [1] http://www.ifba.edu.br/professores/romildo/downloads/ifba/transporte.pdf. Último acesso em 10/04/2011. [2] http://www.slideshare.net/luiz_arthur/redes-camada-de-transporte. Último acesso em 10/04/2011. [3] Notas de aula do prof. Moreira. Último acesso em 10/04/2011. |