Você está na página 1de 10

TCP (Transmission Control Protocol) VERSUS UDP (User Datagram Protocol)

Joo Lucas Monteiro


Instituto Federal Catarinense Campus Avanado Sombrio E-mail: juao.l.monteiro@gmail.com.

Lucas Correia Correa


Instituto Federal Catarinense Campus Avanado Sombrio E-mail: lucascorreia-inter@hotmail.com.

Resumo: O artigo ressalta sobre os dois principais protocolos da internet que


trabalham na camada de transporte do modelo OSI (Open System Interconnection),
o TCP (Transfer Control Protocol) que um protocolo confivel no envio de dados
pela rede, utilizado em transmisso de arquivos, um exemplo uma aplicao em
que ser utilizada na linguagem Java que transmite arquivos via o TCP e o outro
protocolo o UDP (User Datagram Protocol) no confivel, mais tem a vantagem de
ser um protocolo rpido, normalmente utilizado em chamadas de vdeo, o
aplicativo mais comum que usa esse protocolo o Skype, sendo que o TCP tambm
utilizado nesse aplicativo. O objetivo desse artigo discutir, comparar, implementar
e verificar os resultados dos experimentos feitos, dos protocolos TCP e UDP. Por
fim, conclui-se que depende do tipo de transmisso que a aplicao esta
requisitando, pois cada um desses protocolos tem as suas vantagens.
Palavras-Chaves: Protocolo TCP. Protocolo UDP. Modelo OSI.
Abstract: This article emphasizes on the two main protocols of the Internet working
in the transport layer of the OSI (Open System Interconnection), the (Transfer
Control Protocol) TCP model is a reliable protocol for sending data over the network,
used for file transmission, an example is an application that will be used in the Java
language that transmits files via the TCP protocol and the other is the (User
Datagram Protocol) UDP unreliable, plus has the advantage of being a fast protocol
is normally used for video calls the most common application that uses this protocol
is Skype, and TCP is also used in this application. The purpose of this article is to
discuss, compare, implement and verify the results of experiments done, the TCP
and UDP protocols. Finally, we conclude that depends on the type of transmission
that applying this ordering, as each of these protocols has its advantages.
Key Words: TCP Protocol. UDP Protocol. OSI Model.
1 INTRODUO
Na internet, existe um modelo de referncia conhecida como Modelo OSI, que
um conjunto de normas que promove a interconexo entre as redes de
computadores, dividido em sete camadas. Nossa abordagem a camada 4
(transporte), utilizada para transmisso de pacotes na rede, para realizar essas
transmisses, ela usa dois protocolos: um no orientado a conexo e outro orientado
a conexo.

Como citado acima protocolo um conjunto de regras que controla e


possibilita a conexo entre computadores. O protocolo orientado a conexes o
TCP (Transfer Control Protocol): faz conexes e acrescenta confiabilidade com
retransmisses, junto com controle de fluxo e controle de congestionamento, tudo
em favor das aplicaes que o utilizam (TANENBAUM; WETHERALL, 2011). De
acordo com a RFC 959 (Request For Comments), FTP tem como objetivo promover
o compartilhamento de arquivos, (computadores, programas entre outros dados),
para transferir arquivo de forma confivel e eficiente. O FTP (File Transfer Protocol)
utiliza o protocolo TCP para transferir arquivos.
O protocolo no orientado a conexes o UDP (User Datagram Protocol): ele
envia pacotes entre aplicaes, permitindo que as aplicaes criem seus prprios
protocolos, conforme a necessidade (TANENBAUM; WETHERALL, 2011). TFTP
(TRIVIAL FILE TRANSFER PROTOCOL) faz transferncia de arquivo usando o
protocolo UDP, Cliente/Servidor.
A justificativa do trabalho aprimorar o uso de cada um dos dois protocolos e
mostrar seus servios. O objetivo deste trabalho avaliar o uso do protocolo TCP e
do protocolo UDP, para saber em qual circunstncia eles devem ser usados.
2 REVISO DE LITERATURA
Neste captulo apresentamse os conceitos, servios e aplicaes dos
protocolos TCP e UDP respectivamente.
2.1 O que o TCP?
O protocolo TCP confivel porque, antes que o processo da camada de
aplicao possa comear a enviar dados a outro, os processos se comunicam para
conhecer um ao outro, devem enviar alguns segmentos preliminares um ao outro
para estabelecer a transferncia de dados (KUROSE; ROSS, 2010). Este lida com
qualquer fragmentao ou remontagem dos segmentos TCP necessrias para
alcanar o transporte e entrega atravs mltiplas redes. Ele tambm traz
informaes sobre a precedncia, classificao de segurana e compartimentaro
dos segmentos TCP (RFC-793).

De acordo com a RFC 793, o TCP fornece os seguintes servios:


transferncia de dados de base, confiabilidade, fluxo de controle, conexes,
precedncia e segurana.
2.1.1

Servios TCP
Primeiramente antes de explicar os servios do TCP, explica-se a Figura 1 o

Handshake trs vias. De acordo com Hilgenstieler (2003), ele sincroniza a sequncia
entre as duas estaes.
Figura 1 Handshake trs vias

Fonte: Autores, 2014.

Explicando a Figura 1 o ACK (confirmao) o recebimento de uma ou mais


datagramas e o SYN usado na inicializao e para estabelecer sequncia. A
transferncia de arquivos seria muito mais lenta se cada vez que o TCP tivesse que
enviar um pacote ele teria que fazer essa confirmao.
Funcionando da seguinte maneira

01 - O computador de origem inicia a conexo, transmite informao com o

nmero de sequncia e tamanho do pacote;


02 - O computador de destino responde com suas informaes;
03 - O computador de origem confirma seu recebimento, e sua sesso
estabelecida. Assim os dois sincronizam, e a transferncia de dados pode ser
feita sem problemas.

Na Figura 2 mostra-se uma transferncia para confirmar, onde o cliente FTP com
endereo 10.1.1.2 solicita a conexo ao Servidor FTP com o endereo 10.1.1.1.
Figura 2 Transferncia de arquivo capturada pelo Wireshark1, FTP usando TCP

Fonte: Autores, 2014.

Nesta transferncia para mostra como feito a conexo Cliente/Servidor.


Entre um Servidor FTP e um Cliente TCP. Handshake trs vias, usado para
estabelecer a conexo.
Segundo a RFC 793, no quadro 1 apresenta-se todos os servios do TCP.
Quadro 1 Servios TCP
Servios

Para que serve?

Transferncia de dados de bases

O TCP capaz de transferir um fluxo contnuo de octetos em


cada direo entre seus usurios empacotando algum nmero
de octetos em segmentos para a transmisso atravs do
sistema de internet.

Confiabilidade

O TCP tem de recuperar-se de dados que esto danificados,


perdidos, duplicados, ou entregues fora de ordem pelo sistema
de comunicao pela internet. Este conseguido atravs da
atribuio de um nmero de sequncia para cada octeto
transmitida, e que exigem uma confirmao positiva (ACK) do
receber TCP. Se o ACK no for recebido dentro de um tempo
limite intervalo, os dados so retransmitidos. No receptor, a
sequncia utilizada nmeros de ordem correta segmentos que
podem ser recebidos fora de ordem e para eliminar as
duplicatas. Verificando-o no receptor, e descartando os
segmentos danificados.

1Disponvel em: <http://www.wireshark.org/download.html>.

Fluxo de controle

TCP fornece um meio para o receptor para governar a


quantidade de dados enviada pelo remetente. Isto conseguido
atravs do envio de uma "janela" com cada ACK indicando uma
gama de nmeros de sequncia aceitveis alm o ltimo
segmento recebido com sucesso. A janela indica um permitido
nmero de octetos que o remetente pode transmitir antes
receber mais permisso.

Conexes

Quando dois processos desejam se comunicar, o TCP deve


primeiro do estabelecer uma conexo. Quando a comunicao
for concluda, a ligao fechada para liberar os recursos para
outros usos. Desde conexes deve ser estabelecida entre os
hosts no confiveis e sobre o pouco confivel sistema de
comunicao internet, um aperto de mo mecanismo com
nmeros de sequncia baseada relgio.

Precedncia e Segurana

O usurio de TCP pode indicar a segurana e prioridade de sua


comunicao. Prev-se que os valores padro para ser usado
quando esses recursos no so necessrios.

Fonte: Adaptado da RFC 793, 1981.

2.1.2 Cabealho TCP


Na Figura 3 mostra-se o cabealho TCP, o cabealho onde fica as
informaes de cada campo.
Figura 3 Cabealho do TCP

Fonte: Adaptado da RFC 793, 1981.

Filippetti (2008) descreve o significado de cada campo do cabealho TCP. O


cabealho TCP, mostrado acima, possui 20 bytes e contem os seguintes campos:

Source Port (Porta Origem): Nmero da porta lgica onde a aplicao est

localizada;
Destination Port (Porta Destino): Nmero da porta lgica onde a aplicao ou

protocolo requisitado ser entregue;


Sequence Number (Nmero Sequencial): Nmero utilizado na remontagem

dos pacotes de forma correta;


Acknowledgement Number (Nmero da Confirmao): Relata qual octeto TCP

deve ser aguardado na sequncia;


HLEN Header Lenght (Comprimento do Cabealho): Especifica qual o

tamanho do cabealho TCP;


Reserved: Valor sempre 0;
Code Bits: Funes de controle utilizadas para iniciar e encerrar sesso;
CheckSum: Campo utilizado para checagem de erros no cabealho TCP;
Option (Opo): Relata o tamanho mximo de segmento TCP;
Data (Dados): Dados passados da camada superior para a camada de
transporte, que incluem os cabealhos (encapsulamento).

2.2 O que o UDP?


O UDP se baseia no envio de pacotes de informaes, mas remove toda a parte
de verificao de erros do TCP. O objetivo dessa opo acelerar o processo de
envio de dados, visto que todas as etapas de comunicao necessrias para
verificar a integridade de um pacote (e para reenvi-lo, se necessrio) contribuem
para deix-lo mais lento (GUGELMIN, 2014). O UDP utiliza menos largura de banda
em relao ao protocolo TCP. Ele no oferece o mesmo requinte que o TCP, mas
realiza eficientemente o trabalho de transporte de dados que no precisam de
confiabilidade na entrega (FILIPPETTI, 2008).
O UDP, definido na RFC 768, no h apresentao entre a porta de origem e a
de destino da camada de transporte antes de enviar um segmento, por isso dizemos
que o UDP no orientado a conexo (KUROSE; ROSS, 2010).
2.2.1 Servios UDP
De acordo com Tanenbaum e Wetherall (2011), no Quadro 2 mostra-se
todos os servios do protocolo UDP.
Quadro 2 Servios UDP

Servios
No confivel
Sem fluxo de controle
Sem conexo
No seguro

Para que serve?


O UDP no confivel, no realiza fluxo de controle,
no orientado a conexo, no seguro. O UDP
fornece apenas aquilo que determinado. Numa rea
em que ele especialmente til , mas situaes
cliente-servidor. O cliente envia uma solicitao curta
para o servidor e espera uma resposta curta de volta. Se
a solicitao ou a resposta se perderem, o cliente pode
entrar em contato novamente.

Fonte: Adaptado de (TANENBAUM; WETHERALL, 2011).

2.2.2 Cabealho UDP


Na Figura 3 mostra-se o cabealho UDP, e abaixo falaremos sobre os campos
desse protocolo.
Figura 3 Cabealho do UDP

Fonte: Adaptado da RFC 768, 1980.

De acordo com Filippetti (2008) o cabealho UDP mostrado acima possui os


seguintes campos especificados abaixo:

Source Port (Porta Origem): Nmero da porta lgica onde a aplicao est

localizada;
Destination Port (Porta Destino): Nmero da porta lgica onde a aplicao ou

protocolo requisitado ser entregue;


Lenght (Comprimento): Define o tamanho do segmento UDP;

CheckSum: Utilizados para checagem de erros na transmisso UDP;


Data (Dados): Dados passados da camada superior para a camada de
transporte, que incluem os cabealhos (encapsulamento).

3 MATERIAL E MTODO
O mtodo de pesquisa utilizado nesse artigo foi a pesquisa bibliogrfica que
segundo Gil (2010) aquela elaborada com base em material j publicado.
Tradicionalmente, esta modalidade de pesquisa inclui material impresso, como
livros, revistas, jornais, teses, dissertaes e anais de eventos cientficos. Hoje com
os novos formatos de informao passaram a incluir outros tipos de fontes, como
discos, fitas magnticas, CDs, bem com o material disponibilizado pela internet. E
tambm foi utilizada a pesquisa experimental, consiste em determinar um objetivo de
estudo, obter varivel capaz de influenci-lo, definir as formas de controle, e de
observar os efeitos que a varivel produz no objeto (GIL, 2010). Para essa pesquisa
foi utilizada a RFC (Request For Comments), Livros corrente de autores
consagrados, e Artigos Cientficos.
Na pesquisa experimental foi utilizada uma aplicao desenvolvida em
laboratrio na linguagem Java. Segundo Deitel e Deitel (2010), Java uma
linguagem de programao de computador. Para programadores utilizarem na
construo de sistemas importantes.
Para as transferncias funcionarem foi utilizado um Servidor TCP e outro UDP
e um Cliente TCP e UDP. Sendo que um computador fica responsvel pelo Servidor
e o outro fica responsvel pelo Cliente, com isso foi possvel fazer transferncias de
arquivos usando a arquitetura Cliente/Servidor.
4 RESULTADOS
Foram realizados trs testes para que chegar a um resultado aproximado.
Para obter resultado mais satisfatrio, usando o TCP e UDP.
No Grfico 1 explica-se os experimentos feitos em laboratrio, e os resultados
obtidos.
Grfico 1 Resultados da transferncia TCP e UDP

00:01:00
00:00:52
00:00:43
00:00:35

Transferncia 1 (15 Bytes)


Transferncia 2 (30 Bytes)
Transferncia 3 (40 Bytes)

00:00:26
00:00:17
00:00:09
00:00:00
Tempo TCP

Tempo UDP

Fonte: Autores, 2014.

Na transferncia 01, o teste realizado com um arquivo com tamanho de 15


Bytes, na transferncia 02, o arquivo tem o tamanho de 30 Bytes e na transferncia
03 seu tamanho 40 Bytes. Essas transferncias foram realizadas de
Servidor/Cliente.
5 CONSIDERAES FINAIS
Conclu-se que com este trabalho a diferentes aplicaes para o uso dos
protocolos TCP e UDP, e que depende do objetivo do envio de segmentos um
protocolo vai se sair melhor que o outro, sendo que um mais confivel que o outro
protocolo, e que o TCP um pouco mais lento que o UDP, pois a aplicao do TCP
mais completa.
Filippetti (2008) complementa que, o TCP um protocolo que recebe o fluxo
de dados de uma a aplicao e os quebra em segmentos. Esses segmentos so
numerados em sequncia, permitindo a remontagem dos segmentos assim que
alcanarem seu destino. Aps o envio dos segmentos o TCP aguarda uma
confirmao da mquina para qual foi enviado, retransmitindo os segmentos que
no forem confirmados. O UDP utiliza muito menos largura de banda que o TCP. O
protocolo UDP no oferece todo o requinte do TCP, mas realiza eficientemente o
trabalho de transporte de dados que no necessitam de confiabilidade na entrega.

10

REFERNCIAS
DEITEL, P.; DEITEL, H. Java: como programar. 8. ed. So Paulo: Person Prentice
Hall, 2010.
FILIPPETTI, M. A. CCNA 4.1 Guia Completo de Estudo. Florianpolis: Visual
Books, 2008.
GIL, A. C. Como elaborar projetos de pesquisa. 5. ed. So Paulo: Atlas, 2010.
GUGELMIN, F. Internet: qual a diferena entre os protocolos UDP e TCP?
Disponvel
em:
<http://www.tecmundo.com.br/internet/57947-internet-diferencaentre-protocolos-udp-tcp.htm>. Acessado em: 20 jun. 2014.
HILGENSTIELER, F. Prottipo de software para monitorao do cabealho do
protocolo
HTTP
em
uma
rede
TCP/IP.
Disponvel
em:
<http://www.inf.furb.br/~pericas/orientacoes/SnifferHTTP2003.pdf>. Acessado em: 30
jun. 2014.
KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: uma
abordagem top-down. 5. ed. So Paulo: Addison Wesley, 2010.
RFC_768.
User
Datagram
Protocol.
Disponvel
<https://www.ietf.org/rfc/rfc768.txt>. Acessado em: 18 jun. 2014.

em:

RFC_793. Transmission Control Protocol Darpa Internet Program Protocol


Specification. Disponvel em: <http://www.ietf.org/rfc/rfc793.txt>. Acessado em: 18
jun. 2014.
RFC_959.
FTP:
file
transfer
protocol.
<http://tools.ietf.org/html/rfc959>. Acessado em: 18 jun. 2014.

Disponvel

em:

TANENBAUM, A. S.; WETHERALL, D. Redes de Computadores. 5. ed. So Paulo:


Pearson Prentice Hall, 2011.