TCP (Transmission Control Protocol ) VERSUS UDP UDP (User Datagram Protocol) João Lucas Monteiro Instituto Federal Catarinense – Campus Avançado Sombrio – E-mail:
[email protected].
Lucas Correia Correa Instituto Federal Catarinense– Campus Avançado Sombrio– E-mail: lucascorreia-inter@otmail.com.
Resumo: ! artigo artigo ressal ressalta ta sobre sobre os dois dois princi principai pais s protoc protocolo olos s da intern internet et "ue "ue trabalam na camada de transporte do modelo !SI #Open # Open System Interconnection$% Interconnection$% o &C' #Transfer #Transfer Control Protocol) "ue Protocol) "ue ( um protocolo con)i*vel no envio de dados pela rede% utili+ado em transmiss,o de ar"uivos% um eemplo ( uma aplicaç,o em "ue ser* utili+ada na linguagem ava "ue transmite ar"uivos via o &C' e o outro protocolo ( o /0' #User # User Datagram Protocol $ n,o con)i*vel% mais tem a vantagem de ser ser um prot protoc ocol olo o r*pi r*pido do%% ( norm normal alme ment nte e utili utili+a +ado do em cam camad adas as de v1de v1deo% o% o aplicativo mais comum "ue usa esse protocolo ( o S23pe% sendo "ue o &C' tamb(m ( utili+ado nesse aplicativo. ! objetivo desse artigo ( discutir% comparar% implementar e veri)icar os resultados resultados dos eperimentos eperimentos )eitos% dos protocolos protocolos &C' e /0'. /0'. 'or )im% )im% conc conclu luii-se se "ue "ue depe depend nde e do tipo tipo de tran transm smis iss, s,o o "ue "ue a apli aplica caç, ç,o o esta esta re"uisitando% pois cada um desses protocolos tem as suas vantagens. 'alavras-Caves: 'rotocolo &C'. 'rotocolo /0'. 4odelo !SI. Abstract: This article emphasizes on the two main protocols of the Internet working in the transp transport ort layer layer of the OSI (Open (Open System System Interc Interconn onnect ection ion), ), the (Tra (Transf nsfer er Control Protocol) TCP moel is a relia!le protocol for sening ata o"er the network, #se for file transmission, an e$ample is an application that will !e #se in the %a"a lang#age lang#age that transmits transmits files "ia the TCP protocol protocol an the other is the (User (User Datagram Protocol) UDP #nrelia!le, pl#s has the a"antage of !eing a fast protocol is normally #se for "ieo calls the most common application that #ses this protocol is Skype, an TCP is also #se in this application& The p#rpose of this article is to isc#ss, isc#ss, compare, implement implement an "erify the res#lts of e$perimen e$periments ts one, the TCP an UDP protocols& protocols& 'inally, 'inally, we concl#e concl#e that epens epens on the type of transmiss transmission ion that that appl applyi ying ng this this ore oreri ring ng,, as each each of thes these e prot protoc ocol ols s has has its its a"a a"ant ntag ages& es& ey ors* TCP Protocol& UDP Protocol& OSI +oel&
1 INTRODUÇÃO 5a internet% eiste um modelo de re)er6ncia conecida como 4odelo !SI% "ue ( um conj conjun unto to de norm normas as "ue "ue prom promov ove e a inte interc rcon one e,o ,o entr entre e as rede redes s de comp comput utad ador ores es%% divi dividi dido do em sete sete cama camada das. s. 5oss 5ossa a abor aborda dage gem m ( a cama camada da 7 #transporte$% utili+ada para transmiss,o de pacotes na rede% para reali+ar essas transmiss8es% ela usa dois protocolos: um n,o orientado a cone,o e outro orientado a cone,o.
2
Como citado acima protocolo ( um conjunto de regras "ue controla e possibilita a cone,o entre computadores. ! protocolo orientado a cone8es ( o &C' #Transfer Control Protocol $: )a+ cone8es e acrescenta con)iabilidade com retransmiss8es% junto com controle de )luo e controle de congestionamento% tudo em )avor das aplicaç8es "ue o utili+am #&A5E59A/4 ;E&
>% ?$. 0e acordo com a =FC BB #e-#est 'or Comments$% F&' tem como objetivo promover o compartilamento de ar"uivos% #computadores% programas entre outros dados$% para trans)erir ar"uivo de )orma con)i*vel e e)iciente. ! F&' # 'ile Transfer Protocol $ utili+a o protocolo &C' para trans)erir ar"uivos. ! protocolo n,o orientado a cone8es ( o /0' #User Datagram Protocol $: ele envia pacotes entre aplicaç8es% permitindo "ue as aplicaç8es criem seus prDprios protocolos% con)orme a necessidade #&A5E59A/4 ;E&>% ?$. &F&' (TI.I/0 'I01 T/2S'1 POTOCO0$ )a+ trans)er6ncia de ar"uivo usando o protocolo /0'% ClienteServidor. A justi)icativa do trabalo ( aprimorar o uso de cada um dos dois protocolos e mostrar seus serviços. ! objetivo deste trabalo ( avaliar o uso do protocolo &C' e do protocolo /0'% para saber em "ual circunstncia eles devem ser usados.
R!"I#ÃO D! LIT!R$TUR$ 5este cap1tulo apresentam–se os conceitos% serviços e aplicaç8es dos protocolos &C' e /0' respectivamente.
%1 O &ue ' o TCP ! protocolo &C' ( con)i*vel por"ue% antes "ue o processo da camada de aplicaç,o possa começar a enviar dados a outro% os processos se comunicam para conecer um ao outro% devem enviar alguns segmentos preliminares um ao outro para estabelecer a trans)er6ncia de dados #G/=!SE =!SS% ?$. Este lida com "ual"uer )ragmentaç,o ou remontagem dos segmentos &C' necess*rias para alcançar o transporte e entrega atrav(s mHltiplas redes. Ele tamb(m tra+ in)ormaç8es sobre a preced6ncia% classi)icaç,o de segurança e compartimentar,o dos segmentos &C' #=FC-BJ$.
3
0e acordo com a =FC BJ% o &C' )ornece os seguintes serviços: trans)er6ncia de dados de base% con)iabilidade% )luo de controle% cone8es% preced6ncia e segurança.
?..
Serviços &C'
'rimeiramente antes de eplicar os serviços do &C'% eplica-se a Figura o 3anshake tr6s vias. 0e acordo com
onte: Autores% ?7.
Eplicando a Figura o ACG #con)irmaç,o$ o recebimento de uma ou mais datagramas e o SK5 usado na iniciali+aç,o e para estabelecer se"u6ncia. A trans)er6ncia de ar"uivos seria muito mais lenta se cada ve+ "ue o &C' tivesse "ue enviar um pacote ele teria "ue )a+er essa con)irmaç,o. Funcionando da seguinte maneira •
- ! computador de origem inicia a cone,o% transmite in)ormaç,o com o
•
nHmero de se"u6ncia e tamano do pacote ? - ! computador de destino responde com suas in)ormaç8es J - ! computador de origem con)irma seu recebimento% e sua sess,o (
•
estabelecida. Assim os dois sincroni+am% e a trans)er6ncia de dados pode ser )eita sem problemas.
4
5a Figura ? mostra-se uma trans)er6ncia para con)irmar% onde o cliente F&' com endereço ...? solicita a cone,o ao Servidor F&' com o endereço .... i*ura – &rans)er6ncia de ar"uivo capturada pelo ireshark 4% F&' usando &C'
onte: Autores% ?7.
5esta trans)er6ncia ( para mostra como ( )eito a cone,o ClienteServidor. Entre um Servidor F&' e um Cliente &C'. 3anshake tr6s vias% ( usado para estabelecer a cone,o. Segundo a =FC BJ% no "uadro apresenta-se todos os serviços do &C'. +ua,ro 1 – Serviços &C' #er-i.os
Para &ue ser-e
&rans)er6ncia de dados de bases
! &C' ( capa+ de trans)erir um )luo cont1nuo de octetos em cada direç,o entre seus usu*rios empacotando algum nHmero de octetos em segmentos para a transmiss,o atrav(s do sistema de internet.
Con)iabilidade
! &C' tem de recuperar-se de dados "ue est,o dani)icados% perdidos% duplicados% ou entregues )ora de ordem pelo sistema de comunicaç,o pela internet. Este ( conseguido atrav(s da atribuiç,o de um nHmero de se"u6ncia para cada octeto transmitida% e "ue eigem uma con)irmaç,o positiva #ACG$ do receber &C'. Se o ACG n,o )or recebido dentro de um tempo limite intervalo% os dados s,o retransmitidos. 5o receptor% a se"u6ncia utili+ada nHmeros de ordem correta segmentos "ue podem ser recebidos )ora de ordem e para eliminar as duplicatas. Leri)icando-o no receptor% e descartando os segmentos dani)icados.
1Disponível em: .
5
Fluo de controle
&C' )ornece um meio para o receptor para governar a "uantidade de dados enviada pelo remetente. Isto ( conseguido atrav(s do envio de uma MjanelaM com cada ACG indicando uma gama de nHmeros de se"u6ncia aceit*veis al(m o Hltimo segmento recebido com sucesso. A janela indica um permitido nHmero de octetos "ue o remetente pode transmitir antes receber mais permiss,o.
Cone8es
Nuando dois processos desejam se comunicar% o &C' deve primeiro do estabelecer uma cone,o. Nuando a comunicaç,o )or conclu1da% a ligaç,o ( )ecada para liberar os recursos para outros usos. 0esde cone8es deve ser estabelecida entre os osts n,o con)i*veis e sobre o pouco con)i*vel sistema de comunicaç,o internet% um aperto de m,o mecanismo com nHmeros de se"u6ncia baseada relDgio.
'reced6ncia e Segurança
! usu*rio de &C' pode indicar a segurança e prioridade de sua comunicaç,o. 'rev6-se "ue os valores padr,o para ser usado "uando esses recursos n,o s,o necess*rios.
onte: Adaptado da =FC BJ% BO.
?..? Cabeçalo &C'
5a Figura J mostra-se o cabeçalo &C'% o cabeçalo ( onde )ica as in)ormaç8es de cada campo. i*ura / – Cabeçalo do &C'
onte: Adaptado da =FC BJ% BO.
Filippetti #?O$ descreve o signi)icado de cada campo do cabeçalo &C'. ! cabeçalo &C'% mostrado acima% possui ? !ytes e contem os seguintes campos:
6
•
So#rce Port #'orta !rigem$: 5Hmero da porta lDgica onde a aplicaç,o est*
•
locali+ada Destination Port #'orta 0estino$: 5Hmero da porta lDgica onde a aplicaç,o ou
•
protocolo re"uisitado ser* entregue Se-#ence 2#m!er #5Hmero Se"uencial$: 5Hmero utili+ado na remontagem
•
dos pacotes de )orma correta /cknowlegement 2#m!er #5Hmero da Con)irmaç,o$: =elata "ual octeto &C'
•
deve ser aguardado na se"u6ncia 3012 – 3eaer 0enght #Comprimento do Cabeçalo$: Especi)ica "ual o
• • • • •
tamano do cabeçalo &C' eser"e : Lalor ( sempre Coe 5its: Funç8es de controle utili+adas para iniciar e encerrar sess,o CheckS#m: Campo utili+ado para cecagem de erros no cabeçalo &C' Option #!pç,o$: =elata o tamano m*imo de segmento &C' Data #0ados$: 0ados passados da camada superior para a camada de transporte% "ue incluem os cabeçalos #encapsulamento$.
% O &ue ' o UDP ! /0' se baseia no envio de pacotes de in)ormaç8es% mas remove toda a parte de veri)icaç,o de erros do &C'. ! objetivo dessa opç,o ( acelerar o processo de envio de dados% visto "ue todas as etapas de comunicaç,o necess*rias para veri)icar a integridade de um pacote #e para reenvi*-lo% se necess*rio$ contribuem para dei*-lo mais lento #P/PE>4I5% ?7$. ! /0' utili+a menos largura de banda em relaç,o ao protocolo &C'. Ele n,o o)erece o mesmo re"uinte "ue o &C'% mas reali+a e)icientemente o trabalo de transporte de dados "ue n,o precisam de con)iabilidade na entrega #FI>I''E&&I% ?O$. ! /0'% de)inido na =FC QO% n,o * apresentaç,o entre a porta de origem e a de destino da camada de transporte antes de enviar um segmento% por isso di+emos "ue o /0' n,o ( orientado a cone,o #G/=!SE =!SS% ?$. ?.?.Serviços /0'
0e acordo com &anenbaum e ;eterall #?$% no Nuadro ? mostra-se todos os serviços do protocolo /0'. +ua,ro – Serviços /0'
#er-i.os 5,o con)i*vel Sem )luo de controle Sem cone,o 5,o ( seguro
Para &ue ser-e ! /0' n,o ( con)i*vel% n,o reali+a )luo de controle% n,o ( orientado a cone,o% n,o ( seguro. ! /0' )ornece apenas a"uilo "ue ( determinado. 5uma *rea em "ue ele ( especialmente Htil (% mas situaç8es cliente-servidor. ! cliente envia uma solicitaç,o curta para o servidor e espera uma resposta curta de volta. Se a solicitaç,o ou a resposta se perderem% o cliente pode entrar em contato novamente.
onte: Adaptado de #&A5E59A/4 ;E&>% ?$.
?.?.?Cabeçalo /0'
5a Figura J mostra-se o cabeçalo /0'% e abaio )alaremos sobre os campos desse protocolo. i*ura / – Cabeçalo do /0'
onte: Adaptado da =FC QO% BO.
0e acordo com Filippetti #?O$ o cabeçalo /0' mostrado acima possui os seguintes campos especi)icados abaio: •
So#rce Port #'orta !rigem$: 5Hmero da porta lDgica onde a aplicaç,o est*
•
locali+ada Destination Port #'orta 0estino$: 5Hmero da porta lDgica onde a aplicaç,o ou
•
protocolo re"uisitado ser* entregue 0enght #Comprimento$: 0e)ine o tamano do segmento /0'
!
• •
CheckS#m: /tili+ados para cecagem de erros na transmiss,o /0' Data #0ados$: 0ados passados da camada superior para a camada de transporte% "ue incluem os cabeçalos #encapsulamento$.
/ M$T!RI$L ! M0TODO ! m(todo de pes"uisa utili+ado nesse artigo )oi a pes"uisa bibliogr*)ica "ue segundo Pil #?$ ( a"uela elaborada com base em material j* publicado. &radicionalmente% esta modalidade de pes"uisa inclui material impresso% como livros% revistas% jornais% teses% dissertaç8es e anais de eventos cient1)icos. % ?$. 'ara essa pes"uisa )oi utili+ada a =FC #e-#est 'or Comments$% >ivros corrente de autores consagrados% e Artigos Cient1)icos. 5a pes"uisa eperimental )oi utili+ada uma aplicaç,o desenvolvida em laboratDrio na linguagem ava. Segundo 0eitel e 0eitel #?$% ava ( uma linguagem de programaç,o de computador. 'ara programadores utili+arem na construç,o de sistemas importantes. 'ara as trans)er6ncias )uncionarem )oi utili+ado um Servidor &C' e outro /0' e um Cliente &C' e /0'. Sendo "ue um computador )ica respons*vel pelo Servidor e o outro )ica respons*vel pelo Cliente% com isso )oi poss1vel )a+er trans)er6ncias de ar"uivos usando a ar"uitetura ClienteServidor.
R!#ULT$DO# Foram reali+ados tr6s testes para "ue cegar a um resultado aproimado. 'ara obter resultado mais satis)atDrio% usando o &C' e /0'. 5o Pr*)ico eplica-se os eperimentos )eitos em laboratDrio% e os resultados obtidos. 2r34ico 1 – =esultados da trans)er6ncia &C' e /0'
"
'':'1:'' '':'':52 '':'':43 '':'':35
#rans(er)n*ia 1 +15 ,-tes #rans(er)n*ia 2 +3' ,-tes #rans(er)n*ia 3 +4' ,-tes
'':'':26 '':'':1 '':'':'" '':'':'' #empo #
%$#empo &D%
onte: Autores% ?7.
5a trans)er6ncia % o teste reali+ado com um ar"uivo com tamano de 93tes% na trans)er6ncia ?% o ar"uivo tem o tamano de J 93tes e na trans)er6ncia J
seu tamano (
7 93tes. Essas trans)er6ncias
)oram
reali+adas de
ServidorCliente.
5 CON#ID!R$Ç6!# IN$I# Conclu1-se "ue com este trabalo a di)erentes aplicaç8es para o uso dos protocolos &C' e /0'% e "ue depende do objetivo do envio de segmentos um protocolo vai se sair melor "ue o outro% sendo "ue um ( mais con)i*vel "ue o outro protocolo% e "ue o &C' ( um pouco mais lento "ue o /0'% pois a aplicaç,o do &C' ( mais completa. Filippetti #?O$ complementa "ue% o &C' ( um protocolo "ue recebe o )luo de dados de uma a aplicaç,o e os "uebra em segmentos. Esses segmentos s,o numerados em se"u6ncia% permitindo a remontagem dos segmentos assim "ue alcançarem seu destino. ApDs o envio dos segmentos o &C' aguarda uma con)irmaç,o da m*"uina para "ual )oi enviado% retransmitindo os segmentos "ue n,o )orem con)irmados. ! /0' utili+a muito menos largura de banda "ue o &C'. ! protocolo /0' n,o o)erece todo o re"uinte do &C'% mas reali+a e)icientemente o trabalo de transporte de dados "ue n,o necessitam de con)iabilidade na entrega.
1'
R!!R7NCI$# 0EI&E>% '. 0EI&E>% <. Ja-a: como programar. O. ed. S,o 'aulo: 'erson 'rentice I''E&&I% 4. A. CCN$ %1 8 2uia Com9eto ,e !stu,o . FlorianDpolis: Lisual 9oo2s% ?O. PI>% A. C. Como ea;orar 9ro4I5% F. Internet: "ual a di)erença entre os protocolos /0' e &C'R 0ispon1vel em: ttp:TTT.tecmundo.com.brinternetB7-internet-di)erencaentre-protocolos-udp-tcp.tmU. Acessado em: ? jun. ?7. PE5S&IE>E=% F. Prot=ti9o ,e so4t>are 9ara monitora.ão ,o ca;e.a?o ,o 9rotocoo @TTP em uma re,e TCPAIP. 0ispon1vel em: ttp:TTT.in).)urb.brVpericasorientacoesSni))er<&&'?J.pd)U. Acessado em: J jun. ?7. G/=!SE% . F. =!SS% G. ;. Re,es ,e Com9uta,ores e a Internet: uma abordagem top-doTn. . ed. S,o 'aulo: Addison ;esle3% ?.
User Data*ram Protoco. =FCWQO. 0ispon1vel ttps:TTT.iet).orgr)cr)cQO.ttU. Acessado em: O jun. ?7.
em:
=FCWBJ. Transmission Contro Protoco Dar9a Internet Pro*ram Protoco #9eci4ication. 0ispon1vel em: ttp:TTT.iet).orgr)cr)cBJ.ttU. Acessado em: O jun. ?7.
TP: =FCWBB. )ile trans)er protocol. ttp:tools.iet).orgtmlr)cBBU. Acessado em: O jun. ?7.
0ispon1vel
em:
&A5E59A/4% A. S. ;E&>% 0. Re,es ,e Com9uta,ores. . ed. S,o 'aulo: 'earson 'rentice