Você está na página 1de 618

bowitto4ic~

REDES DE
COMPUTADORES
E A INTERNET S' edio

KUROSE ROSS

-----
PEARSON
Companion
Website
bow4tto4ico.
bowot,o4ico.

REDES DE
COMPUTADORES
E A INTERNET 5 edio 1

Uma Abordagem Top-Down


bow4tto4ico.
bowot,o4ico.

KUROSE ROSS

REDES DE
COMPUTADORES
E A INTERNET S edi o
Uma Abordagem Top-Down

Traduo
Opporwni1y Tr.:ir1$laU011s

Reviso Tknica
Wagner Luiz Zvccl1i
Professor Dou tor do Departamento de Sistemas Eletrnc:os
da Escola Politcnica da U niversidade de So Paulos

-----
PEARSON

So Paulo

Brasil Argentina Colmbia Costa Ri ca Chile Espanha Guatelamala Mxico Peru Porto Rico Venezuela
bowot,o4ico.
O 201 O Pearson Education do Brasil
Ttulo original: Cornputer netwnrking: a tnp-down appmad, featuri1115 11,e Internet, ffth editio11
C> 2010 Pearson Educatlon, lnc.
Tratluo autorizada a partir da edio original em ingl5, p ublicada pela Pearson
Education, lnc., sob o !>elo Addison Wesley.

Todos os direitos rese(\lados. Nenhuma parte desta publicao poder ser reproduzida ou
Lransmitida de qualquer modo ou por qualquer outro meio, eletrnico ou mecnico,
incluindo fotocpia, gravao ou qualquer outro tipo de sistema de armazenamento e
u.msmiss.io de informao, sem prvia autorizao, por escrito, d,, Pcarson Education do Brasil.

Diretor editorial: Roger Trimer


Gerente de editorial: Sabrina Cairo
Supervisor de produo editorial: Marcelo Fmnozo
Editoras: Gabriel.i TreviS<1.n e TI1elma Babaoka
Reviso: M,1ria Aiko Nishijima
Capa: Casa de ld~ias, sobre projeto original ele Joyce Cosentino Wells
Imagem de capa: O Reutersl]ean-Phillipe Arbs/Londres
fdtorao eletrnica: Casa de Idias

Dados Internacionais de Cat-alogao M Publicao (CIP}


(Cmara Brasileira do Livro, SP, Brasil)
Kurose, James F.
Redes de computadores e a Internet: uma abordagem lopdown / James
F. Kurose e Keith W. Ross; tradu.10 0p1>ortunily translations ; reviso tcr1iCi\
wasner Zucchi. 5. ed. Silo Paulo: Addison Wesley, 2010.

Ttulo origioal: Computer networking fifth edition a top-down approach


eaturing th e
Internet.

Bibliografia.
ISBN 978-85-88639-97-3
1. Internet 2. Redes de computadores l. Ross, Keith W. li. Ttulo.

09-10003 CDD-004.67

lodices para catlogo sistemtico:


1. Inte rnet ; Redes de computadores: Processamento de dados 004.57

2009
Direitos exclusivos para a lngua portuguesa cedidos
Pearson Education do Brasil, uma empresa do grupo Pearson Education
Av. Em)ano Marchetti, 1435
CEP: 05038-001 , So Paulo - SP
Fone: (11) 21 78-8686 - Fax: (11) 21 78-8688
e-mail: vendas@pearsoned.com
bowot,o4ico.

Para Julie e nossas trs prcciosicliidcs;


Chrs, Clmrlie e Nina
JFK

Porei 111i11/r<1 111<1r,Nilhos<1 esposa Vc!ro11iq11e


e nossas trs Jllh<1s: Ccile, Claire e Kcllie
KWR
bow4tto4ico.
bowot,o4ico.

Sumrio

Captulo l Redes de computadores e a Internet ...................................................... ................ l


1.1 O que a ln temct?............................................................................................... ...................................2
Ll .l Uma descrio dos componentes da rcde ...................................................................................2
1.1.2 Um:1 dcscric..,10 do serv io ................................................ .......................................................... .4
1.1.3 O que um protocolo? ...............................................................................................................5
1.2 A periferia da lnternct .......................................... .... ,....... ........ ......................................... , ....... , ............ . 7
1.2. 1 Programas clientes e servidores ..................................................................................................7
1.2.2 Redes de accsso ...........................................................................................................................8
1.2.3 Meios fsicos .............................................................................................................................. 16
1.3 O nclcoda rcde ................................................................................................................................... 18
1.3.1 ComurnO de circ.ui10s e comutao de pacotes ..................................................................... 18
1.3.2 Como os pacotes percor-rem as redes d e comutadores de pacotes? ......................... ............... 24
1.33 ISPs e backboncs da lntcrneL ....................................................................................................25
1.4 Atraso, perda e vazo em redes de comutao de pacotes .....................................................................26
1.4 .1 Uma \liso ger-al de atraso em redes de comu tao de pacotes .................................................27
1.4.2 Alraso de lla e perda de pacole ................................................................................................29
1.43 Atraso fim a Oin ........................................................................................................................31
l A .4 Vazo nas redes de compmadores ........... .................................................................................33
1.5 Camadas de protocolo e seus modelos de servio ................................................................................35
1.5. l Arquitetura de camadas ............................................................................................................35
L.S.2 Mensagens, segmentos, datagramas e quadros ........................................................................ .40
1.6 Redes sob ameaa ..................................................................................................................................41
1.7 Hislrfa das redes de coinpu1.,dores e da lnternet................................................................................ 45
l.7.1 Desen"olvimento da comutao de pacotes: 1961-1972 .......................................................... 45
1. 7.2 Redes pl'oprktrias e trabalho em rede: 1972-1980 ........... ... ........... ........................... .............46
1.7.3 Proliferao d e redes: 1980-1990 .................... .............................................. ... .................... ..... 47
bowot,o4ico.
VIII
Red es de co mpulad ores e a Interne t

1. 7.4 A ex plos.\ o da lntcrnet: a dcada de 1990 ............................................,... rn.... , ........................ '18


1.7.S Desenvolvimentos rcc,entcs ............................................. ............ ........ ......................................49
1.8 Rcsu mo ..................................................................................................................................................50

Captulo 2 Camada de a plicao.... ........ ............... ................................. ....... ............... ........... 61


2.1 Princlpios de aplicaes de rede ............................................................................................................61
2. 1. l Arqu heturas de aplicao d e red e .............................................................................................62
2. 1.2 Comunica'J.o entre pro cessos ...................................................................................................64
2. 1.3 Servios de transporte dispon veis para apli caes .................................................................66
2. 1.4 Servios de transporte providos pela Internet ........................................................................ ..68
2.1.5 Pro tocolos d e camada de aplicao ..................................................................... ......................7 1
2. l.6 Aplicaes d e rede abordadas nes te livro ............................................ ........... ..........................72
2.2 A Web e o HTTP ......................................................................... ................................................ ,.........72
2.2.l Descrio geral d o HTTP .................................................................... .... ............ ......................72
2.2.2 Conexes persistentes e no pcrsistentes ....................... ......... ................................................. 74
2.2.3 Formato da mensagem HTTP ...................................................................................................76
2.2.4 Interao usurio-servidor: cookies ................................ .................................... ......................80
2.2.5 Cachcs Web .................................................................... ..........................................................8 1
2.2.6 GET condicional .......................................................................................................................84
2.3 Transferncia ele arquivo: FTP ..............................................................................................................85
2.3.1 Comandos e respostas FTP......................................................... ........ ......................................87
2.4 Correio eletrnico na lmen1e1..............................................................................................................87
2.4.1 SMTP .........................................................................................................................................89
2.4.2 Comparao com o HTTP.........................................................................................................9 1
2.4.3 Forrmuos ele mensagem de correio e MIME .............................................................................92
2.4.4 ProLocolos de acesso ao correio ..................................................................... m 92
........................

2.5 DNS: o servio de diretrio da ln1ernet ................................................................................................96


2.5.l Servios fornecidos pelo DNS ......................................................................... ,.. ,......................96
2.5.2 Viso geral do modo de uncionamento do DNS .....................................................................98
2.5.3 Registros e mensagens DNS .................................................................................................... 102
2.6 Aplicaes P2P .................................................................................................................................... 105
2.6. 1 DisLrib uio de :irquhos P2P .................................................................................................. 107
2.6.2 DisLribu ted Hash Tables (DHTs) ............................................................................................ 11 l
Estudo de caso: 1ekonia por Internet P2P com Skypc .......................................................... 115
2.6.3
2.7 Progrnma.\o e desenvolvimento de aplicaes com TC P .......... ,....................................................... 116
2.7. 1 Programao de aplicaes com TCP ......................................... .................................... ........ 117
2 .7.2 Ul1\ exemplo de aplicao clicn1c-servidor emJava...............................................................ll8
2.8 Programa.o de sockets com UDP....................................................................................................... 123
2 .9 Rcsumo ................................................................................................................................................ 129

Captulo 3 Can,ada de nans pon c ................................................................. ........................ 140


3.1 Introduo e servios de camada de Lmnsporte .................................................................................. 140
3. 1.l Relao entre as camadas de transporte e de rede ... ....... ................... ... .... ........ ...................... 142
3. 1.2 Viso geral ela camada d e transporte na lnternet.. .. ....... ........ ........... .... ... ........ ......................143
bowot,o4ico.
IX
Sumrio

3.2 MulLiplexa.lo e demulplcxao ........................................................................................................ l 'l-4


3.3 Transpo rte n:\o orien tado para co11c>->tio: UDP .................................................................................... 150
3.3. l Estruturo do segn1en10 UDP ................................................................................................... 152
3.3.2 Som.1 de ,1erincacllo UDP ........................................................................................................ 153
3.4 Prlncfpios da uansferncia confivel ele clados ................................................................................... 154
3 .4. l Construindo um protocolo de transferfocia con fivel de clados ............................................ 155
3.4.2 Protocolos de trnnscrncia confivel de dados com paralelismo .......................................... 163
3.4.3 GoBacl<N ............................................................................................................................... 166
3.4.4 Rcpco sclcti\l'a (SR) ............................................................................................................ 170
3.5 Transpo rte orientado para conexo: TCP ................................... ............ ........................ ........ ............ 174
3.5. l A conexo TCP ....................................................................................................................... 174
3.5.2 Estntlura do segmento TCP ....................................................................................................176
3.5.3 EstimatiVll do tempo de viagem de ida e volta e de esgotamento de temporiza~1o ............... 180
3.5.4 Trnnsfcr~ncia confl,\vcl ele dados ............................................................................................183
3.5.5 Controle de luxo .................................................................................................................... 189
3.5.6 Gerencimnento da tonex:o TCP............................................................................................. 190
3.6 Princpios de controle de congestionamento ...................................................... ................................ 196
3.. l As causas e os custos do congestionamento .......................................................................... .19
3.6.2 Mecanismos de controle de congestionamento ......................................................................201
3.6.3 Exemplo de controle ele onges lionamcmo assistido pela rede: comrole
de congestionamento ATM ABR ..................................................................... ........................202
3.7 Controle de congestionamento no TCP .............................................................................................. 203
3.7. l Equiclacle. ................................................................................................................................. 210
3.8 Resumo .................................................................................................... ............................................ 213

Capitulo 4 A camada de rede ................................................................................................ 228


4.l lntrodu;-i\o ...........................................................................................................................................229
'1 .l . l Repasse e ro teamento ...................................................................................... ........................229
4.1.2 Modelos de servio de rcde ................................................................. ....................................232
4 .2 Redes de circuilos virtuais e de datagramas ........................................................................................ 234
4.2. l Redes de circuitos virtuais ..................................................................................................... 234
4 .2.2 Redes de d:n:igr.unaS ........................................................................... ....................................236
4.2.3 Orige ns das redes ele circuitos vi rtuais e de datagramas ........................................................238
4.3 O que h dentro de um roteador? .......................................................................................................239
4.3. 1 Portas de enirada .....................................................................................................................240
4 .3.2 ElcmcnLo de comurn:lo ................................................................. - ....................................... 242
4.3.3 Porias de sarda.........................................................................................................................24-4
4.3.4 Onde ocorre formao de fil:l? ............................................................ ....................................244
4.4 O Protocolo da Internet (1P): repasse. e endereament o na lnternet. .................................................247
4 .4. 1 Formato do datagrama ............................................................................................................ 247
4.4.2 En dereamento 1Pv4 ........................................ .......................................................................252
4.4.3 Prowcolo de Mensagens de Comrole da lmernet (ICMP) ....................................................262
bowot,o4ico.
X Redes de compuladores e a Internet

4 .4.4 !Pv6 ...........................................................................................................'"'....... .................... 265


4 .4.5 Uma breve irwesda cm segurana IP .................................................................................... 269
4.5 Algoriunos de rolc:unen to ................................................................................................................... 270
4.5. l O algori1rno ele roteamento de estado de enlace (LS) ............................................................ 273
4.5.2 O algoritmo ele roteameniQ de vetQr de distndas (DV) ..................... ................................... 276
4.5.3 Roteamento hierrquico .................................................................................. .... .................... 282
4.6 Ro 1earnento na Internet. ...................................................................................................................... 285
4.6.1 Ro1cmncnl0 imm-AS na Internet: R!P .................................................................................... 285
4.6.2 Ro1c.1mcn10 intm-AS na lmcrnc1: OSPF .................................................................................288
4.6.3 Roteamento externo a sistemas autnomos: BGP...................................................................290
4.7 Ro1eame1110 broadcast e rnulticast ...................................................................... ................................ 295
4.7. 1 Algoritmos de roteamento broadcast ....................................... ................................... ............ 296
4. 7.2 Multkast ..................................................................................................................................300
4.8 Res umo ....................... ..................................................................................................... ............ ........ 305

Capitulo 5 Camada de enlace e cedes locais .................................. .............................. ......... 318


S.l Camada de enlace: introduo e servios ...........................................................................................318
Os servios fornecidos pda camada de enlace........................................................................319
5. 1.l
5. 1.2 Onde a camada de enlace t imp lementada? .......................................................................... 321
5.2 Tcnicas de deteco e corre-o de erros ...........................................................................................323
5.2.1 Verificaes de paridade ............................................................. ........ ............................ ........324
5.2.2 Mtodos de so ma de vericao ............................................................. ........ ... , ............ ........326
5.2.3 Verlficaiio de redundncia dcl ica (CRC) .............................................................................. 326
5.3 Protocolos de acesso mltiplo ................................................................................................. ............328
5.3.l Protot:olos de divisrLo de canal ................................................................................................330
5.3.2 Protocolos de acesso aleatrio ........................................ ................................ .... ....................33 1
5.3.3 Pro Lo colos de revezamento ..................................................................................................... 336
5.3.4 Redes locais (LANs) ................................................................................................................337
5.4 Enderea.111en10 na camada de enlace...................................................... .................... ........................ 338
5 .4. l Endert>os MAC ...................................................................................................................... 338
5.4.2 ARP ( prot0colo de resoluo de endereos) ...........................................................................339
5.5 Ethernet ...............................................................................................................................................343
5.5. l l;strulUr:i do quadro EthcrneL .................................................................................................344
5.5.2 CSMNCD: o protocolo de acesso nn lplo da ElherncL ........................................................346
5.5.3 Tecnologias Ethernet ................................................................. , .... ,.................. , .... ,....... ,....... 349
5.6 Comutadores de camada de cnlacc .......................................................... ....................... ,.... ,...............35 l
5.6. l Rcp:ISSC e ftltragc rn ............................................................. ................................ ........................ 35 l
5.6.3 Propriedades de comuta.lo da camada de enlace ..................................................................353
5 .6.4 Comutadores versus roteadorcs ..............................................................................................353
5.6.5 Rede local virtual (VLANs [Virtual Local Area Networkl) ....................................................355
5.7 PPP: o protocolQ ponlQ a pQnto ..........................................................................................................358
5. 7.1 En quadramento de dados PPP ............................. .................................................. .................359
5.8 Virtualizao de enlace: uma rede co mo camada de enlace ............... ............... .................................361
bowot,o4ico.
XI
Sumrio

5.9 Um da na vida de uma solicitao de p:.\glna Web ..........................................,... rn.... , ..................... 363
5.10 Resumo ..... .........................................................................................................................................367

Captulo 6 Redes sem fio e redes mveis ............................................................................... 3 77


6.1 1n lroduiio ., ................................................................................ ,....... ,,.. ,,...... ,.... ,,rn .. . ... , . ....... , .. .. ...... J.78
6.2 Caracterfslicas de enlaces e redes sem io ...........................................................................................380
6.2. l CDMA ......................................................................................... ........ ....................................383
6.3 Wi-Fi: L.ANs sem f1o 802.l l ...............................................................................................................385
6.3. l Aarq L1iletura 802.11 .................................................................................................. _........... 387
6.3.2 O protocolo MAC 802. l l ............................................................................... ... ....................389
6.3.3 O quadro IEEE 802.11 ................................................................ ............................................ 394
6.3.4 Mobilidade na mesma sub-rede IP.................................................................................. ........ 396
6.3.S Recursos Avanados em 802.11 ..............................................................................................397
6.3.6 Mais alm de 802.11: Bluetooth e WiMAX ............................................................................. 398
6.4 Acesso celu lar;\ Internei ............................................................................................. ........................ 401
6.4.1 Uma vso geral da arq uitetura celular ...................................................................................402
6.5 Gerenciamento da mobilidade: princpios ...................................................................... .................... 405
6.5. l Endereamento ................................................................................................................ ........407
6.5.2 Rotc.imcnto para um n m,cl ...............................................................................................409
6.6 lP mvel........................................................................................................... ....................................412
6.7 Gcrcnciamemo de mobilidade cm redes cclularcs .................................. ........ ................ .................... 415
6.7. l Rot('ando chamadas para um usurio rnvd .......................................................................... 417
6. 7.2 Transferncias em GSM (hancloffs) ................................ ................................................ ,....... 418
6.8 Sem fio e mobilidade: impacco sobre p rotocolos d e camadas superiorcs ........................................... 420
6.9 Resumo ................................................................................................................................ ,....... ,.......422

Cap tu lo 7 Redes mul tind.i a ................................................................................................. 428


7.1 Aplicaes de rede multJmdia ............................................................................ ................................ 429
7. 1.l Exemp los de aplicaes muhimldia ........................................................................................429
7. 1.2 Obstculos para a multimdia na Internet de hoje ................................................................. 431
7.1 .3 Como a Internet deveria e"oluir para dar melhor suporte mu ltimdia? ..................... ........ 432
7.l.4 Compresso de udio e vdeo ................................................................................................. 433
7.2 udio e vdeo de lux o continuo armazenados ...................................................................................436
7.2.l Acesso a ud io e vdeo por meio de um servidor Web .......................................................... 436
7.2.2 Envio de multimdia de um ser"ldor de luxo comhu10 a uma aplica-o auxiliar ................437
7.2.3 RTSP ( protocolo de lL1xo contnuo cm tempo re~,1) .............................................................. 439
7.3 Fazendo o mel hor possvel com o servio de mel hor esfo ro ............................ .................... ............ 442
7.3. 1 As limitaes de um servio de melhor esfor~-o ................................................ ,.... ,...............442
7.3.2 EliminaJo da varia-Jo de atraso no receptor para udio .............................. ........................444
7.3.3 Recu pera-Jo d e perda de paeoces ........................................................................................... 447
7.3.4 Distribuio de multimdia: redes de clistri buio de contedo .............................................449
7.3.5 Dimensionando Redes de melhor desempenho para fornecer um servio de qualidade .... ... 452
bowot,o4ico.
XII
Redes de compuladores e a Internet

7.4 Protocolos paro apUc...ics inLcrativas em tempo real ......................................,... rn.... , ...................... 453
7.4. l Protocolo de tempo rea l (RTP) ............................................................... .... .................... ........ 453
7.4.2 ProLOeolo de controle RTP (RTCP) ....................................................................................... 456
7.4.3 51P ................................................................................................ ...........................................458
7.4.4 H.323 ........................................................................................................................... .... ........463
7.5 Fornecend o classes de scvio nnltiplo ............................................................................................... 464
7.5 . l Ccmlrios motivadores ................................................................................................................ 465
7.5.2 Mecanismos de cscalon,uncnto e regula.10 ............................................ ................................468
7.5.3 Difscrv ......................................................................................................................................474
7.6 Fornecendo grsrantias de qualidade de scrvios.................................................................................. 478
7.6.l Um exemplo motivador ........................................................................ ............... ,............ ,....... 478
7.6.2 Reserva de recurso, admiss.lo de chamada e configurao de c hamada .................................. 479
7. .3 Qo5 gamntida na lmernet: lnLSCrv e RSVP ............................................................................. 482
7.7 Resum o .................................................................................................... ............................................483

Capitulo 8 Segurana em redes de computadores ................................................................. 491


8.1 O que segurana IH\ rede? ................................................................................................................ 493
8.2 Princpios de criptografia .................................................................................................................... 494
8.2.1 Criptogr::1fia de chaves simtric-.1s ............................................... ............................................495
8.2.2 Criptogmfia de chave pblica .................................................................................................500
8.3 l ntegrid~tdc de mensagem e au tenticao do ponto final... ................................................................. 504
8.3. 1 Funes de hash criptografieas ...............................................................................................505
8.3.2 Cdigo de autemicao da mensagem ........................................ ........................................... .506
8.3.3 Assinacuras digicais ................................................................................. ................................507
8 ,3.4 Autcnt icailo do pomo flnal ................................................................... ................................ 512
8.4 Prou~gcndo o e-mail ............................................................................................................................ 516
8.4. l E-mail segL1ro ...................................................................................... ................ ....................517
8.4.2 PGP......................................................................................................................................... .520
8.5 Protegendo conexes TCP: SSL .......................................................................................................... 521
8.5. l Uma vis."\o abrangcntc ............................................................................................................. 522
8.5.2 Uma vis.'\o mais completa ....................................................................................................... 524
8.6 Segurana na camada de rede: lPsec e redes virtuais privadas ...........................................................526
8.6. l !Psec e redes ,,rt uais prhada.o; (VPNs) ................................................................................... 526
8.6.2 Os protocolos AH e ESP .................................................................................................. ....... .527
8.6.3 Associaes de segurana ................................................ ....................................................... .527
8.6.4 O datagrnma IPsec....................................................................... ............ ............................... .528
8.6.5 Gcrenciamemo de chave no lPscc ..................................................................... ,.... ,....... ,...... .53 1
8.7 Segu rana em LANs sem fio ............................................................................................................... .531
8.7. 1 Privacidade Eq uivalente Cabeada (WEP) ................................... ........................ ....................532
8. 7.2 lEEE 802.l li .......................................................................................................................... .533
8.8 Scgur--,rna opcracio1rnl: l'irewalls e sistemas de dctcctlo de invaso .................................................. 535
8.8. l Fircwalls ...................................................................................... ........ ,............... ,.................. .535
8.8.2 Sistemas de deteco de intrusos ......................... ................................. ............ ......................540
8.9 Resumo ......... ,.. ........... ,.................. ,,, ..... ,........... ,...................... ,... ,.......... ,............. ,...... ,.,,......... ,... ,.....544
bowot,o4ico.
XIII
Sumrio

Capitulo 9 Gerenciamento de rede ......................................... ............................... ....... ......... 553


9.1 O que gerenciamento de rede? ...........,........................................................................ ,................... .553
9.2 A infracslrLuura do gerenciamento de re:dc ........................................................................................55
9.3 A cstrumra de gerenciamento padro da Internet ...................... ........................................................560
9.3.1 SMI (EstruLura de Informaes de Gerendiunento) ................... ............................... -, ......... .56 1
9.3.2 Base de informaes de gcn:ndamc.nto: MIB......................................................................... .564
9.3.3 Operaes do protocolo SNMP e mapeamentos de trans porte ..............................................565
9.3.4 Segurana e administrao ...................................................................................................... 568
9.1 ASN. 1...................................................................................................................................................570
95 Conduso .............. ,...............................,.......................,......................... ....................... ,.................... 574

Refernci as ....................................................... ....................... ............................................... 578


ndice ....................................................... .. ....... ........ ...... .. ...................................................... 603
Sobre os autores ..................................................................................................................... 615
bow4tto4ico.
bowot,o4ico.

Prefcio

B
em-vindo q uinta edi<,-.\o de Re,les de compura<lons e a lllternel: uma <tbordagem top-tlown. Desde a publica-
o da primeira cdi.lo, h nove anos, nosso livro oi ,1dorndo cm centenas de universidades e ins1ltuies
de ensino superior, traduzido para mais de dez idiomas e utilizado por mais de cem mil cstud;mtcs e profis-
s ionais no mundo inlciro. Muitos uesses leitores enlraram em contato conosco e fic"'1mos exlrem,uncntc s:atisfeilos
com sua reao positiva.
Acrcdilamos que um,, importante razilo para esse sucesso que o livro oferece uma abordagem moderna do
ensino de redes de computadores. Voc poderia pergunt~ir: por que necessria uma abo rdagem moderna? Nos
l1himos anos, testemunhamos duas mudancas revolltCiom\rias no campo das redes - mudanas que nuo esltto
refle1idas nos livros sobre o assumo publicados cni-rc as dcadas de 1980 e 1990.
Em primeiro lugar, a lmcmct dominou o universo das redes de compmadores. Alualmcntc, cm qualquer clis-
CUSS30 sria sobre redes, obrigatrio ter a I ntcrnel cm mente. Em segundo lugar. o maior crescimento nessa rea
ocorreu no mbito dos servios e das aplicaes, o que pode ser conirmado pelo dese nvolvimento d~t Web, peJa
u1i lizao dos servios de e-mal por milhares de usurios ao mesmo teJnpo, pela recepo de ud io e vdeo, pelo
telefone por Internet, pelos senios de mensagem instantnea, pelas aplicaes P2P e pelo comrcio elerrnico.

Quais so os novidade~de~to quinto edio?


Fizemos mudanas nesta quinta edio, mas mantivemos Inalterados os aspec tos que acredltamS ser (e os
professores e <rslUdantes que utilizaram nosso livro conirmaram) os mais importantes deste livro: a abordagem
top-down, o foco na lmernet, a a1e_no que demos aos princpios, pratica e s ua abordagem e aos estilos aces-
sveis do ensino de redes de computadores.
Contudo, fizemos muitas muda n~-as slgnilcativas nesta edio. Iniciando pelo Olpflulo l, atualizamos a
introclui\o referente a redes e atualizamos e c.xpandimos nossa abordagem sobre redes de acesso (particular
meme, o uso de redes a cabo, DSL e fibcr-tothe-home como redes d e acesso Internet publica). No Captulo 2,
retiramos o material sobre a pesquisa pomo a pomo que se tornou fora de uso par.t dar espao a uma nova se{to
sobre distributed hash tables. A apresentao do controle de congestionamento TCP no Captulo 3 agora base-
ada ern uma rcpresenta1,.-:.10 grMka (m:lqulna de estado finito) de TCP. estruturando e esclarecendo nossa abor-
dt\gcm. O Caplulo 5 foi cslendido significativamente, com s~cs novas sobre as redes locais vinuais (VW\NS)
e sobre ~um dia na vida de uma solicilao ele pgina Weh". Esta ltima seo rdaciona toclos os protocolos e
atividades da rede envolvidos em satisfazer a solicitao aparen temente simples para buscar e exibir uma pgina
Web de um servidor remoto, ajudando a ilustrar e sintetizar muito do material abordado nos cinco primeiros
bowot,o4ico.
Rede s de compu1adores e a Internei

captu los. No Captulo 6, removemos um pouco da ''sopa ele letrinhas" de padres e protocolos da tclcfollJa cdu-
lar e acrescentamos uma nova se.lo sobre a arqu i1etura de redes de celular e como a rede d e celular e a Internet
operam em couju1110 para prover servios da Internet a aparelhos mveis como o Blackberry e o iPhone. Nossa
abordagem sobre a scgumua ela rede, no pftulo 8, sofreu uma reviso signiicaLiV1l. O conLcclo sobre a auten-
tica<;o do ponto d e chegada, encadeamento de blocos de ciras e criptografia da cha,e pblica foi revisado, e o
material sobre o IPsec foi reescrito e es1endldo para incl uir as redes vinuas privadas (VPNs, do ingls vinual
private networks). Ao longo de todo o livro, inclumos exemplos modernos e reerncias atuali:zadas.

Pblico-oIvo
Este livro destina-se a um csLudo inicial de redes de computadores. Pode ser uS11do ern cursos de cincia
da computao e de engenharia eltrica. Em Lermos de linguagem de programao, requer q ue os estudantes
conheam as linguagens C, C++ ou Java (mas apenas em alguns lugares). Embora esLe livro seja mas minucioso
e analtico do que muiios outros de introduo s redes de computadores, raramente miliza conceitos matem:iti
cos que no sejam ensinados no ensino m&lio. fizemos um esforo del iberado para evitar o uso de quaisquer
conceiios avanados de Clculo, probabilidade ou processos estocsticos (embora tenhamos includo alguns
problemS para al unos com ta l conhedmcnto avanado). Consequentemente, o liwo apro priado para cursos
de graduao e para o primeiro ano dos cursos de ps-graduao. tamb m muito til para os profissionais do
setor de tclccomunka~.

Oque h de singular neste livro?


O assunto rede de computadores basrnnte vasto e complexo e envolve muiLoS conceitos, protocolos e Lec no-
logias que se entrelaam inextricavclmcnle. Para dar coma desse escopo e complexidade, mu itos livros sobre redes
so, cm gemi, organizados de acordo com as "camada..,;~ de uma arquitetura de rede. Com a organizao cm camadas,
os est udantes podem vislumbrar a complexidade das redes de computadores - eles aprende m os conceitos e os
protocolos distintos de uma pane da arquitetura e, ao mesmo tempo, ,'isualizam o grande quadro da imerconcxiio
emrc as camadas. Do ponto de visla pedaggico, nosSil exp(riMcia pessoal confirma que essa abo rdagem cm cama-
das , de fato, muito boa. Entretanto, achamos que a abordagem tradicional, a bouom-up- da camada fsica para
a camada de aplicao-, neto a melhor abordagem para um c mso moderno de redes de computadores.

Uma abordagem top-down


Na primeira cdiO, propusemos uma inovao ado1ando uma ,is.io top-down - is to , comeando na
nun ada de aplrn~io e ckscenclo a1 a m mada fsica.
A abordagem top-down ocrccc diversos bencrcios importantes. Em primeiro lugar, o livro d enasc
camada ele ap licailo, q ue te m sido a rea de "grancle crescimento~ das redes de computado res. De fato, muitas
das rcccntes revolues nesse ramo - incluindo a \1/eb, o compariilhamento de arquivos P2P e o fluxo continuo
de mdia - t ivemm lugar nessa camada. Essa abordagem de nfase inicial camada de aplicao dierentc das
seguidas por muiLos o uLros li\TOS, que tm apenas pouco matcrinl sobre aplcacs de redes, seus requisitos,
paradigmas da camada de aplica-.lo (por exemplo , dicme-servidor e ponto a ponLo) e in1erfaccs de prognunailo
de aplicao. Em segundo lugar, nossa experifncia como professores (e a de mui tos ou1ros que mili:zaram este
li"ro) confirma que ensinar aplicaes ele rede logo no incio do curso uma poderosa ferramenta motivadora.
Os esllldantes ficam m.iis entusiasmados ao aprender corno funcionam as ap licaes de rede - aplicaes como
o c-maiJ e a Web, que a maioria deles usa diariamente.. Entendendo as aplicaes, o estudante pode emcnder
os servios de rede necessrios ao SL1porte de 1ais aplicaes. Pode tamhf m, por sua vez, examinar as vrias
maneiras como esses servios so fornec idos e implementados nas tv.imadas mais baixas. Assim, a discusso das
aplicaes logo no incio forn ece a motivao necessria para os demais assuntos do livro. Ern 1erceiro lugar, essa
abordagem top-d own habilita o professor a apresentar o desenvo lvimento de aplicaes de rede no estgio inicial.
bowot,o4ico.
li
Pie l cio

Os es tudames no apenas \leem como fu11cionam aplicaes e protocolos populares, como tambm aprend em que
ci l criar SLtas prprias apl icaes e prOLocolos de aplicao de rede. Com a abordagem top-<lown, eles entram
imcdiaiamcmc cm coniato com as noes de interfaces de programa~~ de aplicaes (applicalion programming
inter faces - AP l) e com os modelos de servios e protocolos - conceitos im portantes que reaparecem cm todas
as ca madas subseq uentes. Ao apresentar exempl os de programao de soc ket.s em Java, des tacamos as ideias
centrais sem conundir os esmdantes com cdigos complexos- Estud antes de engen haria eltrica e cie ncia da
computai\o ptova"clmcntc no tcro dlculdacles para entender o cdigo Java.

Um foco na Internet
Continuamos a ut ili zar a arciuitetura e os protocolos da Internet corno veiculo primordial pam esllldar con-
ceitos fun damentais de redes de computadores. claro que 1am bm inclumos conceitos e protocolos de outrns
,1rquitcturas de rede. Mas os holofotes esto claramente dirigidos il lntcrneL, fato refletido na organizao do l\'rO,
que gira em 10rno da arqu itetura de cinco <-"amadas da lmernet: aplicao, transporte, rede, enlace e sica.
Outro bc ncfcio de colocar a I nterncLsob os holofotes que a maioria dos estudantes de cincia da computa-
o e de engenharia el1rica es1 vida po r conh ecer a Intern ei e seus proLOcolos. Eles sabem que a lmernet uma
tecnologia revol ucionria e ino\'adora e podem consta1i1r que ela es1 provocando uma prounda transformao
em nosso mundo. Dada a enorme relevtlncla da Internet, os csLUda rues es1;.10 naturalmente curiosos e rn saber o
que h por trs dela. Assim, fic-,1 dl para um professo r manter seus alun os in teressados nos princpios bsicos,
usando a lmernc1 como g11ia.

Ensinando princpios de rede


Duas das caracter!sticas exc:lusivas deste livro - sua abordagem top-down e seu foco na lrnernec - apare-
cem no ttulo e subtilu lo. Se pudsSemos, terlamos acrescenrndo uma tercei ra pala,ra ao subttulo - princpios.
O campo das redes agora esti s uicicmcmente madu ro para que uma quan1iclade de assuntos ele importrmcia
fundamemal possa ser ide ntificada. Por exempl o, na camada de 1ranspon e, emre os assum os imponames es1o
a comun icao conflveJ por uma e3mada de rede no confi"cl, o cs1aoelccimcnto/cncerramcnto de co t1cxes
e mma apresen tao, o con trole de congesiionam emo e de fluxo e a mu ltipl exao. Na camada de rede, dois
assuntos muilo impon an tes so: como de1errninar "bons" caminhos entre dois roteadores e corn o im erconectar
um grande n(unero de redes heterogencas. Na camada ele enlace, um problema fundamental como companil har
um cana l de acesso mlliplo. Na segurana ele rede, tcnicas para prover sigilo, auten ticao e integridade ele
mensagens so baseadas em undarnentos da criptografia. Es1e livro identifica as ques1es fundamentais de redes
e apre~111a abordagens para enfrentar essas q ltcstes. Aprendendo esses princpios, o estudante adqui re conheci-
me1110 de longa validade - muito tempo aps os padres e protocolos de rede de hoje to rnarem-se obsoletos,
os princpios que ele incorpora continuaro importantes e relevantes. Acredilamos que o uso ela Internei para
apresen ta r o assunto aos estudantes e a nasc dada il abordagem das questes e das solues permitiro que os
almios en tendam rapidamente qualquer tecnologia de rede.

Material de apoio
No site de apoio do livro (www.aw.com/kurose_br), proessores e es tudan tes podem acessar ma1e-
Companlon rfa.is adidonaiscm qur1lqucr dia, du rante 2't horas.
Website

Para professores:
Fo rnecemos um pacote de suple mentos para auxiliar o ensino do contedo deste livro.
Manual de solues (em ingl~s). O site do livro oferece um manual de solues, em ingls, para os
exerccios apresentados ao final de cada captulo.
bowot,o4ico.
Redes de compuladores e a Internet

Aprcscmaes cm PowcrPoim . O she do livro aprcsema slides cm PowcrPoim para lodos os nove
capfmlos. Os slides do dcralhcs complcros sobre cada rnphulo e neles usamos grficos e animaes
- e no apenos marcadores - para lomar sua aula visualmente interessante e atraenle. fomecemos
os s lides originais aos profc-ssores par.\ que eles possam personaliz-los do modo qLtC melhor atenda
s suas necessidades de ensino. Alguns d ~ slides foram fornecidos por professores que ulilizaram
nosso livro em seus CL1rsos.
Material de aprendizagem interativo. O site Web contm diversos applets Java interativos, que animam
muilos dos principais conceiws de redes. O site 1ambm possui quizzes interalivos que pcrmtrem que
o aluno verifique sua compreenso bsica sobre o assunto. Os procssorcs podem completar essas
caracte1is1icas intera1ivas com aulas ou us-las como minilabs.
Material tcnico adicional. Removemos,\ abordagem de alguns assunlOS existentes pam deixar o livro
com um volume razovel. Por exemplo, para abrir espao para o novo contedo desta edio, reli ramos
o material sobre as redes ATM e pesquisas ponto a ponto. Esse mn terinl pode ser encontrado no sile
Web do livro.
Tarefas de programa:,o. O silc Web 1amb111 prove diversas tarefas de progmma..'io detalhadas. que
incluc_m co1\strur um servidor Web muhilarefo, consLmir um dlente de e-mail com uma lrucrfoce
GUl, progi-Jmar os lados remetentes e dest11uutrios de um protocolo de- transpone de dados confivel,
programar um algoritmo de rotc.,memo cli.slribudo e 11u1i10 mais.
Wireshark labs. A compreenso sobre protocolos de rede pode ser ex1remarneme aproLlndada ao
observ-los cm a.10. O site Web pro,Cdiversas 1arcfas Wircshark que permilcm que os eswdames
observem a sequtncia ele mensagens trocadas emre duas cnlidadC's de prolocolos. O site Web inclui
Wireshark labs distintos em HTTP, DNS, TCP, UDP, IP, !CMP, Ethernel, ARP, Wi-Fi, SSL e no ras-
treamento de todos os protocolos en,olvidos cm satisfazer a solicita,io para buscar uma pgina Web.
Novos labs sero adidonaclos com o tempo.
Esse 11uueri11I (/e uso t.xclusivo para profe5SOrcs e C$1d pro,cgido po,. st~rl,a, Pum ter acesso o des, os proft'Ssorcs que <1do1t1m
o livro dc-.cm e,umr em contaco com seu ,eprcsemmuc Pcanon ou eu11lar emai/ ptim r111lversiw1ros@pearso11cd.com.

Para estudantes:
Exerccios on-line au1ocorrigvcis. Tcsle seus conhecimentos com exercicios de mltipla escolha e, se
quiser, envie o rcsultaclo pam seu professor.

Caracters1icas pedaggicas
H quase 20 anos damos aulas de redes de compuradorcs. Adicionamos n eslc livro uma experincia agre-
gada de mais de 4S anos de ensino para milhares de estudantes. Durante esse perioclo, tambm participamos
ativamente na rea de pesquisas sobre redes de computadores. (De ato. Jlm e Kei1h se conheceram quando
fazia m mestrado, frequentando um curso sobre redes de compltladores ministrado por Mischa Schwanz, cm
1979, na Universidade ele Colmbia.) Achamos que isso nos d uma boa perspectiva do que foi a rede e de
qllal ser, provavelmente, seu Uluro. No obstumc, resistimos s tcmacs de dar ao material deste livro um
vis que favorecesse nossos projetos de pesquisa prediletos. Se voc estiver interessado cm nossas pesquisas,
consulte nosso site Web pcssonl. Este livro sobre redes de compmadores modernas - sobre protocolos
e tecnologias comcmpo r,lneas, bem como sobre os princptos subjacentes a esses protocolos e tecnologias.
Tambm achamos que aprender (e ensinar!) rede.s pode ser di,erLido. Es permnos que um certo senso de humor
e a milizao de analogias e exemplos do mundo real que aparecem neste livro tornem esre material ainda
mais dive rtido.
bowot,o4ico.
XIX
P1elcio

Adendos, princpios na prtico e segurana em foco


O campo das redes de rnmputadorcs Lem uma hislria rica e ascim1111e. Fizemos, ncs tt livro, um esforo
especial para conta r a histria elas redes de computadores, o qual se materializou em u ma seo histrica especial
no Ca ptulo l e em l2 adendos his Lric:os espalhados pelos demais captulos. Nesses anigos histricos, aprc-
semamos a inveno da comut.ao de pacotes, a evolu;'lo da Internet, o nascimento de importantes empresas
g igan tes de redes, como a Csco e a JCo111, e mu11os ouLros eventos relevantes. Os estudantes cer1amenLc se
sentiro cstinmlados pol' esses acomccimcmos histricos. Em cada captulo, inclumos um adendo especial que
acentua um principio import;1nLc ele rede de computadores. Esses adendos auxiliaro o estudante a compreender
alguns dos conceitos fu ndamenu\is que esto sendo aplicados s redes modernas. Um po uco de nossa abordagem
mais abrangente sobre segurana da rede aparece nos te,x tos complementares "Segurana em oco'" em cada um
dos captulos principais deste livro.

Enlrevislas
Inserimos uma omm camcterslica o rgim,I que inspiraram e molivaram os leitores - cnlrevisrns com noV'J-
dores famosos no c.impo de redes. Apresent.amos emrevis1.as com Leonard l<leinrock, Bram Cohen, Sally Floyd.
Vi nton G. Ccrf, Simon S. Lam, Charlic Pcrkins, Henning Sdtulzri nnc, S1evcn M. Bellovin eJclT 01.Sc.
O primeiro captulo deste livro apresenta um apanhado geral sobre redes de computadores. Com a imroduo
dt' muitos concclos e terminologias fundamemais, ele monta o cenrio para o resrnme do lhro. Todos os outros
captulos dependem diretamente desse primeiro. Recomendamos que os professores, aps o terem completado,
percorram cm sequncia os capilulos 2 ao 5, seguindo nossa nlosoia 1op-down. Cada um dos cinco pri meiros
captulos utiliza maLerial dos captulos precJemes. Aps ter complcrnclo os cinco primeiros rnprtulos, o profes-
sor ter bastante lexibilidade. No h imerd ependncia entre os quatro ltimos captulos, de modo que eles
podem ser ensinados e.m qualquer ordem. Conhecemos professores que, aps ensinar o captulo introdutrio,
ensinam o Captulo 5 e depois tr;ibalham de baixo para cima, 01.1 at mesmo professores que come~m a ensinar
pelo meio (p1 wlo 4) e depois no seguem nenhuma ordem. Contudo, cada um dos quatro depende de mate-
rial dos cinco primeiros. Muitos professores ensinam os primeiros c:inco <.-aptulos e ento um dos qu:.uro (lllimos
para arrematar.

Uma noto final: gostaramos que vocs entrassem em contato conosco


Incentivamos professores e estudantes a nos enviarem e-mails (em ingls) com q ualquer comentrio que
possam ter sobre o livro. Incentivamos os professores, umbm, a nos enviar novos problemas (e solf' cs}
que complemenlem os problemas exis tentes. Publicaremos tud o isso no espao para professores no site We b.
Recomendamos aos professores e alunos que criem novas aplkaes Java que iluslrem os conceitos e protocolos
aprese ntados neste livro. Se vocf ti,cr uma aplicao que j ulgue apropriada para este li vro, apresente-a, por gen-
tHcza, aos au tores (cm ingls). Se a aplicao ( incluindo nota~~ao e termin ologia) for adequada, teremos o praze r
d e inclui-la no site We b do lhro em ingles (www.aw.com/ku rose-ross), com a devida reer~ncia a seus autores.
No deixem de nos enviar URL.s illleressantes ou de discordar de qualque r uma de noss.1S airmaes e
110s informar o que fonciona e o que no funciona. Digam-nos, ainda, o que poderia (ou o que nao deveria) ser
includo na prxima ccliO. Enviem seus e-mails para kurose@cs.umass.edu e ross@poly.edu.
Al a data de publicao deslc livro, todos os URLs mencionados no texto cst,wam funcionando. Devido
ao carter dinmlco da Internet, porm, alguns deles podem rm1dar o u deixar de e,xlst. Para tentar encontrar os
siu/'s e informaes mencionados, use uma ferramcma ele busca como www.googlc.com ou www.yahoo.com.
bow4tto4ico.
bowot,o4ico.

Agradecimentos

D
esde o inicio deste projeto, em l995, muitas pessoas nos deram inestimvel auxflio e influenciaram nossas
ideias sobre como melhor organizar e mlnlstn1r um curso sobre redes. Nosso MUITO OBRIGADO a todos
os que nos ajudamm, sobreludo s centenas de estudanlcs, acad!micos e profissionais que nos enviaram
s ugestes e comentri os sobre :,sedies ani eriores e sugestes para futuras edies d este livro. Nossos agradeci-
mentos especiais para:

AI Aho (Columbia University) Vinton Cer (Google)


Hisham AI-Mubaid (University o Houston-Clcar Syung Kyu Chol (Michigan Technologi1..-al Univcrsily)
Lakc) Bram Cohen (BitTorrcm, lnc.)
Pratima Akkunoor (Arizona State Universily) Consurntinc CoutraS (Pace Un ivcrsity)
Paul Amer (Uni,,crsity orOclaw:1re) John Daglc (Univcrsil)' of Mssissippi)
Shamiul Azom (Arizona State Univers ty) Edmundo A. de So uza e S ilva (Un iversidade Federal
Lichun Bao (University of Caliornia at lrvine) do Rio de Janeiro)
Paul Barford (University o Wisconsin) Philippe De<:uetos (Eur6com lnstilute)
Bobby Bhauacharjee (University o f Maryland) ChrisLOphe OioL(Thomson Research)
Stcven lkllovin (Columbia Universi1y) PriLllllla Dhunghel (PolyLcdmic lnslilute of NYU)
Pravin Bhagwat (Wibhu) Michalis Faloutsos (U niversil)' of Californla at
Supralik Bhauacharn~,1 (p revio Ltsly :11 SprinL) Riverside)
Erns t Bersack (Eurcom lns1iu11e) Wu-chi Fcng (Orcgon Graduatc lns titute)
Shah id Bokhari (University of Engineering & Sally Floyd (ICIR, U niversity of Califomia ai
Tcchnology, Lahore) Berkeley )

Jean Bolot (Sprint) Paul Francis (Max Planck lnstitute)


Daniel Brushtcyn (ex-aluno da Univcrsity o Lixin G:10 (University of Massachusms)
Pcnnsylvania) JJ Garcia-Luna-Accvcs (Universil)' o C."tlifomia at
Ken Calvert (U ni vers ity o Kentucky) San~a Cruz)
faandro Camu (Universidade Federal de Santa Mari o Ge ria (U nivcrsity of California at Los Angel es)
Catarina) David Goodman (Poly1echnic University)
Jeff Case (SNMP Research lnternalional) Ti m Griffin (Cambridge University)
Jeff Chaltas (Sprint) Max Hailperin (Gustavus Adolphus College)
bowot,o4ico.
XXII
Redes de compu1adores e a lnleroet

Bruce Harvey (Florida A&M Unvcrsily, Florida Statc Sriram Rajagopalan (Arizo na State Un versily)
U11ivcrs!ty) Ramaclrnndran Ramjcc (Microsoft Rcsearct1)
Carl lia user (Washington SLate University) Ken Rcek ( Rochesu::r Institule or Tcch nologr)
Rachcllc 1-lcllcr (George Washington Univcrsity) Martin Reisslcin (Arizona Statc Univcrsity)
Phillipp Hoschka (INRI I-VW3C) Jennifer Redor<l ( Princcton Unversily)
Wcn Hsl n (Park Univcrs ity) Leon Reznik ( Rochester lnstitute ofTechnology)
AlbcrL Huang (ex-aluno da UnivcrsiLy of Pcnnsylvania) Sumlt Roy (Unlverslty of Washington)
Eslhcr A. Hughes (Vlrgina Co rnmonwea lth 1\vi Rubin Oohns Hopkins Uni versi ty)
Univers ity)
Dan Rubcnstcin (Columbia Univcrsity)
Job in James (U niversi1y of Califomia at Riverside)
Douglas Salanc (John Jay College)
SugihJamin (Univcrsily o Michigan)
Oespina Saparilla (Cisco SysLcms)
Shivkumar Ka l)ranaraman (Rcnssclaer Pol)lcchnic Henning Schulzrinne (Col umb ia Urvcrsty)
lns 1iw1e)
Mischa Schwan z (Colu mbia Univcrsicy)
j LISSi Kangasharju (U niversity o Darmstadt)
Harish Sethu (Drexel Uni\,ersily)
Sncha Kascra (Un ivcrsity of Ulah)
K. Sam Shanmugan (Un ivcrsiLy of Kansas) Prashan1
Hyojn Kim ( cx-aluno da Universily of Pcnnsylvania)
Shenoy (U niversit}' or Massachusetts)
Leonard Kkinrock (UniversiLy of California at Los Clay Shiclds (Gcorgetown Uni vcrsiLy)
Angeles)
Subin Shrcslra (UniversiLy of Pennsylvania)
David Kotz (Dartmoulh College)
Milrnil L Sichiliu (NC Slatc University)
Bes han Kulapala {Arizona State Uni versity)
Pctcr Stccnkis1c (Carnegie Mcllon Univcrsity)
Rakcsh Kurnar (Bloombcrg)
Tatsuya Suda (U nivcrsity of California al lrvinc)
Miguel A. Labrador {Uni \ersi t)' of South Florida)
Kn Sun Tam (State UnivcrsiL}' of New York a L
Simon Lm (U ni vcrs ity of Tcxas) Albany)
Steve Lai (Oh io State Unive rsity) Don Towsky (U nivcrsity of Massachusetts)
Tom LaPona (Pcnn Stacc Unlversty) David Turner (Califomia State Unhersity, San
Tim-Bemers Lee (World Wide Web Consonium) Bernardino)
Lee Lei tn er (Drexel Un ivcrsily) Nitin Va idya (U nivcrsity of Illinois)
Brian Lcvi ne (U nivcrsit)' or Massachuse us) Michelc Wcigle (Clemson University)
William Uang (former University of Pennsylvania David Wc th crall (University of Washington)
s tud ent) Ira Winston (Univcrsity o [ Pennsylvania)
Willis Mani (Texas A&M University) Di Wu (Polytcchnic lnstitulc of NYU)
Nick McKcown {Stanford UniversiLy) Raj Yava tkar (1 ntel)
Josh Mcl<inzie (Park Univers ity) Yechiam Yemini (Columbia Uni,crsity)
OteJ>Medhi (Unlversity ofl\lissou ri, Ka nsas City) Ming Yu (S tatc Uni vcrs ity o Ncw York a t
Bob Metcalfc (l m crnational Data Group) Binghanuon)
Sue Moo n (KAIST) Ellcn Zcgum {Gcorgia lnstitutc of Tcch nology)
Erich Nalrnm ( IBM Rcscarch) Honggang Zhang (Suffo lk Univcrsity)
Christos Papadopoulos (Colon1do Satc Univershy) Hui Zhang (Car negie MeJlon Universlty)
Craig Panridge (BBN Tcchnologies) Lixia Zhang (Univers ity of Caliorn ia aLLos Angeles)
Radia Perlman (Sun Micrnsys1ems) Slrnchun Zhang (ex-alun o da Un ivcrsicy of
J itendra Padhye (Microsoft Res~uch) Pennsylvania)
Vern Paxson (Universily of California ,u Berkeley) Xiaodong Zhang (O hio S1:11e Un.ivcrsit))
Kevln Phllllps (Spr.nl) Zhili Zhang (University oMinn esota)
George Polyzos (Achens University of Economics anel Phil Zimmermann (consultor independeme)
Business) Cliff C. Zou (Universi ty of Central Florida)
bowot,o4ico.
XXII I
Agrodedmeatos
r

Gostaramos de agradecer a Honggang Zhang, da Sufolk Univcrsity, por revisar e aperfeioar alguns proble-
mas presemes nesta edio. Queremos agradecer, tambm, a toda a equipe da Addison-Weslcy - cm particular,
a Michael Hirsd, , Marilyn Lloyd e S1ephane Sellingcr - que izeram um trabalho realrnerue notvel nesta qui nta
cdi<.'o (e que leve de suporta r dois auLorcs muito complicados e quase sempre atrasados).
Agmdecemos aos artistas grfi cos Janet Theurcr e Patrice Rossi Calkin, pelo trabalho que exccutamm nas
figuras deste livro, e a Nesbiu Graphcs, tfarry Druding e Rose Kernan, pelo mnnwilhoso trabal ho de produi1o
desta ecliftO.
Finalmente, um agradecimento muito especial a Susan Hanman. nossa amiga editoro na Addison-Wcsley,
e, mais uma vez, a Michael llirsch, nosso editor na Addison-We.sley. Este livro no seria o q ue (e talvez nem
tivesse existido) sem a administrao cordial de ambos, constamc incemivo, pacincia quase inOnita, bom humor
e perseverana.
Os editores da edio brasileira dedicam este livro ao prof. Nery Machado Filho (in memoriam).

Nota do Revisor Tcnico


Mais uma vez foi com imensa satisa.lo que pude apreciar e rever a U'aduo cio material aprcscnrndo cm
Reclcs ele comrmt,ulorcs e" l11ternet: um,i tlbordagcm lop-clown. De minha pan e. sou gralo pelos comentrios rece-
bidos sobre a primeira c<.lh;o e conto com a colaborao de alunos, professores e proissionais de redes ixtra a
melhoria do trabalho.
WLZ
bow4tto4ico.
bowot,o4ico.

l
Redes de computadores
e a Internet

lmemc1 de hoje provavelmeme o maior sismna de engenharia j cr[ado pela hu manidad e, com cemcnas

A de compu1adores conectados. links de comunicao e comutadores: cemcnas de mil hares de usurios


q ue se conectam esporadicamente por meio de telefones celulares e PDAs; e dispositi vos como sensores,
wcbroms. console para jogos , quadros de imagens, e at mesmo mquinas de lavar sendo conectadas lntcrnet.
Dado q ue a Internet to ampla e possui inmeros componentes e utilidades. h a possibildade de comprnd er
como ela (e, em um amplo sentido, as redes de compmadores) funciona? Existem princfpios de o rienta<,"o e
es trutura que forneam um fundamento para a compreenso de um sistema surpreendentemente compl exo
e abrangente? Se a respos ta for sim, possvel que, nos dias de hoje, seja intereSS11.nte e diven ido aprender sobre
rede de computadores? Feli:zme111e, as respostas p.tra todas essas pergu ntas um re1umba nt e SIM! Na \erdade,
nosso objeti vo neste livro t fornecer tuna introduo moderna ao campo din:irnico das redes de compu1ado res,
apresen tand o os principios e o entendimento prlico necessrios para militar nil.o apenas as redes de hoje. como
tambm as de am anh.
O primeiro capitulo apresenta urn panorama de redes de computadores e da ln1ernet. Nosso objcti\'O
pintar um quadro amplo que nos permita ve r a lorcs1a pr emrc as rvores. Co brlrcmos urn terreno bastan1e
exlenso neste caprtulo ele imrodu.lo e discu tiremos vclrlas peas de uma rede de computadores. sem perder d e
visia o quadro geral. Este captulo lan<,'3 as undaes para o restante d o livro.
O panorama geral de redes de computadores que aprescmarcmos neste c.apJ tulo sem csLru turado como
segue. Aps aprcsen1armos brevemente a. tcrminologi:1 e os co1wcil0S unclarnentais. examinaremos primeira-
mente os componentes bsicos de hardware e sotwarc que compem uma rede. Parlircmos da pericri,t da rede e
examinaremos os sis temas finais e aplicaes de rede cxecuiados nela. Consideraremos os ser\lios de transpone
fornecidos a essas aplicaes. Em seguida exploraremos o cerne de uma rede de computaclores examinan<lo os
en laces e comu1adores que transportam dados, bem como as redes d e acesso e meios fsicos q ue co nectam siste-
mas lnais ao ncleo da rede. Aprenderemos que a Internet uma rede de redes e observa remos como essas redes
se co nectam umas com as outras.
Aps concluirmos essa reviso sobre a periferia e o ndco de uma rede de computadores, ado 1aremos uma
viso mais ampla e mais abs tral.i na segunda me1ade desie captulo. Examinaremos as causas do airnso de u, ms-
fcrncia de dados e das perdas ern lima rede de compu1ado rcs e forneceremos modelos qu:m1imt ivos simples para
o atraso fim a fim, modelos que levam em conta atrasos de transmisso, propagao e fi la. Depois apresentaremos
bowot,o4ico.
2
Rede s de compu1 ad ores e a Internei

alguns princpios rundamcnlais de arquiLcmra cm redes de computadores. a s.1ber: proLocolos cm camadas e


modelos de servio, Aprenderemos. tambm, que as mies de comput,,dores So vulncmvcis l\ diferen tes tipos
de ameaas; analisaremos algumas dessas ameaas e como a rede de computadores pode se tornar mais segura.
Finalmente, encerraremos este captulo com um breve histrico da computao em rede.

1.1 Oque aInternet?


Nes te livro, usamos a Internet pblica, uma rede de computadores especfica, como o ,,dculo pri ncipal para
disc utir as redes de cornpurndorcs e seus protocolos. Mas o que a Internet? H d i,ersas maneiras de responder
a essa qucst.o. Pri meiro, podemos descrever detalhadamente os aspectos principais da lnterncl, ou seja, os com-
ponentes de software e hard ware bsicos que a formam. Segundo, podemos dcscrc,,cr a Ln tcrnct em termos de
uma infraest rutura ele redes q ue fornece servios para aplicaes distribudas. Iniciaremos com a descrio cios
componentes, utilizando a Figura l.l como ilustrao para a nossa discusso.

1.1.1 Uma descrio dos componentes da rede


A lmernet uma rede de computadores que interconecta milhares de dispositivos computacionais ao redor
do mundo. H pouco lem po, esses dispositivos cr-.i.m basicamente computaclores de mesa, estaes de lrabalho
Urmx, e os assim chamados servidores que armazenam e transmilem inonnacs. como p:tginas da Web e
mensagens de e-mail. No entanto, cada ve, mais sistemas finais modernos d..1 Lruerncl, como TVs, laptops, con-
soles para jogos. telefones celulares, webcams, automveis, dispositivos de sensoriamento ambiental, quadros de
imagens, e sistemas imernos eltricos e de seguran,a, esto sendo conectados rede. Realmen te , o termo re,!e dr
computadores es1 comeando a soar um tamo desa1ualiudo, dados os mui1os equipamentos no tradicionais q ue
cst:10 sendo ligados Internet. No jargo da Internet, todos esses equipamentos so denominados hospedeiros
ou sistemas lnats. Em julho de 2008. h:wia aproximadamente <>00 milhes de sistemas finais ligados \ Internet
(ISC, 20091, sem contar os telefo nes celulares, laptops e outros dispositivos que s.10 conectados rede de maneira
intermiten te.
Sistcm.1s lnais sO conectados entre si por enlaces (links) de comunicaO e comutadores de pacoles. Na
Seo 1.2, veremos que hi muilos tipos de enlaces de comunica.lo, que so conslillldos de diercmes tipos de
meios isicos. entre eles cabos coaxiais, fios de cobre. Obras ticas e ondas de rdio. Enlaces diercntes PQdem
transmitir dados cm taxas dj(ercmcs, sendo a taxa de transm[sso de um enlace medida cm blts por segundo,
Qu:mclo um sistema final possui dados para envi:,r a outro sistema final, o sistema emissor segmenta ess.es
dados e adiciona bytes de cabealho a cada segmento. Os pacotes de inormacs resultantes, conhecidos como
pacotes no jargo de rede de computadores, s:lo enviados atravs da rede ao sistema final de destino, onde so
reagregados aos dados originas.
Um comutador de pacotes enc..,uninha o pacote que est chegando em um de seus enlaces de comtulicaM de
entrada pam um de seus enl,tccs de comunic..w,\o de salda. H i:omutadores de (X\COtes de todos os li pose fonnas,
mas os dois mais proeminentes na l nlernet de hoje s.io roteadores e comuladorcs de c-.imada de enlace (switchcs).
Esses dois tipos de comutadores encaminham pacotes a seus dcst.nos lnas. Os comutado res de camada de
enlace so tipicameme ulililmdos em redes de acesso, enquamo os roteadores so utilizados pri ncipalmeme no
ncleo da rede. A sequncia de enlaces de comunicaM e comutadores de pacotes q ue um pacote percorre desde
o sis tcnu fina l remetcme at o sistema final receptor conhecida corno rota ou caminho a travS da rede. dicil
de estimar a exata quantidade de trafego 11:1 Internet (Odylsko, 2003). A PriMctricn [PriMctrlca, 20091 estima
que 10 terabits por seguu<lo de 1:3pacidade internacional foram utilizados por provedores da Jnternet pblica em
2008, sendo que essa capacidade cluplic-.i, aprox imadamente, a cada dez anos.
As redes comutadas por (X\COtes {que transportam pacotes) s,\o, de muitas maneiras, semelhantes s redes
ele transporte de rodovias, estradas e cruzamentos (que lmnsportam vec ulos). Considere, por exemplo, uma
fbrica que precise transportar uma quantidade de carga muito grande a algum depsito localizado a milhares de
bowot,o4ico.
3
Coplu lo 1 Redes de com pulodores e o lalernel

tSP naciona l
ou globa l
Redemvel

ISPlocal
ou ra,glonal

Rede corporativa

legenda:

HOSI (ou Servidor M\ltl Esta-'o-l>o>e Telefone Toue de


Comut,idor Modem
SiSttrll3
dt PCO!I' celular ttlefon,a
final) celular

Figura 1.1 Alguns componentes do Internet

quilmetros. Na fbrica, ., carga dividida e carregada cm uma frota de c.1minhcs. Cada cami11ho viaja, inde-
pendentemente, pela rede de rodovias, estradas e cruzamentos ao depsilo de des tino. No depsito, a carga des-
carregada e agrup.1da com o resto da carga pcncnccme mesma remessa. Deste modo, os pacotes se assemelham
aos caminhes, os enlaces de comunica:lo se assemel ham s rodovias e estradas, os commadores de pacote se
assemelham aos cruzamemos e cada sistema final se assemelha aos prdios. Assim como o caminho faz o percurso
pela rede de transporte, o pacote utiliza uma rede de computadores.
bowot,o4ico.
4 Redes de compuladores e a Internet

Sistemas ftnals acessam a Internet por meio d e Pro,cdorcs de Servios de Internet (lm emcL Service Provide.rs -
ISPs), entre eles lSPs residenciais co rno empresas de TV a cabo ou empresas de telefonia; [SPs corporativos, ISPs
de universidades e lSPs que fornecem acesso sem fi o cm acroporLos, hotis, ca~ e 01mos locais ptiblicos. Cada
lSP uma rede de comutadores de pacotes e enlaces d e comunicai'lo. 1.SPs proveem aos sisLemas finais uma varie-
dade de tipos de acesso red e, incluindo acesso por modem discado de 56 kbps. acesso residencial de banda larga
como modem de cabo coaxial ou OSL (linha digital de assinan te), acesso por LAN de alta ,,elociclade e acesso sern
f'io. lSPs tambm fornecem acesso a provedores de contedo, conectand o sites \oVe b diretamenle ;i Intern et. Esta
se interessa pela con exo entre os slsternas finais, portanto os ISPs que fo rn ecem acesso a esses sistemas tambm
d evem se interconectar. Esses lSPs de nvel mais baixo s\o inlerconectados por meio de ISPs de nvel mais alto,
nacionais e internacionais, co mo AT&T e Sprim. Um ISP d e nvel mais a lto consiste cm rotcll.dores de alta ,cloci-
daclc intcrco ncctados com enlaces de fibr-.1 tca d e a lta vclocd..1dc. Cacla rede ISP, seja de nvel mais alto ou mais
baixo. gerenciada d e forma independente, executa o protocolo lP (ver adiante) e o bedece a cenas convenes
d e nomeao e endere o. Examinaremos ISPs e sua interconexo mais cle1alhadameme na Seo 1.3.
Os s lsLcmas finais. os comutadores de pacotes e o utras peas da Inte rnet executam protocolos que contro-
lam o envio e o recebi mento ele informaes. O TCP (Transmi.ssion Control Pro tocol - Protocolo ele Contro le
d e Transmiss-lo) e o IP {Internet Protocol - Prolocolo da lntcmct) silo dois dos protocolos mais irnponamcs
da lmcmct. O protocolo lP especifica o formaLo d os pacoLcs que s:t\o enviados e recebidos entre roteadores e
sistcnrns finais. Os principais pro Locolos da Internet so co nhecidos coletivamente como TCP/IP. Comearemos
a examinar protocolos neste capitulo d e introduo. Mas isso s um comeo - grande parte deste livro trata
d e protocolos ele redes de compu1.adorcs!
Dada a impo rtncia de protocolos para a Internet, adequado que rodos concordem sobre o que tada um dos
protocolos foz. aqui que os padres enmlm cm a,\o. Padres d,1 1nlcrnet so desenvolvidos pela IETF (Internet
Engincerin g Task Force - Fora de Traballto de Engenharia da Internet) llETF, 2004 J. Os doe ume mos padroni-
Z11dos da IETF so denominados RFCs (request fo r comme111s - pedido de comemrios). Os RFCs comearam
como solicitaes gerais de comentrios (por isso o nome) para resolver problemas de arquitctu rn que a pre-
cursora da Internet enfrentava. Os RFCs tendem a ser bastante tcnicos e detalhados. Dclncm protocolos como
TCP, IP, HTTP (para a Web) e SMTP (Protocolo Simples de Transerncia de Correio - Sim ple Mail Tmnser
Protocol) (para e-mail). Atualrncntc, existem mais de 5.000 RFCs. O mros organismos Lambm cspeclcam
padres para componentes de rede, mais not:wclmcnte para enlaces da rede. O IEEE 802 LAN/MAN Standards
CommitLee llEEE, 802, 20091, por exemplo, especifica os padres Ethernet e Wi-Fi sem fio.

1.1.2 Uma descrio do servio


A discuss.lo anterior ident ificou muitos dos componcrues que compem a Internet. Mas tambm podemos
dt>Screv-la panlndo de um .t1gulo completamente derenu: - ou seja, como unrn infracst,-u tum c1ue prov
se,-\/ios 11 aplicaes. Tais aplicaes incl uem corRio eletrnico, navegao na Web, mcns.-.gem instanlf111ea, Voz
sobre IP (Vo!P) , Internet via r-J.dio, vfdco cm tempo real. jogos distribudos , ,ompartilhamcn to de arq uivos pcer-
Lo-peer (P2P), televiso pela Internet. login remoto e muito mais. Essas aplicaes so conhecidas como aplic,-
es distribu fdas, uma vez qu e envohem d iversos sistemas finais que trocam inormacs mu tuamente. De orma
sig.nificaLiva, as aplicaes da lntcrncL so executadas em sistemas finais - e nllo cm comutadores de pacote no
ncleo da rede. Embora os comut:tdo res de pacote facilitem a troca de dados entre os sistemas. eles no esl:io
relacio nados com a aplicao, que a fon te ou desLino de dados.
Va mos explorar um pouco mais o significado de uma inraesmuura qu e fornece servios a aplicaes. Nesse
sentido, suponha que voc tenha uma grande icleia pura urna upliCll.~'o distribuda para a lmemet., u rna que possa
bencCiciar a humanidade ou que simples mente o enriquea e o torne fomoso. Como transformar essa ideia cm
uma aplicaco real ela Internet? Como as aplkaes so executadas em sistemas finais, voc precisar criar eorn-
poncmcs de software que sejam e.xceu1ados cm sistemas finai s. Vocc pode. por exemplo, criar seus componentes
em J ava, C, ou Python. Agora, j que voc est desenvolvendo uma aplicao distribuda para a Internet, os com-
ponentes do softwa re executados em diferentes sistemas finais precisaro enviar dados uns aos outros. E, aqui,
bowot,o4ico.
Coptu lo 1 Redes de <o mputodores e o Internet
s

chegamos ao assunto principal - o que leva ao modo altcrnalivo de descrever a lmernet como uma plataforma
para aplicaes. De que modo um cornponcntl" da aplicao, executado em um sistema final , orienta a Internet a
enviar dados a outro componente de software executado em outro sistema final?
Os sistemas fina is ligados Internet proveem uma Interface de Programao de Aplica.lo (API) que cspe
cca como o componente do sofovare que executado no sistema fina l solicia Lnfrnestrulllm da lmernet que
cmie dados a um componente de software de destino especfico, execmado cm om ro sistema final. A API da
Internet um conjunto de regras que o sofLware emissor deve cumprir para qtte a ln temet seja cap:tz de emiar
os dados ao componcme de dc-stino. Discutiremos a API da hucrnet mais detalhadamente no Capitulo 2. Agora,
va mos traar uma simples cornparn<.'o. que ser utilizada com frcquencia neste livro. Suponha que Alice queria
enviar uma carta para Bob u ti lizando o servio postal. Alice, claro, no pode simplesmente escrever a cana (os
dados) e atira-la pela janela. Em vez disso, o servio JX>stal necessita que Alice coloque a carta em um envelope;
escreva o nome com pleto de Bob, endereo e CEP no centro do envelope; feche; coloque u m selo no camo
superior direito do envelope; e, fi nalmente, coloq\,e o envelope cm uma caixa de correio oficial. Dessa maneira,
o servio postal possui sua prpria "API de servio postal'', ou conjunto de regras, que Alice deve cumprir para
que sua carta sej,L entregue a Bob. De um modo semelhante, a Lnternct possui uma API que o sotwarc emissor
de dados deve seguir parn que a lnlemct envie os dados para o software receptor.
O servio postal, naturalmente. fornece mais de um servio a seus clientes: em rega expressa, confirrna{lo de
envio. carta simples e muito nr.iis. lguahnentc, a Internet prov diversos servios a suas aplica-cs. Ao desenvolver
uma aplicao para a lmemet, voc Lambm deve escolher um dos servios que a rede oferece. Uma descrio dos
scn'ios da Internet ser apresentada no Captulo 2.
Esrn segunda descri_;lo da lntcmeL- uma infmesLruLum de fornec imento de servios a aplicaes disi.ribttf-
das - mui to importante. Cada vez mais, os avanos na tecnologia dos componentes da Internet esto sendo
guiados pelas necessidades de novas aplicaes. Pormmo, frnponame ter sempre em men te que a lmernet uma
infraes rrum ra na qua l novas aplicaes esto constamemem e sendo invemadas e disponibilizadas.
Acabamos de ap rcsenw r duas descries da ln ternct: urna delas diz. respeito a seus componentes de: hardware
e software, e a o utra, aos servios que ela oferece a aplicaes distribudas. Mas talvez voc ainda esteja con fuso
sobre o que a lmernet. O que oomutalo de pacotes, TCP/IP e API? O que so roteadores? Que llpos de
enlaces de comu nicailo esto pl"csentcs na Internet ? O que uma aplicao distribuda? Como u ma to rrndeira
ou um scns.or de \'llr iacs meteorolgicas. pode ser ligado Internet? Se voc est um pouco assuslado com mdo
isso agora, m\o se preocupe - a fina lidade deste livro lhe aprcscnlar os mecanismos da Internet e Lamblm os
princfpios que determinam como e por que da foncio11a. Explicaremos esses termos e questes impo n antes nas
sees e nos captulos subsequentes.

1.1.3 Oque um protocolo?


Agora que j entendemos 11111 pouco o que a Internet, vamos considerar uma outra palavra fundamental
usad:t em redes de compuLadores: protocolo. O que um protocolo? O que um protocolo faz?

Uma analogia humana


Provavelmente rn11is fcil entender a ideia de um protocolo de rede de computadores considerando primei
mmente algumas analogi,is humanas, j que executamos protocolos o tempo Lodo. Considere o que voc faz
quando quer pergumar as horas a algum. Um d ilogo comum ilustrado na Figura 1.2.
O protocolo hum:1110 (o u as boas maneiras, ao menos) ordena que, ao iniciarmos uma eomu n ica:10 com
outra pessoa, pri rncirantente a cumprimentemos (o primeiro "oi" da figura 1.2). A resposta comum para um
oi" Llm outro "oi". Im plktamente, tomamos a respos ta cordial "oi" como u ma inclicao de que podemos
prosseguir e perguntar as horas. Uma resposta diferemc ao "oi" in icial (t.al como "No me perturbe!', " I don't
speak Ponugucse! " ou a lguma resposta impublicvcl) poderia indicar fa lta de vontade ou incapacidad e de
comutticao. Nesse caso, o protocolo humano seria tto perguntar que horas so. As vezes, no recebemos
nenhuma resposta para uma pergunta, caso em que normalmente desistimos de perguntar as horas pessoa.
bowot,o4ico.
6
Redes de compu1adores e a Internet

~..
O;

.... Q\

.
:...,.......
:...........

.
.~~
y y
Tempo Tempo Tempo TelT\pO

figure 1.2 Um prol0<olo humono e um protocolo de rede de computodOfes

No1e que, no nosso protocolo humano, h mensagens especficas que emiamos e c1es especificas que realiza-
mos cm rt<1cio eis respostas rcccbrclas ou II outros eventos (como ne11hrun11 resposta cip6s ano tempo). claro que
mensagens 1ransmitidas e recebidas e <1es realiwdas qu.mdo essas mensagens s:lo enviadas o u recebidas ou
quand o ocorrem outros eve ntos desempenham um papel cenLral em um protocolo hum:ino. Se as pessoas
executa rem protocolos diferentes (por exemplo, se uma pessoa tem boas manei ras, mas a outra no; se uma
delas entende o concelo de horns, mas a outra no), os protocolos no interagem e nenhum trabalho tH pode
ser rea lizado. O mesmo v lido para redes - preciso que duas (ou mais) entidades comlrnkamcs e.xecucem
o mesmo pro1ocolo para que uma tarefa seja realizada.
Vamos considerar uma segunda ana logia humana. Suponha que voct esteja assistindo a uma aula (sobre
redes de computadores, por exemplo). O profossor est falando monolonamcntc sobre protocolos e voc est
confuso. Ele parn e pergunla: "Alguma dvida?" (u ma mensagem que tn111sm i1ida a 10dos os alunos e recebida
por todos os que no cs1o dormindo). Voc levan1a a mo (1 ransmilindo uma mensagem implcita ao profes-
sor). O professor percebe e, com um sorriso, diz "Slm ... ~ (um:1 mensagem 1ransmilida, incentivando-o a fazer
sua pergunLa - professores lldormn pergunlas) e voc entlo foz sua pergunta ( isLo , mrnsmile sua mensagem
ao professor). O professor ouve (recebe sua mensagem) e responde (transmite uma respos1a a voc). Mas uma
vez, percebemos qt1e a 1ransmiss.lo e a recej)\i\O de mensagens e um conjumo de aes conve11cionais, realizadas
quando as mensagens so enviadas e recebidas, s.10 o corao desse protocolo de pergunta e resposta.

Protocolos de rede
Unt protocolo de rede semelhante a um protocolo hmmt110; a linica diferen~a que as entidades que trocam
mensagens e rea lizam aes so componemes de hardware ou software de a lgum cquipamen10 (por C.'<cmplo,
compu1aclor, PDA, telefones celulares, roteador ou 01uro equipamento habili1ado p:m1 rede). Todas as ativdades
na Internet que envolvem duas ou mais emidades remotas comunic:.ames so governadas por um prowcolo.
Por exemplo, protocolos implementados em hardware nas placas de interface de rede de dois computadores
conectados fisicamenie comrolam o luxo de bits no 'cabo' entre as duas placas de i1nerface de rede; protocolos
bowot,o4ico.
7
Co plulo 1 Redes de com pulo.dores e o Internei

de comrolc de congestionamento cm sistemas (in.1is co111rolam a taxa com que os pacotes so transrnllidos entre
a origem e o dcslino; protocolos em roteadores determ ina m o caminho de um pacote da origem ao desti no.
Protocolos csulo em execuo por toda a Internet e, eonseque111emer11e, grande pan e deste li\ro tra ta de proto-
colos de rede de computadores.
Como exemplo de um protocolo de rede de computadores com o qual voc provavelmcme est familiarizado,
considere o que a<.-o ntecequando azemos uma requisi;,o a um servidor Web, isto , quando digitamos o URL de uma
p.igina Web no browser. Isso mostrado no lado direito da Figura 1.2. Primeimrnente, o computador enviar uma
mensagem de rcquisii!.o de conc.xo ao servidor Web e aguardar uma resposta. O servidor receber essa mensagem
de requisio de conexo e retomam uma mensagem de resposta de eone>:o. Sabendo que agora estii 1udo certo para
requisitar o docu mento da Web, o compu1.ador envia ent:lo o nome da p.iglna Web que que r buscar naquele servidor
com uma mensagem GET. Por fim , o ser.~dor retoma a pgina da Web (arqui vo) para o computador.
Dados o exemplo hu mano e o exemplo de rede anteriores, as trocas de mensagens e as aes realizadas quan-
do essas mensagens sl.\o cnvi,1das e recebidas sl.\o os elementos funda mentais pam a defi nio de um protocolo:

Um protocolo de.fine oJomwlo e ,1 ordem das mi:nsagcns tl'Ocadas entre duas ou mais cntidatlc:s comuniam,~,
hem como as aes realizadas na mmsmiswo c/pu 110 rece/Jime11I<> de uma mensagem <>u cmtro C\'t"nto.
A lnterncLe as redes de compucadores cm geral fazem uso menso de pro tocolos. Difcrem cs Lipos de protoco-
los so usados pam realizar dicrcntcs iarefas de comunicao. medida que for avanando na leitura deste l.ivro,
voc perceber que alguns pro1ocolos So simples e diretos, enquan to outros So complexos e il11clccu1:1lme111c
profundos. D0min,1r a :ire.'\ de redes de computadores equivale a entender o que silo, por que existem e como
fun cionam os protocolos de rede.

1.2 Aperiferia da Internet


Nas sees anteriores, apresentamos uma descrio da Internet e de proLocolos de rede fazendo analogias
com nossos mos. Agom passaremos a munr com um pouco mais de profundidade os componentes de um:i rede de
computadores (e da lmernet, cm particular). Nesta seo, comeamos pcfa periferia de uma rede e examinamos
os componeotcs com os quais csrnmos mais fanifarizados - a saber, compuladorcs, PDAs, telefones celulares e
outros equipamentos que usamos diariameme. Na seo seguime, passaremos da perieria para o ncleo da rede
e estudaremos comutao e roteamento cm redes de computadores.
Corno descrito n,t seo anterior, no jargo de rede de computadores, os computadores e ouLros dispositi-
vos conectados Internet so frcquentemcntc chamados de s.stemftS l nais. EIL-S so assim chamados porque se
encontram na periferia da I111ernet, como mostrado na Figura 1.3. Os sistemas fi nais da lmernet incluem com-
putadores de mesa (por exemplo, PCs de mesa, MACs e Linux Boxes), servidores (por exemplo, Web e servidores
de e-mails), e computadores mveis (por exemplo, computadores portteis, PDAs e telefones com concx,\o sem
no ;i l nterneL). 1\lm disso, um crescente nmero de aparelhos al1erna1ivos esLo sendo utilizados com a l11tcrnet
como slslcmas inals (veja pgina scguinle).
Sist emas fina is iambm so denominados hosrmleiros (hosis) porque hospedam (isto , executam) programas de
aplicao, tais como um programa browscr da Web, um programa servidor da Web, um programa leitor de e-mail ou
um servidor de e-mail. Neste livro, utilizaremos os tcm1os hospedeiros e sistemilS finais como sinnimos. s ,,ezcs,
sistcnl,IS finais so ainda subdivididos cm dlt3S categorias: clientes e scntidorcs. Inforrnalmcnle, clientes costum-am s<:r
PCs de mesa ou mveis, PDAs e assim por diante, ao passo que servidores tendem a ser mquinas mais poderosas que
arrnaz.ena rn e distribuem pginas Web, vdeo cm tempo real, retmnsmlsso de e-mails e assi m por diante.

1.2.1 Programas clientes e servidores


No conlexto de software de rede h ainda uma outra deftnl.lo de clicnlc e de servidor, qual nos referiremos
em todo o livro. Um programa cliente um programa que funciona em um sistema final, que solicita e recebe um
bowot,o4ico.
8
Redes de compu1odores e o Internet

Um conjuntoimpressionante de sistemas finais do Internet


No foz muito tempo, os sistemos finais conectodos ln1ernet erom primordia lmente computadores trodi
cionais, como mquinos de mesa e servidores de 9ronde copocidade. Desde o final do dc:odo de 1990
al hoje, um amplo leque de equipamentos e disposilivos interessantes, cada vez mai~ diversos, vem sendo
conectado Internei. A caracterstico comum desses equipamentos que eles precisom enviar e receber
dados digitais de, e poro, outros equipamentos. Tendo em visto o onipresena do Internei, seus protocolos
bem definidos fpodronizodos) e o disponibi lidade comercial de hardware copocitodo poro elo, nolurol usar
suo tecnologia poro interconector esses equipamentos.
Alguns deles parecem ler sido criados exclusivamente para diverso. Um computador de mesa utilizando
IP com recurso de molduro de Foto (Ceivo, 2009) solicito Fotos di9ito,is de um servidor remoto e os apresento
em um dispositivo que parece uma molduro lrodiconol de fotografia; uma lorradeiro da Internei baixo infor-
maes meteorolg icos de um servidor e 9rovo uma imo9em do previso do tempo do dia em queslo (p
exemplo, nublado, com sol) no suo torrado mo1inol [BBC, 200 1]. Outros disposilivos forneoem inlormo~s
teis - cm8f'os Web apre-Sentam os condies meteorolgicos e de lrfego ou fazem monitoramento poro
fornecer uma locolizoo de interesse; eletrodomsticos conectados Internet (incluindo mqu inos de lavor
roupas, geladeiras e foges) podem ser monitorados e controlados remotamente por meio de um browser.
Telefones celulares que utilizam IP com recursos de GPS {como o novo iPhone do Apple) permitem Fcil nave-
gao pelo Web e tronsmisso de e-mails e mensagens. Uma no110 dasse de sistemas de sensoriomento em
rede promete revolueionor o modo como observamos e intero9imos corn nosso ambien te. Redes de sensores
incorporodos ao ombiente lisico permitem a monitoroo de edifcios, pontes, atividade ssmico, .habitais do
fauno selvagem, eslu6rios e das camadas inferiores do atmosfera [CENS, 2009, CASA,2009]. Aparelhos
biomdicos podem ser incorporados e conectados em rede, causando numerosos problemas de privacidade
e segurono [Holperin, 2008}. Uma tog de RFID ou um sensor integrado ligado a qt1olquer objeto pode for
necer informaes o respeito de$$e objeto no lntemet, levando a uma ulnlemet de coisos (ITU, 2005].

servio de um programa servidor, que funciona em um outro sistema inal. A Web, o c-maH, a transferncia de
arquivo, o logi n remoto, os gmpos de disc usso e nHlih\S o utras aplicaes populares adotam o modelo clie,uc-
scrvid or. Uma vez que um program;i cliente normalmente roda em um co mputador e o programa servidor, em
o utro, aplicaes cliente-servidor de Internet S'lo, por def'inio , aplicaes clistribuldas. O programa cliente e o
progmma se rvidor imerage m enviando rncnsag('ns um para o ou1ro pela lr1tern e1. Nesse nvel ele absm1-Jo, os
rou~adares, enlaces e ou tros compo nentes da lnternct funcionam como uma cai xa- preta que transfere mensa-
gens emrc os componentes distribudos, comunicantes, de um aplicao da Internet. Esse o nvel de abstrac-o
represe ntado na Figura l.3.
Nem iodas as aplicaes da lmernel d e hoje consis tem em programas puramente cliemes q ue imeragem
com programas puramente servidores. Muirns aplicaes so, cada \/CZ mais, p~er-to-peer (P2P), nas quais os
sistemas nnais itncrngem e executam programas que apresentam fun es de senidor e de cliente. Por exemplo,
em apli caes P2P de co mpartilhamenlO de arqui.v os (co mo o BitTorrelll e o eM ule) . o programa no s isLema lnal
d o usull rio funciona como u rn diem e quando solicita um urquivo de outro par; e o progmma funciona como um
servidor quando envia um arquivo para outro par. Na telefonia por lmern e1, as duas partes comuncan1es in1era-
gcm co rno par~ ; urna pane no requisita servio da o una em nenhum sentido. Exam inaremos clctalhadamence
as s emelhan\-as e dikrcnas entre a11teLuras clienLescrvidor e P2P no Capitulo 2.

1.2.2 Redes de oce>SO


Tendo considerado as aplicaes e sistemas finais na "periferia da Imernet", vamos agora considerar as redes de
acesso - os enlaces fsicos que conectam um sistema final ao primeiro roteador (tambm conhecido como "roteador
bowot,o4ico.
9
---
(oplu lo 1 Redes de <o mp ulodores e o Internei

ISP n;)cional
ou global
Reda m6, cl

ISP local
ou reglooal

Figuro 1.3 lnteroio enlre sistemasfino is

de borda") panindo d e um sistema inal at outro qualquer. A Figura 1.4 apresema diversos tipos de enlaces de acesso
do sistema linal ao ro1cador de periferia; os enlaces de acesso esto destacados nas linhas cinzas mais espessas. Esta
seo analisa mu itas das tecnologias mais com uns em rede de acesso. em tem,os gerais, de baixa nh.a "clocidade.
Ve remos mais adiante que muitas dessas tecnologias emp regam, em nveis que variam, pa rcelas da tradi-
cional infracsrrumra 1clcfnica com fio. Essa inracscruwra t fornecida por um servi.dor telefnico local, que
simplesmente chamaremos de operadora, So exemplos de operadoras a Verizon, nos Estados Unidos, e a France
Telccom, na Frana, Cada rcsidCncia (casa e apart:nncnto) possui um par direto de fios de cobre tranado para
um comuLador da oixradora na rcgio, lo<.-alizado cm um ediflcio chamado "cenLral telefnica" (CT) no jargl\o da
1elcfo11ia. (Dscutrcmos pa r de fios de cobre tranado mais adiante nesta seo.) Uma operadora local possur,
normalmente, centenas de CTs e ligar cada cliente sua CT mais prxima.

Diol-up (discado)
Nos anos 1990, c1uasc Lodos os usu:\rios residenciais ac.:es1>-avam a Internet por meio de lin has telefnicas ana lgi-
cas ulllizando um modem d iscado. Atualmeme, muitos usu.lrlos de paises mlo desenvolvi.dos e de reas rurais em
pases desenvolvidos (onde o acesso banda larga indisponvel) ainda tm acesso Internet discada.Na verdade,
estima-se que 10% d os usurios residenciais nos Estados Unidos usavam Internet discada em 2008 [Pew, 2008).
bowot,o4ico.
10

------ Redes de compu1adores e a lnleroet

ISP nacional
Rede ov global
mvel

ISP local
ou regional

Rede corporativ<1

Figuro 1.4 Acesso oredes

Emprega-se o tenno "dal-up" porque o software do usmfrlo, na verdade, disca (cm ingls, ,lal) um mimcro de
telefone do ISP e realiza uma ligailo Lelefnica tradicional com o ISP (por exemplo, com a AOL). Como mosmtdo
na Figura 1.5, o computador ligado a um modem clisc1clo, que, por sua vez, conectado linha tclefnka anal-
gica da rcsidtncia. Essa linha tcl cnica t composm por cabos de cobre tranados e a mesma linha telefnica
utiliz:,da para fazer ligaes comuns. O modem da rcsidtncia converte a sada digh~I do computador em um for-
mato analgico apropriado para transmisso pda linha telefnica analgica. Na outra cxLremidndc da conexo, um
modem do ISP converte o sinal ana lgico em forma digital para inserir dados no roteador do 1SP.
O acesso discado !\ Internet possui duas desvantagens principais. Em primeiro lugar, extremamente
lenLo, fornecendo uma taxa mxima de 56 kbps. A essa taxa, o download de uma rnsica em fonnato MP3 de
trcs minutos leva, aprox imadamente, oito mimttos, e um dia o 1empo que leva o download de unl film e de
l Gigabyte! Em segundo lugar, o acesso discado bloqueia a linha 1elefOnica comum do usurio - enquanto
uma pessoa usa o modem para navegar na Web, ningum mais pode receber ou realizar ligaes comuns com
a mesma linha.
bowot,o4ico.
11

---
(oplulo 1 Redes de <om pulodores e o Internei

Legenda: Q
Comutador
de circuito

Figura 1.5 Acesso Internet dis<.odo

OSL
Atualme1ne, os dois tipos de acesso resdencial banda larga mais predomi nantes So a linha d igital de
assinan te (DSL) ou a cabo. Em muitos pases desenvo lvidos hoje, m.iis de 50% das residncias possuem acesso
band.i larga, sendo qu e a Coreia cio Sul, Islndia, Holanda, Dinamarca e Sua lideram o terreno com mais
de 74% ele penetrao nas residncias ern 2008 l lTlF, 2008] . Nos Estados Unidos, a tecnologia DSL e a cabo
tm a mesma participao no mercado para acesso banda larga IPew, 20081 . Fora dos Estados Unidos e do
Catl:\d, a DSL d omina particularmente na Euro1,a, onde cm muitos 1>aiscs mas de 90% das conexes oonda
larga s:10 DSL.
No rmalmeme uma resid~ncia obtm acesso DSL lmernet da mesma empresa que fornece acesso telenico
local com fio (po r exemplo, a operadora local)_ Assim, quando a DSL utilizada, uma operadora do cliente 1.am-
bbn seu pro,eclor de scl'vtos de Internet (ISP). Como moslr:ldo na Figura 1.5, cada modem DSL do dicruc miliza a
lin.h a telefnica existente (par de fios de cobre tr,1nado) p,1ra lrocar dados com um multiplexador digital de acesso
lnha do asslnan1e (DSLAM), normalmente localizado no. CT ela operadora. A linha 1elefnk,1 conduz, simultanta-
mcntc, dados e sinais telefnicos, que s.o cocliicados cm diferentes frequfncias:

um canal downstream' de alta velocidade, com uma banda de 50 kHz a l MHZ;


um canal upstremn de velocidade mdia, com utna banda de -l kHz a 50 kHz;
um canal de telefone bidirecional comum, com uma banda de O a 4 kHz.

Essa abordagem faz com que a conexo DSL 1,:irea 1rs conexes distintas, de modo que um telefonema e
a conexo com a Internet podem compartilhar a conexo DSL :io mesmo tempo- (Descreveremos essa tcnica de
multiplcxact10 por di\is.lo de frequncia na Seo 1.3. l.) Do lado do consumidor, para os simtls que chcg;un at
sua casa, um distribuidor separn os dados e os sinais te lefnicos e conduz o sinal com os dados para o modem
OSL. Na operadora, na CT, o DSLAM separa os dados e os sinais tclcfnlcos e envia aqL1cl C"S para a lmemc1.
Cemenas o u mesmo milhares de residendas se conectam a um nico DSLAM ICha, 2009; Dischinger, 2007).
A tecnologia DSL possui duas pri1,cipais "antagens sobre o acesso discado. Primeiro, ela pode lransmilir e
receber dados a taxas muito mais elevadas. Normalmente, um cliente DSL ler.i uma taxa de transmisso na faixa
de 1 a 2 Mhps (da CT para a resiclrncia) e a taxa de rccebimen10 de 128 kbps a 1 Mbps. Em razCto de as mxas ele
transmisso e recebimemo serem diferentes, o acesso conhecido como assim1rico. A segunda vantagem prin-
cipal que os usu(trios poclern, simultaneamente, folar ao telefone e accss11r In ternet. Diferentemente do acesso
dial-up, os usurios mio discam um numero de telefone do 1Sr para acessar il rede: pelo contrrio. eles L!m uma
conexo permanente ao DSLAM do provedor (e, portanto, Internet).

N.R.T.: Os termos '"downstrcam 11 e "'u pstrcam" descrevem a transmis~1.o de dados para o cliente. e elo dicnt, respc.ctivamcmc.
bowot,o4ico.
Rede s de compu1adores e a Internei

Tillefon?
resldMclo l Internet
linha tclcfnica e~istcntc:
telefone com 04 KHz; dados upstrcam
com 4-50 KHz; dados downs1tcam
com 50 KHZ - l MHz

\
Rede
Central
/ telefnica
telefnica
(~
Comput ador
residencial

Figura 1.6 Acesso t'l Internet DSL

A 1axa de u-,rnsmiss,10 de downs1ream e upstream real disponvel para as residncias uma funo da distln-
cia entre a t-asa e a CT, permiLndo rnxas de 1mnsmisso mais eleV'tldas do que no :1cesso discado. Pam aumcnt:1 r
a 1axa ele dados, a DSL coma com um processamento de sinal avanado e algoriunos de correo de erro, que
podem levar a grandes mmsos de paco tes. No eniamo, se a residncia no estiver localizada dentro ele 8 a 15
quilmecros da CT, a tecnologia de processamento de sinal DSL nilo ~nl mais eficaz e a residncia deve recorrer
a uma forma allcrnaLivt1 de acesso,\ Internet.
H tambtm uma ,,arieclaclc de tecnologias DSL de aha velocidade em alguns pases atualrncmc. Por exemplo,
a tecnologia D5L de alta velocidade (VDSL), com a maior pcnctm:1o, hoje, na Coreia e no Japo, apresenta taxas
impressionantes de 12 a 55 Mbps pam downsucam e 1.6 a 20 Mbps para upstrcam [DSL, 20091.

Cabo
Muitas resiclenc ias na Amrin1 cio Norte e em o utros lugares recebem centenas ele ca nais de televiso por
redes ck cabo coaxial. ( Discutiremos cabo coaxial mais adiante nesta se{-o.) Em um sistema Lraclicional de tele-
viso a cabo, um 1erminal de dis1ribu i~o transmite canais de televiso atravs de uma rede de dis1ribuio de
cabo coaxial e amplificadores para as rcsid~ncias.
Enq uanto as tecnologias DSL e dial-up utiliz.1111-se da inraestrutur-.i telefnka locril existe!lle da oper.idora,
o acesso lmcn,et a cabo utiliza-se da infracsmuura de 1elcviso a cabo existente da empresa de TV a cabo. Uma
residncia ob1m acesso lntcmet a cabo da mesma empresa que fornece a tclcvis.\o a t-abo. Como ilustrado na Figura
L.7, as fibras tic:15 conectam o terminal de distribui:\o s junes da regio, se ndo o cabo coo..,cial tr.iclicional u1i-
liu.1do para chegar s casas e apartamentos individualmente. Cada jur1:10 normalmente suporia de 500 a 5.000 cas.'IS.
Em razo de a lbm e o cabo coaxial fazerem pane desse sistema, a rede denominada hfbrida fibra-coax ial (HFC).
O a ~ Internet,\ cabo necessha de modems especiais, denominados modems a cabo. Como o mode m DSL,
o modem a c.1bo , nonnalmente, um aparelho externo que se conecta ao computador residencial atl"llvs da pona
E1hemel. (Discutiremos Et heme1 cm detalhes no Captulo 5.) Os modems a cabo dividem a rede HFC cm dois canais,
um ele transmisso (downstrl?llm) e um de recebimento (upstr~dm). Como a tecnologia D5L, o acesso normalmente
assimtrico, com o canal downstrcam recebendo uma taxa de transmisso maior do que a do canal upsuca.rn.
Uma cara cter!Slk,l importante cio acesso a abo o fato de ser Llln meio de transmisso compartilhado. Em
especial, cada pacote enviado pelo terminal vaja pelos enlaces downstrcam at cada residncia e cada pacote enviado
por uma residc:ncia percorre o canal upsLrcam at o terminal de trans misso. Por essa razo, se dive rsos usurios
estiverem fazendo o download de um arquivo cm vdeo simultaneamente n o canal downsLream, cada usur io rece
ber o arq uivo a uma taxa signific.uivamcmc menor cio que a ta.,ca de transmisso a Clbo. Por o utro lado, se h
somente alguns usurios ativos que esto navegando na Web, cn11\o cada 11m poder receber pginas da Web a uma
taxa d e downstrcam mxima, pois esses usurios raramente solicitaro uma pgina ela Web ao mesmo tempo. Como
o canal upstream tambm compartil hado, necessrio um protocolo de acesso rnlliplo disl.ribudo para coordenar
as transmisses e evi1ar colises. (Discutiremos a questo de coliso no Capfmlo 5.)
bowot,o4ico.
13
---
(oplu lo 1 Redes de <ompulodores e o Internei

Cabo coa~ial
Centenas 1 N de
de resid~ncias
fibra
tica ",;;-Cabo de fibra tica

Terminal de
distribu i:io

Centena$ - ~ ~ - ~ ~ - - - - - - - - - - ~ N __d_e~/
de residncias fibra
tka

Figura 1.7 Uma rede de oces~o hbrido fibro,ooxiol

Os defensores da tecnologia DSL se apress:un cm risar que ela uma conexo ponLo :1 ponto cnLre a resi-
dncia e o lSP e que, pormnLo, a capacidade de Lransmisso 101al d.i conexo DSL cnlrc a residncia e o ISP
dcclkada, e no compartilhada. Os defensores do cabo. no en1anlo. argumen1am que uma rede HFC razoavel-
menLc dimensionado prov 1a,xas de Lransmisso mals altas cio que a DSL. N.,o h dllvidas de que a guerra entre
DSL e HFC pelo acesso residencial de alta velocidade j comeou, principalmente na Amrica do No n e. Nas reas
rurais, onde nem a DSL e a HFC CSLo dis ponveis, pode ser ULlzada uma conexo p<ir s:ulLe para conectar
uma residencia lmernet em ,,elocidades superiores a lMbps: o S1arBand e o HughcsNet so do is provedores de
.,cesso via sa I lile.

mH(Fiber-To-The-Home)
A fibra tica (que ser di.scutida na Sc:,o 1.2.3) pode ocrecer taxas de tra nsmiss:\o signikati vamcntc mais
altas do que o par de ios de cobre tranado ou o cabo coaxial. Algumas operadoras locais (cm mu itos pnscs
diferentes) , q ue recc!llememc passaram a utiliz.ar ibra lica nas residncias, agora ocrcccrn acesso lntcmel de
alta velocidade. bem como scvios 1elefnicos e televisivos a1rovs de fibras ticas. Nos Estados Unidos, a Vcrizon
saiu na frente com a 1ecnologia FITH, lanando o servio FlOS (Verizon FIOS, 2009].
Existem vrias tecno logias concorrentes para a dis lribuio tica das CTs s residncias. A recle mas simples
de: d istribuio Lica chamada fibra direta, para a qual exisLe uma ibra saindo da CT para cada resiclncfa. Essa
distribuiilo pode fornecer um11111La largura de banda. uma vez que C1.1da cliente recebe sua prpria fibra dedicada
diretamente da central Leltr nica. Geralmelllc, cada fibra que sai da ccnlral telefnica c.; omparLilhada por v.\rias
residncias; a fibra dividida em fibras individu.ais do clie111e somente aps ela se aproximar relativamente das
residncias. Existem duas arquiteturas concorrentes de rede de dis1ribui:lo t.ic:i que apresentam essa di,ris:\o:
redes ticas '"as (AONs) e redes ticas passivas (PONs). A AON basicamemc a Ethernet l'Omutada. assunto
discutido no Coptulo 5 . Aqui, falaremos brevemcn1e sobre n PON, que utili zada 110 servio FLOS da Verizon. A
Fgura 1.8 mosua a FTTH tull lz.ando a arquitetura d e distribuio de PON. Cada residncia possui um terminal
de rede tica (ONT), que conectado por mna fibra tica dcdicad.i a um distribuidor da regio. O dist.ribltidor
combina lnn nmero de res idl?neias (normalmente menos de 100) a uma nica fibra tica eompariilhada. que se
liga a um Lermnal ele linha tica (OLT) na CT da operadora. O OLT, que fornece converso entre os sinais ticos
e eltricos, se conec1a a Internet por meio de um roteador da operadora. Na residncia, o usurio conecta um
roteador rcsidecial (geralmente um roteador sem fio) ao ONT e acessa ln1ernct alrs desse rotC\dor. N:i .i.rqui-
tetura de PON, todos os pacotes enviados do OLT ao distribuidor so nele replicados (semelhante ao terminal
de distribuio a ca bo).
bowot,o4ico.
Redes de compuladores e a Internet

Cenuai telefnica....__ Internet

~
OIIIT ........._
""-.... Distribuidor tico

ONT
l> OLT
~ Fibras ticas
ONT

Figuro 1.8 Acesso Internet mH

A FrfH pode po tencialmente prover t.ucas de acesso internet na faixa de gigabits por segundo. Porm, a maio-
ria dos provedores de FTIH oferecem dieremes ta;,,.<1.c;, sendo que as mais altas custam muito mais. Atualmente, a
maioria dos clientes FTTH preferem taxas de download na faixa de lO a 20 Mbps e de upload na faixa de 2 a lO Mbps.
Alm do acesso Iniernet. as fibras ticas 1>0$ucrn servios tckfnkos tradicionais e de ua_rlsmiss.:lo 1elevisi\'a.

Ethernet
Nos ctm1pi universitrios e corporaiativos, uma rede local (LAN) geralmen te usada para coneclar siste
mas finais ao roteador d.i periferia. Embota existam muitos tipos de 1ccnologia LAN , a Ethcmct , de longe,
a tecnologia de acesso 1n.ris predominante nas redes universitrias e corporativas. Como mostrado na Figura
1.9, os usurios da Ethernet utilzam par de fios ele cobre t ranado para se conectarem a um co.rmuador
Ethernet, uma tecnologia trarnda com mais dern lhcs no Capfmlo 5. O acesso Eth crnC'l normalmente possui
100 Mbps, enquan10 os servidores possuem um acesso de 1 Gbps ou nl mesmo 10 Gbps.

Wifi
Es1tt cada vez mais comum as pessoas acessarem a lnternel sem fio, seja por um laptop ou por um apare-
lho porilil, como um iPhone, Blackberry ou o Google phone ( veja o quadro "Um conjunto impressionante de
sis1emas finais da lntcmet"). Hoje, h dois tipos comuns de acesso lnternet sem fio. Em uma LAN sem fio , os
nsu,lrios lrnnsmilcm/rcccbcm pacotes para/de um ponto de acesso que, por sua vez, conectado lmcmct com

JI'---- --daPara ISl'i


Instituio

Sorvidor

Figura 1.9 Acesso rede Ethernet


bowot,o4ico.
15
---
(oplu lo 1 Redes de <om pulodores e o Internei

fio. Um usurlo LAN sem fio geralmente deve estar no espao de alguns metros do ponto de acesso. Nas redes <le
acesso sem io em amplas reas, os pacotes si:\o transmitidos para uma estao-base por meio da mesma infraes-
trutura sem fio utilizada para telefonia celular. esse caso, a esta-Jo.base controlada pelo provedor da rede de
celular, e o usurio normalmente deve estar dentro de alguns quilmetros d11 cstaI\o-basc.
O acesso LAN sem fio baseado na tecnologia IEEE 802.11, ou seja, WiFi, est presente em todo lugar -
universidades, empresas, cafs, aeroportos, residl!ncias e. at mesmo, em a,ies. A maioria dus universi<fades
instalou estaes-base por todo o campus, permitindo que os alunos enviem e recebam e-mails ou naveguem na
Web de qu:ilquer lugar do Cllmpus. Em muiras cidades, possvel icar n,a esquina de uma rua e estar dentro da
faixa de dez ou vinte estaes-base (para um mapa global de estaes-base 802.11 que foram descobcrt11s e aces-
sadas por pessoas que apreciam cols..'lS do tipo, veja [wigle.ne:t, 20091). Como discutido com detalhes rio Captulo
6, atualmente o 802.11 ornece uma taxa de transmisso compartilhada de at 54 Mbps.
Muitas rcsidt:ncias unem o ncesso residencial banda larga (ou seja, modems a cabo ou DSL) com n Leenologia
LAN sem io a um custo accssivel p.1ra criar redes residcnci.iis polentes. A Figura 1.10 mostra um esquema de
uma tpica rc<le: dom:stiL"a. Essa rede: consiste cm um laptop mvel e um computador com fio; t1ma e-stao-base
(o ponto de acesso sem l'io), que se comunica com o computador sem fio; um modem a cubo, fornecendo acesso
banda larga Internet; e um roteador, que interconeeta a estao-base e o computador fixo com o modem a {'abo.
Essa rede permite que os moradores da residncia tenham acesso banda larga Internet com um morador se
movimentando ela cozinha ao quintal e at os quartos.

Acesso sem fio em longa distncia


Ao acessar lnterneLatmvs ela tecnologia LAN sem fo, preciso estar dentro de alguns metros do ponto
de acesso. Isso possvel para acesso domstico, cm cafs, e, geralmente, dentro e ao redor de um edifcio. Mas e
se voc estiver n:i praia, no Onfus ou no ctlrro e precis.1r da Internet? Para o acesso em reas .lmpl.1..,;, os usurios
de Internet mvel utilizam uma infracsmuura de telefone celular, acessando estaes-base que estilo a at lO
quil metros ele dislfmcia.
1\s empresas de tclccomunic--a~'o tem investido cr1om1ememe ua assim chamada terceira gera;lo (3G) sem Cio.
que ocrecc acesso sem fio cm amplas re.lS por pacotes comurndos ;1 vcJocidades que ultrapassam l Mbps. Hoje, mil-
hes de usurios esto ulilizanclo essas redes para ler e enviar e-mails, navegar na Web e fazer download de ml\sica.

WiMAX
Como sempre, existe uma tecnologia potente esperando para dcsrronar esses padres. O WiMAX !Intel
WMAX, 2009; WiMAX Forurn, 20091. tam bm conhecido como IEEE 802.16, Ltm primo distante do protocolo

Termioalde
~ i - - - - - ~ ! i i t - --:t'-,:1'--=I' - - dl~rlbui~!D - - - Internet
a cabo

Figura 1.1 O Esquema de uma tpico rede domstico


bowot,o4ico.
Rede s de compulodores e o Interne t

WFi 802.ll discutido acima. O WIMAX [unciona independentemente de uma rede de tdefo1tia celular e prome-
te velocidades de 5 a 10 Mbps ou maiorl's a distncias supl'riorcs a dez quilmetros. A Sprint-Nl'xLel investilt
bilhOcs ele dlares na implementao do WlMAX em 2007 e oi alm. ,\s tecnologias WiFi, W iMAX e 3G serao
abrangidas em detal hes no Capilltlo 6.

1.2.3 Meios fsicos


Na subsc,; anlrior, aprSn t:\mos uma ,is geral <lc algu mas d:iS mais importa ntes tcn ologiaS de acesso
Iruerncc. Ao descrever essas tecnologias, indicamos tambm os meios fsicos util izados por elas. Por exem-
plo, dissemos que o HFC usa urna combina;\o de cabo de lbra 61ica e cabo coaxfal e que modems d iscados de
56 kbps e ADSL us.1m par de fios de cobre tranado. Dissemos tambm que redes de acesso mveis usam o
espectro de rdio. Nesrn subsc-.lo damos uma ,'is.lo geral dl'sscs e de outros meios de Lransmissllo comumcme
empregados na Internei.
Para deinir o que significa meio isico, vamos pensar na curta vida de u m bit. Considere um bil saindo de
um sistema l nal, transitando por u ma srie de enlaces e roteadores e chegando a out ro sls1ema lnal. Esse pobre
bit t ra ns miLido m ui t,\S e muitas vezes. Prmeiramcnte, o sistema fina l originador tmnsmilc o b it e. logo cm
seguida, o primeiro roteador da srie recebe-o; em.lo, o primeiro roteador envia-o para o segundo roteador e assim
por diante. Assim, nosso bit, ao viajar da origem ao destino, passa por uma srie de pares transmissores-receptores,
que o rei;.-ebem por meio de ondas eletromagnticas ou pulsos ticos que se propagam por um meio rsico. Com
muitos aspectos e fom1as possveis, o meio isico no precisa ser obrgaLoriarnem e do mesmo tipo para cada par
transmissor-receptor ao longo do caminho. Alguns exemplos ele meios fsicos so: par de fios de cobre tranado,
c1bo coaxial, cabo de 11brn tica multi modo, espectro de rdio terrestre e espectro <le r:1d io por saLlite. Os meios
fsicos se enquadram cm dltaS categorias: me ios guiados e meios no guiados. Nos meios guiados, as ondas so
dirigidas ao longo de um meio slido, mi como um c.1bo de fibra tica, um par de fios de cobre tranado ou um
cabo coaxial. Nos meios no guiados, a.e; ondas se propagam na almosera e no espao, como o caso de uma LAN
sem fio ou de um ~'::lnal digital ele satlite.
Porm, ames de examinar as caractersticas dos ,'l!rios tipos de meios, va mos discut ir u m pouco os se us
custos. O CllStO real ele um enlace Hsico (fio de cobre, cabo de fibra 6li~ e ass im por diante) crn geral relativa-
men te insigniicamc cm compamo a outros custos da rede. fan especial, o custo da mo de obm de instala;lo
do enlace lsico pode ser vrias vezes maio r do que o do material. Por essa razo, muilos eo nstrmores instalam
pares de los t ranados. fibra tica e cabo coaxial em todas as salas de u m ediicio. Mesmo q ue apenas u m dos
meios seja usado inicialmente, h uma boa probabilidade de outro meio ser usado no futuro prximo - portanto.
poupa-se di nheiro por no sar prttiso nstalar fiao adicional no muro.

Por de fios de cobre lron~ado


O meio de transmisso guiado mais barato e mais com umente usado o pl\r de fi os de cobre tranado, que
vem se11do usado h mais de c.c111 anos nas redes de telefonia. Rcal mcn tc, mais de 99 por cento da iao que
cone~ta aparelhos telenkos a cemrais locais u tilizam pares de ios de cobre tran1,-ados. Quase todos ns j vimos
u m par de ios ll'anado em casa ou no local de trabalho; esse par constitudo de dois fios de cobre isolados, cada
u m com aproximadamente um milme tro de espessura, enrolados em espiral. Os fios sllo tranados para reduz:ir a
interferncia cltric.-i de pares semelhantes que estejam prximos. Normalmente, u rua srie de pares conjugada
denlro de u m cabo, isolando-se os pares com blindagem de proteo. Um par d e fios co nstitui um nico en lace
de comunicao. O pM de fios tranado sem blndagem (unshieltletl twistecl pair- UTP) comumcm e usado cm
redes de computadores de cdircios, isto . cm LANs. Hoje, as taxas de transmiss:,o de dados para as LANs de
pares tranados esto na faixa de 10 Mbps a 1 Gbps. As taxas de tmnsmiss.lo de dados QltC podem ser alcanadas
dependem da bitola do fio e ela clistncia en tre transmissor e reccpLOr.
Quando a tecno logia da fibra tica surgiu na dcada de 1980, muitos depreciaram o par trancado devido s
suas taxas d e transmisso de bits relativamente baixas. Alguns at acharam que a Lecnologia da fibra tica o s ubsti-
tuiria completamente. Mas o par tranado no desistiu assim to facilmente. A moderna tecnologia, tal como UTP
bowot,o4ico.
17
Co plulo 1 Redes de com pulo.dores e o Internei

categoria 5, poclc alcanar taxas de transmiss:\o de dados de 100 Mbps para dlsta cias de at algumas cen1<rnas de
metros. E, cm distfmcias ma is curt,IS, podem ser :Hingidas taxas ainda maiores. No final, o par tranado lirmouse
como a soluo dominante para LANs de alta velocidade.
Como vimos na sc.lo sobre redes de acesso, o par lron.ido tambm comumente us,,do paro acesso rcsi
dcmclal l1uernel. Vimos que a tecno logia do mod em dist"ado possibilita taxas de acesso ele at 56 kbps com
pares tran ados. Vimos tambm que a tec nologia DSL (linha digital de ass inante) habilito u usurios residenciais
a acessar a Internet em ve locidades maiores cio que 6 Mbps com pares de fios tranados (qua ndo as residncias
esto prximas a um modem de ISP).

Cabo coaxial
Como o par tranado, o cabo coaxial cons tiLUdo de dois condutores de cob re, porm con cntricos e no
paralelos. Com css.1 confi gurao, isolamento e blindagem especiais, pode t1lcanar taxas allas de bils. Cabos
coaxiais so multo comuns cm s istemas de televi.siio a ca bo. Como J co memamos, rcccntememe sistemas de
televiso a cabo foram acoplados com modems a cabo para prover usurios resid enciais de :1cesso lmern ct :1
vclocidaclcs ele 1 Mbps ou mais allas. Em televiso a cabo e acesso a cabo Internet, o transmisso r passa o s inal
digital para urna banda de frequncia especiiea e o si na l analgico resultante enviado do transmissor par.i um
ou mais receptores. O cabo coaxial pode ser utiliz:1do como um meio com panilhado gui:1do. Espeei ficarnenlc,
v ri os sistemas Unais podem ser co nectados diretamente ao cabo, e todos eles recebem qualq lter sinal que seja
enviado pelos out ros sistemas finais.

Fibras ticos
A fibra tlca um meio delgado e lexvel qu<: conduz pulsos de luz , sendo que cada um desses pulsos
representa um bit. Uma nica libra tica pode suportar taxas de transm isso elevaclissimas, de at dezenas ou
mesmo ce nten;IS ele gigabits por segundo. Fibras ticas so irmmes interferncia e letro magntica, tm baixis
s ima atenuao ele s inal al cem quilmetros e s.\o nrnito diflccis de d erivar. Essas caractersticas fizeram da fibra
tic:i o meio preferido pam a transmisso gui ada de grande alcance, cm especial para cabos sub rnarin os. Hoje,
muitas redes tdefnkas de longa dls tn cia dos Estados Unid os e de o utros p,\fses usam exclusiva mente fibras ti
cas, que t,unbm predo minam no backbone da lnternet. Contudo, o alto custo de equipamen Los ticos - como
transmissores, rcccplorcs e com utadores - vem impcd inclo sua uliliza.lo para trnns pone a curla dist.lncia, como
cm LANs ou em red es de acesso residendas. As ve locidades ele conex;.io do padro Op1cal Carrier (OC) variam
d e 51,8 Mbps a 39,8 Gbps; essas especificaes so req ucntemcn Le deno minadas OC-n , em que a velocidade ele
conexo se iguala a n x 5l ,8 Mbps. Os padres usados aLUalmenle incluem OCl, OC3, OC L2, OC24, OC48,
OC96, OC-192 e OC-768. l[EC Opcical, 2009; Gorals ki, 2001; Ramaswami, 1998; Mukherjee, 1997 1apresemam
unrn abord:1gcm d e vrios aspcctos da rede c.

Canais de rdio terrestres


Canais de rd io carregam si nais dentro do espectro eletromagntico. So um rneLo atraente porque sua insta
lao m\o requer cabos fslcos, podem atravessa r paredes, do conectlvidadc ao usurio mvel e, potenclalmem e,
podem transmitir um s inal a longas dlst:lncias. As caractersti cas de um canal de rdio dependem signilc:11h<:1
men le do ambien Lc ele prop:iga-.lo e da clistiincia pela qual o sinal deve ser transmitido. Condies ambientais
d eterminam perda de sinal no aim inho e a1enua-Jo por efeito de sombra (q ue reduz a ime nsidade do si nal
quando ele tr-ansiLu por disUincias longas e ao redor/atravs de objetos interferentes), ULenuao por multivias
(devido reflexo cio s inal qua ndo atinge objetos interferentes) e intererncia (d e,ido a oulros canais de rd io
ou a sinais eletromagnticos).
Canais de relio terrestres podem ser classificados, de modo geral, em dois grupos: os de pequeno a lcance,
que funcionam em focais prxi mos, normalmente abrangendo de dez a algumas centenas de metros, e os ele longo
alcance, que abrangem dezenas ele quilmetros.
bowot,o4ico.
Rede s de compu1 ad ores e a Internei

As lecnolog[as LAN sem fio descritas na se.,,1\0 1.2.2 ulilizam canas de r.dlo local; as 1ccnologias de acesso em lde-
one r.clular utilizam canal de rdio de longo alcanrc. Abordaremos canais de rd io de1alhadamcnte no Capflulo 6.

Canais de rdio por satlite


Um satlite de eomun.icao liga dois ou mais transmissores-receptores de micro-ondas baseados na Terra,
denominados eslaes terrestres. Ele recebe transmisses em uma faixa de frequencia, ger-J novameme o sinal
usando um rcpe1idor (sobre o qual falaremos a seguir) e o transmite cm outra frequncia. Sa1liles podem prover
1axas de mmsmissi\o na faixa de gigabits por segundo. Dois lipos de satlilcs s:10 usados para comunicaes:
satlilcs gcocstaclonrios e satlites de rbita baixa (LEO).
Os satlites geocs1acio11rios ficam permanentemente sobre o mesmo lugar da Terra. Essa presena cs1a-
cionria conseguida colocando-se o satli1c cm rbita a 36 mil quilmetros acima da su perfcie terrest re. Essa
eno rme d istnda da estao terres tre ao satlile e de seu caminho de volta estao terrestre traz um su bstancial
atraso de propaga-,Jo de sinal de 280 milissegundos. Mesmo assim, enlaces por s.ulite, que podem funcionar a
velocidades de cemenas de Mbps, so frequentemente usados cm redes de telefonia e no oockbonc da lmcrnct.
Os satlites de baixa rbita so posicionados muito mais prximos da Terra e no ficam permanentemen te
sobre um tl nico lug:1r. Eles giram ao rc<ior da Terra (ex:uamcmc como a Lua) e podem se comunicar uns com os
outros e com csl.acs terrestres. Para prover cobertura conLinua cm de lenni11ada rea, preciso colocar muitos
satlites cm rbita. Hoje, existem muitos sistemas de comunica.1o ele baixa aht ude em desenvolvimento. A pgina
d.a We b referente constelao de satlites da Lloyd [Wood, 2009 I fornece e coleta infonnacs sobre esses sistemas
para comun irn(S. A tecnologia de satlites de rbita baixa poder su u tilizada para acesso Internet no futuro.

1.3 Oncleo do rede


Aps termos exami nado a periferia da Internei, vamos agora nos aprofundar mais no ncleo da rede - a
rede de co1muadores de pacote e enlaces que intcrconcctam os sis1emas finais da Internet. Os ncleos da rede
ap::ucccm dcstac!\dos cm cinza 1\a Figura 1.1 l.

1.3.1 Comuta~o de circuitos e comutao de pacotes


H duas abordagens fundamentais para locomoo ele dados atravs de urna rede de enlaces e comUladorcs:
comutao de circuitos e comuwo de pacotes. Em redes de comutao de circuitos. os recursos necessrios
ao longo de um caminho (buffers, rm<a de transmisso de enlaces) para prover comu nicao emre os sistemas
ftnais so rfservctdos pelo perfodo da sess.\o de co,m,ni~lo erme os sistemas fina is. E111 redes de comumi\o de
pacotes, esses recursos nao s,lo reservados; as mensagens de uma sess-lo usam os recursos por demanda e, como
constquencla, podero ter de esperar (ls10 , entrar na Ola) para consegui r acesso a um enlace de comunica-.lo.
Como simples analogia, considere dois restaurnntes - um que exgc e outro que no exige nem acei ta re-sena.
Se quisermos ir ao res1a urome que exige reserva, reremos de passar pelo aborrecimento de telefonar antes de
sair ele casa, Mas. ql1crndo chegarmos l, poderemos, em principio, ser imediatamente atendidos e servidos, No
resta uran te que no exige reserva, no precisaremos nos dar ao trabalho de reservar mes;:i, porm, quando l
chegarmos, talvcr tenhamos ele esperar.
As oniprcscnLes redes ele telefonia sao exemplos ele redes de comutao de circuilos. Considere o que
aconlece q uando uma pe55oa quer enviar a outra uma Informao (por voz ou por fax) por meio de u ma rede
1elefnica. Antes que o remeten te possa enviar a in formao, a rede precisa estabelecer Ltma conexo entre
o remcteme e o deslnatrio. Essa u rna conexo forte, na qual os comutadores cxis1crues no caminho entre o
remetente e o destina trio manttm o csrado dessa concx,lo. No jarg:io da telefonia, essa conexo denominada
circuito. Quando a rede estabelece o circuito, tambm reserva uma taxa de transmisso constante nos enlaces
da rede durante o perodo da conexo. Vis t0 que foi reservada largura de banda par3 essa conexo remetente-
deslinatrio, o remetente pode transferir dados ao destinaulrio a uma taxa constante garantida.
bowot,o4ico.
19
Coptulo 1 Redes de com pulodores e o lalernel
----

ISP n,1ciona 1
Rede mvel

~~
ou global

ISP local
011 regional I
Rede domstica

Rede corporativa

Figura 1.11 Oncleo do rede

Hoje, a n 1erne1 . a quintessncia das redes de comutao d e pacotes. Considere o que ocorre quando um
sis tema final quer en,i.ir um pacote a outro sistema inal pela Internet. Como acontece na comutao de circui-
tos, o pacote transmitido por uma Srie de enlaces de comunicao. Mas, na comutao de pacotes, o paco1e .
emiado rede sem reservar nenhuma largura de banda. Se um dos enlaces esti\er congestionado porque 01nros
pacotes precisam ser transmitidos pelo enlace ao mesmo tempo, ento nosso pacote ter de es pe ra r em um buf-
cr n.1 exlremidade de orige m do enlace de 1rnnsmisso e sofrer um a1raso. A Internet faz o melhor esfor(o para
entregar os dados prontame.nte, mas no d nenhuma garantia.
Nem todas as redes de telecomunicao podem ser classificadas exatamente como redes de cornuta,lo de
circuitos puras ou redes de comma-Jo d e paco1es puras. N:\o obs tamc, essa ctassifica:'lo fundamenta l cm redes
de comutao de pacotes e d e comutao de circuitos um excelente pomo de parti.da para a compreenso da
tecnologia de redes de telecomunicao.
bowot,o4ico.
20
------ Redes de compuladores e a Internet

(omutoo de circuitos
1:slc livro ~ sobre redes de computadores, lntemcl e co1muao de pacotes, e no sobre redes tdcJOu icas e
comutao de circuitos. Mesmo assim, impor1an1e entender por que a lnternet e outras redes de computadores
usam comuta-J.o de parntes, e no a tecnologia mais cradicional de comma,.ao de circuitos lllilizada nas redes
telcfnic.\S. Por essa razo, examinaremos agora rcsumidamemc a comutao de circui1os.
A Figura l.12 ilustm uma rede de comutailo de circuitos. Nessa rede, os quatro comutadores de ci rcuitos esto
nterconectados por quatro enlaces. Cada um desses enlaces tem n circuitos, de modo q ue cada um pode supo n ar 11
conexes simultneas. Cada um dos sistemas fimtis (por exemplo, PCs e estaes de trab.ho) est conectado dlrc-
1arne11te a um dos circ uitos. Quando dois sistemas finais querem se comuni car, a rede estabelece uma conexo fim
a fim ded icada entre os dois sistemas finais. ( claro que tambm s.lo possveis ch:unadas em confernda entre mais
de dois cquipalllcntos. Mas, para si mplificar, por cnquamo vamos supor que haja somente dois sislemas finais para
cada conexo.) Assim, para que o sistema fi nal A envie mensagens ao sistema final B, a rede deve primeiramente
reservar um drcullo em cada um dos dois enlaces. Como cada enlace tem II circuitos, pam cada enlace usado pda
conexo fim a fim, esta fica co m uma frao 1/11 da largura d e banda do enlace durante o perodo da conexo.

Multiplexao em redes de comutao de circuitos


Um circuito impleme1nado cm um enlace por rnulliplcxao por diviso de frequcnc i:i (freq11ency-,lhiisio11
m11l1iplexi11g - FDM) ou por muhiplexa.lo por diviso de tempo (timc-,livisiou m11/1ipk<i11g - TDM). Com
FDM, o cspeciro de frequncia ele um enlace co mpanilhado entre as conexes cstabeleidas atrvS desse
enlace. Espcclflcameme, o enlace reserva uma banda de frequncia para cada conexo durante o perodo da llga-
-.lo. Em redes telefnicas, a largura dessa band;i ele frequnci;i normalmente 4 kHz ( islo , 4 mil Hen z ou 4 mil
ciclos p<)r stgundo). Es1acs de rdio FM t;im!xrn usam FDM para comp:milhar o espectro de frequtncia entre
8S MHz e 108 MHz. sendo atribuda para cada est..wo uma banda de rcqui!ncia cspcclica.
Em um enlace TDM, o tempo dividido em q uaclrosdedurao fixa, ceada quadro divid ido em um nmero
fi xo de compan imenlos (slots). Quando esuibelece iama conexllo por meio de um enlac~ a rede dedir..-a conexo
um co mpartimento de tempo cm cada quadro. Esses eompartimcntos s:o reservados para o uso exch.tsivo dessa
conexo, e tun dos co mpal'limcnlos de Lcmpo (cm cada quadro) fica disponivcl para lrans mitjr os dados dela.
A Figura l.13 ilustra as tfrnicas FDM e TDM para um enlace de rede <'"Spccilko que suporta at quatro cir-
cuitos. P.ira FDM, o domfnio de frequencia segmentado em quatro faixas, cada uma com largur.i de banda de
4 kl-lz. Para TDM. o domnio de lempo segmentado cm quadros, cada um com quatro compartimcnLos

Sistema fina l A

Cada enla<e <onsiste - Conex.o fim a fim entre sinemas


em n "<ir<uitos finais A e B, usando um cirwito
(TDM ou FOM) - - - em cada um dos enla<es

Sinema final B

Figura 1.12 Uma rede simples de comutao de circuitos composto de quofTo comutadores de circuito equotro enlaces
bowot,o4ico.
_................................................................___
(oplu lo 1 Redes de <ompulodores e o Internei
21

FOM

4KH:{l +
.
.
Entaco fr~u~ndil

4KH:{[
TOM
r

Compartimento Quadro
Tempo
legenda:
f:l Todos os compartimentos de numero i-
L:J sJo dedicados a um par transmissor/receptor especfi<o.
Figura 1.13 Com FOM, codo cilcuito dispe conlinuomenre de 11monoio do lorguro de bando. Com TOM, codocirruito dispe de lodo o
lorgu10 de bando periodicamente, durante breves inle1Yalos de tempo (isto , durante compartimentos de tempo)

de LCrn!)'o; a <:-.ida circuito t designado o mesmo comparlimcr110 dedicaclo nos quadros sucessivos TDM. Para
TDM , a taxa de lmnsmiss:lo de urn Circuito igual taxa do quad ro multiplicada pelo nmero de bits cm urn
compartimento. Por exemplo, se o enlace transmite 8 mil quadros por segundo e cacla compartimento consiste
em 8 bits, ento a taxa de lransmisso de um circuito 64 kbps.
Os ddensores da co1m1tao de pacotes sempre argumentaram que comuta,1o de ci rcullos desperd cio,
porque os ciru1itos dedicados ficam ociosos durante perfodos de s ilncio. Por exempl o, quando um dos partici-
pantes de uma conversa telefnica para de falar, os recursos ociosos da rede (bandas de frequncias ou co mparti
memos nos enlaces ao longo da rota da conex:\o) no podem ser usados por outras conexes cm curso. Para um
outro exemplo de co rno esses recursos podem ser subut ilizados, considere um radi ologis ta que usa uma rede de
comu tao de circuitos p:ua acessar rcmota rncnte uma sfric de mdiogrnlas. Ele csrnbclcce u rna co11cxo. rcqui
sita uma imagem. examina-a e, cm ~guida, solicita uma nova imagem. Recursos de rede so atribudos cone-
xo, mas no u tilizados (sto , so despe,rd ados) durante o perodo em que o radiologisla examina a imagem.
Deensorcs da co mulao de pacotes tambm gostam ele deslacar que estabelecer circuitos fim a fun e reservar
larguras de banda fim a fim co mplicado e exige soflwares com plexos de sinafao paro coo rdenar a ope r.to
dos comutadores ao longo do caminho im a fim.
Antes de enccrrnrmos es ta discusso sobre comutao d e circuitos , vamos examinar um e.xe mplo numrico
que d c,enl esclarecer melhor o assumo. Vamos considerar o tempo que leva mos para enviar um :trqu i,o de
640 kbils do sistema final A ao sistema final B por uma rede de comuta-Jo de circuitos. Suponha que todos os
enlaces da rede use m TDM de 24 compartimentos e tenham uma tax-a de 1,536 Mbps. Suponha tambm que um
ci rcuito fim a fim leva 500 milissegundos para ser alivado antes que A possa comear a transm itir o arqu ivo. Em
quamo tempo o arquivo se r enviado? Cada circuito tem uma ta.xa de tra nsmisso de ( 1,536 Mbps)/24 4 kbps; =
portanto, demorar (MO kbits)/64 kbps 10 segundos para transmitir o arquivo. A esses 10 segundos adicionamos
o temro de at ivao do circuito, res ultando 10,5 segundos para o envio. Obse rve que o tempo de transmisso inde-
pcndemc do nmero de enlaces: o lcmpo de cmnsmissilo seria 10 segundos se o circ11ilo fim a fim passasse por um
ou por uma centena ele enlaces. (O atraso real fim a fim tambm incli1i um a~raso de propagaao; ve r Sec;o 1.4.)

Comutoo de pacotes
Aplcaes distribudas trocam mensagens ao desempenhar suas tarefas. Mensagens podem conter qualquer
caracterstica que o projelista do protocolo queira. Podem desempenhar uma funo de controle (por exemplo, as
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

mensagens 'oi' 110 nosso exemplo de comunla.\i\o entre pe.ssoas) ou podem comer dados, tal como urna mensagem
de e-mail, uma imagem JPEG ou um arquivo de ud io M.P 3_ Em redes de computadores modernas, o originador
fmgrne111a mensagens longas em pores de dados menores denominadas pacotes. Enlre origem e destino, cada um
desses pacotes percorre enlaces de comunlcaiio e commadores de pacotes (h dois tipos principais de commado rcs
de pacotes: roteadores e comutado res de camada de enlace). Pacotes s."io transmi tidos po r cada en lace de comuni-
ca1\o a mna taxa igual de transmsso total do enlace.
A maioria dos comutadores de pacotes armazena e reenvia os pacotes nas entradas dos enlaces, numa tcnica
conhecida corno annazcna-c-rccnvia e de acordo com a qual o comutador deve receber o pacoce inteiro ames
de poder comear a transmitir o primeiro bit do pacote para o enlace de sada. Assim, comutadores de pacotes
aprcscnuun um atraso de .umazenagcm e reenvio na entrada de cada en lace ao longo da rota do pacote. V::11nos
considerar agora quanto tempo demora para enviar um pacote de L bits de um sistema final para outro por uma
rcde de comutaf,,'o ele pacotes. Suponha que haja Q enlaces entre os dois sistemas finais, cada um com taxa de
Rbps. Admita que atrasos de fila e de propagao fim a fim sejam desprezveis e q\1e no haja cs1abeleci111ento
de conexo. Primeiramenle o pacolc deve ser lrnnsmhido pam o primeiro enlace q ue se origina do sis1enrn lnal
A, o qLte leva UR segundos. Em scg11ida, ele tem de ser tronsmilido por cada um dos Q- l e nlaces rcniancsccnlcs,
isto , eleve ser armazenado e reenviado Q - l vezes. Portanto, o a traso total QUR.
A cada comutador d e pacotes esu'\o ligados v,lrios enl:1ccs. Para cada um destes, o com utador de pacotes
tem um buffcr de sada ( tambm denominado ila de salda). que armazena pacoles prestes a serem enviados
pelo roteador para aquele e11lace. Os buffcrs d e sada desempenham um papel fundamental m\ comutac,."tio de
pacotes. Se um paco1e que est chegando precisa ser Lmnsmilido por um enlace, mas o encontra ocupado com a
transmisso de outro pacote, deve agtiardar no bukr de sada. Desse modo, alm dos auasos de armazenagem
e reenvio. os pacotes sorem atrasos de fila no bufer de sada. Esses a1rasos so variveis e dependem do grau
de congc:s tlonamento da rede. Como o espao do buffer finito, um pacote que est chegando pode c11contr-lo
completamente lotndo de outros pa1:01c:s c1ue esto esperando transmis~o. Nesse caso, ocorrer uma perda de
paco1e - Ltm pacote que es t chegando ou um dos que J es to na ma
descartado. Voltando ana logia do res-
taurnme aprescmada :uucriormeme nesta seo, o atraso de ma anlogo ao tempo gasco no bar do rl's1aurame
esperando uma mesa, enquanto a perda de pacote an:Uoga a ouvir do glrom q ue devemos desistir porq L1e j
M muit.'\S pessoas a li.
A Figura 1.14 ilustra uma rede simples de comu1a.lo de pacotes. N= lgu m e nas subsequemes, pacotes so
representados por placas tridimcnsiomlis. A largura de uma placa reprcsenca o nmero de bits no pacou~. Nessa
figura todos os pacoles ttm a mesma largura, ponamo, o mesmo uunanho. Suponha q ue os sis temlS finais A e B
cstepm enviando pncotcs ao sistema final E. Os sistemas finais A e B primeiramente enviar.lo seus jY.ICOtes por

Muhiple1t<1llo

- ~

)
estatfstica

legenda: o e
Pa<ot.es

Figura 1.14 Comutao de pacotes


bowot,o4ico.
23
Coplu lo 1 Redes de com pulodores e o lalern et

cnJaces Elhecnet de 10 Mbps at o primeiro comutador de pacotes, qne vai cllrecion-Jos para o cnface de 1,5 Mbps.
Se a taxa de chegada de pacotes ao comutador for maior do que a taxa com que o comutador po<le reenviar pacotes
pelo enlace cle sada de 1,5 Mbps, ocorrer congestionamento, pois os pacotes formarJo urna fil a no bufcr cle s.1da
do enlace antes de ser transmitidos para o enlace. Vamos analisar esse atraso mais detalhadamente n.i Sco l.4.

Comutao de pacotes versus comutao de circuitos: multiplexao estatstico


Agora que j descrevemos comutao de pacotes e comutao ele circuitos, vamos comparar as duas.
Opositores da comuta\.-o de paco1es frequemcmeme argumentam que da no adequada para servios de
tempo real (por exemplo, ligaes 1elefnicas e videoconferncia) por causa ele seus atrasos im a lm variveis e
imprevisveis (que se devem principalmente a ai rasos de lla variveis e imprevisveis). Defensores da comutaftO
de pacotes argu mentam que (1) ela oferece melhor companilhamento de banda do que comuta-.lo de circuitos
e (2) sua implementa1,,.\o mas simples, mais cficicnu: e mais barata do que a implemcnta1,,.10 de comula<,.lo de
circuitos. Uma discusso imcrcssame sobre connnao de pacmes e comuta:\o de circuitos po<le ser encomrada
em [Moli ncro-Fernanclez, 20021. De modo geral, quem no gosta de perder tempo faze ndo reserva de mesa em
rcstauramcs prefere cormu:to de pacotes comuta~\o de circuitos.
Por que a comutao de pacotes mais eficiente? Vamos examinar um exemplo simples. Suponha que usurios
eompartllhcrn um enlace de l Mbps. Suponha tambm que cada usurio alterne perodos de athidadc, quando gera
dados a uma taxa constanle de 100 kbps, e de inatividade, quando no gera dados. Suponha ainda que o usurio
esteja ativo apenas 10 por cento do tempo (e fique ocioso, tomando cafezinho, durante os restantes 90 por cento).
Com comutao de circuitos, devem ser rese,-vaclos 100 kbps para cada t1Sll(l 1io durame todo o tempo. Por exemplo,
com TDM, se mn quadro de um segundo for dividido cm 10 compartimentos de tempo de 100 miliss{!gundos cada,
ento seria alocado um companimemo de tempo por quadro a cada usu-rio.
Desse modo, o cnl.ace pode suportar somente 10 ( = l Mbps/100 kbps) usu:frios sirnultm1e,unente. Com
comutao de pacotes, a probabilidade de haver um usurio especifico ativo 0,1 (isto , 10 por cento). Se
houver 35 usurios, a probabilidade de haver 11 ou mais usurios ativos simultaneamente aproxi madamente
0,0004. (O t>roblema 7 dos Exerccios de Fixa!lo demonstra como essa probabilidade calculada.) Quando hou-
ver dez oit menos usurios a1i,1os simultancameme (a probabilidade de isso acontecer 0,9996), a rnxa agregada
de chegada de dados menor ou igual a 1 Mbps, que a taxa de S.'lda do enh,ce. i\ssinl, quando houver dez
ou menos usurios ath'os, pacotes de usurios Ouirt\o pelo enlace essencialmente sem atraso, como o caso na
comutao de circuitos. Qmmclo houver mais de dez usurios ativos simultaneamente, a taxa agregada de chegada
de pacotes exceder,, <.'"apacidade de sada do enlace, e a fila de sada comear a crescer. (E coniinuarn a crescer
at que a velocidade agregada de entrada caia novamente para menos de l Mbps, ponto cm que o comprimen10
dn fila com~u,t a diminuir.) Como a probabilidade de haver mais de dez usul\rios ativos simultane-tunentc
infna nesse exemplo, a comutao de pacotes apresenta, essendalrnente. o mesmo desempenho ela comutao
de circuitos, mas oJai p<1r<1 mais de lds ve:zcs o mimero de trsudrios,
Vamos considerar agora um segundo exemplo simples. Suponha que haja dez usurios e qLte um deles repen-
tjnamcnte gere mil pacotes de mil bilS, enquanto os outros nove permanecem inativos e no ger:un pacotes. Com
comutao de circui1os TOM de dez compartimentos de tempo por quad ro, e cada quadro consistindo em mil
bits, o usurio ativo podenl usar somente seu l\nico compartimento por quadro para 1ransmi1ir dados, enquanto
os nove companimentos restantes cm cada quadro continuaro ociosos. Dei segundos se passaro anics que todo
o milh:io de bits de dados do usurio ativo seja rransrnitido. No caso da comurno de pacotes, o usurio ativo
poder envi-los conti11ua111cme ta.'<a total de 1 Mbps, visto que nilo ha"crn ou1ros usurios gerando pacotes qile
precisem ser multiplexados com os pacotes do usurio ativo. Nesse caso, todos os dados do usurio .ilivo ser.lo
transmilidos dentro de 1 segundo.
Os exemplos acima ilusLmrn duas maneims pelas quais o desempenho da comu1ao de pacotes pode ser
superior da comutao de circuitos. Tambm destacam a diferena crucial entre :1s duas ormas de comparlilhar
a taxa de transmisso de um enlace entre vrias correntes de bilS. Comutao de circuitos alo<:;il previamente
a utilzao do enlace de transmisso independentemente de demanda, com desperdcio de tempo de enlace
desnecessrio alocado e no utilizado. Comutao ele pacotes, por outro lado, aloca utilizao de enlace por
bowot,o4ico.
Redes de compulodores e o Internet

,lem,mcla. A capacidade de Lnu\smis&,o do enlace ser companilhada pacote por pacote somente entre usurlos
que tenham P'dCOLes que precisam ser transmitidos pelo enlace. Tal compartilhamento de recursos por demanda
(e no por alocao pr,1 ia) s vezes denominado muhiplcxa:io esuuistka de recursos.
Embora tanto a comutao de pacotes quanto a comutao de circuitos predominem nas redes de teleco-
municao de hoje, a tendncia , sem dvida, a comuta-.lo de pacotes. At mesmo mui tas das a tuais redes de
telefonia de comuta-Jo de circuitos esto migra ndo lentamente para a comu1ao de pacotes. Em especiol, redes
telefnicas frequentemente usom comurno de pocotes na parte cara de uma chamada telefnica para o exterior,
isto , na pane que n:lo processada em territrio nacional.

1.3.2 Como os pocole> percorrem os redes de comutadores de pacotes?


Anteriormente dissemos que um roteador conduz um pacote que chega em um de seus enlaces de co1t1un1-
C".t-.lo para outro enlace. Mas como o roteador determina o enlace que deve conduzir o paco1e? Na. verdade, isso
elLo de cli reremes maneiras por clicrentes tipos de rede de compuwdores. Ncs1e capiLUlo introdm r1o, descre-
veremos uma abordagem popular, a saber, a abordagem empregada pela lntcrnel.
Na Internet, cada pacote que atravessa a rede conttm o seu endereo de destino cm seu cabc\a lho. Como os
endereos postais, esse endereo possui uma estrutura hierrquica. Quando um pacote chega um roteador na
rede. o rotendor examina urna parte do endereo de destino cio pacote e conduz o pacote a um roteador adjacente.
Especific..-am cnte falando , cada roteador possui uma base de encaminhamento que mapeia o endereo de destino
(ou partes clesse endereo) para enlaces de sada. Quando um pacote chega ao roteador, este examina o endereo
e busca sua base tumzando esse endereo de destino para encomrar o enlace de salda apropriado. O rorcador,
ento, direciona o pacote ao enlace de s.1da.
Vimos que um roteador usa mn endereo de destino do pacote para indexar uma base de encaminhamento
e determinar o enlace de sada apropriado. Mas es.'ia airma:lo Lraz ainda outra quest:lo: como as bases de
cncaminhame1uo se configuram? Elas silo configuradas manualmente cm cada roteador Oll a huerne1 utiliza um
procedimento mais automtico? Essa questo sem estudi, mais profundamente no Captulo 4. Mas par-.t aguar
seu apetl.te, observe que a It11ernet possui um nmero especial de protocolos d e roteamento que S;'lo utilizados
para configurar automaticam,mtc as bases de encaminhamento. Um protocolo de roteamento pode, por exemplo,
determinar o caminho mais curto ele cada roteador a cada destino e utilizar os resul tados desse_ caminho para
configurar as bases de cncamin hamemo nos roteadores.
O processo de roteamento nm nm
a semdhame a um motoris1a que no quer fazer uso do 111.tpa, preferindo
pedir informaes. Por exemplo, suponha queJoe vai dirigir da Filadlfia para 156 Lakeside Drive, em Orlando,
Flrida_ Primeiro, ]Oi! vai ao posto de gasolina de seu bairro e pergun1a corno chegar a 156 l.akeside Dri\re,
em Orlando, Flrida. O fremista do posco exnai a pala,,ra Flrlda do endereo e diz que Joc precisa pegar a
interestadual 1-95 South, Cl~a enlrada fica ao lado do pos10. Ele 1ambm diz aJoc para pedir outras infom111r;es
assim que chegar a Flr"ida. Ent,lo, Joc pega a 1-95 Soulh at chegar a J:\cksonvillc, na Flrida, onde pede mais
inform;1Ces a outro renlistii. Este e.xLrai a palavra Orlando do endereo ii diz a Joe para continuar na 1-95 at
Daytona Beaeh, e l se informar novamente. Em D-.1ytona Beach, outro frcntisLa tambm extra a palavra Orlando
do endereo e pede para que ele pegue a 1--1 diretamente para Orlando. Joe segue suas orientaes e chega a uma
snida para Orlanclo. Ele vai at outro posto de gasolina, e desta vez o atendente e.'l:trai a palavra Lakeside Drive do
endereo e diz a ele qual estrada seguir para Lakcside Drive. Assim que Joe chega a Lakcside Drive, ele pergunta
a uma criana de bicicleta como chegar a seu desuno. A crianca ex1rai o nmero 156 do endereo e aponta para
a cr\S. Joe finalmen te chega a seu destino final.
Na analogia acima, os frentistas dos postos e a criana na bicicleta so semelhantes aos roteadores. As bases
de encaminhamento, q ue csto no crebro deles, foram configuradas por anos de expcriencia.
Voc gos taria ele ,era rota im a fim que os pacotes realizam na ln1ernet? Convidamos voc a colocar a mo
na massa e interagir com o programa Traceroute, vlsilando o site http://www.1racerou1c.org. ( Para detalhes sobre
o Traceoute, veja a Seo 1.4 .)
bowot,o4ico.
25
Coplu lo 1 Redes de com pulodores e o lalernel

1.3.3 ISPs e backbones da Internet


Vimos ameriorme111e que sistemas finais (PCs de us urios, PDAs, servidores \.Vel.>, servidores de cor-
reio deLrnico e assm por dianLe) conectam-se Internet por meio de u m provedor local. O pro"edor pode
fornecer uma concetividade rnnto com no como sem no, utilizando um conjunto de tecnologias de acesso,
incluindo DSL, modem de cabo, FTTH, Wi-Fi, telefone celular e WIMAX. Observe que o provedor local
no prccsa ser uma o peradora ele telefonia ou uma empresa de TV a cabo; pode ser, por exemplo, uma
un iversidade (que oferece acesso Internet para os llunos. a equipe e o corpo doccme) ou uma empresa
(qL1c oferece acesso pam seus funcionrios). Mas conenar usuros finais e provedores ele contedo a redes
de acesso ape nas uma pequena pea do quebra-cabea que conectar as cemenas de milhes de usurios
e centenas de milha res de redes que compem a Internet. A lnterneL uma rede t/e rees - entender essa
frase a chave para resolver esse jogo.
Na LnLemet pblica, redes de acessos situadas na borda da lmemeL so conecLadas ao restante da rede
segundo uma hicrwquia de nveis de ISPs, como rnosLra a Figura 1.15. Os ISPs de acesso esto no n r,,el mais baixo
dess.i hierarquia. No topo dela est um nmero rel:uivamente pequeno de lSPs denominados ISPs de nvel L. Sob
muitos aspectos, um lSP de nlvcl l igual a qualquer rede - Lcrn enlaces e roteadores e esl,\ conectado a outras
redes. Mas, considerando-se outros aspectos, ISPs ele nvel l s;lo especiais. As velocidades de seus enlaces muitas
vezes alcanam 622 Mbps ou mais, 1endo os maiores deles enlaces na faixa ele 2,5 a 10 Gb ps. Conscquemememc,
seus roteadores so capues de transmitir pacotes a taxas extremamente altas. ISPs de nvel I t;imbm apresentam
as seguintes carncterstic-JS:

conectam-se clircmmcmc a cculll um cios outros ISPs de nvel l ;


conccta1u-sc a um grande nmero de lSPs de nvel 2 e a outras redes clicmcs:
coben ura imcrnaconal.
Esses ISPs tambm so conhecidos como redes de backbone da Internet. Citamos, como exemplos, Sprint,
MCL (antcriorlllcnte UUNct/WorldCom), AT&T, Lcvel3, Qwcs1 e Cablc & Wireless. Em meados de 2002, a
WorldCorn era, de longe, o maior ISP de nvel I existellle - mais de dLLaS vezes maior do que seu rival mais
prximo, segundo diversas medies de tamanho (Tcleography, 20021 . O imeressamc que nenhum grupo san-

-- -

--
/
/

--------~~
Figura 1.1 S Interconexo de ISPs
bowot,o4ico.
Redes de compulodores e o Internet

dona, oOcialm cnle, sel1 srnllls de nfvel l. Como se cosluma dizer, se voc uvcr de pergum ar se um membro ele
um grupo, provavelmente no .
Um ISP de nfvcl 2 normalmtllC lem alc..1ncc regional o u ni1Cional e (o que imporltmtc) conecta-se apcn:\S
a uns poucos ISPs de nvel l (veja Figura l.15).
Ass im, para :ilcanar uma grande pareei:, d:i lnten1et global, um ISP de n vel 2 tem de direc ionar o lrfcgo
por um cios lSPs de nlvcl 1 com o qual est conectado. Um ISP de nvel 2 denominado um cliente do 1SP de
nvel l co m o qual cst.\ conectado, que, por sua vez. denominado provedor de SCll cliente. Multu.s empresas
de grande pone e instilUics conectam suas redes corporativas diretamente a um provedor de nivel 1 ou 2,
tornando-se, desse modo, cliente claquele ISP. O provedor ISP cobra uma larifa de SCll cliente, que nonna l-
meme depende da caxa de transmissilo do enlace que mcrliga ambos. Uma rede de nfvel 2 tambm pode
preferir conectar-se diretamente a omras redes de mesmo nvel, cas.o em que o trfego pode fluir entre as duas
sem ter de passar por uma rede de n,cl 1. Ab:lixo dos ISPs de nvel 2 cs1uo os de nveis mais baixos que se
conectam ln1crnct por meio de um ou mais 1SPs de nvel 2 e, na parle mais baixa da lticrarqt1ia, esHlo os ISPs
de acesso. Para complicar ai nda mais as coisas, alguns provedores de nvel l tambm s.10 pro,,edorcs de nfvel 2
(isto , integrados venicalmente) e ve ndem acesso para lmemet direlameme a usurios finais e provedores de
contedo, bem como os ISPs de nveis mais baixos. Quando dois ISPs esto ligados di relarnente um ao OlllrO
si1o denominados pares ( peers) um do outro. Um estudo interessante 1Subrarnanian, 20021 procu ra dcinir
mais exatamente a est rutura cm nveis da lmcrnet estud:mdo s u:, topologia cm termos de relacionamentos
clienle-provedor e entre parceiros ( peer-peer). Para uma cllscussao mals clara sobre esses relacionamentos,
veja Van der Berg, 2008.
Dentro da rede de um ISP, os pontos em que ele se conecta (l ouLros 15Ps (seja (lbaixo, acima ou n.o ml'Smo
nve l na hierarquia) so conhecidos como (Jontos de presena (poinls of 1Jresrnce - POPs). Um POP simples.-
mente um grupo de um o u mais roteadores na rede do ISP com os quals rOLeadores em outros ISPs , o u em redes
pertencen tes a clientes do ISP, podem se conectar. Um provedor de nvel 1 norma lmeme 1em muilos POPs
cspidhados por diferen tes localidades geogrficas cm sua rede e vrias redes clic1ucs e omros lSPs ligados a cada
POP. Para se conecl.H ao POP de um provedor, urna rede cliente nonnahnente aluga um enlace de alta velocidade
de um provedor de tclccomunic;ics de terceiros e conecta um de seus roteadores dirclamcntc a u m roteador
no POP do provedor. Dois lSPs de nlvd l tambm podem formar um par conectando um par de POPs, cada um
provenieme de um dos dois ISPs. Alm disso, dois ISPs podem ter v rios pontos de emparelhamem o conecLanclo-
se um ao outro em dois o u mais de pares de POPs.
Res~unindo, a topologia da lntemet co mplexa, consistindo em dezenas ele lSPs ele nveis J e 2 e milhares
de lSPs de t1lveis mais baixos. A cobenum dos lSPs basltrnte diversificadu; alguns abrangem vrios ~onliuerues
e oceanos e outros se limitam a pequenas -regies cio mundo. Os LSJ>s de niveis mais baixos concc1am-se a ISPs de
nveis mais altos e estes (normalmeme) se interconecl.'lm uns com os outros. Usurios e provedores ele contedo
so clientes de ISPs de nveis mais baixos e estes so clicnles de ISPs de nveis mais .tltos.

1.4 Atraso, perda e vazo emredes de comutao de pacotes


Na Seo l.l dissemos que a Internet pode ser vista como uma infraeslrutura que ornece servios a
aplkaes distribudas que so executadas nos sistemas finai s. De modo ideal, gostaramos que os ser\lios
da lnterncl transferissem tantos clados quan10 desejamos emre do is s islemas inais, ins tantaneamente, sem
nen huma perda. Infe lizmente, esse um objeti\'O ehtsivo, algo inalcimvel. Ao contrrio disso, as redes de
computador. necessariamente, res tringem a vazo (a quantidade de dados por segundo que podem ser trans-
feridos) entre sistemas finais, aprcsemam atrasos cnlre sistem,1s finais e podem perder pacotes. Por um lado,
nfe_l_zrneme as leis fsicas da realidade lmroduzem atraso e perda, bem como restrngem a vazo. Por outro
lado. como as redes de computadores possuem esses problemas, existem muitas questes fascinantes sobre
como lidar com e les - mais cio que questes suficienles para frcquenrnr um cL1rso de rede de computadores
e molivar centenas d e teses de demorado! Nesla seo , comearemos a examinar e quanlificar atraso, perda e
vazo em redes de computadores.
bowot,o4ico.
27
Coplulo 1 Redes de com pulodores e o lalernel

1.4.1 Umo viso geral de airoso em redes de comutao de pacotes


Lembre-se de que um pacote comea cm um sis1cma final (a origem), passa por uma srie de ro1cadores e
termina sua jornada em um outro sistema final (o destino). Quando um pacole viaja de u m n (sistema Rnal ou
roteador) ao n subsequente (sistema nnal ou roteador), sofre, ao longo desse caminho, diversos 1ipos de alraso
em cc,cla n existente no caminho. Os mais mportantes deles so o atraso de processamemo nodal, o atraso
de fila , o atraso de transmisso e o atraso de propaga~".o; juntos, eles se acumula m par-" formar o atraso nodal
101al. Para entender a undo a comutao de pacotes e redes de computadores, preciso emencler a natureza e a
impom1nda desses atr-.isos.

Tipos de airoso
Vamos cxami nar esses atrasos no contex10 da Figura 1.16. Como parte de sua rota fim a fn entTe origem e
des Lino, um pacote enviado do n anterior por meio do ro1c-.1dor A at o roteador B. Nossa rnetn caracterizar
o atraso nodal no roteador A. Note que este tem um enlace de safda que leva ao roteador B. Esse et1bcc prece-
dido de uma fila (1ambm conhecida como buffcr). Quando o pacote chega ao ro1cador 1\ , vindo do n amerior,
o roteador examina o cabealho do paco1e para determinar o enlace de sada apropriado e ento o direcio na ao
enlace. Nesse exemplo, o enlace de sada para o paco1e o que leva ao roteador B. Um pacote pode ser trans-
miLido por um trilace somente se no hou,,er nenhum otttro p.,cotc sc11do 1.ransmi1ido por ele e se no houvc_r
outTos pacotes sua freme na fila. Se o enlace cs1ivcr ocupado, ou com paco1cs espera, o paco1e recm-chegado
en1 rar.i 11a Ria.

Atraso de processamento
O 1empo requerido para examinar o cabealho do pacote e determinar para onde direcion-lo pane do
atraso de proccssamen10, que pode tambm incluir outros a1ores, como o 1empo necessrio para vcrincar os
erros cm bits c.dstcntes no pacoLe que ocorreram durante a transmiss;lo dos bits desde o n an terior ao roLcador
A. Atrasos de proccssanu.>mo cm ro1cado rcs ele alta velocidade normalmeme so da ordem de microsscgundos,
ou menos. Depois desse processamento nodal, o ro1caclor direciona o pacote fila que precede o enlace com o
roteador B. (No Capitulo 4, estudaremos os de1alhe.s da operao de um roteador.)

Atraso de filo
O pacote sofre um atraso de fila enquanto espera para ser transmitido no enlace. O tamanho desse atraso
para um pacote cspedlco depender da quantidade de outros pacotes que chegarem antes e q ue j esti verem na
ntn cspcr.mdo pela transmisso. Se n fila csti,cr Vll:tin, e nenhum outro pacote estiver sendo transmitido naquele
momento, ento o tempo de lla de nosso pacolc ser zero. Por outro lado, se o m\fcgo estiver pesado e houver
mui1os paco1cs 1ambm esperando para ser 1ransrnilidos, o a1raso de Ria ser longo. Em breve, veremos que o
nu mero de pacotes quc um determinado pacotc provavelmente encontrar ao chegar urna funo da inl!'nsi-

.. 8

Propaga~ao
Fila Transmi~o
(esperando
por tran$mis.~o)

Figura 1.16 OalTaso nodal noroteador A


bowot,o4ico.
Redes de compu1adores e a Internei

dade e da uaturcza do trfego que c.s1 chegando ;\ fa. Na prara, atrasos de Ola podem ser da ordem de micro
a milissegundos.

Atraso de transmisso
Admitindo-se que pacotes so transmitidos segundo a estratgia de "o primeiro a chegar str o pri meiro a
ser processado~, como comum cm redes d<:' comutao de pacotes, nosso 1mcotc somence poder ser transmido
depois que 1odos aqueles que chegaram antes lenham sido enviados. Denominemos o tamanho do pacote como
L bits e a velocidade de transmiss:ilo do enlace do roteador A ao roteador B como R bits/s. A veJotdade R
determinada pela velocidade de transmisso do enlace ao roteador B. Por exemplo, para um enlace Ethernet
de 10 Mbps, a velocidade R 10 Mbps; pam um enlace Ethernet de 100 Mbps, a velocidade R 100 Mbps.
O atraso de transmisso (l.ambm denominado atraso de armaze11amento e reenvio, como discuLimos na Seo
1.3) LJR. Esta a quantidade de tempo requerida para empurrar (sto , transmitir) todos os bits do pacote
para o enlace. Na pnhica, atrasos de cransmisso so comumeme da ordem de micro a milissegundos.

Atraso de propagao
Assm que lanado no enlace, um bit precisa se: propagar al o roteador B. O tempo necessrio par:i propa-
gar o b1 desde o Incio do enlace at o roteador B e o atraso de propagao. O bit se propaga ~ velocidade de
propagao do en lace, a qual depende do meio fsico do enlace (isto , fibra tica, par d e fios de cobre tranado
e i1ssi111 por di:m1e) e csi.. m, aixa de
2 108 nvs a 3 1()1! m/s
que igual "docidade da luz, ou um pouco menor. O atraso de propaga4,ilo a d isl,lncia entre dois roteadores
di \!idida pela vdocidade de propagao. lslo , o atraso de propagao c/Js, onde d a distncia entre o roteador
A e o ro1eaclor B, e s a velocidade de propaga-.lo do enlace. Assim que o lllLimo bit cio pacote se ropagar a1 o
n B, ele e Lodos os outros bits precedentes do pacote sero armazenados no roteador B. Ento, o processo inteiro
conlinua, agora com o roteador B cxecULando a retransmisso. Em redes WAN, os atrasos de propagao so da
ordem de milissegundos.

Comparao entre atrasos de transmisso e de propagao


Os prncipian1cs na rea de redes de computadores s vezes tm dificuldade para entender a diferena enire
.uraso de 1rans111isso e auaso de propagao. A diferena sul, mas importante. O atraso de transmisso a
quantidade de 1empo requerida para o roteador empurrar o pacote para ora; uma lm-ao do comprimento do
pacote e da 1axa de transmisso do enlace, mas nada tem a ver com a distncia entre os dois roteadores. O a1raso
de propaga:lo, por omro lado, o tempo que leva para um bit se propagar de um roteador at o seguinie; uma
un.'to da distnca entre os dois roLC'.tdores, mas nada tem a ver com o comprimento do pacote ou corn a inxa
de mmsmisso do enlace.
Podemos esclarecer melhor as nO{es de aLt'asos de transmtsso e de propagao com uma analogia.
Considere uma rodovia que tenha um posw de pedgio a cada 100 quilmetros, como mostrado na Figura 1.17.
Imagine que os trec hos da rodO\ia entre os postos de pedgio sejarn enlaces e que os postos de pedgio sejam
roteadores. Suponha que os carros 1roegue111 (isto , se propaguem) pela rodo,ia a uma velocidade de 100 km/h
(is10 , quando o carro sai de uul posto de pedgio, acelera ins1amancamente a t 100 km/h e mantm essa veloci-
dacle entre os dois postos de pedgio). Agora, suponha que dez cnrros viajem cm comboio, um atrs do outro,
cm ordem fixa. Imagine que cada carro seja um bit e que o comboio seja um pacote. Suponha ainda que cada
pos10 de pedgio libere (isco , cransrnila) um carro a Cllda 12 segundos, que seja rarde da nocc e que os rarros
do comboio sejam os nicos na estrada. Por fim , suponha que, ao chegar a um posto de pedgio, o primeiro carro
do comboio aguarde na entrada a1 que os outros nove cheguem e formem uma ma mr:ls dele. (Assim, o comboio
inlciro deve ser 'armazenado' no posto de pedgio antes de comear a ser ' reenviado'.) O tempo necessrio para
que todo o comboio passe pelo posto de pedgio e volte estrada de (lo carros)/(5 carros/minuto) = 2 minutos.
Esse tempo anlogo ao aLraso de transmisso em um roteador. O tempo necessrio para um carro crafegar da
bowot,o4ico.
29
Coplulo 1 Redes de com pulodores e o lalernet

Pedgio Pedgio
Comboio de doz cimos

Figura 1.17 Anologio do comboio

sada de um posto de pedgio at o prxmo posto de pedgio de (100 km)/(100 km/h) = l hora. Esse tempo
anlogo ao atraso de propagao. Port.am o, o tempo decorrido entre o ins tante em q ue o comboio 'armazenado'
em frente n um posto de pedgo at o nstnnie em qut' 'arm:uenado' em frente ao segl1i111c a so ma do atraso
de transmisso e do atraso de propagao - nesse exemplo. 62 minulos.
Va mos explorar um pouco mais essa analogia. O que aconteceria se o tempo d e libera;1o do co mboio no
posto de ped,lgio fosse maior do que o tempo que um carro le,a para trafega r entre dois postos? Por exemplo.
suponh:l que os carros trafeguem a urna velocidade de 1.000 km/h e que o pedgio libere um cal'ro por minuto.
Ento, o atraso de trnsito entre dois postos de pcd:igio de minuLos e o tempo de liberao do co mbo io
no pos to de pedgio de 10 minutos. Nesse caso, os primeiros carros do comboio cheg::_m\o ao segundo posto
d e ped,1gio ames que os tlltimos carros saiam do primeiro posto. Essa simao rnmb<!m aconcece cm redes de
cormuao de paco tes - os primeiros bits de um pacole podem chegar a um roleador enquanto muitos dos
remanescentes ainda csrno esperando para ser lr:111smitidos pelo roteador precedente.
Se uma imagem va le mil palavras, ento uma animao vale um milho. O Companio n Website apresenta um
aplicati vo n teralivo Java que iluslta e contrasta o atraso de transmisso e o atraso de propaga1\o. Recomenda-se
que o leitor visile esse ap licativo.
Se cl,., , iii. d,,.., e dr"'ll forem , res pectivamente, os atrasos de processamento, de lla, de transmisso e de
propagao, emo o a ltlso nodal Lotai dado por:
rl,..,,.I = d p,,>t + rlM, + ti,.,,,.. + d i"''I'
A contribu io desses componentes do atraso pode variar significativamen te. Por exemplo, dr"'P pode ser
desprezvel (por exemplo, dois microsscgundos) para um enlace que co necta dois ro leadores no mesmo wm-
1ms un iversitrio: conLUdo, de centenas de milissegundos para dois roteadores in1erconec1ados por um en lace
de sallite geocst1Kionrio e pode ser o Lermo dominante no dnuu..11 1 De maneira semclhante, cl( I~,...., pode variar de
desprezvel a signif'icalivo. Sua contribuio norma lmente desprezvel para velocidades de transmisso de 10
Mbps e mais altas ( por exem plo, em LANs); conllldo, pode ser de centenas de milissegundos para grandes pacotes
d e lmerne1 enviados por ei,laccs de modems discados de baixa velocidad e. O atraso de proccssamemo, d,,...,,
quase sempre desprezvel; no entanto, tem forle influncia sob re a produtividade mxi ma de um rQteador, q ue
a velocidade m;lxima com que ele pode encamjnhnr pacotes.

1.4.2 Atraso de fila e perda de pacote


O mais complicado e im eressamc componcme do a rraso nodal o arraso de m a, d1,, Realmente. o atraso
de fila to importante e interessante em redes de cornpurndorcs que milhares de arti gos e nume rosos li vros
j fora m escri tos sobre ele IUcrtsckas, 1991; Daigle, 1991: Klelnrock, 1975, 1976; Ross, 19951. 1cstc liv ro ,
faremos apenas uma discuss.lo intuitiva, de alto nevei, sobre o atraso de fila: o leitor mais curioso pode con -
sultar alguns d os livros citados (o u at mes mo escrever uma tese sobre o ,\Ssunto! ). Diferentemente dos trS
omros atrasos (a saber, dfl~' d"...,' e dr,.,p), o atraso de fi la pode variar de pacote a pacote. Por exemplo, se
d ez pacotes chegarem a uma m a vazia ao mesmo tempo, o primeiro pacote transmitido no sofre r nenhum
alraso. ao passo que o lti mo pacote sofrer um atraso relativamente grande (enquanto espera que os o utros
nove p.1cotcs sejam transmitidos). Por conseguinte, para se caracterizar um aw.iso de fila , norm almente s-.lo
u tilizadas medies estatisticas, tais como atraso de flla mdio, varincia d o atraso de flla e a probabilidade de
ele exced er um valor especificado.
bowot,o4ico.
30
------ Redes de compuladores e a Internet

Quando o atraso de fila f grande e quando lnsignlfk antc? A resposta a essa pergunta dep1H1de da velocidade
de u ansmisso do enlace, da taxa com que o 1r'clfego chega fila e de sua namrcza, isto , se chega imermicen1e-
mcn1e, cm rajadas. Para cn1er1dermos melhor, vamos adotar II para representar a taxa mdia com que os pacotes
chegam lila (a medida cm pacotes/segundo). Lembre-se de que R a taxa de tmnsmissi\o, isto , a laxa (cm
bil.Slscgunclo) com que os bits so retirados da fila. Suponha tambm, para simplifi car. que todos os pacotes lenham
L bits. Ento, a taxa mdia com qL1e os biLS chegam fi la L,1bllsls. Por fi m, imagine que a ila seja muito longa,
de modo que, essencialmeme, possa comer um nmero infi nito de bilS. A razo La/R, denominada imensidade
de tmfe.go, frequentemente desempenha um papel importante na estimativa do tamanho do aLraso de fila. Se La/R
> 1, ento a velocidade mdia com que os bits chegam lla exceder a velocidade com que eles podem ser trans-
mi tidos para fora da ma. Nessa situa~10 desastrosa, a lla rende r a aumentar sem limice e o atraso de Ilia tender
ao infi nito! Por consegui nte. uma das regras de ouro ela engenharia de Lnlcgo : t>roj('tCseu siscem<r <k moclo que
i11Li:11sMcult de trtlf ego mlo seja 11wior do qui: l .

Agor".i, co11sidcre o e11so cm que L<J/R ~ 1. f\qui, a natureza do trMego inO ucncia o at raso de fila . Por cxcrn-
plo, se pacotes chegarem periodicamente - isto , se chegar um pacote a cada UR segundos- cnt,l.o todos os
pacotes chcgar".lo a uma fila vaz_ia e ni\o haver atraso. Por outro lado, se pacoLcs chegarem cm rajadas, mas perio-
dicamente~ poder have r um signiOmtho atraso de Ola mdio. Por exemplo, s uponha que N pacotes cheguem ao
mesmo tempo a cada (U R)N segundos. Ento, o primeiro pacote transmitido no sofrer aLmso de Hla; o segundo
pacote tran$mi tido ter \tm atraso de fila de UR segundos e, de modo mais geral, o ensimo pacote trans mitido
ter um aLrnso de r.Ja de (11 - l)UR segundos. Deixamos como exerccio para o leitor o clculo do atraso de ila
mcdio para esse exemplo.
Os dois exemplos de chegadi1s peridicas que acabamos de descrever so um tan to acadmicos. Na rcalid:1de,
o processo de chegi1da a uma fil a aleatrio - isto , no segue um padro e os intervalos de tempo entre os
pncotes so ao .icaso. 1essa hi ptese mais realista, a qu.1nlidade L(I/R normalmente no s ulcientc para carac-
terizar por completo a estatstica cio atraso. No obstamc, til para c111cnder l111ui tivamcntc a cxtcns-.\o do atraso
de Ola. Em especial, se a intensidade de trfego for prxima de zero, ento as chegadas ele pacotes ser:lo poucas
e bem espaadas e Improvvel que um pacote que esteja chegando encontre outro na ma. Consequemcmemc.
o at raso de fi la mdio ser prximo de zero. Por out ro lado, qu,mdo a intensidade de trfego for prxima de 1,
haver intervalos de tempo em que a veloeidtidc de chegada exceder a capacidade de trnnsmisso (devido s
variaes na tlxa de chegada do pacote) e uma fila ser-.i formada durante esses pcrlo<los de tempo; qu~tndo a taxa
de chegada for menor cio que a capacidacle ele trans miss.io, a extens.10 ela fila diminuir. Todavia, medida que a
intensidade de trfego se aproxima de l , o comprimcn10 mdio da fila ica cada vez maior. A dependncia quali-
tativa entre o atraso de fila mdio e .1 intensidade de tr:Hego mostrada na Figura 1.18.
Um aspecto importante a observar na Figura 1.18 que, quando a intensidade de trfego se aproxima de 1.
o atraso de ila mdio aumenta rapiclame.nte. Uma pequena porcentagem de aumento na inte nsidade resulta em

La/R

Figura 1.18 Dependncia entre atraso de filomdio eintensidade de trfego


bowot,o4ico.
31
Coplulo 1 Redes de com pulodores e o lalernel

um aumem o muito maior no aLraso, cm Lermos de porcentagem. Tah ez voc j tenha percebido esse fenmeno
na estrada. Se voc d irige regularm ente por urna estrada que normalmente est congestionada, o fa to de ela estar
sempre assim sign iHca q ue a imensidade de trfego prx ima de L Se algum evento eau~r um trfego lgeirn-
mem c maior do q ue o usual, as demoras que vocc sofrcr-.1 podcn\o ser enormes.
Para com preender u m po uco mais os atrasos de Dia, visite o Compa nion Wcbsite, que a presenta um apli
cativo J ava imem Livo. Se voc aumemar a taxa de chegada do pacole o sukiente de forma que a intensidade do
trfego exceda 1, voc ver a fila aumentar ao longo do tempo.

Perda de pacote
Na discussao anterior, admit imos que a fila capar d e cont er um n umero inlnilo de pacotes. Na rea lidade. a
capacidade da il.t que p reced e um enlace fini ta , embora a sua on mt(:o dependa bastante do proje to e do custo
do comutador. Corno a capacidade da fila fin ita, na verdade os atrasos de pacote no se ap roximam do infinilo
q uand o a mensidade ele tr fego se aproxima de L O que realmente acontece . que Ltm pacote pode chegar e
enco ntrar uma fila cheia. Sem espao disponvel para armazen-lo, o roteador descartar esse pacote; isto , ele
ser perdido. Esse excesso em uma fila pode ser observado novamente no aplicaLivo Java quando a intensidade do
trfego maior do que L Do ponto de vista de um s is tema lnal, uma perda de pacote vista como um pacote que
foi transmitido para o mtico da rede, mas sem nun ca ter cmc1gido dele no des tino. A frac;fto de pacotes perdidos
au menta com o au mento da intensidade de trfego. Por co nseguime, o d ese-mpenho e-m um n fre-quentcmente
med ido no ape nas em tem1os de atraso, mas tambm em termos ela probabilidade de perda de paco tes. Como
discu tiremos 110s captulos subseq uentes. um pacote perdido pode ser rctransmicido fim a lm parn garantir q ue
todos os dados sejam finalmente Lranseridos da origem ao local de dcstit10.

1.4.3 Atraso fima fim


At o momen to, nossa discusso oc-alizou o atraso nodal, isto , o atraso cm um inico ro teador. Conduiremos
essa di scusso considerando brevemente o atraso da origem ao destino. Parn e111ender esse conceito, suponha
q ue haja N - 1 roteadores en tre a mquina de origem e a mqu ina de destino. lrnaginc tambm que a rede no
esteja congestionada (e, portanto, os at rasos de fila sejam desprezveis) , que o al raso de prOCC$Sa mento em cada
roteador e na mq uina ele origem seja d"'"' que a taxa d e mmsmisso de sada de cada roteador e da mquina
de origem stja R bits/se que o atrnso de propag.1,o cm c-.1cla enlace seja dr,.,, Os aLrasos nodais se acu mu lam e
resu lta m em um atraso fi m a llm
d,.. 11,., = N (dr..,. + cl,,,.,, + ,l_)
onde, mais uma vez, ,t..,... - U R e L o ta manho do pacote. Convidamos voc a generaliz r essa frmula para o
C-dSO de auasos heterogneos nos ns e para o caso de um atraso ele fi la mdio em cada n.

Traceroute
Para perceber o que realmen te o atraso em uma reclc de co mputadores, po<:lemos utilizar o Tracerome,
programa de d iagnstico que pode ser executado cm qualquer mquina da Internet. Q lt.1ndo o usurio cspcci-
nca um nome de hospedeiro de des tino. o programa no hospedeiro de origem envia vrios paco tes especiais em
dire-1,,10 que le destino. Ao seguir seu caminho :H o destino, esses pacotes passam por u ma srie de roteadores.
Um deles recebe um desses pacotes especiais e envia uma curt a mensage m origem . Essa mensagem con tm o
nome e o endereo do rotl':ldor.
Mais especilcamente, suponha que haja N - l roteadores entre ;1 origem e o des tino. Ent.lo, a fon te enviar
N pacotes e.spedais rede e cada um deles estar endereado ao destino fi nal. Esses N pacotes especfais serllo
marcad os ele l a N, sendo a ma.-ca do primeiro pacote 1 e a do t llimo. N. Assim q ue o wfsimo ro teador recebe o
ensimo paco te <:om a marca n, no envia o paco te a seu desti no, mas uma mensagem orige m. Quando o hos-
pedeiro de destino recebe o pacocc N, tambm envia uma mensagem origem, que registra o tempo transcorrido
entre o envio de um pacote e o recebimen to da meL1sagem de retorno correspondente. A origem registra tambm o
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

nome e o endereo do roleador (ou do hospedeiro de destino) que re1oroa a mensagem. Dessa maneira, a origem
pode reconstruir a ro ta tomada pelos pacotes que vo da origem ao destino e pode determinar os airosos de ida e
volta pam todos os roteadores inl<'rvenientes. Na prtica, o programa Traceroute r<'pete o processo q ue acabamos
de descrever trCs vezes, de modo que a fonLe envia, na verdade, 3 N pacotes ao destino. O RFC 1393 descreve
deta lhadamente o Traccroute.
Eis um exemplo de resultado do programn Traccrome, no qual a rota traada ia do hospedeiro de origem
gaia.cs.umass.edu ( na Universidade de Massachusetts) at cis.poly.edu (na Polytechnic University no Brooklyn).
O resultado tem seis colunas: a primeira colun.u o valor II descrito acima. isto , o n(1mero elo rotc-ador ao longo
da rota; a segunda coluna o nome do roteador; a terceira coluna o endereo do roteador (na forma xxx.xxx.
xxx.xxx); as himas trCs colunas so os atrasos de ida e volta para trcS tentativas. Se :i. o ntc receber menos do
que trCs mensagens de qualquer roteador detenninado (devido perda de pacotes na rede), o Traceroute coloca
um as1crisco logo aps o nmero do roteador e registra menos do que tres tempos d e durao de ,,agens de ida
e volta para aquele roteador.
1 cs-91. (128 . 119 . 240 . 254) 1.009 ms 0 .899 ms 0 . 993 ms
2 128. 119 . 3 . 154 028 . 119 . 3 . 154) 0 . 931 ms 0 . 441 ms 0.651 ms
3 border4rt-gi-13 . gw. umas$.e<lu (128.ll9 . 2.J94J 1.032 l"IS 0 .484 11s 0 . 451 ms
4 acrl-ge-210.Boston . cw . ne t (208 .172 . 51.129) 10 . 006 ms 8. 150 ms 8.460 ms
5 agr41oopback.llewYork.cw.net (206 . 24 .194.104) 12.272 C'IS 14.344 ms 13.267 ms
6 att21oopback.HewYork.cw.net (206 . 24 .1 94.62) 13 . 225 ms 12 . 292 11s 12.148 ms
7 poslOZ . core2.lfewYorkl.Level3.net. CZ09.Z4~.160.133l lZ.218 ms 11.823 ms 11.793 111s
8 9l9e91 52.hsfpaccessl.Ne-wYorkl . Leve13.net (64.159.17.39) 13 . 081 ms 11.556 ms 13.297 ms
9 pOO.polyu.bbnplane-t.ne-L (4.25 . 109.122) 12.716 ms L3.052 11s 12 . 786 ms
10 cis.poly.edu (128.238.32.126) 14.080 ms 13.035 ms 12.802 ms

No exemplo anterior h nove roteadores cnLrc a origem e o des tino. Quase todos eles ttrn um nome e
todos t~m endereo. Por exemplo , o nome do Ro1cador 3 border4-rt-gi-l-3.gw.umass.edu e se u endereo
128.119.2. 194. Examnando os dados apresentados para esse ro1cador, verificamos que na primeira das trS
tentativas, o airaso de ida e volta entre a origem e o roteador foi de 1,03 milissegundos. Os atrasos para as d uas
tenLativas subsequentes fomm 0,48 e 0 ,45 milissegundos e i nduem todos os atrasos q ue acabamos de discutir, ou
seja, atrasos de trnns miss:\o, de propaga,\o, de processamento do rotelldor e de Ilia. Como o a traso de ma varia
com o tempo, o a1mso de ida e voltn do pacote II enviado a um roteador II pode, s vezes. ser maior do que o
do pactC 11+1 cnvado ao rtcador 11+1. Realmente, obscrvarnos esse fcrtmeno no exe mplo acima; os atrasos do
roteador 6 so maiores que os atrasos do roteador 7!
Voct quer experimentar o Traccroute por conta prpria? Recomendamos muito que visi te o site http://www.
traceroule.org, que prove uma interface Web para uma extensa lista de fontes para tra~-ar rotas. Escolha uma
fonLe , fornea o nome de hos pedeiro para quaJquerde.stino e o programa Traceroute far todo o trabalho. Existem
muitos programas de software gratuitos que apresentam uma interface grfica para o Tracero utc; um dos nossos
favoritos o PingPlotter [PingPlou cr, 2009].

Sistema final, oplicotivo e outros atrasos


Alm dos a trasos de processamento, transmisstio e de propagao, os sistcinas finais podem adicio nar omros
atrasos significativos. Os modems discados apresenta m um atraso de modula~o/codifkao, q ue pode ser da
ordem de dezenus de microssegundos. (Os atrasos de modula:lo/codflca(,".lo para outras tecnologias de at:esso -
incluindo a Ethernet, o moderu a cabo e a DSL - so menos significativos e normn lmente desprczlveis.) Um
sistema fin.il que quer transmitir um p:ico tc para uma mdia companilhad:1 (por exemplo, como em Ltm cenrio
WiFi ou Elherncl) pode, i11te-ncionalmc111c, alrasar SM transmisso como parte de se u pro tocolo por comparLilhar
a mdia com outros sistemas finais; vamos analisar tais protocolos no Captulo 5. Um outro importante atraso
o atraso de empacotamento de mdia, o qual est presenle nos aplicativos YolP (voz sobre IP). No YolP, o
bowot,o4ico.
_................................................................___
(oplu lo 1 Redes de <ompulodores e o Internei
33

rC'metcnte deve primdro carregar um paco1e com voz digializada e codiicada ames de traosmlLir o paco1e para
a lmcrne1. A etapa de carregar um pacote- chamada ele a1raso de cmpacotamem o - pode ser significativa e 1er
impacto sobre a qua lidade visvel pelo usurio de uma chamada Vo lP. Esse as.sum o ser explorado mais adiante
nos exerccios de fixa-Jo no final deste capitulo.

1.4.4 Vazo nas redes de computadores


Alm do auaso e da perda de paco1cs, outra medida de desempenho imponame cm redes de compu1adores
a vaz.o im a fim. Para definir vazo, considere a tr;msferencia de um a rquivo gra nde do Hospedeiro A para o
Hospedeiro B atravs de uma rede de compu tadores. Essa 1ransferncia pode ser, por exemplo, um d ipc ex tenso
de um parceiro pnrn outro por meio do sistema de compartilhiuncnto P2P. A vazo tnstiintnea :1 qualquer
momento a taxa (em biLs/s) em que o Hospedeiro B est recebendo o arquivo. (Muitos aplcativos, incluindo
muitos sistemas de compartil hamento P2P, exibem a vaz.io ins1am{lne.1 durante os downloads na interface do
usurio- talvez voc j Lenha observado isso!) Se o arquivo consislir em F bits e a transferncia levar Tsegundos
para o liospcdciro D receber todos os F bits, cnlo :i ,azo mdia dn transcr~ncin do arqu i,,o F/T' l>its/s. Para
algumas ap licaes. como a telefonia via Internet, desejvel ter um atmso baixo e uma vazo instantnea iicmii
de algum limiar (por exemplo, superior a 24 kbps para telefonia vla Internet , e superio r a 256 kbps para alguns
aplicativos de vdeo em tempo rea l). Para outras apl icaes, incluindo as de transferncia de arquivo, o atrnso no
imponame, mas recomendado ter a vazo mais aha possvel.
Pa ra obter uma viso mais dct.ilhada, vamos anal is.ir alguns exemplos. A Figura l. 19 (a) mostra dois sistc
mas flnals, um servidor e um clienle, conectados por dois enlaces de comunicao e um roteado r. Considere
a vazo para uma transerencia de arqu ivo cio servidor para o cliente. Suponha q ue R, seja a taxa do enlace
entre o roteador e o cliente; e R, seja a taxa do enlace enut' o roteador e o cliente. Imagine que os miC'Os biis
enviados na rede inteira sejam os do servidor p.tra o cliente. Agora vem a pergunta, neste cenrio ideal, qual
a vazo servidor-para-cl iente? Para responder a ela, pense nos bilS como um lf<111iclo e nos en laces de comu-
nicao como amos. Evidentemente, o servidor no pode enviar os bilS atravs de se u enlace a unm 1axa mais
rp ida do que R, bps, e o roreador no pode encaminhar os bits a uma taxa mais rpida do que R, bps. Se R,
< R,, e nto os bits e nviados pelo servidor iro "correr~ clirciamente pelo roteador e chegar no clcme a Lima
taxa de R,bps. Se, por outro lado, R, < R,, entilo o roteador no pode r encaminhar os bics to rap idamente
quanto ele os recebe. Neste caso, os bilS somente deixaro o roteador a uma taxa R,, dando u ma vaz.10 lm a
im de R,. (Observe tamlxm que se os bits continuarem a chegar no roteador a uma taxa R,, e continuarem a deixar
o roteador a uma lt11' R,, o acm ulo de bits no roteador esperando para Lransmlsso ao clieme s aument.tr -
uma situao, na maio ria das vezes, indesejvel!) Assim, para essa rede si mples de dois en laces, a vazo
mn IR,, R), ou seja, a taxa de lransmisso do enlace de gargalo. Aps determinar a vazo, agora podemos

~ --R'---.~--R
SeNidor
_R, Cliente
a.

Servidor Cliente
b.

figura 1.19 Vazo poro uma transferncia de arquivo do servidor ao cliente


bowot,o4ico.
Redes de compu1adores e a Internet

aproxmar o tempo que leva pllra cranserir um arquivo grande de F bics do servidor ao cliente corno F/mfn IR,.
R.,l. Para llm exempJo especfico, suponha que voe~ est fazendo o download de um arquivo MP3 de f = 32
milhes de bits, o servidor tem uma taxa de tr:msmisSt1o de R, - 2 Mbps, e voc tem um enlace de acesso de
R, = l Mbps. O tempo necessrio para minserir o nrquivo , ento, 32 segundos. Naturalmente essas expresses
para tempo de vazo e de transcri!ncia s:\o apenas aprox imaes, j que elas no contabilizam assuntos rela-
cionados a protocolos e pacotes.
A Figura l.19 (b) agora mostra uma rede com N enlaces entre o servidor e o d iente, com as tn:-:as de trans-
misso de N enlaces sendo R, , Rz, ..., RI\. Aplicando a mesma anlise da rede de dois enlaces, descobrimos que a
vazl1o para uma transferncia de arqui,o do servidor ao cliente min IR,, R2. . ... R.,.1. a qual novamente 11 taxa
de transmisso do enlace de gargalo ao longo do caminho entre o servidor e o cliente.
Agora considere omro exe mplo mo tivado pela Internet de hoje. A Figura 1.20 (a) mostra dois sistemas finais,
mn servidor e um cliemc, conectados a uma rede de compmadorcs. Considere a \'1\Zt\o para uma Lmnsferncia de
arquivo do servidor ao cliente. O servidor est concclado rede com um enlace de acesso de Laxa R, e o dienlc
est conec1ado ;\ rede com um enlace de acesso de R,. Agora suponha que todos os enl;\ccs no mlcleo da rede
de comunica,o lenham caxas alcas de 1mnsmisso, muico maiores do que R, e R,. Realmente, hoje, o ncleo da
Internet est supembas1ecido co m enlaces de alta velocidade que sofrem pauco congestionamc1110 (Akella, 2003].
Suponha, tambm , que os nicos bilS que cst:,o sendo e1wh1dos cm toda n rede scj<1m os do servidor paro o cli-
en te. Como o ncleo da rede de computadores como um c:ano largo ncsle exemplo. a taxa a qua l os bits correm
da origem ao lugar de destino novamente o mnimo de R, e R,, ou seja. vailio = mn IR,, R, l. Portanto, o fator
coerci1ivo para vazo na lmerne r de hoje , nom1almeme, o acesso rede.
Para um exemplo inal, considere a Figura 1.20 (b) na qual existem 10 servidores e 10 clientes conectados ao
ncleo da rede de co mputadores. Nes te exemplo , 10 downloads simultneos esto se ndo realizados, envolvendo
10 pares de cllentes-servldores. Suponha que esses 10 downloads sejam o nico trfego na rede no momemo pre-
senie. Como mos1rado na Ogum, h um enlace no ncleo que atravessado por todos os 10 downloads. Considere
R a taxa de Lra11smisso desse enlace. Suponha que todos os enlaces de acC$S0 do servidor possuem a mcsrn:11axa

Servidor 1OseNidores

Cliente 10 (Ilentes
a. b.

Figura 1.20 Vazo fim ofim: (o) Ocliente baixo um arquivo do servidor; (b) 1Oclientes fozem odownloadcom 1Oservidores
bowot,o4ico.
35
Coptu lo 1 Redes de <o mputodores e o Internet

R , todos os enlaces de ace.sso do clic.nte possuem a mesma 1axa R e a taxa de iransmlsso de Lodos os e11laces
no' ncleo - com exceo de um enlace comum de taxa R - sejam ' muito maiores do que R,, R, e R. Agora per-
gunuunos. quais so as ,azes dos dow nloads? Evidentemente, se a taxa do enlace comum. R, : gmnde - digamos
que cem vezes maior do que R,, R, - cnulo a v;1uo para cada download ser no"arncnLc rnfn IR,. R). Mas e se
a taxa do enlace comum for da mesma ordem que R, e R,? Q ual ser a vaz.to neslc caso? Vamos observar um
exem1>lo ~pccfko. Suponha que R, = 2 Mbps, R, = l Mbps, R = 5 Mbps, e o enlace comum divide sua taxa de
transmisso igualmente entre 10 downloads. Ento, o gargalo para cada d ownload no se encontra mais na rede
de acesso, mas o enlaec companllhado no mideo, que somente fornece paF.t cada download ,oo kbps de vazo.
Deste modo, a vazo fim a fim para cada download agora reduzida a 500 kbps.
Os exemplos na Figura 1.19 e Figura 1.20 (;I) mostram que a vaz.\O depende das 1axas de transmis-
so dos enlaces sobre as quais os dados corr-cm. Vimos que quando no h trfego interveniente, a vazo !)ode
sl111plesmen1c ser aproxmada corno a taxa de transmisso mnma ao longo do camnho entre a origem e o local
de desli r10. O exemplo na Figura 1.20 (b) moslra que, de m,meira geral, a vado depende no somente das 1axas
de transmisso dos cr11:lccs ao longo do camnho, m:1s tambm cio trfego iruervcnientc. Em c.specinl, um enlace
com uma alta taxa de transmi.sso pode, t<Xlavia, ser o enlace de gargalo para uma transferncia de arquivo, ~aso
muitos outros luxos de dados estejam tambm passando por aq uele enlate. Analisaremos mais detalhadamente
vazo cm redes de computadores nos exerccios de fixao e nos capLUlos subsequentes.

1.5 Camadas de protocolo e seus modelos de servio


At. aqui, nossa dscuss.lo demonstrou que_ a lnte-rncL um sistema ex1re111c1111rnte complicado e que possui
muitos componentes: inmeras aplicaes e prolOcolos, v.lrios tipos de sistemas finais e conexes entre eles,
roteadores, a lm de vrios tipos de meios fsicos de c11lace. Dada essa enorme complexidade, h alguma esperana
de organizar a arquitetura ele rede ou. ao menos, nossa discumo sobre ela? Felizmente, a resposta a ;11nbas as
perguntas sim.

1.S.1 Arquitetura de comodos


Antes de 1cn1armos organizar nosso raciocnio sobre a arquite1ura da Internei , vamos procurar uma analo-
gia humana. Na verdade, lidamos com sistemas complexos o tempo todo em nosso dia a dia. Imagine se algum
pedisse q ue voce descrevesse, por e;.;cmplo. o sistema de 11111a companhia area. Corno voce cncomraria a estru-
tura para desc rever esse sistema complexo que tem agencias de emiss:o ele passagens, pessoal para embarcar a
bagagem para ficar no porto de embarque, pilotos, avies, conLrole de Lr.iego areo e um sistema mundial de
roleamenlo de aerona,cs7 Um modo de descrever esse sistema poderia ser apresentar a relao d e uma srie de
aes que voei! r'ealiza (ou que outros realizam pal"J voe~) quando voa por uma empresa area. Voe~ compra a
passagem, despacha suas malas, dirige-se 110 porto de embarque e, f"inalmente, entra no avio. que clecola e segue
uma rota ;H seu destino. Aps a aterrissagem, \IOCf dcsembam, no pono dcsignaclo e recupera s uas malas. Se a
viagem fo i ruim, voc reclama na agl!nda que lhe ve ndeu a passagem (esforo cm , Jo). Esse cenrio ilustrado
0

na Figura 1.21.
J podemos no tar aqui a lgumas analogias com redes de computadores: voc est sendo despac hado da
origem no destino pcht comp:111hia area; um pacote despachado da m;\quina de o rigem mquina de desti no
na lnterne1. Mas essa no cxa1amcnte a analogia que buscamos. Estamos tentando encontra r alguma est nrt1rra
na Figura 1.21. Observando essa figura, no tamos que h uma fun:1o referen1e passagem em cada ponta; h
tam bm uma fun,lo de l)agagcm para passageiros que j aprcsemara m a passagem e uma funo ele poru\o de
embarque para passageiros que j apresentaram a passagem e despacharam a bagagem. Para passageiros que j
passaram pelo porto de embarque (isto 6, aqueles que j aprcsenlarnm a passagem, dcspacharnm o. bagagem
e passaram pelo porto). h uma funo de decolagcm e de atcrrissagem e, durante o voo, u ma uno de
roteamento do avio. Isso sugere q ue podemos examinar a funcionalidade na Figura 1.21 na horizontal, como
mostra a Figura 1.22.
bowot,o4ico.
Redes de compu1ado,es e a lnleroet

PilS~gem (comprar) Passagem (reclamar)

Bagagem (despachar) Bagagem (recuperar)

Portes (embarcar} Portes (desembarcar)

Occolagcm AterriS5<lgcm

Roteamento da aeronaoe Roteamento da aeronave

Roteamento da aeron,1ve

Figura 1.21 Umo viogem de o'Jio: oes

A Figura 1.22 di,1idiu a funcionalidade da linha atrc.1 cm camadas, provendo uma esm11urn com a qual
podemos disculir a viagem area. Note que e.ida camada, combinada com as camadas abaixo dcln, implementa
algu ma funcionalidade, algum serv(o. Na camada da passagem area e abaixo dda, reallzacla a transferncia
'bak!lo-dc-li nha-arca-balc,lo-dc-li nha-art>a' de um passageiro. Na camada ele bagagem e abaixo dela, rea lizada
a transferncia 'despacho-de-bagagem-recuperao-de-bagagem' de um pa..,;sageiro e de suas ma las. Note 9ue a
camada da bagagem prov esse servio apenas p:trn a pessoa que j apresen tou a passagem. Na <.-amada do porto,
realizada a 1rnnsfe rncia 'porto-de-embarque-por1o-de-desembarque' de um passagei ro e de sua bagagem . Na
camada de decolagem/:uenissagern, realizada a transfer~ncia 'pista-a-pista' d e passageiros e de suas bagagens.
Cada camada prov seu senrio (1) realizando certas aes dentro da camada (por exemplo, na camada do pondo,
embarcar e dt!Scmoorcar pessoas de um avio) e (2) u1ilizanclo os servios ela camada imediatamente inferior (por
exemplo, na camada do ponllo. aproveitando o servio de transcrCncia 'pista-a-pista' de pass.igeiros ela camada
de dccolagern/aterriss.'\gcm).
Uma arquitewra ele camadas nos pcm1ite discmi.r uma parcela especlica e bem dcl'lnida ele um sistema
grande e complexo. Essa simplificao 1cm considervel valor intrnseco, pois p rov modular idade fazendo com
que fique muito rnais fcil modific.1r a implcmenta.\o do servio prestado pcl:i ca mada, Co nLanto que a c.,mada
fornea o mesmo servio p,1ra a que est .icima dela e use os mesmos servios da camada abaixo dela, o restante
do sistem,1 pet1rnrncce inahcmdo quando a sua implcmenla.lo ~ modific..1d11. (Note que modiic.1r a imple1ncn-
1.a-.lo ele um servio muito difereme de mudar o servio cm si!) Por exemplo, se as funes de porto fossem
modiicadas (digamos que passassem a embarcar e desembarcar passageiros por ordem de ahu m), o rrs1an1e do
sistema da linha area pen11aneceria inaherado, j que a camada do por1.,,o cominuaria a prover a mesma funo

Passagem area
Passagem
(com 1a1
Bagagem
Sagagem
Cd~padiaf)
Portes i>orto
(embarcar)
Oecolagem Ater<isagllm Oecolagem/Aterrisagem
Roteamento Roteamento Roteamento Roteamento
de aeronave de aeronave de aeronave
Roteamento de aeronave
de aeronave
Aeroporto de origem Centrais lntermedlrla1 Aeroporto de destino
d& controle de trt.fego Mreo

Figura 1.22 (ornados horizontais do funcionalidadede linha area


bowot,o4ico.
37
Coptu lo 1 Redes de <o mputodores e o Internet

(embarcar e desembarcar passageiros); ela smplesmcntc Implementaria aquela uno de mane.ira diferente aps
a modificao. Par.i sistemas grandes e complexos que so amali.~ados consta11Lementc, a capacidade de modifi-
car a implemcnta.10 de um servio srm afernr outros cornpanentes do sistema om ra vantagem importante da
diviso cm camadas.

Camadas de protocolo
Mas chega de linhas areas! Vamos agora voltar nossa ateno a protocolos ele rede. Para prover uma estru-
tum para o projeto de protocolos de rede, projetstas de rede organizam protocolos - e o hardware e o software
de rede que implementam os protocolos-em camadas. Cada protocolo pertence a uma da.'> camadas, exatamente
corno cada fur1M na :1rquitetura de linha area da Figura 1.22 pertencia a uma camnda. Novamente cstnmos
interessados nos servios que uma cmnada oforece camada acima dela - denominado modelo de servio de uma
ramada. Exatamente como no nosso exemplo da linha area, cada camada prove seu servio (1) executando certas
aes dentro da camada e (2) u1.ilizando os servios da camada dire1amente abaixo dela. Por exemplo, os scrvi~os
providos pela camacla II podem incl uir emrega confivel de mensagens ele uma extremidade da rede outra, que
pode ser implemcmada utilizando um servi o n:\o oonMvel de entrega de mertSagem fim a fim da camada 11 - l e
adicionando uncionalidadc da c-Jmada II J)ara detectar e retransmitir mensagens perdidas.
Uma camada de pro1ocolo pode ser implementada em software, em hardware, ou c m uma combinao
dos dois. Protocolos de camada de aplicao como HTTP e SMTP - quase sempre s.lo implerncntados em
software em sistemas finais; o mesmo acontece com proLo,olos de camada de tr:rnsportc. Como a cam:.tda si<:a
e as camadas de enlace de dados so resp-0nsveis pelo manuseio da comunica~'tl.o por um enlace especifico,
normalmente so implementadas em tuna placa de nterface de rede (por exemplo, placas de interface Ethernet
ou Wi-Fi) associadas a um determinado enlace. A camada ele rede quase sempre uma implementa~"o mista
de hardware e software. No1e tambm que, exatamente como as funes na arquitetura em camadas da lin ha
afrca eram dislribudas entre os v:lrios aeroportos e centrais de controle de 1rfego afreo que compunham o
sistema, tambm um protocolo de camada n distribudo entre os s istemas finais. comutadores d e pacote e
omros componentes que formam a rede, Isto , h sempre uma parcela de um protocolo de camada n cm cada
um desses componentes de rede.
O sistema de carn,1d,\S de protocolos tem vantagens conceituais e cstrmurnis. Como vimos, a divisO cm
camadas proporciona um modo estruturado de discutir componentes de sistemas. A modularidade facilita a atua~
lizao de compo r1en1es de sistema_ Devemos me,ncionar, no entanto , que alguns pesquisadores e engenheiros
de rede se opem veeme ntemellle ao sistema de camadas (\Vakeman, 1992(. Uma cles\lamagem potencial desse
sistema que uma camada pode duplicar a funcionalidade de uma camada inferior. Por exemplo, muitas pilhas
de protocolos oferecem servio de recup<:ra-Jo de erros na camada de enlace e tambc:m fim a fim . Uma segunda
desvantagem potencial que a funcionalldade cm uma camada pode neccssilar de inormaces {por exemplo,
um valor de carimbo de tempo) que esto presentes somente em uma outra camada, o que infringe o objetivo ele
separao de camadas.
Quando 1omados em conjunto, os protocolos das vrias camt1das so denominados pilha de protocolos, que
formada por cinco camadas: fsica, de enlace, de rede. de lrans porte e de ap lica.lo, como mosl ra a FigurJ 1.23 (a). Se
voe~ verificar o sumrio, veni que organizamos este livro utilizunclo as camadas da pilha de prolocolos da lnLernet.
Fazemos um.a abordagem descendente, primeiro abordando as camadas de aplica.lo e, emilo, os processos.

Camada de aplicao
J.\ camada de aplicao e onde residem aplk.acs de rede e seus protocolos. Ela inclui muitos protocolos,
lais como o prolocolo HTTP (que prov re<4uisio e transfer~ncia de documentos pela Wc_b) , o SMTP (que prov
1ransfercncia de mensagens ele correio cle1n'.mico) e o FTP (que provf a transfer~ncia de arqui\los cnLrc dois s:is1emas
rtnais). Veremos que ceraas funes de rede, como a traduo de nomes fceis de emcndet dados a ss1cmas finais da
lntemet (por exemplo, gaia.cs.umass.edu) ~1ra um endereo ele rede de 32 bits, uunbm so executadas corn a ujucla
de um protocolo ele camada ele aplicao, no caso, o sistema de nomes de domnio (do111ain nwne system - DNS).
Veremos no Captu]o 2 que muito fcil criar nossos prprios novos protocolos de camada de aplicao.
bowot,o4ico.
Redes de compu1adores e a Internet

Apl!Qo

Apresenta,o
Aplicao Sesso
Transp0<te Transporte
Rede Rede

Enlace Enlace
Fsico Fsico

a. Pilha de pro tocolo b, Modelo de


da lntemet de onco referncia ISO OSI
amadas de 5ele camadas

Figura 1.23 Apilho de protocolo do Internet (o) e o mooolo de refe1ncio OSI (b)

Um pro tocolo de camada de aplicac;io dis tribudo por diversos sistemas finais, send o que a aplicao em
um sistema nnal uli llztt o protocolo p{lra trocar pacotes d e inormalo com a aplica,lo em outro sistema flnal.
Denominaremos esse pacote d e informao na camada de aplica,1o ele mensagem.

Camada de transporte
A camada d e lrans pon e da Internet transporia mensagens da can1ada de aplcao entre os lados do d i-
cmc e servidor de uma ap lica,lo. H dois protocolos de transporte na lmernet: TCP e UDP, e qualquer um
deles pode levar mensagens d e C"Jmada de aplicao. O TCP prove ser\lios oriemados para conexo para s uas
aplkacs. Alguns desses scervios so a entrega garantida de mensagens da camada de aplica,;-Jo ao destino e
conLro le de nuxo Hs10 , compatibilizac;ilo das velocidades do remetente e do receptor). O TCP ta mbm r.ig-
menta mensagens longas cm seg111eruos mais curtos e prov mecanismo de con1role de congcstonamcnlo, de
modo que um.i o rigem regula sua velocidade de lransmiss.io quando a rede est congeslionadn. O prolocolo
UDP prov servio no orientado para conexo a suas aplicaes. Este um servio econmico que fornece
segurana, sem comrole de nuxo e de congestionamem o. Neste li vro, um pacote de camada de rnrnsporte ser
denominado segm ento.

Camada de rede
A c.imad:1 de rede da lmern et responsvel pela movimenmo, de uma mquina para outra, de pacotes
d e camada de rede conhecidos como datagramas . O protocolo de camada de transporte da lmernet (TCP O Ll
UDP) em uma mquina de origem passa um segmento de camada de tra nsporte e um endereo de destin o
camada ele rede, cxacamcnte como \IOCi! passaria ao servio d e correios uma carta com ~un endereo de cl t'S ti-
11a1r io. A camada d e rede ento provt o servio de entrega do segmento camada de transporte na mquina
d estim1trlt1.
A camada de rede ela Internet tem do is componemes principais. Um deles um pro tocolo que deine os
campos no darngrama, bem como o modo como os sistemas finais e os roteadores agem nesses campos. Esle
o famoso pro tocolo IP. Existe somcn le um nico protocolo lP. e toclos os componentes da lntemel que
ti'm uma camada d e rede devem executar esse protocolo. O Olllro compo nen te im poname o pro tocolo de
rotcamenlo que determina as rorns que os da1agramas seguem emre o rigens e d1?S1inos. A In ternet tem muitos
protocolos de ro1eamento. Como ,,imos na Seo 1.3, a Internet Lima rede d e red es e, d entro de uma delas,
o ;1clminist rnclor pode executar qualquer protocolo de ro teamento que queira. Emborn a camada de rede
contenha o protocolo lP e tambm numerosos protocolos de roteamento, eli1 quase sempre denominada
simplesmente camada 1P, refletindo o fato de que ele o elemeruo fundamental que mantm a integridade
da Internet.
bowot,o4ico.
39
Capitu lo 1 Redes de <o mputodores e o Internet

Camada de enlace
A cantada de rede da Internei roteia um da1agrama por meio de uma srie de ro teadores entre a origem e
o destino. Para levar um pacole de um n (sistema inal ou comutador de pacotes) ao n segui nte na rola, a
camada de rede depende dos servios da camada de enlace. Em especial, cm cada n, a camada de rede passa o
datagroma paro a c.imada de enlace, que o cni rcga, .i.o longo da rota, ao ,,
seguin1e, 110 q ual o datagrama pas-
sado da camad:1 de enlace pt1ra a de rede.
Os servios prestados pela camada de enlace dependem do protocolo especifico empregado no enlace.
Alguns protornlos de camada de enlace proveem entrega gantnLida entre enlaces, isto , desde o n transmissor,
passando por um ni co enlace, at o n receptor. NOle que esse servio confive l de entrega d iferente do servio
de e ntrega garan tida do TCP, que prov servio de entrega garantida de um sistema final a outro. Exemplos de
pro1ocolos de camadas de cnlncc so Etherne1, WiFi e PPP (poi11Ho-1,oi111 pratocol - pro tocolo pomo-a-pomo).
Como datngramas normnlmen1e precisam transitar por diversos enlaces IJara irem da origem ao destino, sero
manuseados por dlfcrerues protocolos de camada de enlace cm diferentes enlaces ao longo de sua ro ta, podendo
ser manuseados po r Ethernet em um enlace e por PPP no seguinLe. A camada d e red e receber um ser\lio diferen-
te de cada um dos var iados protocolos de camada de enlace. Nes te livro, pacotes de camada de enl:.ce sero
dcnomimtdos q uadros.

Cornada fsico
Enqua ruo a 1arefa da camada de ertlacc mo"imcn1ar qundros inteiros de um demento da rede ai um
elemento adjacente, a da camnda fsica ~ movimcn1ar os bits ilulivid11<1is que esto dcncro do quadro de um n
para o seguin te. Os protocolos nessa camada novamente depenclcm do enlace e, alm disso, dependem do prprio
meio de Lra11smiss:lo do enlace (por exemplo, fios de cobre tranado ou fibra tica monomodal). Por exemplo, a
E1hernet tem muilos protocolos de c.amada sicn: um para par de fios de cobre lran~-ado, outro pnrn cabo coaxial,
um outro para fibra e assim 1)()r dante. Em cnda caso, o bit movimentado pelo enlace de um modo diferente.

Omodelo OSI
Aps discutir detalhadamemc a pilha ele protocolo da lnLernet, devemos mencionar que essa nio a
mca pi lha de protocolo existente. Particularmente, no final d os an os 1970, a Orgaaizao lnLernacional para
Padronizao (ISO) props que as redes de computadores fossem organizadas em, aproxhnadameme, sete carna-
das, denominndas mode lo de lnierconex:io de Sistcmns Abertos (051) (ISO, 2009]. O modelo 051 tomo u forma
quando os protocolos que iriam se tornar pro1ocolos da Internet estavam cm amadurccimemo: e eram um dos
muitos conjuntos de protocolos cm desenvol vimento; na verdade, os inventores do mode lo 0Sl original provavel
mente no 1inhmn a Internet em me.me ao cri-lo. No e111an10, no final dos anos 1970, muitos cursos Lmversi
1rios e de Lrci namcnto obliveram conhecimentos sobre a cxig~ncia do ISO e organizaram cursos vohados para
o modelo de sete camadas. Em razo de seu impacto precoce na educa:lo de redes, o modelo ele sete camadas
continua presente cm algims li vros sobre redes e em cursos de ucinamcnto.
As sete camadas do modelo de referncia OS!, mostradas na Figura 1.23 (b) , so: camada de aplkao, camada
de apresemailo, camada de sesso, camada de trnnspone, camada de rede, camada ele enlace e camada fsica. A
funco de cinco dessas camadas a mesma que seus componentes da l.ntemeL Desse modo, vamos considerar as
duas <.11 madas adicion,\is presentes no modelo de re ferencia OSI - a <.-amada de apresenta-Jo e a camada de sesso.
O papel da cnmada de apresenta~-o t prover servios que permitam que as aplicaes de comunicn~":io interpretem o
significado dos dados troe:1dos. Entre esses servios esto a compresso de dados e a codllka.'\O de dados (o que ndO
precisa de cxplica;io), assim como n descrio de dados (que, como veremos no Captulo 9 , livr'4111 as aplicaes da
preocupao com o formato interno onde os dados es to sendo dcscritos/annnzcnados - fonnato esse q ue podem
se diferenciar de um compmador para o oucro) . A camada de sesso prov a delimhao e sincroniza,J.o da troca de
dados, incluindo os meios de construir um esqucmn de pomos de verificao e de recuperao.
O faro de a lmemet ser desprovida de duas camadas encontradas no modelo de referfncia OS! faz surgir duas
questes: os servios fornecidos por essas camadas so irrelevantes? E se uma aplicao precisar de um desses
bowot,o4ico.
40
------ Redes de compuladores e a Internet

servios? A resposta da lmernet para essas perguntas a mesma - depende do c riador da apllcao. Cabe ao
criador da aplkailo decidir se um servio importame, e sc o servio for importante, cab-c ao criador da aplicao
desenvolver essa funo p:mt ela.

1.S.2 Mensagens, segmenlos, dologramas e quodro.s


A Figura l.24 apresenta o caminho fsico que os dados percorrem: para baixo na pilha de protocolos de t1m
sism11a inal emissor, para cima e para baixo nas pilhas de protocolos de um comutador de camada de enlace
intervenieme e de um rote.1dor e en1o para cima na pilha de protocolos do s istema fina l receptor. Como d is-
cutiremos mais adan1c 11es1c livro, ambos, comumdorcs de camada de enlace e roteadores, s.10 comutadores de
pacotes. De modo semelhante a sis1emns finais, roLeadorcs e comutadores de camada de enlace organizam seu
hardware e software ele rede em Gtmadas. Ma-s roteadores e comutadores de <.-amada d e enlace no implementam
loclcrs as camadas da pilha de protocolos; normalmente implementam apenas as camadas de baixo. Como mos ira a
Figura 1.24, comutadores de camada de enlace implementam as camadas 1 e 2; roteadores implementam as cama-
das t. 2 e 3. Isso significa, por exemplo, que ro1cadorcs da Internet so C1!pazcs de implcment.a r o protocolo IP
(da camada 3), mas comu1adores de camada de enlace no. Veremos mais adiante que. embora no reconheam
endereos IP, cornutadore:s de camada de c11lace s.10 capazes de rceonhcccr endereos de e.a mada 2, tais como
endereos da Ethernet. Note que sis1e1nas nais implementam todas as cinco camadas, o que consistente com
a no~o de que a arquilemra da lnrentel conccnrra sua complexidade na periferia da rede.
t\ Figu ra l.24 tambm ilustr.i o importante conceito de enctipsularncnto. Uma mensagem de camada de
aplicao na mquina emissora (M na Fgura 1.24) . passada para a camada de Lransportc. No caso mais simples,
esta pega a mensagem e anexa informaes ad icionais (denominadas informaes de cabealho de camada de
transporte, H, na Figura 1.24) que ser.lo usadas pela camada de transporte do lado receptor. A mensagem de
camada de aplica;\o e as informaes de t-abealho da camada de transporte, juntas, co,istitucm o segmento da
,amada de transporte, que encapsula a mensagem da C',unada de aplk~1<,.lo. As ino rmaes :idicionadas podem

Destino
Mens.agem M Aplicao
Segmento Ht M
Datagrama Hn Ht M
_____
Transporte
,__Rede
Quadro Ht Hn Ht M Enlilce
>-------
ffsico
H1 Hn Ht M f Enlae J H1 Hn Ht M
flsico

Roteador
Origem
M Aplicao
H1 M Trans1>orte Hn Ht M Rede Hn Ht M
Hn Ht M Rede H1 Hn Ht M En lace Hi Hn Ht M
Ht Hn Ht M Enlace fsico
1
FC5ico

figuro 1.24 Hospedeiros, roteodo1es e comutodores de comodo de enloce; codo um contm um conjunto difernnte de comodm, refletindo
suas Merenos em funcionalidade
bowot,o4ico.
41
Coplulo 1 Redes de com pulodores e o lalernet

incluir dados que habilitem a camada de transporte do lado do receptor a entregar a mensagem ;\ aplicao apro-
priada, alm d e bits de deteco de erro q ue permi tem que o rece.pLor de termine se os bits da mensagem foram
mo<lilkados !'m tn'.l nsito. A camada de transporte ento pass.1 o segmento.\ camada de re<le, q ue adiciona infor.
ma<;cs de cabea lho de c.1mada de rede (H" na Figura 1.24). como endereos de sistemas finais de origem e de
d esti no, cri,rndo um datagrama de camada d e red e. Este cnto passado para a camada de cnlat.-c, que ( claro!),
adicionar-.! suas prprias inormuc;:es de cabealho e criara um quad ro de camada d e enlace. Assi m, vemos que,
em cada camada, um pacote possui dois ti pos de campos: campos d e cabealho e u m campo de carga til. A carga
lltil Mrmahncntc um pacote da camada acima.
Uml analogia til q lte podemos us.,r aqui o envio de um memorando entre escril rios de um empresa pelo
correio de urna filial corporati\ll'\ a outra. SLtponha que Alice, que est cm uma filial, quclr-.1 enviar um memorando
a Uob, que est na outra ftlial. O memorando re1,resenta uma mensagem da camada de aplicao. Alice coloca o
memorando cm um crwdope de correspondncia interna cm Cl~a face s.:\o escritos o nome e o depana mento de Bob.
O envelope de corrcspondCncia imerna represema o segmento d a camada de .iplicao - contm as informites de
cabealho (o nome de Bob e seu departamento) e encapsula a mens:1gem d e ca mada d e a plicao (o memora ndo).
Quando a central de correspondncia do escritrio emissor recebe o envelope, ele colocado dentro de outro enve-
lope adequado pam envio pelo correio. A cenu-al de correspondencia emissora tambm esc.re\'e o endereo postal do
remetente e d o de:stinalrio no envd ope postal. Neste ponto, o cnvclope postal anlogo ao datagrarna - encap-
su la o segmemo de camada de transporte (o envelope de correspondencia interna), que por sua vez encapsltla a
mensagem origiM I (o memorando). O correio entrega o envelope postal central de correspondncia do escritrio
destinatrio. Nesse local, o processo de reencapsulamento se inicia. ,\ central de corrcspondi!ncio. retira o memo-
rando e o encami nha a Bob. Este, finalmente, abre o envelope e retira o memorando. O processo de.enc-Jpslilamento
pode ser mais complexo do que o descri to acima. Por exemplo, urna mensagem gran de pode ser d ividida em vrios
segmentos de camada de transporte (que tambm podem ser divididos em \<'rios datagramas de camada de rede).
Na extremidade receptora, cada scsmcmo deve ser reconstmfdo a partir dos damgramas que o compem.

1.6 Redes sob ameaa


A lmernet se tornou essencial para muims institu ies hoje, incluindo empresas grandes e pequenas , univer-
sidad es e rgos do governo. Muitas pessoas utmbcm con mm com a lmern et para suas atividades pro lssionais,
sociais e pessoais. Mas a trs de toda essa utlidacle e entus iasmo, existe o lado negro, um lado no qual 'viles"
temam causar problemas em nosso cotidiano danificando nossos compu1ado rcs conectados Internet, violando
nossa privacid;.1de e to mando inoperantes os servios da lnterneLdos quais dc1)cnde111os 1Skoudis, 2006) .
A rea de segurana de rede a brange como esses \'iles podem ameaar as redes d e computadores e como
n6s, fu turos espccialist,IS no asstm to, podemos defender a rede conua essas ameaas ou, melhor ai nda, criar novas
arquitet uras imu nes a tais ameaas cm primeiro lugar. Dadas a frequncia e a variedade das ameaas ex.is1cmcs.
bem como o perigo de novos e mais dcslrulivos fu turos ataq ues, a segurana de rede se to rnou, n:centemcntc,
um assunto principal na rea de red('S de comp utadores. Um dos o bjetivos deste livro trazer as q uestes de
segurana de rede para primeiro plano. Iniciaremos nossa d iscusso sobre red es de computadores nesta se:lo,
com uma b reve descri:io de :tlguns dos a taq ues mais predominan tes e prej udiciais na In ternet de hoje. Ento,
med ida q ue reirararmos em detalhes as diversas tecnologias de redes de compumdores e protocolos nos ca piLulos
seguinles, analisaremos as diversas questes relacionadas segurana associadas a essas tecnologias e proL<><:olos.
final mente, no Capflu lo 8 . munidos com nosso k now-how cm redes ele compu tadores e protocolos da 1,nernel
recm-adquirido, estudaremos a fundo como as redes de computadores podem ser de fendidas contra ameaas, ou
projetadas e operadas para impossibilit-las.
Visto que a inda no temos o know-how em rede de computadores e cm protocolos da Internet, come~"remos
com uma anlise de alguns dos atmlis problemas mais predominantes relacionados segurana. Is to ir aguar
nosso apeti te para mais d iscusses importantes nos capilulos futuros. Come\'llmos com a pergum.a, o que pode
dar errado? Como as redes de computadores so Ergeis? Quais so alguns cios tipos de ameaas mais predom i-
nan tes hoje?
bowot,o4ico.
Redes de compuladores e a Internet

Os viles podem colocar "malwore" e-m seuhospedeiro atravs do Internei


CooccLamos aparelhos Internet porque queremos receber/enviar dados dc/p,ua a llllemct. Isso inclui Lodos
os tipos de recursos vantajosos, como p,\ginas da Web, mensagens de e-mail, MP3. chamadas Lckfnicas, vi.deo
cm tempo real, rcsuliados de mecanismo de busca etc. Porm, inJclizmeme, junto com esses recursos vamajosos
aparecem os maliciosos - conhecidos conjuntamente como malwarc - que tambm podem erurar e infectar
nossos aparelhos. Uma vez que o m:1lware incna nosso aparelho, ele capaz de fazer cois.,s tortuosas. como apa-
gar uossos arquivos; instalar Sp)wa_re que coleta nossas informaes particulares. como nosso nmero de carlo
de cn!dito, senhas e combinao de teclas. e as envia (atravs da Internet, claro!) de volta aos viles. Nosso
hospedeiro compromcclo pode estar. tmnbm, envolvido em tuna rede de milhares de aparelhos comprometidos,
conhecidos como "botnet~, o qual controlado e inOuenciado pelos viles para distribuio de spams ou ataq ues
de recusa de servio dis trib udos (que SCl"lo brevemente dscutidos) cont ra hospedeiros drccionados.
Muitos rnalwarcs existentes hoje s.i o autorreprodutivos: uma ,cz que infecta um hospedeiro, a pnrtir deste, ele
faz a busca por emradas em OLtLros hospedeiros aLravs da Internet, e a parlir de hospedeiros recm-infectados,
ele faz a busca por entrada em mais hospedeiros. Desta maneira, o malware autorreprodutivo pode se disseminar
rapidamente. Por exemplo, o mi mero de aparelhos ineetados pelo worm 2003 Saphirc/Sl:unmer dobrou a cada 8 ,5
segundos nos primeiros minutos aps seLt aLaque. inectando mais de 90 por cento dos hospedeiros rgeis em 10
minutos !Moore, 2003). O malwarc pode se espalhar na forma de v'frus, worms ou cttvalo de Troia [Skoudls, 2004 1.
Os vrus silo m1tlwares qtte necessitam ele tuna interao do usu,lrio para in[ectar seu nparelho. O exemplo clt\ssico
um anexo de e-mail comendo um cdigo executvel malicioso. Se o usurio receber e abrir tal anexo, o malware
ser executado em seu aparelho. Geralmente, tais ,,r,us de e-mail se autorrcproduzem: uma vez ex<.'.cutado, o vrus
pode enviar uma mensagem idntica. com um anexo malicioso idnlico, para, por exemplo, todos os conl;tlos da
lis L.1 de endereos do usmlrio. Worms (como o Slammer) s.\o malwares capazes de entrar cm um aparelho sem
qualquer interao do usurio. Por exemplo. um usurio pode estar executando uma aplicalo de rede frgil para
a qual um atacante pode enviar um malware. Em alguns casos, sem a merveno do usurio, a aplcao pode
aceitar o malware da lmernel e execut-lo, criando um worm. Este, no aparelho 1ecm-inecrado, emo, varre a
Internet cm busca de outros hos pedeiros que estejam executando a mesma aplirno de rede frgil. Ao encontrar
outros hospedeiros frlgeis, ele envia uma cpia de si mesmo para eles. Por fi m, um cavalo de Troia uma pane
oculta de um softw,lre funcional. Hoje, o malware persuasivo e caro para se criar uma proteo. A medida que
trabalhar com este ll\lrO, sugerimos que pense na seguinte questo: O que os projctisrns de compmadores podem
fazer para proteger os aparel hos que u1ilizam a lmernet de ameaas de malware?

Os viles pode otacor servidorese infraestrutura de redes


Um amplo grnpo de amc.,as segurana pode ser dSSilcado como ataques de recusa de servios (DoS).
Como o nome sugere, um ataque DoS torna uma rede, hospedeiro ou outra pane da inraestrulura inuliliz,cl
por us urios verdadeiros. Servidores da Web, de e-mails e DNS (dscutidos no Capimlo 2), e redes instiLUcionais
podem esiar s,tjehos aos ataques DoS. Na Internet, esses ataq ttes so extrem:uneme comuns, com milhares deles
ocorrendo todo ano {Moore, 2001; Mirkovic, 2005). A maioria dos ataques DoS na Internet podem ser divididos
cm Lrs cartcgorias:
Alaque de vulnernbili,lmle. Envolve o envio de mensagens perfeitas a unm aplicao vulner,,cJ ou a um
sistema operacional sendo executado em um hospedeiro direcionado. Se a sequncia corrcl.i.de pacoles
enviada a uma aplicao vuh1enh1el ou a um sislema operacional, o ser\lio pode parar ou, pior. o
hospedei ro pode pifar.
lmmdaclo "" lc1rg11rn ,lc lxmd,i. O aLacante envia um grande nmero de pacotes ao hospedeiro direcio-
nado - tan tos pacoces que o enlace de acesso do alvo se encope, impedindo os pacotes legtimos de
alcanarem o servidor.
f11u11daclo 11a conex,io. O aiacamc estabelece um grande mhncro de conexes TCP semiabcrrns ou aber-
tas (as conexes TCP so discutidas no Capitulo 3) no hospedeiro-alvo. O hospedeiro pode ficar to
atolado com essas conexes falsas que para de aceitar conexes legtimas.
bowot,o4ico.
43
Co pl ulo 1 Redes de com pulodores e o lalernet

Vamos agora explorar mais detalhadamente o aiaque de nundao na largura d e banda. Lembrando de nossa
anlise sobre atraso e perda na seo l.4.2, evidente que se o servidor possui uma ta)(a de acesso R. bps, ento o
:11atante precisar enviar trfego a uma taxa de, aproxi mada mente, R. bps para tausar dano. 5(' R o r muito gmnde,
uma fonLe de ataque n ica pode no ser capaz de gcrnr Lrcgo suficiente para prejudicar o sen ridor. Alm d isso,
se todo o trfego provier de uma fonte nica , um ro teador upstrcam pod e conseguir detectar o alaque e bloquear
todo o trfego da fome antes q ue ele se aproxime do servido r. Em um a rnque DoS d istribudo ( DDoS) , ilustrado
na Figu ra l.25, o ataca111e contro la mhiplas fomes que sobrecarregam o al vo. Com ial abordagem, a mxa de
trfego agregada por todas as fontes controladas prelsa ~ r, :,proi1imadam~1ue, R para lncapadtar o strvlo.
Os ataques ODoS que po1encializam home1s com centenas de hospedeiros comprometidos so uma ocorrnci.i
comum hoje cm dia [Mirkovic, 20051. Os a1aques DDoS so muito mais difceis d e d etectar e de prevenir do que
um .1111quc Dos de u m nico hosp<:deiro

Os viles podem analisar pacotes


Mui los usurios hoje acessam lmcrnet por meio de aparelhos sem lio, como laptops conectados tccnolo
gia Wi-Fi ou npardhos pomlteis com conexes lmcnieLvia 1clefonc celulnr (abordado no Captulo 6). Enquamo
o acesso onipresen te hnc rnet extremamente conveniente e d ispo nibiliza novas apliroes sensacionais aos
us m\ros mveis, d e u1m b_m crfa uma grande vulnerablidade de scgL1rana - posclommdo um receptor pas-
sivo nas proximidades cio Lransmissor sem fio, o receptor pode obter uma cpia d e cada pacote Lrans miticlo!
Esses pacotes podem conter Lodo tipo de informaes conidenciais, incluindo senhas, n mero de inscrio da
prcvidencia social, segredos comerciais e mens agens pessoais. Um recepLor passivo que grava tttna cpia de cada
pacote que passa denominado anallsador de pacote.
Os analisadores tambm podem esta r disll''bltidos em ambientes de conexo com fio. Ne.i;ses ambienies,
como em muitas Eierne t LANs, um analisad or de pacote pode obte r cpias de todos os paco1es enviados pela
l.J\ N. Como dcsc;i10 na Sco l.2, as tecnologias de acesso a cabo 1ambm transmitem pacotes e so, dessa
forma, vulnerveis anlise. Alm disso, um vilo que quer ganhar acesso ao roteador de acesso de uma ins ti-
t ui_"t10 ou enlace d e acesso para a lme m et pod e instalar um analisado r que aa uma cpia de cada pacote q ue
vai para/de a empresa. Os pacotes farejados podem, cnro, ser analisa dos off-line em busca de informaes
confldcnci:\is.
O sotwa re para m1oli.sa r pacotes est d isponvel gr.ituitamente em d iversos sites da In ternet e cm produtos
comerd ais. Professores que ministram um curso d e red es passam exerccios que envolve m a composio de um
programa de recons truo d e dados da camada de aplicao e um programa analisado r d e pacotes.

Atawnte
Zu mbi

Zumbi

Figura 1.25 Um aloque de recuso de servio distribudo (DDoS)


bowot,o4ico.
Redes de compulodo res e o Internet

Como os analisadores de paco1c so passl\lOS - ou seja, eles mlo iniroduzem pacotes no canal - eles so
difccis de deLecLar. Pon anto, quando en\liamos paco1es para um canal sem rio, devem os aceitar a possibilidade
de que algufm possa estar copiando nossos paco1es. Como \IOC de"e ter imaginado, urna das melhores defesas
conlrn a anlise de paco te cnvol"e n criptografia, que ser analisada no C.1pflulo 8, j que se ap lica segurana
de rede.

Os viles podem se passar por algum de sua confiana


Por incrvel que parea, exuemameme fcil (voc saber como conforme ler i:!S te livro!) criar um pacote
com um endereo de fonte arbitrrio, conted o de pacote e um endereo de destino e, en to, transmitir esse
pacote cto mo para a Internet, que, obedientemente, o enc:1mlnhar para seu destno. lm:iglne que um recep
tor inocente (digamos um roteador da Internet) que recebe 1.il pacote, acredita que a fonte (fa lsa) seja con fivel
e ertto e;,,;ecuta um comando integrado aos contctdos do pacote (digamos que modika sua base de enc:amnha-
memo) . A hab ilidade de introduzir pacotes na Interne t com uma fome falsa de endereo con hecida como IP
spoo f1ng, e uma das muitas man eiras pelas quais o usurio pode se passar por ou tro.
Para resoh'cr esse. problema, precisaremos de uma comprovao da fome , ou seja. um mecanismo que uos per-
mitir determinar com ce rteza se uma mensagem se origina de onde pensamos. Mais uma vez, sugerimos que pense
em como sso po<lc ser feito cm aplicaes de rede e prolocolos medida que avana sua leitura pelos capllulos deste
lh'ro. Explorarem os mais mecanismos pam comprovalo da fonte no Oipitulo 8.

Os viles podem alterar ou excluir mensagens


Encerramos esta breve anlise de ataques na rede descrevendo os ataques 111t111,i11-l11e-mi<lclle (homem no
n1eio). Nessa c:.ltegoria de ataques. o vi lao est infiltrado no percurso da comunicacao enuc duas entidades co1m1
nicames. Vamos chamar essas entidades de Alice e Bob, que podem ser seres humanos reais o u enLidadcs ele rede
como dois roL~.tdorcs ou dois scr"idorcs de e-mail. O vill\o pode ser, por exemplo, um roteador co mprometido
no percurso da comunica~io, ou um mdulo de software residente em um cios hospedeiros finais em uma ca mada
lnerlor da pilha de protocolo. No ataque 111crn-l11-1lre-111rcldle, o vi lo no somente possui a possibilidade de analisar
todos os pacotes que passam entre Boh e Alice, como tambm pode introduzir, a lterar ou exclui r pacotes. No
jarg1\o da segurana de rede, um ataque nrcu1-h1-rhc-111iddlc _pode comprometer a integridade dos dados enviados
entre Al ice c Bob. Assim como veremos no Captulo 8, os mecanismos que oferecem sigilo ( proteo contra
anlise) e au1t nLlca.10 da orige m (permitindo que o receptor vciifiquc com ce rLeza o gerado r da mensagem) no
necessariamente oerecem integridade dos d.idos.
Ao cncerrnr es ta se-lo, deve-se co nsiderar como a In ternet se tornou um local inseguro, cm primeiro lugar.
A respos ta resumidamente que a lnLernet foi, a prncipio, cri.ida pan1 ser assim, baseada no mode lo de um
grupo de usut\rios de coniana tmitua ligados :1 uma rede transparente~ 1Blmnenth:ll, 20011- um modelo no
qual (por ddi11i:lo) no h necessidade de segurana, Muitos aspe<:tos ela arquitetura inidal ela Internet reOetem
profundamente es!m noo de confiana mma. Por exemplo, a capacidade de um usurio enviar u m pacote a
qualquer ouLro mais uma falha do que um recurso solictado/concedido, e acredita-se piamem r na identidade
do usurio em vez de ela ser confirmada automatkmnente.
Mas a Internet ele hoje cena mente m\o cnvol.ve uusu:lrios de co nfiana mtua". Comudo, os us u rios
atuais ainda precisa m se co municar mesmo quando no co nfiam um no outro, podem se comuni car anoni-
mamen te, podem se co muni car indirelamcntc atravs de tercei ros ( por exemplo , \Vcb caches. que sert\o
est udados no Capitulo 2. ou agentes mveis para assis1encia, que serao es tudados no Capitulo 6), e podem
d esconla r do hnrdware, software e at mesmo cio ar pdo qual eles se comunicam. Temos agor m uitos
desafios re lacionados ,i segurana perame ns medida que prosseguimos com o livro; devemos procurar
por prote:10 contra a anlise, disfarce da o rigem , ataques rn:m -ln-the,rnlddle, ataques DDoS, malwar e
mais. De"c rnos man ter cm mente que a comunicao entre usmtrios de conlana mLtua mais u rna exceo
do que uma regra.
Seja bem-vindo ao mundo da moderna rede de computadores!
bowot,o4ico.
45
Coptulo 1 Redes de <om putodores e o Internet

1.7 Histria das redes de computadores e do Internet


Da sc;\o 1.1 L, apresentamos um panorama da tecnologia de redes d e computadores e da Internet. Agora,
voc j deve saber o s uficiente para impressionar sua famlia e amigos. Contudo, se realmente qlliser ser o maior
sucesso do prx.irno coquetel, voc deve rechear seu discurso com prolas da fascinante histria d:\ In ternet
[Scgallcr, 1998).

1.7.1 Desenvolvimento do comutao de pacotes: 196 J-1972


Os primeiros passos da d isciplina de redes ele computadores e da lmcrncl podem ser traados desde o inicio
da dcada de 1960, quando n rede telenica era a rede de comunicao dominante no mundo inteiro. Lembre-
-se de que na Sei\o 1.3 dissemos qu~ a rede de telefonia usa cornuta:'lo de circuitos para transm itir infomrn6es
en tre uma origem e um destino - uma escolha acenacla, j que a voz Lransmitcla :.i uma taxa const:.inte entre
a origem e o dest ino. Oad,i a import ..\ncia cada vez maior (e o ai Lo custo) dos computadores no inicio da dcada
de 1960 e o advenLo de computadores com multiprogramao (li111e-sliari11g), nada seria mais nal11ml (agora que
temos uma viso perfeita do passado) do que considerar a questo de como imerligar computadores rmm qlle
pudessem ser compartilhados entre usurios distl'ibuidos em localizaes geogrl'icas diferentes. O trfego gerado
por esses usurios provavelmente era inLermitente, por l'Cy(ulas - perodos de a1ividade, como o envio de um
comando a um computador remoto, seguidos de perodos de inatividade, como espera [)()r uma resposta ou o
cx:1me de uma resposta recebida.
Tr~ grupos de pcsqui53 ao redor do mundo, sem que nenhum tivesse conhecimenLo do trabalho do outro
ILdncr, 1998). comearam a inven tar a comutao de pacotes como uma allcrnativa poderosa e dk icntc de
circuilos. O prillleiro trabalho publicndo sobre 1tcnicas de comuta-,ao de paco1cs foi o de Leonard Kleinrock
!Klcinrock , 1961 , 1964) , que, naquela poca, era um doutoranclo do MIT. Usando a teoria de llas, o trabalho
de Kleinrock clemonstrou, com elegncia, a eficcia da abordagem da com utao de pacotes para fontes de
mifego in1ermitentes (em rajCld<is) . Em 1964, Paul Baran [Baran, 19641. do Rand lnstitute, co meou a investi-
gar a utiliz:,o de comutao de pacotes n:i transmisso segura de voz pelas redes militares, ao mesmo tempo
que Oonald Davics e Roger Scantlebury desenvolviam suas ideias sob re esse assunLo no Nalional Physi<,-al
Laboratory, na Inglaterra.
Os tra}y,ilhos desenvolv idos no MIT, no R,md lnsthute e ,,o Na1ional Physical l..aboralory oram os alicer-
ces do que hoje a Internet. Mas a Internet tambm tern uma longa histria de atitudes do tipo Mconstruir e
demonstrar". que Lamlx<m data do inicio da dtcada de 1960. J. C. R. Licklidcr IDEC, 19901 e l...'\wrcr1ce RoberLs,
ambos colegas de Klenrock no MIT, foram adiante e lideraram o programa ele dncia de computadores na ARPA
(Advanccd Reseurch Projccts Agcncy - Agncia de Projetos de Pesquisa Avanacla) , nos Esmdos Uniclos. Robens
publicou um plano gera l para a ARPAne1 [Robens, 19671, a primeira rede de compmadores por comu1a:lo de
pacotes e tuna ancestral di.reta da lmcrnct pbliet\ ele hoje. Os primeiros coanUL:1dorcs de pacotes eram conhe-
cidos como processadores ele mens.igens de imcracc (i11tcrfa1cc mcSS<1ge proccssors - lMPs), e o contraLo para a
fabricao desses rnmutadores foi enl regue . empresa BBN. Em 1969, no Dia do Trabalho nos Estados Unidos. foi
instalado o primeiro JMP na UCL-\ (Universidade da Califrnia em Los Angeles) sob a superviso de Kleinrock.
Logo em seguida foram ins1.alados trs IMPs adicionais no Stanford Research ln"~titule (SR!) , na Universidade da
Califrnia em Santa Brbara e na Universidade de Utah (Figuro I .26).
O incipiente precursor da lnternel tinha quatro ns no l'inal de 1969. Klei nrock recorda que a primei rssima
utl liza.,o da re<le foi fazer um login remoto emre a UCL.A e o SRI, derrubando o sistema [Kleinrock, 20041.
Em 1972, a ARPAnct tinha aproximadamente 15 ns e foi apresentada publcamc11te pela primeira vez por
Robert Kahn na Conferencia ltHernacional sobre Comunicao por Computadores ( IntenrnLional Concrence
on Computer Commu nications) daquele ano. O primeiro protocolo fim a fim entre sistemas finais ela ARPAnel,
conheciclo como protocolo de controle de re<le (11thvorl:-co11ll'ol protocol - NCP), estava conclu do [RFC 001 J
e a panir de~e momen lo a escrit;i de ,1p1icaes tornollSC pe>~ivel. Em 1972, Ray To1nlinse>n, da RBN, escreveu
o primeiro programa de e-mail.
bowot,o4ico.
46
------ Redes de compu1odores e o Internet

figuro 1.26 Um dos primeiros pr(l(essodores de mensogens de inledoce (IMP) e L Kleinrock (Mark J. Terrill, AP/Wide World Photos)

1.7.2 Redes proprietrios e trabalho em rede: 1972-1980


A ARPAnet Inicial era um rede isolada, fechada. Para se comunicar com unta mquina da ARPAneL, era pre-
ciso estar ligado a um oulro IMP dessa rede. Do incio a meados de l970, surgiram novas redes indepcr1dcmes
dt! comutao de pacotes:
ALOHAneL, uma rede de micro-ondas ligando universidades das ilhas do Havai (Abramson, 1970). bem
como as redes de pacotes por satlile IRFC 8291 e por rdio (Kahn, 1978) da DARPA (Kilhn, 19781;
Telenel, uma rede <.'Omerdal de comuta-:\o de pacotes da IlBN funclamentada na tecnologia ARPAnet;
Cycladcs, uma rede de comuta~i\o ele pacotes pioneira na Frana. momada por L0t1is Po uzin
(Think, 2002) ;
redes de tempo cornpanilhado como a Tyl1met e a rede GE lnformation Services. entre oum1s que
surgiram no final ela dc.ida de 1960 e incio ela dcada de 1970 ISchwan z, 19771:
rede SNA da IBM (1969-1974), cujo trabalho compara,a-se ao da ARPAne1 (Schwartz, 1977).
O nmero de redes csiava crescendo. l loje, com pcreit:i ,is.\o do p,issado, podemos perceber que aquela era
a hora certa p,m1 d~ rwolver 1tma arquitetura abrangente para conectar redes. O lrabalho pioneiro de intcrconc
xo de redes, sob o patrocnlo ela DARPA (Defense Ad,anced Research Projccts Agency - Agncia de Projetos
de Pesquisa Avanada de Defesa), criou cm essncia 11111" rede de rulcs e foi realizado por Vinton Cerf e Robert
Kahn [Cerf, 1974) ; o termo intern elling foi cunhado para descrever esse trabalho.
bowot,o4ico.
47
Coplul o 1 Redes de compulodores e o Inte rnei

Esses princpios de arquitetura foram incorporados ao TCP. As primeiras verses desse protocolo, con-
tudo. emm muito dierentcs do TCP de hoje. Aquelas verses eornbinavam uma entrega sequencial confivel
de dados via retransrnissf10 por sis1cma fi nal (que ainda faz parte do TCP de hoje) com llnes de envio (que
hoje so desempenhadas pelo IP). As primeiras ex~rilncias com o TCP. combinadas com o reconhecimento da
importncia de um servio de tra nsporte fi m a fim no confvel . sem conlrole de luxo, para aplicaes como
voz em pacotes, leval'Jm separai\o entre IP e TCP e ao desenvolvirnenLo cio protocolo UD P. Os Lrs protocolos
undarnemais da Internet que temos hoje - TCP, UDP e IP - estavam conceimalmentc disponveis no final da
Meada de l970.
Alm das pe:squis.'\S sobre a lntcrncL rcaliz.idas pela DARPA, muhas outras atividades importantes relacio-
nadas ao trabalho em rede estavam em curso. No 1-la,J., Norman Abramson cstavii desenvolvendo a ALOHAneL,
uma rede ele pacotes por rdio que permi tia que vrios lugares remotos das ilhas havaianas se comunicassem
cmre si. O ALOHA (Abramsou, 1970) foi o primeiro protocolo de: acesso mltiplo que permitiu que: us urios dis-
tribudos em dicrcrnes localizaes geogrficas compartilhassem um 1\nico meio de cormmica.lo broadcasL(uma
frequncia de rdio). O trabalho de Abramson sobre protocolo ele mltiplo acesso oi aprimorado por Metc:ale e
Boggs com o dcse,wolvimcnLo cio protocolo Ethernet [Mctcalfo. 1976) para redes compartilhadas ele transmisso
broaclcast por fio; \eja a Figura 1.27.
O imercssante que o protocolo Ethernet de Mctcalfo e Boggs foi motivado pela neccssid:1de de conectar
vrios PCs. impressoras e discos compartilhados [Pcrkins. 199'1). H 25 anos, bem antes da revoluo do PC e
dn exploso das redes, Metcalfe e Boggs estavam hrnando as bases para as LANs de PCs de hoje. A tecnologia
Ethernet representou uma etapa importante para o trabalho em redes interconecmdas. Cada rede Ethernet local
era, em si, unm rede, e,~ medida qL1c o nmero de LANs aumentava, a nccessid11dc de mcrconcctar essas redes
foi se tornm,do cada "ez mais importante. Discutiremos detalhadamente a tecuologia Ethernet, ALOHA e oumis
tecnologias de LAN no Captulo 5.

1.7.3 Proliferao de redes: 1980-1990


Ao final da dcada de 1970, aproximadamente 200 mquinas estavam conectadas ARPAnct. Ao fina.l da
d~c-acla de 1980, o nmero de mquinas ligadas lntcmet plblica. uma concdcratio de redes muito parecida
com a Internet ele hoje. alca11aria cem mil. A dcada de 1980 seria uma poca de formidvel crescimento.
Grande parte daquele crescimemo foi consequ~ncia de vrios esforos d is1i111os para criar redes de computa-
dores para interligar universidades. A BITNET processava e-mails e fazia transferncia de arquivos entre diversas
universidades do nordeste dos Estados Unidos. A CSNET (computer scicncc nctwork - rede da dencia de com-

Figura 1.27 Aconcepoorigino! de Metcolfe poro o Ethernet


bowot,o4ico.
Redes de compuladores e a Internet

putadores) fo i formada para interligar pesquisadores de universidades que n.lo 1lnharn acesso :, ARPAnel. Em
1986, foi criad a a NSFNET para prover acesso a cenuos de supcrcompuw --.1.o paLrocinados pela NSF. Panindo de
uma velocidade inicial de 56 kbps, ao final da dcada o backbone da NSFNET estaria funciona nd o a l ,5 Mbps e
servindo como oockbonc primrio para a interligao de redes regionais.
Na com unidade da ARPAne L, j estavam sendo enmixados muitos dos componemcs flnais da arquitetura
da ln1crne1 de hoje. No dia l " de janeiro de 1983, o TCP/IP foi ado1ado o ficialmente como o novo padnlo de
protocolo de mquimL~ pam a ARPAneL (e m SLtbstiLui<,.,\o ao protocolo NCP). Devido impo rwncia do evento, o
dia da 1ransiilo do NCP para o TCP/IP [RFC 801] Oi marcado com amccedncia - a partir daquele di.a todas
as mquinas Li,eram de adotar o TCP/IP. No lnal da dcada de 1980, fo ram agregadas importantes extenses ao
TCP para implcmernao do controle de conges1ionarnerno b.1seado cm hospedeiros Uacobson, 19881. Tambm
foi dese11volvido o sismua de nomes de domitos (DNS) utilizado para mapear nomes da In ternet fceis de
em cnder ( po r exemplo, gaia.cs.umass.edu) para seus end ereos IP de 32 bils fRFC 1034]. Paralelamente ao
desenvolvimemo da ARl'Anet (que em sua maior pane deve-se aos Estados Un idos), no incio da dcada de 1980
os franceses lanaram o projeto Minilcl, um pbno ambicioso p:1rn leva r as redes de dados p:m1 todos os lares.
Pairodnudo pelo gove rno francs, o sistcrllll Minilel consistia cm uma rc<lc pL\blica de conuna;\o de pacotes
(baseada no conjunlo ele protocolos X.25, que usava cLrcui1os virtuais), servidores Minitd e terminais baratos
com modems de baixa vclocdadc embutidos. O Mini Lei LransformOLtse em um enonne sucesso cm 1984, qua ndo
o governo francs forneceu, gr-,nuitamente, um terminal para toda residtncia francesa que q1.1isesse. O s is tema
Minitcl indula sites de livre acesso - como o da lista telenicn - e iambm s ites particulares, que cobravam
uma t.axa de cada usurio baseada no tempo de uti lizao. No seu auge, cm meados de 1990, o Minitcl oferecia
mais de 20 mil servios, que ia m desde homc banking at bancos de dados especializad os para pesquisa. Era
usado por mais de 20 por cento da popula"..iO da Frana, gemva rcceica de mais de um bil ho de d lares por ano
e criou dez mil empregos. Estava presente cm grande parte dos lares ranceses dez anos an les de a maioria dos
nor1c-amcric11nos ouvir falar de Interne!.

1.7.4 Aexploso da Internet o dcada de 1990


A dcada de 1990 cs.Lreou com vrios eventos que smboliz:aram a evoluo contnua e a comercializao imi-
neme da ln Lernet. A ARPAnet, a progenhora da Internet, d eixou de e;-'istir. Durame a dcada de 1980, a MI LNET
e a Defense Dnta Ne1work (Rede de D.idos de Defesa) cresceram e paSS.trnm a c:1rrcgar a maior parte do trncgo
do Departamento de Deresa dos Estndos Unidos a NSFNET comeou a servir como uma rede de backbonc
conectando redes regionais nos Estados Unidos com nacionais no exterio r. Em 1991 , ,t NSFNET extingu[u as
restries que impunha sua utllizao com finalidades comerciais, mas, cm 1995, perderia seu mandato quax1do
o trego de backbone da Internet passou a ser carregado por provedores de servios de Internet.
O principal evento da dcada ele 1990, no entanto. foi o SL1rgi111e11 to da World W icle Web , que levou .1
Internet par.i os la res e as empresas de milhes de pessoas no mundo inteiro. A Web serviu tambm como plala-
orma para a hablhao e a disponibilizao de centenas de novas aplcaes, inclusive negociao de aes e
servios bancrios on-line, servios multimdia cm mupo real e servios de recuperao de informaes. Para um
breve histrico dos primrdios da Web, consulte [W3C, 1995] .
A Web foi ime nlacla no CERN (E uropean Cenler for Nuclear Physics - Centro Europeu para Fsica
Nuclear) por Tim Berners-lec entre 1989 e 1991 (Be m ers-lee, 19891, com base e m iclcias originadas ele trabalhos
anteriores sobre hipenex10 realizados por Bush (Bush, l945 J, na dcada de 1940, e por Ted Nelson (Zi ff-Davis,
1~98) , na dcada de 1960. Bcrncrs-l ee e seus companhei ros dcsenvolvernm verses iniciais de HTML, HTTP,
um servidor para a Web e um browscr - os qLt11uo componentes fundamenta is da Web. Os browsers origi11ais
do CERN ofo.reclam .ll}Cnas uma inte rface de linha de comando. Pe rto do final de l992 havia aproximadamente
200 servido res Web em operao, e esse_ conj umo de servidores era apenas uma amostra do que cs1ava por vi r.
Nessa poca, vrios pesquisadores estavam desenvolvendo browsers da Web com interfaces GUI (grtl/Jl1irnl u.scr
i11ccrfa1ce - interface grfiCTt de Ltsurio), entre eles Marc Andrcessen, que liderou o descnv0Mmen10 cio popu-
lar browscr Mosaic. Em 1994, Marc Andreessen e Ji m Clark formaram a Mosaic Communications, que mais
bowot,o4ico.
49
Coptu lo 1 Redes de <o mpu todores e o Internet

larde se transformou na Nc1Scape. Communicatlons Corporntion ICusumano, 1998; Q ul crner, l 998) . Em 1995,
eswdames unive rsiulrios estavam usando browscrs Mosaic r Nct.scape para navegar na Web diariamemc. Nessa
poca, empresas - grandes e pcquen:1s - comearam a operar servidores Web e a realizar transaes comerciais
pela Web. Em 1996, a Microsoft comeou a fabricar browscrs, dando inicio guerra d os browscrs entre Netscapc
e Mcroso1, vencida pela l tima alguns anos mais Lardc.
A seguncl;i mc1ade da dcada de 1990 foi um perodo d e 1re111endo crescimento e inovao para a lmerne L,
com grandes corpor:,es e milh11res de novas empresas criando produtos e servios par-.i a Internet. O cor-
reio e letrnico pela lmernet (e-mail) continuou a evoluir com leitores ricos em recursos provendo agcndns de
cnclercos, anexos. hot links e mmsporte d e muhimidia. No final do mtenio a lmernel d ava suporte a cemenas
d e aplicai;e.s populares, entre elas quatro de enorme sucesso:

e-mail, incluindo anexos e correio eletrnico corn acesso pela Web;


a Web, incl uindo navegao pela Web e comercio pela lmernet;
servio de mensagem instantnea, com listas de con1a to , cujo pioneiro foi o ICQ;
compartiU1am enLo pecr-to-peer de arquivos MP3, cujo pio neiro foi o Napster.

O intcress..mle que as duas primeiros dessas ap licaes ele suce..c;so a rrasador vier-,un da comunidad e de
pesquisas, ao passo que as du;\S llitnas foram criadm; por ltlguns jovens emprccndcdorcs.
No perodo de 1995 a 2001. a Internet realizou uma ,iagem vertiginosa nos meR-ados financeirC>S. Anles
mesmo de se mostrarem luc r:Hivas, centenas de no\'aS e mpresas d11 lnterncl faz iam s uas ofertas pbliCl\s iniciais
de aes e comeavam a ser negociadas cm bolsas de valores. Muitas empresas eram avaliadas em bilhes de
dlares sem ter nenhu m fl uxo sgnficntivo de recel1a. As aes da lmernel sofreram uma q ueda tambm ve rtigi-
nosa cm 2000-2001, e muitas novas empresas fecharam. No obstante, vrias empresas surgtram como grandes
ve ncedor-JS no mundo d a ln Lemet {mesmo que os preos de suas aecs tivessem sofrido com aquela queda), entre
elas Microsoft, Cisco, Yahoo, e-13ay, Google e Amazon.

1.7.S Desenvolvimentos recentes


A inovao na rea de redes de compmadores continua a passos largos. H progressos em todas as fremes,
incluindo desenvolvimento d e novas aplicaes, dis1ribuio d e come(1do, telefonia por lntemet, veloddades de
1ransmissilo mais altas cm LANs e roteadores 111:1is r-pidos. Mas trS desenvolvimentos merecem aten:10 especial:
a proHfcrnao ele rccles de .icesso de alta velocidade (incluindo .iccsso sem flo) , a segurana e as redes 1'2P.
Como d iscm irnos na Seo 1.2, a peneun,lo cada vez maior do acesso residencial de banda larga Internei
via mocle rn a cabo e DSL rnomo,1 o cenrio para uma pwfuslio de novas aplicaes m\tlfimidia, entre elas voz e
vdeo sobre IP [Skype. 2009] , comparlilharnento de vdeo [Youtube, 2009) e te leviso sobre IP [PPlivc. 2009].
A crescente oniprcscn\'ti de redes Wi-fi pblicas de alta velocidade {l l Mbps e maiores) e de acesso de mdia
vclocidacle (centenas ele kbps) lnlem cl por redes de telefonia celu lar no csl apenas possibilitando conexo
constmue. nHts tambm habili tando um novo conju1110 muilo intcressame de S<'-rvios especficos para localiza-
es delerminadas. Abordaremos redes sem fio e mobilidade no Capitulo 6.
Em seguida a urna srie de :.uaqucs de recusa de servio cm importanlcs servidores Web no inal da dcada
de 1990 e;\ proliferao de alaqu cs de worms (por exemplo, o Blaste r) que ineclam sistemas finais e em perram a
rede com trfego excessivo, a segura na da rede to rnou-se uma ques to extremamem e impor1a mc. Esses a taq ues
resul tara m no desenvolvimento de sistemas de delcco de intruso capazes de preven ir ataques com a111ececln-
cia, na llliliz-ao de firewalls para lilcrar 1rego indesejado an tes que entre na rede. Abordaremos vros tpicos
imponam cs relacionados ;\ seguran.a no Capitulo 8.
A ltima inovay1o que q ueremos desracar so as redes PlP. Uma aplicao de red e P2P e>..-plora os recursos de
computadores de usurios - amiazenagem, contedo, ciclos de CPU e presena humm1a - e 1cm significath'll auto-
nomia cm relao a servidores centrais. A concetividade dos computadores de usurios (isco f , dos pares, ou pecrs)
normalmeme intermitente. H alguns anos, houve diversas histrias de sucesso com o P2P, incluindo o comparlha-
bowot,o4ico.
Redes de compulodores e o Internet

mento de arquivo P2P (Napstcr, Kazaa, Gmuella, cDonkey, Lime Wire e1c.), dstrlbui,Jo de arquivos (BitTorrcm), Voz
sobre LP (Skype) e !PTV (PPLive, ppSm~am). Muitas dessas aplicaes P2P ser.to discmi.d as no Captulo 2.

1.8 Resumo
Neste caplulo, ab<>rdamos uma quanLicladc imensa de a.ssun1os. Examinamos as vrias peas de hardware e
software que compem a lnlcrncl , cm especial, e redes de computadores, cm geral. Comc.imos pela periferia da
rede, examinando sis1emas finais e aplkacs, alm do S<?rvio de mm.s pone fornecido s aplicaes que executam
nos sis1emas i n.liS. Tamlxm vimos as tecnologias de camada de enlace e meio fsico norm:,lrnentc encontrados na
rede de acesso. Em seguida. mergulhamos 110 interior da ri,dc e chegamos ao se u ncleo. idcmificando comutao
de pacotes e comu ta:lo de circuitos como as duas abordagens bsicas do transporte de dados por uma rede de
telecomunicaes, expondo os pomos fortes e fracos de cada uma delas. Examinamos, ento, as partes infcrores
(do poruo de vista da arquitetura) da rede - as tecnologias de camada de enlace e os meios fsicos comume111c
encontrados na rede de acesso. Examinamos tambm a estrutura da lmcrnet global e aprendemos que ela uma
rede de re-des. Vimos que a esutttura hierrquica da Lntcrnct, composta de ISPs de nveis inais altos e mais baixos,
permitiu que ela se expandisse e incl usse milh:ir~ de redes.
Na segunda parte deste caplulo introdulrio, abordamos diversos 16picos fondament.1is da rea de redes de
computadores. PrimciF.uncnte examinamos as causas de atrasos e perdas de pacotes cm uma rede de comutao
de pacotes. Desenvolvemos modelos quamilalivos simples de atrasos de transmisso, de propaga.\o e de Clla; esses
modelos de atrasos sero muito lL'iados nos problemas propostos cm todo o lhro. Em seguida el\':lminamos ca ma -
das de protocolo e modelos de s.ervio, princpios fundamentais de arquitetura de redes aos quais vol1aremos a
nos r eferir ncslc livro. Atrnlisamos rnmbm alguns dos ataques mais comuns na 1nlcrnct a malmente. Terminamos
nossa introduo sobre redes com uma breve histria das redes de computadores. O primeiro captulo constitu i
urn minicurso sobre redes de compuladorcs.
Portanto, percorremos realmente um extraordinri o caminho neste primeiro capflu lol Se voc csliver um
pouco assus tado, 1ttlO se preocupe. Abordaremos todas essas ideias em detalhes nos ca ptulos seguim es ( uma
promessa, e no Lima ameaa!) . Por enquanto, esperamos que, ao encerrar este captu lo, voc tenha adquirido
uma noo, ai nda que incipi ente, das peas que fom1am uma re-de, um domnio ainda em desenvolvimento do
vocab ulr io (no se at"anhe de vo ltar aqu i para consulta) e um desejo lada vez maior de ap render mais sobre
redes. Esta a tarefa que nos espera no restante deste livro.

Oguio deste livro


A11tes de iniciarm os qualquer viagem, sempre bom consultar um guia JYara nos famil iarizar com as estradas
principais e desvios qu e encontraremos pela frente. O de.s1ino final da viagem que es tamos prestes a empreender
um entendimento profundo do como, do qu e do porqu elas redes de co mputadores. Nosso guia a scqu'nda
de captu los des te livro:
1. Redes de comp t1tadores e il Internet
2. Camada de aplicao
3. Camada de transporte
4. Cam:ida de rede
5. Camada de enlace e redes l001is (u\Ns)
6. Sem fio e redes mveis
7. Redes multimdia
8. Seguranll em redes de computadores
9. Gerendamcmo de rede
Os captulos 2 a 5 so os q uatro captulos centrais deste livro. Note que esses captulos esto organizados
segundo as quatro camadas superiores da pilha de cinco camadas de protocolos da Internet, com um capLUlo para
bowot,o4ico.
51
---
(oplu lo 1 Redes de <ompulodores e o Internei

cada e.amada. Note tamb~m que nossa jornada comear no topo da pill1a ele protocolos da Internet, a saber, a
<:amada ele aplicao, e prosseguir dai para baixo. O principio mcional que orienta essa jornada de cima para baixo
que, entendidm; as aplicaes, podemos compreender os servios de rede n ecessri os para dar suporte a elas. Enti:lo,
podcrcrnos examinar, um por um, os vrios modos como esses servios poderiam ser im plcmcniados por uma
arquitetura de rede. Assim. o estudo das aplicaes logo no Incio d,, mo llva.10 para o restante do livro.
A segu nd:1 metade deste livro - capitul os 6 a 9 - aborda qll atro tpicos extrema men te important es (e
d e cena maneira independentes) de redes modernas. No Capf wlo 6, examinamos tecnologia sem fio e mobili-
dade, lncluindo LANs se m fio (Wi-Fi, WiMAX e Bhtctooth) , redes de telefon ia ce lular (GSM) e mobilidade
(nas redes IP e GSM). No C.1 pwlo 7 ( Red es mult imdia). examinamos aplkats de udio e vdeo. como
telefone por In te rnet, videoconernca e recepo de mdia armazenada. Examinamos tambm como uma
rede de comu1a o de paco1es pode ser projetada para prover servio de q ualidade consisten te p;ira ap lica-
es de .\udio e vdeo. No Capitulo 8 (Segu rana cm redes d e computadores) , a nalis amos, primeiramcme, os
fundamentos da criptograia e da seguran a de redes e, em seguida, d e que modo a teoria bsica est send o
apli cada a um amplo leque de contextos dn Internet. No ltimo capflL!lo (Gerenciamento de redes), exami-
namos as questes fundamentais do gerencia mento d e redes, bem como os protocolos primrios da Internet
ut ilizados para esse Om.

Exercciosde fixaco .
Captulo 1Questes de reviso
~o 1.1 8. Che alguns meios isicos milizados para instalar a
EthcrneL
1. Q ual a <liercna entre um hospedeiro e um sistema
9. Modems discados, HFC e ADSL so usados para
lnal? Cite os 11pos de sistemas finais. Um servidor
acesso residencial. Para cada uma dessas tecnolo-
Web ~ um sistema lnal?
gias de acesso, cite uma faixa de taxas de transmis-
2. A palavra prmoeolo muito usada para descrever
so e comeme se a largura de banda compartllhada
relaes diplomticas. De um exemplo de um proLO- ou ded lc:1d:.1..
colo diplon~Llro.
10 . Descreva as tec nologias <lc acesso sem lu mas popu-
lares :11ualmcn tc. Faa uma comparao entre elns.
Seo 1.2
3. O que um programa clieme? O que um programa Seo 1.3
savidor? Um 1>rograml! servidor requisita ~ recebe
11. Qual a \e.!ntagem de un1a rc:de de co mutao de
servios de um programa clieme?
circuitos em relao a uma de comutao ele pacotes?
4. Cite seis tecnologias de acesso. Classifique cada uma Q uais silo as vamage:ns da TOM sobre a FDM em
delas nas cmegorias acesso rcsdcncial, acesso corpo- urna rede de comu1:1ci\o de circuitos?
rativo ott accSSO m,cl.
12. Por que se afirma que a comu1ai;ilo de pacotes
.5. 1\ taxa de tr.tnsmlSSo llfC ~ dcdlmda ou com- emp rega nrnltif)ltxao esta tistic.a? Compare a mul-
partilhada entre usurios? possvel haver colises tiplexao cstatistira com a multiplexao que ocorre
na direo provedor-usurio ele um canal HFC? l"or em TOM.
que!?
13. Suponha que exis1.a exat:.1 mm1c um comu tador de
6. Cite seis tecno logias ele ace&so r~ iclencial disponfvcis pacotes entre um computador di: origem e um
ern sua cidad1:-. Parn cada tipt) de acesso. ,11>rcsen1c a de destino. As taxas de LrnnsmiSSo entre a mquina
taxa clownstrcarn, a taxa ups tream e o preo mensal de origem e o co mmador e cmre este e a mqu ina ele
anunciados. deslno so R, e R~. respecti,,;imcnte. Admit indo que
7. Qual a taxa de trans misso de LANs Elheme1? Para um roLeador use comuia.\o de pacoies cio tipo armtt-
uma dada taxa ele transmisso, cada usurio ela LA N zena e reenvia, qual o atraso total fim a fim para
pode transmitir continuamente a essa taxa? enviar um pacote de comprimemo L? (Desconsidere
bowot,o4ico.
_____
._52 Rede s de compulado res e a Interne t

formao de fila. a traso de propagao e airaso de a . Co nsiderando que nl!o haja n e n hu m outro
processamento). trfcgo na rede, qual a vaz;'lo pam a transfcr:n
14. Qual pri ncipal diforcna que uisting,te ISPs de nlvcl eia de arquivo?
1 e de nhcl 2? b, Supon ha que o arquivo te nha 4 milhes de
Sup on ha que usurios compart ilhem um enl.1cc de bytes. Dividindo o tamanho do arquivo ,,ela
2 Mbps e que c.id:1 usurio tmnsmilil continu:imcntc vazo, quanto tempo lc\'.tr a 1ransfcr<!ncia pam
a I Mbps. mas cad :1 um deles transmite :1pcnas 20 o Hospedeiro B?
por ccmo do tempo. (Veja a discussilo sobre muhi e. Repi la os ilen s a e "b". mas agora com R:
plcxao cstatislica na Seo l.3). reduzido a 100 kbps.
a. Quando a comutac;-Jo de circuitos utilizada, 20. Suponha que o sistema nnal A queira enviar um
quantos us1Jjj rlos podem usar o enlace? arqui"o grande para o sistema B. Em um nvel m uilo
b. Para o restante deste problema. suponha que alto, descreva como o sistemn A cria pacotes a parti r
seja utilizad11 a comu1auo de pacotes. l'or que do arquivo. Quando um desses arquivos chegar ao
n:10 h,wcn atraso de fil~ :mtcs de um cnl:icc se comutador de pacote. quais Info rmaes no pacote
dois ou menos usurios transmi1irem ao mesmo o c<,mu tacle>r utiliza para determinar Q enlace a tm,s
tempo? Por que have r atraso de flfo se trs do qual o paco1c t e ncam inhado? Por que :1 comtlla
usurios tmnsmitircm ao mesmo tempo? :'io ele pacole na lmernet anloga a dirigir ele uma
e. Dc termlne a probabilidade de um dado usurio tidade para outra ped indo informaes ao longo do
estnr lr.'.11\Sl'nitlndo. cmninho?

d . Supon ha agora quo.: haja trs usurios. Determine 2 1. Visilc o app lc1 "Queuing a nel Loss" no Companion
a J)robab ilidncle de , n c1ua lqucr momento, os Webshe. Q ual ~ a taxa de emisso mdxrnn e a wxa
tres usurios transmitirem simultaneamente. de em isso mn ima? Com essas taxas. qual n in1cn-
De.termine n raiio de 1empo durante o qual a sid11de cio trfego? Execute o applct eom essas taxas
ma cresce. e determine o tempo que leva a ocorrencia de uma
perda de paco1e. Repila o proccclirncnto uma scgur, .
da vez e determine novamente o tempo ele ocom!ncia
S~o 1.4
para a perda de pal'Ole. Os resultados so diferentes">
16 . Considere <> ctwio de um pac<>IC de 11m:1 1m\quint1 Por que? Por que 1l:lo?
de origem a uma de destino por uma ro ta fixa.
Relacione os com po nen tes do atraso ciue formam o Seo 1.5
atraso lm a Om. Quais deles so constantes e quas
s.10 v-.iriveis? 1 2. Ci te cinco tarefas que u ma camada 1>0de executar.
possvel qu e u ma (ou mrs) dessas tarefas seja( m)
l 7. Visite o applet "Ttansmissioo vct'$11S Propagation
reallzada(s) por duas (ou mais) camadas?
Delay no Comp::mion \Vchsitc. Entre as taxas,
o a traso de propagao e os tamanhos de pacote 23. Quais sl\o as cinco ca madas da pilha de p romcolo da
dispon iveis, dete rmine uma combinao para a qual Internet? Quais as 1>rlncipais rcsponsablld11des de
o emissor te rmine de lransmitir antes que o primeiro cada uma dessas camadas?
bit do pacote chegue ao rcccplt>r. 24. O que uma mensagem de camada di: a1>lkatLo?
18. Quanto tempo mn pacolc de l.000 bytes leva para Um segmento de camada de transporte? Um data
se propagar atravs de um enl:\ce de 2.500 km de grama de camada de rede? Um quadro de c:intnda
distnc ia, com uma velocidade de pro1>aga'JO de de en lace?
2,5 1o~ m/s e u ma taxa de mmsmisso de 2 Mb ps? 25. Que cantadas da pilha do protoco lo da Internet um
Gera lmente, q u:11110 tempo um pacote de compri rou;ador implementa? Q ue e;imaclas Lllll comutado r
mcnto L leva para se propagar atravs de um enlace ele camada de enlace implementa? Que camadas um
de di s tftncia d, velocidade de propaga-ao s, e taxa sistema ln al implementa?
de mmsm issilo de R h ps? Esse mraso depende do
comprimento do pacote? Esse a1raso depende da Seo 1.6
taxa de transmisso?
19. Suponha que o Hospedeiro A ci ut:irn e1war um 26. Qual a diferena en tre u m vrus, um worm e um
arquivo granclc para o Hospecleiro n. O percurso do cava lo de Troia?
Hospedeiro A para o Hospedeiro 13 possui trs enlaces, 27. Descreva como pode s er criado uma homel e como
de 1axas R1 = 500 kbps, R2 = 2 Mbps, e ~ = l Mbps. ela pode ser utilizada no ataque DDoS.
bowot,o4ico.
53
----
(oplu lo 1 Redes de <ompulodores e o Internei

28. Sup on ha que Alice e Bob es1cjam en viando pacou:s e enviar o que qui~r para Bob: ela 1ambm consegue
um para o oucro a1m"s de uma rede de compum- caprnmr todos os pacoccs cnvl11dos por Sob e cnviM
dores e que Trudy se posicione na rede para que el:i o que quiser para Alice. Cite :ilgumas atitudes m:lli-
consiga capturar todos os pacotes enviados por Alice ciosas que Trudy pode fazer a panir de sua posio.

Problemas
1. Projete e descreva um protoco lo de nfvcl de aplic:a- b. S111)0nha que todas as conexes sejam entre o
,,o para ser usado entre um caixa aucomtico e o comutador do ea n10 supc,-lor esquerdo e o comu ta
compucador ccntr:il de um banco. Esse pr0tocolo dor do canto inferior dirciro. Qual o nmero
dc,c permitir vcri ftct1o do eartfto e da senha de mxno de conexes s imuhncas que 1>0Clcrn esrnr
um usurio, consulta do saldo de sua conta (que cm curso?
maniido no co mpurndor cemral) e saque de dinhei- 4. Considere novamente a analogia do comboio de car-
ro da conta co rrente (isco , entrega ele dinheiro ao ros ela Seo 1.4. Admita uma ,elociclade de 1>ropa
usudrio). As 1:1t1idadcs do 1>roiocolo devem estar ga.10 de 100 l<m/h.
pNpar:idas a r..:solwr o caso comum em <1ue n,\o htl
" Supon ha que o comboio vi.1je L50 km, comec;.1 n-
dinheiro sulcicnLc na coma do usu:lrio parn cobrir do cm freme ao primeiro d os postos de pedgio,
o saque. Faa uma es1iccifteailo de seu pro1ocolo passando ror um seiundo e 1cnt1inando aps um
relacionando as mensagens trocadas e as a<ies reali- terceiro. Qual o atraso fm1 a fim ?
zadas pelo caixa auto nultico ou pelo compu1ador
b. Repita o item 'a' admitindo agora que haja sete
cemral do ba11co na mmsmisso e recepo de men-
carros no cumboio em vez de dez.
S3gcns. Esquematize u operao de seu protocolo
para o caso de um saque simples sem erros, usando 5. E.s1e prob lema clcmcmnr comea a e.,1>lorar atmsos
um diagrama seme lhani e ao da Figura 1.2. Descrcw de prop:igacM e de transmisso, dois concitos cen
explicirnmcmc o q Lte sen pro1ocolo espera d o servio Irais cm redes decomrutadorcs. Considere dois com-
de trnnsponc fim a ftm . puiadores, A e B, conec tados por um nico enlace de
taxa R bps. Suponha c111c esses computado res cslcjam
2. Considere uma aplica.'\o que transmia dados a uma
se1>arados por III melros e que n velocidade de prc,pa
t:1xa constante (1>0 r exemplo, ,Lorigem gera uma uni- ga.lo ao longo do enlace seja de 5 metros/segundo.
dade de dndos ele N bits a cada k un idades ele tempo. O compu1ador r\ tem de envilr um 1>aco te de L bits
onde k pequeno e lxo). Considere tambm que, ao computador 6.
qnando essa aplica,10 come,a, connuar cm un-
" E,-;presse o atraso de propaga~i.o, d~...,, em termos
c ionnmcnto por um perodo ele tempo rdarh-amente
de m e s.
lo ngo. Responda s scgui n1 cs pergunrns. dando uma
breve j ustificati va para suas respos tas: b. Deu:rminc o 1cm1>0 ck 1ronsmissilo do p.1cote,
a. O que seria mJlis apro1>rlado para essa ap llcac;o:
d,,..,. cm 1cnnos ele L e R.
uma rede de comutao ele circuitos ou uma rede e. Ignorando os atrasos de processamento e de fila,
de comu1ao di: pacotes? Por qu? ob1enha uma expresso para o atraso fim a ftm.

b. Suponha que seja usada uma rede de connnao d. Supcmha que o computador A comece a 1ran.s-
de pacotes e que o Mico trfogo dessa rede venha mitir o pal'Ote no insta nte l O. No instante
de :i1>licncs como a descrita anteriormente. t d,,...,,
onde est.i r o himo bit do p:1cote?
Al(!m d isso, admh11 que a somn elas velocidad es e. Supo nha que d,.,.. seja maior cio que 1J.,.,.,. Onde
de dados ela apliC'ao seja me nor do que a capaci- estar o primeiro bit do pacote no inst.intc
dttde de cac.la um dos enlaces. Ser necessrio l d.,,...?
a lgum tipo de controle de congcst ionamcmo? f. Suponha que d"""' seja menor cio que derans.
Por qut? Onde estar:! o primeiro bil do pacote no insmnic
3. Considere a rede ele comu tao de circu itos da l = d,....,.?
Figura 1.12. Lcmb rcse de que M n c:ircuhos cm g. Supo nhas 2,5 . 10, L 10-0 bl1s e R 56 kbps.
cada enlace. Encontre a clist:lncia m de orrn:t que e~,.., seja
a. Qual e o m\mc ro mximo ele co ncx<~ sinml- igual a d,,...,..
tneas que podem estar em curso a qualquer 6. Neste proble ma , consideramos o envio de voz em
instante nessa rede? tempo real do computador A para o computador
bowot,o4ico.
Rede s de compu1 ad ores e a Internei

8 1>or meio de uma rede de comut(lo de pacotes de propagao de ambos enlaces seja 2,5 10' 111/s, as
(VolP). O computador A oonvcrlc voz analgica para lvms de transmisso dos trs enlaces sejam 2 Mbps.
llmn cadeia digital de bits de 64 l<bps e. cm scguidc1, o airaso de 1>rocessamc1110 do comutador de pacote
agrupa os l>i1s cm pacotes <lc 56 bytes. H apenas seja de 3 milissegundos, o comprimemo cio primeiro
L1m enlace emre os compurndorcs A e B; sua 1axa de enlace seja S.000 km. o comprimemo do sci,undo
transmissl'\o ele 2 Mbps e seu atraso <lc propagao, seja 4.000 km e do hlmo seja 1.000 km. Dados esses
de 10 milissegundos. Assirn <1uc o com1>ut~1dor A "alorcs, qual o atraso llm a fim?
reco lhe um pacote, ele o envfa ao computador B, 10. No problema anterior. suponha que R, "'R1 "'R1 "' R
Quando recebe um pacote co111plc10, o com1>utador e d""" O. Suponha que o comutador de pncotc no
O converte os bits do pacote cm um sinal analgico. armazena e en\lia 1>aco1es, mas tran smite imediata
Quanto tempo decorre entre o momento cm que mente cada bl recebido antes de CS(>crar o pacote
um bit cri:tdt1 {a r>artir do sinal analgtco no com- chc,ar. Qu:11 eo atr;UQ fimfim?
;1
pu tador A) e o momcmo cm que ele decodificado 11. Um cm1m1ador de pacote recebe um pacote e deter-
(como pane do sinal analgico no computador B)? mina o enlace de saldo pelo qunl o poco1e deve ser
7. Suponha que usurtos compartilhem um enlace de enviado. Quando o pacoLe chega, um oulro j est
3 Mbr,s e que cada usurio precise de 150 khps paro sendo lntnsmilido nesse enla,e de sada e outros
transmitir, mas que mmsmita apenas durame lO por quatro j estilo esperando p;1ra serem 1ransmitidos.
cento do tempo. (Veja a discusso sobre muhiplc:>:a Os pacotes so transmit idos cm ordem de chegada.
:lq es1,u1s1 ica na Sc<;Jo 1.3.) Suponha q ue todos os pacotes tenham L.500 bytes e
a. Quando e utilizada comutao d1; circuitos, quan- que a 1axa do enlace seja 2 Mbps. Qual o :11raso de
tos usurlos podem ter su1>0rtc?
fila para o 1>aeote? Em um amplo sentido, qual o
atraso de ma quando todos os pacotes possuem com-
b. Supl>nha 11uc haja 120 t11>urios. D1;terrninc a primemo L, o enlace possui uma Laxa de transmisso
probabilidade que. a um tempo dado, ci.11ta R x bits do pacote sendo e1wiado j orarn transmiti-
mente II usurios es tejam 1rans111itindo simulta- dos e N 1>aco1es j esto na fala?
neamen te. (Dica: Use a distribu ii10 binomial.)
12. Suponha que N pacmes cheguem simul1aneamcmc
e. Determine a probabilidade de haver 21 ou mais ,10 enlace no qual no h pacotes sendo transmit i
usu:trios 1ransmi1indo simuhancameme. dos e nem pacotes enfileirados. Cada r,acote 1em l
8. Considere a discusso na Seo 1.3 sobre multiplexa- ele comprimemo e trnnsmhdo laxa R. Qual o
o csta1is1 ica, na qual dado um exemplo com um a1rns() m<:lio p.1 ra os N p,u:otcs?
enh\cc de l Mbps. Quando cm ativdadc, os usu:1rios 13. Considere o atraso de Ilia cm um bufer de rotc.'\dor
es1:10 gcr:mdo dados a uma 1axa de 100 kpbs: mas (antes de um enlace de salda). Suponha que todos os
c1 probabilidaclc de estarem cm atividade, gerando paoote-s tenham 1. bits, que a W..'ll de transmisso seja
dados, de p O,\. Suponha que o enlace de l Mbps de R b1>s e que N pacotes cheguem simultaneamente.
seja substiluldo por um enlace de LGbps. ao buITcr a cada LNIR segundos. Dctem1ine o atraso de
a. Qual o nmero mximo ele usurios, N, que fala mdio para um 11aoo1c. (Dica: o ntmso ele fa la para o
pode ser su1>0nado simuhancamcn1c por comuia- primeiro 1>.1co1e zero: 1>.1rn o segundo pacote, UR; pam
o de pacotes? <> terceiro 1>.1cotc, 2UR. O pacote de ordem N j ter sido
1mnsmi1ido quando o segundo lote de pacotes chegar.)
b. Agora considere cornuta~o de circuitos e ltm
mmcr<> M de usurios. Elabore uma mllll:I (em l4. Considere o atraso de fila cm um buler de roteador.
1ermos de p, ,1.r, N) para a i>robabilidade de que sendo J a intensidade de tr:IJcgo; isto , / "' Lcr/R.
mais de N usudrios estejnm enviando dados. Suponha que o a traso de l'3 tome :i orrn.1 de IUR
(1 1) t>r:t 1 < l.
9. Considere um pacote de comi>rimcmo L que se
inicia no sistema final A e percorre 1rs e11laces at a. Dedu%a uma nnula para o atrn!>o toial, isw ,
um sistema final de destino. Esses trs enalces cst:lo para o a1raso ele fila ma is o atraso de 1mnsmisso.
c;oncctaclos por dois comutadores de pawlcs. Suponha b. faa um gr.ifico do atraso Lo tai como uma un,o
que "~ sj e R, representem o co111primc1110, a veloci- de UR.
dade de propaga.lo e a IM,- a de trnnsmisso do enliitc 15. Sendo a a ta,,;a de pllco1cs que chegnm n llm enlace
i, sendo i 1, 2, 3. O comutador de pacote atrasa cada ein pacotes/s, e a taxa de transmiss.io ele enlaces cm
pacote por d.,.,.. Considerando que nO haja nenhum pacoLes/s. buscndo na rnml.i do atraso total (s to
atraso de lla, cm rc l.iti.o ,i clj, s, e R,. (i 1, 2, 3) e L. , o atraso de fila ma is o atraso de transmisso) do
qual o atraso fim a fim wtal para o p acote? Suponha problema anterior, deduza uma [rmula para o atraso
agora que o pacote tenha 1.500 bytes, a velocidade tota l em relao a a e p .
bowot,o4ico.
Coplu lo 1 Redes de comp ulo.dores e o Inte rn ei
ss

16 . Considere um buffer de roteador antes de um enlace qual a vazo mx ima que ele pode alingir? Se o servi-
de surda. Ncsle problema, voC\": usar:\ a rmula de dor pode usar lodos os M pcrcurws para enviar dados.
Liulc, \tma am()sa fm1u la da leoria das Ilias. xndo qt,al a ,'lW\o mxima que ele pode atingir?
N o numero mdio de pacotes no buffer mais o pacote 21. Considere a Flgum 1. 19 (b). Suponha que cada enlace
sendo Lrans mitido. a a taxa de pacotes que chegam entre o SCl'i<lor e o cliente possua uma probabilidade
110 enlace. e d o atraso total mdio (isto , o atraso de de perda de pacote p. e que as probabilidades de perda
Ilia mais atrnso de transmiss:,o) sofrido pelo pacote. de pacote para esses enlaces sejam inclcpende111c.s.
Dada a frmu la de Liule N : a , ,i , suponha que, na Qual a probabiliuadc de iu11 pnco1e (enviado pdt1
mdia, o bulfor contenha 10 1xico1cs. o atr.\S de Ola servidor) ser recebido com sucesso 1:ielo receptor?
de pacote mdio seja 10 milissegundos e a taxa de Se o p.,cotc se perder no percurso do servidor para
transm isso do enlace seja 100 paemcs/s. Ulilizando o dieme, enufo o senriclor retransmi tir o pacote. Na
tal frmula, qual a tai.':l mdia de chegada ele pacote, m<ldia, quan1as vezes o servidor retransmilinl o pacote
considera ndo que no h perda de pacote? para que o cliente o receba com sucesso?
17. a. Gcn cra lzc a fmm la para o atraso im a im na 12. Considere a Figura 1. 19 (a). Supon ha que o enlace
Se.lo L.4.3 para taxas de processamento, atrasos de de gargalo ao longo do p~rcurso do servidor para o
propagaao 1: taxa de transmiss.lu hcterogi:neus. cl icmc seja o primeiro com a taxa R, hps. Imagine
b. Repita o tem "a", ma5 suponha tambm que haja <1ue e nviamos um par de pacotes um aps o outro do
lllll atraso de nta mdio d,.i., cm cada n. servidor para o clieme, e que no haja nenhum omro
18 . Execute o progr;una Traceroutc para veril'icar a rota tr:lfcgo nesse percurso. Imagi ne tambm que e.ada
entre unrn origem e um dcs1ino, no mesmo conti- 1>acote de tamanho L bits e os dois enlaces tenham o
nente, para trs horrios diferentes do dia. mesmo atraso de propaga:\o <IP'.,.
a. De lcml ine a mdia e o desvio pldrao dos a1rnws a . Qual o tempo entre chegadas ao destino? 1Sl
de ida e volta pnrn cada um dos trs horrios. . quanto tempo transcorre ele quando o tlhimo
b. De termine o n mero de roteadores no caminho hil do primeiro 1mcotc c hega at o ltimo bi Ldo
para cada um dos irs. Os caminhos mudaram cm SCf.tunda pacote chegar?
a lgum elos horrios? b. Agora suponha que o segundo enlace sej a o de
e . Teme idemincar o nmero de redes ISPs pelas gargalo (isco . R, < R.). possvel que o segundo
quais u pacote do T mccroutc passa 4-:nlrc origem pacote e ntre na Ola de entrada do segundo
e destino. Roteadores com nomes scmclhan1cs e/ en lace? Ex r>liquc. ,\go1a lrnaginc qtte o servidor
ou endereos IP semelh ames devem ser consicle- cm~c o segundo pacote T segundos aps enviar
rndos como parte do mesmo ISP. Em suas respos- o primeiro. Q uo grande deve ser T para garamir
1as, os ma iores atrasos ocom:m nas in lerfaces de que no h aja nenhuma fila ames do segundo
forrna,lo de 1>.'lrcs entre tSPs adjaccmcs? en lace? Explique.

d. Faa o mesmo para u ma origem e um destino cm 23. Suponha ,1ue voc queira enviar, ltrgcn ti:_mente, -+O
con1in cntcs d iferentes. Compare os resultados tcmbylcs de dados de 8oslon para Los 1\ngcles. Voc
dentro do mcs1no continente com os rcst1ltados tem dlspon(\lcl um enlace dedicado de 100 Mbps
ent re continentes difere ntes. para transcrncia ele dados. Voe~ escolheria trans-
mhir os dados 1>0r meio desse enlace ou usar o servio
19. Considere o e..xemplo de va:uio corrcspondeme
de entrega 24 horas Feclfa? faplque.
Figltra 1.20 (b). Agora imagine que haja M pares de
cleme-serviclor em vez de 10. R,. R, e R representam 24. Suponha que dois comp utadores, A e B, es1cjam
as taxas do enlace do servidor, enlaces do clicn1c e sepamdos por uma dst:'lncia de 20 mil qui lOmeLrS
enlace da rede. Suponha q ue os outros enlaces pos- e conectados por um en lace direto de R = 2 Mbps.
suam capacidade abundante e que mio haja outro Suponha que a velocidade de propagao pelo cnl:1cc
Lmfcgo na rede alm daquele g1a_rado pelos M pares de seja de 2 ,5. 10~ mc1ros 1>or segundo.
c lic nte-scrvidor. Deduza uma expresso geral para a a. Calcule o produ to largura de banda-atraso
vazo em relao a R,, R,. R e M. R-tl ......
20. Considere a Figura 1.19 (b). Agora suponha que haja b. Considere o en vio de urn itr<1uivo de 800 mil bits
M pcrcul"Sos emre o servidor e o cliente. Nenhum cios cio computador A para o com1>utador B. Supon ha
dois percursos companilham llualquer enlace. O pe r- que o ar<1uivo sejo cm,[udo continnomcmc. como
curso 11 (h 1, ... , ,Vl) consiste cm N enlaces com taxas se OS5C uma llnica grande mensagem. Qua l o
d e uansmisso R~. R~...; R~. Se o servido r pod e usar ntmero mximo de bits que estar no enlace a
somente um percurso para enviar dados ao cliente, qualquer dado instan te?
bowot,o4ico.
Redes de compulodores e o Internet

e. lnu::rprcic o \Jrodu10 largura de banda-atraso. 18. Considere a ana logia da viagem area que utiliza-
d. Qual o comprimenco (em me1ros) de um bit mos cm nossa dlseussn.o sobre C3rnadas na Se,ao
no enlace? ~ maioT do que a ele um campo de 1.7, e a adio de cnbcalhos a unidndes ele dadQS
futebo l? de i>ro tocolo cnquamo passam por sua pilha. Exis1e
uma noo equivalente de adio de informa~cs
e. Derive uma expresso geral para o comprimcn10 de cabc.ilho :1 movimcn1a,lo de passageiros e suas
de um bi1 cm termos dn velocidade de propaga- malas pela pilha de pro1ocolos da linha area?
:lo s, da vc lticidadc de transmisSo R e do com-
19. Em redes modernas de comu1a.lo de p::icotes. a
primemo do enlace m.
mquina de origem segmenta mensagens longas de
25. Com recrencla ao problema 24, suponha que pos- camada de ap licac;.lo (por exemplo. uma imagem
samos modificar R. Para qua l valor de R o compri- ou um arq uivo de msic::i) cm pacotes menores e
mcn10 de 11m hi1 ser o mesmo q11c o comprimemo os envia pela rede. A mquina <lcs1ina1:lria, ento,
do enlace? monta nmamente os pacotes restaurando a mensa-
26. Considere o problema 24. m,1s agora com um cnl,1cc gem origin::il. Denominamos esse processo segme11w-
de R = l Gbps. '11> de mensagem. ,\ Figura 1.2A ilus1ra o 1ransportc
fn a im de uma mensagem com e sem segmenta-
a. Calcule o produ10 largura de banda-a1raso,
o. Considere que umJ mensagem de 8 10" biis
R d l'"'I'.
de cornprlmcnlo lrnh11 de ser enviadn da origem ao
b. Considere o c1wio de um arquivo de 800 mil bits dcs1ino na Figura 1.28. Sui>onha que a velocidnde de
do computador A pnrn o computador B. Suponhn cada enlace dn figura seja 2 }.lbps. Ignore at r:isos ele
que o arquivo seja enviado continuamente, como propaga.lo. de lla e de processamento.
se fosse 11ma unica grande mensagem. Qual senl a . Co nsidere o envio ela mensagem ela origem ao
o numero mximo de bits que cs1ar no enlace a destino sem segmentao. Qunlo tempo essa
<1ualquer dado instnnte? mensagem lev,ml parn ir da mquina de origem
e. Qual o comprimemo (cm metros) <k 11m bit no a1 o primeiro comu1nclor de pncotcs? Tendo
enfacc? cm mente que cnda c:ommnelor usa comutao
27. Novamente com rccrncia ao problema 24. ele t>-'ICOlCS dt> lipo armazcnacri:cnvia, qua l o
tempo totnl para lcvnr a mensagem dn mquina
a . Qunnlo tempo demora pnrn enviar o arqui"o, ele origem mquina de des tino?
ndm i1indo ql1c ele seja cnvinclo continuamente?
b. Agora suponha que a mensagem seja segmcmadn
b. Suponha agora que o arquivo seja rngme,uado cm 4 mil pac01cs, cada um com 2.000 biis de
cm 20 pacotes e que cada pacote comcnha 40 comi>rimcnto. Quanto tempo demorar para o
mil bits. Suponha que cada p.'ICOIC seja verifi- primeiro paco1e ir da m:lc1uinn de origem a1 o
cado pelo receptor e que o tempo de transm isso primeiro commador' Quando o primeiro pac01e
de uma verificao de pacote seja desprc%1vel. es1 sendo enviado do primeiro ao segundo
Flnalmeme, admila que o emissor no poS&t comutador, o segundo pacote esL:l. sendo enviado
enviar um paco te a1 que o ancc.rior 1en ha sido da m:iquina de origem ao primeiro comu1ador.
reconhecido. Qnamo tempo demorar Jl1tr:1 ctwl- Em que insurntc o segundo paco1c tcl' sido com-
ar o arquivo? pletamente recebido no primeiro comutador?
e.. Compare os rcsu llados de a e b'. e. Quamo 1empo demorar:\ pnra movimentar o
Suponha que haja um enlace de microondas de ,1n111ivo da mquina de origem at a mquina de
10 Mbps entre um ~tlilc gcocs1acion:l.ri11 e sua destino quando usada scgmcnt:ti;ilo de mensa-
gem? Compare este rcsuhndo com sua resposta
cstaflo-basc na Tcrm. A c:1da minu10 o s:11Cli1c Lira
na 1>ar1c 'a' e comemc.
unt,'I foto digi1a l e a envia !\ cs1ao-basc. Admila
uma vclocidndc de propagao de 2,4 10' metros d. Discuta as desvan tagens da scgmcnuu;,10 de
por segundo. mensagem.
a. Qual i: o atraso de propaga,.ltl do enlace? 3 0 . Experi mcnlc o applc.t "Mcssage Scgmcnt:.llion arre-
sentado" no si1c Web <leste livro. Os :u rasos no
h. Qual o produto largura de hancla-airaso,
ap1>le1 correspondem aos atrasos ob1iclos no pro-
R dl'f(II>? blema anterior? Como os a1rasos de propagao no
e. Scjn x o 1:imanho da foto. Qual o valor mnimo cnl.icc ac1am o a1raso to1al l"im a im na comutao
de x para que o enlace de micro-ondas transm ita de pacotes (com segme111ao de mensagem) e na
continuamente? comutao de mensagens?
bowot,o4ico.
Coplu lo 1 Redes de compulodores e o laternel
----
Origem Comulildo, Comutador Destino
o. de pa<otes de pa<otes

Figuro 1.28 Troosporte fim ofim de mensagem: o) sem segffiefltoo de men$0Qem; (b) com sei}mentoo de mensogem

3 l. Cor\Siclerc o envio de um arqu ivo grande de F bits do cada e adic iona 80 biis de cabeal ho a cada segmc mo,
computador A para o co rn1>u111.clo r B. H d ois enlaces om1ando pacotes de L = 40 + S b1s. Cada enlt1cc tcrn
(e um comut,td or) cn1rc eles e os enlaces no csi.10 tirm1 Laxu <lc tmnsmlSSi.\o <lc R bps. Qual t o valor <lc S
congcsti<in:idos (isw . t1 i.\o M a1rnsos de fila). O com- que minimiza o a lr3S~) para lcv:1r o arquivo de A para
pu Lado r A fragmcma o arquivo em segmentos ele S bi ls B? Descons idere o atraso de pro11agallo.

Questes dissertalivas
l. Que tipos de servios de telefone celular se m lo 8. Descubra cinco empresas que oferecem servios de
esto disix)nvcis cm s on rcn7 compartilhamento d e arquivos P2P. Cite os tipos de
2. Usando tecno logia de LAN sem no 802.11, ehlbore o art111ivos ( isto . comc1ido) q ue cada cmpn::s.'t processa.
projeto d e uma rede domstica rara s ua casa o u para 9. Quem inve ntou o ICQ, o 1>rimeiro sen io de men-
a casa d e seus 11ais. Relacione os m odelos de produ- sagem instant:'lnca? Quando foi inventado e que
tos cspecilicos para essa rede do mstic.i j untamente idade tinham seus inv1mtorcsl Ql1em inve ntou o
com seus custos. Na1)s1cr? Qua ndo oi inventado e c1uc idade ti nham
3. Descreva os w rvi os Skype PC para PC. Experimente seus inventores?
o scrvico de "fdeo do Skypc PC par-.l PC e relate a 10. Quais so as semelhanas e diferenas e ntre as tecno-
experincia. logias Wi-F e }G de acesso se m fio lmcrne t? Quais
4. O Skype oferece um servico que permite realizar so as taxas d e bits dos d ois servios? Quais so os
c hamadas 1clcfnit11s de um compu1ador pam um cus1os? Discut,1 roaming e a,csso de qualquer lugar.
Ctlmputador comum. Isso s igni1 c.a que a chamada l I. Por que o servio original de companlhamcm o de
de\'e passar pela Internet e pela rede teJefnica. arqu i,o P2P Napstcr d ei xou de exiscir? O que a
Discuta co mo esse processo deve M:r fei w. RIAA e que providoi ncias esl Lomando para limitar o
5. O que Short Me:ssage Service? Em quais pases/ compat11lhamcmo de nn111lvos P2P de contedo p ro-
con1incntcs esse sc rvi co comum? possvel e1wiar tegido por direitos autorais? Qual a di ferena entre
uma me nsagem SMS de um sile Web para um tc.lc- ,,iolao de direitos autorais d ireta e indire ta?
fonc portatil? 12. O que BIITorrcn L? No que de difere de um servio
6. O q ue recepo de vdeo armazenado? Q uais so os de compartilh;um:n Lo d e arquivo P2P. como cDon-
s ites Web mais populares que oferecem esse ser,ico key, UmcWirc ou t<azaa?
hoje? 13. Voe~ ach que daqui a de;: anos red i.:s de compula-
7. O c1uc recepo ele vdeo cm tempo real por P2P? dores ainda compnr1ilh:uao am()lamentc a rqui,os
Quais so os sites Web mais popu lares que oferecem pro tegidos por clireicos a1.Horais1 Por que sim ou por
esse servio hoje? que no? Justifique.
bowot,o4ico.
Rede s de co mpulad ores e a Interne t

Wireshark Lab

con(1H11c e cu csq11eccrci. Mos(rc-mc e .:11 lembrorci. A ferramenta bsic.1 para observar :'5 mcn~gens
fnvolwMnc e ecr cnlcnckr-c." Lrocadas cmre ent idades de pro1oco los cm execuo
Provrbio chinS denominada analls.,dor de pacotes. Como o nome sugere,
A comprcens:lo ele protocolos de rede pode ser muito um analisador de pacotes recebe passivamente mcns.1gcns
mais profun da se os virmos em ao e meragirmos com e1wiadas e recebi das por seu computador; tambm exibe o
eles - obscnando a scquncia de mensagens Lrocadas contedo cios vrios cam1,os de pro t()colo das mens.1gens
cmrc duas cnLidades de protocolo, ll<!squism,do detalhes que captura. Uma te lo do analisador de pacotes Wireshark
de sua operao, fazendo com que e les cxecmem determi- mostrada na Figura 1.29. O Wireshark uni analisa-
nadas a<)cs e observando essas ac;vcs e suas conscquCn- dor de 1x1cotcs gratullo <1uc fonciomt cm compmadores
clas. Isso pode ser feito cm cenrios simulados ou cm u111 com sistemas operacionais Windows. Lin ux/Unix e Mac.
ambiente rc~l de rede, t:tl como a lmcmct. Os applcts Por todo o livro, \IOC encomra r W ireshark labs que o
Jav:i ~,presentados (cm ingles) no silc deste livro adot,un habiliwr.lo a explorar vdrfos dos p rotocolos estudados cm
a primeira aborclagcrn. Nos Wircshark labs adotaremos
cada capf11Jlo. Nes1c p rimeiro Wircsh ark lah, voc ohtenl e
a hima. Voc cxecumr n1>lic:u;ucs de rede cm v,1rios
tnstalar-J. uma c1>ia do p rograma. accssnr um s ite w~b
cenrios utilizando seu compuladcir no escritrio, cm casa
e examinar as mensagens de protoco lo trorndas cmre s.c u
ou em um laboratrio e observar tambm os protocolos
browscr e o servidor Web.
de rede interagindo e trocando mensagens com entidades
de pro1ocolo que est~o cxccumndo cm outros lugares da Voc encomrar de.talhes comp le tos, cm ingls,
Internet. Assim , voc e seu computador sero partes intc sobre este primeiro W ireshark Lab (incluindo instrues
grames desses labor:uri()s ao vivo e vix: observar - e sobre como ob1cr e ins ralar o p rograma) n o site
aprendeT - fazcndQ. www.aw.com/kurose_ hr.

Menu de
comando

~
""""' ltfo

124 4 ,
lU S.J69n

lc29 S,OJ.8419
t6s. H.1 1.n
l28, ll9,24S. U6
16S,19J,U).2U
U8.U9.ZJ.1l6
l6S, l9),l.2J, 218
128, U9,24S,136
KTTP
KTTP
'1TTP
HTTP/1, 1. ll NOYe<I n11~.ir y
ClT /1<W0$trou N~ 1
HrTl'/1,1 302 ""'1.cl T-.ir11y
l.!9 1. 0 16719 128.U9.2~S.U6 161,193,123 , 218 t<t'tP Gtt /kuros ..ross/ KTTP/l , l
1A6 1. 079!-U 16$.19).123. ?U U8. U9. 2 1. 136 KTT (TCP Out-<>f-d~/4,.KfTP/1.1 200 00<
lim19tm 118 S.lSA'73 128 .ll9. 24S.ll6 1.61.10,.1.n . na HTTP GrT j1'urot..,.ou ,,,..,.gif HMP/l.:
159 1.UAMO 128.119,24S,ll6 1.6S, l9l, 12J, 218 >IT'l'P GrT /1(W'os-ross/ ,..tJ1. JP9 ""P/l, 1
de pacotes 212 l , 219770 16S,19J.123,ll8 128. U0.20,136 HT1P HMP/l,1 200 OI< ()PEG JHF laA~)
capturados 214 s. 220261 128,1H.2H.136 161. 193.123.218 HTTP GT /kWOUfM$/Mt 2t. IPIJ HTTP/1.1
222 1.234416 128,119. 2<S. 136 16S,193,lH , 218 KTTP CiT /kW'o,e-ross/paarson. g1f KfTP/1
259 S,JJ.O.J3 l28,ll9,2~S.l36 US, l9J, l.H,U8 HTTP CiT / hvi""1, 1co wrr/l..1
26S 1. 327S2S 161,191, lU. 218 128,U9,241,1J6 KTTP ""1'/1,1 200 OI< (1a~.tKkon)

Detalhes do {
cabi!alho
de pacote
selecionado

Figure 1.29 Umoamostro de tela do f)fogrorm Wir~hork


bowot,o4ico.
r

6~
Jeitrcl l<leinrock professer de cincia da compuloo da Universidade da
Colilrnio em Los Angeles. Em 1969, seu computador no UClA se tornou o primeiro
n6 do Internet. Ele criou O$ prirlCfpios do comutoo de pacotes em 1961, que se
tornou d 8<ll\o\ogio bsico do Internet. leonord tambm presidt!flte e fundador
do Nomolix, I~. umo componhio cujo tecnologia oferece maior o<:e$sibilidode o
servios Je lnrmet bondo lorgo. Ele bacharel em engenharia eltrico pelo City
College of New York (CCNY) e mes.tre e doutor em engenharia e ltrico pelo Instituto
de Tecnologi de Mossochusetls (MIT).

O que o fez se deddir pela especializao em tecnologia de redes/Internet?


Como dou tora nd o do MlT cm 1959, percebi que a maioria dos meus colegas de tunna estava fazendo pesquisas nas
reas de to ria da inforn, ,H;o e dc teoria da codifkaftO. Liavia no MIT o grande ~uisa<lor Omade Shannon, que j
ti nha proposto estudos nessas reas e resol\liclo a maior parte dos problemas importantes. Os problemas que restaram
para pesquisar eram difceis e de menor impc:m ncia. Portanto, decidi propor uma n ova rea na qual at ento nin-
gum tinha pensado. Lembre-se de que no MIT. cu estava cercado de computadores, e era evidente para mim que
brevemente aquelas mquinas 1crfarn dcse comunkar urnas com as oucras. Na poca, nO havia nenhum rnelo eficaz
de fazer isso; portamo, decidi desenvolver a tcc_nologia que permitiria a cria<io de redes de dados cficiemcs.

Qual foi seu primeiro emprego no setor de computao? O que implicava?


Frequentei o curso noturno de gradua em engenharia el1rica da CCNY de 1951 a 1957. Ourante o dia,
trabalhei inicialmente co mo tcnico e depois como engen heiro cm uma pequena empresa de clctr nic.i indus-
trial diamada Photobell. Enquanto 1rabalhava l , introduzi tecnologia digital na linha de produtos da empresa.
Essendalme nte, es tvamos usando eqL1ipamentos fotoeltricos para detenar a presena de cen os itens (caixas,
pessoas etc.) e a utilizao de um circui10 conhecido na poca como mullivibrndor biesrtivel era ex.atameme o tipo
de tecnologia de que precisvamos para levar o processarnen10 digi tal a esse campo da de teco. Acon1ccc que
esses circuitos so os blocos de consmio bs icos dos compu1adores e vieram a ser conhecidos como flif>flol's
ou ,omucadorcs na li nguagem coloquial de hoje.

O que pa5sou por sua cabea quando enviou a primeira men_sagem computador a computador (da UCLA para o
Stonford Research lnslilute)?
fra ncamcm e, cu no fazia a menor dcia da imponilncia daque le acomecimento. Nilo havamos preparado uma
mensagem de significiinc:ia histria, como mui1os criadores do passado o fizeram (Samue l Morse co m "Que obra
foz Deus.~, ou Alexand re Graham Bcll , com ~w:uson, venha c,1! Preciso de voc.", o u Nca l ArmsLrong co m Es te
um pequeno passo para o homem , mas um grand e salto para a hum an idade'' .) Esses caras eram i111elige111csl Eles
en ter1diam d e me ios de comun icao e relaoos p(1blk'S. Nosso objetivo oi nos conectar ao compu1ador do SRl.
En to digitamos a letra L", que foi aceita corrc1amentc, digi1amos a letra wo", que foi aceita, e d epois digiiamos
a letra ~g", que fez o computador hospedeiro pifar! Ento, nossa mensagem acabou sendo curta e, talvez, a mais
proftica de todas, ou seja, Lo! ~, como cm to <111d belwld" (P'1s111e111/ ").
Anterl orn,cntc, naquele mesmo ano, ui citado cm um comunkado de imprensa da UCLA por ter dito que, logo
que a rede cs1ivesse pro 111a e cm funcionamcmto , seria possfvcl 1cr acesso a milidadcs de outros com pu1adorcs
a part ir de nossa casa e escritri o to facilrnerllc qua1110 tnhamos acesso elet ricidade e ao telefone. Por1a1110,

59
bowot,o4ico.
a viso que eLt linha da Internet naquela po<.,1 era que ela Sra onipresente, estaria sempre em funcionamento
e sempre disponvel, que qualquer pessoo que possusse qualquer equipamento poderia se conectar com ela
de qualquer lugar e que ela seria invisr,,el. Mas jamais imaginei que minha me, aos 99 anos de idade, usaria a
l111cmc1 - como ela rC31memc usou!

Em sua opjnio, qual o futuro das redes?


O fcil predizer a infraestrutura por si mesma. Eu antecipo que vemos urna implantao considervel de computa
i\o nmade, aparelhos mveis e espaos imeligcrues. Realmente, a disponibilidade de computao pomt1il, de alto
desempenho, accssfvcl e leve e de aparelho de comunica-Jo (mais a onipresen.l da lnterncl) nos permitiu tornar
nmades.
A computao n made refe re-se tecnologia que permite aos usurios finais, q ue viajam de um lugar p:-arn o
omro, ganhar acesso aos servios ela Internet de maneira transpareme, no imponanclo para onde vo e qual
aparelho possuem ou g,mham acesso. O di cil predizer as aplic.ics e servicos, que nos surpreenderam co11Sis-
tcntcmcn tc de formas dra111:\tiet1S (e-mail. tecnologias de busca, a red e de akance rmmdial, blogs. redes sociais,
gerao de wurios e comparlilhamenlo de msica. Olos, vdeos etc.). Estamos na margem de uma nova calego
ria d e aplicaes mveis, inovadoras e surpreendentes pres.emes em nossos apare lhos portteis.
O passo seguinte vai nos ,-.ipacirnr a sair do mundo misterioso do dbcrcspao para o mundo rsico dos espaos
in Ldigentcs. A lecnologa dar vida a nosS()S ambientes (me-sas, 1x1redes, veculos, relgios e d 111os, entre outros)
por meio ele atuadores. sensores, lgica, processamemo, armazenagem, cmeras. microfones, alto-falantes, painis
e comunicao. Essa tecnologia embutida permitir que nos..,;o ambiente fornea os servios 1P que quisermos.
Quando cu entrar cm uma s.1la, ela saber que cnirei. Poderei me comunicar com meu ambiente naturalmente,
como se estivesse falando o meu idioma nativo; minhas solicitaes gerarllO respostas apresen1ad.is como pgin.is
Web cm p:tintls de parede, por meus culos, por voz, por hologramas e assim por diante.
Analisando um panorama mais longinquo, vejo um U1uro para as redes que inclui componentes undamcntais
que ainda vir.1o. Vejo agcnlcs imcligcn1cs de sotw11rc distribudos por toda a rede cuja tmc-lo t fazer minerao
de dados. agir sobre esses dados. observar 1endtncias e adap tar e realizar tarefas dinamicamente. Vejo trfego
ele rede r.:onsidernvdmen te maio r gerado no tanto por S<res humanos, mas por esses equipamentos embutidos
e agen tes imeligemcs de software. Vejo grandes conjumos de sistemas auto-organizveis cont rolando essa rede
imensa e veloz. Vejo quantidades enormes de informaes zunindo por essa rede instantancamenlc e passando
por extraordinrios processamentos e Ohragens. A Internet ser, essencialmente, um sistema nervoso de presena
global. Vejo tudo isso e mais enquanto en tramos de cabea no sculo XXL

Que pessoos o inspiraram profissionalmente?


Quem mais me inspirou foi Claude Shannon, do MIT, um brilhante pesquisador que Linha a ca pacidade d e
relacionar suas ideias malemticas com o mundo fsico de modo mui lssimo inltttivo. Ele fazia parte da banca
examinadora de minha tese d e doutorado.

Voc pode dar algum conselho aos esrudantes que esto ingressando no rea de redes/ Internet?
A Internet, e tudo o que ela habilita, uma vasta fronleira nova, cheia ele desafios surpreendentes. 1-l espao
para grandes inovaes. No fiquem limil,1dos tecnologia existente hoje. Soltem sua imaginao e pensem no
que poderia aco rucccr e transformem isso cm realidade.
bowot,o4ico.

Camada de aplicao

plicacs so a rnzo de ser de uma rede de computadores. Se no foss1:: possvel invent ar aplicaes

A teis, n:lo haveria necessidade de projetar protocolos de mie para suporn\-las. Nos lltimos 40 :mos,
foram criadas numerosas aplicaes de rede engenh osas e marmd lhosas. Emre elas esto as aplicaes
clssicas de tex to, que se tornaram populares na dcada de 1970 e 1980: correio eletr nico, acesso a computa
dores remotos. Lr.lnsfcri!ncia de arquivo, grupos de discusso e bale-papo e tambm uma aplicao que alcanou
estrondoso sucesso em meados da dcada de 1990: a World Widc Web. abrangendo navegao na Web, busca e o
comrcio eletrnico. DtU\S aplicaes de enorme sucesso tambm surgiram no final do mi lnio - mensagem lns-
tantfinea com lista de amigos e com panilh:amemo P2P de arquh,os, assim como muitas aplicaes de udio e video,
incluindo a telefonia por lmernet, lransmisso e companilhamento de vdeo, rdio via Intern et e televiso sobre o
protocolo (P (IPTV). Alm disso, a pene1ra.10 eresceme de acesso residencial banda h1rga e a onipresena de acesso
sem fio es1:10 prcparanclo o terreno para aplcacs mais modernas e interessantes no fu turo.
Nes te capitulo csm damos os aspcct0s co nceituais e de implementao de aplicaes de rede. Comeamos
definindo e-0nceitos fundamentais de camada de aplicao, incl uindo servios de rede exigidos por aplicaes,
clientes e servidores. processos e interfaces de canrncl.i ele transporte. Ex,1min.in1os detalhadamente vrias aplica-
es de rede, entre elas a Web, e-mail, DNS. compar1J lhamc11to de arquivos P2P e teltonia por lnLernct P2P.
Em seguida, abordamos desenvolvimento ele .iplicao de rede por TCP e tambm por UDP. Em panicular,
csLudamos o API socket e examinamos algumas a plicaes cliente-servidor s imples em Java. Aprese ntamos tam-
bfm vr ios exe refcio-s divertidos e interessantes de progrnma,lo de apli ~cs no ln.11 do captulo.
A camada de aplicao llm lugar parlicularmcme bom para inidam1os o est udo de protocolos. tene no
familiar, pois conhecemos muhas das aplicaes que dependem dos protocolos que estudaremos. Ela nos dar
uma boa ideia do que so protocolos e nos apresen tar muitos assuntos que cncontrnrc mos novamente quando
es tudarmos protocolos de camadas de tra nsporte, de rede e de enlace,

2.1 Princpios de aplicaes de rede


S uponha que voc tenha uma grnude ideia pa ra uma nova aplicao de rede. Essa ap lica-Jo ser, talvez, um
gra nde servio para a humanidade, ou agradar a se u professor, ou far de voc um homem (o u mulher) rico(a),
ou simplesmente ser diverlido desenvolv-la. Seja qual for sua motivao, vamos examimu agora como trans-
formar a ideia em u ma aplicao ci o mundo rea l.
bowot,o4ico.
Redes de compuladores e a Internet

O cerne do desenvolvimento de aplkao de rede escre,er programas que rodem cm sislem,\s finais die-
remcs e se comuniquem entre si pela rede. Por exemplo. na aplca.10 Web h dois program,ts distintos que se
comunicam mn com o outro: o programa do browser, que roda na mquina do usurio (computador de mesa,
laptop, PDA, telefone celular e assim por diarue); e o programa do servidor Web, que roda na mquina do ser-
vidor Web. Outro exemplo um sistema de comparLilharnerllo de arquivos P2P no qual h um programa em
cacla mquina que panicip.1 d:t comunidade de companilhamcnto de arquivos. Nesse caso, os programa.s de cada
mquina podem ser semelhantes ou idCnticos.
Pommto, ao desenvolver sua nova aplicao, voc precisar escrever um software que rode em v:lrios sistemas
finais. Esse software poderia ser criado, por exemplo, cm C, Java ou Python. l.mponantc: voct no precisar escrever
programas que executem nos elementos do mclco de rede, como roteadores e switchcs. Mesmo se quisesse. voei! n,\o
poderia escre\cr programas para esses elementos. Como aprendemos no Capftulo I e: most.rmnos na Figura 1.24 , equi-
pamemos de ncleo de rede m\o funcionam na camada de aplica1;o, mas em camadas mais baixas, cspecificameme na
ele rede e abaixo dela. Esse projelo bsico -a saber, confinar o soLw.ire de aplica.lo nos sistemas inais, como mostra
,, Figura 2.l. facilitou o clescnvolvimenLo e a prolifera.,o rpidos de uma vasta g.1111a de aplicaes de Internet.

2.1.1 Arquiteturas de aplicao de rede


Antes de mergulhar na codificao do software, voc dever elaborar um plano geral para a arquitetura da
sua aplicao. Tenha sempre em memc que a arquitcLUra de uma aplicao distimamente difere nte da arquite-
tura ele rede (por exemplo, a arqui1etura cm cinco camadas ela Internet que discmimos no Capitulo l). Do ponto
de vista do profissional que desenvolve a aplicao, a arquimura de rede fix-a e prov um conjunto especifico
de servi\'OS s aplie3cs. Por outro lado. a arquitetura da aplicao projetada pelo desenvolvedor e determina
como a aplicao organiz:ada nos vrios sistemas finais. Ao escolher~\ arquitetura da aplica,Jo, o desenvolvedor
prova,elmente aprovcilar uma das duas arquiteluras mais mlizadas em aplicaes modernas de rede: a arqui-
tetura dientc-scr,1idor ou a arquiteuu.i P2P.
Em uma arquitetura clientcscrvidor h um hospedeiro sempre em funconamento, denominado se,v i,lor, que
atende a requisi<_'es de muitos ouLros hospedeiros, clenominaclos clienles. Estes podem estar em uncionamento s
vezes ou sempre. Um exemplo clssico a aplcao Wtb na qual Lun servidor Web que est sempre em funciona-
mento alende a requisies de browscrs de hospedeiros clientes. Quando recebe uma requisi.lo de um objeto de
um hospedeiro clien1e, um servidor Web responde enviando o objeto requisitado a ele. Observe que, .na arquitetura
clcnte-servidor, os demes no se comunicam diretamente uns com os outros; por exemplo, na aplicao \-Veb, clos
browsers no se comunicam dirernmente. Outra caracterfs1ica da arquitetura cliente-servidor que o servidor 1em
um endereo fixo, ben1 conhecido, denominado endercr;o IP (que discutiremos em breve). Devido a essa caracle
rfstica do servidor e devido ao fato de ele estar sempre em funcionamento. um ditntc sempre pode contat-lo.
envlando um pacote ao endereo do servidor. Algumas das aplicaes mais conhecidas que empregam a arqulteturo
clieme-servidor silo Web, FTP, Telne1 e e-mail. Essa arquitetura cliente-servidor mostrada na Figura 2.2(u).
Em aplkacs cliente-servidor, muitas vezes acontece de um nico hospedeiro servidor ser incapaz ele aten-
der a iodas as requisies de seus clientes. Por exemplo. Lun site Web popular pode ficar rapidamente s:uurado
se tiver apcnns um senidor para atender n iodas as requisies. Por essa raz.o, um grande conjunto de hospe-
dei ros - s vezes coletivamente chamado data a nrcr- requenlemcnte usado para criar um servidor virtual
poderoso em nrquileturas cliente-servidor. Os servios de aplica,-;io baseados na arquitetura clienu:-servidor sM
geralmente de inmcsmHurn intensiva, uma vez que rcqLtercm que os pro"cclorcs de servio comprem, instalem
e preservem o serverfann. Alm disso, os provedores de servio devem pagar as despesas de interconexo recor-
remc e largura ele banda para enviar e receber dados para e da Internet. Servios populares como mecanismos de
busca (por exemplo, o Google), comfrcio via Internet (por exemplo, Amazon e c-Bay). e-mail ~scado na Web
(por exemplo, Yahoo Mail), rede social (por exemplo, M}'Spacc e Facebook) e compartilhamento de v!dco (por
exemplo, YouTubc) exigem muita inraestrulura e s;c\o de fornecimento dispe ndioso.
Em umn arquitetura P2P, h uma confiana mnimn (ou nenhumn) nos servidores sempre em fun-
cionamento. Em vez disso, a aplicao utilizn a comunicao direta entre pares de hospedeiros conectados
bowot,o4ico.
_........................................................................................___
Coplulo 2
-------
Cornada de oplicoo

Aplko~.lo
ll'anspone
Rede
Enlace
fsica

ISP Nacional
ou Global
Rede
mvel

Rede domstica

r Apllujo
Transpo<tC!
Rede
Enlace
Transpo<te
Fisca
RedQ

Rede corporativa Enlace


Fsica

Figura 2.1 Acomunico~o de umo oplicoo de tede ocone enhe sistemas finais no comodo de oplico{o

a ltemadameme, denominados pares. Os pmes no so de propriedade dos provedores de servio, mas so


con trolados por usurios de compt11adores de mesa e laptops. sendo que a maioria dos pares se aloja cm
residncias, universidades e escritrios. Como os pares se comunitam sem passar por ner1hum servidor
dedicado, a arqui1ewra denominada par-a-par (par-to-par - P2P) . Mu1as das aplica!"s ele hoje mais
populares e de intenso trfego so baseadas nas arquiteturas P2P. incluindo distribuio de arqiLivos (por
exemplo, BitTorrent), compartllrnmento de arquivo (por exemplo, eM ulc e UmeWire), telefonia por
Internet (por exemplo, Skype) e IPTV (por exemplo, PPLve). Essa arquitentra est ilustrada na Figura 2,2
(b). Mencionamos que algumas aplicaes possuem arquiteturas hbridas, combinando elementos cliente-
-servidor e P2P. Por exemplo, para muitas aplicaes de mensagem instantnea. os servidores costumam
bowot,o4ico.
Redes de compu1ado,es e a lnleroet

(al Arquitetura clente-se<vidor


(b) arquitetura P2P

Figura 2.2 (o) Alquiteturo cfiente-servidor; (b) orqu~eluro P2P

rast rear o e ndereo lP cios usurios, mas as mensagens de usurio para usurio so enviadas diretamenLe
e nlre os hospedeiros do usurio (sem passar por sen idores intermedirios). Uma das carncterfsticas mais
fortes da arquitetura P2P sua autoc-ScalabLliclacle. Por exemplo, cm uma aplicao de compartilhamento de
arquivo P2P, e mbora cada par gere uma c.-arga ele trabalho solicitando arquivos, c.-ada par tambm acrescenta
capacidade de servio ao sistema dislribuindo arqui\lOS a o utros pares. As arqu iteturas P2P tambm possuem
uma boa rclac;o cns10-bcncicio, visto que normal mcme no requerem uma infracstruwra de servidor signi-
ficativa e uma largura de bancla de servidor. A fim de reduzir os custos, os provedores de servio (MSN,
Yahoo e tc.) esto cada vez mais nleressados em utilizar a rquiteturas P2P para suas apl icaes [Clrnang.
2007). En tretam o, as futuras aplicaes P2P esto diante de trs principais d esa'ios:
l. 1SP Amigvel. A maioria dos ISPs rcsidcnci.1is (ineluindo o DSL e os ISPs cabo) foram dimensionados
para LISO ele la rgu ra ele lxmda assi mtrica, ou seja, para muito mas trfego de entrada do que de sada.
M:1s a transmissdo de vdeo P2P e as a1>lim\es de distrib uio de vdeo Lrans fcrem o trfego ele sada
dos servidores para ISPs residenciais, colocando, assim , uma presso significaliva n os ISPs. 1\ s futuras
aplicaes P2P precisam ser criadas para que sejam .imigvcis aos ISPs [Xic. 2008].
2. Seg111t1na. Em razo de sua natureza altamente distribuda e exposta, as aplicaes P2P podem ser um
desafio para proteger (Doucer, 2002; Yu, 2006; Liang, 2006; Naoumov, 2006: Dhtmgel, 20081.
3. Incenti vos. O sucesso das futuras aplicaes P2P tambtm depende de usurios participativos para ofore-
ccr l.argura de banda, armazenamento e recursos da computao s apllcacs, Ltrn projeto desafiador de
incentivo (Feldman , 2005; Piiuek, 2008: Aperjis, 20081.

2.1.2 Comunicao entre processos


Ames de construir sua aplicao de rede, voc tambm precisar ter um entendimenlo bsico de
como programas q ue rodam em vrios sistemas fina is comunicam-se entre si. No j argo de sistemas
bowot,o4ico.
65
Captulo 2 Cornada de apl ico!O

operacionais, na verdade no so programas, ma.s processos que se comunicam. Um processo pode


ser imaginado como um programa q ue est rodando d e ntro de um sistema fina l. Quando os processos
esLi\o rodando no mesmo siste ma final . e les comunicam-se entre s i usando comun ica.io interproccs-
sos. cujas regras so dete rminadas pelo s istenrn operaciona l d o s is tema iMl. Por m. neste livro, no
estamos interessados cm como se comunicam processos que esto no mesmo hospedeiro, mas cm como
se comunicam processos que rodam em s istemas finais difere11l es (com sistemas operaciona is potencial-
mente d iferentes).
Eles se comunicam pela troca de mcns:igens por meio da rede de computadores. Um processo originador cria
e e nvia mcnsage,is para a rede; um processo dcstn;it.frlo recebe-as e possivelmente rcspor1de, devolve ndo outras.
A Figu ra 2. 1 mostra que processos se comunicam usando a camada d e aplicao da pilha de cinco camadas da
arquitetura.

Processos clientes e processos servidores


Uma aplica~-o de rede consiste em pares de processos que enviam mensagens u ns para os outros por meio de
uma rede. Por exemplo, na aplicao Web, o processo browser de urn cliente troca mensagens com o processo de
um servidor Web. Em um sistema de compartilhamento de ,1rqulvos P2P, um arquivo transferido de um proces-
so que est em um par parn outro que estd em outro par. Para cada par de processos comunicantes normalme111e
rotulamos urn dos do is processos de cliente e o outro, de servidor. Na Web, um browser urn processo cliente
e um servidor Web tum processo servidor. No comparlilhamento de arquivos P2P, o par que esl,t enviando o
arquivo t ro tulado de clierue e o que es t rece_bcndo, de servidor.
Talvez vocf j,\ tenha observado que, em algumas aplicaes, tal como compartilhamento de arquivos P2P,
um processo pode ser ambos, clicme e servidor. Realmemc, um processo cm um sistema de compartilhamclllo
d e arquivos P2P pode carregar e descarregar a rqui vos. Mesmo assim. 110 comexto de qualquer dada sesso enire
um par d e processos, ainda podemos rolular um processo de cliente e o outro de servidor. Definimos os processos
d ie111c e seniiclor como segue:

No co111ex10 de 1rn1<1 scssllo de co,mmica,10 emrc um JJar de proctsSos, o procc.sso que irticicr <1
comrmi(cr(<10 (isto , o primeiro a co11w1ar outro no i11tdo da seSSdo) rotulado clr dienle. O
pl'octsso c111e cspcrn ser conl<1t(l(Jo ,u1rn inicicir < sessclo lo servidor.

Na Web, um processo cio browser inicia o contato com um processo d o servidor Web: por conseguinte.
o p rocesso do browser o cliente e o processo do servdor Web o sen ,ido r. No compartlhamento de arq ui-
vos P2P, quando o Par A solic ita ao Par B o en vio de um arquivo especfico, o Par A o cliente enquanto o
Par B o servidor no contexto d essa sesso especfica de comunicao. Q uando no houver possibilidade
de confos.10. s vezes usaremos lambm a terminologia ~lado cl iente e lado servidor de uma aplicao~. No
final deste captulo examinaremos passo a passo um cdigo simples para ambos os lados de aplicaes de
red e: o lado cliente e o lado servidor.

Ainterface entre o processo e a rede de compuladores


Como dissemos an teri ormente, a maioria das aplicaes consiste em pares ele processos comunicantes,
sendo que os dois processos de cada par enviam mensagens um para o o utro. Qualquer mensagem e nviada
d e um processo para um outro tem de passar pela rede subjace nte. Um processo e nvia mensagens para a
recle e recebe mensage ns dela atravs de uma imerface ele sotwarc denominada socket. Vamos considerar
uma analogia que nos auxiliar a ente nder processos e sockets. Um processo an logo a uma cas :1 e seu
socket, porta da casa. Quando um processo quer e_nviar uma me nsagem a um out ro processo em outro
hospedeiro, d e empurm a mensagem pela pona (socket). Esse_ processo emissor admite q ue exis ta urna
infmestrutum de transpo rte do o utro lado de sua porta que tmnsponar a mensagem ~la rede att a porta d o
processo destinatrio. Ao chegar ao hospedeiro destinatrio. a mensagem passa atravs da porta (socket)
do processo receptor, que ento executa alguma ao sobre a mensagem.
bowot,o4ico.
66
------ Redes de compuladores e a Internet

A Flgura 2.3 ilusll'a a comunicao por socket en1re dos processos que se comunlcrun pela lnterneL.
(A Figura 2.3 admite que o protocolo de transporte su bjacente usado pelos processos o TCP.) Como mostra
essa figur-.i, um socket a interface entre a camada ele aplicao e a de t ransporte den tro de. uma mquina. E
tambm denominado lmcrfac-e de programa-lo da aplicailo (a11plicmioi1pYogrn111mil18 iute,face - API) e,ure a
aplicao e a rede, visto que o so-cket a interface ele programao pela qual as aplicaes de rede so inseridas
na Jn1ernet. O clcscnvolvedor da .tplieao conuola tudo o que existe no lado da camada de aplicaco do sockel,
mas tem pouco conlrole do lado da camada de mmsporte do sockel. Os nicos contro les que o desenvolvedor
do. aplknc;M tem do lado da camada d e unnsportc so: (l) a escolha d o protocolo de tmnsporte e (2), talvez, a
capacidade de determinar alguns parmetros da camada d e 1ransporte, tais como tam;rnho mximo de buffcr e
de segmcmos (a serem abo rdados no Capflulo 3). Uma vez escolhido um protocolo de mmsporte, (se houver
escolha) o desenvolved or constri a aplicao usando os servios da camada de Lmnsportc oferecidos por esse
prolocolo. Examinaremos sockets mais detalhadamente nas sees 2.7 e 2.8.

2.1.3 Servios de transporte disponveis para aplicaes


Lembre-se ele q ue um socke1 n irnerface enlrc o processo dil aplicao e o pro1ocolo de camada de 1rans-
por1e. A 11plkt1o do lado remc1cntc covia mens..1gcns atr.ws do socket. Do ou1ro lado do socke1, o pro1ocolo de
<.-amada de 1ranspor1e tem ;1 res ponsabilidade de levar as mensagens pela red e a t a "porta~ do socket destinalrio.
MuitaS redes, inclusive a lntcrnc1, oferecem mais d e um protocolo d e camada de transporte. 1\ 0 desenvolver uma
aplicao, voc deve escolher um dos protocolos de camada de transporte d sponvcis. Como fn2cr essa escolha?
O mais provvel que voc avalie os servios providos pelos protocolos ele cmnada ele t mnsporte dspon,eis e
escolha o protocolo que melhor atenda s necessidades de s1,1a aplicao. A situao semelhante a escolher trem
O\! avi.lo como meio dr 1ransportc en1 re duas cidades. Voe~ 1cm d e escolher u m ou omro, e cada 1nodaldade de
1ransporte oferece servios diferentes. Por exemplo, o trem oferece a facilidade da panida e ela chegada no centro
da cidade, ;.10 passo que o avio oferece menor tempo de viagem.
Quais s.1o os servios que um pro loco lo da ta macia de t ransporle pode oferecer s aplicaes que o chamem?
Podemos classincar, de maneira geral, os possveis servios segundo quatro dimenses: Lmnsfcrt'ncia confivel de
dados, vazo, temporiza1,,"o e segurana.

Transferncia rnnfivel de dados


Como discu1iclo no Capmlo 1, os pacotes podem se perder dentro de urna rede de compumdor. Um pacote
pode, por exemplo, exceder um bufer em um rotead or, ou ser d escartado por um hospedeiro ou um ro teador

Ho~pedeiro Hospedeiro
ou seNk!or ou servidor

Controlado pe lo - - - Controlado pelo


desenvolvedor dese nvotvcdor
da aplica~o da ap licaao

Controlado - -+ T('P com TCPcom Controlado


pelo sistema buff<!<S, buffers, pelo sistema
operaciona 1 variveis variveis operacional
lntemet

Figura 2.3 Processos de aplicao, sockels e protocolode lransparle subjacente


bowot,o4ico.
67
Coplulo 2
-------
Cornada de aplicoso

aps algu ns ele seus bits terc_m sido corrompidos. Para muitas aplicaes- como correio eletrnico, transferncia
de arquivo, acesso remoto, tranferc?ncias de documentos da Web e aplicaes financeiras - a perda dedados pode
ter consequncias dcvasrndoras (no ltimo caso, para o banco e para o cliente!). Assim, para supo rtar essas apli
c-.tcs, algo deve ser feito p,1ra garantir que os dados enviados por uma extremidade da lplicaeo sejam cnvi:,dos
correia e comp leta mente para a ou tra extremidade da aplica.-'lo. Se u m protocolo fornecer um servio de rece-
bimento de dados garam idos, ele fornecer uma transferncia conf'i,e l de dados. Um importante servio q ue o
protocolo da camada d e transporte pode oferecer pal'll uma aplicao a transferncia con lvel de dados processo
a processo. Quando um protocolo M transpc,ne oforece esse servio, o processo rerMtente pode passar seus dados
para um soc ket e saber com absoluta conf'iana que os dados chegar-o sem erro ao processo destinatrio.
Quando u m protocolo da camada de transporte n:10 oferece uma transferncia confivel de dados, os dados
emriados pelo processo remetente podem nu nca chegar ao processo dest ina1rio. Isso pode ser aceitvel para apli-
caes tolerantes a perda, aplcaes de muh imdia como udio/vdeo cm tempo real ou udio/,,dco armazenado,
que podem tolerar uma quantidade de perda de dados. Nessas aplic.-1es multimdia, dados perdidos podem
resul ta r cm uma pequena fal ha d urMlC a execuo do udio/vdeo - o que no um prej u zo crucial.

Vazo
No C:iptulo l apresentamos o conceito de v:1.zo disponvel, que, no contexto de sesso da co rnunica."io
ent re dois processos ao longo de um caminho de rede, a taxa qua l o processo remeten te pode e1wiar bits ao
processo destinat ri o. Como Olllms sesses eompnilhr.10 a largur-., de b.,nda no cami nho da rede e es to indo e
voltando, a vazo dispon vel pode oscilar com o tempo. Essas observaes levam a out ro servio nawral q ue um
pro tocolo da camada de transporte pode oferecer, ou seja, u ma vazo disponvel garanti da a uma taxa especifica.
Com tiil servio, a aplicao pode solicitar uma vaz:ilo garantida der bils/s, e o protocolo de transporte garante,
ento, que a vazo disponvel seja semp re r bil.S/s, pelo menos. Tal servio de vazo garantida aparece cm muitas
aplicaes.
Por exe mplo, se uma aplicao de teleonia por Internet codifica voz a 32 bits/s, ela prcds.'\ enviar daclos para
a rede e faze r com que sejam en tregues na aplicao receptora a essa mesma taxa. Se o protocolo de 1ranspone
no pi1der fornecer es~ vazJ\o, a aplicao precisar codificar a uma 1axa menor (e receber vazo suficiente para
sus tentar cssn t,\xa de codific:u;,lo ma is bixa) ou cn1o desistir, j que rc,cebcr metade da Vi\Zo de que precisa
de nada adi anta para essa aplicao ele telefonia por ln ternet. Aplicaes que possuam necessidade de vazo so
conhecidas co mo a plicaes sensveis largura de banda. Mu itas ap licaes ele multimdia existemes so se ns-
veis largura de b.'lnda, embora algumas poder.lo usar tcnicas adaptativas de codiftcailo para coclii<.~ar a uma
taxa que corresponda vazo disponvel na oeasiiio. Embora aplicaes sensveis largura de banda possuam
necessidades especificas de vazo, ru; aplica es elsti cas podem fazer uso de qtudqucr qua ntidade mi ni ma Otl
mxima que por acaso esteja disponivel. Correio eletrnico, trans ferncia de a rquivos e transerncias Web so
iodas aplica.,;cs elsllcas. Evidentemente, quanto mais vazo, melhor. H.t\ um ditado que d iz que "dinheiro nunca
demais"; nesse caso, podemos d izer que vazo nunc.a demais!

Temporizaso
Um protocolo da camada de transporte pode tambm oferecer garantias de Lemporizao. Co mo na garantia
de vazo, as garan tias de temporiza:1o podem surgir cm diversos aspectos e m0<los. Podemos ciLar como exempl o
o fato de que cada bil q ue o remetente insere no socket chega ao socket cles1i natrio em menos de 100 milisse
g1rndos dcpoi.s. Esse servio seria acralivo para apl.icacs imcravas cm tempo real, como a telefonia por Imernc t,
ambien tes ,in uais, teleco nfrrncia e jogos nrnltijogaclores, que exigem restries de tcmporizao no envio de
daclos pat:l garnruir eficcia. ( Veja Capitulo 7, (Gau1.hicr, 1999; Ramjee. 1994).) Longos aLmsos na telefonia
por lntcrnct, por exem plo, tendem a resultar cm pausas arlinciais na convcrsac.10; em um jogo mu.lt iusurio ou
ambiente virtual intcratlvo, um longo atraso entre rcalrwr uma ao e ver a rea1.-1.10 do ambie_ntc (po r f.>.'>Ctnplo,
a reai1o de um oulro jogador na oulra ex tremidade de uma conex\lo fim a fim) az com que a aplicao parea
menos realista. Para aplicaes que no so em tempo real, sempre prefervel um atraso menor a um maior, mas
no h nenhuma limitao es tri ta aos aLrasos fim a fim .
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

Segurana
Po r fim, LUtl protocolo de transpo rte pode oferecer uma aplicao com ltm ou mais servi(os de scgur-.ma. Por
e,'(emplo, no hospedero remete nte, um protocolo de tra nsporte pode cod if'icar todos os dados transmitidos pelo
processo rcmeremc e, no hospedeiro desLina1drio, o pro1oeolo da camada de 1ransporce pode codificar os dados
:1n1es de envi-los ao processo dcstina1rio. T.il servio pode oferecer sigilo entre os dois processos, mesmo que os
d:.1clos sejam, ele algum modo, observados en1re os processos remetente e dcstinat:'lrio. Um prouxolo de tr:msporte
pode, alm do sigilo, fornecer outros servios de segurana, incluindo iniegridade dos dados e auteniica.io do
ponto terminal. assuntos que sero :,bordados cm detalhes no Capitulo 8.

2.1.4 Servios de transporte providos pela ln1eme1


At aq ui, consideramos servios de mmspones que uma rede de computado res /)()f/eria oferecer cm geral.
Vattios :,gora nos aprofundar mais no assunto e analisar o tipo de suporte de aplica.10 provido pela Internet.
A lnternet (e, cm um amplo sentido, as redes TCP/IP) dis ponibiliza dois protocolos ele Lransporle p:ira aplicai;es,
o UDP e o T CP. Quando voce (como um criador de aplicao) cra uma nova aplica~"o de rede para a Internet ,
uma das primeiras decises a ser tomada usar o UDP ou o TC?. Cada um d esses protocolos oferece um conju nto
diferente de servios parn as aplicaes solici1an1cs. A FigLtra 2.4 mostra os req uisi tos do servio para algumas
aplicaes selecionadas.

Servios do TCP
O modelo de sen io TCP incl ui um sen io oriemado para conexo e um se.rvi o confivel d e transferncia de
dados. Quando u ma aplica"\ solicita o TCP como seu protocolo de trnnspone, recebe dele ambos os servios.

Servio oriemado para conexo: o TCP faz com que o cl iente e o servidor troquem informaes ele
comrole de ca mada de cranspone ames que as mensagens de camada de aplicao comecem a luir.
Esse procedi mento de apresentao, por assi m dizer. alerta o cllen1e e o servidor, permitindo que eles
se preparem para uma enxurrada de paco1es. Aps a fase de apresentaio, dizemos que existe uma
conexo TCP entre os sockets dos dois processos. A co nexo fu ll~dL1plcx (simultnea), visto que os
dojs processos podem c11viar mensagens um ao outro ptla concxllo ao mesmo tempo. Quai1do tcrrnj-
na de enviar mensagens, a aplica,lo deve imcrromper a conexo. Esse servio chamado de ser\lio
"orientado para conexo~, e mlo servio "de concxi\o" , porqu e os dois processos csulo co nectados de
um modo muilo solto. No Captulo 3, discutiremos detalh;id;1mcnte servio orient;iclo pilrn conexo e
examinaremos como ele implementado.
Se,vio confivel de tra11s1)()11e: os processos comunicantes podem conf'i;ir no TCP para a emrega de
todos os dados enviados sem erro e n;i ordem correta. Quando um lado da ap licao passa uma cadeia

Apltca~o Perda de dados largura de banda Sensibllldode oo atraso


TrooslerA<io de 01qu"ivos s~n penlo Elstico Niio
E1110U Sem peido Elslico tfo
Oo<umentos Web s~ pe,do Elslico (olgoos kbps) No
Telefonia vio IJ11eme1/videoconle1ncio TolerOllle Operdo .6.udio:elguns Ebps - 1f.\bps Sim: dmos de segundo
Vdeo: )O kbps - >Mbps
tfdio/Yideo ormazeoodo lolel11111e Operdo lgum O<imo Sim: alguns segt11dos
Jogos nlero tiYOS Tola,onte l perdo .6.lgllns khps - 1Oh\bps Sim: dcimos de segoolo
1.1.eflSO!)emilslo.ntrieo Sem petdo Hslico Sim eno

Figura 2.4 Requisitos de aplicaes de rede selecionados


bowot,o4ico.
69
---
Coplulo 2 Comodo de oplico!O

de byLes para dentro de um socket, pode contar com o TCP para emregar a mesma cadeja de dados ao
sockel recepto r. sem falta de bytes nem byles duplicados.

O !CP tambm inclui um mecanismo de controle de congcstio11amc1110. um servio vohado ao bem-estar


geral da lnlernct e nilo ao benecio direto dos processos comunicanles. O mecan ismo de con tro le de congestio-
namento do TCP limi ta a capacidade de iransmsso de um processo (cliente ou servidor) quando a rede csut
congestionada entre cliente e servidor. Em [>anicular, como veremos no Capittilo 3, o cont ro le de congestiona-
mento do TCP tenta limitar cada conexo do TCP su:\ jusLa po r:10 de largura de banda de rede. A limila:io da
ve locidade de u,msm issilo pode ler um efeito muito prejudicial sobre .tplicacs de ud io e vidco cm tempo rc-.il
que imponham uma Umita~ilo ele largura de banda mfnima. Altm disso, aplica<;cs cm tempo real s.10 to lerantes
perda e no necessitam de um servio de tnmsportc totalmente confivel. Por essas razes, desenvolvedores de
aplicaes em tempo real usualme1ne executam suas aplicaes em UDP. e no em TCP.

Servios do UDP
O UDP um prolocolo de lmnsporte simpliflcado, b e, com um modelo de servio minim:11is ta. um
servi<;o no orientado paro conexo; portanto, no h apresentao an Lcs que os dois processos comecem a
se comunicar. O UDP pro,, urn servio no confivel de transernc;fa de dados - isto , quando um pro
cesso envia Ltma mensagem para den Lro de um socket UDP, o protocolo no ofere<.-e nenhuma garantia de
que a m ensagem chegar ao processo receptor. Alm do mais, m ensagens que re:almenlc chegam ao processo
recep to r podem chegar fora de ordem.
O UDP nao inclui um 111e(.,111ismo de controle de congestionamento; portanto, um processo originador pode
bombear dados para denlro de uma camada abaixo (a mmada de red e) aaxa que q user. (Observe, entretanto,
que a vazo fim a f'im pode ser menor do que essa tax11 devido largura d e banda limitada de en laces intervc-
1ticn1cs ou ao congcsiionamcnto). Como aplicaes cm temro real usualmente podem tolerar uma ec-rta pc-rda

Um conjunto impressionante de sistemas fno[s do Internet


protegendooTCP
Nem o TCP ou o UDP fornecem quolquer codficoo - os dado,s que o processo remetente transfere
poro seu socket so os mesmos que percorrem o rede ol o processo deslinot6rio. Ento, por exemplo, se o
preces&<> destinolrio enviar uma senha em cleortexJ lou seja, no codilicodo) poro seu sockel, elo percor
rer por todos os enloces entre o remetenle e o destinotrio, sendo onolisodo e descoberto em quolquer um
dos enlaces intervenientes. Em rozo de o privocidode e outros questes de segurono terem se tomodo
importantes poro mutas apl1caes, a comunidade da Internet de"5envolveu um operfeoamenlo poro o TCP,
denominodo Comodo de Sockets Seguros (SSLJ . O operfeioomenlo SSL poro o TCP no somente foz tudo
que o TCP trodicionol Faz, como tambm oferece servios importontes de se9uran90 processo o processo,
incluindo codificoo, 1ntegridode dos dados e outel"lticoo do ponto de chegado. Salientamos que o SSL
l"IO um terceiro protocolo do Internet, no mesmo nvel do TCP e do UDP, mos um aperfeioamento do TCP
implementado na comodo de oplicoo. Porticulormenle, se uma aplicoo quiser utilizar o servio do SSl,
preciso incluir o cdigo SSL (existente, bibliotecas altamente otimizadas e as classes) da oplicoo em ambos
as portes cliente e servidor. O SSL possui s.uo prpria API de socket que semelhante tradicional API de
socket TCP. Quando uma aplicao utilizo a SSL, a procecSso remetente transfere dados em cleartexl poro o
socket SSL; no hospedeiro emissor, ento, o SSLcodifica os dedos e os posso poro o socket TCP. Os dodos
codlicodos percorrem o Internet ol o socket TCP no processo remetente. O socket remetente posso os doclos
codificados ao SSL, que os decodifico. Por fim, o SSL posso os dados em cleartexJ por seu socket SSL ol o
processo destinatrio. Abordaremos o SSLem mais detalhes no Captulo 8.
bowot,o4ico.
Rede s de compu1 ad ores e a Internei

de dados, mas exigem uma taxa mfnima, desenvolvedores clessc tipo de aplicaes frequcmementc preferem
execul-las por UDP, evi tando, assim, o comrole de conges1ionamemo e os cabealhos d e pacotes do TCP.
Por oimo lado, como muitos flrewalls esLo configurados para bloquear(:, maioria dos Lipos de) Lrfego UDP,
os projcListas l:m escolhido, cacla vez mais, cxecut;1r aplicaocs mul1imdia e cm tempo real por meio cio TCP
[Sripanidkulchai, 20041.

Servios no providos pelos protocolos de transporte do Internei


Organizamos os servios do protocolo de transporte cm quatro dimenses: Lranferncia confivel de dados,
vazi!o, 1emporiz:a".lo e segu rana. Q uais desses servios so providos pelo TCP e pelo UDP? J vimos que o TCP
prove a Lra nsere ncia confivel de dados fim a fim, e sabemos tambm que ele pode ser ap rimorado faci lmente na
camada de aplicao com o SSL para oferecer servios de segurana. Mas cm tlOSSll breve descrio sobre o TCP
e o UDP, ahou mencionar ns garanas de vazilo e de tcmporiza.10-servios 11,10 fornecidos pelos protocolos de
1ransportc ela Interne t ele hoj e. Isso signjfica que as aplica(e:s scnsveJ_s ao tempo, como a telefonia por hucrncl
no poclcm rodar na Internet atual? ;\ resposta claramente negati\a - a In ternet tem recebido essas aplicaes
por mui tos anos. Tais aplicaes mu LaS vezes fu ncionam bem, por terem sido desenvolvidas para lidar, na medida
do possvel, com essa falta de garana. Analisaremos \r;lrios desses artifcios de criailo no C:lpitulo 7, No cntan-
10 . a criac-:10 engenhosa possui suas limitaes quando o ,Hr:.\So excessivo. como o coso requcntc da lnlernct
pblka. Em resumo, a Internet de hoje pode oferecer servios satisfatrios a aplica~es sensveis ao tempo, mas
no garantias de temporizao o u d e largura de banda.
A Figura 2.5 mostra os protocolos de transporte usados por alg umas aplicaes populares da Internet.
Vemos que c-nrnil, 11 Web, ncesso II terminais remotos e 1ranserncin de arquivos usam o TCP. Essas
apl icaes escolheram o TCP primordialmente porque ele oferece um servio confivel de transferncia
de dados. garanti ndo que todos eles mais cedo ou mais tarde cheguem a seu destino. Ve mos tambm que
a aplicao de telefonia por lnternct normalmente funciona em UDP. Cada lado de uma aplicao de
tcleone por Internet precisn e1w iar dados pela rede a uma Laxa rninima ( veja a Figura 2.4), o que mais
p rovavel mente possvel com UDP do que com TCP. E, tambm, ap licaes de telefone por In ternet so
tolerantes is perdas, de modo q ue no necessitam elo servio confivel de t ran sferncia de dados p rovi do
p elo TCP.

Enderesomento de processos
Nossa discusso acima se focou nos servios de transporte entre dois processos de cormmica,;.'.lo. Mas como
um processo indica qual processo ele quer para se comunicar usando ess~ servlos? Como um processo rodando
em um hospedeiro em AmhersL, Massachuseus, EUA, cspedfica q ue ele quer se comu nicar com um processo
cm particular roda ndo em um hospedeiro em Bangcoc, na Tailndia? Para isso, p reciso especificar duas infor-
maes: (1) o nome ott o endereo da mquina hospedeira e (2) um idemificador que espccilque o processo
desti natrio no hospedeiro de des tino.

Aphcases Proto,olo de camada de apUcasa Protocolo de transporte sabjacente


Coneio elehooico SMJP (RFC 5321) TCP
Acesso otermino! remoto Jeklel (RFC 854) TCP
Web fTP(RFC 2616) l(P
Trooslf!fncio de c.quivos FTP (RFC 959} TCP
fi\ulliniM em tempo real HTTP (poc e>:emplo, Youtube). RJP UDP ou TCP
Telefo11iopcir l11temel $IP, RIP ou Jl!Oprietrio (por &elllJllo, Skype) lipicornente UDP

Figura 2.S Aplicaes populares do Internet, seus protocolos de cornada de aplicao eseus protocolos de I J'onsporte subjacentes
bowot,o4ico.
71
Coplulo 2
-------
Cornada de apl icoso

Na lmemet, o hospedeiro idcntiJiC11do por seu endereo IP. Dscutiremos endereos IP cm detalhes no
Capw lo 4. Por enquanto, basta saber que o endereo IP tuna quantidade de 32 bits q ue identifica rxd11siw1111e111e o
sistema final. (EnLretanio, como \/Cremos no tpflu lo 4. a implemema-Jo ampla do NAT (Tradu\:.,o de Endereos de
Rede) significa que, na prtica, um endereo IP de 32 bLS sozinho no enderea exclusivamente um hospedeiro.)
Altm de Sllber o endereo do sistema final ao qual a mensagem se dcstin.t, o hospedclro origtn.idor tambm deve
idenficar o processo que est:1 rodando no outro hospedeiro. Essa nformai,.'l'\o ne<..'CSS.'\ria porque, cm geral, um hos-
pedeiro poderia estar executando muitas aplicaes de rede. Um nmero de pon a de des tino a tende a essa fr.tlidade.
Ap lica~ populares receberam mmcros de por111 especllcos. Por exemplo. um servidor Web 6 idemilcado pelo
nmero de porta 80. Um processo servidor de correio (que usa o protocolo SMTP) idenlilkaclo pelo nCtmero de
porta 25. Uma ltsta de nmeros bem conhecidos de portas para todos os protocolos padronzados da lmcrnct pode se r
cncomrada no si te h11p://www.i:1na.org. Quando um desenvolvedor cria uma nova aplicao de rede, ela deve receber
um novo nmtro de porta. Examinaremos nmeros de porta dellhachuucntc no CapftldO 3.

2.1.S Protocolos de camada de aplicao


Acabamos de ap render que processos de rede comunicam-se entre si enviando mensagens para ckntro
de sockets. Mas, como essas mensagens ~,o estrutu radas? O que signHlcam os vrios ca mpos nas memmge11s?
Qua ndo os processos crwiam as mc1tsagens? Essas perguntas nos Lmns1,onam para o mundo dos pro locolos de
camada de aplca1lo. Um protocolo de camada de aplicao define como processos de uma aplica1\o, que
funcionam em sistemas finais diferen tes, passam mcns.1gens entre si. Em particular, um protocolo de <..-amada de
aplicao cleine:

os tipos de mensagens trocadas, por exemplo, de rcquisiao e de resposta:


a sintaxe dos vrios tipos de mensagens, tais como os campos da mensagem e corno os campos so
delineados:
a semnlit1.t dos c.tanpos, isto , o s ignificado da inforniailo nos campos:
regras para determinar quando e como um processo envia mensagens e responde a mensagens.

Alguns pro tocolos de cmnada de aplcao esto especificados cm RFCs e, portamo, so de domnio pblico.
Por exemplo , o protocolo de camad;t de apliea1,~10 da Web, llTTP (HrperTcxL Transfor Protocol IRFC 26161) , cstli
disposi:io como um RFC. Se um desenvolvedor ele browser seguir as regras do RFC do HTTP, seu browser esw-
r habili tado a eximir pginas de qualquer servidor Web que uunbrn tenha seguido as regras do RFC do HTTP.
Muitos outros protocolos de c:unada de aplkai\o silo proprietrios e, intencionalmente. no CSLo disponveis ao
plblko. Por exem plo, muitos dos sistemas de comparLilJlamento de arqui vos P2P extstcntl'S u~m, protocolos de
camada de aplicao proprietrios.
mponame disLingui r apl icaes de rede de protocolos de C11mada de aplica,lo. Um protocolo de camada
de aplicao apenas um pedao (embora grande) de aplicao de rede. Examinemos alguns exemplos. A Web
uma aplka.'\o cliente-servidor que permite 1tos usurios obter documentos de servidores Web por demanda.
A ap lcao \Vcb consiste em muitos componentes, entre eles um padro para fonna10 de documentos (isto ,
HTML), browscrs Web (por cxrmplo, Firefox e Microsoft lnLcrnet Ex plorcr), servidores Web (por rxcmplo,
servido res Apache e Microsot) e um protocolo de t~rn,ad:t de aplica(o. O protocolo de camada de aplic:t"\o da
Web, HTTP, define o formnLo e a sequncia das mensagens que so passadas enLre o browser e o servido r Web.
Assim, ele apenas llm pedao (embora mponamc) da aplicao Web. Como outro exemplo, considere a apli-
cai.,~\o correio elcl.l'riico da Internet que tambfo1 tem muitos componentes. entre eles servidores de correio que
armazenam caxas postnis de usurios, feitores de correio que per111J1cm aos usurios ler e c1iar mensagens, um
paclro que delne como mensagens so passadas enm: servidores e emrc s.c rvidorcs e leitores de correio e como
o cont edo de certas panes da mensagem de correio (por exemplo, um cabealho) deve ser interprelado. O prin-
cipal protocolo de camada ele aplicao para o correio eletrnico o SMTP - Sim pie Mail Protocol [RFC 5321].
Assim, o SMTP ap enas um pedao (embora importante) da aplicao correio ele1rnico.
bowot,o4ico.
Redes de compu1adores e a Internei

2.1.6 Aplicaes de rede obordodos neste livro


Novas aplicaes de Internet de domnio pblico e proprietrias so desenvolvidas todos os dias. Em vez de
tratarmos de um grande nmero dessas aplicaes de maneira enciclopdica, preferimos focalizar um pequeno
nmero de aplicaes ao mesmo tempo importamcs e populares. Neste <:11pitulo, discutiremos cinco apl.icaes
pop ul;ucs: u Web, a lmnscrencia de arquivos, o correio eletrnico, o servio de diretrio e aplicaes P2P.
Dlscutiremos primeamente a \Veb no somente porque ela uma aplicao imensamente popular, mas tambm
porque seu protocolo de camada de aplicao, HTTP, direto e fcil de entender. Aps examinarmos a Web,
cx.imin-iremos brevemente o FTP porque este protocolo oferece um limo contraste com o HTTP. Em seguida,
discu c remos o com~o eletrnico, a primeira aplcao de enorme sucesso da lntcrnct. O correio eletrnico mais
complexo do que a Web, 110 semido de que usa no somente um, mas vdrios protocolos de camada de aplica,\o.
Aps o e-mail , estudaremos o DNS, que prov um servio de diretrio para a lnternet. A maior.ia dos usurios
no imcrage diretamencc com o DNS; cm vez disso, eles o chamam indirc1ameme por meio de ou1ras aplic-.ies
(inclusive a Web, a transferncia de a rqu_ivos e o correio clcLrnico). O DNS ilusLm primoros,unent como um
componeme de fu ncionalidade de mkleo de rede (traclu:io de nome de rede para endereo de rede) pode ser
implementado na camada de :iplicao da Internet. Finalmente, discutiremos o companilhamcnto de arquivos
P2P que, segundo algumas medies (por exemplo, trafego de rede), a classe de aplicaes mais popular da
lmcrnet de hoje. Finalmente, disculiremos vrins aplicaes P2P, incluindo distribuio de arquivo, banco de
dados distribudos e telefonia IP.

2.2 AWeb e o HTTP


At a dcada de 1990, a Internet era usada primordialmente por pesquisadores, acadmicos e estudantes
universitrios para se interligar com hospedeiros remotos. trnnserir arquivos ele hospedeiros locais para hos-
pedeiros remotos e vice-versa, enviar e receber notcias e enviar e receber correio cletr(mico. Embora essas
aplicaes fossem (e contin uem a ser) extremamente teis, a Internet no era conhecida fora das comunidades
acadmicas e de pesquisa. Ento, no inicio da dfcad.i de 1990, entrou em cena 11111a nova ap licaM imponan-
1Cssima - a World Wide Web 1Berners-Lec, 1994]. A Web a aplica.\o ela Lmcrnet que chamou a a1cno
do pblico cm geral. Ela transformou dmsticamcntc a maneira como pessoas in1cragcrn dentro e ora de seus
ambienles de trabalho. Alou a Internet de apenas mais uma entre muitas redes de dados para, essencialmcn1e,
a t'mica rede de dados.
Talvez o que mais atraia a maioria dos usurios da Web que ela funciona por dl'mm1Cln. Usurios rece-
bem o que querem, quando querem. o que diferente da transmisso de rdio e de tclcvis,\o, que orr.a o
usuri o a sintonizar quando o provedor disponibiliza o contetldo. Alm de funcionar por demanda, a Web
tem muitas o um1$ caractersticas maravilhosas que as pessoas adoram. muit ssi mo fcil para qualquer indi-
vduo fazer com que inrorm,1es fiquem disponveis na Web; todo mundo pode se transformar cm editor a
um custo ex tremamen te bai.xo. Hipcrcnlaces e buscadores nos ajudam a navegar pelo oceano dos si1cs Web.
Disposi tivos grficos cstlmulam nossos senlidos. Formuldos, applctsjava e muitos ouLros dispositivos nos
habilita m a interagir com pginas e s ites. E, cada vez mais, a Web oferece um menu d e interfaces para vastas
quamidades de material de \lideo e udio armazenadas na ln1ernet - udio e vdeo que podem ser acessados
por demanda.

2.2.1 Descri~o geral do HTIP


O HITP - Protocolo de Trausferl uda d e Hipertexto (1 iypcrTcxt Transfer Protocol) - protocolo de
camada de ap licao da Web, est no corao da Web e definido no (RFC 1945) e no IRFC 26161. O 1-lTIP
implementado em dois programas: um programa cliente e outro servidor. Os dois !Programas, execucados em
sistemas finais diferentes, conversam um com o outro por meio da troca de mensagens HTTP. O HTTP define a
bowot,o4ico.
_........................................................................................___
Coplulo 2
-------
Cornada de oplicoo
73

estruturo dessas mensagens e o modo como o cliente e o servidor as Lrocam. Ames de explic-armos deLalhadamen-
te o HTTP, devemos revisar a 1erminologia da Web.
Um pgina Web (tantbtm denominada docurncnto) onstitud._, de objetos. Um objeto simplcsmcJHe
um arquivo- tal como um arquivo HTML, uma imagemJPEG. um applc1Java, ou um clipe de vdeo-que se
pode acessar com um nico URL A maioria das p;lginas Web cons1ituda de Ltm arquivo-base HTML e diversos
objetos referenciados. Por exemplo, se uma pgina Web contiver um te,'C tO HTML e cinco imagens J PEG, eni:to
el:1 ter seis obje1os: o ,trquivo-oose HTML e mais as cinco imagens. O arquivo-base HTML reerencia os outros
objeLos t1a f)gina com os URLs dos obje1os. Cacla URL tem dois componemcs: o nome do hospedeiro do servidor
que abriga o objeto e o nome do caminho do objeto. Por exemplo. no URL
h t tp: / /~111w . someSchoo 1 . edu / someDepa rtment/pi cture.91 f

www. s omeSchool. edu o nome do hospedeiro e /someDepartment/ picture.gi f o do caminho.


Como browscrs Web tambm implementam o lado cliente do HTTP, podemos usar as palavras browsr, e dirnle
indiferemcmcntc no comexto da Web. Os servidores Web LamMm mplememam o lado servidor do HTTP,
abrigam objetos Web, cada um endereado por um URL So servidores Web populare..'> o Apache e o Microsoft
Internet lnformatlon Scrvcr.
O HTIP define como clicmes \Veb requisitam pginas Web aos servidores e como eles as transferem a clie111es.
Di.sculircmos detalhadameme a irnera~o entre clieme e scr\idor mais adiame, mas 11 ideia geral est lusuada na
Figltra 2.6. Qu,mdo um usu,frio requisita uma pgina Web (por exen1plo, clica sobre um hipercnlace). o browser
envfo ao servidor mens.1gens de requisio HTTP par-.1 os objetos da pgina. O servidor recebe as requisies e
responde c:om mcnsag<ms de resposta Hnp que contm os objetos.
O 1-rnp usa o TCP como seu protocolo de Lrnnsponc subjacenLe (em vez de rodar cm UDP). O cliente
HTTP primeiramente it1icia uma conex.lo TCP com o servidor. Uma vez estabclec:id~ a conexilo, os processos do
browscr e do servidor acessam o TCP por meio de suas lnteraecs sockets. C-0mo desc rito n.t Seo 2. l, no lado
cliente a inte_rface socket a porta entre o processo cliente e a conexo TCP; no lado servidor, ela a pona e111re
o proct'S5o servidor e a conexo TCP.
O cliente envia mensagens de rcquisi,lo HTTP para su:1 interface socket e recebe mensagens de resposta
HTTP de sua interface socket. De maneira semelhante, o servidor HTTP recebe mensagens de requisio de
sua imcrface socket e envia mensagens de resposrn parn sua interface socket. Assim que o cliente envia uma
mensagem para sua interface socket, a mensagem sai de suas mos e "passa pura as mos do TCP". Lembre-se
de que na Seo 2.1 dissemos que o TCP prov ao HTTP um servio eonivel de transferncia de dados,
o que implica que toda mensagem de requisio HTTP emitidii por um processo cl iente chegar intacta ao
servidor. De maneira semelhante, toda mensagem de resposta HTTP emitldtt pcfo processo servidor chcg:,r
intacta ao diente. Percebemos, nesse ponto, uma das grandes \~.tntagcns de uma arquitetura de camadas - o

Servidor executando
o iervidor Web Apache

PC executando Mac executando


Explore, Navigator

Figura 2.6 Comportamento de requisio-respostado HTTP


bowot,o4ico.
Redes de compu1ado,es e a lnleroet

HTTP no precisa se prcoCltpar com dados perdidos ou com detalhes de como o TCP recupera a perda ele
dados ou os reordena dentro da rede. Essa a tarefa do TCP e dos protocolos das camadas mais inferiores da
pilha ele protocolos.
importante notar que o servidor envia ao cliente os arquivos solicitados sem armazenar nenhuma informa-
o de estado sobre este. Se um detenninado cliente solicita o mesmo objeto duas vezes em um perodo de poucos
segundos. o servidor no responde dizendo que acabou de enviar o objeto " clicme; em vez disso, envia nova-
me,, te o objeto, pois j esqueceu completamente o que fez antes. Como o servidor HTIP no mantm nenhuma
informai,.-i1o sobre clientes, o HTIP denominado um protocolo sem es tado.
Salicntmnos tambm que a Web usa a arquitetura de aplicao clienle-st:rvdor, como descrito na Seo 2.1.
Um servidor Web est sempre cm unc::ionarncnto, tem um endereo IP lxo e atende rcq uisi~s de po tencial-
mente milhes de browsers diferentes.

2.2.2 Conexes persistentes e no persistentes


Em muilas aplicaes da lmerneL, o cliente e o servidor se comunicam por um perodo prolongado de tempo,
em que o cliente faz uma sfrc de requisies e o servidor responde a cada uma delas. Dependendo da aplicao
e ele como ela est sendo usada, a srie de requisies pode ser reiLa de forma conseculiva, pcriodicame111c cm
ln te rvalos regulares ou espomdicamente. Quando a Imerao cl Iente-servidor acontece por meio de conv:o TCP,
o criador da aplicao precisa tomar uma importante dccis{lo - cada par de requisio/resposta deve ~r enviado
por uma conexo TCP disti1111i ou iodas as requisies e suas respostas elevem ser enviadas por uma mesma cone-
xo TCP? Na abordagem amcrior, a aplicao utiliza conexes no pcrsis1emcs; e na ltima abordagem, conexes
pcrsislcntes. Para obter uma maior comprccn~o deste assunto, vamos analisar as vantagens e desv.111tagens das
conexes no persistentes e das co11exes persistemcs no contexto de urna aplicao especifica, o 1-lTl"P, que pode
uti lizar essas duas conexes. Embora o HTfP utilize conexes persistentes cm seu modo pad r.lo, os clientes e
servidores HTTP podem ser configurados para utilizar a conexo no persistente.

OHTTP com conexes no persistentes


Vamos percorrer as etap..\S da tmnsforinda de uma pgina Web de um servidor para um cliente plrn o
caso de conexes no persis tentes. Vamos supor que uma pgina consista cm Llm arquivo-base HTMl. e cm dez
im.igens JPEG e que todos esses 11 objetos residam no mesmo servi.dor. Suponha tambm que o URL para o
arq1dvo-base HTTP seja
http : // www.someSchool.edu /someDepartment / home.index
Eis o que acontece:
l. O processo cliei1te HTIP inicia uma conexo TCP para o scnidor www . someSchoo l . edu mi porta
nmero 80, que o mhncro de porta dcfault pam o HTIP. Associados:\ {'Onexo TCP, haver um socket
no cliente e um socket no servdor.
2. O cliente HTIP en via um:t mensagem de rcquisic;iio HTI"P ao servidor atravs de seu socket. Essll men-
sagem inclui o nome de c.iminho / someOepa rlmen t/home. i nde x. (Discmiremos mensagens HTIP
mais clclalhadameme logo adianle.)
3. O processo servidor HTIP recebe a mensagem de rcquisi-;to atr-.tvs de seu socket . extr;1i o objeto
/ someOepa rtmen t/home. i ndex de seu armazenamento (RAM ou disco), encapsula o objeto cm uma
mensagem de resposta l-tTIP e a em>ia ao cliente atravs de seu socket.
4. O pl'ocesso servidor H1TP ordena ao TCP que encerre a conexo TCP. (Mas, na realidade, o TCP s
encermrd a concx:tto quando tiver cerlc:z:a de qlte o dienle recebeu a mensagem de resposta i,uacta.)
5. O cliente HTIP recebe a mensagem de resposta e a conexo TCP encerrada. A mensagem indica que
o objeto encapsulado um arquivo HTML O cliente extrai o arquivo da mensagem de r1;sposta, analisa
o arquivo HTML e encontra referencias aos dez objetos JPEG.
6. As primeiras quatro etapas so repelidas para cada um dos objetos JPEG referenciados.
bowot,o4ico.
75
Coplulo 2 Cornada de aplico!O

A medida q ltC recebe a pgina Web, o browser a apresenta ao usurio. Dois browsers diferenlcs podem imerprc-
uma pgina Web ele modos ligeiramente diferentes. O HTTP no tem nada a ,er com o
tar (isLO , exibir ao usurio)
modo como uma pgina Web interpretada por um clien1e. As especincaes do HTIP [RFC 1945] e (RFC 26 16)
definem apenas o protocolo ele comunicao entre o programa cliente H1TP e o program.i servidor HTTP.
As etapas apresentadas ilustram a ulilzao ck conexes no perss1emes, nas quais t'ada conexo TCP
encerrada aps o servidor e1wiar o objeto - a conexo no persiste para outros objetos. Note que C11da conexo
TCP Lransporta exatamente um.i mensagem de requisio e uma mensagem de resposin. Assim, nesse exemplo,
quando um usurio soli.cita a pgina Web, silo geradas ll conexes TCP.
Nas etapas descritas, fomos intencionalmente vagos sobre se os clientes obtm as dez JPEGs por meio ele dez
co11cxes TCP em srie ou se algmwas delas so recebidas por conexes TCP paralelas. Na verdade, usurios podem
configurar browsers modernos para comrolar o gmu de paralelismo. Nos modos defaulL, a maioria dos browsers abre
de cinco a dez conexes TCP paralelas e cada uma delas manipula uma cransa-Jo rcquisil\o/rcsposm. Se o USltrio prc-
crir, o nmero mKimo de concxOcs paralelas poder.:\ ser fixado cm um. caso cm que as dez conexes s."lo estabelecidas
em srie. Como veremos no prximo {_1\pftltlo, a ulizao de conexes paralelas reduz o 1crnpo de resposta.
Antes de continuarmos, vamos fazer um ckLilo simples para estimar o tempo que tr.lllscorre emre a req ui-
si-Jo e o recebimento de tun arqui\lo-basc 1-lTIP por um cliente. f>ara essa lnalidacle. definimos o tempo de
viagem de ida e volta (1'01111<1-trip lme - RTT), ou seja, o lcmpo que leva par.- um pequeno p.icote viaj,u do
cliente ao servidor e de volta ao dieme. O RTT inclu atrasos de propagao de pacotes, de fila de pacou.s em
roteadores e comutadores iruermedirios ede processamento de pacotes. (Esses atrasos foram discutidos na Set,;.10
1.4.) Considere, agora, o que acon tece quando urn usurio clica sobre um hiperenlace. Como ilustrado na Figura
2. 7, isso faz com que o browser inicie uma conexo TCP entre ele e o servidor Web, o que envolve uma 'apresen-
ta~o de trs vias' - o cliente envia um pequeno segmento TCP ao servidor, o servidor o reconhece e responde
com um pcquwo segmento ao cliente que, por nm, o reconhece novameme para o servidor. As duas primeiras
parte.-: da apresentao de trs vias representam um RIT. Aps concluir essas partes, o cliemc envia a mensagem
de requisio HITP combinada com a terceira parte da aprcscnt:i"' de ires via.o; (o rcc:onhccimcn10) para dcmro
da concx,\o TCP. Assim que a mensagem de requisio chega ao servidor, cslc envia o arquivo t-lTML por meio

1iciar
onex~o TCP - - - -

RTT

Requiiitar
arquivo

RTT
: } Tempo para
..,.- ' t ransm itir
arquivo
Arquivo
completamente
recebido


Tempo Tempo
no clente no servidor

Figura 2.7 Clculosimples paro o tempo necessrio para solicitar ereceber um arquivo HTML
bowot,o4ico.
76
----- Redes de compuladores e a Internet

da conexo TCP. Essa reqllisio/rcsposta HTTP causa mais um RTT. Ass im, aproximadamente, o tempo total de
resposta so dois RTTs mais o tempo de transmisso do arquivo HTML no servidor.

OHTIP com conexes persistentes


Conexes no pcrsis ten1cs 1em algumas desvantagens. Em primeiro lugar, uma nova conexo deve ser esta-
belecida e mamda para aula objero sold wclo. Para cada uma dessas conexes, de"em ser a locados buffers TCP
e conservadas variveis TCP tanto no cliente quanto no servidor. Isso pode sobrccarreg.ir seriamente o scnidor
Web, que poder estar processando requisies de centenas de diferentes clientes ao mesmo 1empo. Em segu ndo
lug.1r, como ac.lbamos de d e.i c rcver, cada objeto sofre dois RTTs - um RTT para. es tabelecer a conex:10 TCP e
um RTT para solicitar e receber um o~jeto.
Em conexes pers istemes, o servidor deixa a conexo TCP aberta aps enviar respos1a. Requis ies e respos-
tas subseque ntes entre os mesmos dic nu: e servidor podem ser caviadas por meio da mesma conexo. Em parti
cular. uma pgina Web inteim ( no exemplo anterior, o arquivo-base HTML e as dez imagens) pode ser enviada
mediante uma nica conexo TCP persisteme. Essas requisies por objetos podem ser feitas con:secutivame111c
sem ter de esperar por respos1as a requisies pendentes (paralelismo). 1onnalmen1e. o servidor HTTP fecha
uma concX"lo quando ela no usada durante um certo tempo (u m lmerva lo de pausa configurvel). Quando o
servido r recebe requisies consecutivas, os objetos so en viados de forma inint errupta.
O rnodo defou lt do HTTP usa concxocs persistentes com paralelis mo. faremos uma comparao q uantita-
tiva entre os desempenhos de conexes persistentes e n:\o pers istemcs nos txcrcfcios de fca .\ o dos caplwlos 2
e 3. Aconsel hamos o lei to r interessado a consultar IHeide mann, 1997; Nielsen , l 997].

2.2.3 Formoto do mensagem HTIP


As especificaes do HTTP (RFC 26161 definem os formatos das mensagens HTTP. H dois tipos de mensa-
gens HTTP: de requisl~llo e de resposta. Ambas sero discutidas a seguir.

Mensagem de requisio HlTP


Apresentamos a Sceguir uma mens:tgem de requisio HTTP tpica:
GET /somedir/page .h t ml HTTP/ 1.1
Hos t; www . so mesc hool.edu
connecti on: close
user agent ; Mozill a/ 4.0
Accept l anguage : fr
Podemos aprender bas tam e examin ando essa si mples mensagem de requisio. Em primeiro lugar, vemos
que e la es t esc rita em texto ASCll co mum, de modo que pode ser lda por qualquer um que conhea co m-
pu tadores. Em segundo lugar, vemos que ela constituda de cinco linhas. cada Ltma seguida de um 'carriage
return ' e 'linc feed' (fim de linha) para o incio de uma nova linha. A ltima lin ha seg uida de um comando
adicional de 'carriagc relltrn' e ' line fccd '. Embora essa mensagem de requisico espccilca len h:, cinco linhas.
uma mensagem de requisillo pode ter muico mas do que isso e tambm menos do que isso, podendo conter
at mesmo uma ni ca linha. A primeira linh a d e uma mens agem de requisio HTTP denominada linha de
requisio; as subseqLtenLe.<; so denominadas linhas d e cabealho. A linha de requisiQ tem trs campos: o
(.mpo do mLOdo, o do URL e o da verso do HTTP. O rnmpo do mtodo pode assum ir vrios valores dieren-
tes, entre eles GET, POST e IIEAD. A grande maioria dns mensagens de requis io l lTTP emprega o mtodo GH.
o qual usado quando o browser requisita um objeto e este identificado no campo cio URL. Nesse exemplo,
o browser est requisitando o objeto / somed i r / pa ge. html . A verso a utoexpl icativa. Nesse exemplo, o
browser tnplementa a verso HTTP/1.1.
bowot,o4ico.
n
Coplulo 2
-------
Cornada de aplicoso

Vamos agora examinar as linhas de cabealho do exemplo. A linha de cabc<,"alho Hos t: www. some -schoo 1
edu espcdica o hospedeiro no qual o objeto reside. Tahez voc ache que ela desnecessria, pois j existe
uma conexo TCP p:1m o hospedeiro. Mas, como veremos na Seo 2.2.5, a informao fornecida pela linha de
cabealho do hospedeiro reqttericla por armazenadores intermedirios da Web. Ao incluir a linha de cabealho
Connection : close, o browscr est.\ dizendo ao servidor que no quer usar conexes persistentes; quer que o
servidor feche a cone.xo aps o envio do obje10 requisitado. A linha de cabealho User age nt : especifica
o age nte de usurio, isco , o tipo de browser que est fazendo a requisio ao servidor. No caso em questo, o
agcnLc de usurio o Mozilla/4.0, um browsa da Nc1Scapc. Essa linha de tabe('lho t\Lll porque, na verdade,
o servidor pode emiar verses dierenies do mesmo objeto a tipos diferemes de agentes de usurio. (Cada L1m.i
das verses endereada pelo mesmo URL) Por lm, o c-.ibealho Accept I lng uage : mostra que o usu rio
prefere receber uma vcrs,lo cm frances do objeto se esse objeto existir no servidor; se m\o exisLir, o servidor deve
enviar a verso dcfauh. O ~-abc1,.1lho Accep l 1 anguage : apenas um d os muieos cabealhos de negocia1,-._\ o de
comellclo disponveis no HTIP.
Acabamos de ex;1minur um exemplo. Vamos agora anal is.ir o formato geral de uma mens.igcm de requisio,
ilustrado na Figura 2.8.
Vemos que o orrmno geral de uma mensagem de requisi.cio muito parecido com nosso exemplo amerior.
ConLuclo, voce provavelmente no1ou que. aps as linhas de Cllbealho (e aps ll linha adicional com carriage
rcturn' e 'linc rccd'). h um corpo de entidade'. O corpo de cnLidade lca vazio com o mtodo GET, mas utili
zado com o mtodo POST. Um cliente HTTP normalmenle usa o mtodo POST quando o usurio preenche um
formulrio - por exemplo, quando fornece palavra.<; de busca a um sile buscador. Com uma mensagem POST,
o i1s urio continua sol iciumdo uma pgina Web ao servidor, mas o contcldo cspecfko dela depende do qL1e o
usurio es<:reveu nos campos do formulrio. Se o v:,lor do campo de mtodo for POST , ento o corpo de em idade
conter o que o usurio digiLou nos C\mpos do fom1u lrio.
Seriamos omissos se no mencionssemos que uma requisio gerada com um formulrio no utiliza neces-
sari:uncntc o mtodo POST. Ao contrrio, formulrios HTML rcque111cmcn1e 111ilizam o mtodo GET e incluem os
daclos digiLados (nos campos do fomtulrlo) no URL requisitado. Por exemplo, se um fom1ulrio us., r o mtodo
GET, Liver dois t":lmpos e as entradas desses dois campos forem monkeys e bananas, ento a estrutura do URL
ser www. somes i te . com/ ani ma 1sea r ch?mon keys&bananas. Ao navegar r1ormalmeme pela Web, voc prova-
velmente j notou URu extensos como esse.
O mtodo HEAO t! semelhante ao GET. Quando um servidor recebe uma requis io com o mtodo HEAD, res-
ponde com uma mensagem HITP, mas deixa de fora o objeto requisitado. Esse mCtoclo frequentemente usado
pelos desenvolvedores de servidores liTfP pam depura:io.

Linha de mtodo sp URL sp Verso (f lf


requisio
nome do campo de cabe~ lho: sp valor cr lf

Linhas de
cab~lho
nome do campo de cabea lho: sp valor cr lf

Linha
em branco

Corpo
da entidade

Obs.: c_r = carriage return; li= line feed

Figura 2.8 Formato geral de uma mensagem de requisio


bowot,o4ico.
-----
78 Redes de compu1adores e a lnleroet

O mtodo PUT requcmcmeme usado Juu1amcntc com crmmcnias de cdi:'lo da Web. Permite q ue um Lts u-
rio carregue um objeto para um caminho especifico (diretrio) cm um servidor Web especifico. O mtodo PUT
tambm usado por aplicaes q ue precisam <.-arregar obje tos para ser\lidores Web. O mtodo DELETE permite
que um us urio, ou uma aplicao, elimine um objeto cm um servidor Web.

Mensagem de resposta HTIP


Apresentamos a segu ir uma mensagem de resposta HTTP t.ipica. Essa mensagem poderia ser a resposta ao
exemplo d e mensagl'm de requisif10 que acabamos de disculir.

liTT P/1. 1 200 OK


Connection : close
Date: Sat . 07 Ju l 2007 12 : 00 :1 5 GMT
Server : Apache/ 1. 3 . 0 (Unix)
Last Modified: Sun. 6 Hay 2007 09 :23 :24 GMT
Content - Length : 6821
Content Type : text/ h tml

(da t a data data data data . .. )


Vamos exami1i.1r cuidadosamelllc essa mcns.'lgcm de resposta. Ela tem tr~ sees: uma linha in icial ou linha
de estado, seis linhas de cabealho e, em seguida, o corpo d a en tidade, q ue o fil mignon da mensagem -
con tm o objeto solicitado ( represenrndo por da t a d a t a da t a d a t a da ta ... ). A linha de estado tern t.r('S
c-.impos: o c<1mpo de "emo do protocolo, wn cdigo de es t.ido e uma llle nsagern de estado co rrespondente. Nesse
exemplo. ela mos tra que o servidor est usando o HTTP/l.l e que est tudo OK (isto , o servidor encontrou e
est enviando o objeLo solicitado).
Agora, va mos examinar as linhas de cabealho. O servidor usa a lin ha de cabealho Conn ect i on: cl ose
para informar ao dieme que fechar-c a conex!'to TCP aps enviar a mensagem. A lin ha de cabealho Da te : indica
hora e a data em que a res posrn HTTP fo i criada e e1wiacla pelo servidor. Note que esse n:lo o horrio em
que o objeto foi criado nem o de sua modificar,\o mais recenle: a hora em que o servidor exLraiu o objeto
de seu s istema de arqui \lO.S, inseru-o na mensagem de resposta e emiou-a. A linha d e. cabe\al ho Server :
mos tra que a mensagem foi gerada por um ser\lidor \ Veb Apache, anloga linha de cabe,alho Use r agen t:
na mensagem de requisio HTTP. t\ linha de cabeal ho Last Mod i fied : indica a hora e a data em que o
objeto fo i criado ou sofreu a lti ma modlfcaao. Esse cabealho. que logo estudaremos mais detalhadamen-
te, undamc1nal para fazer cache do objeto, tanto no cliente local q1U1nto crn s ervidores de eachc d11 rede
(tambm conhccdos como servidores proxy). A linha de cabealho Content Length : lndirn o nmero de
bytes do objeto c1ue est, sendo enviado e a linha Conten t Type : mostra que o objeto presente no corpo da
mensagem um tex to HTML (O tipo d o obje10 oficialmem c indicado pelo cabeal ho Con ten t Type : e no
pela ex tenso do a rquivo. )
Acabamos de ver um exemplo. Vamos agora examinar o formato geral de uma mensagem de resposta. ilus-
trado na Figuro 2.9.
Esse formato geral de merisagem de resposta condiz com o exempl o anterior. Mas fa lemos um pout'O mais
sobre cdigos de estado e suas frases, que indicam o resultado da requisio. Eis algmts cdigos de c.s taclo e rascs
assoc iadas co muns:
200 OK : requis i.1o brm-succdida e a informao emreguc com a resposta.
301 Moved Per ma nen t l y : objeto requs Lado foi removido pcrmancmcmerue; novo URL espccill-
cado no cabealho Loca ti on: da mensagem de res posta. O software do cHente recuperar au1omati-
ca mcntc o novo URL.
400 Bad Request : cdigo genrico de erro que indica que a requisio no pde ser entendida pelo
ser\lidor.
bowot,o4ico.
79
Coplulo 2 Com oda de aplico!O

Linha de sp cdigo de estado sp cr lf


estado
nome do campo de cabealho: sp valo r cr lf

linhas de
ca~alho
sp valor cr lf

linha
em branco

Corpo
da entidade

Figuro 2.9 Formalogero! de umo mensagem de resposto

404 No t Found: o documento requisilado no existe no servidor.


505 HTTP Vers ion Not Suppor ted: a verso do pro tocolo IHTP requisitada no suportada pelo
servidor.
Voc gostaria de ver uma mensagem de resposta HTTP real? muito recomendvel e mui to fcil!
Primeiramente, de u m comando Telnet cm seu servid or Web favorito. Em seguida, digite uma mensagem de
req uisiiyi'\o de uma lin.h a solicitando algu m objeto abrigado no servidor. Por exemplo, se voc tem acesso a um
prompLde comando, digite:
telnet cis .poly .edu 80

GET /-ross/ HTTP/l .l


Host: cis.poly.edu
(Clque duas vezes a tecla 'cmcr' aps cligliar a ltima linha.) Essa scqu~ncia de comandos abre uma conc-
x:lo TCP para a pona nllmero 80 do hospedeiro ci s . po l y . edu e, cm seguida, envia a mensagem de rcquisi~lo
HTTP. Dever .1pare,er uma mensagem de resposta que indui o arquivo-base HTML. da homepage do procssor
Ross. Se voc preferir apenas ver as linhas da mrnsagcm HTTP e llo receber o objeto em si, substitua GET por
HEAD. Finalmente. substitua /-ros s/ por /-b anana / e ,eja que lipo d e mensagem voct obtm.
Nesta seo, discu1imos ,rias linhas de cabealho que podem ser usadas cm mensagens de requisio e de
resposta HTTP. A especificao do HTTP define muitas outras linhas de cabealho que podem ser inseridas por
browsers, servidores Web e servidores tache de redes. Vi mos apenas um pouco do total de linhas de cabealho.
Examina remos mais algumas a seguir e mais um pouco quando discutirmos armazenagem Web na Sco 2.2.5.
Uma discusso muito abrangente e fcil de ler sobre o pro1ocolo liTTP, seus cabc;1lhos e cdigos de estado,
pode ser encomrada cm IKrishnamurty, 20011 ; veja tambm (Luotonen, 19981 se estiver interessado no ponto
d e vis ta do desenvolvedor.
Como Utll browser decide quais linhas de cabealho senlo includas em urm1 mensagem de requisio? Como
um servidor Web decide quais linhas de cabealho sero includas em uma mensagem de res posta? Um browser
va.i gera r linhas de cabealho em fun o de seu tipo e verso ( por exemplo, um browscr HTTP/LO no \'Ili gerar
m-nhuma linha dt cabealho 1.1), da configurao do usurio para o browscr (por ~crnplo, idioma prct rido)
e se o browser Lem uma verso do objeto posshdmcn1c ul trapassada cm sua memria. Servidores Web se com-
portam de maneira semelhante: h diferentes produtos, verses e configuraes, e todos inluenciam as linhas de
cabealho que so includas nas mensagens de resposta.
bowot,o4ico.
Redes de compuladores e a Internet

2.2.4 Interao usurio-servidor: cookies


Mencionamos ameriormen1e que um servidor f-lTTP n:'to 1em estado, o que si mplifica o projeto do servidor e
ve m pcrmiLindo q LtC engenheiros desenvolvam servidores Web de alLo clesempenho que pode m manipular milha-
res de conexes TCP simuhneas. No enrnmo, t sempre bom que um si1e Web idenlifique usurios, seja porque
o servidor deseja rcstri ngir acesso de usurio, seja porque quer apresentar con ted o em un:'to da identidade do
usurio. Para ess.1s finalidades, o MTTP usa cookies. Cookies, dcnniclos no RFC 2965, permitem que siles moni-
torem seus usurios. Hoje, a maioria cios sites Web comerciais utiliza cookies.
Como ilusLrado na Figura 2.10, a 1ecnologia dos cookes 1cm quaLro componemes: (1 ) uma li nha de C'Jbea-
lho ele cookie na mensagem de rcspost.1 HTTP: (2) uma linha de cabealho de cookie na mensagem de rcquisiCfO
t-lTTP: (3) um arquivo de cookic manlido no sistema final do usm\rio e gerenciado pelo browser do usu.kio; (4)
um banco de dados de apoio no site Web. Utilizando a Figura 2. 10, vamos esmh1ar u m exemplo de como os
cookcs so usados. Suponha que Susan , que sempre acessa a Web usando o lntemet Explorer de seu PC, acesse o
Amazon.com pela primeira vez, e que, no passado, ela j tenha visilado o site da. eBa)'. Q uando a requisic-J.o chega
"
ao servidor Web da Amazoll, ele cria um nmero de idemificao exclusivo e uma entrada se u banco de dados
de apoio, que indexado pelo nmero de identifie<'lo. Ento, o servidor Web da ,\maz.on responde ao browscr
de Susan, inclundo na resposta HTTP um cabealho Se t cook 1e: que contm o nmero de identiicao. Por
exemplo, a ll11ha ele cabealho poderia ser:
Set - cookte: 1678

Hospede iro do cliente Hospedero do servidor

ebay:8734

:_ O ser.iidor C'l'ia
ID 1678 para

-
ouwrio
~:i~
amazon: 1678
ebay: 8734
:-
:
Ao especifica
do cookie
acesso
Jma semana depois { :

---~
amazon: 1678
ebay: 8734 _:- Ao especfka
do cookie

Tempo Tempo

Legenda:

Arquivo de cookie

Figura 2.1 O Mantendo oestado do usurio com cookies


bowot,o4ico.
81
Coplulo 2 Comoda de aplico!O

Q uando recebe a mensagem de resposta HTTP. o browscr de Susan ve o cabealho Se t cook i e: e. ent:\o,
anexa uma linha ao arq ui vo especial de cookics que e le gerencia. Essa linha inclui o nome de hospedeiro do servi-
dor e seu nmero de idem ificao n esse cabealho. Obser"e que o arq uivo de cookie j poss ui um entrada para o
eBay. uma vez que Susan j visito u esse site no passado. Toda vez que Susan requisita uma p;igina Web enquanto
navega pelo site da Amazon em questo, seu browser cons ulta seu a rqttivo de cookie.s, extrai seu nmero de
idemificaco para esse site e insere na requisio HTIP uma linha de cabealho de cookie que inclui o mlmero
de iden tific.1:t'\o. Especificamente. cada tuna de suas requisies HTTP ao servidor do site de comrcio clctrnieo
incl ui a linha ele cabealho:
Cook ie: 1678
Dessa 111ancir".l, o servidor da Amazon pode monitora r a a tividade de Sus.1n e, embora no saiba necessaria-
mente que o nome dela Susan , sabe exatamt nlc quais pginas o us m\ro 1678 visitou, cm que ordem e cm q ue
horrios! Ento, a Amazon pode utilizar cookies para o erecer um servio d e carrinho de compra - a Amazon
pode man1 er uma lista de todas :1s compras de Susan, de modo que ela possll pagar por todas elas ao mesmo
tempo, no fi nal da sesso.
Se Susan voltar ao site, d igamos, uma semana depois, seu browser conlinuar:I a inserir a linha de cabe.
calho Cook i e: 1678 nas rnens..1gcns de requisio. A Am:izon pode recomendar produtos a Susan com b..1sc
nas pginas Web que ela visitou na Amazo n anteriormente. Se ela tambl!m se registrar no sile - forn ecendo
seu nome comp leto, end ereo d e e-mail , endereo postal e informaes d e carto de crdito - a Amazo n
pode incluir essas nfor maes cm seu banco de dados e, assi m , associar o nome de Susan corn seu mi rn ero de
identifl ca:lo (e com todas as pginas que ela cons ulto u em suas visitas anteriores). assim que a Amazon e
O\uros s ites de comrcio ele1r nico oferecem compras com um s c liq ue" - quando quiser comprar u m item
du rante u ma vis ita subsequente, Susan no precisar digitar novamente seu nome, nmero de seu carto de
crd ito, nem endereo.
Essa disc usso n os mostrou que cooki es podem ser usad os para idcmificar um usurio. Quando vis ita r um
sile pela primeira vez, um usurio pode forn ecer dados de identifica,lo (possivelmente seu nome). 1o decorrer
d as sesses s ubscquem es, o browser passa u m cabeail10 de cookie ao servidor d u rante todas as vsi Las subse-
q uentes ;:'10 site, id<: ruific._-ando, desse rnodo. o usurio ao servido r. A discusso lamb~m deixou claro que cookics
podem ser usados para criar uma camada de scss.,o d e usurio so bre HTTP sem estado. Por exemplo. quando
um usuri o acessa uma aplicao de e-mai l baseada na Web (co mo o Ho m1ail), o browscr envia informaes de
cookie ao servidor que, por sua vez, identifica o us urio por meio da sesso do us urio com a ap licao.
Embora cookies freq uemememc simplifiquem a cxpcr[n cia de comprn pela lmernel, co ntinuam provocando
mui ia concrovrsia porque rnmbm podem ser considerados como invaso da privacidade de um usurio. Como
acabamos de ver, usando uma combinao de eookies e informaes de conca fornecidas pelo usuri o, \tm site
Web pode fk-ar sabendo multa coisa sobre esse usurio e. potencial111en1e, vender o que sabe para algum terceiro.
O Cookie Cemml ICook ie Central, 2008 1 inclui informaes abra r1geme.s so bre a co nrrov rsia dos cookies.

2.2.S Coches Web


Um cache \Veb - tambm denomi nado servidor prOll.')'- u ma entidade ela rede que a tende requisices
HTTP em nome de 11m servidor Web de orige m. O cache Web tem seu prprio d isco de arm az:enagem e man t.m,
d entro dele, cpias de objeLos rcccrllemente requisitados. Como ilustrado na Figurn 2.11, o b rowscr de um usu-
rio pode ser co nfigumdo de modo que todas as suas requisies HTTP sejam dirigidas primc irmn ente ao t.11che
Web. Um:1 vez que esteja configu rado u m browser, cada uma d:is requisies de um objeto que o browser faz
primeiramen te dirigida ao cache Web. Como exemplo, stiponha que um browser esteja req uisitando o objeto
http://www. someschool . edu/campus. g i f. Eis o que acontece:
1. O browscr estabelece uma conexo TCP com o cache Web e envia a ele um:1 requisi:\o HTTP pam um
o bjeto.
2. O cache Web veriica se tem uma cpia cio objeto armazenada localmente. Se tiver, envia o objeto ao
browser do cliente, dentro de uma mensagem de resposta HTTP.
bowot,o4ico.
Redes de compu1ado,es e a lnleroet

Cli ente Servidor


de origem

figura 2.11 Clientes requisitondo objetos por meio de um cudte Web

3. Se no liver o objeto, o cache Web abre uma conexo TCP com o servidor de origem, isto , com 1,fw.
someschoo 1 . edu. Ento, envia uma requisi,lo HTf P do objeto para a conex,lo TCP. Aps receber essa
req uisio, o servidor de origtm envia o objeto ao <."ache Web, dentro de uma resposta HTTP.
4. Quando recebe o objeto, o cache Web guarda uma cpia em seu armazenamento lornl e envia outra, den-
tro de uma mensagem de resposta, ao browsrr do clie111r (pela conexo TCP existente entre o browsrr
do cliente e o cache Web).
Note que um cache , ao mesmo lempo, um servidor e um cliente. Quando recebe requisi.es ele um browser
e lhe envia resposms, um servidor. Quando envia requlsics para um servidor ele origem e recebe resposcas
dele, um cliente.
Em geral, um 1SP que compra e instala um caehc Web. Por exemplo, uma universidade poderia instalar
um cache na rede de seu campus e eonfigltrar todos os browsers apontando para esse cache. Ou um importante
ISP residencial (como a AOL) poderia instalar um ou mais caches cm sua rede e configurar anlecipadamente os
browscrs que fomcec.> apontando para os cachcs instalados.
O t.'lche na Web tem sido utilzado amplamente na lniemet por duas razes. Em primeiro IL1gar, um cachc V/eb
pode reduzir substancialmente o tempo de resposta para a requisio de um cliente, em particular se o gargalo da
largura de banda emre o clicnLe e o servidor ele origem for muito menor do que aquele entre o cliente e o cache. Se
houver uma conexo de aha velocidade cn~re o cliente e o e11ehe, como em geral o caso, ese este ti\rer o objeto requi-
sitado, emo c.lc podem emrcg,lr rapidamente o objeto ao dicme. Em ~gundo lugar, como logo ilustraremos com
,m, exemplo, e-aches Web podem reduzir substancialmente o l.l"fcgo no enlace de acesso de uma ltistirui:lo qualquer
lmcn1cl. Com ,\ rcdu.10 do lrego, a instituio (por c;..:emplo. uma empresa ou um:1 universidade) no precisa
ampliar sua largura de ooncla til.o rapidamente, o que diminui os custos. Alm disso, cachcs Web podem reduzir subs-
tancialmente o Lnlfogo 11a lmemct como um todo. melhorando, assim, o desempenho J'l'lra todas as aplicaes.
Para e111endcr melhor os benefcios dos raches, \"amos considerar um exemplo no contexto da Figura 2.12. Essa
figura mostra duas redes: uma recle institucional e a Internet pblka. A rede institucional uma LAN de alta velocida-
de. Um roteador da rccle instimcional e um roteador da lntemet est.o ligados por um enlace de 15 Mbps. Os servidores
de origem est~o todos lig11,dos Internet, mas J0e3lizados pelo 1111,rndo todo. Suponha que o tamanho mdio do objeto
seja l Mbits e que a taxa m.clia de requisio dos browscrs d,\ instituio at os servidores ele origem seja de 15 requisi-
es por segundo. Imagine tambm qLte o tamanho das mensagens de requisio HITP s.eja insignilleame e, portanto,
elas no ,riem trfego nas redes ou no enlace de acesso (do roteador da instilui-Jo at o da lnicrnc. Suponha aincla
que o tempo e111re o envio de uma requisiI1o HTIP (demro de um daiagrama LP) pelo roteador do lado da Internet
do enlace de acesso mostrado na Figura 2.12 e o recebimento da resposta (normalmente, clJentro de muitos datagramas
IPs) seja de 2 segundos em mdia. Esse l timo atraso denominado informalmeme 'atraso da lnternet'.
bowot,o4ico.
Captulo 2 Cornada de apl ico!O

servidores de origem

Internet pblica

LAN de 10 Mbps

Re<le inrtitucional

Figura 2.1 2 Gorgolo enhe umo rede institucional eoInternet

O tempo de respos1a 10ml - islO , aquele minscorrido encre a requisio de um obje10 fcha pelo bro\vser e
o recebi menLo dele - a soma do atraso da LAN, do atraso de acesso (sto e, o atraso entre os dois roteadores) e
do .itraso d.i Internet. Vamos fazer agora um clculo bastante rudimentar para estimar esse atraso. A iruensid.ide
d e trfego ita LAN (veja a Seo L.4.2)
(15 requisices/segundo) . (l Mbits/requisi0)/(100 Mbps) 0,15
ao passo que li intcnsid.-de de Lrcgo no enlace de acesso (do roteador da lnternct ao da instituio)
(15 requisies/segundo) " (1 Mbits/req uisico)/( 15 Mbps) " 1
Uma intensidade de trfego de 0,15 em um.- lAN resulta em, no mximo, dezenas de milissegundos de a tra-
so; conseque1uemcmc, podemos desprezar o alraso da LAN. Contudo, como disculimos na Seo 1.i.2. medida
que a intensidade de trfego se aproxima de 1 (como o c."aso do enlace de acesso da Figura 2.12) , o atraso cm
um enlace se torna muito grande e cresce sem limites. Assim, o tempo mdio ele rcsposla p,n., atender requisies
ser da ordern de minutos, se no for maio r, o que inace1vel para os usurios da ins11uic;o. Evidemenwme,
algo precisa ser feito.
Uma possvel solu.\o seria aumentar t1 velocidade de acesso de 15 Mbps p.,ra, digamos, lOO Mbps. lsso
red uziria a intens idade de trfego no enlace de acesso a 0,15 , o que se traduziri:i cm alrnsos d esprezveis e111re
os dois roteadores. Nesse caso, o tempo total de resposrn seria aproximadamente 2 segundos, isto , o atraso da
Internet. Mas essa soluo tambm signilca que a instituio tem d e atualizar seu enlace de acesso de lS Mbps
p<1ra lOO Mbps , o que pode ser muito dispendioso.
Consderc agora a solu-Jo ahernaciva de no arnalizar o c11lacc d e acesso, mas, cm vez disso, ins1alar um
c-.tche Web na rede institucional. Essa solu\"O ilustrada na figura 2.13. A taxa de resposta local - a frao
de requisies atendidas por um cachc - em geral fica na faixa de 0,2 a 0,7 na prtica. Para demons trar-
-mos isso, vamos supor que a taxa de resposta local do cache dessa instituio seja 0,4. Como os clientes e o
cache esto conectados mesma LAN de alta velocidade, 40 por cento das requisies sero atendidas quase
bowot,o4ico.
Redes de compu1adores e a Internet

Servidores de origem

Internet pblica

Cac:he
Rede institudonat institucional

Figuro 2.13 Adio de um coche rede inslilUcionol

imediatamente, digamos, cm 10 milissegundos. Mesmo assim, os demais 60 por cento das rcquisi~ :linda
precisam ser atendidos pelos servidores de origem. Mas, com apenas 60 por cemo dos objetos requisitados
passando pelo enlace de acesso, a intensidade de trfego neste diminui d e 1,0 para 0,6. Em geral, uma in1ensi-
daclc de tr.ifego menor do que 0,8 corresponde a um atraso pec1ueno, digamos. dezenas de milissegundos. no
C'JSO de um enlace de 15 Mbps. Esse atraso desprezvel se comparado aos 2 segundos do atraso da In ternet.
Dadas eSS1lS considcrnocs, o atraso mdio , por conseguinte, apenas ligeiramente maior do que 1,2 segundo.
0,4 . (0,01 segundo) + 0,6. (2,01 segundos),
Assim, essa segunda soluo rcsuha cm tempo de resposta at menor do q ue o que se conseguiria com a troca do
enlace de acesso e no requer que a instituio atu:ilizc seu enlace com a Internet. Evidentemente, a instituio
ter de comprar e instalar um cache Web. Mas esse custo lXtxo - mu[los caches usam softwares de clomfnio
publico que rodam ern PCs baratos.

2.2.6 GET condicional


Embora possa reduzir os tempos de resposta do pomo de vista do usurio, fozer cache introduz um novo pro-
blema - a cpia de um objeto e.-.:is1entc no cachc pode estar desatualizada. Em ouu.15 palavras, o objeto abrigado
no servidor Wcb 1>0de ter sido modificado desde a darn cm que a cpia emrou no t'llche no cliente. Felizmente, o
I-ITTP 1cm um mecanismo que permite que um cachc ,erinque se seus objetos esto atualizaclos. Esse mecanismo
denon'linado GET condicional (conc/itional G.ET). Urna mcnS;'lgem de requisi:lo I-ITfP denomjnada uma mensa-
gem GET co11diclonal sc(l) usar o mtodo GH e (2) possuir uma lnhade cab~lho I f - Hodi fi ed -Si nce :
Parn ilustrar como o GET condicional funciona, vamos examinar um exemplo. Em primeiro lugar, um cache
proxy envia u ma mensagem de requisio a um servidor Web em nome de um browser requisitante:
bowot,o4ico.
85
Coplulo 2 Cornada de aplicoso

GET /fruit/kiwi .g if HTTP/1. 1


Host : www .exot1quecu1s ine. com
Em segundo lugar, o servidor Web envia ao cache uma mensagem de res posta com o objeto requisitado:
HTTP/l. 1 200 OK
Date : Sat . 7 Jul 2007 15:39:29
Server : Apache/1.3.0 (Unix)
LastHod!f1ed : Wed. 4 Jul 2007 09 :23 : 24
Content-Type: image/gif

(da t a data data data data . .. >


O cache passa o objeto ao browser requis1.1.nte, mas t.ambtm o guarda em sua memria L-ache local. O impor-
tante que ele rnmbm guarda, jumamcmc com o objeto, a datu da (lhima modificao. Em lcrceiro lug.ir. uma
sem:in.1 depois, um outro browscr requisita ao ,ache o mesmo objeto, que ainda tsl no cache. Como esse objeto
pode ter sido modificado no servidor Web na semana anterior, o browser realiza uma verificao de atualizao
emitindo um GET condicional. Espcci!icameme, o cache envia:
GET /frult/k i wi .gif HTTP/1.l
Host : www .exotiQuecuis ine .com
l fmodifiedsince : Wed, 4 Jul 2007 09 :23 :24
Nole que o valor da linha de cabealho I frnod1f1ed s1nce: e exarnmeme igual ao valor da lnha de
mbe:1,.-alho Last Modi f1 ed: que foi emiada pelo servidor h uma semana. Esse GET condicional esL dize ndo
ao ser"idor para en\liar o objeto somcme se ele 1i,er sido modificado desde a da1a especificada. Suponha que o
objelo no tenha sofrido mo<lificao desde 4 Jul 2007 09:23:24. Ento, em quarto lugar, o servidor Web envia
uma mensagem de resposta ao cachc:
HTTP/1.1 304 Not Hodlfled
Date : Sat . 14 Jul 2007 15:39:29
Server: Apache/1.3 .0 (Unix)
(corpo de mensagem vazio)
Vemos que, em resposm ao GET condicional, o servidor \Veb ainda envia uma mensagem de resposta, mas
no inclui nela o objew requisitado, o que apenas desperdiaria largura de banda e aumemaria o tempo deres-
posta do por1to ele vista do usurio, particularmente se o objeto fosse grande. Note q~ie. na linha de estado dessa
flllima mensagem de resposta est inserido 304 Not Moclifie<l, que informa ao cachc que d e pode seguir adiante
e LransrniLi r ao browscr requisitante a i:pia do objclo que est i:ontida nele.
Finalizamos nossa discusso sobre HITP, o primeiro protocolo da lmcrnet (um protocolo da camada de aplica-
.10) que estudamos cm detalhes. Vimos o formato das mensagens HITP e as aes tomadas pelo cliente e servidor Web
qu:mdo essas mensagens s.lo erwiadt\S e recebidas. "farnb1n estudamos um pouco da lnfrne:sLruturn da aplie1o da
Web, induindo caches, cookies e banco de dados de apoio, todos as.wdados, de algltm modo, ao prolocolo HTfP.

2.3 Transferncia de arquivo: FTP


Em uma sessilo FTP Lfpica, o usurio, semado freme de um hospedl'iro (o local), quer transferir arquivos
de ou para um hospedeiro remoto. Para iicessar a conta remota, o us urio deve fornecer uma iclenti!icao e uma
senha. Aps fornecer essas informaocs de autorizao. pocle tmnsfcrir arquivos do sistema local de arqilivos
para o sistema remoto e vice-versa. Como mos tra a Figura 2. l4, o usLtrio interage com o FTP por meio de um
agcme de usurio FTP. Em primeiro lugar, ele fornece o nome cio hospedeiro remoto, o que faz com que o pro-
cesso cliente FTP do hospedeiro local estabelea uma conexao TCP com o processo servidor FTP do hospedeiro
remoto. O usurio ento fornece sua identificao e. senha, que so enviadas pela conexo TCP como parte dos
bowot,o4ico.
86
------ Redes de compuladores e a Internet

interface Transfernc ia de arquivo


FTP do usurio Cliente FTP

Usurio ou
hospedeiro


Sistema de

Sis1emade
arquivo remoto
arquivo local

Figure 2.1 4 FTP llonsportu arquivos enhe sstemos de orquvo local e remoto

comandos FTP. Assim que autorizado pelo servidor, o ust11frio copi.l um ou mais .uquivos .mnazcrtados no sistt'
ma de arquivo local para o ss1ema de arquivo rcmo10 (ou vice-versa).
O MTTP e o FTP so protocolos de transfor~ncia de arquivos e t~m mui1t1s carnclcrfstcas cm comum; por
cxcmplo, amhos L1lzam o TCP. Contudo, esses do is pro1ocolos de camada de aplka:io tm algumas diferen-
as importa nLes. A mais no~lvel que o FTP usn duas conexes TCP paralelas para Lransrerir um ll. rq ui vo: uma
conexo de controle e uma conexo de dados. A primeira usada para enviar informaes de contro le entre os
d ois hospedeiros - como identificao de usurio, senha, comandos para trocar diretrio remoto e comandos
de 'inserir' e pegar' arquivos. A conexo de dados a usada para eeti vamen1c enviar urn arquivo. Como o FTP
usa uma conexo de comro le separada, dizemos que ele envia suas informaes de comrole fora da banda. No
Capitulo 7, veremos que o protocolo RTSP, usado para conLrolar a u-ansferCnda de meios contnuos como udio
e vdeo, tambm envia suas informaes de conlrole fora da banda. O HTTP, como voc recorda, envia linhas de
cabealho de rcquiso e de resposta pela mesma conexo TCP que carrega o prprio arq uivo tnnscrido. Por
essa razo, dizemos que o MTIP envia suas informaes de controle na banda. Na prxima seo, ve remos que
o SMTP, o prindpnl pro LCKolo para correio eleLrnko, tambm envia suas lnformacs de con trole na banda. As
conexes de controle e de dados do FTP est,lo ilustradas n.i Figura 2.15.
Quando um usurio inicia uma sess:_\o FTP com um hospedeiro remoto, o lado cliente do FTP (usudo)
inicia primeiramente uma conexo TCP de controle com o lado servidor (hospedeiro remoto) na pona nmero
21 do servidor e envia por ess.i conexo ele controle a idcntiicaco e a senha do us urio, alc;m de comandos para
mudar o diretrio remoto. Quando o lado servidor recebe, pela conexo de controle, um comando para uma
transer~t1cia de arquivo (de ou para o hospedeiro remoto), abre uma conexi\o TCP de dados para o lado cliente.
O FTP envia exatamente um arquivo pcl.1 cone.d o de dados e em seguida fecha-a. Se, du rame a mesma sess.lo,
o usurio quiser uansferr outro arquivo, o F!P abrir outra conexo de dados. Assim, com FTP, a conexo de
comrolc permanece aber ta durante toda a ses~io do us urio, mas uma nov:t conex<lo de dados t criada para cada
arquivo Lmnsferido clen1ro de uma sesso (ou seja, a concx;\o de dados no persis tente).
Du rante uma ~sso, o servidor FTP deve manter informaes de estado sobre o usurio. Em particular. o
servidor deve associa r a conexo de controle com uma conta de usurio espedfica e tambm deve monitorar o

Conexo de c.o ntrole TCP porta 21


-+--

Conexo de dados TCP porta 20


Cliente Servidor
FTP FTP

Figura 2.1 S Conexes de controlee de dados


bowot,o4ico.
_ ___
........................................................................................ ----
Coplulo 2
------
Cornada de aplicoo

dire1rlo correme do us urio enquanto cs1e passeia pela rvore do dlre1rio remo10 . MonJ1orar essas informaes
de estado par-.t cada scss.Io de usurio cm curso lirnila signific.itiva menle o nmero total de sesses que o FTP
pode mam er simul1ancame111e. Lembre-se de que o HTTP, por outro lado, sem cs1..1do - m\o tem de monitorar
o cs1ado de nen hum usuri o.

2.3.1 Comandose respostas FTP


Encerraremos tslll se~,o com uma breve disntsso sobre alguns d os comandos mais comuns do FTP. Os
com::1ndos. do clleme para o servidor, e as respos1as, do servido r para o dicn1c, sllO en\'iados por meio da conexo
d e conlrolc no fom1:1to ASC!l de 7 bits. Assim, tal como comandos HIT P, comandos FTP tamb m podem ser
lidos f:>elas pessoas. Para separar comandos sucessivos, um carrlagc rclllm' e um 'linc fced' encerram cada um
deles. Cada comando co ns tit ufdo de qmuro caracteres ASCII maisculos, alguns com argumentos opcionais.
Alguns dos comaHdos mais comuns so descri1os a seguir:
USER username: usado paro enviar identilicai\o do usuri o ao servidor.
J>ASS password : usado para enviar a senha do usurio ao servidor_
LI ST: usado para pedir ao servidor que envie uma lsla co m todos os arquivos exislen les no alua i d ire
t ri o remo co . A lista de arqui vos crwiada por meio de uma concxf,o de dados (nova e no pcrsis1cme),
e n:10 peln conexo TCP de eoniro le.
RETR f i 1ena me: usado para exLrair (is10 , obter) um arquivo cio dire16rio amal do hospedeiro remo-
to. Ativa o hospedeiro remoto parn que abm uma conexo de dados e envie o arquivo requisitado por
ess.1 co nexo.
STOR f i lena me; usado para a rrna:tcnar ( is10 , inserir) um arq_uivo no diretrio a tual do hospede iro
rcmo10.
H, parlicularmente, uma corrcspondi?nci::i unf\'oca cnire o comando qltC o usurio gera e o comando FTP
en\'iado pela conexo de contro le. Cada comand o seguido de uma resposta, que en viada do servidor ao cliente.
As respos1as so n meros de trs digitos com uma mensagem opcional aps o nmero. Elas se assemelham, em
cstrumra, codtncao de estado e frase da linha de estado da mens.1gem de res posta HTTP. Os inventores do
HTTP incluram intencionalmeme essa similaridade nas mensagens de resposta HTTP. Algumas respostas tpicas,
jumo com suas possveis mensagens, s.lo as seguintes:
331 Home de us uc1rio OK . senha requi sita da
125 Conexao de dados Ja aberta : iniciando transfern c ia
425 H3o poss1ve1 abrir a conex~o de dados
452 Erro ao escrever o arquivo
Para saber mais sobre omros comandos e respos tas FTP. o lei1or ir1teress;1do pode consullar o RFC 959.

2.4 Correio eletrnico na Internet


O co rreio eletrn ico existe desde o in icio da Internet. Era uma das aplicaes mais populares quando ela
:1indn cs1a,'.l n.a inlncia 1Scgaller, 19981 . e ficou mais e majs elaborado e pod eroso ao longo dos anos. uma das
aplcaes ma is impo rlan les e de maior uso da lnlernel.
Tal como o correio norrnal, o e-mai l um meio de comunka,lo assncrono - as pessoas enviam e recebem
mensagens qmmdo for corwe11ien1e pa ra elas, sem 1er de es1ar coordenadas com o ho rrio das outras pessoas. Ao
contrrio do correio normal, que anda a passos le111os, o correio eletrn ico t rp ido, fcil de distribuir e bara10.
O correio ekLrnico moderno tem muitas carac1erisLicas poderosas. Ulilizi1ndo lis tas de m:1la dircL.'l, t: possvel
enviar mensagens d e e- mail , desejadas e indesejadas, a milhares de destinatrios ao mesmo tempo. As mensagens
do correio eletrnico moderno muilas vezes incluem anexos, hiperlinks, textos forma tados em HTML e fotos.
bowot,o4ico.
Redes de compu1adores e a Internei

Nesta se,io, examinaremos os protocolos de camada de aplicao que CS Lo no corao do correio eletrni-
co da lmernet. Mas, antes de entrarmos nessa discusso, vamos tomar uma visilo geral do s isLema ele correi o da
1nterneL e ele seus co111p-0nen1es principais.
A Figura 2.16 aprese nta uma viso do sistema de con eio da Intern et utilizando uma ana logia com a correspon-
dncia por correio. Vemos, por esse diagrama, que h.1 Lrs componentes prndpais: agentes de usurio , servido-
res de correio e o SMTP. Descre\eremos agora cada um desses componentes partindo do seguime contexto: um
remetente, Alice, est ell\1iando uma mensagem de e- mail para um destinatrio, Bob. Agentes de usurios permitem
que usurios leiam, respondam , rctransmimm, salvem e componham mensagens. (As vezes, agentes de usurio de
correio eletrnico so denominados leitores de corP'cio, mas. neste livro, evitaremos css:1 expresso.) Quando Alice
1crmin., de compor sua mensagem, seu agente de usu,\rio a envia a seu servidor de correio, onde ela colocada na
fi la de saida de mensagens desse servidor. Quando Bob quer ler uma mensagem, seu agente de usurio a extrai da
caixa de corre io em seu servidor de correio. No final da d cada d e 1990, agentes de usurio com interfaces grlcas
de usurio (GU) se tomaram populares, pois permitiam q11e usurios \'issem e compusessem mensagens mullimf-
d ia. Atualmente, o 0 11Llook da Microsoft. o Apple Mail e o Mozilla Thunderbird so alguns cios agentes ele usurio
com interface gmica popu_larcs para e-mail. Tambm h muitos agentes de usu.\rio de Lexto de domnio pltblico,
(ntre eles ' mail', 'pine' e 'elm'), assim como intcraces baseadas na Web, como veremos rapida mente.
Servidores de correio formam o ncleo da infracs1ruturn do e-mail. Cada destinatrio, como Bob, Lem uma
caixa postal local izada cm um dos servidores de correio. A de Bob administra e guarda as mensagens que foram
enviadas a de. Uma mensage m tpica inicia sua Jornada no agente de usurio do r&1n etentc, va i at o servidor
de correio de le e viaja at o servidor de correio do destinatrio, onde depositada na caixa postal. Q uando Sob
quer acessar as rncns.'lgcns de sua caixa posllll, o servidor de correio qt1c comtm sua caixa pos1i1l o amcncl\
(com nome de usurio e senha). O ser'"idor de correio de Alice tambm deve cuidar das falhas no servidor de

Servidor
de correio
Agl!ntc
de usu.frio

(5) rn rn

S<?rvdor
dccom!lo

servidor
de correio

WllJ~

wra ra
Agente
de usurio

Legenda:
~~ Fila d!! mcn~gcm ~ Cai~a de cmtrada
-~-~
~ de sada blJ do usurio

Figura 2.16 Uma viso do sistema de e-mail do Internet em onologio com ocorrespondncia por correio
bowot,o4ico.
(oplulo 2 Comoda de apl ico!O

E-mail do Web
Em dezembro de 1995, aps alguns anos depois do "nveno" do Web, Sobeer Bhatia e Jack Smilh
fizeram uma visito o Droper fisher Jurvetson, um investidor em empreendimentos de Internet, e propuseram
desenvolver um sistema de e,moil de livre oceo baseado 110 Web. A ideia era oferecer uma conto de e,moil
grtis a que.m quises.se e tornar essas contos acessveis pelo Web. Em troco de 15 por cento do empresa,
Droper Fisher Jurvetson finoncioo Bholio e Smith, que Formaram uma empresa denominado Hotmoil. Com trs
Uncionrios em tempo integral e mais 12 o 14 em tempo parcial, que trabalhavam em troco de opes de
compro de oes do empreso, eles conseguiram desenvolver e lanar o servio em julho de 1996. Um ms
aps o lanamento, a Hotmoil linho cem mil assinantes. Em dezembro de 1997, menos de 18 meses aps
seu lanamento, o Hotmoil, j com mais de 12 milhes de assinantes, Foi adquirido pelo Microsoft, ao que
se saiba, por 400 milhes de dlares.
O sucesso do Hotmoil muitos vezes a tribudo vantagem de elo ler sido o primeiro o entrar no mercado
e ao inerente 'marketing virai' do e-mail. (Talvez ol.guns dos estudantes que esto lendo este ltvro estoro
entre os novos empreendedores que concebero e desenvolvero servios de Internet pioneiros no mercado
e com marketing virai).
O e-mail do Web contnuo o pro~peror, tomando-se, o cada ano, mais sofisticado e potente. Um dos
servios mais populares de hoje o gmoil do Google, que oferece livre ormozenogem de gi9obytes, filtro
de spom e detector de vrus avanados, codifico,o de email opcional (utilizando SSlJ, ooletor de e-mails e
uma interface orienrodo o busco.

corre io de Sob. Se o servidor de correio dela no puder entregar a correspondncia ao se rvidor dele, manter a
mensagem em uma fila de mensagens e tentar transferi-la mais tarde. Em geral, novas tenuuh,as ser.to eitaS a
<.'ada 30 minutos aproximadamente; se no obt\1Cr sucesso aps a lguns dias, o ser\'ido r remover a mensagem
e notiicar o remel(:nte por meio de uma mensagem de correio. O SMTP o principal protocolo ele camada de
aplcao cio correJo detrnico da Intern et. Usa o send o <.'Onflvel de transferncia dt dados do TCP para trans-
ferir mensagens do sel'\'ido r de correio do remetente para o do des ti nat,\rio. Como acontece com a maioria dos
protocolos de ca mada de ap licao, o SMTP tem dois lados: um lado cliente, qu e funciona no servidor de co rreio
do reme tente, e um l:ido servidor, que funciona no servidor de correio cio d estinatrio. Ambos, o lacto clicnic e
o lado servidor do SMT'P, ut1cio.nam em todos os servidores d e correio. Quando um servidor de correio envia
correspondncia parn outros, age como u m cHcnte SMTP. Quando o servido r de correio recebe correspo nd nda
de outros, age como um servidor SMTP.

2.4.1 SMTP
O SMTP, definido no RFC 5321 , es t no corai\o do correio eletrnico da l ntcr11e1. Como mencionamos
~mies, esse pro1ocolo lransere mensagens de se rvidores de correio re metenles para se1vidores d e co rreio des1ina-
urios . O SMTP muto mais amigo que o HITP. (O RFC orlgnal do SMTP data de 1982, e ele j cxstia 111ui10
ames disso.) 'Embom tenha inmeras qualidades maravilhosas, como evidencia sua ubiquidade na Internet, o
SMTP ~ uma 1ccnologit1 an Liga que possui cen as caractcrs.ticas arcaicas. Por c.xemplo, restringe o corpo (e no
apenas o c:1bcalho) de iodas as mensagens de correio ao simples ormalo ASCII de 7 biLS. Essa restrii\o tinha
sen tido no co meo da dcada de 1980, q uand o a t-npaidadc de transmisso e ra escassa e ningum envia,a co rreio
clclrnico com anexos volumosos nem arqu_i vos grandes com imagens. ud io ou vidco. Mas, hoj e cm dia, na era
da multimdia, a restrio cio ASCll ele 7 bits um tanto incmoda - exige que os dados hinrios de multimdia
sejam codilcados em ASCII ames de ser en viados pelo SMTP e qu_c a mensagem correspondente cm ASCII seja
decodficada novamente para o sistema binrio depois do transporte pelo SMTP. lembre-se da Seo 2.2, na qual
dissemos que o HTTP no exige que os dados de multimdia sejam codificados em ASCII antes da transferncia.
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

Para lustrar essa operao bsica do SMTP, vamos percorrer um ccm1rio comum. Suponha q ue AHcc queira
enviar a Bob uma simples mensagem ASCII:
1. Alice chama stu ;1gtnlc de us urio p.ir;i e-mail, fornece o endereo de Bob (po r exemplo,
bob@someschoo l . edu), compe uma mensagem e ins tnii o agente de usurio a enviar a mensagem.
2. O agen te de usurio de Alice envia a mensagem para seu servidor de correio, onde ela t colocada cm
um:1 fila de mensagens.
3. O lado dicmc do SMTP. que f11cio1rn no servidor de correio de Alice, v a mensagem na fih, e abre uma
conexo TCP para um servidor SMTP, que funciona no servidor de correio d e Bob.
4. Aps alg uns procedimentos iniciais de ;lprcsenta:'l.o, o cliente SMTP envia a mensagem de Alice para
dentro da conexo TCP.
5. No servidor de correio de Bob, o lado servidor do SMTP recebe a menssgcm e a coloca na caixa postal
d ele.
6. Bob c hama seu agente de usu,lrio para ler a mensagem quando or mais con veni.e nte para ele.
Esse cenrio est resumido na Figura 2. 17.
~ importame observar q ue o SMTP normalmeme no usa sen ridores de correio inlermedirios para enviar
correspondncia, mesmo quando os d ois servidores es1o localizados cm lados opostos do mundo. Se o servido r
d e Alice est cm Hong Ko r1g, e o de Sob. cm S1. Louis, a conexo TCP uma conc~'\o direta entre os servidores cm
Hong Kong e Sl. Louis. Em parlicular. se o servido r de corre:io de Bob no estiver em funcionamento, a mensagem
permanece no servidor de correio de Alice esperando por uma nova 1emaiiva - a mensagem no colocada em
nenhum servidor de correio imermedirio.
V,unos ngora examinar mais de perto como o SMT-P m1nscre uma mensagem de um servidor de correio
remelente para um servidor d e correio des1lna1.-io. Veremos que o protocolo SMTP tem mui1as semelhanas com
protocolos usados na imcray\o humana cara a cara. Primeiramcme, o dicme SMTP (que funciona no hospedeiro
do servidor de correio remetente) az com que o TCP estabelea uma conexo na porta 2S com o servidor SMTP
(que funciona no hospedeiro do servidor de correio des1inatrio). Se o ser\lidor no eslivcr ern fun cionamento, o
clieme tema novi1rnente mais rnrclc. Uma vez estabe lecida a conexo, o servidor e o cliente trocam alguns proce-
dimentos de apresentao de camada de ap lica.."\o - exalamente como os seres humanos, que freq uentemenle se
ap resemam ames de Lransferir informaes, clientes e servidores SMTP tambm se apresem um ames de transferi r
informaes. Durante essa fase , o cliente SMTP indica os endereos de e-mail do rcmelenle (a pessoa que gernu a
mensagem) e do dcs Llna1ri o. Assim que o cliente e o senidor SMTP 1ermi nam de se aprescn1ar, o clicme envia a
mensagem. O SMTP pode comar com o servio confivel d e transferncia de dados do TCP par.i entregar a men-
sagem ;10 servidor sem erros. Ento, o cliente repetir-,, esse processo, na mesma cor1cil'i\o TCP, se houver outnis
mensagens a enviar ao servidor; caso comrrio, dar- uma inslru.lo ao TCP parn encerrar a conex..lo.
Vamos examinar um exemplo de troca de mensagens cm rc um cliente (C) e um scnidor SMTP (S). O nome
do hospedeiro do cliente c repes . fr e o nome do hospedeiro do servidor hamburger . edu. As linhas de

servidor de Setvidor de
orreio de Allce c,o rrelo de 8ob

~
~
Agente
0 i;mJ;l1t Agente
de Atice deBob
ru rn ru SMTP
~ rn
Legenda:
~ Fita de mensagem jli carxa i>ostal do usurio

Figura 2.17 Alice envia uma mensagem o Bab


bowot,o4ico.
91
Coplulo 2 Cornada de aplicoso

texto ASC U Iniciadas wm C: s:\o exaLamentc as Linhas que o cUcntc envia para d entro de seu socket TCP e as
iniciadM com S : so exata mente as li nhas q ue o scmidor envia para den tro de seu socket TCP. A transcrio a
segui r comea assim que a conex;\o T CP esrnbclccida:
S: 220 hamburger .edu
C: HELO crepes . fr
S: 250 Hel lo cr epes . rr . pl eased to meet you
C: MAIL FROM: <al i ce@c repes . fr>
S: 250 a1ice@c repes .f r ... Sender ok
C: RCPT TO : <bob@hamburger .edu<
S: 250 bob@hambu r ger . edu . . . Rec i pi e nt ok
C: DAT A
S: 354 Enter mall . end wl i h on a line by itsel f
C: Do you l ike ketch up?
C: How about pi ckl es?
C:
S: 250 Hessage accepted for del ive ry
C: OU IT
S: 221 hamburger . edu closing coonecton
Nesse exemplo. o cliente enviou uma mensagem ("Do you 1 i ke ketchup? How about pi ck 1es ?~) do
servidor ele correio cr epes . fr ao servidor de corrco hamburger . edu. Como pan e do dilogo, o cliente cmiliu
ci nco comandos: HELO (uma abre"iailo d r HELLO), M AIL FROM, RCPT TO, DATA e QUIT. Esses eom:1ndos so
am oex plicat i\lOS, O cliente Lambm en" iou uma linha consis linclo c m um l\nico pont o final, que indica o Onal
d a mensagem para o servido r. (No jargo ASCll, cad a mensagem termi na com CRLF. CRLF, o nd e CR signiica
'carrlage return' e LF signifi ca ' line feed'). O servidor emite respostas a cada comando , e <.-ada resposta tem Lima
codilca.o de resposta e nlgumas explicaes (opcionais) em ingls. Mencionamos aqui que o SMTP us a cone-
xes persis tentes: se o scrvdor de correio remct<:ntc vcr divcrs:.tS mcnsngc ns para enviar ao mesmo servidor de
correio destinm:frio, poder enviar todas pefo mesma conexo TCP. Para rnda mensagem, o dicnLe inicia o pro-
cesso co m um novo MAi L FROl'I : crepes . fr, indica o final da mensagem com um pom o final isolad o e cmile
QUIT somente aps todas as mcns.igens terem sido enviadas.
Recomendamos veementemente que voc utilize o Telnet para executar um d ilogo d ireto com um servidor
SMTP. Para fazer Isso d igte
tel net se rverName 25
ern que serverName o nome de um servidor de correio local. Ao fozer isso, \' CX: es1 simplesmente esta
beJecendo u rna conexo TCP entre seu hospe<lelro local e o servidor d e correio. Aps d igita r ess.; li nha, voc
d ever receber imed:muneme do se rvidor a respos ta 22.0. Dig ite , ento, os co mandos HELO, M Ai l FROM, RCPT
TO, DATA, CRLF . CRLF e OU I T nos momentos apropriados. Tamlx!m recomendamos veemem ement c que vocl faa
a Tarefa de Programio 2 no Ona l deste captulo. Nessa tarefa, voct constru ir lun agente de usurio simples
q ue implemenl a o lado cliente do SMTP. Esse agente permitir que voc e nvie uma mensagem de e-mail a um
d es tinatrio q ualquer, por meio ele um servido r de correio local.

2.4.2 Comporao com o HTTP


Agora, vamos fazer uma breve compamilo entre o SMTP e o HTTP, Ambos os pro tocolos silo usados para
transferir arquivos de um hos ped eiro para o ulro. O HTTP transfere arquivos (tambm denominados o bjetos) de
um servidor Web para um cliente Web (normalmente um browser). O SMTP transfere arqi1ivos {isto , mensage ns
de e-mail) de um s ervidor de correio para outro. Ao trnns fcrir os arquivos, o HTTP persistent e e o SMTP usam
conexes pers.i stenLes. Assim, os dois proLocolos Lm caractersticas em comum. Existem, todavia, diferenas
importantes. A primeira que o HTTP , principalmente, um protocolo de recuperao de informaes (pull
bowot,o4ico.
Rede s de compu1 ad ores e a Internei

protocol) - algum carrega in formaes em um se1vidor Web e os us urios utllzam o HTTP para recuper-las do
servidor quando quiserem. Em 1>articular, a conexo TCP mi,-ada pela mquina que quer receber o arquivo. O
SMTP, por s ua vez, , primordialrnerue, um protocolo de envio de- informaes (push protocol)- o servido r de
correio remetente envia o arquivo para o servidor de correio dcstin:ur io. Ern particular, a concx!lo TCP ativada
pela mquina q ue quer enviar o arquivo.
A segunda dicrcna, .\ qual a ludimos am eriormeme, que o SMTP exige que cada mensagem, inclusive o
corpo, esteja no formato ASCII de 7 bits. Se a mensagem conLiver caracteres que no estejam nesse formato (por
exemplo, caracteres em francts , com acento) ou dados binrios (corno um arquivo ele imagem), ter de ser codi-
ficada cm ASCII de 7 b11.s . Dados HTTP niio impem esta rcslrio.
A terceira diferena importante refere-se ao modo corn o um documento que contm tex to e image m (jun-
tamente com ou tros tipos possveis de midia) manipulado. Como vimos na Seo 2.2, o HTTP encapsula cada
objeto cm sua prpria mcr1sagcm HTTP. O correio pel:1 Internet, como disculirc mos com maiores dcrnlhcs mais
adiante, coloc..i lodos os objetos de mensagem cm um nica mensagem.

2.4.3 Formatos de mensagem de correio e MIME


Quando Alice escreve um.i e.ma a B-ob e a envia pelo correio nonnal, ela pode incluir todos os tipos de
inform:1es perifrics no cabealho da ca rta , corno seu prprio endereo, o endereo de Bob e a data. De modo
semclhamc, quan do uma mensagem de e-mail enviada, um cabealho com endo informaes perifricas antece-
de o corpo da mensage m em si. Essas informaes perifricas est:io co111das em uma sre de lin has de cabealho
defi nidas no RFC 5322. As lin has de cabealho e o corpo da mensagem So separados por uma lin h11 cm branco
(isto , por CRLF). O RFC 5322 especifica o formato exalo das linhas de cabccalho das mensagens, bern como
suas i1uc rpretacs scm!Hicas. Como acontece com o HTTP, cad ..1 linha de cabealho co1um um texto legvel,
consisLindo cm uma palavra-cha,,e seguida de do is-pontos e de um valor. Algumas palavras-chave sllo obrigatrias
e outras, opcionais. Cada cabealho deve ter uma li nh a de cabealho from : e uma To: e pode incluir tambm
um a Subjec t: bem como Olllras opcionais. importam e notar que essas lin has de cabealho so cliferc111es dos
comandos SMTP q ue estudamos na Seo 2.4. l (ainda que contenham algumas palavras em comum, como Jrom'
e 'to'). Os comandos daque la seo faziam parte do protocolo de apresen tao SMTP; as li nhas de cabealho exa-
minad,is nesta seo fazem pa n e da prpria mensagem de correio.
Um cabealho de mensage m t1plco semelhame a:
From: a1ice@crepes.fr
To: bob@hamburger . edu
Subject: Searching for the rneaning of life.
Aps o r;abcalbo da mens:agetn, vem uma linha em branco e, cm seguidl, o corpo da mcns.igem (em ASCJJ).
Voc poclc usar o Tclnct para enviar a um servidor de correio uma mensagem q ue co ntenha algumas linhas de cabe-
alho, inclusive Subject : . Para tal, utilize o comando tel net serverName 25, como discutido na Sc..10 2.4.1.

2.4.4 Prolocolos de acesso oo correio


Quando o SMTP cmrega a mensagem do servidor de correio de Alice ao servidor de correio dr Bob, ela
colocada na caixa pos1al de Sob. Du rante toda essa dscuss-Jo, flco u taci1amentc su ben tendido que Bob l sua
corrcspond~ncia ao ent rar no hospedeiro servidor e. cm seguida, execu ta o leitor de correio que roda naquela
m,lquina. At o inicio da cl<:ada de 1990, este era o modo padronizado de ac1:Ssar o correio. Mas hoje o acesso
ao correio usa u ma arqui tetura cliente-servidor - o usurio tpco l e-m:,ils com um cliente q ue funciona em
seu sis tema i nal , por exemplo, u m PC no escritrio, um laptop ou um PDA. Quando executam um cliente ele
correio em PC local, usurios desfruLam de uma srie de propriedades, inclusive a capacidade de ver mensagens
e anexos mu lti mdia.
Dado que Bob (o destinatrio) executa seu agente de usurio em seu PC local, natural que ele considere
a instalao de um servidor de correio nessa mquina. Adotando essa abordagem, o servidor de correio de Alice
bowot,o4ico.
93
Coplulo 2
-------
Cornada de aplicoso

dialogaria dirernmcnte com o PC de Bob. Porm, h,l um problema com essa abordagem. Lembre-se de que um
servidor de correjo gerencia caixas postais e executa os lados cliente e servidor cio SMTP. Se o servidor de correio
de Bob residisse em seu PC local, este teria de icar sempre em funcionamento e ligado na lnterncL para poder
receber novas correspondcncias que poderiam chegar a qualquer hora, o que n.,o pruco para muitos usu.rios
da Internet. Em vez disso, ~Lm usurio tpico executa um agente de usurio no PC local, mas acessa s ua ca ixa
posrnl armazenada em um servidor de correio compartilhado que est sempre em funcionarnenLO. Esse servidor
de correio compartilhado com ouuos usurios e, em gemi, mantido pelo ISP do usurio (por exemp lo, uni-
vtrsldaM ou cmprtsa).
Agora. vamos considerar o caminho que uma mensagem percorre quand o enviada de Alice para Bob.
Acabamos de :iprender que, cm algum ponlo ao longo do caminh o, a mensagem de c-mall prccis.1 ser depositada
no servidor de coJTeio de Bob. Essa tarefa poderia ser realizada simplesmente fazendo com que o agente ele usu.~
rio de Alice e nviasse a mensagem dretanHnte ao servdor de correio ele Bob, o que pode ser feito com o SMTP -
rcalmeme, o SMT? foi projetado para enviar e-mail de um hospedeiro para oulro. Contudo, normalmente o agen-
te ele us urio do remete nte no dialoga diretamente com o servidor de co rreio do destinatrio. Em vez disso. como
mostra a Figura 2.18. o agente ele usurio ele Alice usa SMTP paro enviar a mensagem de e-mail a seu servido r de
correio. Em seguida, esse servidor usa SMTP (como um cliente SMTP) para retransmitir a mensagem de e- mail
paro o servidor de correio de Bob. Por que esse procedimento em duas etapas? PrimordialmenLc porque, sem a
retransmisso atravs do servidor de correio de Alice, o agente de usuro dela no dispe de nenhum recurso
para um servidor de correio de desti na1rio que nt\O pode ser akanado. Fazendo com que Alice primernmente
d eposite o e-mail cm seu prprio servidor de correio, este pode tentar, vrias vezes, enviar a mensagem ao sc_r-
vidor de correio de Bob, digamos, a cda 30 minutos, at: que esse servidor entre em operao. (E, se o servidor
de correio de Alice no estiver funcionando, ela ter o recurso de se queixar ao adminis trador do seu sistema!)
O RFC do SMTP define como os comandos do SMTP podem ser usados para retransm itir u ma mensagem por
vrios servidores SMTP.
Mas ainda falta uma pea do quebra-c.-abea! De que forma um destinatrio como Bob, que executa um agente
de usurio em seu PC local, obu!m suas mensagens que esto cm um servidor de correio dencro do seu LSP? 1 oce
que o agente de usurio de Bob no ,,ode usar SMTP p.ir.i obler as mensagens porque essa operao de recu-
pera-.10 (pulT), e o SMTP um protocolo de cn\fiO (push). O quebra-cabc~1 concludo com a iruroduo de um
protocolo especial de acesso ao correio que Lrnnsfere mensagens do servidor de correi o de Bob para seu PC local.
Atua lmcnle, h vrios p rotocolos populares ele acesso a correio, mlre e-1:s POP3 (Post Olice Protocol verso 3),
IMAP ( Internet Mail Access Pro tocol) e HTTP,
A Figura 2.18 apresenta um resumo dos protocolos usados no correio da Internet: o SMTP utilizado para
transferir corrcspondCncia do servidor de correio remetente pam o servidor de correio destinatrio; tambm
usado para transferir co rrespondncia do agente de usurio remetente para o senidor de correio remetente. Um
protocolo de acesso de correio, como o POP3, usado para transforir correspondncia do servidor de correio
des tinatrio para o agente de usurio destinatrio.

POP3
O POP3 um protocolo de acesso de correio extremameme simples. definido no RFC 1939, que uuto
e bem fcil de ler. Por esse protoco lo ser to si mples, sua funcionalidade bastame limitada. O POP3 comea

Se-rvldorde SetVidor do
torreio de Alire rorreio de Bob

~ ~
A9ente ~ l::ltfilru Agente
deBob
ru wIli
de Alice SMTP S!IIITP POPJ,
[lj Ili lli IMAP. ou
HTIP

Figura 2.18 Protocolos de e-moil e suos entidades comunicantes


bowot,o4ico.
94 Rede s de compuladores e a Internet

quando o agemc de usurio (o cliente) abre uma concx;,o TCP com o servidor de correio (o servidor) oa porca
110. Com a conexo TCP aLivada, o protocolo passa por trs fases: autorizao, Lransao e atualizao. Durante
a primeira fase, au1orizaiio, o agente de usurio envia um nome de usurio e uma senha (s claras) para au1en
licar o usurio. Na segunda fase, trnns.'\-Jo, recupera mensagens; <! tamb<!m nessa fosc que o agente de usu ri o
pode marcar mensagens que devem $C-r apagadas, remover essas marcas e obter cslalisticas de correio. A terceira
fose, aLualiza-Jo, ocorre a1>s o cliente ter dado o comando qui t que encerra a sesso POP3. Nesse momento, o
servidor de correio apaga as mensagens que foram marcadas.
Em uma mmsa,J.o POP3, o agcme de usurio emite comandos e o servidor, uma resposta para cada um d eles.
H duas respostas possveis: +OK (s vezes seguida de dados do senidor p.ua o cliente). usada pelo servido r para
indicar q ue co rreu 1udo bem com o comando anterior e -ERR, que o servidor usa para Lnformar q ue houve algo
errado com o comando anterior.
A fosc de a u1oriza.l.o tem dois comandos principais: user <user name> e pa ss <pa ss11ord>. Para ilus1rar
esses dois comandos, s ugerimos que voct realize uma sesso Tclnet dirctamcnle com um servidor POP3. usando
a porta 110, e emita os dos comandos. Suponha que ma i 1Server seja o nome de seu servidor de correio. O que
voc ver ser algo parecido com:
telnet mai1Server 110
+OK POP3 server ready
user bob
+OK
pass hungry
+OK user successfully logged on
Se voc escrever um comando errado, o POP3 responder.\ com uma men.s-.,gcm -ERR.
Agora, vamos exami nar a fase de transao. Um agente de usurio que utiliza POP3 requc mememe pode ser
(;Onfigurado ( pelo usurio) para 'lereapaga r ou para ' ler.e-guardar". A sequncia de comandos emi tida por um
agen te de usu~rio POP3 depende do modo cm que o agente de us urio cs1i,cr op erando. No modo lcr-eapagar,
o agente de usurio emite os co mandos 1 is t, ret r e de 1e . Como exempl o, suponha que o usu,irio tcnh.~ duas
mensagens em s ua caixa pos1al. No dilogo abaixo, C: (que representa o cliente) o agente de us urio e S: (q ue
represem a o servidor), o servidor de corrdo. A transa\o ser mais ou menos assim :
e: 1 i st
S: 1 498
S: 2 912
S:
C: retr 1
S: (b lah blah
s: . " ............. .
S: .......... blah)
S:
C: dele 1
e: ret r 2
S: (blah blah
S: . ............... .
S: ......... . blah>
S:
e: dele 2
e: qui t
S: +OK POP3 server signing off
O ageme de usurio primeirameme pede ao servidor de correio que apresente o tamanho de cada uma
das mensagens armazenadas. Emo, ele recupera e apaga cada mensagem do servidor . Note que, aps a fase de
bowot,o4ico.
95
Coplulo 2
-------
Cornada de aplicoso

au1orlza1\o, o age n1e d e: us urio empregou apenas quauo comandos: 1is t, retr, de l e e q ui t . A sin1axe para
esses comandos defin ida no RFC 1939. Depois d e processar o comando de safda (czuc), o servidor POP3 en1ra
na fase de a tualizao e remo,e as mensagens l e 2 da caixa pos1al.
H um problema com o modo kr-e-apagar: o des1inatrio, Bob, pode ser nmade e querer acessar seu correio
de muitas mquinas, por exemplo, do PC de seu escritrio, do PC de sua casa e de seu computador porn\1il. O
modo ler-e-apagar repane as mensagens de correio de Bob entre essas Lr!s mquinas; cm particular, se ele ler
primeira menlc uma mensagem no PC de seu escri1rio, n.lo poder 11!-la novammle mais tarde em seu compt11;_1clor
porttil. No modo ler-e-guardar, o agen te de usurio deixa as mensagens no servidor d e correio aps clesc.,.irrcg-las.
Nesse caso, Bob pode reler mensagens cm mquinas diferences; pode acessar uma mensagem em seu local de
1rabalho e, uma semana depois, acess-la novamen1e em casa.
Durante uma sesso PO P3 entre um agente de usurio e o servido r de correio, o se1v idor POP3 mantm alguma
informa-J.o de estado; em pan[cular, moni1orn as mcnsagcn.s do usurio mamtda.s para apagar. Comudo, no mamm
infonna~\o de eslado entre scsscs POP3. Essa falia de infomt.i~o simplifica a hnplemcn mo de um servidor POP3.

IMAP
Usando POP3, ass im q ue baixar suas mensagens na mquina local, Bob pode criar pas lru; de corrcspondCncia
e transferir as mensage ns baixadas para e las. Em seguida, pode apagar as mensagens, mud-his de pas1as e pro-
curar mensagens (por nome de remetcnle o u assunlo). Mas esse paradigma - pa.s tas e mensage ns na mquina
local - ap rescma um p roblema para o usurio nmade que gosiaria de mamer uma h ierarquia de pastas em um
servidor remo10 que possa ser acessado de qualquer computador: com o POP3, isso no possi\lel, Esse pro1ocolo
no pro\!! nenhum rneio para u m usurio criar paslas remotas e designar mensagens a pastas.
Para reso lver esse e ouc.ros problemas, foi inventado o prowcolo lMAP, dell nldo no RFC 3501. Como o
P0?3, o IMAP um protocolo de acesso:, correio, porm com mais recursos, 1m\s lambtn signi fia uivamen1e
mais complexo. (E, portanto. tambm as implementaes dos lados cliente e seNidor so sig11iflca1ivamente mais
complexas.)
Um servidor IMAP associa <.'tida mensagem a um::i pas1a. Quando uma mensagem chega a um servidor pela
primcm vez, associada com a pasla INBOX do dcsnatrio, q ue, enlo, pode transferir a mensagem para uma
nova pasta criada por ele, l-la, apag-la e assi m por d iante. O pro1ocolo IMAP prov t'omandos q ue permitem q ue
os usu:irios criem pas tas e transfiram mensage ns de u ma para outra. O protocolo 1amb m prov comandos q ue os
ttSt1:lrios podem usar parn pesqttisiu pasrns remotas cm buSC\ de mensagens que obedeam a cri1rios especficos.
Note qtlC, diforememem c do POP3, u m servidor IMAP mantm informao de estado de usurio cmre sesses
IMAP - por exemplo , os nomes das pastas e q uais mensagens esto associadas a elas.
Ou1ra c.arac1crfs1iea lrn porlan1c do IMAP que ele 1em comandos que pcrrn i1cm que u m agemc de usurio
obtenha cornponcn1es de mensagc11s. Por exemplo , um agente de usurio pode obter apenas o cabealho ou
someme uma das partes de uma mensagem MIME multipan e. Essa caracterstica til quando h uma conc-
xilo de largura de banda estreita entre o agen te de usurio e seu servidor de correio, como, por exemplo, uma
conexo de modem sem fio ou de baixa ,elocidade. Com uma conexo de peqttena largura de band:1, o usu ri o
pode decidir no baixar todas tlS mensagens de sua 1.:aixa postal, e,i1:1ndo, cm parlirnhr, u1c.usager1s lo ngas q ue
possam conter, por exemplo, um cl ipe de udio ou d e ,,icleo. Se quiser ler tudo sobre o l MAP, consul te o site
oficial [fMAP, 20091.

E-mail pelo Web


Hoj e, um nmero cada vez maior de. us urios est enviando e acessando e-mails por meio de. seus browsers
Web. O Ho tmail lanou o e-mail c:om ac:c:sso pela Web cm meados da dcada ele 1990; agom, esse lipo de acesso
provido por prnlicamcn1e todos os shes ISP, bem como universidades e empresas imporum1cs. Com esse servio,
o agente de usurio um browsc:r Web comum e o usurio se comun ic-.l com sua c-,\ixa pos1al remota ,ia HTTP.
Quando um destinatrio, por exemplo, Bob, quer acessar uma mensagem em sua caixa postal, ela enviada cio
servidor de correio para o browser de Bob usando o protocolo HTTP, e no os protocolos POP3 ou IMAP. Quando
bowot,o4ico.
Redes de compulodores e o Internet

um remetente, por exemplo, Alice, quer enviar uma mensagem de e-mail, esta enviada do browscr de Alice para
seu servidor de correio por HTTP, e no por SMTP. O servidor de correio de Alice, contudo, ainda envia mensa-
ge ns para outros servidores de correio e recebe mensagens de outros seniidores de correio usando o SMTP.

2.5 DNS: oservico


, de diretrio da Internet
Ns, seres humanos, podemos ser identificados por diversas maneiras. Por exemplo, podemos ser iden tifi-
cados pelo nome que aparece cm nossa certido de nascimento, pelo nmero do RG o u da carteiro de motorista.
Embor:i eacla um desses nmeros possa ser usado para iclcntificar pessoas. c m um dado contexto um pode ser
mais adequado q L1e o utro. Por exemplo , os computadores da Reccta Federal preferem usar o mmero do CPF (de
tamanho fixo) ao nome que consta em nossa certido ele nascimento. Por outro lado, pessoas comuns preferem
nosso nome ele batismo, mais fcil de lembrar, ao mimero do CPF. (Realmente , ,od' pode se imaginar dizendo:
~oi, meu nome 132-67-9875. Este meu marido, 178-87-lH.,?}
Assim como seres humanos podem ser idemificados de muitas maneiras, exatamellle o mesmo acomece
com hospedeiros da Internet. Um idemiicaclor seu nome de hospedeiro (hosrnamc). Nomes de hospedeiro -
como cnn. com, www.yahoo.com, ga ia. cs. umass. edu e eis. pol y. edu - so fceis de lembmr e, portanto,
apreciados pelos seres humanos. Todavia, eles fornecem pouca, se que a lguma. ino rma~'lo sob re localizao
de um hospedeiro na I ntcrnet. (Um nome co rno ww~I. eurecom . f r. que termina com o cdigo do pais . fr, nos
informa q ue o hospedeiro provavelmente esu\ na Frana, mas no diz muito mais do que Isso.) Alm disso, como
nomes ele hospedeiros podem consistir cm caracteres alfanumricos de comprimemo varivel, seriam d ifceis de
ser processados por roteadores. Por CSS.'\S razes, hospedeiros tambm so identificados pelo que denomirtamos
endereos IP. Discutiremos endereos IP mais detalhadamente no Capitulo 4, mas importante falar um p<>uco
sobre eles agora. Um endereo IP conslituclo de 4 bytes e sua estrutura hierrquica rgida. Ele semelhante a
121 , 7 . 106. 83, no qua l cada ponto separa um cios bytes expressos cm notao dedmal de O a 255. Um endereo
IP hierrquico porque, ao examin-lo da esquerda para a direii.a, obtemos gradativamente mais infonnaes
especificas sobre onde o hospedeiro csL localizaclo M lnLernet {isto , cm qual rede, dentre as muitas que com-
pem a Internet) . De maneir.i. semelhante, quando e.-:aminamos um endereo postal de cima para baixo, obtemos
informaes cada vez mais especncas sobre a localiz.a.lo do destinnt.\rio.

2.S.1 Servios fornecidos pelo DNS


Acabamos de ver q ue h duas maneiras de identificar um hospedeiro - por um nome de hospedeiro e por
um endereo IP. As pessoas preferem o identificador nome de hospedeiro por ser mais fci l de lembrar, ao passo
que roteaclores preferem endereos IP ele comprimento fixo e estruturados hierarquicamente. Para conciliar essas
prefer:ncas, necessrio um servo d e diretrio que traduza nomes de hospedeiro para endereos IP. Esta a
tarefa principal do OtfS (do111ai11 11ame sysrem - sistema de nomes de d omnio) da lnternel. O DNS (1) um
banco de dados distribudo lmplcmemado cm uma hierarquia de servi dores de nome (servidoro. DNS), e
(2) um protocolo de camada de aplicaio que permite que hospedeiros consultem o banco de dados distribuido.
Os servido res de nome so frequentemente mquimtS UNIX que execuwm o software BINO (Berkeley lnternct
Name Oom:1in) !BINO, 2009 1. O protocolo DNS uli lizn UDP e usa a porta 53.
O DNS comumcnte empregado por outras cnticladcs da camada de apl icao - nclusi"e HTIP. SMTP e
FTP- para tmduzir nomes ele hospedeiros fornecidos por us urios pilra cr1dereos IP. Como exemplo, considere
o que acontece quando um browser (isto , um cliente HTTP), que executa na mquina de algum usurio, requi-
sita o URL www. somes choo 1 . edv/ i ndex. html. Pam que a mquina do usurio possa enviar u ma mensagem
de requisio HTTP ao servidor Web wwlf. someschoo l . edu, ela precisa primeiramente obter o endereo IP de
w~1w . someschoo l . edu. lsso fato da segui m e maneira:
1. A prpria mquina do usurio executa o lado cliente da ap lkao ONS.
2. O browser extrai o nome de hospedeiro, lMW. someschoo l . edu, do URL e passa o nome para o lado
cliente ela aplicao DNS.
bowot,o4ico.
97
Coplulo 2 Cornada de aplica~o

3. O clcnte DNS envia uma consulta con1endo o nome do hospedeiro para um servidor DNS.
4. O cliente ONS fina lmente recebe uma resposta, que inclui o endereo 11' correspondente ao nome de
hospedeiro.
5. To logo o browser receba o endereo do ONS, pode abri r urna conexo TCP com o processo servidor
HTTP IOC1li?l\do naquele endereo IP.
Vemos, por esse exemplo, que o DNS adiciona mais um a u-aso -s vezes subslancial - s api icaes de llllernel
que o 11s.'\il1. Fcllzmcmc, como discutiremos mais ad,ntc, o rmderC'O lP procurado Crcqucmcmcmc est no cache de
um servidor DNS 'prximo', o que ajuda a reduzir o 1rMego DNS na rede, bem como o atraso mdio do DNS.
O DNS prove ,1lguns outros servios imponarucs alm da traduo de nomes de hospedeiro par.1 endereos IP:
Apelidos de hospedeiro. Um hospedeiro com nome complicado pode ter um ou mais apelidos. Um
nome como r elayl . wes t coas t . ente rpri se . com pode ter, por exemplo, dois apelidos, como
enterpr i se . com e ~iww . enter pr i se . com. Nesse caso, o nome de hospedeiro re l ay l . v1est coas t .
en t erpr i se . com de1\o mlnado nome cannico. Apelidos, quando existem, s-.10 er1:1 gemi mais facels
de lembrar do que o nome cannico. O ONS pode ser chamado por uma aplica~o para obter o nome
cannico corres pondente a um apelido fornecido, bem como para obter o endereo IP do hospedeiro.
Apelidos de servidor de correio. Por raz<}~ b,ias, adequado que endereos de e-mail sejam faccis
de k mbr.tr. Por exemplo, se Bob 1cm uma coma no HoLm,til, seu endereo de c-mail pode ser sirnplcs-
meme bobtiot ma f l . com. Con1udo, o nome de hospedeiro do servidor do Hotmail mais compli.cado
e muito mais difcil de lembrar do que simplesmente hot ma i 1 . com (pr exemplo. o nome cannico
pode ser algo parecido com re 1ayl.westcoas t.llot ma i l . com). O DNS pode ser chamado por
uma aplicat.~io de correio pam obter o nome cannico a partir de um apelido fornecido, bem <.-01110 o
endereo IP do hosptldeiro. Na verdade, o rcgisLro MX (veja adiante) pcrmile que o servidor de correio
e o servidor Web de uma empresa tenham nomes (apelidos) id! mcos; por exemplo, o servidor Web e
o servidor de correio ele uma empresa poclcm ambos ser denominados enterpri se. com.
Distribuio de carga. O ONS tambm usado para realizar distribuio ele c,irga en tre servidores
replkados, Lais como os servidores Web replk11dos. Stes movimenLados c;omo cnn. com so replicados
em vrios servidores, sendo que cada servidor roda cm um sistema inal diferente e tem um endereo
IP diferente. Assim, no caso de servidores Web replicados, um co11j 111uo de endereos IP fica associado a
um nico nonic cannico e contido no banco de dados do ONS. Qu11ndo clientes consultam um nome
mapeado par'.1 um conjunto de endereos. o ONS responde com o conjunlo intei ro ele endereos IP. mas
faz um rodzio da ordem dos cudereos demro de c.tda rcsposLa. Como urn cli ente normalmente envia
SLta mensagem de requisio HTTP ao endereo IP que ocupa o primeiro lugar no conjunto, o rodzio

DNS: funes decisivos de rede via porodigmo cliente-servidor


Como os prolocolos HTTP, FTP e SMTP, o DNS um protocolo do comodo de oplcoo, j6 que (1) rodo e ntre
sistemos finais comuniconle.1 usando o porodigmo cliente-servidor e (2) depende de um protocolo de transporte
fim o fim subjocetHe poro tronsferir me1uo9ens DNS en tre sistemas finois comuniconies. Em 01Jtro sentido,
contudo, o papel do DNS boslonle diferente das aplicoes Web, do transferncia de arquivo e do e-moil.
Diferentemenle denos aplicaes, o DNS no uma ap lkoo com a qual o usu rio interage diretamente. Em
vez: di~so, Fornece uma funo inferno do Internei - a saber, a traduo de nomes de hospedeiro paro seus
endereos IP subjacentes, poro aplicaes de usurio e outros sohwares da Internei. Notemos, no Seo 1.2, que
muiro do comple)(idode do arquitetura do Internei e$1 locolizodo no ' periferio' do rede. O DNS, que implemento
o processo crucial de troduo de nome poro endereo usando clientes e servidores locolizodos nas bordas da
rede, mais um exemplo dessa filosofia de projeto.
bowot,o4ico.
Redes de compulodo res e o Internet

de DNS <Lstribui o Lrfcgo entre os servidores rcpLcados. O rodzio de DNS 1ambm llsado para
e-mail, de modo que ,rios servidores de correio podem ter o mesmo apelido. Recemememe. empresas
distribuidoras de conte(tdo como a Akamai (Akamai, 2009) passaram a usar o DNS de maneir.1 mais
solsLic:ad;1 para prover disLribui-Jo de contedo na Web (veja Capwlo 7).
O DNS est especficado no RFC 1034 e no RFC 1035 e aLualizado cm diversos RFCs adicionais. um
sistema complexo e, neste li,ro. apenas mencionamos os aspectos undamentais d e sua operai'o. O leitor
interessado pode consultar os RFCs citados, o livro escrito por Abilz e Uu [Abiu, 19931 e tambm o artigo de
[Mockapctris, 1988). que apresenta uma rctrospectivn e uma Lima descrio do que e do porqut do DNS, e
IMockapmis, 2005].

2.5.2 Viso gerei do modo de funcionamento do DNS


Apresentaremos, agora, uma ,iso panor-~miCll do modo de funcionamento do DNS. Nossa discusso focali-
zar o S<:rvi,o de 1radu,0 de nome de hospedeiro parn endcrc,o IP.
Su ponha que uma certa aplicao (como um browser Web ou um lei tor de correio), que executa na mq ui-
na de um usurio, precise traduzir um nome de hospedeiro para um endereo IP. A aplicao chamar o lado
cliente do DNS, especificando o nome de hospedeiro que precisa ser Lraduzido. (Em mui1as mquinas UNIX,
ge th os tbyname ( ) a cham:1da de funo que uma aplica~~,o invoca para rll':\l izar a traduo. Na Sc<;'o 2.7.
mostmremos como uma aplica,10 Jav.t pode chmnar o DNS). A partir dai, o ONS do hospedeiro do usurio assu-
me o controle. enviando uma mensagem de consuha para dcnLro da rede. Todas as mensagens de consulta e de
resposta do ONS so enviadas dentro de dmagmmas UDP porta 53. Aps um atraso na faixa de milissegundos
a segundos, o DNS no hospedtro do us uri o recebe uma mensagem de resposta DNS fornecendo o mapeamento
desejado, que , ento, passado para a aplica.lo que est interessada. Portanto, do ponto ele vista dessa aplicao,
que est na mquina do cliente, o ONS uma caixa-preta que prov~ um servio de Lmdui\o simples e direto.
Mas, na realidade. a caixa-preta que implemema o servio complexa, consisLndo em um grande mlmero de
servidores de nomes dis Lrlmdos ao redor do mundo, bem como em um protocolo de camada de aplicao que
especifica como se comunicam os servidores de nomes e os hospedeiros que azem a consulrn.
Um arranjo simples para DNS seria ter um servidor de nomes comendo todos os mapcamemos. Nesse pro-
jeto centralizado, os clientes s implesme111e dirigiriam todas as consulLas a esse nico servido r de nomes, que
responderia diretamente aos clientes que csto fazendo a consuha. Embora a simplcidade de55e arranjo seja
atraente, ele n.lo adequado para a Internet de hoje com seu vasto (e crescente) nmero ele hospedeiros. Dentre
os problemas ele u m arranjo centralizado, esuio:
Um imieo ponto de falha. Se o servidor de nomes quebrar, a Internet tnteira quebrar!
Volume de tnifogo. Um t\nico servdor de nomes teria de manipular todas as cons ultas DNS (para
todas as requisices HTTP e mensagens de e-mail geradas por eenienas de milhes de hospedeiros).
Banco de dados cen tralizado dista n te, Um (mico servidor de nomes mmca podc ri,t estar 'prximo'
de todos os clientes que fazem consultas. Se colocarmos o nico servidor de nomes na cidade de Nova
York, todas as buscas provenie111es da Austrlia Lero de vfr~ar at o outro lado do globo, talvez por
linhas len1as e congestionadas, o que pode resuhar em .11rasos s ignifi t--ati vos.
Manuteno. O L.nico servidor de noines teria de manter registros de todos os hospedefros da lntemeL.
Esse banco de dados no somen1e seria enorme, mas tambm teria de ser atualizado frequentemente
para aLender a todos os novos hospedeiros.
Em resumo. um banco de dados centralizado cm um nico servidor DNS simplesmen te no escalvel.
Consequentemente, o DNS distribuldo por conceito de projeto. Na verclade, ele um timo exemplo de como
um banco de dados disLribudo pode ser implcmcnrado na l111emc1.

Um banco de dados distribudo, hierrquico


Para tratar da questo da escala, o DNS usa um grande nmero de servidores, organizados de maneira hie-
rrqui.ca e distribudos por todo o m undo. Nen hum servidor de nomes isolado tem todos os mapeamentos para
bowot,o4ico.
99
Captulo 2 Cornada de apl ico!O

todos os hospedeiros da Lmernet. Em vez dsso, os mapeamentos so dstrbudos pelos servido res d e nomes.
Como uma primeira aproxirna-ao, lu\ tr~ classes de servidores de nomes: servidores de nomes ra ii:, servidores
DNS de domnio de alto nvel (rop~leYe/ c/omain - TLD) e servidores DNS com autoridade - organizados em
uma hierarquia, como mostra a Figura 2.19.
Para entender como essas trs classes de servidores interagem, suponha que um cliente DNS queira deter-
minar o endereo IP para o nome de hospedeiro www. amazon. com, Como uma primeira ap roximac;flO, ocorrerilo
os seguin tes e,entos. Em primeiro lugar, o cliente contatar um dos servidores raiz, q ue retornar enderccos
IP dos servidores TLD para o domnio de aho nvel com. Enulo, o cli<mte conunar:\ um desses servidores TLD,
que relornar o endereo IP de um servidor com autoridade para amazon . com. Finalmente. o clienle contatar
um dos servidores com muoridade par., arn,u:on.com, que retornar o endereo IP para o nome ele hospedeiro
www , amazon . com. Mais adiante, ana lisaremos mais detalhadamente esse processo d e consulta DNS. Mas. em
primeiro lugar, vamos examinar mais de peno as ires classes de servidores DNS.
Servidores de nomes raiz. Na Internei h;I 13 servidores de nomes raiz (denominados de A a M) e a
maior parte deles est localizi\da na Amrlca do Norte. Um mapa de servidores de nomes rai.:. de outu-
bro de 2006 mostrado na Figura 2.20; uma lista dos servidores de nomes raiz existentes hoj e est
disponvel em [Root-scrvers, 2009). Embora tenhamos nos referido a cada um dos 13 servidores de
nomes raiz como se fossem um servidor nico. na real idade, cada um um conglomerado de scl'\idores
replicudos. para lns de segurana e confiabilicladc.
Servidores de nomes de Oominio de Alto Nivel (TLO). Esses servidores so responsveis por
domnios de alto nvel como com, org, ne1, eelu ego,, e por todos os domnios de alto ni,el de pases,
tais como uh.fr, rn e)J>. A empresa Network Solmions mantinha os servidores TLD para o domnio de
alto nvel com e a empresa Educause man tinha os servidores para o domnio de alto nvel r,fo .
Servi.d ores de nomes com autorida de. Toda organizao que tiver hospedeiros que possam ser aces-
sados publicmnente na lnLernet (co mo servidores Web e servid ores de correio) deve fornecer regisLros
DNS tamb<:m acessveis publicamente que mapeiem os nomes desses hospedeiros para endereos IP.
Um servidor DNS com autoriclade de uma organi zao abriga esses registros. Uma o rgan izao pode
preferir implementar seu prprio servido r DNS com aucoridade para abrigar esses registros ou, como
alcemativa, pode pagar para armazen-los cm um servi.dor DNS com amoridade d e algum provedor de
servio. A maioria das uni\ersidades e empresas de grande porte implemc111am e mantm seus prprios
servidores DNS primrio e secundrio (backup) com autoridade.
Os servidores de nomes raiz, T LD e com au toridade pertencem hierarquia de servidores DNS, como mostra
a Figura 2.19. H~\ um outro tipo imponame de DNS, denominado servidor DNS local, que no pertence, estri-
tamente, hierarquia de servidores, mas, mesmo assim, central para a arquitetura DNS.
Cada !SP - como o de uma universidade, de um departamento acad~mico, de uma empresa ou de uma
residncia - tem um servidor de nomes local (tambm denominado servidor de nomes default). Q uando um
hospedeiro se conecta com u m ISP, o ISP fornece ao hospedeiro os endereos IP de um ou mais ele seus ser"idores

servidores DNS raiz

servidores DNS tom servidores DNS or9 servidores DNS edu

s.ervidorec~ DNS servidores DNS servidores DNS s.ervidores DNS servidores D NS


yahoo.com amazon.com pbs.org poly.edu umass.edu

Figura 2.19 Partedahierarquia de servidores DNSs


bowot,o4ico.
Redes de compu1adores e a Internei

de nomes locais ( nonnalmemc por DHCP, que seni discutido no Captulo 4). Dcumnlnar o endereo lP do seu
servido r de nomes local fcil: basta acessar as janelas de estado ela rede no Windows ou UNIX. O servidor de
nomes local de um hospedeiro normalmente est 'prximo' dele. No caso de um ISP inst itucional, pode estar
na mesma LAN do hospedeiro; j no C1\SO de um ISP residencial, cm gemi o servid or de nomes est separado
do hos pedeiro por no mais do que alguns roteadores. Quando um hospedeiro faz uma consulta ao DNS, ela
enviad;1 ao servidor de nomes local, que age corno proxy e a retransmite para a hierarquia do servidor DNS, como
discutiremos mais detalhadamente a seguir.
Vamos examinar um exemplo si mples. Suponha que o hospedeiro eis . po1y . edu d~je o endereo lP de
gai a. cs . v~ss . edv. Suponha tambm que o servidor de nomes local da Polytcchnic seja denominado dns . poly.
edu e que um se rvidor de nomes com autoridade para ga ia . cs . umass. edu seja denominado dns . umass . edu.
Como mostra a Figura 2.21 , o hospedeiro e Is. po l y. ectu primeiramente envia uma mensagem de consulta DNS
a seu servidor de nomes local dn s . pol y .edu. Essa mensagem co111m o nome de hospedciro a ser trad uzido,
islo . ga ia . cs. uma ss . edu. O sel'vidor de nomes local transmite a mensagem de consulta a um servidor de
nomes raiz, que percebe o sufixo cdu e retoro:, 110 servidor de nomes local uma lista de endereos IP contendo
servido res TLD rcspor1s1\Veis por edu. Ento, o servidor de r1omcs loc.11 retransmite a mensagem de 1.:onsulta a
um desses servidores TLD que, por sua vez, percebe o sufixo umass.edu e responde com o ende reo IP do
servidor de nomes com autoridade para a Universit)' of Massachuseus, a saber, dns. umass. edu. Finalmente,
o servidor de nomes l0<.~l 1eenvia a mensagem de consulta direwmeme a dns . umass. edu, que responde com o
endereo IP de ga ia. cs . umass. edu. Note que, nesse exemplo, para poder obter o mapeamento JX1m um nko
nome de hospedeiro, foram envi.1das oito mensagens DNS: quatro mensagens de consulta e quatro mensagens de
resposta! Em breve veremos como o cache de DNS reduz esse trfego de consultas.
Nosso exemplo anterior aim1ou que o servidor TLD conhece o servidor de nomes com au1oridade para o
nome de hospedeiro, o que nem sempre verdade. Ele pode co nhecer apenas um servidor de nomes intermedi-
rio que, por sua vez, cocthe(;c o servidor de nomes com autoridade para o nome de hospedeiro. Por exemplo,
suponha novamente q ue a Universidade de Massachusetts tenha um servidor de nomes para a universidade deno-
minado dns. umass. edu. Lmagine tambm que cada um dos clcpartamemos da unl.versidade 1cnl1a seu prprio
servidor de nomes e que c,1da servidor de nomes depi1namen1;1I seja um servidor de nomes co m autoridade para
todos os hospedeiros do departamento. Nesse caso, quando o servidor de nomes intermedirio dns.umass.edu
receber uma consulla para um hospedeiro cujo nome termina com cs . umass. edu, ele retornar a dns.1>0ly.cdu
o endereo IP de dns. cs . umass . edu. que tem autoridade para todos os nomes ele hospedeiro que terminam
com cs . uma ss . edu. Ent~o, o servidor de nomes local dns.poly.edu emriar a consulta ao servido r de nomes com

a. Vetisign, Dulles, VA
e Cogent, Herndon, VA (tambm Los Angeles)

7
d. U Maryland College Park. MD
g. US OoO Vienna, VA
e. NASA Mt Vlew, CA ~. ARL Aberdeen, ~D -
f. Internet Software C:" Verlsi n (11 localizaes)
Palo Alto, CA - 1. Autonomica, Estocolmo
(e outras 36 localizaes) ~ (mas 28 outras l0<allu~es )
"-._ 1 k. RIPE London
/ (t ambm Amsterd, 1
/ ....... Franl<(\.lrt)
b. USCISt Marina dei i\ey, CA m. WIOE Tquio
I. ICANN Los Ange les. CA (tambm Seul, Pa ris, San Francisco)

Figura 2.20 Seividores DNS raiz em 2009 (nome, organizao, localizao)


bowot,o4ico.
101
Capitulo 2
--- -------
Cornada de aplico O

Servdor de nomes raiz

0
0
_.

Servidor de nomes local Servidor de nomes no
dns.poly . edu

Servidor de nomes com a utoridade


gaia.cs . umass . edu
Hospedeiro requ isitante
cis.poly.edu

dns.cs .um~ss . edu

Figura 2.2 1 lntero~o devrios servidores 01/S

autoridade, que re1ornar:i o mapeamento desejado para o servidor de nomes loc.11 e que, por sua vez_, o repassar.\
ao hospedeiro requisitante. Nesse caso. sero enviadas dez mensagens DNS no total!
O exemplo mos trado na Figura 2.21 usa cons,dt.as recursivas e consultas iterativas. A consuha enviada
dt cis .po1y .edu para dns . poly . edu recu rsiva, visto q ue pede a dns.poly .eduque obtenh11 o mapearncruo
cm seu no me. Mas as lllS consultas subsequentes s.lo iterativas, visto que iodas as respostas S.lo retornadas d ire-
ta men te a dn s. po l y. edu. Tco1icamcntc, qualquer consulta DNS pode ser iterati va ou recursh~a. Por exemplo,
a f lgura 2.22 mos tra Lima cadeia de consultas DNS na qual todas elas S.lo recursivas. Na pnhka, as consullas
normalmente seguem o pad nto mosm1do na Figura 2.21: a consulta do hospedeiro requisitante ao servidor de
nomes local recursiva e tod11s as ouLras so iLerat.ivas.

Coche DNS
Au! aqL1i , nossa discusso ignorou o ca che DNS, uma caracterstica muilo importante do sistema DNS. Na
realidade, o DNS explora extensivamente o cache pa ra melhorar o d esempenho q uanto ao atraso e reduzir o
nmero de mensagens DNS q L1c ricocheteia pela Internet. A ideia que C'.St por trs do cache DNS muito simples.
Em u rna cadeia de cons ul tas, quando um servidor de nomes recebe u ma resposta DNS (contendo, por exemplo, o
111apcm11cnlo de u m nome de hospedei ro para um endereo IP), ele pode fazer tache das informaes da rcspos
ta em Slla memria local. Por exemplo, na Figura 2.21, toda vez que o servidor de nomes local dns . poly. edu
recebe uma resposta de algum servidor DNS, pode fazer cachc de q Ltalquer ioformav\o contida na resposta. Se
um par nome de hospedeiro/endereo IP estiver no cache de um servidor DNS e om ra consulta chegar ao mesmo
sen idor para o mesmo no me de mquina, o ser,iidor d e nomes poder fornecer o endereo l P desejado, mesmo
qllc n:lo tenha autoridade para esse nome. Como hospedeiros e mapcamer1los cmre hospedeiros e endereos IP
no so, de modo algu m, permanentes, aps um perodo de tempo (frequentemente do is dias), os servidores DNS
descartam as informaes armazenadas em seus caches.
bowot,o4ico.
102
Redes de compuladores e a Internet

Servidor de nomes ra ii:

ef 0
0

Ser.iidor de nomes tocai Servidor de nomes TLO


dns.poly.ec:lu


CD

Servidor de nomes com autoridade


Hospe(leiro requi$itante dns.cs.umass.edu
cis . poly.edu

gala . cs . umass . edu

Figura 2.2 2 (omul!os 1ecwivos em DNS


Corno exemplo, imagine que um hospedeiro aprl cot . po 1y . edu consulle dns . pol y . edu para o endere-
o IP da mquina cno. com. Alm disso, suponha que algumas horas mais tarde oull'a mquina da Polytcchnic
University. digamos. kiwi . po 1y. fr 1..unbm consulte dns. pol y. edu para o mesmo 11ome de hospedeiro. Por
1.-ausa do cache, o servidor local podera irnedinl:unente retornar o endereo IP de cnn. com .1 esse segundo hos-
pedeiro requisitan te, sem ler de consultar quaisquer outros servidores DNS. Um servidor de nomes loal tambm
pode fazer cachc de endereos IP de servidores TLD, permitindo, assim, que servidores de no mes locais evitem
os servidores de nomes raiz em uma cadeia de consultas (isso acontece frequentemen te).

2.S.3 Registros e mensagens DNS


Os servidores de nomes que juntos im plememam o banco de dados dislribu!do do DNS ar mazenam regis-
u os de recursos (RR) q ue fornecem mapeamemos de nomes de hospedeiros para endereos IP. Cada mensagem
de res posta DNS C'.trrcga um ou mais ~gistros de recursos. Nesta seo e na subsequente, aprese ntaremos uma
breve viso geral dos registros de recursos e mens agens DNS. Para mais deta lhes, consulte IAbitz, 19931 ou [RFC
1034; RFC 1035].
Um regis tro de recurso uma 1upla de qua1ro elementos que comm os seguimes campos:
( Name . Value . Type , TTL >
TTL o lempo de vida til do registro de recurso; determina quando um recurso <kve S-er remov ido de um
C'.tchc. Nos exemplos de registros dados a seguir, ignoramos o campo TTL. Os significados de Hame e Value
dependem de Ty pe:
Se Ty peA, eniilo Name u.m nome de hospedeiro e Va 1ue o endereo IP para o nome de hos~deiro.
Assi m, um registro Type A fornece o mapeamento padro de n omes hospedeiros para endereos IP.
Como exemplo, (re l ayl. bar. foo . com . 145. 37 . 93 . 126 . A) um registro com Type igual a A.
bowot,o4ico.
103
Captulo 2 Cornada de apl ico!O

Se Type tfS, en to lfa me um dom(nio (como foo . com) e va 1ue o nome de um servidor de nomes
com amoridade que sabe como obter os endereos IP para hos~deiros do domnio. Esse regislro
usado parn encaminhar consultas DNS ao longo da cadeia de consullas. Como exemplo, (foo.com .
dns . foo . com . NS) um registro com Type igual a NS.
Se Type-ClfAliE, ento va 1ue um nome cannico de hospedeiro para o apeUdo de hospcdei_ro contido
em Narne. Esse registro pode fornecer aos hospedeiros consultantes o nome c.innico correspondente a
um apelido de hos pedeiro. Como exemplo. {foo. com. rel ayl . bar. foo. com . CNAME) um regis-
tro CNAME.
Se Type- MX, ento Va 1 ue o nome cannico de mTI servidor de correio cujo apdiclo de hospedeiro est
contido em Name. Como exemplo, (foo . com . ma i l . bar. f oo. com . MX) um registro MX. Regislros
MX permitem que os nomes de hospedeiros de servidores d e correio tenham apeldos simples. Note
que usando o regis tro MX, uma empresa pode ter o mesmo apelido para seu servidor de arquivo e para
um de seus o utros servidores (tal como seu servidor Web). Para obter o nome cannico do senidor de
correio, um cUente DNS consultaria um rcgisll'o MX; para obter o nome cannico do ou1ro servidor, o
cliente DNS consultaria o regis1ro CNAME.
Se um servidor clc nomes ti ver autoridade para um determinado nome de hospedei ro, ento comer um
registro Type A para o nome de hospedeiro. (Mesmo que n:\o tenha autoridade, o se,rvidor de nomes po<ie conter
um registro Type A em seu cache.) ~ um servidor rnlo tiver autoridade para um nome de hospedeiro, conter um
registro Type NS para o domnio que inclui o nome e um registro T)pe A que o rn ece o endereo IP do servidor
de nomes no campo Va 1ue do registro NS. Como exemplo, s uponha que um servidor TLD edu no tenha aulo-
ridadc para o hospedeiro gai a . cs. umass . edu. Nesse caso, esse servidor contera um registro pam Lun domn io
que inclui o hospedeiro gaia . cs . umass.edu, por exemplo (umoss.edu . dns.umass . edu. NS). O servidor
TLD edu conter tamb~m um regfstro Type A, que ma1>eia o servidor de nome dns . uma s s. edu para um endereo
IP, porexemplo(dn s _umass . edu . 128-119 . 40 . 111. A.).

MensagensDNS
Abo rdamos ameriormente nesta sei1o mensagens de consulta e_ de resposta DNS, que so as duas unicas
espcies de mensagem DNS. Alm disso, tanto as mensagens de consulta como as de resposta tt m o mesmo for-
mato, como mos tra a Figur,l 2.23. A semfmtica dos vrios campos de uma mensagem DNS a seguinte:
Os primeiros 12 bytes form.un a seao ,Je cabecllho, que Lem vrios campos. O primeiro campo um
m1me_ro de 16 biis que ldentifka a consulta_ Esse lden1ificador copiado para a mensage_m de res pos ta a
uma consult11, permitindo que o cliente combine respostas recebidas com consultas enviadas. H vi\rias
flags no campo de flag. Uma lag de consulta/resposta ele 1 bit indica se a mensagem uma consulta (O)
ou uma resposta (1). Uma lag de au1oridade d e l bit marcada cm uma mensage m de respos ta quando
o servidor de nomes um servidor com autorid,tde para um nome consultado. Uma Oag de recurso
desejad11 de 1 bit esrnbelecida quando mu cliente ( hospedeiro ou servidor de nomes) quer que um
servidor de nomes proceda recursivamente sempre que no tem o registro. Um campo de recurso
disponvel de 1 bit marcado em uma resposta se o servidor de nomes su porta buscas reeLUsivas. No
cabealho, h tambm quatro campos de 'mlmero d e'. Esses campos indicam o nmero d e ocorrCncit1s
cios quatro tipos de s eo de dados que se seguem ao cabealho.
i\ se,lo de pc1-gm1ta contm informaes sobre a consulw que est sendo eita. Essa seo inclui (l) um
campo de nome q ue contm o nome que es1 sendo consultado e (2) um campo de tipo q ue Indica o
tipo de perg1.mta que esul sendo [cilo sobre o nome - por exemplo, um endereo de hos peddro asso-
ciado a um nome (Type A) ou o servidor ele correio para um nome (Typc MX).
Em uma resposta de um servidor de nomes, a srclo de res11osw comm os regis1ros ele recursos para o
nome que oi consultado originalmente. Lembre-se de que em cada registro de recurso h o Type (por
exemplo, A, NS, CSNAME e MX), o Va l ue e o TTL. Uma resposm pode rclOrnar vrios RRs, j que
bowot,o4ico.
Redes de compulodores e o Internet

Identificao Flags

Nmero de perguntas Nmero de RRs de resposta 12 bytes

Nmero de RRs com autoridade Nmero de RRs adicionais

Perguntas
Nome, campos de 1ipo
(nmero varivel de perguntas) } para uma consulta
=====
Respostas } RRs de resposta consulta
(nmero varivel de registros de recursos)

Autoridade
(nmero varivel de registros de recvrsos) ___ }
Registros para servidores
com autoridade

Informao adicional Informa-o adicional 'til',


(nmero varivel de registros de recursos) } qve pode ser usada
---

Figura 2.23 Formoto do mensogem ONS

um nome ele hospedeiro pode 1er diversos endereos lP (por exemplo, para suv idorcs Web replicados,
como j discmimos anteriorml'n te nesta se;lo).
A seclo ele ,1111odd,1,Jc contm rcgislroS de outros sen<iclorcs com autoridade.
A scclo ai.lciorral contm muros registros ttcis. Por exemplo, o campo resposta cm uma respos ta a uma
consulta MX conter um registro de recurso que informa o nome cannico de um servidor ele correio.
A seo adiciomil contera um registro T)pe A que fornece o endereo IP para o nome cannico do
servidor de correio.
Voc gostaria de enviar uma mensagem ele consulta DNS diretamente de sua mquina a algum servidor
DNS? Isso pode ser fei to facilmente com o programa nslookup, que est disponvel na maioria d.is plataformas
Window-s e U, IX. Por exemplo. se um hospedeiro exenuar Windows, abra o Command Prompt e chame o
programa nslookup simplesmente digilando ' nslookup'. Depois d e chamar o programa, voe~ pode enviar ltma
consulta DNS a qualquer servidor de nomes (rai2, TLD ou com autoridade). Aps recebe_r a mensagem de resposta
do servidor de nomes, o nslookup apreseniar os registros includos na resposta (cm formam que pode ser lido
normalmente). Como alternativa a executar nsloolrnp na s ua prpria mquina, ,oc pode visitar um dos muitos
s ites Web que permitem o emprego remo10 do programa. (Basta digirnr nslookup cm um buscador e voc ser
lev-ado a um desses s ites.)

Para inserir registros no banco de dados do ONS


A discusso anterior focalizou como So extrMdos registros do banco de dados DNS. possvel que voc
cstcj.i se pcrgunt:rndo como os registros cnLraram no banco d e dados em primeiro lugar. Vamos examinar
como isso t feito no con1ex10 de um exemplo espcclco. lmng1nc que voce acabou de criar uma nova empresa
muito interessante denominada Network Uto pia. A primeira coisa que voe~ certamente dever fazer registrar
o nome de domnio networkutopl a . com em uma emidade regisLradora. Uma entidade registradora uma
entidade comercial que vcriica se o nome d e dom nio exclusivo, registra-o no banco de dados do DNS (como
discuti remos mais adiante) e cobra uma pequena taxa por sei1s servios. Antes de 1999, um.i n ica entidade
registradora. a Network Solulions. detinha o monoplio do rcgis Lro de nomes para os domnios com, net e
org. Mas agora existem muilas entidades registradoras credenciadas pela Internet Corporation for Assigned
Names and Numbers (ICANN) competindo por clientes. Uma lista completa dessas entidades est disponivel
em http : //www .i nterni c.net .
bowot,o4ico.
105
Cap tul o 2
------
Cornada de aplicafO

Vulnerabilidades do DNS
Vimos que o ONS um componenle fundomenlol do inlroestruluro do Internet, com muitos servios
imporlonle$ - incluindo o Web e o e-mail - simplesmente incapazes de funcionar sem ele. Desta
maneira, perguntamos; como o DNS pode ser otocodo? O ONS um o lvo esperando poro ser atingi
do, pois couso dono moorio dos aplicaes do Internet junto com ele?
O primeiro tipo de aloque que vem o mania o ataque inundao na largura de bando DDoS (vejo
a Seo 1 .6) contra servidores DNS. Por exemplo, um oloconle pode lentar enviar para cedo servidor
DNS raiz uma inundao de pacotes, fazendo com que o maioria dos consultas DNS legitimas nunca
seja respondid<i. Tal aloque DDoS em largo escalo contra servidores DNS raiz aconteceu em 21 de
outubro de 2002. Nesse ataque, os alocantes se aproveitavam de um botnet poro enviar centenas
de mensagens ping paro cada um dos servidores DNS raiz. !As mensagens ICMP so d iscutidas no
Captulo 4 . Por enquanto, basto saber que os pacotes ICMP so tipos especiais de do tagramos IP.)
felizmente, essa o,t oque em largo escalo causou um dono mnimo, lendo um pequeno ou nenhum
impacto sobre o experincia dos usurios com o lnlernet. Os atacantes obtiveram xito ao direcionar
centenas de pacotes oos servidores ra iz . Mo$ muitos dos $ervidores DNS ro iz foram prolEtgidos por
filtros de pacotes, configurados poro sempre bloquear todos os mensagens ping lCMP encaminho-
dos aos servidores raiz.. Deue modo, esses servidores protegidos foram poupados e funcionaram
normalmente. Alm disso, a maioria dos servidores DNS locais oculto os endereos IP dos servidores
de domnio de nvel superior, permitindo que o processo de consullo ultrapasse frequen temente os
servidores DNS ra z .
Um ataque DDoS potencialmente mo is eficaz centro o DNS serio enviar uma inundao de consultas
DNS aos servidores de domnio de oito nvel, por exemplo, paro todos os servidores de domnio que
lidam com o domnio .com. Serio mois dicil filtrar os consultos DNS direcionados oos servidores DNS;
e os servidores de domnio de oito nvel no so ultropossodos to lodlmente quanto os servidores raiz.. Mos
o gravidade de tal aloque poderia ser pa,ciolmenle omenizodo pelo coche nos servidores DNS locais.
O DNS poderio ser alocado potencialmente de outros maneiras. Em um otoque de homem no meio,
o otoconte intercepto consultas do hospedeiro e retorno respostas falsos. No aloque de envenena-
mento, o atacante envio respostas falsos o um servidor DNS, fazendo com que o servidor ormo:zene
os registros fa lsos em suo coche. Ambos os ataques podem ser utiliz:odos, por exemplo, poro redire,
cionor um usurio do Web inocente ao site Web do alocante. Esses ataques, entretanto, so difceis
de implementar, uma vez. que requerem o intercepo de p<icotes ou o estrangulamento de servidores
(Skoudis, 2006).
Outro aloque DNS importante no um otaque oo servio DNS por si mesmo, mas, em vez. d isso,
se aproveitar do infroestruluro do DNS poro lanar um aloque DDoS contra um hospedeiro-alvo f por
exemplo, o servidor de mensagens de suo universidade). Nesse ataque, o otoconte envio consultas
DNS poro muitos servidores DNS outorilotivos, com cedo consulto tendo o endereo-fonte fo lsilicodo
do hospedeiro alvo. Os servidores DNS, ento, enviam suas repostos diretamente poro o hospedeiro-
a lvo. Se os consultas puderem ser reoliz.ados de tal maneiro que uma resposta seja muito maior (em
bytes) do que uma consulto (denominodo omplificoo), entoo o otoconle pode entupir o alvo sem ler
que criar muito de seu prprio trfego. Tais aloques de reflexo que exploram o DNS possuem um
sucesso limitado at hoje (Mirkovic, 2005).
Em resumo, no houve um otoque que tenho interrompido o servio DNS com sucesso. Houve
aloques refletores bem-sucedidos; entrelonto, eles podem ser (e esto sendo) obordodos por uma con
figuroo apropriado de servidores DNS.
bowot,o4ico.
Redes de compu1adores e a Internei

Ao registrar o nome de domnio networkutopl a. com, voe~ tamb_m precisar informar os nom es e endere-
os IP dos seus servidores DNS com autoridade, primrios e secundrios. Suponha que os nom es e endereos IP
sejam dns1 . networkutopf a. com. dns2. networkutopi a. com, 212. 212. 212. 1 e 212. 212 . 212 . 2. A cm ida-
de regis tradora ncar cncnrrcgada de providenciar t1 insero dos registros Typc NS e ck um registro Typc A nos
servido res TLD do domnio com para cada um desses dois seniclorcs ele nomes com autoridade. Espccificamenlc
para o servidor primrio com autoridade networkutopi <1 . com, a amoridade registradora inseriria no sistema
DNS os dois regJstros de recursos seguintes;
Cnetworkutopi a. com . d 11s 1. networkutopi a. com . NS)
(dns l.networkutop i a.com. 212 . 212.212.1 . A)
No esquea de providenciar tambm a insero cm seus servidores de nomes com autoridade do registro
de recurso Trpe A para seu servidor Web www. net11orkutop i a. com e o registro de recurso Trpc MX paro seu
servidor d e correio ma i 1 . networ ku topi a com. (At h pouco tempo, o conledo de cada sen idor DNS era
conigurado estalicamente, por exemplo, a panir de um arquivo de configurao criado por um gerenciador de
sistema. Mais rcccrucmen1c, oi acrescentada ao protocolo DNS uma opo UPOATE que permite que dados
sejam dinamicamente acrescentados no ba.nco de dados ou apagados deles por meio ele mensagens DNS. O
IRFC 2136) e o [RFC 3007] espccific,un atualizaes dinl\micas do DNS.)
Q uando iodas essas elapas estiverem concludas, o pblico em geral poder \' iSitar seu site Web e enviar
e-mails aos empregados de sua empresa. Vamos concluir nossa discusso do DNS verificando que essa afir-
ma:10 ve rda<leirn, o que tambm ajudar a solidiicar aquilo que aprendemos sobre o DNS. Suponha que
Alice, que esL na Ausnlia, queira consultar a pgina Web www. networkutopf a . com. Como discutimos
amer iormcntc, seu hospedeiro prlmeiramcmc enviar uma consulta DNS a seu servidor de nomes local, que
ento contatar ltm servidor TLD do domnio com. (O servidor de nomes loal tambm tcn\ de con talar um
servidor de nome-s raiz caso no 1enha em seu e-ache o endereo de um servidor TLD com.) Esse servidor TLD
contfm os registros de recursos T)'PC NS e T}'pe A ci tados anterior-mente:, porque a entid ade rcgisll'ndora j
os tinha inserido em todos os servidores TLD com. O servidor TLD com envia uma resposta ao servidor de
nomes local ele Alice, contendo os dois regisLros ele recursos. Ento, o servidor ele nomes local envia uma
consulLa DNS a 212. 212 . 2 12 .1, soli6tando o registro Type A correspondente a ww.1. networkutopi a . com.
Este registro prov o endereo IP do servidor Web desejado, digamos, 212 . 212 . 7 1 . 4, que o servidor local de
nomes transmite para o hospedeiro de Alice. Agora, o browser de Alice pode ini ciar uma conexo TCP com o
hospedeiro 212 . 212. 71 . 4 e e1wiar uma rcquisi-Jo HTTP pela conexo. Ufa! Acon Lccem muito mais coisas cio
que percebemos quando navegamos na \Veb!

2.6 Aplicaes P2P


As aplicaes descritas neste rnptulo at ~,gora - inclusive a \1/eb, e-mail e DNS - todas empregam arqui-
teltlras cliente--servidor com dependncia significativa em servidores com inmeslrtllu rn que sempre ~rm:mecem
ligados. Como consta na Sco 2 .1.1 , com uma arqui1e1um P2P, h dcpcnelencia mnima (se houver) de servido
res com infraestrutura que perm:me<:cm sempre ligados. Em vez disso, duplas ele hospedeiros intenntentemente
conectados, chamados pares, com uni cam-se diretamrme entre si. Os pares mlo so de propriedade de um prove-
dor de servios, mas sim ele dcsktops e laptops eon1rolados por usurios.
Nesta seo, examinaremos m:s diferemcs aplicaes que so paniculam1eme bem apropriadas a proje tos
P2P. A primeira a distribuicilo de arquivos, em que a .iplicao distribui um arquivo a panir de uma nica fonte
para um grande numero de pares. A distribuio de arquivos um bom local para Iniciar a investigao de P21',
vis to que expe clarameme a auloes<.-alabilidade de arquiteturas P2P. Como exemplo especifico para distribuio
de arquivos, desercvercmos o popular siSH':ma Bi!Torrent. A segunda aplira-J.o P2P qut examinaremos (: um
banco de dados distribudo em uma grande comunidade de pnres. Para essa aplicao, exploraremos o conceito de
uma Distributed Hash Table (DHT). Por fim , para nossa terceira aplicao, examinaremos o Skype, uma aplicao
de telefonia p2.p da Internei de sucesso fenomenal.
bowot,o4ico.
_...........................................................................................................................___
Coplulo 2
--------
Cornada de oplicoo
107

2.6.1 Distribuio de arquivos P2P


Comearemos nossa inves1ida em P2P considerando uma aplicao bastante namral , ou seja, a dis1 ribuio
dc um grande a rquivo a partir de um nico scrvdor a um gra nde numero de hospcclciros (c hamados pares). O
arqltivo pode ser uma nova verso do s istema operacional Linux, um p.1tch de software para um s istema opera-
cional ou aplicao cxistcnrc, um arquivo de msica MP3 ou um a rq uivo de vdeo MPEG. E111 um,1 dlstribui:10
de arquivo clienle-scrvidor, o servidor deve enviar uma cpia do arquivo para cada um dos pares - colocando
um enorme fordo sobre o S<:rvidor e consumindo uma grnnde quamidade de banda cio servidor. Na distribuic,10
de arquivos P2P, cada par pode re<listrlbur qualquer p,Hte do arquivo que re"ebeu [Klrn ouLros pares, auxilian-
do, assi m, o servidor no processo de distribuio. Atualmente (outono [Nos EUAI de 2009), o pro1ocolo de
dist ribu io ele arquivos P2P mais popular t o BitTorrem [BitTorrem, 2009). Origin:almeme dese1wolvldo por
Bram Cohen (consulte a ernrevisu1 com Bram Cohen no final dcsle captulo), h ~llualmcme muilos diferentes
clientes inclc pcndentcs de BitTorrcnl conforme o protocolo do BitTorrcnt, assim como h.i diversos dlcnu:s de
navegadores Web conformes ao pro1ocolo Hn-P. Nesta subseo, examinaremos primeiro a autoescalabilidade de
arquitemras P2P no contexto de d islribuio de arquivos. Ento, descreveremos o BiLTorrent em u m ceno nivel
de deta lhes, destacando suas caractersticas mais impor1antcs.

Escalabilidade de arquiteturas P2P


Para comp::irar arquiteturas clicme-servidor com arquitem ras P2P, e ilustrar a inerente autocscalabilidade de
P2P, consideraremos um modelo qu:m1Jtativo simples para a distribuio de um arq uivo para um conjunto lxo
de pares para ambos os tipos de arquilerura. Conforme demons1r.1do na Figura 2.24, o servidor e os pares so
conectados por en laces de acesso da lr11erne1. A taxa de up load do enlace de acesso do servidor denotada por
u,, e a laxa de ltplOllcl do enlace de acesso do par i denotada por 111, e a taxa de download do enlace de acesso
d o pari . denotada por d,. O 1aman ho do arquivo a ser distribudo (em bits) clenoLado por F e o nmero de
pares que querem obter uma cpia do arqul\o, por N. O tempo de cllstrbui.\o o tempo 11eccssrio para que
1odos os N fY<ITCS obten ham uma cpia do arquivo. Em nossa anlise do 1empo de distribi1io abaixo, 1an10 para
a arquitet ura cliente-servidor como para a arquitelu ra P2P. fozemos a hiptese simplificada (e geralmenle pre-
cisa (Akclla, 2003)) d e que o ncleo da lntcrnel tem largur.1 de banda ab undante, o que implica qlte todos os


Arquivo: F
Servidor

Internet

Figura 2.24 Um problema ilustralivo de distribuio de arquivo


bowot,o4ico.
108

------ Red es de compuladores e a Interne t

gargalos encontram-se no acesso rede. Suponha 1ambtm que o servidor e os clic.ntes no panicipam de nenhu -
ma outra apl icao de rede, para que toda sua largura de banda ele acesso de up load e download possa ser tmal-
men te devotada dis tribuio do arquivo.
Determinemos primeiro o lempo de dislribui<,ilo para a arqu itelura dkntcse.rviclor, que denolarcmos por D". Na
arquLeiu.ra dieme-servdor, nenhum cios pares allldla na disLribui;'\o cio arquivo. Fazemos as observai_'eS alxlixo:
O servidor eleve Lransrnilir uma cpia do arquivo a cada um dos N pares. Assim, o servidor deve tran$-
milir Nf bits. Como a taxa de upload do servidor de 11,, o aempo parn disLribuio do arquivo deve
ser de p<:lo menos Nf/11,
Deixemos que d,.1,, denote a l.axa de download do par com menor taxa ele download, ou seja, d,.., ..
min(,1,, dr, ... , d). O par co m a menor taxa de downlo.id no pode obter todos os bits F do arqitivo em
menos de Fld..,1,, segundos. Assim , o tempo de distribuio mn imo e de pelo menos Fld... ,.,.
Re unindo essas observaes, temos:

. {NF
D,:s~ max - , __ F J
lls <1 11,.11

Isso propo rciona um limiLe inerior parn o tempo mnimo de dis tribuio para a .irquiletura cliente-servidor.
Nos problemas cio final do capitulo, voc dever demonsmu que o servidor pode programar Sltas transmisses
de forma q ue o limi te inferior seja sempre alcanado. Porlanlo, consideraremos esse limite inferio r fornecido
am erionneme como o tempo real de distribu io, ou seja,

DN mx I NF , __f_ 1 (2.1)
Us clmm

Vemos, a partir da Eq ua-Jo 2.1, que para N grande o suficiente, o 1empo de disLr ibu io cliente-servidor
dado por NF/11, Assim, o tempo de clistribui~-o aumenla linearmenle com o nmero ele pares N. Ponanto, por
exemplo. se o m\mero de pares de uma sermrn.i p.ira a outra for mulLiplicado por mil. de mil para um milho, o
1empo necess.irio para distribuir o arquivo par-J todos os pares aumentara mi l vezes.
Passemos agora r>ara uma anlise semelhan1c para. a arquilemra P2P, cm que cada par pode au xiliar o ser-
vidor na disLribuio do arquivo. Em par1cular, quando um par recebe algu ns dados do arq uivo, ele pode usar
sua prpria capacidade ele up load para redis1ribuir os dad os a outros pares. Calclllar o tempo d e disiribui;1o
p;ua .i arquitet ura P2P . de certa forma. m.iis complicado cio que p,,ra a .irquiletur.t cliente-servidor, visto que
o tempo de distribu io depende de como ~'ada par dis tribui parecias do arquivo aos ouLros pares. No obsaantc,
uma simples expresso para o tempo mnimo de dislribui:lo pode ser obtida IKumar, 2006). 'Para essa finalidad e,
faremos as observacks a seguir:
No il1ido da distribuio, apenas o servidor tem o arquivo. P.ira levar esse arqu ivo comu nidade de
pares, o servido r deve enviar ~'ada bit do arqulvo pelo menos uma vez para se u enlace de acesso. Assim,
o tempo de d is1ribui;,o mn imo ele pelo menos f/11,. (Difereme do esquema clieme-serviclor, um bi1
enviado uma vez pelo servidor pode no precisar ser enviado novamente, visto que os pares podem
redis tribuir entre si esse bil).
Asslm co mo nn arqulelura cliente-servidor, o par com a menor Laxa de down load no pode obter todos
os bilS F do arquivo em menos de Fld.,1,. segundos. Assim, o Le mpo mnimo de distribui:lo de pelo
menos F/d,aJ.,
Firrnlmcn Le, observemos que a capacidade ele upload total do sistema como um todo igual taxa ele
up load do ser.~dor mais as iaxas de upload de cada um dos pare& individuais, ou seja, u...., Lr, + u1 + ... + u4
O sistem.i dc,e emregar (fazer o upload de) F bhs para cada um dos N pares, cntTcgando assim um
lo tai de NF biis . Isso no pode ser feito em uma taxa mais nip icla do que 11,..,,1 Assim, o icmpo mnimo
de disrrl buio tam bm d e pelo menos NF/(11, + 11 , + ... + u,).
J untando essas trs observaes, obtemos o tempo mn imo d e distribuio para P2P, denotado por D P2P.
bowot,o4ico.
109
Capitulo 2
--- -------
Cornada de aplicoO

(2.2)

A Equao 2.2 fornece um lmite inferior para o tempo mnimo de distribuio para a arquitetura P2P.
Ocorre que, se imaginarmos que cada par pode redisu ibuir um bit assim que o recebe, h um esquema
ele redisuibuiflo que, de fato , akana esse limite inferior IKumar, 2006] (Provaremos um e-aso espe
cial desse resuhado na li<,~\o de <.'tl.Sa) . Na realidade, quando blocos do arquivo so redistribudos, em
vez d e biLS individua is, a Equar;o 2.2 serve como uma boa aprox imao do tempo mn imo real de
dis trib uio. Assim. peguemos o llmitc inferior fornecido pela Equa:iO 2.2 como o 1cmpo mni mo real
de dimibui~o. que :

_f_, F Nf
Drw mx(
u,
--
1l,n1n
( 2.3)

A Figu ra 2.25 compara o tempo mnimo de distribuio para as arq uiteturas di en tcscrvidor e P2P, prcs
supondo que wdos os pares u~m a mesma taxa de upload 11. Na Figura 2.25, iernos definido que F/u .. 1 hora,
11~ 1011 e dm., ~ 11 Assim, um par pode transmit ir todo o arquivo cm uma hora, sendo a taxa de transmisso
5
do servidor 10 vezes a taxa d e upload do p:ir, e (para s implicidade) as 1axas de dow nl o:1d de par StiO defin idas
grandes o sufic iente de forma a no ter efeito. Vemos n.. Figura 2.25 que, para a arquileluro cliente-servidor, o
tempo de dis tribuio almHmla linearmnle e. sem limt, conforme aumenta o n mro de pares. No entanto, para
a arquitetura P2P, o tempo mnimo de dstribuiilo no apenas sempre menor do qu e o tempo de d isuibuir,o
da arquitemra cliente-servidor; tambm de menos do que uma hora para qualquer nmero de pares N. Assim,
aplicaes com a arqui1ctur,, P2P podem ter autocscalabilidade. Essa escalabilid:1dc uma co11Sequncia d ireta de
pares sendo redistribuidores, bem como consumidores de bits.

BitTorrent
O BitTorrcnt um protc:>colo P2P popular para distribuio de arquivos [BitTon cnt, 2009). No jargo do
BitTorrent, a coleo de todos os p.ircs que participam da distribuio de ltm determinado arquivo chamad:1
de 1orrc111. Os pares cm um torrenL fazem o download de blocos de 1a111anho igual do arquivo entre si, com um

3.5
o
3.0
./
'e.
5 a,enteServidor /
=:;; 2.S ,,. ./'
'
CII
'0 2.0 . ,.,,~
o
E
:~ 1.5
/
.,_/
E P2P
&. 1.0
E 1
~ /
0.5

o ~ 1 1 1 1 1 1 1
o 5 10 15 20 25 30 35
N

Figura 2.25 Tempo de distribuio poro arquiteturas P2P e cliente-servidor


bowot,o4ico.
Redes de compulodores e o Internet

tamanho 1Iplco de bloco de 256 KBy1es. Quando um par entra em um torrem. ele no tem nenh um bloco. Com
o tempo, ele acumula mais b locos. Enquanto ele faz o download de blocos, faz tambm u ploads de blocos para
outros pares. Uma vez que um par adquire iodo o arquivo, ele pode (de forma cgostn) sair do 1orrenl o u (de
forma a llrusta) permanecer no torrem e continuar fazendo o upload de blocos a outros pares. Alm disso, qual-
quer par pode ~ir elo torrem a qualquer momcnlo corn apenas um subconjumo de blocos, e depois vo ltar.
Observemos agora, mais ateni.amerne, como opera o BitTorrent. Como o BitTorrent um protocolo e sistema
complicado, dcsc_revcrcmos apenas seus mecanismos mals importantes. ignorando alguns de.talhes: isso nos pcr-
milir ver a floresta atravs das rvores. Cada torrem tem um n de inraestrulllra chamado rasmiaclor. Qua11do
um par chega em um torrem , ele se regi.stm com o rast.reador e perioclirnmcntc nfonna ao mstrcador que ainda
est no torrcnt. Dessa forma, o mst.rcador mantm um registro dos pares que participam do torrem. Um determi-
nado torrem pode ter menos de dez ou mais de mil pares participando a qualquer momento.
Como demons Lntdo na Figura 2.26, quando um novo par, Alice, chega no torrcnt, o rastrcador seleciona
aleatoriamente um subconjunto de pares (para dados concretos, digamos que sejam 50) do conju nto de pares
participantes. e envia os endereos lP desses 50 pares para Alice. Com a lista de pares. Alice tenrn estabelecer
conexes TCP simult.'lneas com todos os pares da lista. Chamaremos todos os pares com quem Alice cons iga
estabelecer uma conexo TCP de ~pares vizinhos~ (na Figura 2.26, Alice represemad.1 com .1pem1s tTes pares
vizinhos. Normalmente, ela teria muito mais). Com o tempo, algttns desses pares podem sair e outros pares (fora
dos 50 iniciais) podem tentar estabelecer conexes TCP com Alce. Portamo, os pares vizinhos de um par podem
nuwar com o tempo.
A qualquer momento, cada par ter um subconjurno de blocos elo arqt1ivo, com pares diferentes com subcon-
juntos dife rentes. Periodicamente. Alice pedir a cada um de SClLS pares vizinhos (nas c.-o nexes TCP) a lista de
qua is blocos eles tm. Caso Alice tenha L vizinhos diercntes, ela obter L listas de blocos. Com essa informa:lo,
Alice emitirn solicitaes (novamcmc, nas conexes TCP) de blocos que ela n.io tem.
Portanto, a qualquer momemo, Alice ter um subconjunto de blocos e saber quais blocos seus vizinhos
11tm. Com essa inorma-Jo, Alice tera duas decises import.1 ntes a fazer. Primeiro, q~tais blocos ela deve solicitar
primeiro de seus vizin hos, e segundo, a quais vizinhos ela deve enviar os b locos solicitados. Ao d ecidir quais

Rastrnador Par

Obter
lista de
pares

Figura 2.26 Distribuio de arquivos com o BitTorrent


bowot,o4ico.
111
Coplulo 2
-------
Cornada de aplicoso

blocos solicitar, Alice usa uma tcnica chamada rnresLj)rs1 (o maLs raro primeiro). A ideia detennlnar, dcmre os
blocos que ela no tem, quais so os mais raros dentre seus vizinhos (ou seja, os blocos que tm o menor nmero
de cpias repetidas em seus vizinhos) e ento solicitar esses blocos mais ra ros primeiro. Dessa forma, os blocos
mais raros slo redistribudos mais rapidamen1c, proCllrando (grosso motlo) equalizar os nmeros de cpias de
ada bloo no tom:nl.
Para de terminar a quais pedidos atender, o BilTorren Lusa um algoriUTio de troca intcligerne. A ideia bsica
Alice dar prioridade aos vizinhos que atu~ilmente fornecem seus dados com a maior taxa. EspecificamenLe, para
cad,t um de seus vizinhos, Alice mede cominuume1u e a taxa cm que recebe bits e- determina os quatro pares que
lhe fornecem na melhor taxa. Ento, ela reciprocamente envia blocos a esses mesmos quatro pares. A cada 10
segundos, ela recalcula as taxas e possivelmente modf:a o conjunto de qu:uro pares. No j,ng.lo do BitTorrenL,
esses quatro pares so chamados de und,oke(I (no sufocado). importante informar que. a cada 30 segundos. ela
tambm escolhe um vizinho adicional aleatori:unente e envia blocos para ele. Chamaremos o vizinho escolhido
alcawriamentc de 13ob. No jargao de BilTorrem, Bob chamado de oplimisrirnlly unchohed. Como Alice cn,1a
dttdos a Bob, ela pode se tornar um dos quat ro melhores transmissores pom Bob, caso cm que Bob comearia a
enviar dados pura Alice, Caso a taxa cm que Bob envie dados a Alice seja alta o suficiente, Bob pode, cm troca,
tornar-se Llm cios quaLro melhores transmissores para Alice. Em outras palavras, Alice aleatoriamente escolher
um novo parceiro de u oca e a comear com ele. Caso os dois pares estejam satisfeiLOs com a LrO<:a, eles coloca-
r-Jo um ao outro nas s,1as listas de quatro melhores pares e continuaro a troca at que um dos pares encontre
um parceiro melhor. O efeito que pares capazes de fozer uploads cm 1.:1xas compatveis tendem a se encontrar.
A seleo aleatria de vizinho tambm permite que novos pares obtenham blocos, de forma que possam ter algo
para trocar. To<los os pare.s vizinhos, alm desses cinco pares (quatro pare.s ~lopn e um cm experi!ncia) esto
~sufocados", ou seja, no recebem nen hum bloco de Alice. O BiLTorrem tem diversos mecanismos imeressamcs
no discutidos aq11i, incluindo pedaos (miniblocos). l't>elining ( tubulao), primeira seleo aleatria, modo
c11dgamc (f'im de jogo) e a111i-s1111bbl11g (antirrejeili) 1Cohen 2003 I.
O mecanismo ele incentivo para troca descrito acima normalmente chamado de ciL1or-r,u (olho por olho)
1Chen 2003 J. Demonscrou-sc que esse esquema de inccmivo pode ser bu.rlado (Liogkas, 2006; Locher, 2006; Piatek,
2007). Nilo obstanLe, o ecossistema do BitTorrcnt muilo bem-sucedido, com milhes de pares sinmlltlneos com-
partilhando arquivos ati\lamente cm centcmlS de milhares de torrcntS. C.'\SO o BilTorm1t 1h1essc sido projetado sem
o LilOr Lat (ou uma variante). mas com o rcsumtc da rncsma maneira, ele provavclmc111c nem exis tisse mais. visto
qlle a maio ria dos usurios so pessoas que apenas querem obter as coisas gr.lluilamenle 1Saroiu, 2002).
Va riantes inlcressantes do protocolo BitTorrent so propostas [Guo, 2005; Piatek, 2007]. Alm disso, muitas
das aplkacs de 1rnnsmisso em tempo real P2P. tomo PPLivc e pps1ream, foram inspirados pelo Bi1Torrent
!Hei 2007] .

2.6.2 Diilributed Hosh Tobles (DHTs)


Um componente crtico de muitas aplicaes P2P e outras aplicaes distribuidas u,n ndice (ou seja,
um banco de dados simples), que supori:1 operacts de busC"J e atualizao. Quando esse banco de d.i.dos dis-
tribudo, os pares podem realizM c.,ching de conte(tdo e rotenmento sofis ticado de consuh:1s entre si. Como a
indexao e busca de informaes so um componente critico nesses sistemas, cobriremos uma tcnica popular
de indexao e busca, Distributed Hash Tabks (DHTs).
Consideremos assim a construo ele um banco ele claclos simples distribudo em um gl':lndc nmero (possi~
velmentc milhes) de pare.s que suportam indexao e solicitao slmples. As informaes ni,n.tenadas em nosso
oonco de dados consistiro de duplas (chave, ,alor). Por exemplo, as chaves podem ser nmeros de seguridade
social e os valores podem ser nomes hllmanos correspondentes; nesse caso, um exemplo de dupla chave-valor
( 15645-7081, Johnny Wu). Ou as duplas podem ser nomes de contedo (ex.: nomes de filmes, lbuns e
software), e os valores podem ser endereos IP onde o contedo est armazenado; nesse caso, um exemplo de par
chave-valor (Lcd Zeppc.lin !V, 203.17.123.38). Pares consultam nossos bancos de dados fornecendo a ehavc:
caso haja duplas (chave, valor) em seus bancos de dados que correspondam chave, o banco de dados retorna
bowot,o4ico.
Redes de compuladores e a Internet

as duplas correspondentes ao pat solicirnntc. Ponanto, por exemplo, caso o banco de dados armazene nmeros
de seguridade social e seus nomes humanos corrcspondenLcs, um par pode consultar um nmero de seguridade
social especfico e o banco de dados retornar o nome do luunano que possui :iquele nmero de seguridade social.
Pa res tambm devem ser capazes de inserir duplas (chave. valor) cm nosso banco de dados.
A construo desse banco de dados direta com Ltma arquitetura cliente-servido r na qual todos os pares
(chave, valor) si\o armazenados cm um servidor central. Essa abord<\gem centralizada mmbl!m oi considerada
em antigos sistemns P2P co mo o Napster. Mas o problema signilcmivamente mais desafiador e interessante
cm um sistema dis trib udo que consis1c de milhes de pares conectados sem autoridade central. Em um sistema
P2?. qucrcmQS distrib uir as duplas (chave, \alor) em rc todos os pares, de orma que elida par tenha apenas um
pequeno Sltbcon_junto da lOLaHdade dos pares (chave, valor). Urna abordagem inocente para a COI\SLruilo desse
banco de dados P2P (l) espalhar aleatotiamente as duplas (c have. valor) entre os pares e (2) fazer com que
cada par 1enha Lmm lsta dos endereos de IP de 1odos os pares participamcs. Dessa forma, o par solici1ame pode
enviar um.i solicitao a Lodos os outros pares, e os pares que lenham duplas (cha,1e, valor) que correspondam
ch,wc podem responder com as duplas correspondentes. Essa abordagem complct:1mc11tc nf10 escalvel. logic:i-
mente, visto que cada par precisarill rastrear todos os ouLros pares (possivelmente milhes) e, pior, cnvi.1r ~-ada
solicitao a toclos os pares .
Agora descreveremos uma abo rdagem elcgame para um projeto de banco de dados P2P. Para isso, primeiro
designaremos u m idcntilcaclor a cada par, cm que e.tela idcntiicador um nmero inteiro na fa ixa [O, 2" - !I
d e algum ri ixo. Observe que cada identificador pode ser expresso por uma representao com n-bits. Vamos
tambm exigir que cada chave seja um nmero inteiro na mesma faixa. O lei to r astuto pode ter observado que as
chaves de exemplo descritas anLeriormcntc nilo so ( nmeros de seguridade :.ocial e nomes de conLedo) mime
ros inteiros. Para criar nmeros inteiros a panir dessas chaves, precisaremos usar uma fun-.lo hash que mapeie
cada chave (po r exemplo. nmero de seguridade social) ern u m nmero intero na faixa IO. 2" - li. Uma funo
d e hash uma funo de muitos-para-um para a qual duas emradas diferentes podem ter a mesma sada (mesmo
n mero imeiro), mas a probabilidade de terem a mesma sada ex1 rema men1e pequena (leitores no amiliariza-
dos com funes de hash podem querer consultar o Caprnlo 7, que discme detalhadameme funes de hash) . A
funo de h,ish considerada publicamente d isponvel a todos os pares no sistema. Portanto. quando nos referi-
mos "cha ve . nos referimos ao hash da chave original. Portanto, por exemplo, caso a chave original seja ~Lc<l
2eppelin 1v~. a chave ser o nmero inteiro que corresponda ao ltasb de '"Lcd Zcppclin IV" . Alm disso. como
esta mos usando hashes de chaves, em vez elas prprias chaves. nos referiremos ao banco ele dados dis.Lri buido
como OistTlbu1ed Hash Table (OHT).
Consideraremos agora o problema de armazenar as duplas {chave, Vlo r) no OHT. A queslo central aqui
definir uma regra par.i. designar chaves a pares. Considerando que cada par tenha um identificador de nmero
inteiro e cada chave Lambm seja um nm ero inteiro na mesma faixa, uma abordagem natural designar cada
dupla (c have, vnlo r) ao par ct~o idemil'icador est mafs 1>r6xl1110 da chave. Para implementar esse esquema, preci-
saremos dcinir o que signifi ca 'mais prximo', o que admite muitas convenes. Por conve nincia, definiremos
que o par mais prximo o sucesso,. ime,limo tia c!t(ll't. Para ,isuiilizarmos, obscrvnrcmos um exempl o cspccffieo.
Suponha que 11,. 4, ponamo, Lodos os identificadores de par e chave estat"'.10 na aixa de 10, 15). Suponha ainda
que haja 0110 !)llrcs no sfstCJll.\ com iden tificadores 1, 3, 4, 5. S , 1O, 12 e 15. Finalrneme, suponha que queiramos
armazenar o par cha\1e-v11lor (11, Johnn)' Wu) em um dos Oilo pares. Mas em qual? Usa nd o nossa conveno de
mais prxi mo, como o par 12 o sucessor imediato da chave 11 , a rmaunaremos, porL:uno, a dup la (1 l ,Johnny
Wu) no par 12 lpar-.i. concl uir nossa definio de mais prximo, caso a chave scj.i exatamente igual a um dos
identificadores do par, armazenaremos o par (chave-valor) em um par correspondente; e tllSO a chave seja maior
do que todos os identificadores de par, usaremos uma conveno mdulo-2, q ue armazena o par (chavc-Vt\lor)
no par com o meno r ide ntiflcadorl.
Suponha agom que um par, Alice, queira inserir uma dupla (cha\"e-valor) no DHT. Conceimalmeme, um
processo objeLivo: ela primeiro determina o par cujo identificador o mais prximo da chave; ento ela envia uma
mensagem a esse par, instruindo-o a armazenar a dupla (chave, valo r). Mas como Alice determ ina o par mais prxi-
mo da chave? Se Alice rastreasse todos os pares no sistema (1Ds de par e endereos IP correspondentes), ela poderia
bowot,o4ico.
_........................................................................................___
Coplulo 2
-------
Cornada de oplicoo
113

detcrmnar localmcmc o par mais prximo. Mas essa abordagem requer que ca,fo par rasucie Lcxlos os outros pares
no DHT - o que compktamcmc impraticvel para um sistema de grande escala com milhes de pare-s.

DHT circular
Para abordar esse problema, consideraremos agora organizar os pares em um crculo. Ness., disposio circular,
cada par rastreia apenas seu sucessor imediato (mclulo 2"). Um exemplo desse circulo exibido na Figura 2.27(a).
Nesse exemplo, tr novamente 4 e h os mesmos oito pare.s do exemplo anterior. Cada par esL1 ciente apenas de seu
sucessor imediato; por exemplo, o i,ar 5 sabe o endereo IP e o identificador do par 8, mas no sabe necessariamente
nacla sobre quaisquer outros pares no 01-rr. Essa disposio circular dos pares um C'JSO especial de uma rede sobrc-
pos1a. Em uma rede sobrepos1:1. os pares formam um.n. rede lgica abs1ra1n que reside acimt\ da rede ele computado-
res "inferior que consiste de enlaces flsicos, roteadores e hospedeiros. Os enlaces em uma rede sobreposta no so
fsi cos, mas enlaces virtuais enlre duplas de pares. Na rede de sobreposio da Fgurn 2.27(a), ha oito pares e oito
enlaces sobrepostos; na sobreposio ela Figura 2.27(b) h oito pares e 16 enlaces sobrepostos. Um L\nico enlace de
sobreposio non11ahncr11e usa muitas ligaes fisic,:as e roteadores fskos na rede inerior.
Usando a rede de sobreposio circular da Figura 2.27(a), suponha agora que o par 3 deseje dctcrmlnar qual
par no DHT rcsponSvcl pela chave li [para inserir ou para requisitar uma dupla (chave-valor)!. Us:tndo a rede
sobreposta circular, o par de origem (par 3) cria uma mensagem que pergunta ~Quem responsvel pela chave
11 r e a crwia a seu sucessor. o par 4. Sempre que um par recebe essa rnensagcm, como Sllbe o idemiOcador ele seu
sucessor, pode de1crrninar se rcspons,1vel (ou seja, mttis prximo) pch chave cm questo. Caso um par no seja
responsvel pela chave, ele simplcsmcme envia a mensagem a seu sucessor. Pormnto, por exemplo, quando o par
4 recebe a mensagem perguntando sobre a chave 11, ele determina que no responsvel pela chave (porque ~ u
sucessor esl mais perto da dela), portamo, ele passa a mensagem a seu sucessor, ou seja, o par 5. Es~ processo
cominua at que a mensagem chegue ao par 12, que determina que o mais prximo da chave 11. A essa altura,
o par 12 po<lc enviar uma mensagem de ,oha origem, o par 3. indicando que responsvel pela chave 11.
O DIIT circular oferece uma solur,-o bastalllc elegante para reduzir a quamidadc de informao sobreposta
que cada par deve gerenciar. Em panicular, cada par esc cieme apenas de dois pares, seu sucessor imediaLo e
seu predecessor imediato (por padro, o par est eieme de seu predecessor. visto que este lhe envia mensagens).
Porm, essa solu1,'o ainda introdut um novo problema. Embont t'ttdt\ par CSLeja ciente ele dois pares vizithos, para
encontrar o n responsvel por uma chave (no pior das hipteses), todos os N ns no DHT dcver:'lo encaminhar
uma mensagem pelo crculo; N/2 mensagens so enviadas em mdia.
Assim, no projeto de um DHT, M llma troca e111re o nmero de \llzinhos que cacla par tem de rastrear e o
nmero de rnensagens que o DHT precisa envar para resolver urna nic,, soliciLa,10. Por um lado, se cada par

Qvem
responu veJ

~
' pela chave 117

.3
,s. ,s.
.4 .4
12 12
s

10
./

8 8
a. b.

Figura 2.27 (a) Um DHTcircular. Opor 3 quer determinar quem responsvel pelachave 11. (b) Um DHT circular comatalhos
bowot,o4ico.
Redes de compulado res e a Internet

rastrear Lodos os miuos pares (sobreposlcs de malha) , apenas uma mensagem ser enviada por solici ta.\o, mas
cada par de,er rastrear N pares. Por o ulro lado, com um DHT circular, cada par es t ciemc apenas de dois pares,
mas N/2 mensagens so en viadas em mdia para cada solicilao. Felizment e, pode mos refinar nossos projetos
de DHTs de forma que o n mero de vizinhos por par, bem como o m\mcro de mensagens por solidta~o seja
mantido em um tamanho aceitvel. Um desses refinamentos usa r a rede sob reposta circular como fundao, mas
adicionar "atalhos" de forma que cada par nf,o apenas rastre ie seu sucessor imediato, mas tam bm um m\mero
relativam ente pequeno de pares espal hados pelo circu lo. Um exempl o desse DHT ci rcular com alguns atalhos
demonstrado na Figura 2.27(b). Atalhos so usados para_ txpedlr o ro1eame1uo das mensagens de solicitao.
Especil'lcamente, quando um par recebe uma mensagem que solicita uma cha\'e, ele encaminha a mensagem ao
viz.inho (vizir1ho sucessor ou um dos vizinh os vfa atalho) que est mais peno da chave. Assim, na Figura 2.27
(b), quando o par 4 recebe a mensagem solicitando a chave l l , ele dc1crmi na que o l)<lr mais prximo (entre seus
vizi nhos) seu vizinho no atalho l O e ento emia a mensagem diretamente ao par I O. Clarame nte, alalhos podem
red u:r signlficalivamcnte o nmero de mensagens usado para processar uma solcil.a-.lo.
A prxima qucslo na1ural "Quan1os vizinhos 110 aLalho cacl;1 par deve ter. e quais pares devem ser esses
vizinhos de atalhor Essa pergunta rccebclL atenr,o significa tiva da ,omunlclade de pesquisa IStoica. 2001;
Rowstron , 2001 ; Ratnasamy, 200 1; 2-hao, 2004, Maymounkov, 2002; Garces-Erce, 2003]. De forma imporlanle,
demonstrou-se que o D! lT pode ser projetado de forma que tanto o nmero de vizinhos como o nmero de men-
sagens por solicitao seja da ordem de log N, em que N o nmero de pares. Esses projetos oblm um compro-
misso s:uisfatrio entre as solues cx1remas de se usar topologias de sobreposio circular e de mal ha .

Peer (hum
Em sistemas P2P, um par pode vir ou ir se m aviso. Assim, no projeto de um OHT, devemos nos preocupar
em man ter a sobreposio de DHT na presena desse peer churn. Para termos uma compreenso abrangente de
como isso pode ser rea lizado, considcrartmos mais uma ,cz o DHT circular da Figura 2.27(a). Para manejar o
peer chu rn , exigi remos que cada par rastreie (ou sej. saiba o end ereo IP de) se u primeiro e segund o sucesso
res; por exemplo, o par 4 agora rastreia tanto o par 5 como o par 8. Exigiremos tambm que cada par verifique
periodicamente se se us dois sucessores cs1ilo vivos (por exemplo, enviando periodicamente mensagens de ping e
pedindo rcspos tas). Consideraremos agora como o DHT mamdo quando um par sa abruptamente. Por exem-
plo, supo nha que o p11r 5 ela Figura 2.27(a) saia abruprnmcme. Nesse caso, os dois p,ms precedentes ao par que
saiu (4 e 3) sabero q ue o par saiu, pois no responde mais fls mens agens de ping. Os pares 'I e 3 precisam, portan
to. atualizar as lnormaes do estado de seu sucessor. Co nsideraremos agora co rno o par -t atualiza se u estado;
1. O par 4 subs1ilui se u primeiro s ucessor (par 5) por se u segund o sucesso r ( par 8).
2. O par 4 , enLo, pergunta a seu novo primeiro sucessor (par 8) o identificador e o enderc<;o lP de seu
sucessor imediaio (par 10). O par 4 , enlo, Loma o pa r 10 seu segu ndo sucesso r.
Nos problemas, voc dever cleLerminar como o par 3 atualiza suas informaes de clcLermina.lo de rot<:a
mento de sobreposio.
Tendo abordado brevememe o que deve ser fei10 quando um par sai, consideraremos agora o ql1e aco mece
quando um par quer entrar no DI IT. Digamos que um par com identificador 13 quer entrar no DHT, c quando
e111m 1 sabe apenas da existncia do par 1 no DHT. O par 13 primeiro envia ao par 1 uma mensagem, ixrguntando
ql1em sero o predeces..~r e o sucessor do pr l3r. E.<;sa mensagem encamin hada atravs do DHT at alcanar
o par 12. que percebe que sem o predecessor do par 13, e que seu sucessor, o par l5, ser o s ucesso r do par l3.
Em segltida, o par 12 envia as informaes de sucessor e predecessor ao par 13. O par 13, e111o, pode entrar no
DHT, tornando o par 15 seu s ucessor e notificando ao par 12 que deve mudar seu sucesso r imediato para 13.
DHTs 1~m amp lo uso na prtica. Por exemplo, o BitTorrent us.1 o DHT Kdemlia para crar um ras1 rcaclor
distribudo. No Bifforrcm, a chave o idemificador do torrente o valor o mdereo IP dos pares que atualmen-
te partici pam d os lorrcn lS (Falkner, 2007: Neglia, 20071: Dessa forma, solicitando ao DHT Ltm identificador de
torren t, um par de BitTorrcnt reem-chegado pode determinar o par responsve l pelo iden1Hicador (o u seja, por
determinar os pares no torrent). Aps ter encontrado esse par, o par recm-chegado pode solicitar dele uma lista
bowot,o4ico.
11 5
Coplulo 2 Cornada de apl ica!O

de outros pares no Lorrenl. DHTs so usados extensamemc no sistema de compartillia1nento de arqllivos eMule
para localizar comedos em pares [Liang, 2006].

2.6.3 Estudo de coso: telefonia por Internet P2P com Skype


O Skypc uma aplicao P2P imensamente popular, muitas vezes com sele ou oiLo miU1es de usurios
conectados simultancameme. Alm de. fornK'U servio de telefonia PC para PC na Internei, o Skype oferece servio
de telefonia PC-para-telefone, telefone-para-PC e servio de vJdeocollcrfocia PC-a-PC. Fundado pe.los mesmos
indhduos qL1e criaram o Fas!Track e o Kazaa, o Skype foi adqui rido pelo eBay ern 2005 por USS 2,6 bilhes.
O Skype usa tcnicas P2P de di versas m.rneiras ino,,adoras, ilustrando de urna boa mancim como o P2P pode
ser usado em aplkaes que vo alm da clistr buio de conleclo e rnmpartilhamento de arquivos. Assim como
com progra mas de mensagens instantneas, a telefonia PC-para-PC na Internet ineremememe P2P. visto que, no
ncleo do aplicaes, duplas de usurios (ou seja, pares) comunicam-se emre si em tempo real. Porm, o Sk}'pe ltrnl
bbu emprega Lcncas P2P parn duas omrns unes importantes. que sM localizaflOde usu:.trio e NAT travcrsal.
Os pro1ocolos do Skype no sao apenas proprielrios, como t<Xlas as Lransmisse.s de paco1es do Skype
(parntes de controle e vo,) so criptografadas. No obstante, a panir do web.site do Skype e de diversos esLudos
de medio, os pesquisadores descobriram como o Skypc gemlmcme funciona (Basct, 2006; Guha, 2006: Chen,
2006; Suh, 200 Ren, 2006]. Assim como com o Fas-ffrack. os ns no Skype s:lO organizados em uma rede
sobreposta hierrquica, com cada par classificado como superpar ou par comum. O Sh')'pe inclui um ndice que
mapeia os nomes de usm\rios do Skype a endereos lP atuais (e nmeros de porca). Esse ndice dis1ri buido
emrc os superparcs. Quando Alice deseja telefonar para Bob, seu cliemc Skype procura o ndice distribudo para
determinar o endereo IP ,mial ele Bob. Como o protocolo do Skype proprietrio, atualmente no es1.i claro
como os ntapeamemos de ndice so organizados nos superpa.res, embora algumn forma de organlt<'to DI-IT seja
muito poss!vel.
T6cnicas de P2P tambm so usadas em reu:insmissorcs do Skype, que so teis para cstabd ecer ch:urnidas
e111rc hospedeiros em redes domsticas. Muitas conflgurnes de redes domt!JLicas orneccm acesso I nterncLaLra-
vs de um ro teador (tipicamente um ro1eador se111 flo) . Esses roteadores so, na verdade, mais do que roteadores,
e normalnwme incluem um elemento chamado 1etwork Addrcss Trans lator lTradutor de Endereo da lmemcll
(NAT). Estudaremos NATs no C-aptulo 4. Por m quanlo, Lltdo do que precsamos saber que um NAT impede
que um hospedeiro de fora da rede domstica inicie uma conexo com um hospedeiro dentro da rede domstica.
Caso cm1!,os os chamadores do Skype tenham NATs, h um problema - nenhum deles pode aceitar uma chamada
iniciada pelo outro, tornando aparcnu:mente imposslvel uma chamada. O uso i111cligentc de superpares e rcirans-
missorcs resolve muito bem esse problema. Suponha que quando 1\lice entrn, cla recebe um superpar sem Ni\T.
Alice pode iniciar urm, sesso com seu superpar, visto que seu NAT apenas Impede sesses iniciadas de fom de
sua rede do ms1ica. lsso permite que Alice e seu superpar 1roquem mensagens de controle nessa scss,lo. O mesmo
00orre com Bob quando ele entra. Agora, quando Alice deseja telefonar para Bob, ela info rma a seu superpar, que,
por sua vez. inorrna ao Sltperpar ele Bob, que enio informa a Bob sobre a cham:tda recebida de Alice. Caso Bob
aceite a chamada. os dois superparcs selecionam um te rceiro superpar sem NAT - o n de reU"J.nsmissor - cujo
trabalho ser:i o ele lmnsmilir os dados entre Alice e Bob. Os superpares cle Alice e de Bob, en1:lo, instruem Alice e
Bob, respecti vamente, a iniciarem uma sess.io com o retransmissor. Alice, ento, envia pacotes de voz ao retrans-
missor na conexo Alice-para-retransmissor (que fo i iniciada por Al ice), e o retransmissor trans mite es.-;es pacotes
pela conexo rccransmissor-pa ra-B-Ob (que foi iniciada por B-Ob); paeo1es de Bob para Alice nuem pelas mesmas
duas conexes de retransmissor de fo rma inversa. E pronto, Bob e Alice tm L1111a conexo simuh:inea lin a lm
mesmo que nenhum deles p-OSSn aceitar uma sesso originada fora de sua LAN. O uS-O de rcLransmissor ilustra o
proje10 cada vez mais soflstca<lo de sistemas P2P, em que pares realizam servios de sistema central para outros
(servio de indexa'lo e mmsmisso sendo dois exemplos) ao mesmo tempo em que usam o servio de usu rio
fin al (por exemplo, download de arquivo, 1elcfonia IP) fornecidos pelo sistema P2P.
O Skypt tuna nplicac,1\0 da lnLcrnt t de amplo sucesso, que angc litcrnlmentc dezenas de milhes de
usurios. A incrivelmente rpida e ampla adoo de Skype, bem como de compartilhamento de arquivos
bowot,o4ico.
Rede s de co mpulod ores e o Interne t

P2P, da \.Veb e de programas de mensagens nstantneas ames dele, um tc.stamento da sabedoria do projeto
de arquitetura gcl".il chi Internet, um projeto que no poderia ter previsto o conjunto rico e sempre cm expanso de
aplicaes da lnterneLque seria desen"olv ido nos prximos 30 anos. Os servit'OS de rede ofe recidos a ap lkaes
ele lllerncl- trnnspone de dalagrnma sem conexo (UDP). transcrtncia de datagrama orientado para conexo
(TCP), a interface socket. endereamento e nomes (DNS) entre outros - provaram ser suficientes p.ira permi tir
que mlhares ele aplicaes fossem desenvolvidas. Como todas essas aplicaes foram colocadas sobre as q Ltatro
<.-amadas inferiores exis tentes da pil ha de pro tocolo de In ternet, eles envolvem apenas o desenvolvimento de
novos softwares cltence-servidor e ~er-to-peer para uso nos slstemas inals. Isso, por sua vez, permitiu que~
aplicaes fossem rapidame nt e empregadas e adotadas.

2.7 Programao e desenvolvimento de aplicaes comTCP


Agora que j exmninamos vr ias importantes aplicaes ele rede, va mos explorar como so escritos progra-
mas ele aplicac,"'o de rede. Nesta seo escreveremos programas de ap licaes que usam TCP; na seo seguinte,
escreveremos programas que usam UDP.
Ltmbre-se de que na Seo 2.1 d isse_mos que muitas aplicaes de rede conslslcm em um par de progra-
mas - um programa diem e e um programa servidor - que residem em do is sistemas fi nais dife rentes. Quand o
esses progrm11as !;o executados, criam-se um processo cliente e um processo servido r, que se comunicam entre
si lendo de seus sockets e csc-revendo a trnvs deles. Ao criar uma aplica:lo de rede, a rnrefa principal do progra-
mador escrever o cdigo tanto para o programa cliente como para o programa servidor.
H dois tipos de aplicaes ele rede. Um de les urna implementao de um protocolo padro definido, por
exemplo, cm u m RFC. Para essa implementao, os programas, cliente e servidor, deve m obedecer s regras dita-
das pelo RFC. Por exemplo, o programa cliente poderia ser uma itnplcmetua:\o cio lado do cliente do protocolo
FTP descri lo nti Seo 2.3 e definido explicitameme no RFC 959 e o programa servidor, uma implementao do
protocolo de servidor FTP Lmnbtm cles<:rLO explidta m<:ntc no RFC 959. Se um programador escrever codificao
para o programa cliente e um outro programador independente escrever uma codificao pa ra o programa servi-
dor e ambos seguirem cuidadosamente as regras cio RFC, ento os dois programas podero imeragir. Realmeme,
mu itas das aplicaes de rede ele hoje CH\lolvcm comunicao en tre programas clierue e servidor que oram
criados por p rogramadores di erentes - por exemplo, um browser Ne1Scape que se com unica com u m servidor
Web Apache:, ou um cliente FTP em um PC que carrcg., um arquivo cm um servidor FrP UNLX. Quando um
programa, cliente ou servidor. implementa um protocolo definido cm u m RFC. deve usar o nmero de pona
assoc iado com o protocolo. (N meros de portas foram dscut iclos brevemente na Se.\o 2.1. Ser.lo examinados
mais detalhadamente no Capitulo 3.)
O outro tipo de :iplicao clienle-servidor umn aplica~:o propl'ieWric1. Ne~c caso, o protocolo dt> camada
de aplica,o utilizado pelos programas cliente e servidor no obedecem necessariamente a nenhum RFC exis,
tem e. Um nico programador (o u equipe ele desenvolvimcmo) cria ambos os programas cliente e servidor, e
tem co mpleto comrole sobre o que entra no cdigo. Mas, como a codificao no implementa um protocolo de
domnio publico, outros programadores independentes no podero desenvolve r progrnmas que iruerajam com
a aplica,.lo. Ao desen volver uma aplicao proprietria, o programador deve Ler o cuidado de no us.ir um dos
mimcros de porta bem conhecidos, dcllniclos cm RFCs.
Nesta se.lo e na prxima, examinaremos as questes unclamentais do desetwolvimcmo de uma aplicailo
cliente-servidor proprietria. Durante a fase de desemoMmento, uma das primeiras decisOes que o program ador
deve Lo rnar f se a nplicao rodar:t cm TCP ou UDP. Lembre-se de que o TCP ~ orientado paro conc.,cilo e prov
um rnna l conji(lve/ ,le cc,clcia ele: bytrs. pelo qual l uem dados cmrc dois sistemas Onas. O UDP no orientado para
conexo e envia pacoies de dados independentes de um sstema llnal ao omro, sem nenhuma garana de entrega.
Nesta seo, desenvo l,eremos uma aplica;:,o cliente simples que roda em TCP: na seo seguinte, desenvol-
veremos umu .,plic."lO dien tc simples que roda c111 UDP. Apresentaremos CSSS nplic.-acs TCP e UDP simples
em Java. Poderamos escrev-las em linguagem C ou C++, mas optamos por Java por diversas razes . Em primeiro
bowot,o4ico.
_........................................................................................___
Coplulo 2
-------
Cornada de oplicoo
117

lugar, o cdigo das aplicaes mais elegante e mas Lmpo em Java. Com Java, h,t menos linhas de codlfcaflo
e cada uma delas pode ser explicada a programadores in iciantes sem muita dificuldade. Mas mlo precisa ficar
:issust:tdo se no estiver fam iliarizado com a linguagemja\~.l. Voc eonseguir acompanhar a coclificao se tiver
cxpcritncia de progromaco cm outra li nguagem.
Para leilore-s imeressados em programao clieme-servdor e-m linguagem C, h vrias boas rdernci:ls
disposio !Donahoo, 2001: Stevens, 1997; Frost, 1994; Kurose, 1996].

2.7.1 Progromoo de aplicaes com T(P


Comentamos na Seo 2.1 que processos que rod,lm cm mquinas diferentes se comunicam LlllS corn os
outros enviando mensagens para sockets. Dissemos que cada processo anlogo a uma casa e q ue o socket do
processo anlogo a unm pona. Como il.ustrado na Figura 2.28, o socket a porta t ntre o processo da aplicao
e o TCP. O desenvolvedor d.i nplicao controln tudo que es t no lado da camada de aplic.iilo da r>orea; contudo,
tem pouco controle do lado da camada de transporte. ( No mxi mo, poder lxar alguns par:lmcLros do TCP, rnis
como l.1man ho mximo do bufTcr e tamanho mximo de segmentos.)
Agora, va mos examinar mais de perto a interao dos programas cliente- e servidor. O clcntc tem a tarefa de
iniciar contato com o servidor. Para que o servidor possa re.igir ao contato inicial do cliente. tem de estar pronto,
o q ue lmplka duas cols.'\S. Em primeiro lugar, o programa servidor no pod e estar inativo, Isto , tem de estar
rodando como um processo antes de o cliente lentar iniciar contato. Em segund o lugar, o programa tem de ter
alguma porta - mais precisameme, um socket - que acolha algum comato inicial de u m processo cliente que
esteja rodando cm uma mquina qualquer. Recorrendo nossa analogia Cllsa/pona para processo/socket, s vezes,
nos referiremos ao contato inicial do cliente como 'bater pona'.
Com o processo servidor cm cxecu-.lo, o processo clicme pode iniciar uma concx:\o TCP com o servidor, o que
feito no programa d ieme pda cria;c"lo de um sockeL. Qmmdo cria se u socket, o clieme especilca o endereo do proces-
so servidor, a saber, o endereo LP do hospedeiro servidor e o ntmero de porta do processo servidor. Com a cria-ao do
socket no programa cliente, o TCP no cliente inicia urna aprcscnwco de uts vias e estabelece uma conexo TCP com
o servidor. A ap resentao de tr!:S vias t completamente transparente para os progrnnms dle_me e servidor.
Durante a apresentao de 1rts vias, o processo clieme bate no socke1 de em.rada do processo servidor.
Quand o o servidor ouve' a balida, cria uma now porta (mais precisamente, ltm novo socket) dedicada que-
le cliente esped lco. No exemplo a seguir, a port.i de entrada um objeto ServerSocke t que denominamos
wel corneSoc ke t . Quando um cliente bate nesse socket. o progrtuna chama o mtodo accept ( ) do wel comeSocket,

Hospedeiro Hospedeiro
ou servidor ou servidor

Cont rolado pelo- -...., Controlado pelo


desenvolvedor desenvolvedor
da aplicao da aplicao

Controlado- - + TCP com TCPcom Controlado


pelo sistema buffers, buffers, pe1o si stema
operacional variveis variveis operacional
Internet

Figura 2.28 Procmos que se comunicam atravs de sockets TCP


bowot,o4ico.
118
Rede s de co mpu1 ad ores e a Interne t

que cria um novo socket para o cllcmc. Ao final da fase de apresentac;;,o, existe um a conexo TCP entre o socket
do clien te e o novo socket do servidor. Daq ui em diante, vamos nos referir ;io novo socket dedicado do servidor
como socket de conexo do ser"idor.
Da perspecliva da aplicao, a conexo TCP uma lubula,1o vinual d ireta entre o socket do cliente e o
socket de conexo do servidor. O processo cliente pode enviar bytes para seu socket arbitrnramente; o TCP
garante que o processo servidor recebe~ (amws do socket de conexo) c;ida byte na o rdem em que foram
enviados. Assim, o TCP prov um servic;o con fivel de corren te de byt es en tre os processos cliente e servidor.
Alm disso, cxatame1uc como pessoas podem entrar e sair pela mesma pona, o processo clicme no somente
envia b)lcs a seu socket, mas tambm os recebe dele; de modo semelhante, o processo servidor no s recebe
bytes de seu socket de conexo, mas tM1bm os envia por ele. lsso ilustrado na Figura 2.29. Como sockets
desem pe nham um papel central em aplicaes cliente-servidor, o desenvolvimento dessas apl icaes tambm
denominado programao ele sockets.
Antes de apresenta rmos nosso exemplo ele aplicao cUente-servidor, til cliscutirmos a noo de e.ideia.
Uma cadeia 11ma seq uncia de caracteres que luem para ckntro ou para fora de 11m processo. cada cadeia ,
para o processo, uma cadeia de cmrada ou uma cadeia de salda. Se a cadeia for de entrada, estar ligada a alguma
fon te cle enLracla para o processo, tal como uma entrada-padro (o teclado) ou um socket para o q ual fl uem dados
vindos da lmcrnet. ~ a cadeia ror de salda, estar ligada a alguma fonte de s.1.da P3m o processo, ral como uma
sada padro (o monitor) ou um socket do qual lucm dados para a Internet.

2.7.2 Um exemplo de oplicao cliente-servidor em Java


Usaremos a 5egltinte aplicailo cJiente-servidor simples para demonstrar progr,unailo de sockctS paro TCP e UDP:
L Um cliente l uma li nha :l parLir de sua e.nt.r ada padro ( teclado) e a envia atmvs de se u socket para
o servidor.
2. O servidor l 11ma linha a parLi r de seu socket ele co nexo.
3. O servidor converte a linhit p:ira letras mahisculas.
4. O servidor envia a lin ha modificada ao cliente atravs de seu socket <le co nexo.
5. O clien te l a linha moclifi1.-ada atrnvs de seu socket e apresenta a linh:1 na sua salda padro
(monitor).

Processo cl iente Processo servidor

Figura 2.29 Socket cliente, socket de entrado e socket de conexo


bowot,o4ico.
119
Captulo 2 Cornada de apl ico!O

Servidor Oiente
{Rodando em hostid

Criar socket portx.,


para requisio entrante:
welcomeSodcet ,.
ServerSocketO

. . - -!
Esperar por requisio configuraao Criar socket conectado a
de cone)(~O entrante de conex.10 TCP hostid.portx
connectlonSo-cket .. dientSocket,.
welcomeSocket.atceptO SocketO

! ...- - - - - - - - Enviar requislJ!o usando


ler requisio de .., cllentSocket
connectionSocket

E~crever resposta para


connectionSO<lcet
l
Ler resposta de
d ientSocket

l
Fechar
1
Fec:har
cor, nectionSocket tlf entSod<et

Figura 2.30 Aoplicoocliente-servidor, usando seraos de honsporte orientodos conexo

A Figura 2.30 ilustra a principal atividade do cliente e do servidor re lacionada ao socket.


Em seguida, forneceremos o par de programas clienleserviclor para uma implementao da aplicao uli-
Hzando TCP. Apresentaremos tambm uma anlise detalhada, linha a linha, aps cada p rograma. O programa
cliente ser: deno minado TCPCl i ent . java e o programa servidor, TCPServer . java. Para da.r r1fase s questes
fundamentais , forneceremos, intcncionalrncntc, uma codil'iett~~o objetiva, mns no tito prova de fogo. Unta boa
co<lilkao' certamente teria algumas linhas auxiliares a mais.
To logo os dois programas cstej:un cornpilildos em seus respectivos hospedeiros, o programa ~ rvidor ser
primeiramente executado no hos1iedciro servidor, o que criar nele um processo servidor.
Como discmido arucriormentc, o processo servidor espem para ser contauido por um processo cliente. Nesse
exemplo de aplica.lo, quando o programa cliente executado, um processo criado no cliente, e esse processo
imediatamen te comata o servidor e estab.:lece uma conexo TCP com ele. O usurio no cliente pode cmo usar
a aplicao para enviar uma linha e, em seguida, receber uma verso dessa linha em letras maisculas.

TCPClie nt.javo
Eis a codifi c.."ao para o lado cliente da aplcaio:
import java . io .* :
import java . net .*;
bowot,o4ico.
120
Red es de co mpulado res e a Internet

class TCPClient 1
public static void main(String argv[J) throws Exception
1
Str ing sentence:
Str1ng modlf1edSentence:
BufferedReader fnFromUser new BufferedReaderC
new lnputStreamReader(System.in)):
Socket clientSocket ~ new Socket( "hostname ", 6789):
OataOutputStream outToServer new OataOutputStream<
clientSocket . getOutputStream()) :
BufferedReader inFromSe r ver -
new BufferedReaderCnew InputStreamReader<
clientSocket . getlnputStream())):
sentente= inFromUser.readline() :
outToServer . writeBytescsentence + \n ' ) :
mod if1edSentence - inFromServer.readline():
System.out . println( " FROM SERVER : " +
modifiedSentence);
cllentSoc ket . close<> :

O protrama TC J:'Cl i en t cria tres cadelas e um socket, como mos Lrado na Figura 2.3 1. O socket dcuomi-
nado e I i entSocket. A cadeia i nFromuser uma cad eia de entrada para o programa ligada entrada padro
(isto , o teclado). Quando o usurio digita caracteres no teclado, eles luem para dentro ela cadeia I nF rornU ser.
A cadeia inFromServer ~ outra cadeia de entrada do programa ligada ao socke t. Caracterts que chegan1 da
red e luem para dcn1ro da cadeia inFro1nServer. finalmente, a ciideia ovt.ToServer u111a cadeia ele salda
do programa que t:11nbm e ligada ao socket. Carac1eres que o cliente envia rede luem para den1ro da cadeia
outToServer.
Va mos agora ~'l(arninar as vrias linhas da codifica-Jo.
lmport Java.10.*;
import java.net .*;
java. io cjava.netso pacotcsJava. O pacolc java. io contm classes 1>aracadeias de cnlrada edcsaida.
Em particular, contm as classes BufferedReader e Da taOutputStream - dasscs que o programa usa para
criar as Lrs mdeias prcviameme ilustradas. O pacote java . net prov classes para suporte de rede. Em particu-
lar, conu!m as classes Socket e ServerSoc ket. O objeto cl i ent Socket desse programa derivado ela classe
Socket.
class TCPClient 1
publfc statfc vofd mafn(Strfng argv[J) throws Exception
!. .. .... 1

Al aqui, o que vimos malerial paclrortiz.ado que voc vf no incio da maioria das cocliicacs Java. A ter-
ceira linha o comeo de um bloco ele definio de dasse. A palavra-diave e 1a ss inida a definio de classe para
a classe denominada TCPCl i ent. Urna classe contm V"J riveis e mtodos, limitados pelas chaves ( } que iniciam
e encerram o bloco de delinio de classe. A classe TCPCl 1ent mio tem nenhuma varivel de classe e possui exa-
t,rnicntc um mtodo, que o mtodo ma i n C } . Mtodos so semelhantes s funes ou aos procedimentos cm
li nguagens co mo C; o rntiodo ma i n ( J na linguagem Jav.i ~mclhantc ,\ un.Jo ma i n ( ) cm C e C+-+. Qua ndo
o interpretador Java executa uma aplicao (ao ser chamado pela classe de controle da aplicao), ele comea
chamando o mtodo ma i n ( } ela classe. O mtodo ma i n ( } ento chama todos os out ros mtodos exigidos para
bowot,o4ico.
121
Captulo 2 (ornado de oplico~o

@
Teclado Monitor

....
QI
::,

.....
I!
Cadeia o
de entrada e

Processo
..,. t..,.
Cadeia .
QI

<li
QI

t cadeia

.....
de x1ida V>
'ao de entrada
:=...,
=
o e

clientSocket
Socket TCP

l
Para Da
camada de camada de
tr.i!'ISporte tr;,nsporte

Figura 2.31 TCPOient tem trs codeios atravs dos quois fluem caracteres

executar a aplicao. Para essa introdut10 programao ele portas cm Java, voc pode ignorar as palavras-chave
pub l i e, s ta ti e, voi d, ma i n e thro11s Except i ons (crnbor., deva inclu-las no cdigo}.
String sentence :
String modifiedSentence ;
As duas linhas apreseniadas acima declaram objetos do tipo Str i ng (cadela) . O objeto sentence a cadca
digitada pelo usitrio e enviada ao s<:rvidor. O objeto mod i fi edSen t ence a ""leia obtida do servidor e enviada
saida padro do usurio.
BufferedReader i nfromuser new BufferedReader (new lnputStrearnReader(System. lnl) :
Essa linha cria o objeto de t.-adeia i nFromUser do tipo Bu fferedReader. A cadeia de en trada inicializada
com System . in, que ,incula ., cadeia entrada padr,lo. O comando permite que o cliente leia o texto de seu
teclado.
Socket clientSoc ket new Socket( "hostname ". 6789) :
Essa li nha cria o objeto c l ientSocket do tipo Socket. Ela tambm ativa a cone;,,;o TCP entre cliente e
servidor. A cadeia hOS t name deve ser substituda pelo nome de hospl'deiro do servidor (por exemplo, a pp l e .
po 1y . edu) . Antes de a 00nexo TCP ser realmenic iniciada. o cliente realiza um procedimento de consult.a ao
DNS do nome de hospedeiro p11m obter o endereo lP da mquina. O nmero 6789 o nmero de porta. Voe~
pode us.ir um nmero ele pona clierente. mas precisa obrigMoriamcnte usar o mesmo cio lado servidor da :1pli-
cao. Como discutimos a1Heriorrncnlc, o processo servidor identificado pelo endereo li' do hospedeiro jun-
1amenle com o n mero de port a da aplicao.
DataOutputStream outToServer =
new OaLaOutputStream(cl ienLSocket.getOut puLStream()) :
BufferedReader inFromServer
new BufferedReader( new inputStreamRea der(
clie ntSocket . getlnputStream()));
bowot,o4ico.
122
Rede s de compuladores e a Internet

Essas Unhas criam objNos de cadela que sM ligados ao socke1. A cadeia outToServer fornece a sada do
processo para o socket. A cadeia i nf romSe r ver fome ao processo a entrada do socket (veja a Figura 2.31).
sentence = inFromuser.readLine() :
Essa linha coloca uma linha digilada pelo usurio na cadeia sentence. A cadeia se1ucncc continua a juntar
caracteres al que o usurio termine a linha digitando 'carriage rcium'. A linha passa da entrada padr.\o para
denLro da cadeia sentence por meio da cadeia i nFromuser'.
outToServer.writeBytes(sentence + \n ' ) ;
Esta linJ1a envi.t a cadeia sentence para dentro da corrcnle oulToServer ampliada com um c.irriage
return '. A sentena ampliada lu pelo socket do cliente para dtntro ela conexo TCP. O cliente CHto spera para
recebtr caracteres do servidor.
modlfiedSentence lnFromServer .readLlneC> :
Quando chegam do servidor, os caraciercs lucm atravs da cadeia i nFromServer e si\O colocaclos dentro
da cadeia mod i f i edSen tence. Continuam a se ..lcumular cm modi fi edSentence al que linha lcrminc com
um caractere de 'carriage re tum'.
System.out.println( .. FROM SERVER .. + modifiedSentence):
Essa linha envia para o monitor a cadeia mod i fi edSentence retornada pelo servidor.
clientSocket.close() :
Essa (tllima li nha fecha o socket e, por conscg11intc, a conc.xo TCP emrc o cliente e o servidor. Ela faz com
que o TCP no cliente e1wie um.1 mensagem para o TCP no servidor (veja a Seo 3.5).

TCPServer.javo
Agor-.- vamos examinar o programa servidor.
import java.io.*:
import java.net .*:
cl ass TCPServer 1
public statfc votd main(Strfng argv(J) thr ows Exceptton
l
String clientSentence ;
String capitalizedSentence :
ServerSocket welcomeSocket new Serve rSocket
(6789 >:
whileCtrue) 1
Socket connectlonSocket - welcomeSocket .
accept< >;
BufferedReader inFromClient
new BufferedReader(new lnputStreamReader<
connectionSocket . getlnputStream<>>> :
DalaOutputStrearn outToClien t
new DataOutputStream(
connectionSocket . getOutputStream()) :
clientSentence = infromClient .readli ne():
capital i zedSentence
clientSentence.toUpperCase(J + ' \n ':
outToCl i ent.writeBytes(capltal i zedSentence):
bowot,o4ico.
123
Captulo 2 Corn ada de apl ico!O

TCPServer tem muitas scmdhao:1scom TCPCl ient. Vamos agora dar uma olhada nas Unhas em TCPServer.
java . N,lo comcmaremos as linhas que so id~nlicas ou semclhames aos comandos em TCPCl i ent. java.
A primcirn linha cm TCPServer substancialmcn1e clifercrHC da que virnos cm TCPCl ient:
ServerSocket welcomeSocket new ServerSocket(6789}:
Essa linha cria o objeto we I come socket, que do tipo ServerSocket. o wel comesocket llma esp:dc
de pon a qur fica 'ouvindo'. espera que algum cliemc bata. O we l comeSocke t fica escuta nu po n a nmero
6789. A li nha seguinte :
Socket connectionSocket welcomeSocket . accept();
Essa linha cria u m novo socket, denominado connect i onSocket, quando algum clien te bate porta
we 1 comeSocke t. O mlmero de porta desse socket tambm 6789. (Explicaremos por qL1c ambos t~m o mesmo
n mero de porta no Capitule> 3). O TCP en1e> estabelece urna conexo vinual direta en tre cl ientSocket ne>
d icn1c e connecti onSocket no servlclot. O clic111c e o servido r podem entflO en viar bytes um parn o omro pcfa
conexo, e lodos os b}'les enviados chega m ao o utro lado na ordem cena. Com connec ti onSoc ke t estabelecido,
o servidor pode conlinuar escuta por mttros clientes que requisitario a aplkao usando 'r1e 1 comeSocket. (Essa
verso do programa, na verdade, no fica cscma por mais requisies de conexo, mas pode ser modificada
com tllrc:tds para azcr isso.) O pre>gram.t cme> cria diversos e>bjete>s de cadeia, anlogos ae>s objc1os de cadeia
cm cl i enlSocket. Considere agont:
capl t a li zedSentence ~ cllentSentence . toUpperCase() + ' \n ';
E~e co mando : o cora.\o da aplic:.to. Ele Loma a linha enviad,t pelo dienie, ptlSsa 1ocfas as kLntS para
maisculas e ad iciona um 'carriage re1urn'. Ele usa o m1odo toUpperCase( ). Todos os outros comandos no
programa s.."lo perifricos, us,'ldos para a comunicao com o cliente.
Para testar o par de programas, instale e compile TCPCl ient.java cm um hospedeiro e TCPServer .java
em ou1ro hospedero. No se esquea de Incluir o nome de hosped eiro do servidor adequado em TCPCl i ent.
java. Emo, execute TCPServer. e 1 ass, o progr.una servidor compllado, no se rvidor. Isso crla um processo
no servidor q ue fi ca ocioso at ser contmad o por algum cliente. En1o, execute TCPC 1 1en t. elas s, o programa
clien1e compilado, no clien te. lsso cria um processo ne> dien1e e estabelece um:, conexo TCP en ir e os processos
clicn1c e servidor. Por fim , pa_m usar a aplicao, digilc uma sentena seguida de ttm 'carriagc rcturn'.
Para dese,we>lver sua pr pria aplka<;o clicn1e-scrvidor, voc pode comear modit."'ando ligeiramente os
progr.lmas. Por exemplo, cm vez de converter 1oclas as leLra.s par.\ mah\sculas, o s ervidor poderia co ntar o n(uncro
de vezes que a letra -s aparece 110 lCXlO e rclorn,1r esse nmero.

2.8 Programao de aplicaes com UDP


Aprende mos na seo anterior que, quando dois processos se comunicam por TCP, como se houvesse uma
tubuln o entre eles, que pe rmanece ativa at que um d os dois processos a feche. Quando ltm dos pro<:essos quer
c1w iar alguns b)tcs para o outro processo, simplcsmcn1c insere os by1cs na tubulao. O processo de envio no
1em ele acrescentar um endereo de destino aos bytes porqu e a 1\lbulaO est ligada logicamente ao destino. Alm
disso, a tubula~~i o prov um canal confivel de cadeia de bytes - a sequncia de bytes recebida pelo processo
receptor exatamence a mesma que o remelcme inseriu na mbulao.
O UDP 1a rnbm p em1 ite que dois ( ou ma ls) processos que rodam cm hospedeiros di fcrentes se comuniquem.
Contudo, t difcremc do TCP d e muitas maneiras fu11damc111ais. Primeiramente, um servio ml o oricmado para
conexo - no h uma fas e inicial de apresen1a-J.o, dura111e a qual esiabelecida uma tu bulao emrc os dois
processos. Como o UD P no 1ern uma tubula-.lo, quando um processo quer enviar um conjunto de br te-s a outro,
o processo remetente de\'e anexar o endereo de> processo d es1ina1rio ao conjunte> de by1es. E isse> prccis.'l ser
fc10 para cada conjun10 de by1ts que o processo reme1entc envinr. Como analogia, considere u ll1 grupo ele 20
pessoas que toma cinco t.1l<is para um ,nes,no destino; quando cada urn dos grupos enira em um carro. tem de
informar separadamente ao motor ista o endereo d e destino. Assim , o UDP semelhame a um servio de 1xL O
endereo d e d estino u ma tupla qu e consis te no endereo IP do hospedeiro destinatri o e n o numero de porta do
bowot,o4ico.
124
Rede s de compuladores e a Internet

processo desllnat,lr[o. Vamos nos referlr ao conj1mLo de bylCS de it1formao, juncamente com o endereo IP do
destinatrio e o nmero de porta , como 'pacoLe. O UDP prov um modelo de servio no confivel orientado para
mensagem, no sentido de que az o melhor esforo para entregar o conj unto de bytes ao destino. Esses conjuntos
sic'lo bytes enviados em uma nica operailo na pane remetente, e sero emregues como um conjumo na parte
des LinaLria; isso con1.rasta com o sentido da cadeia de bytes do TCP. O servio UDP faz o melhor esforo j que
o UDP no garante que o conjunto de bytes ser.l realmente entregue. O servio UDP contras ta acen1uadame111c
(em v rios aspecLos) com o modelo de senio confivel de C'.ideia de bytes do TCP.
i\ ps Ler criado ttm paco1c, o processo remetente empurra-o pam den1ro ela rede a1ravs de um sockel.
Cominuando com nossa analogia do txi, do outro lado do socket remetente h um txi esperando pelo pacote.
Esse cxl, cm.lo, leva o pacole at~ seu endereo de deslino. Contudo, n.\o g.mmte que finnlmcnte emrcgar:t o
pacote no SClt d~.s tino final, pois pode quebrar ou sofrer algum outro problema no pre,1isto no caminho. Em
outras palavras, o UDP provt scrvico ntio con.J}dvd ,le trnnsporlc a seus p,ocessos 1lc comrmirn,lo - no d ncnhu~
ma garantia de que um datagrama ('pacote') alca nar seu deslino final.
Nesrn sc,;ao, ilustraremos programa-Jo de socket desenvolvendo novamente a mesma apllca,1o da sc.1o
amerior, mas, dessa vez, com UDP. Veremos que a codiicao par;1 UDP dicrcnte da codificailo para TCP de
muitas maneiras irnport:mres. Em p:m icular, (l) n~o h aprcsentafto inicial entre os dois processos e, por1anto,
no h nccessid:1de de um socket de entrada, (2) no h cadeias Iigadas aos sockets, (3) os hospedeiros rcmctemcs
criam pacotes anexando o endereo IP do dcsLinat,irio e o nmero de porta a cada conju11to de bytes que Cn\'iam
e (4) o processo destinatrio deve desmontar c,ada pacote recebido para obter os b)tes de informauo do pacote.
Lembre-se. mais uma vez, da nossa aplica:\o simples:
1. Um cliente le uma linha a partir de sua entrada padr-ao (teclado) e 1.1 envia atravts de seu socket para o
servidor.
2. O servidor l uma linha a partir de seu socket.
3. O servidor converte a linha para letras maisculas.
4. O servidor envia a linha modiflcada atravS ele seu socket ao cliente.
S. O cliente l a linha modificada atravs de seu socket e apresenta a linha em sua saida padro (monitor).
A Figura 2.32 dcsrnca a principal atividade relacionada ao socket realizada pelo cliente e pelo servidor, que
se comunicam por meio de um srrvo de trnnsporte (UDP) mio orentaclo parn conexo.

UDPClient.jovo
Eis a codLfic.l;\o para o fado cliente da aplicao:
import java . io.*;
lmport java.net .*;
class UDPClient 1
public static void main(String args[J) throws [xception
(
BufferedReader inFromUser -
new BufferedReader<new lnputStreamReader
{System .in ) ) ;
DatagramSocket clientSocket - new DatagramSocket(J ;
lnetAddress IPAddress
JnetAddress .getByName("hostname" ) :
byte(] sendData - new byte[l024J:
byte[] receiveData = nel'I byte[l024J;
String sentence inFromuser.readL1ne{) ;
sendData = sentence.get By tes( );
DatagramPacke t sendPacket =
bowot,o4ico.
125
Captulo 2 (ornado de oplico~o

new Da tagramPacket( sendData , sendOa ta. 1ength .


lPAddress, 9876) ;
clientSocket.sendCsendPacket) ;
DatagramPacket r ece vePacket =
new DatagramPacket<recelveData .
receiveOata . length) :
clientSocket . receive(recelvePacket) :
Str ing modifiedSentence
new String ( receivePacket.getData()):
System. ouL.prin tln( UFROM SERVER: +
modifiedSentence} :
client Soc ket . close() :

O programa UDPCl i en t . ja va constri uma cadeia e um socket, como mostra a Figura 2.33. O socket
denominado cl ientSocket e do tipo OatagramSocket. Note que o UDP usa, no cliente, um tipo de socket
dierente do ~tsado no TCP. Em pariicu lar, c..-om UDP nosso clieme usa um DatagramSocket, enquanto com
TCT' ele usou um Socket. A cadeia i nFromUser uma cadeia d e entrada para o programa; est,\ ligada entrada
padrlo, isto . ao teclado. Tnhamos uma cadeia cquivalerttc cm nossa verso TCP do progmm.,. Quando o usu.rio
digita caracteres no teclado, esses caracteres fluem para dentro da cadeia lnFromUser. Porm, ao contrrio do
TCP, no lt cadeias (de entrada e de sada) ligadas ao socke1. Em ,cz de a limentar bytes cadela ligada a um
objelo Socket, o UDP rransmhc paco1cs individuais por meio do objeto Oa tagramSocket.

Servidor a lente
(Rodando emhon.idl

Criar socket portx,


Crlar socket
para rnquisi.1o crnrante:
cJ.1,rntSo<:kot
DatagrnmSockat(l

Crlar ender@l:o
Ler ,equisiao de
(hoaeid,portx)
enviar requi!io de dat~ram.a u$3do
sarverSocket
c.llont:Soeket

Escrever resposta para


aorvorSocket
espe<ificando ender~o
l
Le r resposta de
do hospedeiro cliente cliont$oeket

!
Fechar
cl i<H>tSoc kot

Figura 2.32 Aaplicao cliente-servidor usando servios de transporte no orientados poro conexo
bowot,o4ico.
Redes de compuladores e a Internet

~
Teclado Monitor

...cu
"'
::,

<:aeia
de entrada
e
o
..
"-
e:

Processo
t
..,
....."'o
~ ...
cu
o
Pacote de Pacote de
"'cu
datagrama
UDP
......, o.
>
.,
datagrama
UDP
.,e: V
Ili
...cu
clientSocket Socket UDP

l
Para Da
camada de camada de
transporte transporte

Figura 2.33 UDPClienl tem umo corrente; osocket oceiro pocotes do processo e enttego pacotes oo processo

Agom, vamos examinar as linhas ela codifkailo de TCPCl i ent .Java que silo signlficati,amcntc dicrenlcs.
DatagramSocket clientSocket new Da t ag ramSocket( ):
Essa linha cria o objeto c l ientSocket do tipo OatagramSocket. Ao contr;!Jio do TCPCl lent . java, ela
no aliva uma conei.o TCP. Em particular, o hospedeiro cliente m\o co111arn o hospedeiro servidor duran 1e a
execuo desta linha. Por essa raz.lo, o constru10r DatagramSocket() no wma como argumento o nome do
ser,idor ou o nmero da porta. Usando nossa analogia porta- rnbulaio, a c:.:ecufto da li nha acima cria um sockc1
para o processo cliente, mas no cria uma tubulao entre os dois processos.
l neLAddr ess l PAddress - l netAddress . getByName( " hostname " ) :
Para enviar by1es a um processo destinatrio, precisamos do endereo do processo. Parte desse endereo o
endereo IP do hospedeiro destinatrio. A linha apresentada invoca uma consulta ao DNS que Lraduz o nome do
dcsLinat::rio (nesse exemplo, fornecido na codificao pelo programador) para um endereo IP. O ONS tambm
foi chamado pela verso TCP do cliente, embora o tenha feito de maneira implicita, e no explcita. O mtodo
getByName() toma como argumemo o nome de hospedeiro do servidor e retoma o endereo IP desse mesmo
servidor. Color:a esse endereo no objeto I PAddres s do tipo 1netAddress.
byte() sendData .. new byte[l 024 ];
byte(] r ece1veOata - ne11 byte[l024J :
Os vetores de bytes sendOa ta c recei veOa ta reum\o os dados que o cllcmc cnvi,1 e recebe, respcclivamernc.
sendOa t a = sentence . getByt es() :
Essa linha realiza, cssc11cialme11Lc. uma converso de tipo. Pega a cadeia scntencc e a rcnomci,1 como
sendDa ta, que um velor de bytes.
DatagramPacket sendt>acket - new Da t agramPac ket(
sendDa t a . s endDa ta. l ength. I PAddress. 9876 J ;
bowot,o4ico.
(opilulo 2 ______..
Comodo de oplico!O ,
127

Essa linha consLri o pacote, sendPac ket, que o cliente enviar para a rede atravs do seu socket. Esse paco-
te inclui os dados comidos nele, send Da ta, o comprimento desses dados, o endereo IP do servidor e o numero
de porta da aplicao (escolhemos 9876). Note que send Pa c ket do 1ipo Da tag ra mPacket.
cl1entSocket . send<sendPacket) ;
Nessa linha, o mtodo send() do objeto cl i entSoc ke t toma o pacote rec m-construdo e passa-o para
a rede atr-.tvS de cl ien tSocket. Mais uma ,ez. note que o UDP envia a linha de caracteres de maneira muito
dierentc do TCP. O TCP simplesmente Inseriu a linha de caracteres cm uma cadela q ue tinha uina co nexo lgica
direta com o scnidor; o UDP cria um pacote que it1clui o endereo do servidor. ,\ps enviar esse p.1cote, o elicme
espera para receber um pacote do servidor.
DatagramPacket receivePacket
new OatagramPacket creceiveoata . receveoata.length ) ;
Nessa li nha, enquanto espera pelo pacote do servidor, o cliente cria um lugar reservado para o paco te,
recei vePacket, um objeto do tipo DatagramPacket.
c11entSocket . rece ive( r ece1 v ePacket) :
O cliente fica ocioso at receber um pacoLe; quando enfim o recebe, e le o coloca cm recei vePac ke l .
Stri ng mod i fi edSenten ce -
new String(receivePac ket.getOata()) ;
Essa linha e,mai os dados de rece i vePacket e realza uma convers:1o de Lpo, convenendo Ltm vetor de
bytes na cadeia modi f i edSentence.
System.out.pri ntln( " FROM SERVER : .. ., modi f i edSentenceJ :
Essa linha, que tambm esl. presente no TCPC 1 i ent, apresenta a cadeia mod i fi edSen ten ce no monitor
do cliente.
cllentSocket . c l ose() :
Essa ltima linha fecha o socket. Como o UDP no orientado paro conexi\o, esta linha no faz com que o
cliente envie uma mensagem de camada de trans porle ao s.crvidor (ao contr,irio do TCPCl ient).

UDPServer.jovo
Va mos agom dar uma olhada no lado servidor da aplicaM:
impo r t j a va .i o . * :
1mpor t java . net .*:
c l ass UDPServer 1
public static void main(String a r gs[J) th r ows Exception
l
DatagramSocket serverSoc ket = new
DatagramSocket(9876) :
by t e [ ] rece i veData = ne1~ by t e [ l024 ]:
by t e [ ] sendData ne w byte[1024J :
whfle (true)
1
Datagra mPacket r eceivePac ke t
new DatagramPacket< r eceiveData .
rece iveDa til . 1engt n > :
serverSocket . receive( r ecevePacketJ ;
St ri ng sente nce - new St ri ng(
receivePacket . getOataC)) ;
InetAddress IPAdd ress -
r eceive Pa cket . getAddress() ;
bowot,o4ico.
12.8
Redes de compuladores e a Internet

int port receivePacket .getPort():


String cap1talizedSentence
sentence . toUpperCase<);
sendData - capitalizedSentence .getBytes():
OatagramPacket sendPacket
new OatagramPacket (sendOata ,
sendOata . length . IPAddress . port} ;
serverSocket.send<sendPacket) :

O programa UOPServer . java conslri um socket, como mostra a figura 2.34. O socket denominado
serverSocket. um objeto do tipo Da tagramSocket, como era o socket do lado cliente da aplcao. Mais
uma \lez, nenhuma tacleia est ligada ao socke1.
TCPServer .Java.
Vamos agora examinar as linhas da codificao que so dierentes de
DatagramSocket serverSocket new OatagramSocket (9876):
Essa lin ha cons1r6i o Da tagramSocket serverSocket na porta 9876. Tod.os os dad os en\liados e recebidos
passaro a travs desse sockc1. Como o UDP nflo orcnmdo para conexo, no temos d e criar ttm novo socket e
conrinuar escuta de novas requisies de conexo, como feho no TCPServer . j ava. Se vrios cliemes aces-
sarem essa aplica,;o, todos enviaro seus pacolcs por esse nico sockcl, serverSocket.
String sentence - new Str1ngCrece1vePacket .getData());
lnetAddress lPAddress receivePacket.getAddressC} :
1nt port - rece1vePacket .getPortC) :
Essas tJ'S linhS dcsmorHrun o pacote que chega do cliente. A. primeira delas extn\i os dados do pacote e
os coloca no String sentence; h uma linha antlloga em UOPCl i ent. A segunda linha extrai o endereo IP.
A Lerceira linha a1rai o nmero de porla do dieme, que escolltdo pelo cliente e diereme do mmero de
porta 9876 do servidor. (Discutiremos nme.ros de poria do clieme com mais detalhes no capwlo seguinte.)
ncccss:irio q ue o serv idor obtenha o endereo (endereo IP e n(tmero de porta) do clicn le para que possa c1wiaT
a sentena em lcu"as maisculas de volta para ele.

i
f>rOCe$S0 1
.....,
...
......."
QI .X
~
P"acote de
datagrama
o
...
e,.
Pacote de
datagrama
>
UDP "'..,e: ~ UDP
"' ....,"
serverSocket
Socket UDP
Porta 9876

Para Da
camada de camad.a de
transporte transporte

Figura 2.34 UDPServer no tem (odeios; o socket aceito pacotes do processo e entrego pacotes ao processo
bowot,o4ico.
_........................................................................................___
Coplulo 2
-------
Cornada de oplicoo
129

Isso conclul nossa amHlsc sobre o par de progmmas UDP. Pam testar a aplica:\o, lns1ale e compile UDPCl i en t.
j ava em um hospedeiro e UDPServer. j ava em oulro. (Nilo esquea de inchtir o nome apropriado do hospedeiro
do servidor em UDPCl i en t. java.) Em seguida, execute os dois programas em seus respectivos hospedeiros. Ao
conu-.lrio do TCP, voei! pode cx~mar primeiramente o lado clieme e depois o lado servidor. Isso acontece porque,
quando vocc executa o programa clien te, o processo cliente no tenta iniciar uma conexo com o servidor. Assim
que tiver exec u1ado os programas cliente e servidor, voct poder usar a apl icao digitando uma linha no cliente.

2.9 Resumo
Neste capflulo, estudamos os aspectos conceituais e os aspectos de lmplememao de aplicaes de rede.
Conhecemos a onipresente arquitetur.t clicntescrvidor adotada por aplic:1cs da l111ernet e examin;1mos sua
uti liz.1.lo nos protocolos Hnp, FTP. SMTP, POP3 e D S. Analisamos esses importantes protocolos de camada
de aplka-Jo e suas aplicaes associadas (Web, transfer(:ncia de arquivos, c-mal e DNS) com algum detalhe.
Conhecemos tambm a arquitetura P2P, cada vez mais dominanle, e examinamos sua utilizao em muitas apli-
caes. Vimos como o API socket pode ser usado para construir a1>licaes ele rede. Examina mos a utilizao de
portas para servios de transporte fim a fim orientados para conexo (TCP) e no orientados para conexo (UDP)
e tambem construmos um servidor Web simples usando sockets. t\ primeira etapa de nossa jornada de descida
pela arquitetura da:s camadas da rede est concluda!
Logo no comeo deste livro, na Seo l.l, demos uma dcfini,ao um tanto vaga e despojada de um pro l<>
colo. Dissemos que um protocolo o formato e a e>rdem das mens.,gens trocadas enire duas ou mas entidades
comunicantes, bc.m corno as aes realiz.,das na tronsmlsso /ou no rcceblrncnto de LUna mensagem ou outro
eve nto'. O material dcs1c captulo - em particular, o estudo deia lhado dos protocolos HTTP, FTP, SMTP, POP3 e
DNS- agregou considervel subs1:\:ncia a essa deittio. Protocolos 5'1o o conceito [undamcmal de redes. Nosso
estud o sobre protocolos de aplica,lo nos deu agora a oponunidade de desenvolver urna 110,lo mais intuitiva do
que eles realmente So.
Na Scllo 2.1, descrevemos os modelos de se rvio que o TCP e o UDP oferecem s ap licaes que os cha-
mam. Examinamos esses modelos de se rvio ainda mais de perto quando desenvolvemos, nas sees 2.7 e 2.8,
apliCllcs simples que executam cm TCP e UDP. Contudo, pouco dissemos sobre como o T CP e o UDP fornecem
esses modelos de servios. Por exemplo, sabemos que o TCP prove um servio de dados confivel, mas ainda
no mencionamos como ele o foz. No prximo tcapflulo, exami1u1rcmos cuidad osamente no apenas o que so
protocolos de transporle, mas tambm o como e o porqul! de les.
Agora que conhecemos a estrutura da ap lica,o da Internet e os protocolos de camada de ::iplicailo, esiamos
prontos para contin uar a descer a pilha de protocolos e examinar a camada de transporte no Capitulo 3.

Exerccios de fixao

Captulo 2Questes de reviso


Seo 7.1
l. Relacione cinco aplicaes d:1 Internet no proprie- 4. Em uma aplicao de compartilhamento de arqui-
t:rias e os pro tocolos de camada de aplicao que vos P2P, voct concorda com a alirmai;o: "no existe
elas usam. nenhuma nollo de lados cliente e servidor de uma ses-
2. Qual a diferena entre arqui1emm de rede e arqu itc- so de comunica,.o"? Por qltc?
Lum de aplicao? 5, Que infom,ac!lo e us.1d:1 por um processo 1.1uc est
3. Para uma sesso de comunicao en tre um par de pro- rodando cm um hospedeiro para identificar um pro-
cessos, qual processo o cliente e qual o servidor? cesso que est rodando em outro hospedeiro?
bowot,o4ico.
130

------ Redes de compuladores e a Internet

6. Suponha que voc queria fazer uma u.msao de mn 18. Da perspectiva de um usurio, qual a diferena
clicnre remoto para mn scr,idor da mnncim mnls m1>i entre o modo ler-e-apagar e o modo ler-e-guardar
da possivel. Voe~ ll$:tria o UDP ou o TCP? Por qu? no POP3?
7. Com rc fcr~ncia li Figurn 2.4, vemos q11e ncnhum:1 19, possvel que o servidor Web e o servidor de com :io
das nplicac;cs relacionadas nela requer 'sem perd:i de umn organizao tenham exntamcnte o mesmo
de dados' e 'temporizafo'. Voc consegue imaginar a1>elido para um nome ele hospedeiro (1>or exemplo,
uma aplicaCllo que requeira sem perda de dados' e foo. com)? Q ual seria t, tipo de RR qLte con tm o
seja tambm alramcntc scnsfvcl ao atraso? nome de h ospedeiro do servidor de correlo7
8. Relacione quatro dasss de servios que um pmlo-
colo de trans1>mte pode prover. Para cada uma delns, Seo 2.6
indique se o UDP ou o TCP (ou ambos) fornece tal
servio. 20. No BitTorrent, s uponh a que Alice fornea b locos
para Bob duran te um interva lo de 30 segun dos. Bob
9. Lcm1bre-se de {I\LC o TCP 1>ode ser aprimorado com
retomar, neccssariamemc, o favor e fornecer blo-
o SSL par.l fornecer scrvitos de Sgur.111i;-a processo :i
cos para Alice no mesmo intervalo? Por qu?
prrn::esso, inc luindo a decoclilcailo. O SSL opera n11
carnada de transporte ou na carnada ele apliC'llo? Se 11. Considere urn novo par,Alice, queemrano Bit Torrem
o desenvolvedo r ela aplicao quer que o TCP sejn sem possuir nenhum bloco. Sem qua lquer b loco, ela
aprimorado corno SSL. o que ele deve fazer? 111,0 pode se tornar umn das <1umro mdhorcs cxpor-
taclor.1s de dados para lu:i lque r um dos outros pares.
"isto que ela n:lo possui 1tada pam envi:ir, Enl:lo,
S~es 2.2o 2.S
como ,\lice ob1er seu primeiro bloco?
10. O que signiica protocolo de apresentao (hand- 22. O que uma rede ele sobreposio cm um sistema
s haking prolocol)? de compar1ilhamen10 de arquivos P2P? Ela inclui
11. Por que HTTP, FTP, SMTP. POP3 rodam sohre TCP roteadores? O que s.10 as arestas ela rede de sobre-
e no sobre UDP? poso? Como a rede de sobreposi.iio de inund:ic:lo
12. Considere um site ele comrc io cle1rnico que quer de consullas criada e como mantida?
manter um registro ck comprns para cn<la um <lc 23. De <1ue modo a ap lcao n1e ,is.ai,tcm instanuinca
seus clientes. Dcscrc\'a como isso po<lc ser feito com u rn hlbriclo da.~ a rquiteturas clienleservidor e P2P?
coo kies. 24. Considere um DHT com uma topolo~ia d.a rede de
13. Descreva como o e-ache Weh pode reduzir o atra.w na sobreposi;\o (ou seja, cada pa r rastreia todos (IS
recepo d e um objeto desejado. O cache Web rcdu:id- pares no sistema). Quais so as vantagens e dc.sv.mta-
r o alraso para todos os objetos requisitados por um gens ele um DHT circular (sem atalhos)?
usuri<l ou somente para alguns objeios? Por qu? 25. O Skypc utiliza tcnicas P2P para dL1as funes
H . Digite um comando Tc.lnct cm um servidor Web importan tes. Quais so elas?
e envie uma mensagem de requisio com vrias
26. Rcl.nclonequ,'llro dlfertntesaplic.,i:S ques.lo a1>roprfadas
linhas. Inclua n essa mensagem a linha de cab~alho
na1Uralmen1e para arquiteturas P2P. (Dica: Oistribui-Jo
lf -modified -s ince; para fon;;ar umn mensagem
de arqui"o e mc1'\Sagcrn instan tfinea so duas.)
de resposta com a co<:Hncacf> de cscado 304 Not
Modifi ed.
Sees 2.72.8
15. Por que se diz. que o FTP envia infonnacs de con-
trole 'fora da banda' ? 27. O servidor UDP <lcscrllu na Scu'\o 2.8 precisava de
16. Supon ha que Alice envie uma mensagem a Bob uma por1a apenas, ao passo que o servidor TCP
por meio ele uma conta de e-mai l da Web (como o dcscri10 na Se,.:10 2. 7 prccis.1\P.1 de chias porias.
Hotma il). e que Bob acesse seu e-mail 1>or seu servi Por qu? Se um servidor TCP ti vesse de sur,orrnr 11
dor de correio 11s.1ndo POP3. O~reva como a men- conexes simu ltneas. cada uma ele um hospedeiro
sagem va i do hospedeiro de Alice at o hospedeiro de cliente dicrcntc, de qu,mtas porias prec isaria?
Clob. Nilo se esquea ele relacionar a s_rie ele pro1oco- 28. Par:i a nplicao c lien te-servidor po r TCP descrita
los de c,mHldn de a1>licao usados para movimem.1r na Seo 2.7, por que o programa servidor dcvc se r
a mensagem entre os do is hospedeiros. executado antes do programa cl icnle? Para a aplica
1 7. lmprima o cabealho de uma mensagem de e-mail c;o cliente-servidor por UDP dcscrl1t1 na Seo 2.8,
que acabou de receber. Quantas linhas de cabealho por que o programa cl iente pod e. ser executado antes
Recei ve d: h nela? Analise cada uma das linhas. do programa servidor?
bowot,o4ico.
131
Captulo 2 Cornada de apl ico!O

Problemns
1. Falso o u verdadeiro?

a. Um usurio requisilA uma pgina Web que con- JOO<c,>< 1f>Connect i on: keep a11 ve
siste cm 1c.,,;to e 1rs imagens. Para essa 1>.lgna, <cr>< lf><cr>< lf>
o cliente e nviar uma mensagem de rcquis ino e a. Qual a URL do documento rcc1uisilado pelo
receber qua tro mcns..1gcns cle respos1a. brow.se r?
b. Duas p.gln:is Web distintas (por exemplo, www . b. Qual vcrs.lo do Hnr o browscr est rodando?
mH .edu/research . html e www .mlt .edu/
e. O browser requisi ta um.a concx:lo no persislentc
students.html) podem ser enviadas pela
ou persis1ea1e?
mesma concx,\o persistente.
d . Qual o cnclcrco IP <lo hospedeiro no qua l o
e. Com conexes no persistentes entre browscr
e servidor de origem. (! 1>0sslvcl que um nico browscr est rodando?
Segmento TCP transpo rte duns mcnsngens dstln- e. Que tipo de browser inicia essa me nsagem? Po r
tas de requisiilo HTTP. que ncccss;.irio o tipo ele browser cm uma men-
d. O c.1bc~,1lho Date: nn mensagem <lc rSposta sagem ele requisio HTTP?
HTTP indka a liltima vez que o objetc, dn res- 5. O tc:<to a seguir mostra a resposta enviada do se rvi -
rosta foi modificado. dor e m rcael'lo mensagem HTTP Gf na qucstilo
e. As m ensagens de resposta HTTP nunca possuem acima. Rcspuncla s seguintes questes. irtd ic:ando
um corpo de mensagem vatio. ill\dc est a rcsposla na 111crtS3gcm abaixo.
2. Leia o RFC 959 parn FTP. Rclack>nc. todos os co,mm- HTTP/1.1 200 OK<cr><Tf>Dale:Tue . 07 Mar
clos ele cliente que so suportados pelo RFC. 2008
3. Considere um cliente I ITTI' que queira oh1er um 12 : 39:45GMT<cr><lf>Server :
documento Web cm um dado URL. Inicialmente, o Apache/2.0 . 52 (Fedora)
endereo IP do servicior HTTP desconhecido. Nesse <cr><lf>LastModffied: Sat . 10
cenrio, quais protocolos de tr:mspor1 e e de camada Oec2005 18 : 27:46 GtH<cr>< 7f>ETag:
de aplicao si\O necessrios. alm do HTIP? "'526c3 f22a88a4c80 ''<cr>< lf>Accept
Ranges: bytes<cr>< 1F>Content-Length :
... Consldcre :1 seguinle cadeia de c.."3r.'lctcrcs ASCII 3874<cr><lf>Keep A1ive:timeoutmax1DO
c.;1plurad.i pelo Wircsh:1rk q11and o o browscr nviou <cr><I f>Connect i on : Keep Ali ve<cr>< Tf>
uma mensagem H"ITP GET (ou seja, o contedo Content - Type: text/html : charset IS0-
real ele uma mensagem HTIP GET). Os caracteres 8859 1 <cr><T f><cr>< 1f>< ! doe type html
<.U><IJ> s:lo retorno de carro e :w:mo de linha (ou public " -//w3c//dtd html 4 .0 transi-
seja. a cadeia <.lc caracter crn il;.\lico <CI"> no texto t 1ona l / /en " >< 1f><html >< 1f><head>< 1f>
abaixo representa o carnctci nico retomo de carro <meta http equiv "Content Type "content
q ue es ta,,a contklo, naquele momemo, no cabealho text/html; charset iso-8859- l"><Jf>
HTIP). Responda as scguiatcs questes, indicando <meta>
onde est a resposta na mensagem HTTP GET narne"GENERATOR" content"Mozi 11 a/ 4. 79
abaixo. Cen] (Windows HT 5.0 : U) HetscapeJ"><lf>
GET /cs453/1ndex . html HTTP/1 . 1 <tltle>CMPSCI 453 / 591 / tHU ST550A
<cr><7f>Host : gaia . cs.umass. Spr1ng 2005 homepage</title>< lf><I
edu<cr><lf>User Agent: Mozi- lla/ head>< Tf>
5.0 (Windows : U: Windows NT 5.1: <much more document text fo1 l owing here
enUS : rv:1.7.2) Gec ko/20040804 <not shoivn>>
Netscape/7.2 (axl <cr> <7f>Accept:ex
a. O sc.rvidor foi cop:iz de encontrar o documento
t/xml . application/xml , applica
tion/xhtml+xml . text/html ; qaQ. com sucesso ou no?,\ que horas foi aprescnrnda
w9 . te xt/plain:q-0 . 8 , irnage/ a resposta do d()cmncn10?
pn9.*/* ; qeQ _5 <cr><lf>Accept Language: b. Quando o documento foi mod ificado pela ltima
en-us . en;q 0 . 5<cr><7f>Accept-Encod vez?
ing: ztp ,def1ate<cr>< Tf>Accept-Char
set : ISO - 8859 1. utf- e. Quantos byLes existem no documento que esl
8 :q=0. 7. ~:q=0 . 7 <cr><7f> Keep-Alive : retornando?
bowot,o4ico.
Rede s de compu1 ad o,es e a l nlero et

d. Quais so os 5 primeiros bytes do documento que Internet do enlace de acesso lronsmitc uma requi-
est retornando? O scrvtdor aceitou uma C(lnc.xo sio HTTP at que rcceha a resposta seja 3 seglmdos
persis te n te? em mdia (veja Seo 2.2.5). Modele o tempo total
6. Obtenha a especifica,lo HTIP/1.1 (RFC 2616). mdio de resposta como a soma do a traso de acesso
Responda s seguintes perguntas: 1111:dio (isto , o a traso entre o roteador da Internet e
o roteador d~ htslitulo) e o 1cmpo mcdlo de atraso
a. Eiq>lique o mecan ismo de sinalizac:lo que clleme
ela Lntcmet. Para a mdia de a traso de acesso. use
e servidor utilizam para Indica r que uma conexao
MI - llB), onde ti o 1empo mdio requerido para
persis te nte est scnd, fechada. O clcntc, o servi-
enviar um ohje10 11elo enlace de acesso e 8 e a iaxa
dor, ou ambos, podem sinalizar o encerramemo
de chegada de objcws ao enlace de acesso.
uc uma conexo?
a. Oc1crminc o tempo 10ml mdio de resposta.
b . Que servios de criptogmla Sllo providos pelo
HITP? b. Agora, considere q ue um cac he ins1:,lado na
LAN insl itucional e que a taxa de resposta local
e. O cl icnh.: e capm:: de :ibrir trs 011 mais conexes
seja 0.4. Determi ne o tempo tota l de rcspos1.,.
simultneas com um dctcm1 inado servidor?
10 . Considcr.: um enlace cu rto di.: 10 metros a1rovs do
il. Um servidor ou um cliente pode abrir uma
qual 11m remetente r,o<lc 1runsmillr a urnu taxa de l50
conexo ele transporte entre eles se um cios clos
bi1s/s cm ambas as direes. Su po nha que os pacotes
descobri r qur a conexo ficou lenta por um
com dados len ham 100 mil biis ele comprimento. e
tempo. possivcl que um lado comece :i cnccr
os pilell!S que con l~m controle (por exemplo. ACK
mr 1 conexo cnqunnto o outro csul trnnsmitindo
o~t nprcsenta.lo) 1enham 200 bits de comprimemo.
dados t>or rncio dessa concxor Explique.
Admita que N conexes pamlclas recebam cada 1/N
7. Suponlm q ue vocc clique com seu browser Web da largura ele banda do enlace. Agora, considere o
sobre um ponteiro para obter uma pgina Web protocolo HTTP e suponha que cada <ibjcto boixa<lo
e. que o endereo IP para o URL associado no tenha J 00 Kbts ele comprimcnlo e que o ohjcto
cs1cja 110 cachc de seu hospedeiro locnl. Portnn10, inicia l b.'liimdo conten ha 10 objetos rdcrrnciados
ser necessria uma consulia ao DNS pnra oh1cr do mesmo remetente. Os downloads paralelos po r
o endereo rP. Considere que II servidores 01\15 meio de inst:lncias paralelas de HiTP mlo persistente
sejam vls i1~1dos antes que s~u hospedeiro receba o fazem sentido nesse caso? Agora co nsckre o HTTP
endereo IP do ONS; as visitas succsslvL1s incorrem perssumLe. Voc espera ganhos s ig n ik-ativos sobr" o
cm um RTT igual a RTI 1, , Rrr. Suponha ainda caso no persistente? Jus tifique sun resposta.
que a pgina Web aSsociada ao ponteiro contenha
11. Considere o cenrio npresentado n:i questo ante-
cxotamcntc um objeto que consiste cm urna pequena
rior. Agora suponha que o enl ace compartilhado
qunntidadc de texto HTML, Seja RTT0 o RTT entre
por Bob e mais quacro usu:lrios. Ooh usa instncias
o hospe<lero local e o servidor c1uc contm o objeto.
para lelas de HTTP no persistente, e os ou1ros quatro
Admiti ndo ,1uc o tempo ele transmisso do obje10
usurios us.im HTTT' no persi.stemc sem down loads
seja zero, quanto tempo passar:\ desde q11e o cliente
para lelos.
clica o pon teiro ai~ que reccha o objeto?
a. As concxes paralelas de Ilob o ajudam a acessar
8. Com reerncin ao problema 7, sur>onha que o arc1ui-
pglnas Web mais mpldameme? Por <11.1? Por
vo HTML referencie tr'2s objetos muito ptquenos no
que no?
mesmo servidor. Desprez:mdo tempos de 1ransmis-
so, q uanto rempo passa, usando-se: b. Se cinco ltSu:lrios abrirem cinco i11SL:lncias para le-
las ele HTTP 11110 pers istente, en to ns conex,1cs
a. HTTP no persistc1u c sem conexes TCP
paralelas de Boh ain da seriam llteis? Por q u?
paralelas?
Por que mio?
b . HITP n:lo persistente com o browscr conigu-
12. Estreva um programa TCP simples t)am um se rvido r
rado para 5 conexes paralelas?
que ace ite linhas de en lrada de u m cliente e c1wic as
e. HITP persistente? linhas p<1rn a sada padr-.:lo do servidor. (Voe~ 1,ode
9. Considere a Figuro. 2. 12, que mostra uma rede insLi- fazer isso modilcando o programa TCPScrver.javn
tm.:io11:1I concclad.1 ,\ lnterm:l. Suponha que o ll'\ma- no texto.) Compile e execute s-i:u prognim,t, Em
nlH> mtlio do objeto seja 850 mil biis e que a taxa qualquer ou tra mqui na q ue conten ha um browsc r
mdia de requisio dos browsers da ins timi.'lo aos Web, defina o serviclC1r proxy no brows;ir para a
servidores de o rigem seja 1,6 requ isio 1>0r scgun mquina que csl execu1,111do seu programa se rvidor
do. Suponha tambm que a quantidade de tempo que e tambm conCigure o nmero de porta adequada-
leva d esde o instante em que o roteador do lado da mente. Seu browser dever agora enviar suas mensa-
bowot,o4ico.
133
Capitulo 2
--- -------
Cornada de aplicoO

gens de requisio GET a .seu servidor. e este de,cn! C: re tr l


npr~ ntnr as mcns.'\gcns cm sua sarda p:idr-Jo. Use S: blah blall
essa pl:uuforma ptira determinar se seu browscr gera S: ......... . blah
mensagens GET condicionais para objetos que esto
S:
em cachl."S locais.
?
13. Qual a diferenn emre ~IAI L FROM: em SMTP e
?
FROM : na mensagem ele correio?
b. Suponha q11e \IOC~ confi gure .seu d iemc de cor-
14. Como o SMTP marca o inal de um corpo de men-
reio POP para funcionar no modo ler-e-guardar.
sagem? E o HITP? O HTIP pode usar n mesmo
Conclua a scguime transao:
mwdo que o SMTP para marcar o Om d e um corpo
de mensagem? Expllquc.
C: 1i s l
S: 1 498
15. Leia o RFC 5321 para SMTP. O que signilrn MTA?
Considere a seguinte mensagem spam recebida $: 2 912
(modiicada de um sp:im vc rdodciro). Admitindo S:
q ue o criador desse s pam S<:ja malicioso e que os hos- C: retr l
pede iros sejam honestos, identifique o hospedeiro S: blah blah
malicioso que criou essa mensagem spam. S: .......... blah
From - Fri Nov 07 13:41:30 2008 S:
Return -Path: tennts5@pp33head.com ?
Received: from barmail.cs.umass.edu ?
<barmail .cs.umass .edu [1 28.119.240.3)) e. Suponha que vod configure seu clic.mc de cor-
by cs . umass . eclu
reio POP para uncionar no modo lcr--c-guardnr.
<8 .1 3.1/8.12.6) for hg@cs . umass.edu; Usando sua solu tl na p;irte (b), suponh:1 que
Fri . 7 NO\/ 2008 voc recupere as mensagens l e 2, saia <lo POP
13:27:10 -0500 e cnt,lo, 5 minutos mais tarde, ac~c novamente
Received: from asusus 4b96 ( localhost o POP para obter um nO\'O e-mail. Imagine que
(127.0.0.l]) by barma11 .cs . umass.edu nenhuma 0111ra mensagem foi e nviada nesse
(Spam Firewall) for intervalo. Elabore um tmnscript dessa scgund:1
<hg@cs .umass.edu> : Fri . 7 Nov 2008 13:27: sesso POP.
07 0500 ( E'ST) 18. a. O que(: um banco de dados wlwfs?
Received: from asusus 4b96
([58 .88 .21 .177]) by b. Use ,i.1rios bancos de dados \Yhois da Internet
para obter os nomes de dois se rvidores DNS. Cite
barma11 .cs .umass.edu for <hg@cs .uma ss . quais ooncos de dados whois voc utilizou.
edu> : Frl .
e. Use nslookup em seu hospedeiro local para e.nvia.r
07 Nov 2008 13:27:07 0500 ([ST)
con.sullas DNS a t~ senidores ele nomes: seu
Received : from [S8 .88 . 21 . 177] by servidor DNS local e os dois servidores DNS que
1nbrld55 . excllangeddd. com: Sa t. 8 Nov encontrou na parte (b). Tente eonsulu1r registros
2008 01 : 27 : 07 +0700 dos tip06 A, NS e MX. Faa um res umo cio que
From : "Jonny .. <tenn i s5@pp33head.com> cnc<>lll rou.
To: <hg@cs .uma ss.edu> d. Use nslookup para cncomrar um se rvidor Web que
Subject : How to secure your sav ings tenha v:\rios endereos IP. O servidor Web de
l 6. Leia o RFCdo POPJ (RFC 19391. Qual a finalidade sua ins1iluio (escola ou empresa) 1em ,:lrios
do comando UIDL do POPJ? endereos 1P?
17. Considere accss:1r seu ~-mail com POPJ. e. Use o banco de ch,dos whois ARlN p:u':I deter-
minar a foixa de e ndereos IP usad os por sua
a . Supon ha que voc configure .seu cliente de cor- uoivcrsid:idc.
reio POP para funcionar no modo ler-e-apagar.
{. Desere,a como um invaso r pode lts.ar bancos ele
Concl ua a scguinlc transao:
dados whois e a ferramenta nslookup para fazer
C: list o reconhecimento de uma instituio antes de
S : 1 498 lan~-ar utn ataque.
S: 2 912 g. Discuta por q ue bancos el e dados whois devem
S: estar d isponveis publicamente.
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

19. Neste problema, utilizamos a forr.1mema uncional ,IIg .2.4. Consldcrc dis1rilmir um arquivo de F biis paro N
disponvel em hospedeiros Unix e Linux pam ex1>lorar pares utilizando uma an1uitctura P2P. Admita um
a hierarquia cios servidores ONS. Lembre de que, na modelo luido e que d,... e muito grondc. de modo
Figura 2.2 L, um s.:rvidor DNS de nvel superior iu que a l;irgurn de banda do download do p:.ir nunca
herarc1uia do DNS delega urn:1 consulta DNS pnra um Ltm gargalo.
servidor DNS de nlvel infclior na hicrorquia enviando de
a. Supo nha que ccs s ( u,+ 111 + ... + u.-)/N. Espccilquc
,,oha ao cliente DNS o nome daquele servidor DNS ele
um esquema de dis Lribuio que 1>0ss ua o tem po
nvel inforior. Em primeiro lugar. leia:\ mcm pogt Sobre a
de diS1ribui;\o de F/11,
fcrmmcnta clig e rC5JJ011dn s seguimcs questes;
b. Suponha qu1.: 11, ;i, (11, + 11 1 + ... + 11.)I 1 Es1>ecilq ue
a. Iniciando com o sen ,ldor DNS raiz (de um dos
um csqucm:1 de dis tribui-Jo que poss ua o tempo
servidores raiz (a~ml.rooL-servers.net), ccmstrua
unu, sequncia de co nsultaS p.,ra o cndcn.(o IP para de distribui,o de NF/(u, + u 1 + ... + 11,).
stu servido r Web de dcixirt:im~nto utilizando<> dig. e. Conclua que o tempo mnimo de distribuio , geral-
Mosrre a relao de nomes de servidores DNS na mente, dadt, por m:tx {F/u,, NF/(11, 111 + ul\)f.
cadeia de dd egaJo ao responder sua consulta. 25. Considere uma rede de sohrept>Si<> com N pares :ui-
b . Repita o item a" mm ,:iros sites da Internet ,,os, sendo que e;ida dupla de pares possua uma cone-
po pulares, como google.com, yahoo.eom ou xo TCP. Alm disso, su1,1.mha que as co nexi1cs TCP
amazon.co rn. passem por um Lotai de r,.,J rote.1clores. Quantos ns e
20. Sup on ha que vocC consiga acessar os cachcs nos arestaS h na rede tlc sobrcposi,o corrcspomlcnte?
servidores DNS locnis do seu departamento. \lot' 26. Suponha que Bob Lenha entrado no BitTorrem. mas
ca puz de propor uma mancra de d clerminar, cm ele no quer az:cr o upload de ,,cnhum dado !)ara
linhas gemis. os scr,idorcs Web (fom de seu dcpar1a-
qualquer muro 1>ar (denominado carona).
memo) que so mais populares entre os usurios do
seu departamento? Explique. a . Bob a lega <1uc consegue receber uma c pia
completa cio arc1uivo com1>artilhado 1x:lo grupo.
21. Sup on ha que seu dc1,artamcn to possLt:!I um scr\'idor
A alcga,~.o de Bob pos.svel? Por qu?
DNS local pam m<los os computadores do departa-
me nto. \loce um usurio comum (ou seja, n,,o b. llob a lega c1 ue ele pode pegar cnro na~ de 11111

um administrado r de rede/sistema). Voc consegue modo mais eficiente usando um co njunto ele
encontrar um modo ele dcterminnr se um site da diversos computadores (com cndcre<;os IP dlsLi n-
lmemet ex1en10 foi muito prova,,elmeme acessado tos) no laborntrio de informtic:i d1: seu dc1>Mt:t
de um com1>utador cio seu dc1r.1r1amcnto alguns mcruo. Como ele pode fazer isso?
segundos a trs? Explique.
27. N~tc problema. queremos descobrir ::i cflcitncia de
22. Considere um arquivo de discrlhuio de F" IS Gh its um sistema de compartilhamento de arquivo P2P
para N pares. O servidor possui um taxa de 11plood de semelhante ao Bi1Torren t. Conslderc dtlls 1>ares,
u, 30 Mbps e cada par possui uma taxa de download Bob e Alice. Eles emram em um t0rrcm com M
de d, 2 Mbps e uma tmm de upload de 11. Para N pares no total ( incluind11 Bob c Alice) <1oe esto
10, 100 e 1.000 e 11 "300 Kbps. 700 Kbps e 2 Mbps,
com partilhando um arqui,10 que consiste <:m N
prepare um grfico aprcsemando o tempo mnimo
blocos. Admita que cm um Lcm1><l cspecl ico r. os
de distribuio para cada uma das combina,,es de
blocos que um par possui s:\o escolhidos al~toria-
N e II para o modo d iente-seJVic.Jor e para o modo
mente a parlir de 1odos os N blocos, e nen hu m par
dis1rlbui<-o P2P.
poss ui todos os N blocos. Responda s seguintes
23. Considere distribuir um arquivo de f bits p;U',1 N pares
questes:
milizanclo uma arquitetura clien te-servidor. Admita um
mo<lcto nuido no qual o servidor pode tr.msmilir simul- a. Qual a probabilidade. de Bob ter todos os blocos
Lancamcmc para diversos plrt'S, a d iferentes Laxas. desci e de ;\lce, s.abemlo que os mimeros de blocos que
que a t.i.x~ combl11;1da n.10 ultrapasse u, Bob e ,\licc tm so representados por n~c n.?
a. Sup1>nha que u/N s tt,.. Especifique um esque- b. Remova parte do conc.Jicionnmento do item "a~
ma de distrbuio que possua o tempo d e clis- para descobrir a probabilidade de Bob ter os mcs
lribu kdo ele Nf/11, mos blocos de Alice, sabendo que Alice possui
b. Supon ha que u/N:. cl,... Espccif'iquc um esq uema
de d istribuio que prn.sua o 1empo de dis-
.
11 blocos.

e. Suponha que e-ada 1>ar no llitTorrcnt tenha 5 vizi-


tribuio de Fl,J,,,,. nhos. Qual a probabilidade de Bob ter dados
e. Conclua que o 1.empo mnimo de distribuio , que sejam de interesse ele pelo menos um dos
geralmente, dado por max{Nf/11, f/d..,,,.}. cinco viz inhos?
bowot,o4ico.
135
Coplulo 2 Cornada de aplico!O

28. No exe mplo d e DHT ci rc ular na Ser;-.lo 2.6.2. s uponha emo usamos a m 1rica do problema anterior pam criar
que o par 3 descobriu <tue o par 5 sa iu. Corno o par 3 um DHT (com 2 substitu ido b). Co mpare esse DHT
a1uali:..'t i nonn nccs sobre o estado de seu sucessor? baseado nos nt'1111eros de base b com o DHT baseado
29. No exemplo de DHT c:i rcu larna Se.to 2.6.2. supo nha nos nmeros binrios. Na pior das h ipteses, qual
que um n ovo par 6 q ueira entrar no DHT. sabendo. DHT gera mais mensagens por cons ulta? Por qun
ini ciahncmc. o endereo IP do pa r 15. Quais p:.lSSOs 33. Como os DHTs s.lo redes de sobrcposi;lo. eles nao
sllO tomados? se ad1:quam necessariamente bem rede fsi~ de
30. Considere um DHT circular com ideniif'icadores d e sobre1>osit) n o scruido de q ue dois pares v izinhos
ns e de chave na fo ixa IO, 63J. Suponha que hajn podem es1ar fl sicamcruc mu ito distan tes; por exem-
oito r>arcs con1 identificadores O, 8, 16, 24, 32, 40, plo, um par poderia estar n a Asia e seu vizinho, na
48 e 56. 1\mCrica do Norte. Se atribuinnos de111ificadores
a . Supon ha que cada par possa 1cr um par no aia lho. alc:Hria e unlformcmen1c para par.:s rccm-1rnklos,
Para cada um dos oito aialhos. determine seu esse esq uema de atribltil,;o cusaria essa incom
pm n o a1alho pam que o nmero d e mensagens palibilidadc? Explique. E como ta l incom patibilidade
en viadas para qualquer consuha (i niciando em afetaria o d esempenh o do DHT?
qualquer pa r) seja reduzido. 34. Ins ta le e com1>ile os programas Java TCPCliem
b. Repila o item "a", mas permita que cada par e UOPCl icnt cm u m hosped eiro e TCPServcr e
ten ha dois pares no ata lho. UDPScrvcr e m outro.
31. Como u m mlmero inieiro em [0,2 - 11 pode ser a . Suponha que voc e xccuH: TCPClicnL nntcs de
expresso como um n mero binrio ele n bit em um executar TCPServer. O que aco n1ccc? Por qu?
DHT, cada chave pode ser exp ressa <..-omo li (11r liP
b. Imagine que vc>ce execute UDPClicm ames de
... , 11,..,). e cada iden ificador ele par pode ser eiqm:sso
UDPScrver. O q ue acoru ece? Por q ue?
como I' " (p0, p., ... , p,..,). Vamos. agora. definir a
clSlncla XOR en tre a chave k e o pm p to mo e. O que acontece se voei! usa r nmeros de porta
..., dlferent<lS pam os lados cliente e servidor?
d(k.p) I 1k}-p}121 35. Supo nha que., em UDPCliem .java, a li nha
r
OatagramSocket c11entSocket new
Dcscre,,;a C\11110 C$$O mtricn pode ser usada para deter OatagramSocket( ) ;
minar duplas (cha"c, valor) para pares. ( Para aprenckr
seja substituda por
mais St)bre como construir um OHT elciente usando
essa mtrica naLural, con.suhe IMaymounkov, 20021, OatagramSocket clientSocket new
no qual o DHT Kaclemlia descrito.) OatagramSocket(5432l:
32. Considere uma verso gc11cr11liu.cfo do esqi,cma Ser necessrio mudar UDPServer.java? Quais s.'!o os
descrito no problema acima. Em ,ez ele usar nme- nmeros de por ta para os sockets cm UDPClient e
ros binrios, vamos Lratar os iclcn1ificaclorcs d e chave UDPScrver? Q ua is era m ess~ nmeros aru cs dessa
e de par co mo nmeros de base b, s.i ndo b > 2. e mud:rna?

Questes dissertotivos
1. Na sua op inio, por que as aplicaes de comparti 3. Sites el e com rcio e letrnico e o utrns s iles Web fre-
lhamcnLo de arquivos P2P s.'lo 1ilo populares? Ser l)Or q uentemente tem ba ncos de dados ~c1c apo io". Como
q ue d istribuem msica e vfdeo gmrni1ame111e (o que scrvid orcS HTTP se commllCl'lm com esses b~ncos
legalmente disculivcl) 011 por q ue seu nmero imenso de dados?
de servidores atende elcien1emente uma demanda 4. Como voc pode configurar seu browscr 1>am cac hc
macia por mcgabytes? O u ser pelas duas razes? local? Que opes de cache vo<: tem?
2. Leia o an igo "Thc Darknct anel thc Fu turcof Contem s. Voc pode conflgur:u seu browser para abrir vrias
Distrihut ion" de Biddlc. England, PciMdo e W illman conexes simuhilne:1S com um site Web? Qu~ is so
[13iclclle , 2003] . Voc concorda com a opinio dos as van tagens e as desva ntagens ele 1cr um grande
autores? Por qu? Por que no? nmero ele conexes TC P simultneas?
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

6. Vimos que soc keis TCP da l111ernc1 Lrntam os dados referenciado por um nome exclusivo que independa
que CSlO sendo cn\1iados como umt1 cadeia de bytes. de lo~liza:10 (um URN). Dlscu1a algmms questes
mas que sockets UDP reconhecem fronteiras de que e1wo lvcriam tal modificao.
mensagens. Cite uma vantagem e uma desvantagem 10. 1-1:1 empresas distribuindo Lrai1s111isses televisivas
da ,\l'' J oric111ada para bytes em -rcla;lo Ar l que ao vivo por meio da lnternel hoje? Se sim, essas
reconhece e preserva explicitamente as roructras das empresas es1.Jo usando arquitcluras clie111e-se rvid1l r
mensagens dl'flnidas por aplicaes. e P2f'?
7, O que o servidor Web Apache? Quanto custa? Que 11. As empresas, hoje, esto ofereundo um servio
uncionalicladc tem atualmente? de vdeo ao vivo atravs da lnlcrnel usando uma
8, Muitos clientes 8itTon-cnt mili:rnm DHTs para criar arquitetura f'2f'?
um rastrcnclor dis1rib11clo. ram esses OHTs, q11al ta 12. Como o Skypc prove um i;,ervio PC parn telefone a
"eh.ave e qual o "va lor"? ,rios pases de destino?
9. Imagine que as org':lnizacs responsveis pela paclro- 13. Qltais s\o os dict11cs mais populares do BitTorrcni
nizao da Web decidam modificac a conveno de atualmente?
nomeao de modo que cnda objeto seja nomeado e

Tarefas de programao de sockets

Tarefo 1: servidor Web mu ltith reod seja apresentada na janela do browS-1;r. Voei! pode
encontrar mais deialhes sobre esta tarefa, assim como
Ao final dc:srn tarefa de progra mao, mcc ter [rnchos imponames cm cdigo java no s ite hup://www.
dcscnvolv<lo, CJn Java. um servidor Web multitlmmd, aw.com/kurose.br
que sej:1 capaz de atender vrias requisies cm para lelo.
Voc implementar a verso LO do HTTP como definida
no RFC 1945.
Torefa 2: dienle de correio
O HTTP/1.0 cria uma con cl'l::lo TCP separada para Nes ta tarefa, V\Xc desenvo lver um agenie de usurio
cada par rcqusi-Jo/rcsposta. C;1<l11 uma dessas conexocs ele correio em Java com as seguimes carncterls1icas:
ser. mnnipulada por um 1hread. Haver tambm um
Que. prov uma lmcrfacc gml.ca para o rcmc1cme
thread principal, no qua l o servido r ficar escuta de
com camr>os para o servidor ele correio local.
clientes que quiserem estabelecer conc.xcs. Para si m- para o endereo de e-mail do reme1cnte, para o
plifi ca r o uabalho de pmgrnma::lo, dcsc1wolveremos a
cmlcrco ele cmail do dcstn3trio. para o a51illn-
codiicailo c.m dos estgios. No primeiro estgio. vocc to da mensagem e para apropria mensagem.
cscrcvcn\ um servidor multilhrca<l que simplesmente
Que esiahe lecc uma conei.o TCP entre o
apresen ta o contcdo da mcnsag..:m de requisio HTTP
cliente de correio e o $erviclor de correio local.
que recebe. Depois que esse programa estiver exccu1ando
Que envia comandos SMTP para o servidor de
normalmcmc, voei: adicio nar a cocliOcao necessriu
correio local. Que recebe e processa comandos
para gcr11r rnnn rcspos1n a1>ropriada.
SMTP do servidor de correio local.
i\o desenvolver a coclillca~"tlo, vocc poder tcs1ar
Esta ser a a1,arncia de sua irucrfacc:
seu se rvido r com um browscr Web. Mas lembre-se de
que voc no estar atendrndo atrav~ da porta padro I' ,~~mm: n
80. porta nto, prccis,1r cs1>ecilcar o nmero de 1>orta fro,n II -

dentro do URL que der a seu hrowscr. Por exemplo. se o To: li


nome de seu ho.spcdeim for hos l. someschoo l ed tJ, Sub,ieo<t I!
seu serv ido r estlv..:_r escuta na porta 6789 e ,o<:11 quiser ,..sn91:
obter o arquivo i ndex. h tm 1, ento dever especificar o l.l
scguin1c URL dentro cio browscr:
http://host . someschool . edu:6789/ i ndex.
html
Quando seu scrvdor encontrar um erro, dever
~
enviar uma mensagem de resposta com uma fonte "
HTML adequada , de modo que a informao d e erro sena li .Clear li Quli
"
bowot,o4ico.
137
Captulo 2 Cornada de apl ico!O

Voe(: descnvolven\ o agerue de usurio de modo de1ermlnar o tempo Je ,1agem de Ida e volta emre ele
que e le e nvie u ma mensagem de e-mail para no mximo mesmo e o compu1ador para o qual enviou o Pi ng.
um dcs1foatno por vez. Alm dis.so , o agente de usurio O Java no prove nenhuma uncionalidade para
admitir que a parte de dominio cio endereo ele e-mail envi.ar ou receber mensagens I CMP e f por isso que nes1c
do deslinalrio ser o nome cannico do servidor SMTP labora1rio voe~ implementar o Ping na camada de apli-
do dcstimurit). (O agente de usurio no real;;nr uma cao com sockeis e mensagens UDP padronizados.
busca no DNS para um regis1ro MX: portamo, o rcrncteruc
dever fornecer o 11omc real cio servidor ele correio.) forefa 4: servidor Proxy Web
Tarefo 3: UDP Pinger Lab Neste lahomtrlo, voce desenvo lver:\ um servidor
l)roxy Web si mp les que tambm 1>0dcm fazer cachc de
Nes te laboratrio, ,,oc implementar um cliente e t)ftginas Wch. Esse servidor aceltar:t uma mensagem GET
um sen~clor Ping sim1>lc:s, em UDP. A uncionalicladc que de um browscr, lransmh in\ ess;1 mensagem ;10 S<:rvidor
esses programas oferecem similar elo programa Ping Web dcs1it1at:irio, recchcr:1 a mens:1gcm de resposta HTTP
padronizado, disponvel cm sistemas operacionais moder- do servidor dcstiMt:lrio e 1ransmitir o mensagem ele rcs-
nos. O Ping padronizado htnciona crwando Internet uma posia ao hrowscr. Esse servidor prm<y nwito simf}lcs:
mensagem ECHO <lo Protocolo de Mensagens de Com ro le emende apenas req ui~ies GET simples. Conmdo, pode
da Internet (ICMP), que a mqu ina remota devolve ao manipular todos os 1ipos de objetos; n:lo somente paginas
remetente eomo se fosse um eco. Ento, o remetente i:xxk HTML, mas ra rnhm imagens.

Wireshark Labs
Voc 1mco11tr,ml clewlhrs compleros, cm ingls, sobre os Wireslwrli La!1S tio sitt' l/1'/W. ilW. com/kurose_br.

Wireshark Lab: llTP de hospedeiros ela Internet cm endereos IP. Lembre-se


de que. na Sell 2.5. dissemos que o papel desempe nha
Com() j livcmos uma primeira experincia com do pelo cliente 110 DNS relativamenie simples - um
o ana lisador de pacottts Wireshark n o Lab 1, estamos lientc cm1ia tuna eonsuha a seu servidor ele nomes loclll
prontos para usar o Wircsli:irk para investig.1r protocolos e recebe uma resposia. Mas h m uirn coisa que p-0de
cm 01>1:milo. Neste laboratrio, exploraremos di,crsos acontecer nos bastidores e que invisvel para os clienl cs
nspec1os do pro1oeolo Hn' P; a interacao bsica GET/ DNS cnquan10 os servidores D S hierrquicos se comu-
resposta, formatos de mensagens HTTP, ex1ra.lo de gran- nicam uns com os outros para resohe r a consulta DNS
des arquivos HTML, extrac:10 de .1rquivos HTML com do cliente de modo rectirsi,,o ou itcra1vo. Do ponto de
URl..s inscridos, conexes persistentes e nllo persiswntes e vis1a do clieme DNS, todavia, o pro10colo basiame s im -
nu Lcn licao e seguran;i elo f-lTT P. ples - formulada uma consuha ao servidor de nomes
loc,al e recebida uma resposta d es1e. Nesse labora1rio
Wireshork lob: DNS observamos o DNS em ao.
Neslc labora trio. examinaremos mais de perto o
lado cliente do DNS, o 1>rotocolo que transforma nomes
bowot,o4ico.
t

6~

Como surgiu a ideia de desenvolver o BitTorrent?


Eu adquiri experincia criando redes (protocolos acim:a TCP/UDP), e implementar enxames parecia o problema
irre!;Oluto mais interessante da poca, ento resohi trabalhar nisso.
O tilc;ulo por trs do ncleo do BiLTorrcnt simples: Existe muita <..ip-.tcidade para upload l o m. Muitas
omras pessoas Lambrn lz.eram essa mesma observao. Mas implememar algo que pudesse lidar mm a logsLica
envolvida um ou1 ro problema.

Quais foram os a$pectos mais desafiadores ao desenvolver o BitTorrent?


A pa rle principal foi acertar todo o projeto e a csLruturn do protocolo. Assim que estivesse funci onando, s ua
implementao era u ma mera questo de programao~. Com re lao im plementao, ele lo nge a pa n e
mais difcil foi implementar um sistema con:ivcl. Ao lidar com pare-s d esconhecidos, voc tem de imagi nar
que, a qualquer mo mento, qualq uer un, deles pode fazer qualquer coisa e ter u m tipo de resposrn estabe-
lecida para todos os casos extremos. Eu tinha de ncar reescrevendo uma longa seo sobre o BtTorrent
quando o cst1tV ctiando pcl.i pri meira vez porque aptireceram novos problcmns e o projeto geral se to rnou
mais claro.

Inicialmente, como os pessoas descobriram o BtTorrent?


Normalmeme as pessoas descobrem o BitTorrent fazendo o seu down load. Elas queriam um certo tipo de con-
tcdo. q ue era encontrado somcnle usando o BitTorrenl. cnt,\o o baixavam. Um edilor resolveu usar o 6i1Torren1
porque simplesmente no tinha a largura de banda parn distribuir seu contc<lo de outr.t maneira.

Comente sua opino sobre os aes legais do RIAA e do MPAA contra as pessoas que utilizam programas de com-
partilha menta de arquivo, como o BitTarrent, para dividir filmes e msica? Voc j foi processsado par desenvolver
tecnologias que distribuem ilegalmente material protegido par direitos autorais?
A violaClO dos direilos autorais ilegal, mas a tecnologia, no. Nunca fui processado, pois nunca me
envolvi cm nenhuma violao dos direitos aut0rais. Se voc 1cm imercsse cm produzir tecnologia, precisa
se agarrar a ela.
bowot,o4ico.
Voc acha que, em um futuro prximo, outros sistemas de distribuio de arquivo podem substituir o BitTorrent? Por
exemplo, a Microsoft pode induir ~u prprio protocolo de distribuio de arquivo em um lanamento futuro de um
sistema operadonal?
Pode haver pro tocolos no futuro, mas impro,:\vel que os 1>ri11cpios funda1nentais de como agruv,1r dados,
esclarecidos no protocolo BitTorrcnt, mudem. A maneira mais pro~vcl de ocorrer uma substituio se houver
uma mudana em toda a estrutura da Internet em razo das propores entre algumas das consrnntes fu11damen-
ias c1ue mudam radicalmente medida que a velocidade aumenta. Mas projeMs para os prximos anos apenas
reforam ainda mais o modelo lllual.

De forma geral, onde voc v a Internet liderando? Na suo opinio, quais $o, ou ~ro, os desafios tcnicos mois
importantes? Voc viz:ualiz:a alguma nova "aplicao inovadora" que est por vir?
A Internet e os computadores em geral esto se tornando cada vez mais onipresentes. O IPod nano parece
uma lcmbrancinha de esta, pois inevitavelmente um dia ele o ser. em raz.lo da baix-a dos preos. O desafio
tcnico atual mais interessante reunir o maior nmero de dados possvel de Lodos os d ispositivos conectados
e disponfilizar esses dados de uma fonn;i t\lll e acess!vcl. Por exemplo, quase todos os aparelhos portteis
poderiam conter um GPS, e cada objeto que voc possui, incluindo roupas, brinquedos, e letrodom sticos e
mobilia, poderiam inorm-lo onde se encontram ;io perd~-los e fazer um resumo completo sobre seu his trico
.uual, incluindo manu Lcno necessria, utilidade futura esperada, deLec-.lo de maus Lratos etc. Voe~ no s po-
deria obter informaes sobre suas propriedades como t:1mbm, digamos, a vida 1i til d e um produto espcdfico
poderia ser detcnninada de orma precisa, e a coordenao com ou1ras pessoas se tornaria mais cil, ;ilm do
simples, mas surpreendente, aperfeioamento de as pessoas poderem se encon trar facilmente quando possuem
um telefone celular.

Profissionalmente, olgum lhe serviu de inspirao? Em que sentidos?


Nenhuma parbola me ve m cabea, mas os mi tos do Vale do Silcio foram algo que segui risca.

Voc tem algum conselho para os alunos ingressantes na rea de rede/ Internet?
Encontre algo que no esteja cm a lta no momento, mas que voei? ache que possm11 dar origem a coisas cmpolgamcs
e que seja, ir,trticularmentc, Jnteressantc para voc e comece a trnbalhar nisso. Tente tambm obter experinc:ia
proissional na rea em q ue desej'<1 trabalh1.u. Experi~ncias do mundo real e nsinam voc o que importante no
mundo rea l, e isso algo que esempre bem distorcido quando visto somente de dentro do ambiente at'admico.
bowot,o4ico.

Camada de transporte

P
osldonada cmrc as camadas de aplicao e de rede, a camada de transporte f uma pea ccmral ela arqul-
lClllrn de rede c m camadas. Ela desempenha o papel fundamental de fornecer servios de comunicao
d lret:1rncmc aos processos de aplicao q ue rodam em hospedeiros clierc111es. A abordagem pedaggica
que :1do1amos ncsLe c.1ptulo allcrn,u entre discusses de prin cpios de camada de trnnsportc e o modo como
esses princpios so implt mentados cm protocolos cxsttntes; c:omo de: costume, daremos particular cnfasc aos
protocolos da lmernet, em cspedal aos pro1ocolos de camada de u-anspone TCP e UDP.
Comearemos discutindo a relao en tre as camadas de 1.1",msportc e de rede, preparando o cenrio para o
exame d11 primeira fun,lo importante da camada de Lr:rnsportc-ampli11r o servio de entrega da camada de rede
entre dois sistemas finais para um sen io de entrega entre dois processos de camada ele aplicao que rodam nos
s istemas fi nais. llus rraremos essa funo quando abordarmos o UDP, o pr01ocolo de transporte no oriemado
para con exo da lrncrnet.
Ento retornaremos aos principies e enfrentaremos um dos problemas mais fundamentais de redes de compu-
1adores - como duas emidaclcs poclcm se omuni<:a r de maneira confivel por um meio que pode perder e corro m-
per dados. Medfanu: uma srie de cenros cada vez mais complicados (e realistas' ), construiremos um conjumo
de tcnicas que os protocol05 de transporte utilizam pam resolver esse problema. Eruo, mostrorcmos como e~cs
princpios esto incorporados no TCP, o protocolo de transporte oriemado para co ncx:,o da lntcmct.
Em seguida, passaremos para um segundo problema fundamentalmente importante em redes - o controle
da taxa d e transmisso de emidades de tarnada de transporte pam evitar ou se rctupcrar de congcstJomunentos
demro da rede. Consideraremos as causas e consequncias do congestionamemo, bem co mo tcnicas de comrole
de congestionamento co rnumcnte usadas. Aps adquirir um slido eruendimento das q L1estcs que estfto por trs
do conlrolc de corigcstionamento, estudaremos como o TCP o aborda.

3.1 Introduo e servios de camada de transporte


Nos dois captulos anteriores, citamos o papel da camada de transporte e os servios que ela fome<:c. Vamos
revis.1r rapidamen te o que j aprendemos sob re a camada de tra nsporte.
Um protocolo de e-amada de tra11sporte Comece comunicao lgica cnlre processos de aplica.lo que
rodam em hospedeiros diferentes. Comunicao lgica nesse contexto significa que, do ponto de vista de uma
aplicao, tudo se passa como se os hospedeiros que rodam os processos estivessem conectados diretamente; na
bowot,o4ico.
141
(opilulo 3 Camada de tran sporte

verdade, esses hospedeiros podcr-Jo estar cm lados opostos cio phmeta. conectados por munerosos roteadores e
uma ampla ,rariedade de tipos de enlace. Processos de aplica:io usam a comunicao lgica provida pela camada
de transporte para enviar mens.'lgeus enLre si. livres da preocupao dos detalhes da inraes1rutura fisica ulilizada
para Lmnspori:ir essas mensagens. A Figura 3. 1 ilustra a noo de comuni<.-aao lgica.
Ncla, vemos que pro tocolos de camada de transpone si\o implementados nos sistemas finais, mas no
em roteadores de rede. No lado remetcnce, a camada de transpon e converte as mensagens qlte rece be de um

ISS> Na~onal ou (il<>bal


RedemYel

enla<e de Dado,

f1$1<
Rede

Fl~<il

Rede Coorpo,adva

figura 3.1 Acomodo de lronsporte fomece comunicoo lgico, e no fsica, entre processos de oplic(l!es. Pode haver mos de um prolocolo
de cornada de lronsporte disponvel paro aplicaes de rede. Por exemplo, oInternet tem dois protocolos - TCP e UDP. (oda um deles prov um
conjunto diferente de servios de camada de lransporte aplicao que oest chamando
bowot,o4ico.
Rede s de compu1adores e a Internei

processo de aplicao remetente em pacotes ele camada de transporte, denominados segmentos de camada
de transporte na terminologia da Internet. lsso (possivelmente) feito fragmentando-se as mensagens da
aplicao em pedaos menores e adicionando-se um cabealho de camacla de t ra nsporte a cada pedao para
criar o segmento de cama da de mms-portc. A t-anrnda de transporte, cnli\o, passa o scgmcmo para a c..-:unada de
rede no sistema fi nal remetente, onde ele encapsulado cm um pacote de camada de rede (um dat.1grama) e
enviado ao des tlnautrio. imponanie notar que roteadores de rede agem somente nos campos de camada de
rede do darngrama; isto . no examinam os campos do segmento d e camada de trans porte encapsulado com o
datagnuna. No lado dcstlnturlo, a camada de ndc extrai do datagrama o segmento de camada de mmspon c e
passa-o para a camada de 1ranspone. Em seguida, essa camada processa o segmento recebido, disponibilizando
os dados para a aplicao des~inatria.

3.1.1 Rela~o entre os camadas de lransporte e de rede


Lembre-se de que a camada de trnnspone se situa logo acima da camada de rede na pilha de protocolos.
Enqua,uo um pro1ocolo de camadtt de transporte fornece comunica~,'\o lgica entre Jtioc:cssos que rodam cm hos-
pedeiros difcrcmcs, u m protocolo de camada de rede fornece comunica~Ao lgica ernrc hospedeiros. Essa dts1ino
sutil, mas impornuuc. Vamos e:xarnin-la com o auxlio de: uma analogia com rnor:1cf1.s.
Considere duas c-.isas, tnn;1 na Costa Leste e omra 11a Costa Oeste dos Estados Unidos e que, em cada uma
delas, h uma dz ia de crianas. As c;ianas da Costa Leste so primM das crianas da Costa Oeste e todas adoram
escrever canas umas para as oulr-JS- <.-ada crian4,.1 escreve a <:ada primo um., vez por semana e cada cana entre
gue pelo servio d e correio trndconal dentro de um envelope separado. Assim, cada moradia envia L44 canas
por semana para a outra. (Essas crianas economizariam muito d inheiro se tivessem e-mail!) Em cada moradia h
uma criana responsvel pela coleta e distribuio da correspondncia - Ann, na casa da Costa Oeste, e Bill, na
da Costu Leste. Toda scrnan:,, Ann coleta n eorrcspond~ncia de seus ir rni\os e irm,'\s e a coloca no correio. Quando
as canas chegam casa da Costa OesLe, tambm Ann qt1em tem a tarefa de distribuir a correspondncia a seus
irmos e Irms. Bill realiza o mesmo trabalho na <:asa da Costa Leste.
Nesse exemplo, o servio postal prov uma comunicao lgica entre as duas casas - ele mo\'imenta a
corrcspondencin de u 11111 casa para outra, e no de uma pessoa para outra. Por outro lado. Ann e Di11 proveem
comunicao lgica entre os primos - eles coletam e entregam a correspondncia de seus irmos e irms. Note
que, da perspectiva dos primos, Ann e Bll selo o sc.rvio posrnl, embora sejam ,\penas uma parte do siste rna (a
pan e do sistema f'inal) do processo de entrega fim a f'im . Esse exemplo elas moradias uma analogia interessante
para explicar como a camada de transporte ~ relaciona com a camada ele rede:
mensagens ele aplicao = e.mas em envelopes
processos = primos
hosped eiros (tambm denominados sistemas finais) = 1.-asas
prococolo de camada de transpone = Ann e Bill
protocolo de camada de rede. = servio postal (i ndui ndo os carteiros)
Continuando com essa analogia, observe que Ann e Bill .izem todo o seu 1r.ibalho de11tro de suas rcspcc1ivas
casas; eles no esto envolvidos, por exemplo, com :i cl:issilic:io da corrcspondencia cm nenhuma cent ral inter-
mediria dos correios ou com o Lmnsportc da correspondet1cia de uma central a outm. De maneira scmelhanLe,
pro tocolos de camada de transporte moram nos sistemas f'inas, onde movimentam mensagens de processos de
aplicailo pant a borda ela rede (isto , para a camada de rede) e vice-versa, mas no imerercm 110 modo como
as mensagens so movimentadas dentro do ncleo da rede. Na verdade, como ilustrado na Figura 3.1, ro teadores
imcrmcdiros no reconhecem nenlrnma inforrna;lo que a camada de Lmnspone possa ter anexado s menSll-
ge ns da apli<:a<;:lo nem agem sobre ela.
Prosseguindo com nossa saga familiar , s uponha agora que, quando Ann e Bill saem de rerias, outro par de
primos - digamos, Susan e Harvey - subsLima-os e encarregue-se da colem imcrna da corrC<Spondencia e de sua
entrega. Infelizmente para as duas famlias, eles no desempenham essa tarefa do mesmo modo que Ann e Bill.
bowot,o4ico.
143
Copilulo 3 Camada de transporte

Por serem crianas mais novas, Susan e Harvey recolhem e entregam a corresponde.nela com menos frequl:nc.ia
e, ocasionalmcnle, perdem canas (que s vezes acabam mastigadas pelo c,o da faml ia). Assim, o par de primos
Susan e Harvey n.'lo prove o mesmo conjunlo de servios (isto , o mesmo modelo de servio) oferecido por Ann
e Bill. De uma maneira anloga, uma rede de computadores pode disponibilizar vrios protocolos de transpon e,
cm que mda um oferece um modelo de servio diferente s aplicaes.
Os possveis servios qttc Ann e Bill podem fornecer s,,o claramente li mitados pelos possveis servios que
os correios fornecem . Por exemplo , se o servio postal mlo estipula um praz.o mximo parn entregar a corrcs,-
pondncia entre as duas casas (digamos, tri:s d ias), ento no h nenhuma possibilidade de Ann e Bill definirem
um atraso mximo pura a emrcga da correspondncia entre qualq uer par de primos. De maneira semelhante, os
servios que um protocolo de u, mspone pode fornecer silo frequentemente limitados pelo modelo de servio do
pro1ocolo subjacente da camada de rede. Se o protocolo de c;imacla de rede n;,o puder dar garaniias contra atraso
ou garnnlias de largura de banda para segmentos de camada de lransporle enviados entre hospedeiros, cnlo o
protocolo de camada de transporte no poder dar essas mesmas garantias para mensagens de aplicao enviadas
em rc processos.
No emanto, certos servios p0<iem ser oferecidos por um protocolo de Lranspone mesmo qua ndo o prot0colo
de rede s ubjacente no oferece o servio correspondente na camada de rede. Por exemplo, como veremos neste
c,pflulo, um pro1ocolo de Lransporie pode oferecer servio eonftvel de mrnscrncia ele dados a uma aplicao
mesmo quando o protocolo subjacenlc da rede no confivel, isto , mesmo quando o protocolo de rede perde,
embaralha ou d uplica pacotes. Como outro exemplo (que exploraremos no Capitu lo 8, quando discutirmos
segurana de rede), um protocolo de transporte pode usar criptografia pam garantir que as mensagens da aplica
~10 no sejam lidas por imrusos mesmo quando a camada de. rede no puder garantir o sigilo de segmenLos de
camada de transpo rte.

3.1.2 Viso gerei da cornada de transporte no Internei


Lembre-se de que a lmernet - e, de maneira mai:s geral, a rede TCP/I P - disponibiliza dois protocolos de
transporte dis timos para a camada de aplicao. Um deles o UDP (Use r Datagram Protocol - Pro tocolo
de Datagrama de Usu ri o). que prov aplicao solicitante um servio mio conivcl, n:io orien tado para
conexo. O segundo desses protocolos o TCP (Trnnsmission Comrol Pro1ocol - Pro1ocolo de Controle de
Transmisso), que prov apli<:alo solicilantc um servio con fi;-ivcl. orientado parn conexo. Ao projetar uma
aplicao de rede, o criador da aplicao deve especificar um desse.s dois protocolos de transpo rte. Como vimos
nas sees 2.7 e 2.8, o desenvolvedor da aplicao escolhe entre o UDP e o TCP ao criar sockets.
Para simplificar a terminologia , quando no contexto da Internet, fa remos aluso ao pacote de camada de
transporte como um st"gmenl Q. Devemos mcniol\<1r, contudo, que a li1eratur<1 d<1 ln1crne1 (po r exemplo, os RFCs)
tambm se refere ao pacote de camada de transporte com/para TCP como um segmento, mas nrnitas vezes se refe-
re ao p;icotc com/para UDP como um clc11c1grt1111<1. Porm. essa mesma literatura tambtm usa o termo tl<1lc1grt1m<1
para o pacote de camada de rede! Corno este um livro de in1roduf10 a redes de computadores, acreditamos q ue
ser menos conuso se nos rcfc:rirmos a ambos os pacotes TCP e UDP como segmentos; reservaremos o termo
clMagrnma para o pacote de ca111ada de rede.
Ames de continuarmos com nossa breve apresema<,':cio do UDP e do TCP, til dizer algmtl ltS palavras sobre
a camad:i de rede da lncerne t. (A camada de rede examinada deta lhadamente no Capfmlo 4.) O protocolo de
c1mada de rede da l nteme1 tem um nome - IP, que quer dizer /111cme1 Pro1.ocol. O 11' prove cormmicao lgica
en tre hospedeiros. O modelo de servio do IP um servi o d e entrega d e melhor esforo. o q ue significa que
o IP faz o 'melhor esforo' parn levar segmentos entre hos1>edeiros comunicantes, me1s nd<J cM nen/111111<1 gcmmticr.
Em especial, o IP no g:trante a entrega ele segmentos, a erurcga ord enada ele segmentos e tampouco a integridade
dos dados nos seg111e111os. Por essas mzes, ele denominado um servi o no eonfivel. Mencionamos ta mbm
neste li" ro que cada hospedeiro tem. no mnimo, um endereo de camada de rede. denominado endereo IP.
Examinaremos endereamento lP detalhadamente no Captulo 4. Para este captulo, precisamos apenas ter em
mente que cada hospedeiro tem um endereo IP.
bowot,o4ico.
Rede s de compulado res e a Interne t

Agora que abordamos Hgeiramcme o modelo de servio IP, vamos resumir os modelos de servio providos
por UDP e TCP. A responsabilidade fundamental do UDP e do TCP am1>liar o servio de ermega IP entre dois
sistemas finais para um servi\'.O de entrega entre dois processos q ue rodam nos sistemas finais. A ampliao ela
cm rcga hospedeiro a hospedeiro para entrega processo a processo ~ denominada muh i1>lc.x a~o/dcmulplcxa-
o de camada de trans portc. Disculiremos multiplexao e demultiplexao de camada de lrans-porte na pr-
xima seilo. O UDP e o T CP tamb m fornecem verifica:lo de lntegrfdade ao incluir campos de deteco de erros
nos cabealhos d e seus segmentos. Esses dois servios mnimos de camada d e 1mnspone - emrega de dados
proctsso a processo e. verlOcao de c.rros - so os l\nlo..~ que o UDP [omccc.! Em ~peclal. como o IP, o UDP
um sen rio no confi ve l - ele no gara me que os dados enviados po r um processo cheguem (q uando chegam!)
imactos ao processo dcs cinn1rio. O UDP ser discu tido dctalhadameme na Scti.O 3.3.
O TCP, por ou tro lado . oferece v rios servios adicionais s aplicaes. Primciramenle, e mais imporla nte,
ele prov transferncia confivel de dados. Usando comrole de luxo, nmeros de seq uncia, reconheeimen-
tos e temporizadores (tcnicas que exploraremos detalhadamente neste ('apitulo), o pro1ocolo assegura q ue os
daclos sejam entregues cio processo remetente ao processo destinatrio corretamente e cm ordem. Assim, o TCP
converte o servio ni\o con fivel do IP entre sistemas inais em um servio coni,\vcl de Lntnsportc de dados en tre
processos. Ele ta mbm prov controle d e congestionamento. O controle ,le congcstionamenlo no ta nto um
servio fornec:do ap lica-.1o soliciuuue; mais um servio dirigido lmernet como um todo - para o bem g('ral.
Em termos genricos. o controle de congestionamento do TCP evita que qualquer outra conex.lo TCP abarrote
os enlaces e conrnwdores entre hospedeiros comunicantes com u ma quanti dade excessiva de trfego. Em prind-
pio, o TCP permite que conexes TCP Lmfcgando por um enlace de rede congestionado compartilhem cm p ele
igualdade a largura de banda daquele enlace. lsso fei 10 pela regulagem da laxa com a QLUtl o lado remetente do
TCP pode enviar trfego para dentro da rede. O 1rcgo UDP, por outro lado, no regulado. Uma aplicailo q ue
usa transporte UD P pode emiar 1rfego Laxa que q uiser, pelo (empo que quiser.
Um protocolo que fornece trnnscrncia conf\vel de dados e comrolc de congestionamento , necessaria-
mente, co mple xo. Precisaremos de vrias sees para detalhar os princpios da 1ra11sfer ncia co nfivel de dados e
do comrole de congcs tionamem o, bem como de sees adicionais para e.'llplicar o protocolo TCP. Esses 1picos
silo analis;idos nas sees 3.4 a 3.8. A abordage m escolhida r1este captulo alternar en tre princpios bsicos e
o protocolo TCP. Por exemplo , diseutircmos prirncirnmentc a Lr:ms fcrncia coni:h1cl de dados em il rnbilo gemi
e, cm scguid,,, co mo o TCP fornece cspcci'icarncmc a lr'Jt.scrfncia cor1f1vcl de dados. De maneira semelhante.
d iscutiremos inicialmente o controle de congesti onamenlo em mbito geral e, cm seguida, co rno o TCP realiza
o controle de congestionamem o. Mas, antes de chegarmos a essa part e boa, vamos exa minar. primeiramente,
mu l1iplexao/dernu lLiplexao na camada de transporte.

3.2 Multiplexao e demultiplexao


Nesta seo, discutiremos multiplexao e demultiplexao na camada de transporLC, isto , a ampliao do
servio <le entrega hospedeiro a hospedeiro provido pela camada de rede para um servio de entrega processo a
processo para aplicaes que rodam nesses hospedeiros. Para ma n1er a disc usso em nivel concreto, vamos e."<a-
minar esse servio bsico da camada de transpo rte no con1cx to da Internet. En fa tiza mos, contudo, que o servio
de mul ~iplexao/demultiplexac;o necessrio pa,-,1 todas as redes de computadores.
No hospedeiro de destino, a camada de 1rnnspone re-cebe segmentos da c:nnada de rede logo abaixo dela e
tem a responsabilidade de enrregar os dados desses segmem os ao processo de aplicao apropriado que roda no
hospc:deiro. Vamos examinar um exemplo. Suponha que voc esteja sentado fren te d e seu compmador. descar-
regando p.1ginas Web enq uanto rod.1 uma ses~o FTP e duas sess.es Telnet. Por conseguimc, voe! 1em quatro
processos de aplicao de rede em execuo - dois processos Tel net, um processo FTP e u m processo HTTP.
Quando n cam ada de transporte cm seu comp utador rccc_bcr dados da camada de rede abaixo dela, precisar.\
di recionar os dados recebidos a L1m desses quatro processos. Vamos ver agora como isso feito.
Em primeiro lugar , lembre-se de que dissemos, nas sees 2.7 e 2.8 , que um processo (como parte de uma
aplicao de rede) JJode ter um ou mais sockets, portas pelas quais dados passam da rede para o processo e do
bowot,o4ico.
145
Copilulo 3 Camada de transporte

processo parn a rede. Assim, como mostra a Figura 3.2, a camada de Ltanspo n e do hospedeiro desnatrio na
verdade no entrega dados d iretamenle a um processo, mas a um socket intermedirio. Como, a qua lquer dado
instante, pode haver mais de um soc:kel no h ospedeiro desLinat:lrio, cada um tem um identificador exclusivo. O
formato do idcnLificador depende de o socket ser UDP ou TCP, como discutiremos cm breve.
Agora, vamos considemr como um hospedeiro d esLinatrio dLreciona porta correLa um segmento de
camada de transporte que chega. Cada segmento de camada de transpone tem um conjunto de campos para
essa lnalidacle. Na extremidade receptora, a camada d e trans porte examina esses campos p:m1 identilcar
a pona reccpLora e d irecionar o scginemo a esse socket. A Larefa de emregar os dados contidos cm um segmen-
to ela camada de transporte porta corret.i dcnomin.ida demultiplexao. O Lrabalho de reuni r, no hospedeiro
de origem, pores de dados provenientes de dleremcs port~, encapsular cada poro de dados com infom1a~ocs de
cabealho (que mais tarde ser.lo llsadas na d emultiplexao) para criar segmentos, e passar esses seg111enlos para
a cmnada de rede d enominada multiplexao. Note que a camada de transporte do hospedeiro q ue est no meio
da Figura 3.2 Lcm de demu lti plexar segmentos que chegam da C1lrnada de rede abaixo p.ira os processos Pl ou
P2 acima; isso feito direcionando porta co rresponclcr1te do processo os dados conLidos no segmento que est
chegando . A ciimada de transporte desse hospedeiro tambtm tem de junLar dados de sarda dessas ponas, fo rmar
segmentos de camada de transporte e pass-los camada de rede. Embora te nhamos apresentado multiplcxac,'o e
dcmu lliplexao no com exto dos protocolos de transporte da Internet, irnporLame em cncler q t1c essas operaes
estar.lo presenLes sempre que um nico protocolo cm uma camada ( na de tra nsport e ou em qualquer otitra) for
usi1do por vri os proLoeolos na camada mais alta seguinte.
Para ilustrar o servio de demultiplexao, lembre-se da meLfora das moradias apresentada na seo ante-
rior. Cada uma das crianas identificada por set1 nome prprio. Quando Bill recebe uma grande q uantidade de
correspond ~ncia cio can eiro, realiza uma operao de demult iplexao ao examinar para quem as cartas est.i'\o
enclcreadas e, em seguida, entregar:\ correspondncia a seus irmos e irms. Ann realiza uma operao de mul-
tiplcxaro quando coleta as canas de seus irm.os e. irms e entrega a corrcspondCn cia na agencia do correio.
Agora q t11" entendemos os papis da nmltiplcxao e da demultiplexao tia L-amada de transporte, vamos
examinar como isso ~ feilo em um hospedeiro. Sabemos, pela nossa disc usso an terior. que mulliplcxao na
camada de rede requer ( 1) que as portas ten ham identificadores exclusivos e (2) que cada segmento tenha
campos especiais q ue indiquem a pona para a qual o segmento deve ser e ntregue. Esses '-'<unpos especiais, ilus-
trados na Figura 3.3, so o campo d e nmero de porta da fonte e o campo de nmero de porta do destino.
(Os segmentos UDP e TCP Lm outros campos tambm, que ser-ao exnminados nas sees subscque111es deste
c-.iptulo.) Cada nmero de porta um nmero de 16 bits na faixa de O a 65535. Os m\meros de porta entl'e O e
1023 s:lo denominados nmeros de port.a bem conhecidos ; eles so resLriLos, o que significa que esto rcser~-
dos par-a utilizao por prolocolos de aplicai.io bem conhecidos, como HTTP (que usa a porta nmero 80) e FTP

Aplie,ao Aplicao

Transporte Tra nsporte Transporte


Rede Rede Rede
En lace de dados Enlace de dados
Fislca fsica Fsica

Legenda:
Q Processo - Socket

Figura 3.2 Multiplexao e demultiplexoo no cornada de transporte


bowot,o4ico.
Redes de compu1ado,es e a lnleroet

32 bits

Porta da fonte # Porta do destino #

Outros campos de cabealho

Dados da aplic,ao
(mensagem)

Figura 3.3 Campos de nmero de posto do fonte edo destioo em um segmento de camodo de tronsporte

(que usa a porta nmero 21). A lista dos nmeros de porta bem conhecidos apresentada no RF 1700 e atua-
litach1 em lmp://www.i:rna.org (RFC 3232). Qu:rndo desenvolvemos uma nova aplica(;';\O (como as desenvolvidas
irns sees 2.7 a 2.8), devemos atribuir a eh um nmero de porta.
Agora j deve estar claro como a camada de transporte poclera implcmcLuar o servio de demulLipkxalo:
cada porta do hospedeiro pode receber um numero designado: quando um segmento chega ao hospedeiro, a
camada de tra11spor1c examina seu nmero de pona de destino e o direciona porta correspondente. Ento, os
daclos do segmento passam atravs da porta e entram no processo ligado a ela. Como veremos, assim que o UDP
:u:s demul tiplexao. Todavia. veremos tambm que rnulliplexa1,.-.Io/demultlplexafio em TCP ainda mais suLil.

Multiplexao e demultiplexao no orientadas paro conexo


Lembre-se, na Seo 2.8, de que um programa cm Java que roda cm um hospedeiro pode criar uma porta
UDP com a linha
Da t agramSoc ket mySocket new Oatag ramSocket{) :
Quando uma porta UDP criada dessa maneira, a camada de transporte aulornalkamente designa um nrne-
ro de porta ao socket, Em cspcd:tl, a carnad., de transporte designa um 11\mero de porta na aixa de 1024 a 5535
que no csieja sendo usado naquele ins1anle por qualquer outra porta UDP no hospedeiro. Ahernalivamente, um
programa Java poderia ctlar uma pona com a linha
Da t agr amSoc ket mySocke t - new DatagramSocket0 9 157) :

Nesse caso, a apliL1l".lo designa um nmero de pona espedfico - a saber, 19157 - ft porta UDP. Se o
desenvolvedor responsvel por escrever o cdigo da aplica,1o estivesse implementando o lado servidor de um
'protocolo bem conhecido', ele teria de designar o m\mero de pona bem conheddo correspondencc. O lado cliente
da aplicao normalmente permile que a c:umida de 1ranspone designe o nmero de pona automacicamcme - e
transparenlemenie - ao passo que o lado servidor da aplica,lo designa um nmero de porta especfico.
Agom que os sockeis UDP j tm seus nmeros de port.a designados, podemos descrever nrnlliplexa,lo/
demulliplcxao UDP com preciso. Suponha que um processo no hospedeiro A, cujo nmero de porta UDP
19157, queira e1wiar uma por,1o de dados de aplicailo a um processo cujo nmero de porta UDP seja 46428 no
hospedeiro B. A C".1111ada de transporte no hospedeiro A cria um segmenlo de camada de Lran.sp<ine que inclui os
daclos de aplicao, o nmero da porta da fonte (19157), o nmero d.u porta de destino (46428) e m.lis ouLros
dois valores (que sero discutidos mais adiante, mas que no so importantes para a discusso em curso). Ent;lo,
a camada de Lransportc pas.sa o segmento resultante para a c:unada de rede. Essa camacla encapsula o segmen10 em
um datagrama IP e faz. uma lentativa de melhor csfo1o para emregar o segmemo ao hospedeiro des1inatrio. Se
o segmento chegar mquina de destino B, a <.-amada de desuno no hospedeiro destinatrio examinar o nmero
da pona de destino no segmento (46428) e o entregar a seu socket identificado pelo nmero 46428. Note que
a mquina B poderia estar rodando vrios processos, cada um com sua prpria porta UDP e nmero de porta
bowot,o4ico.
14 7
(opilulo 3 Camada de transporte

assocado. A medida que segmenlOs UDP chegassem da rede, a mquina B direcionaria (dcmultiplexarla) cada
segmento porta apropriada C.'<aminando o nmero de porta de destino do segmento.
um socket UDP t tornlmcntc idcntHkclo por uma tup i.a com dois dc:mcn tos, con-
imp-orh\ntc no tar que
sistindo em um endereo IP de destino e um nmero de pona de destino. Consequentemente, se dois scgmemos
UDP L\erem endereos IP de fome e/ou mmeros de pona de fome diferemes, porm o mesmo endereo IP de
destino e o mesmo nmero de pona ele drsti110 , eles senlo direcionados ao mesmo procc-sso de des tino por meio
do mesmo socket de destino.
possvel qltc agora voe~ esteja imaginando qual a nnalidade do nllmcro de porta da fome. Como mos1ra
a Figura 3.4, no segmen to A-B, o nmero de porta da fonte serve como parle de um "endereo de retorno" -
quando B quer enviar um segrnemo de volta para A, a pona de destino no segmento B-A tomar seu valor do valor
da porta de fonte do segmento A-B. (O endereo de retorno completo o endereo IP e o nmero de pona de
fome de A). Como exemplo, lembre-se do programa scnidor UDP que estudamos nn Seo 2.8. Em UDPServer.
ja va, o servidor usa um mtodo para extrair o nmero de porca da on tc do segmento que recebe do cliente;
en1:10 envia um novo seg.mcr110 ao cliente, com o nmero de poria que extraiu servindo como o m\mcro ele porta
de desLi no desse novo scgmcmo.

Multiplexao e demultiplexao orientadas poro conexo


Para entender clemuhiplcxa\.10 TCP, temos de examinar de peno sockclS TCP e estabelecimento de conexo
TCP. H uma diferena sutil entre um socket UDP e um socket TCP: o socket TCP idcmflcado por uma lllpla
de ciuatro elementos: (endereo IP ela fome, nmero ele porta da fonte, endereo IP de destino, nmero de porta
do destino). Assim, quando um segmento TCP que vem da rcclc chega a um hospedeiro. este usa todos os quatro
valores para direcionar (demultiplexar) o segmento par.1 o socket apropriado. Em espec-lal, e ao contrrio do
UDP, dois segmentos TCP chegando com emkreos IP de fonte ou nmeros ele porta de fonte difenmtt'5 sero
direcionados para dois sockets diferent.es (com exc4.'o de um TCP qitc esteja carregando a requisio de csmbc-
lecimento de cone:o:o original). Para perceber melhor, vamos considerar novamente o exemplo de programao
cliente-servidor TCP aprese ntado na Sello 2.7:
A aplicaO servidor TCP wn um sockel de emrnda que espera requisies de esrnbelecrnemo de
conexo vindas de clicmes TCP ( \'Cf Figura 2.29) na porta nmero 6789.
O cliente TCP gera um segmento de cstabclccimcnlo de conexo com a linha
Soc ket c l ien LSockel "' new Socket ( .. serverHos ttlame". 6789) :

Processo cliente
Socket
ServidOf B
pon d fcntr. pot do d-,t,no
,,1s1 46418

poria d fOfltr. po<tl do dt>tino>


46'118 19151

Figura 3.4 Campos denmerode porto do fonte edo destino em umsegmento de cornada de transporte
bowot,o4ico.
----- Redes de compuladores e a Internet

Uma requiso de cstabelecimemo de conexo nada m:s do que um segmemo TCP com nmero
de pona de des1ino 6789 e um bit especial de estabeleci mento de conexo marcado no cabealho TCP
(que ser.t dscuLido na Se~io 3.5). O segmemo inclui tambm um nmero de porta de fonLe que foi
escolhido pelo clicmc. A linha acima cria ainda tun socket TCP para o processo clieruc, auav~ do qu.11
dados podem enlrar e sar do processo cliente.
Quando o sistema opemdonal do com1>utador que est rodando o processo servidor recebe o segmento
de requisio de conexo qttc esL::t chegando e cuja porta de dcslino 6789. ele localiz., o processo ser-
vidor que est;I esperando para aceitar uma conexo na porta m mero 678<>. Ento, o processo servidor
crin um novo socket:
Socket connect ionSocket - welcomeSocket.accept () :
A camada de transporte no servidor tambm nota os quatro valores seguintes no segmento de requisi-
o de conexo: ( 1) o mlmero de porta da fonte no segmeuto, (2) o endereo IP do hospedero da fonte,
(3) o nmero de porta do destino no segmemo e (4) seu prprio endereo IP. O socket de conexo
rcc m-criaclo idcmificado por esses quatro valores; Lodos os segmentos su bsequc111es que chegarem,
cuja porta da fonte, endereo IP da fonte, porta de destino e endereo IP de clcs1it10 combinarem com
esses quatro valores. scr-Jo dcmulliplexaclos para essa porta. Com a conexo TCP agora ativa. o cliente
e o servidor podem enviar dados um JY.lm o outro.
O hospedeiro servidor pode suporwr \r:l rios sockelS TCP simultneos, sendo cada um ligado a u m processo
e ldentilk ado por su., prpria Lupla de quatro elementos. Quando um segmento TCP chega .,o hospedeiro, todos
os quatro campos (endereo IP da fonte, porta da ontc, endereo IP de destino, porta de destino) so usaclos para
drl:'dom'lr (clemuhiplexar) o segmemo para o socket apropriado.
A situailo t ilustrada na Figura 3.5, na qual o hospedeiro C inicia duas sesses HTIP para o servidor B, e o
hospedeiro A inkit\ uma sesslo HTTP pam o servidor B.
Os hospedeiros A e C e o servidor B possuem, cada um, seu prprio endereo LP exclusivo: A, C e B, res-
pectivamente. O hospedeiro C 11.tribui dois nmeros dicrcntcs (26145 e 7532) de poria da fonte s suas duas
conexes HTIP. Como o hospedeiro t\ est escolhendo nmeros de po rta independentemente de C. ele poderia

Cliente Web Proceisos


hospedei,o e HTTP
porconedo

Oemultip1ex~.!o
porta da fonte: porta da fonte: porta do denino: na camada
7S32 26145 80 de tr.msporte
IP da fonte: IP do dmino: IP da fonte; IP do destino:
e s e 8

Cliente Web
hospedei,o A

porta da fonte: porta do destino:


26145 80
IP da fonte; IP do destino:
A B

Figura 3.S Dois clientes queusam omesmo nmero de porto de destino (80) poro se comunicar com omesmo oplicoo de servidor Web
bowot,o4ico.
149
Copilulo 3 Camada de tr ansporte

tambm alribuir um mimero de porta da for11e 26145 sua conexo HTTP. Apesar disso, o servidor B ainda ser
capaz de demul1iplexar corrernmenle as duas conexes que tCrn o mt'Smo nmero de porta de fonte, j que elas
tm endereos IP de fon1e diferentes.

Servidores Web e TCP


Ames de encerrar essa discu~o. ~ instrmvo falar um pouco mais sobre servidores Web e como eles usam
nmeros de porta. Considere um hospedeiro rodando um servidor 'Web, tal como um Apache, na porta 80.
Quando clientes (por exemplo, browsers) en viam scgmen1os ao servidor, 10{/os os segmentos tero a porta de
des tino 80. Em especial. QS segmentos que estabelecem a conexe> inicial e os segmentos qt e carregam as mensa
gc ns de rcqu lsi~":\O HTTP, ambos tero a porta d e d estino 80. Como ac:,bamos de descrever, o servidor dis1inguc
os segmentos dos diferentes clientes pelos endereos tP e pelos nmeros de port.i da fonte.
Como mostra a Figura 3.5, cada um desses proeessos tem seu prprio socket de conexo atravs do qual
chegam requisies HTIP e silo etwiadas rcspos1.u; HTTP. Mencionamos, contudo. que nern sempre existe uma
correspond ~ncia unvoca entre sockelS de conexo e processos. Na verdade, os servidores Web de alto desem-
penho amais muitas vezes \HiLizam somente um processo, mas criam uma nova thrcad com um novo socket de
conexo para cada nova conexo cliente. (U ma thread pode ser considerada um subproeesso le,c.) Se voc fez a
primeira tarefa de programai,o do C.'lptulo 2, construiu um servidor Web que faz exatamente isso. Para um ser-
vidor desses, a qualquer dado instamc pe>dem haver muitos sockets de conexo (corn identil1,.-adorcs diere,ues)
ligados ao mes mo processo.
Se o climtc e o servidor estiverem usando HTTP persistente, ento, durante ioda a conexo persistente, eles
trocarao mensagens HTTP atravs do mesmo socket do servidor. Toda,,ia, se o cliente e o servidor usarem HTTP

Varredura de Porto
Vimos que um processo servidor espero pacientemente em umo porto ooorto poro contato por um cliente
remoto. A lgumas portos so reservados poro oplicoes fomifores (por eKemplo, Web, FTP,DNS e os $ervi-
dores SMTP); outras portas so utilizados por conveno por oplicaes populares (por exemplo, o Microsofi
SQl Server 2000 ouve os solicloes no porto 1434 do UDP). Desta formo, se determinarmos que uma
porto esl aberto no hospedeiro, talvez possomos mapear essa porto poro uma oplicoo especfico sendo
exe<:utodo no hospedeiro. ls$0 muito til poro administradores de sistema, que frequentemente tm in ter
esse em saber quais oplicac;es de rede eslo sendo execulodas nos hospede1ros em suas redes. Porm, os
alocantes, o fim de " examinarem o local", tambm querem saber quais portos esto abertos nos hospedeiros
direcionados. Se o hospedeiro estiver sendo executado em umo oplicoc;o com umo folho de seguronc;o
conhecido (por exemplo, um SQL Sarver ouvindo em umo porto 1434 es:tovo sujeito o es.gotomento de buf-
fer, permitindo que um usurio remoto exe<:ute um cdigo orbitr6rio no hospedeiro vulnervel. uma folho
explorado pelo worm Slammer [CERT, 2003,041), ento esse hospedeiro est pronto poro o a taque.
Determinar quos opliwc;es esto ouvindo em quais portos relotivomente uma ta refo fcil. De foto h
um nmero de programas de domnio pblico, denomi nados varredores de porto, que fozem exotomenle
isso. Talvez o mais utilizado seja o nmop, disponvel gratuitamente em http://insec.ure.org/nmop e es.t
induso no moiorio dos distribuies Linux, Poro o TCP, o nmop varre po.rt.o s sequencialmente, proeurondo por
porias que OCA!itom conexes TCP. Poro o UDP, o nmop novamente varre portos sequencialmente, procurando
por portos UDP que respondem oos segmentos UDP transmitidos. Em ambos os casos, o nmop retorno uma
lista do portos abertos, fechadas ou inolconc;veis. Um hospedeiro e>ceculondo o nmop pode tentar vorrer
qualquer hospedeiro direcionado em qualquer lugar do Internet. Voltaremos o fo lar sobre o nmop no Seo
3.5.6, ao discutirmos gerenciamento da conexo TCP.
bowot,o4ico.
Redes de compulodores e o Internet

no persistente, ento uma nova conexo TCP (: criada e encerrada para cada requisio/resposta e, p-0nanto, um
novo socket f criado e mais tarde encerrado para cada requisi,lo/rcsposta. Essa criao e encerramento frequen-
tes de sockets podem causar sfrio impacto sobre o desempenho de um servidor Web movimentado (embora o
sistema operacional possa usar ,irios estratagemas para atenuar o problema). Aconselhamos o leitor interessado
em questes de sistema operacional referentes a HTTP persistente e no persistente a consultar (Niclscn, L997;
Nahum, 20021.
Agora que j discutimos nrnhiplex:u,;o e cle1mihiplexa\1lo na cnmnda de transpone, passemos i\ cliscuss:,o
de um dos protocolos da lmemet, o UDP. Na prxima selo, veremos que a comribui:.~o desse protocolo no
muito miiis do que um servio ele mulliplcxao/demuhiplex.it,o.

3.3 Transporte no orientado paro conexo: UDP


Nesta seo, examinaremos o UDP mais ele perto, como ele unciona e o que ele faz:. Aconselhamos o leitor
a rever o mattrial aprese1uado na ~o 2.1, que inclui uma vis:.io geral do modelo de servio UDP, e o da ScilO
2.8, que discu te a programao de porias por UDP.
Para motivar nossa discusso sobre UDP, suponlu, que voc esteja imeressado em projetar um protocolo de
transporte simples, bem bsico. Como voce faria isso? De inicio, voct deve considerar a utilizno de um protoco-
lo de transporte vazio. Em especial, do lado do remeLenLe, considere pegar as mensagens do processo de aplkao
e pa~l-las diretamente para n camada de rede: do lado do dcslirn.ilrio, considere pegaras rncnsagcns que chegam
da camaela ele rede e pass-las diretamente ao processo da aplicao. Mas, como ap renelemos na se~"o anterior,
o que teremos de fazer praticamente nada. No mnimo, a camada de trnnspone tem de fornecer um servio de
multiplexao/demuhiplexao para passar os dados da camada de rede ao processo de aplicao c..-orreto.
O tJDP, definldo no !RFC 7681 , faz apenas quase u\o pouco quanto um protocolo ele transpone pode fazer.
parte sua fu no ele mul tiplexao/demultiplexao e ele alguma verific..-.1-.lo de erros, ele nada adiciona ao IP. Na
verdade, se o criador da aplicao escolher o UDP, cm vez do TCP, a aplka:lo estar 'falando' quase diretamcme
com o IP. O UDP pega :IS mensagens do processo de aplica,\o, anexa os campos de nmero de porta da fome
e do destino p:1m o servio de multiplexao/demultiplcx:1o, adiconn dois outros pequenos cimpos e passa o
segmcmo resultanLc camada de rede, que encapsula o segmento dentro de um datagrama IP e, cm seguida, az
uma tentativa de melhor esforo para entregar o segmento ao hospedero receptor. Se o segmento chegar ao hos-
pedeiro receptor, o UDP usar o nmero de pona de destino para entregar os dados do segmento ao processo de
aplicao correto. Note que, com o UDP, no h apresentao entre as entidades remete nte e destinatria ela camada
de transporte antes ele enviar um segmento. Por essa razo. dizemos que o UDP no oricmado para conexo.
O DNS um exemplo de protocolo ele camada de aplicao que usa o UDP. Quando a aplicao DNS em um
hospedeiro quer fazer uma consuha, conscri uma mensagem de consulta DNS e passa a mensagem para o UDP.
Sem realizar nenhuma apresentao com a entidade UDP que est funcionando no sistema final de destino, o
UDP cio lado do hospedeiro :1dieion:1 campos de cabealho mensagem e passa o segmento resultante camada
de rede, que encapsula o segmento UDP cm um da1agrama e o envia a um servidor de nomes. i\ aplicao DNS
no hospedeiro requisitante ento espera por um:1 resposrn sua consulta. Se no receber urna resposta (poss[vel-
meme porque a rede subjacente perdeu a consulta ou a resposta) , elii tentarJ enviar a consulta a outro servidor
de nomes ou informar aplicao consultante que no pode obter uma resposta.
possvel que agora voee csleja imaginando por que um criador de aplic,.1..lo escolheria construir uma apli-
cao S-Obre 'UDP, cm vez de sobre TCP. O TCP no sempre prefervel ao UDP, j que fornece servio confivel
de transferncia de dados e o UDP no? A resposta 'no', pois muitas aplicaes se t1dapLam melhor ao UDP
pelas seguintes razes:
Melhor co111mlc no n/n:I d,1 ,1plic11ilo sobre 1111,ris ,l,1,los S<1o rnvicrclos r ,11ccmclo. Com UDP, to logo um
processo ele aplicao passe dados ao UDP, o protocolo empacotar esses dados dentro de um segmento
UDP e os passara mcdatameme camada de rede. O TCP, por outro lado, tem um mecanismo de con-
trole de congestionamento que limita o remetente TCP da camada de transporte quando um ou mais
bowot,o4ico.
1 51
Copilulo 3
------
Camada de transpor te

enlaces emrc os hospederos da fonte e do destinatrio ficam excessivamente congestionados. O TCP


tambm cominuar a reenviar um scgmelllo at que o hospedeiro desLinatrio reconhea a recepo
desse segmento, tmlt'pt"ndenttmente do tempo que a entrega confivel levar. Visto que aplicaes de
tempo rea l requerem uma taxa mnima de envio, no querem atrasar cxccssiv,,mcntc a lrnnsmissi\o cle
segmentos e podem tolerar uma certa perda de dados, o modelo de servio do TCP no particular-
me nte compatvel com essas necessldadcs das aplicaes. Como discuti re mos mais adianle, essas apli-
caes podem usar UDP e imp leme111ar, como pane da aplicao, qua lquer funciona lidade adicional
necMSrla alm do strvio de entrega de segmentos simples e bds1co do UDP.
Niio '"' cs1abclcci111c11co ele co11cx<10. Como discutiremos mais adiante, o TCP usa uma aprcsent.1
l\o de tr~ vias antes de comear a mmserir dados. O UDP si mp lesmente envia mensagens sem
nenh uma preliminar fonual e. ass.i m, no introduz nenhu m atraso para estabelecer uma conexo.
Provavdmeme esta a principal razo pela qual o DNS roda sobre UDP, e no sobre TCP - o DNS
seril muito mais lemo se rodasse em TCP. O HTTP usa o TCP, e no o UDP, porque a con fiabilidade
unda rncrnal para pginas Web com lexto. Mas, como cliscutimos bre,,emcntc nr1 ScO 2.2, o atraso
de esrnbclcci mer110 de uma conexilo TCP uma contribui,,o importante aos atrasos associados
recepo ele documentos Web.
Nclo ltcl eswelos ele co11r.xclo. O TCP mantm o estado de conexo nos sistemas finais. Esse estado inclui
buffers de envio e recebimcn t.o, parmetros de controle ele congesLionamenLo e parmetros nu mricos
de sequncia e de rernnhecimento. Veremos na Seo 3.5 que essa informao de estado necessria
para impkmemar o servio ele uansferncia confivel de dados do TCP e para prove r con trole de con-
gestionamento. O UDP, por sua vez, nilo mantm o estado de conexo e nilo monitora nenhum desses
parmeiros. Por essa raio, um servidor devotado :1 uma ,1plicai\o especifica pode suportar um nmero
mui to maior de clientes ativos quando a aplica.\o roda sobre UDP e no sobre TCP.
Pequena sobrecmga de cabealho de 1,acote. O segmento TCP tem 20 bytes de sobrecarga de cabealho
alm dos clnclos par-a cada segrncrllo, cnqunnto o UDP tem somente 8 bytes de sobrecnrga.

A Figura 3.6 relaciona ap lkaes populares ela Internet e os protocolos de transporle. q ue. elas ltSa m. Como
era de esperar, o e-mail , o acesso a terminal remoto, a Web e a u-.msfer~ncia de arquivos rodam sobre TCP -
iodas essas ap licnes necess itam do servio confi:ivel de transfernc ia de dados do TCP. No obstante, muitas
aplicncs importantes executam sobre UDP, e no sobre TCP. O UDP usado para atualizatio dns ta~ las de
rotcamemo com o protocolo RIP (ro11ti11g i11Jor111crtio11 prot.ocol - protocolo de informao de roleamento) (veja
Seo 't.6.1). Como ,tS atualizaes RIP s;.1o enviadas pcriodic.une.nte (em geral, a Gtda S minutos), alualiz..ic>es
perdidas ser-Jo subsliluclas por atual izaes mais recemes. tornando inlil a rec upcra~~1o das atualizaes perdi-
das. O UDP tambm usado para levar dados de gerenciamento de rede (SNMP; veja o Captulo 9). Nesse caso,
o UDP prefervel ao TCP, j que apl<.'acs de gerrnciamemo de rede frcqllememcntc devem func ionar qunndo
a rede est."i em estado sobrecarregado - exalamente quando diicil conseguir transferncia confivel de dados
com congestionamento controk\do. E tambm. como mencionamos anteriormente, o DNS roda sobre UD P, evi-
tando, desse modo, atrasos de esta~lecimento de conexes TCP.
Como mostra a Figura 3 .(), hoje o UDP e o TCP tnmbm comurncnte usado p-ara aplicaes de mu lti-
mdia, como telefone por Internet, videoco nfertnda em tempo real e recepo de udio e vdeo armazenados.
Examinaremos essas aplicai:;:oos mais de perto no Cnptulo 7. No momento, mencionamos apenas que todas css.,s
aplicaes podem tolerar uma pcque11a quantidade de perda de pacotes, de modo que a t ransfcr~ncia confivel
de dados r1o absolutame.nte crtlca par:t o sucesso da apllca:.io. Alm dsso, aplicaes cm cem po real , como
telefone por fmemct e videoconferll:ncia, reagem muito mal ao controle de congestionamento do TCP. Por essas
razes, os desenvolvedores de aplicaes de multimdia mui tas vezes optam por rodar suas aplicaes sobre UDP
em vez. de sobre TCP. Etllrctanto, o TCP est sendo utilizado cada vez. mais p:im transporte de md ia. Por exem-
plo. (Srip-..111idkulchai. 2004 J descobriu que aproximadamcnle 75% do Ouxo em tempo rea l e gravado ulilizaram
TCP. Quando as taxas de perda de pacote so balxas, junto com algum:,s entpresas que bloq ueiam o tr.lfego UDP
por razes de segurana (veja Captulo 8), o TCP se tom a u m protocolo cada vez mais atrativo para o transporte
de mdia.
bowot,o4ico.
Rede s de compu1ado,es e a lnleroet

Aplica~o Protocolo de camada de aplicao Protocolo de transporte subjacente


Coireio eletrnico SMTP TCP
Aces.so a terminal remoto Telnet TCP
Web HTTP TCP
Transfernda ele arquivo FTP TCP
Servido, remoto de arquivo NFS tlpcamente UDP
Recepo de multimdia tipJcamente p1oprietria UDP ou TCP
Telefonia por Internet tipicamente prQl)riettia UDP ouTCP
Gerenciamento ele rede SNMP tipicamente UDP
Protocolo de roteamento RIP tipicamente UDP
Tradu.o cfe nome DNS tpicamente UDP

Figura 3.6 Aplicaes populares do lnlernet e seus 11rotocolos de 110nsporte subjacentes

Embora a1ualrneme seja comum rodar aplica~es de muhimd ia sobre UDP, isso co nuovcnido. Como j
mencionamos, o UDP m1o 1em controle de congcsLionamemo. Mas esse com role necessrio para evilar que a
rede en tre cm um estado no q ual pouqussimo trabalho litil rea lizado. Se todos comeassem a enviar vdeo
com alta taxa de bits sem usar nenhum controle de congcsLion:11nento, haveria tamanho transbordamento de
pacotes nos roteadores que poucos pacotes UDP conseguiriam atravessar com sttcesso o caminho ela fo nlc ao
desu no. Alm do mas, as altas taxas ele perda induzidas pelos rcmcLcmcs UDP sem comrok fariam com que os
remetem es TCP (qtte, como veremos mais ncliame, reduzem suas 1:axas de envio cm ace de co ngesLionamemo)
reduzissem drasLica menLe s uas L."\;,.":IS. Assim, a fa lta de controle de congeslionamento no UDP pode res ulta r em
ai Las taxas de perda entre um remetente e um destinatrio UDP e no acmulo de sesses TCP - um problema
po1encialme n1 e srio IFloyd, 1999) . Muitos pesquisadores p ropuseram novos meca nismos para forar toda-s as
fontes, incl usive as fontes UDP, a realizar um comrole de congestionamento adaptativo IMahdavi, 1997; Floyd,
2000; T<ohler, 2006: RFC 4340).
Antes de discutirmos a estrutura do scgmcnio UDP, mencionaremos que possvel que uma aplica.lo tenha
transferl!ncia confivel de dados usando UDP. Isso pode ser feito se a confiab ilidadc o r ernbulkla n prpria
aplicao (por exemplo, adicionando mecanismos de recon hecimento e de ret ra nsmisso, tais como os que
csrnd arcmos na prxima seo). Mas cs1a uma 1arda no trivial que manieria o desenvolvedo r ocupado com
a clcpumo por um longo tempo. No obs1an1c, cmbulir confiabilidade clircLamcn1c na aplica'Jo permite q ue
ela tire proveito de ambas as alternativas. Em outras palavras, os proecssos de aplicao podem se comunicar de
maneira con nvel sem ter de se Sl~ei1ar S limitaes ela taxa d e transms.,;O impostas pelo meanismo ele con1role
d e coogcsti omtmento do TCP.

3.3.1 Estruturo do segmento UDP


A cs tru lltra doscgmcnio UDP, moslmda na Fgura 3.7. (; definida no RFC 768. Os d,,dos da aplicao ocupam
o campo de dados do segmento UDP. Por exemplo, para o DNS, o campo de dados contm uma mensa,gcm de
consulta ou uma mensagem ele resposta. Parn uma aplicao ele recepo ele udio, parcelas de udio p reenchem
o campo dedaclos. O ca~alho UDP tem apenas quatro campos, cada um consistindo em 2 bytes. Como jd discu-
tido na seo an terio r, os nmeros de porta permitem que o hospedeiro des1inat:rio passe os dados ela ap licafio
ao processo correto que es1 funciommdo na mquina destinaufria (is to , realize a funilo de demultiplexao). J\
soma de verilcao usada pelo hospedeiro receptor para verificar se foram introduzidos erros no segmento. Na
verdade, a soma de verHlc,ao tambm calculada para alguns dos campos no cabealho lP, alm do segmento
UDP. Mas ignoramos esse detalhe para podermos enxergar a floresta por emre as rvores. Discut.iremos o clculo
bowot,o4ico.
153
Capitulo 3 Camada de t ran sporte

32 bit5

Porta da fonte # Porta do destoo #

Comprimento Soma de verificao

Dadt)S
da aplicao
(mensagem)

Figura 3.7 EstrulUro do segmeflto UDP

da soma de verificao ma is adiante. Os princpios bsicos da dc1ceo de erros c-s1ao dc-scritos na Sci,o 5.2. O
<..impo de comprimento especifica o compri mento do segmento UDP, incluindo o C-Jl)e.alho, em bytes.

3.3.2 Soma de verifica~o UDP


r\ soma de ,erifka-.lo UDP serve para detectar erros. Em 01uras pafavr-as, usada para determinar se bilS
dcnLrO do segmento UDP fomm ahcrados (por exempl o, por rufdo nos enlaces ou enqua1110 armazenados cm um
roteador) durante sua movimc111alio da fome at o destino. O UDP no lado remetente realiza o co111plc111cnlo
de l da soma de todas as palavras de 16 bics do segmento levando em conta o ~vai um .. em toda a soma. Esse
resu ltado colocado no campo de soma de ,,erikao no scgmcmo UDP. Damos aqui um exe mplo simples do
<.'lculo da soma de verilcailo. Se quiser saber detalhes sobre a implementa(.'-o eflciem e do algori tmo de <.."lculo
e sobre o desempenho com dados reais. consulte o RFC 1071 e [S1one, 1998 e 2000]. respccLivamente. Como
exemplo. suponh a que lenhamos as seguintes Ir~ pal,wrns de 16 bits:

Oll 00 L1001100000
0 10 1010101010101
1000111100001100
A soma das duas primeiras dessas palavras de 16 bits :

O110011001100000
010101010 1010101
1011101110110101
Adicionando a terceira palavra soma acima, temos:

1011101110110101
1000111100001100
0100101011000010
NOLe que essa llhima adio teve vai um~ no bh mais signiicativo que foi somado ao bit menos sig11ii-
cativo. O complemento de l ob1ido pela converso de todos os O cm l e de todos os l cm O. Desse modo, o
complemento de 1 da soma 0 100101011000010 101 l010100111101. que passa a ser a soma de verileaao. No
dcslinat::\rio, todas as qualro palavras de l bits so somadas, inclusive a soma de verificao. Se nenhu m erro
for n11oduzido no pacote, a soma no destinatrio se r , obviamente, llllllll ll l lllll. Se um elos bits o r um
zero, saberemos ento que houve imrodu,.lo de erro no pacote.
Provavelmente voc est imagi nando por que o UDP fornece uma som:\ de verifico em primeiro lugar,
visto que muitos protocolos de camada de enlace (dentre os quais, o popular protocolo Ethernet) tambm for-
bowot,o4ico.
Redes de compulodores e o Internet

necem verificao de erros. A razo que no h gammfa de que Lodos os e11laccs enirc a origem e o destino
forneam verificao de erros - um dos enlaces pode usar um prococolo de camada de enlace que no fornea
verificao de erros, Alm disso, mesmo que os segmentos sejam corrcLmnentc 1ransmilidos por um enlace, ~ pos-
svel haver introdu,lo de erros de biis quando um segmento armazenado na memria de u m roteador. Dado que
no so garamidas nem a confiabilidade enlace a enlace, nem a cletec:lo de erro na memria, o UDP deve prover
dececo ele erro fim (1 fim na camada de transr>orre se quisermos que o servio ele transferncia de dados fim a
fim forne(a detec_'o ele erro. Esse um exemplo do famoso princpio fim a fim cio projeto de siscemas (Saltzcr,
1984). Esse princpio afirma que, uma vez que dado como certo que funcionalidades (detcc-lo de erro. neste
caso) elevem ser Lmplememaclas m a fim , ~funes colocadils rios nveis milis baixos podem ser redundames ou
de pouco valor cm comparao com o cusco de fornec- las no nvel mais alto~.
Como se pretende que o IP rode sobre qualquer protocolo de camada 2, lil que a camada ele Lransporte
fornea verificao de erros como medida de segurana. Embora o UDP fornea verificao de erros, de nada
faz parn rccupernr 1.1111 erro, Algumas imple111cntaeS do UDP simplesmente desc:1 na111 o scgmenlo danilcado;
outras passam o segmento errado aplic.ao acompanhado de: um aviso.
Isso encerra noss."l di.scussilo sobre o UDP. Logo veremos que o TCP oferece transferncia coni,el de dados
s suas aplicaes, bem como outros scn,ios que o UDP no oferece. Naturalmente, o TCP tambm mais
complexo do que o UDP. Comudo, antes de discutirmos o TCP, primciramellle devemos examinar os princpios
subjacentes da Lransferncia confivel de dados.

3.4 Princpios da transferncia confivel de dados


Nesta seo, considernmos o problema conceituai da transferncia confivel de daclos. Isso apropriado, j
que o problema de lmplemenrnr Lransferncia confivel de dados ocorre no somemc na rnmada de transporte,
mas tambm na camadc1 de enlace e na camada de aplicailo. Assim, o problema geral de imporUincia central
para o trabalho em rede. Na verdade, se tivssemos de fazer uma lista dos dez maiores problemas fu ndamemal-
men1e importantes para o trabalho em rede, o da transerenca confi,el de dados seria o candidato mimero um da
Hsm. Na seo seguinte, examinaremos o TCP e mosLraremos, cm especial, que ele utiliza muitos dos princpios
que descreveremos aqui.
A Figura 3.8 iluscm a t-smnura para nosso cswdo de cransferncia confivel de dados, A abscra."\o do ser,<io
fornecido s entidades das camadas superiores a de um canal confivel atravs do qual dados po<lem ser lransfe-
ridos. Com um canal confivel, nenhum dos dados tmns[cridos corrompido (trotado de O para 1 ou vice-versa)
nem perdido, e todos s.'\o entregues na ordem em que foram enviados. Este exatamente o modelo de servio
oferecido pelo TCP s aplicaes de lntcrne1 que recorrem a ele.
responsabilidade de um protocolo de transferncia conivd de dados implemcmar essa abstrao de
servio. A tarefa t dificul1adt1 pelo foLo de que a camada 11b11ixo do protocolo de transer~ncin confivel de dt1dos
pode ser no confivel. Por exemplo, o TCP um protocolo confi,el de transferncia de dados que imple
mentado sobre uma cairn,da de rede m a im ni\o confivel (IP). De modo mais geral. a camada abaixo das duas
elitremidadcs que se comunicam confiavclmente pode consistir cm um nico enlace fsico (como o caso, por
exemplo. de um protocolo de Lransforntla de dados na camada de enlace) ou em. uma rede global Interligada
(como o caso de um protocolo de 1."l\mada de lransporte) . Para nossa finalidade, conwdo, podemos considerar
essa c:tmada mais baixa simplesmente como um canal ponto a ponLo no confivel.
Nesta see.10, desenvolveremos gradualmente os lados rcmctcnle e destinatrio de um protocolo conivcl de
Lransfer~ncla de dados, considerando modelos progressivameme mais complexos do canal subjaceme. A Figura
3.8(b) ilustra as illlerfoccs de nosso protocolo de trnnsercncia de dados. O lado remetente do protocolo de
transferncia de dados sem invocado de cima, por uma chamada a rdt_send( ). Ele passar os dados a serem
entregues camada superior no lado destinatrio. (Aqui, rdt represema o protocolo de transferncia confivel
de dados [reliable data transferi e _send indica que o lado remetente do rdt est sendo chamado. O primeiro
bowot,o4ico.
155
Capitulo 3 Camada de t ran sporte

Camada de
aplk~3o

rill senoc)
Protocolo de Protocolo de
Ca mada de
tran5ferntia tr ansfernda
transporte
conflvcl de dados confivol de Cl&dos
Canal conMvel (lado remetente) (lado destinatrio)

uto_send<) rdt_rcv()

Camada do
rede
canal no confihl

a. Servio fornetido b. lmplementa3o do servio

LecJenda:
Dados I Pacote

Figura 3.8 lronsferndo confivel de dados: modelo do servio e impf&menln(Odo ~Mo

passo no desenvolvimento de qualquer pro1ocolo dar-lhe um bom nome!) Do lado dcstina1rio, rclLrc v ( >
ser chamado quando um pacote chegar cio lado desLinat.\rio do ~--anal. Quando o pro1ocolo rd t q uiser en tregar
dados camada superior, ele o far chamando de 1i ver_da ta ( ). No que se segue, usamos a tcrmnologia
'pacole' em vez ele 'segmento' de camada de lranspone. Como a teoria desenvohida ncsrn se.io se aplica a redes
de computadores em geral, e no somente c,unada de transporte da Internet, o termo genrico pacote' talvez
seja mais apropriado aqui.
Nesta seo, consideramos apenas o caso d e tran."iferncia unidirecional d e dados, is to , transferncia de
dados do lado reme1e111e ao lado destna1ro. O caso de cra ns ferncia bidi-re cional confivel ele dados (isw e,
J,111.c/ur,lex) no conceitualmente mais dicil, mas bem mais tedioso de explicar. Embora consideremos apenas
a 1ransfcrtncia unidirecional de dados, t imponanic noLar que. apesar disso, os lados rcmctcnLc e destim11:1rio
d e nosso protocolo tero de transmitir pacotes em ambas S direes, como mostra a Figur-.i 3.8. logo veremos
que, a lm de trocar pacotes contendo os dados a transferir, os lados remetente e destinat rio do rdt tambm
predsaro trocar pacotes de controle entre si. Ambos os lados de envio e cles1ino cio rdt enviam pacotes para o
outro lado por meio de uma chamada a udt_ send ( ) (cm que udt representa transferncia no conHvcl de
dados - 1111rclial,lc daw irausfer),

3.4.1 Construindo um protocolode tronsferncio confivel de dados


Vamos percorrer agora uma srie de protocolos que vo se tornando cada vez mais complexos, at chegar a
um protocolo de transferncia confivel de dados impecvel.
bowot,o4ico.
----- Redes de compu1adores e a lnleroet

Transferncia confivel de dadossobre um canal perfeitamente confivel: rdtl .O


Vamos consid erar primeiramente o caso mais simples, cm que o canal subjacente completamente
conivel. O protocolo e m si, que denominaremos rdtl .O, tri vial. As defi nies de mquina de estado
fnilo (/l11i1e-s1<1re mcrdiine - FSM) para o rcmc1cmc e o des tinatrio rd tl . O St,o apresen tadas na Figura
3.9. A FSM da Figura 3.9(a) define a opern.lo do reme tente. enquanto a FSM da Figur.1 3.9(b) define a ope-
ra:\o do clcstin:wlrio. imporrnnte notar que h FSM sep,mtclas para o rcmcte11te e o destinatrio. Ambas
as fSM da Figura 3.9 tm apenas um estado. As setas na dcscri,lo da FSM indicam a transio do protoi:olo
de u m estado para o utro. (Uma vez que cada FSM da Figura 3.9 tem apenas u m estado, uma transio e,
nccessariame,llc. de um dado estado para e le mes mo; examinaremos d iagram11s de estados mais complicados
em breve.) O evento que causou a transio mostrad o acima da linha horizonta l que a rotula, e as aes
realzadas quando ocorre o evemo so mostradas abaxo da Hnha horizontal. Q uando nenhuma ao ~ rea-
lizada em um evento, ou quando no ocorre nenhum e"en lo e uma ao rea lizad.i. usaremos o simbolo
J\ , acima ou abaixo da linha horizontal, para indicar explicitamente a falta de uma aM ou de um evento.
respectivamente. O estado inicial da FSM indicado pela seta tracejada. Embora as FSMs da Figura 3.9
tenha m somen te um es1ado, as ouiras que veremos em breve t m vros estados, portanto, ser importan te
identificar o estado inicial de cada FSM.
O lado remetente do rd t simplesmente aceita dados da camada superior pelo cvwto rd t._send (data> .
cria um paco1e que contm os dados (pela ao make_pkt(da ta)) e en"ia-o para dentro do canal. Na prtica,
o e"ento rd t_send ( data ) resulLaria de uma chamada de procedimento (por exemplo, para rdt_send( )) pela
aplicao da camada superior.
Do lado dcslin:Hrio, r-dt recebe um pacote d o canal subjacente pe_lo evento rdt_rcv( packet),
exm1i os dados do pacote (pela ao extract ( pac ket. data)) e os passa para a camada superior (r>ela ai,o
de 11 ver_da ta (da ta )). Na prtica, o evento rdt_ rcv ( packet) resulLaria de uma chamada de procedimento
(por exemplo, para rdt_rcv( )) do protocolo da camada inferior.
Nesse protocolo s imples, no h diferena entre a unidade d e dados e um pacote. E, tambm, todo o nuxo
de pacotes corre do remetente para o de.-;1lnatrio; com um canal perfeitamente con fivel, m\o h necessidade de
o lado des tinalrio fornecer q ualquer informao ao rcmetcme, j que nada pode dar errado! No1e q ue tambm
ad mitimos que o destinatrio est capadtado a receber dados seja qual for a ,,clocidade cm que o remetente os
erwic. Assim. no h necessidade de pedir para o remetente dcsacclcr;u!

J
... , ...
, ... ~
Esperar rdt_scl\Cl(data)
chamada p,1cket11ak~_pktf dau
de cima udt_sencJ (pdcket J

a. rdt1 .O: lado remetente

.............. ,
... ~

Esperar
eh.amacia
de baixo
J r<lt_rcv( packet)
e1.racu packet.data,
dclhcr_llaUll:IHa)

b. rd l1.0: lado destinat~ro

Figura 3.9 rdtl .O - Umprotocolo poro um canal completamente confivel


bowot,o4ico.
157
Copilulo 3
------
Camada de transporte

Transferncia confivel de dados por um canal com erros de bits: rdt2.0


Um u1odclo mais realista de canal suhjaccm c um ca_nal cm que os bits de um pacote podem ser corrom pi-
dos. Esses erros d e bilS ocorrem normalmente nos componentes fsicos de uma rede en(1ua nto o pacote trans.-
miLido, propagado ou a:rmazcn:ido. Cominuaremos a admllir, por cnquamo, que todos os pacotes transmiliclos
sejam receb idos (cmborn seus bits poss,1m csur corrompidos) na ord em crn que foram enviados.
Antes de desenvolver um protocolo para se comun icar de maneira confivd com csse Gmal, considere pri-
meiramente como as pessoas enfrentaria m uma situa,lo como essa. Considere como voc ditaria uma mensagem
longa pelo telefone. Em um cenrio tpico, quem esLvessc anotando a mensagem diri 'o.k.' aps c.:da sentena
que ouvis.se, entendesse e anotasse. Se a pessoa ouvisse uma mensagem Lnm <.-ada, pediria que voc a repetisse.
Esse protocolo de ditado ele mensagem usa reconhecimentos positivos ('o. k.') e reconhecimentos negativos
('Repila, por ;ivor'). Essas mensagens de controle pc-rmilcm que o dcstina1rio faa o rcmc1cmc saber o que foi
recebido corretamente e o que foi recebido com erro e, portanto, exige repet io. Em um arranjo de rede de com-
putadores, protocolos de transforencia con fivel d e dados baseados nesse tipo de re transrniss:lo so conhecidos
como protocolos ARQ (Automatic Repeat reQuest - solicitao autom tica de repetio).
Essencialmc111e, s.1o exigidas irs capacitaes adicionais dos protocolos ARQ para manipular a presena de
erros de bits:
Deccc,,lo de rrros. Primciramem e, preciso um mecanismo que permila :io dcs1innulrio dctcc1ar quan-
do ocorrem erros. Lembre-se de que dissemos na seo an terior que o UDP usa o campo ele soma de
vcri.fic.1o da lntcrncl exatamente pam essa finalidade. No Captulo 5, examinaremos, com mais deta-
lhes, tcnicas de d etec:'.l.o e ele correo de erros. Essas Lcn icas per mitem que o des tinatrio detecte
e possivelmente co rrija erros de bits de pacotes. Por enquanto, basta saber que essas Lcnicas exigem
q ue bits extras (alm dos bits dos dados originais ,1 serem lransferidos) sejam enviados do remelente ao
destina trio. Esses bits !kiO col0C;1dos no <.-ampo de soma de verilk-ao do pacote de dados do protocolo
rdt2. O.
Ret11i1mnlt1cio tio desti11nlchio. Uma vez que rcmeLentc e destinatrio normalmente estejam rodando
em sisLcmas finais diercntcs, possivelmente separados por milhares de quilOmc1ros, o nico mo-
do de o remetente ~ber qua l a ,iso de mundo do destinatrio (neste caso. se um pacote foi recebido
comw1memc ou no) o dcstin.1t rio fornecer re-alimcn1ao explicita ao remetente. As res postas de
reconhecimento posilivo (ACK) ou negativo (NAK) no cenrio do ditado da mensagem so exemp los
dessa realimemac;o, Nosso protocolo td t2. O devolver, dessa mesma maneira, pacoLcs ACK e NAK
do desti natrio ao rci11ctente. Em principio, esses p:icotcs precisam apenas ter o co n1primen10 de um
bil: por exe mplo, um valor O poderia indicar um NAK e um valor l poderia ind lcar um ACK.
Rel mnsmi.s.'it1o. Um pacote que recebido com erro no destinatrio ser retrans mitido pelo remetente.
A Figura 3.10 mostrn a rcprcsenta:,o por FSM do rdt2. O, um protocolo de t.ransfcri;ncia de dados que
emprega deteco de erros, reconhecimentos posilivos e rcconhccimenlos negativos.
O lado remetente do rdt2. O tem dois estados. No estado ma.is esquerda, o protocolo do lado remetente
est cs pemndo que os dados sejam passados pe.la camada s uperior. Qu11ndo o evento rd Lsend (da t a ) ocor-
rer, o remete nte criar um pacote (sndpkt) contendo os dados a serem enviados, Jun uunen tc com uma soma
d e vcrifi1.'C".lo do pacote (por exemplo, como disculirnos ria Sc\"<10 3.3.2 para o caso de um segmento UDP) e,
ento, enviar o pacote pela operao udt_send{ sndpkt ). No estado mais a direLa, o protocolo remetenLc est
esperand o por um pacoie ACK ou NAK da parte cio destinatrio. Se um pacote ACK for recebido (a notao
rdt_rcv ( rcvpkt) && i sACK ( rcvpkt) na Figura 3.10 corresponde a esse evento), o remetente saber que
o pacoLc transmitido mais rcccmcmente foi recebido corretamente. Assim. o protocolo vo lta ao estado de csp-c
ra por dados vindos da camada superior. Se for recebido um NAK. o protocolo reuansmitir:i o tiltimo pacote e
esperar por wn ACK o u NAK a ser devolvido pelo destinat,lrio cm resposta ao pacote de dados retransmitido.
importante notar que, quando o destinatrio est no estado de espera por 1\ CK ou NAK, no pode receber mais
dados da camada superior; isto , o cvemo rdt_ send () no pode ocorrer; isso sorncme aco!lleccr aps o reme,
tente receber um ACK e sair desse estado. Assim, o remetente no enviar novos dados at ter certeza de que o
bowot,o4ico.
Redes de compuladores e a Internet

desLinatt\rio recebeu corretamente o pacote cm questo. Devido a esse comportamento, protocolos como o
rd t2. O so conhecidos corno protocolos pare e espere (s1op-m1d-wai1).
A FSM cio l,tdo destint,lrio para o rd t2 , O tem um nico estado. Quando o pi1cote chega, o clcstinatrJo
responde com um ACK ou um NAK, dependendo de o pacote recebido estar ou no corrompido. Na Figura 3.10,
a notao rdt_ rcv ( rcvpkt ) && corrupt( r c vpkt) corresponde ao evento em que um pacote recebido e
existe um erro.
Pode parecer que o protocolo rdt2. O funciona , mas infelizmente ele tem um defeito fatal . Em especial,
ainda nlo tratamos da possibilidade de o pacote ACI< ou NAK estar corrompido! (Antes de continuar. bom voe!
comer,_1\r a pensar em como esse problema pode ser resolvido, ) Lamcntavdmcnte, nossa pequena omisso no
to inofensiva quanto possa parecer. No mnimo, precisaremos adicionar aos pacotes ACl</NAK bics de soma
de verilcao parn detectar esses erros. A questo mais dicil como o protocolo de,,e se recuperar de erros em
pi1.cotes ACK ou NAK. Nesse caso, a dificuldade t que, se um ACK ou um NAK estiver corrompido, o remetente
no ter como salxr se o destinatrio recebeu ou no corretamente a ltima parcela de dados lrnnsmitidos.
Considere Lr~ possibilidades para manipular ACKs ou NAKs corrompidos:
Para a primeira possibilidade, imagine o que um ser humano faria no cenrio do ditado da mensagem.
Se quem estvcr ditando no cmendcr o 'o.k.' ou o 'Repita, por favor' do destinacrio, provavelmente
perguntar: "O que oi que voc disse?" (imroduzindo assim um novo aipo de pacote rerne1ente-
destin:11.,1.rio em nosso protocolo). O locutor enao repeliria n resposta. Mas e se a frase uo que oi que

rdt_send(d~Ld >
sMPkl m<1ke_pu coa ta . c11ecKsL11 J
,,dt_send< sndpkL)

~
Esperar
c:hamada
de cima
Esperar
ACK
ouNAK J rdt_rcv(rcvp Kt )&&1~ffAK(rcvpkt)
11dt_send(sndpkt)

rdl _rcv< rcvpkL) && 1sACK( 1cvpkl l


/\
a. rdt2.0: lado remetente

,n',,
. . ...
rdl_tcv( rcvPkl) && corrupl( rcvpH)

sndpkta.-.1.e_pkl( NAK )
udLsend(sndpkt)

Esperar
chamada
de baixo

U ,d, rcv< rcvph) U notcorrupt <rcvpkU


P.Ktr.ict(rcvpkt .data)
del iver_dala(data)
$Rdpkt~te_pkt(ACK)
udLsend( sndpkt)

b. rdt2 .0: lado destinatrio

Figura 3.1 O rdt2.0 - Umprotocolo poro um conol com erros de bits


bowot,o4ico.
159
(opilulo 3 Cam ada de tran sporte

voc disse?" eslivesse corrompida? O destlnatitrlo, sem ter nenhuma noo se a semena corrompida
era pane cio dilaclo ou um pedido para repelir a ltima resposta. provavelmcnle responderia: "O que
foi que voc disse?" E ento, claro, essa resposta mmbm poderia estar truncada. bvio que estamos
entrando cm um caminho dtrcil.
Uma segunda alternativa adicionar um nmero suficiente de bits de soma de verificao para permiti r
que o reme teme no sornem e detecte. mas tambm se recupere d e erros de bits. Isso resolve o problema
imediato para um canal que pode corromper pacotes, mas no perd-los.
Uma terceira abordagem o remetente simplesmente reenviar o pacote de dados corrente quando
receber um pacote ACK ou NAK truncado. Esse mtodo, no entanlo, introduz pacotes duplkados no
t~anal remc temc-destinatrio. A diiculdade undamental com pacoles duplicados que o destinatri o
no sabe se o himo AK ou NAK que enviou foi recebido corretamente no remete111e. Assim, ele no
pode ~ber ir v riori se um pacote que chega co1111~m novos dados ou se uma rclrnnsmisso!
Uma soluo s imples para e.sse novo problema (e que adotada em quase todos os protocolos de transfe-
rC:ncia de dados existcmcs, inclusive o TCP) adicionnr um novo campo ao pacote de dados e fazer com que o
reme1en1e numere seus pacotes de dados colocando um nmero de sequencia nesse t."lmpo. O des1ina1rio en1.i,o
teria apenas de ,erificar CSS<: nmero de scqutncia pam determinar se o pacoLe recebido o u mlo uma retrans-
misso. Para esse caso simples de protocolo pare e espere, iun mmcro de sequ~ncia de u m biL suficiente, jl. que
permitir que o destinatrio saiba se o reme Leme est rec.nviando o pacote previameme transmitido (o nmero ele
sequt ncia do pacole recebido o mesmo do pacote recebido mais receruememe) ou um novo pacote (o nmero
de sequncia muda, indo ~para a frente em progresso ari tmtica ele mdulo 2). Como estamos admitindo que
este um canul que no perde pacotes. os pacotes ACK e NAKem si no precisam indicar o nmero de sequencia
do pacote que esto reconhecendo. O remetente sabe que um paote ACK ou NA K recebido ( truncado ou no)
foi gerado em resposta ao seu pacote de dados trnns milidos mais recentemente.
As figuras 3.1 t e 3.12 mostram a descriilo da FSM 1>3ra o r dt2 . 1, nossa vers.'lo corrigida do r dt2 . O. Cada
um dos rdt2 . 1 remetente e destinatrio da FSM agora tem um nmero duas ve.zcs maior de estados do que
ames. lsso acontece porc1uc o estado do prolocolo eleve agora rclcti r se o pacote que est sendo corrcnlcmcnlc

rdt_sernl(dnal
sndpkttal) ke Pkl!O . data.checksu

/
ud t_sernl ( s ndpk t l

Esperar
~
"' 8
Espera
r<lt rcv(rcvpkt>U
(eo;r,,pt(rcvpktlll
1sllAK( rcpkU)
u<lt sendc sMp
chamada ACK ou
Ode cima NAK O

rdt_rcv(rcvpkt) rdt_rcv( rcvpt.l)


&& 11otcorrupt< rcvpkl) && notcorrupt t rcvpt.t >
&& lsACKCrcvp ktl && 1sACK( rcvpkt l
A /\

Esperar Esperar
CKou chamada 1

rdt rcv(rcvpkt)&&
(co~rupt(rcvpkU li
1$IIAK(rCYl)kt))

udl_sendcsndpkt)
C NAK 1

'-.
~
rdt seM(d~tol
./
de d ma

sndpkt aa ke.,.p~t 11 . data. cMcts1111)


udt_sen<llsndpktl

Figura 3.11 rdt2.1 ire metente


bowot,o4ico.
160
------ Red es de compu1ad ores e a lnleroe t

rdt _rcv( rcvpkL ) &g "otcorrupl ( rcv11kt >


&& has_seqO< tcvpkt)
extract( rtYl>kl ,d.Ho)
de11ver_d4l,\(dal~)
sndpkl"'lllikeJkl(/\tK .checksu111)
udt_send(sndpl;t) rd t_rcv Crcvpla) && corrupt( rcvpH)
rd L_rcv I rcvpkt >

C-.... ~
&& cor,upt( rcvpU l '' ,Mo~ L11a~e_pkl<HAK . chec~sual
sndptl11~te_ptt(NAK.checksU11)
''' udl_sendCs11dpktl
udt_send< s1dpll.l l

rdL_rcv(rcpH)&l nolcorrupl
'-.

bQ<O
? Esperar

baixo()Ode
Esperar
1 de

( rcvpkt ) M ttas_seQIC rcvpkl) rd L_rcv ( rcvpkl l&t notcorrupl


<rcvp kL ) && has_seqo< rcvpkL)
sndpU 11ate_pkl<AtK.checksu11l sndpkt ..~~e_p kt (ACK , cllackSual
udt_sena< s11dpklJ u<l t _$end( snd pk t)
rdt_rcv(rcvpkt J && notco r r upt (rc vpkl )
&& hdS seql ( rcvpkl)
l!x lt.\Cl(r(vpkL , dJll)
deliver datd(dolo)
sndpkt-m.,ke_oJ.l <Atl: . checksu111)
ut_send(sndptt)

Figura 3.1 2 1dt2.l desf101tio

c,wiado (pelo reme1ence) ou aguardado (no des1lnatrio) deveria ter um nmero de sequ~ncb:1 O OLt l . Note que
as aes nos estados cm que u m pacote numerado com O est sendo enviado ou aguardado so imagens especu
lares daquelas que devem funcionar quando es tiver sendo enviado ou aguardado um pacote numerado com 1; as
nicas diferenas 1ern a ver corn a manipulao do nmero de sequencia.
O protocolo rd t2 . 1 usa tamo o reconhecimcmo positivo como o negativo do remeteme ao destina trio. Quando
um pacote fora de ordem reccbido, o destinatrio envia um rcconhecimeruo J)()Sitivo para o pacote que reccbCLL:
qttando Ltm pacote corrompido recebido, ele envia um reconhccmen10 negati\10. Podemos conseguir o mesmo efeito
de um pacole N,\l< se, cm vez de enviarmos um NAK cnvian11os um ACK cm seu lugar para o lillimo pacote corre
1arncn1e recebido. Um rcmc1e111c que recebe dois ACKs para o mesmo pacote (lsto , ACKs duplicados) sabe que o
destinatrio nllo r~cbcu corretamente o pacote scguimc quele para o qual eslo sendo dados dois ACKs.
Nosso protocolo de transferncia confivel de dados sem NAI< para um canal com erros de bits o rdt2. 2,
mostrado n as figuras 3 .13 e 3.14. Uma modificao suli l entre rdt2 .1 e rdt2 . 2 que o deslinatrio agora d eve
indulr o n mero de sequncia cio p.1co l e que est sendo reconbeciclo por u ma mensagem ACK (o que feito
incluindo o argumento ACK, O ou ACK, 1 em ma ke_pk l ( ) na FSM destinatria) e o reme1ente agora deve veri-
ficar o n mero de sequncia do pacote q Lte es1 sendo reconhecido por uma mensagem ACK recebida (o que
feiro i11cluindo o argumcmo O ou I em isACK() na FSM rcmc1cmc).

Transferncia confivel de dados por um conol com perda e com erros de bits: rdt3.0
Suponha agora que, alm de corromper bilS, o canal subjacente possa perder pacotes, um aconiecimento que
no i11comu m nas rNies de compuutdores de hoje (incluindo a lmcrnet). Duas preocupaes ad icionais d evem
agora ser tratadas pelo protocolo: como de1ccrnr perda de p;icotc e o que faz.cr quando isso ocorre. A tniliza-Jo
de soma de vc rificaO, nmeros de scqucnci:t, p.1co1cs ACK e retrans misses - as 16cn ic:.\S j desenvolvidas cm
rd t2. 2 - nos permilir atender a 1\ltima preocupa.1o. Lidar com a primeim preocupao. por s ua vez, cxigir-
a adio ele um novo mec-Jnismo de protocolo.
H muhas abordagens possveis para lidar com a perda de pacote (e diversas delas sero estudadas nos excrd
cios ao nnal do capilulo). Aqui, mribuircmos ao remctcn1c o encargo de de1ec1ar c se recuperar das pcrd,'IS de paco-
te. Suponha que o remetente transmita um pacote de dados e que esse pacote, ou o ACK do seu desnatrio, seja
perdido. Em qualquer um dos casos, nenhuma resposta chegar ao remelente vinda do destinatrio. Se o remetente
bowot,o4ico.
16 1
Copilulo 3 Comodo de t ran sporte

rdt_send!dat.1>

rdt_rcv Crcvpkt > rd t_rcv( rcvpk t l


H notcorri,pt(revpH> M Mtcouuptercvpkt)
U i sACK( rcvptt. li U isACK(rcwpH,0)
I\ A

Esperar
Esperar
chamada 1

C
ACl<l
de cima
rdt_rcv<rcvpkl)&&
<corrupt<rcvplct)IJ '- /
ISACK(revpkl ,0)) ~
udt_se11d(sndpkl) rdt_send(d,>la)
sndpkl-adte pkLCl ,data . chec ksum)
udt_send( sncJpkt)

Figura 3.13 rl2.2 remetente

estive r disposto a esperar o Lcmpo suficiente p,H"J. ter certeza de que o pacote foi perdido. d e poder simplesmente
retransmitir o p,1c0Le de dados. 1: prcdso que vocc se convena de que esse protocolo fu nciona mesmo.
Mas quanto tempo o remeten te precisa esperar para ter certeza de que algo foi perdido~ claro q ue deve
aguardar no mnimo o tempo de um alra.io de ida e volta entre ele e o destinatrio (o que pode incluir buJfcrs
em ro1cadores ou cquipamcnLos intermedirios) e mais o tempo que for necessrio pam processar um pacote no
deslir1atrio. Em muitas redes, o atraso 1mtximo para esses piores casos muito difcil at de estimar, Qll.lnto mais

rdt_rcv( rcvpkl) M n11tcorrupt< rcvpkt >


&&, hdS_SCQO( rCl'Pkt)

extract<1cvpkt , da t a)
dillvcr_d4ld(dla)
sndptt-.ake_pkt(ACK .O.checksum)
/\ 11ot_send( sndpl(L >

e
once thruO o~cethruI
',

rot_rcv(rcvpkl) u
' ',
... ~ rdt rcv( rcvpkl) &&
<corrupr ( rcvpkl l 11
hH_s~ql ( rcvpktl)
lf(oocettlru 1 >
udL_scnd(sndpkll
Esperar
Ode
baixo
Esperar
1 de
baixo J 1co1rupt< rcvpkt> 11
hDs_seqD(rcvpkt)l
uot_send<~ndpkt)

~
rdt_rcv( rcvpkl) gg notconupt(, cvpkL 1
gg has_~eql ( rcvpkl)
extractCrcvpkt.datdl
deli ver .data(dalaJ
snaptt-~ake_pkt(ACK . l . checksum>
velt_send(sn<1pkL)

Figura 3.14 rdt2.2,destinatrio


bowot,o4ico.
162
------ Redes de compu1adores e a lnleroet

saber com certeza. Al~n disso, o ideal seria que o pro1ocolo s.e recuperasse da perda de 1>aco1es logo que possvel;
esperar pelo au.iso do pior dos casos pode signilcar um longo 1empo at que a re.cuperao do erro seja inicia-
da. Assim, a abordagem ado Lada na prtica a seguinte: o remetente faz uma escolha ponderada de um valor de
1cmpo dcnuo do qual seria provvel. mas no garantido, que a pcrdt1 tivesse acontecido. Se nilo for recebido um
ACK nesse perodo, o pacote rclransmitido. Note que, se um pacote sofrer um atraso particularmente lo ngo.
o remetente poder rnransmiti-lo mesmo que, nem o paco1e de dados, nem o seu ACK 1enham s ido perdidos.
Isso introdu z a possibilidade de pacotes d e dados duplica dos no canal remetente-d estinarrio. Felizmente, o
pro1ocolo rdt2 . 2 j dispe dt> fundonalldadt suficiente (isto , nllmeros M stquncla) para tratar dos easos de
pacotes duplicados.
Do ponio de vista do remeteme, a retransmiss.lo uma panaceia. O remetente nilo sabe se um pacote de
dados foi perdido. se u m ACK foi perdido ou se o pacote ou o ACK simplesmente estavam muito atrasados. Em
todos os casos, a ao a mesma: retra nsmitir. Para implcmc111ar um mecansmo de rc1rans miss110 com base no
tempo, necessrio um temporizador de co11tagem regressiva que imerrompa o processo remeLente aps 1er
decorrido um clado tempo. Assim, ser preciso que o remetente possa (1 ) :tcioniir o temporizador todns as vezes
que um pacote Cor enviado (quer seja a primeira vez, quer scj,1 uma retransmiSStlo), (2) responder a uma inter-
rupo C.it.a pelo temporizador (realizando as aes necessrias) e (3) parar o temporizador.
A Figura3.15 mostra a FSM remetente p,lra o rdl3.0, um protocolo que U'ansfcre conlavclmentc dados por
um c-...nal que pode corro mper ou perder pacotes; nos ""Exerccios de r1.xao~ pediremos a voe<: que projete a FSM
d estinatria pum rdt 3 .0, A Figm-a 3.16 mostra como o protocolo unclona S<!m pacotes perdidos ou a1rasados e
como manipula pacotes de dados perdidos. Nessa figuro , a passagem do tempo ocorre do topo do d iagrama para
baixo. Note que o instante de recebme1110 de um pacote ncccssariamc111c posterior ao instante de envio de um
pacote, como resullado de atrasos de transmissao e de 1>ropag.1<;o. Nas fig,1ras 3. l(b-d), os colchetes do lado reme-
tente indic.'\111 os inst.1nlcs em que o temporizador foi acionado e, mais tarde, os instantes cm que ele parou. Vrios
d os aspec1os mais sutis desse protocolos.lo examinados nos exercidos ao fina l deste Cllptulo. Como os mhneros ele
sequncia se allernam cmrc O e l , o pro1ocolo rd t3 . O s vezes conhecido como 11ro tocolo bit alie.mante.

rdt_sendCdnal
\ndpkl'"lllake_pkl!O .dat . checksum>
udL_sencHsn<lpkll rdt_rc:v(, cvpktl 1&
s iart_llmer <corruptcrcvpkt) 11
". .,,, ~ /1 ISACKCrc:kt. l))
rdt_,cv(rcvp kt ) )& ' /
li Esperar : ) tl111eoul
Esperar
chamada ACK O 11dt_sendC$ndp1tt:
Ode cima st<1rt lime,
rdt_rcv(rc;vpkt)
&& notc:on-upt< rc;vpl:~ l
&A 1sACK( rcvpkl . 1) rdL_rcv(rcvp~tl
&& notcorrupL( rcvpkt:
stop_t111er && fsAC KCrc vpkl. O)

Llmeoi,L
udt_sen?(sndpH >
e Esperar
ACK 1
Esperar
cham~da
stop_tl~r

surt_umer L / "----/1deC1ma " rdl rcv(rcvptil


l'dt_rcv(rcvpktl && '-..._.} ,.
Ccorropl(rcvpkt!ll
lsACK(rcvpkt . Oll rdt_senacoatai
,. sndpkt make_pklCl.data . checksum)
udl send(s 11dpktl
s La rl_timer

Figura 3.15 rdt3.01remetente


bowot,o4ico.
163
Copilulo 3 (ornado de t ranspor te

Remetente Destinatrio Remetente Destinatrio

:~
envia pino
: ~
:
: recebe pktO
envia pktO
.~Pl-ro .: recebe pktO

. ..
~CJ..O : envia ACKO . ~ : envia ACKO
recebe ACKO recebe ACKO : ~
envia pkt1 Pko :
envia pkt1 [ ~
~ : recebe pktl X (JK'rda).
temporizallo , Pl-r 1
:~ '. envia ACKI reenvia pktl ' ~
recebe pktl
: ~ :
rticebe ACK l
envia pktO ' PktO envia ACK1
:~ : recebe pktO recebe ACK 1 ~
'
: ~ : envia ACKO envia pktO : ~

:~ recebe pktO
envia ACKO

a. Operaao ~m perda b. Pacote perdido

Remetente Oestinatrio Remetente Destinatrio

envia pktO Plcro :


.
envia pktO : ~ '.
~ ' recebe plltO recebe pktO
~ ; envia ACKO . ~ envia ACKO
recebe ACKO ~
: ~
recebe ACKO [ """
envia pkt1
:
. ~
~ .
recebe pkt1
: envia ACKI
envia pktl [ ; ~ :
recebe pkt 1
temp~riza3o , Pkr, '/,.\ envia ACKl
:<perda} >t :
te mpori.talto : reenvia pkt1 ,~
recebe pkt 1
rttnvia pktl : ~ recebe ACKI : ~ ~ (detecta duplica)
---.,. : recebe pkt1
: ~ ( . . ' # - ' (detecta
envia pktO =. ~ ~ . envia ACK1

duplicaao) recebe ACKI ~ recebe pktO


recebe ACK1 "*ro envia ACK1 nllo faz nada ;~ ; envia ACKO
envia pklO -.;;;:.::__
: ---... : recebe pktO
~ jenvia ACKO
1
<. ACK perdido
"' d. Temporiza~o prematura

Figura 3.16 Operoo do rdt3.0. oprotocolobit olteroonte

Agora j reunimos os elcmcmos fundamen tais de um pro1ocolo de mmsfcrncla de dados. Somas de veriflca-
+.lo, nmeros de scqu~ ncia, temporizadores e pacotes de reconhecimento negati vo e positivo - cada um desem-
penha um papel crudal e necessrio na operao do protocolo. Temos agora cm funcionamento um p rotocolo
de transferncia confivel de dados!

3.4.2 Protocolos de transferncia confivel de dados com paralelismo


O protocolo r clt3 . O correto cm Lermos funcionais, ml\s pouco provvel que algum fique con1cnte com o
d esempenho dele, panicularn1eme nas redes de alta velocidade ele hoje. No co rao do problem a do desempenho
do rd t3 . O est o fato de ele ser um protocolo do tipo pare e espere.
Para avaliar o impacto sobre o desempenho causado pelo comportamento "pare e espere", considere um caso ideal de
dois hospedei ros, um localizado na Costa Oeste dos Estados Urdos e outro na Costa Leste, como mostra a Figura 3.17.
bowot,o4ico.
------ Redes de compuladores e a Internet

Pacote de dados Pacote de dados

.i- - - - - -~

a. Um protocolo pare e espere em opera:lo b. Um protocolo com paralelismo em opera:io

Figuro 3.17 P101ocolopore e~pere veffi/sprotocolo com pnrolelismo

O atnlSO de propaga-lo de ida e volta velocidade da luz. Tprop, entre esses dois s istemas finais de apro-
ximadamente 30 milissegundos. Suponha que eles estejam conectados por um canal com capacidade de trans
msso, R, de 1 ggabit (lOu bits) por segundo. Para um tamanho d e pacote, 1.., de I kb)Le (8 mil bits), incluindo
o campo de c.ibealho e ~ambm o de dados, o tempo necessri.o para realmente trans mitir o paco1e l~"' o enlace
de 1 Gbps f:
L 8.000 bits/pacote .
trrmu = - ::: c:c 8 macrossegundos
R 109 bns/seg

A Figur.t 3 .l8(a) mostra qu e, com nosso protocolo pare e espere, se o remetente co mear a enviar o pacote
= = =
em 1 O, ento em t UR 8 mkrossegundos, o ltimo bit entrar no canal do lado rem etente. O paL-ote ento
fn sua jornada ele 15 milissegundos atravessando o pais, com o ltimo bit do pacote emergindo no destinatrio
em L = RTI/2 + UR = 15,008 milissegundos. Supondo, para simplificar, que pacotes ACK sejam extremamente
pequenos (para podermos ignorar seu 1empo de 1.rnnsmisso) e que o dcsLinatrio pode enviar um ACK logo que
receber o himo bit de um pacote de dados, o ACK emergir de volta no reme1cn1e em, =
Rrr + UR 30,008 =
milissegundos. Nesse ponlo, o rcme1cnte agora poder-.\ trans mitir a prxima mensagem. Assim, em 30,008 milis-
segundos, o remetente esteve enviando por apenas 0,008 milissegundo. Se defin irmos a utilizao cio remetente
(ou cio canal) como a fra(;'o de tempo em que o remetente est realmente on1pado enviando bits para dentro do
canal, a anlise da Figurn J.18(a) mostra que o protocolo pare e espere tem uma uiilizao do remetente U,,_
lr.is tante desanimadora, de:

0 008
U
rrint1
L/R
N1T + L/ N
30,008
O00027
'

Ponan10, o remetente lcou ocupado :1penils 1, 7 ccnLsimos de l por cento do tcmpol Visto de outra
maneira, ele s fo i capaz ele enviar 1.000 bytes cm 30,008 milissegundos, uma vazo efetiva de a11enas 267
kbps - mesmo es tando disponvel um enlace de l ggabit por segundo! Imagine o infeliz gerenciador <le rede
que acabou de pagar uma fonuna para ter capacidade de enlace da ordem de gigabits, mas consegue uma ,,azo
de ape nas 267 quilobits por segund o! Este um exemplo grfico de como protocolos de rede podem limi1ar
as capacidades oferecidas pelo hardware s ubjacente de rede. Alm disso, desprezamos tambm os 1empos de
processamento de pro locolo das camadas infeaiorcs no remetente e no dest inatrio, bem como os atrasos de
proccssamcru o e de fila que ocorreriam cm quaisquer roteadores intermedirios existcnlcs entre o ,cmctcnlc
e o destina trio. Incluir esses efeitos serviria apenas parn aumentar ainda mais o atraso e piorar ainda mas o
fraco desempenho.
A soluc;:10 para esse probkm.:i de desempenho em especial simples: em vez de operar em modo pare e
espere, o remetente autorizado a enviar vrios pacotes sem esperar por reconhecimentos, como mos tra a Figura
3.17(b). A Figura 3 .18(b) mostra que, se um remetente for autorizado a transmi tir trs pacotes antes de ter ele
bowot,o4ico.
165
Copilulo 3 Camada de t ran sporte
----
Des,inatrio

Primeiro bit do primeiro pacote


transmitido, t = O - - - - - -
ltimo bit do prmeiro - - - ~..
pacote transmi1ido, t "LIR
: - P-rimeiro bit do primeiro pacote chega
RTT ~ ;- ltlmo ~, do p,im,1,o ""'" ci>,ga, '""' ACK

ACK chega, envia prximo pacote,


t :RTT + LJR
-----------------..

T
a. Op~ao pare e espere

Remetente C>~linatrio

Primeiro bit do prmeiro pacote


transmitido. t = O : ------- ----------- :
ltimo bit do primeiro - - - ~ -
pacote tran$mitdo. t =LIR

ACK chega, envia prximo pacote,


t =RT+ L/R

....
b. Opera~lo com paralelismo

Figura 3.18 Envio com pare eespere ecom paralelismo

esperar por reconhecimentos, sua utl izao ser essencialmeme triplicada. Uma vez que os mu itos pacotes em
m\nsilo emre remetente e destinatrio podem ser visualizados como se estivessem ench.endo uma nabulao, essa
tcnica conhecida, cm ingls, como pipclining ( tubulao). Porm, como essa cxprE'SSo difcil de traduzir
para o ponugus, prccrimos us.,r 'paralelismo', embora a tr:msmiss.-\0 de dados seja de fato sequencial. O parale-
lismo gera as seguinLes consequ~ncias para protocolos de transfertncia conlvel de dados:
A aixa de nmeros de sequncia lem de ser ampliada, uma vez que cada pacote em trlns to (sem con-
tar as retransmisses) precisa ter um nmero de sequncia exclusvo e pode haver vrios pacotes no
reconhecidos em 1rnsi10.
bowot,o4ico.
Redes de compu1adores e a Internei

Os lados remecemc e dcscinatrio dos protocolos podem 1cr de reservar buffers para mais de um piicotc.
No mnimo, o remetente ler de providenciar bufers para pacotes que foram irnnsmiticlos, mas que
aind:1 no fornm reconhecidos. O buffer de pacoLcs corrcuunentc recebidos pode tambm ser necessrio
no dcs1inalrio, como discutiremos a seguir.
A faixa de mi.meros de sequ~ncia necessria e (IS necessidades de burfcr depender.lo d a mane ira como
um protocolo de transferencia de dados responde a pitcotes perdidos, corrompidos e demasiadamente
atrasados. Duas abordagens bsicas em relai\O recupera,110 de erros com paralelis mo podem ser
identificadas: Go-Back-N e r epetio seletiva.

3.4.3 Go-Back-N
Em um protocolo Go-Back-N (GBN), o reme1emc autorzaclo a mrnsmitir multiplos paco1es (se clispo-
ni"eis) sem espe rar por um reconhecimen10, mas fica limii.1do a 1er no ma is cio que algum nmero mximo
permitido, N, de pacotes no reconhecidos. Ncsrn se.\o, descreveremos o protocolo GBN com det:1 lhcs. Mas :uucs
de continuar a leitura, convidlmos voce para se divertir com o applel GBN (incrve l!) no Compan ion site Web.
J\ Figura 3.19 mostm a visilo que o remetente tem da faixa de nmeros de seqL1ncia cm um protocolo GBN.
Se definirmos b ase como o nmero de sequencia do mais antigo pacote no reco nhecido e ne x tseq num
como o menor mlmcro de sequncia no milizado (isto , o m\mero de sequencia do prximo pacote a ser envia-
dQ), en1.,'i.o quaLro intervalos na fa ixa de nmeros de sequncia podero ser identilcados. Os nmeros de sequn-
cia no intervalo ( O , base I J correspondem aos pacotes que j foram ttansmi1idos e reconhecidos. O intervalo
(base . nex tseqnum 1 J corresponde aQs pacotes que foram enviados, mas ainda n,lo foram reconhecidos. Os
mhnros de sequencia no Intervalo [nex tseqn um.ba se+lf l J podem ser usados para pacotes que podem se r
enviados imediatamente, caso cheguem dados vindos da camada superior. Finalmemc, nmeros de sequ~ncia
maiores ou iguais a ba se+H no podem ser usados at que um pacote no reconhecido que es teja pendente seja
reconhecido (cspcci11came111e, o pacote cujo nmcrn de sequencia base).
Como SL1gere a Figura 3.19, a faixa de nmeros de sequencia permitidos para pacotes Lrans mitlclos mas
ai11da niio rcconh1ccidos pode ser vista como uma 1anela' de tcmwnho N sobre a faixa de mimeros de seq uncia.
medida que o pro tocolo opera, CSSl1 janela se desloca para a frente sobre o espao de nmeros de seq uncia. Por
essa razo, N frequentemente denominado tamanho de janela e o protocolo GBN cm si, 1>rotocolo de janela
deslizante (s/i,li11g-wi!l(/ow 1,ro1ocol). 1: possvel que voct- esteja pe11S1.1ndo que r.iz:lo teramos. em primeiro lug;,r,
para limitar o m\ rnero de pacotes pMclentes no reconhecidos a um valor N. Po r que no permitir um nmero
ilimitado desses pacotes? Veremos na Sclo 3.5 qu1; o comrolc de fluxo uma das razes para impor um limite
ao remetente. Examinaremos o uLrn razo para isso na Se\'o 3 . 7, quando estudarmos o co n1rolc de congcstion~1-
mcmo do TCP.
Na prtica, o nme ro de seq uncia de. um pacote carregado e111 um ctmpo de comprimento nxo no cabe-
alho do pacote. Se li for o nmero de biis no campo de nmero de sequncia do paco te, a faixa de nmeros de
seq uncia ser e111o 10,2 - 11. Com uma faixl flnila de nmeros de sequncia, toda a aritmtica que envol-
ve r nmeros de sequncia dcvenl ser feita usando ariunlc:i de mdu lo 2. ( Em omras palavras, o espao do
nmero de sequncia pode ser imaginado como um anel de tarnanho 2. em que o nmero ele sequncia 2~ - l

Legenda:
,~
00 ~oooooioooooooooo Avtorlttclo,
Dreconhe~ido Omas ainda no e nviado
f nviaclo, o
Tamanho da janela
N
D ma$ ainda
nlo rc<onhc<ido
NJo :autorli~clo

Figuro 3.19 Viso do remetente poro os nmeros de sequncia no protocolo Go-BockN


bowot,o4ico.
167
Capitulo 3 Camada de t ransporte

imedjatrunentc seguido pdo numero de sequencia O.) Lembre-se d e que rd t3. O tem um m\mero de sequn-
cia de l bit e uma fa ixa de nmeros de sequncia de [0,11. Vrios problemas ao flnal des te captulo 1.ratam das
conscqui;ncias de uma faixa tnita de nmeros de se<1uC.ncia. Veremos na Sc<;1'\o 3.5 que o TCP tem um campo
de nmero de scqu~ncia de 32 bits, onde os nmeros de wqlli!ncia do TC P contam bytes na cadeia de bytes.
em vez de pacotes.
As figuros 3.20 e 3.21 desc revem uma FSM es tendida dos lados remetente e destinatrio ele um protocolo
GBN baseado em ACK, mas sem NAK
Referimo-nos a essa descrio de FSM como FSM cs1e11c/ida porque adicionamos v.,rivcis (semel hantes :\s
variveis de linguagem de programaro) IYra base e nex t seqnum; unnbem adicionamos operaes sobre essas
val'iveis e aes condicionais que as e1ivolvem. Nme que a especificao da FSM estendida agora est comeando
a parecer um pouco <."Om uma especificao d e linguagem de programa<,;o. 1Boch man, 1984) fornece um excelen-
te levantamento sobre ex tenses ndi cionais S lcnkas FSM, bem orno sobre ouLr.lS tcnicas para cspecincao
de protocolos baseadas cm linguagens.
O remetente GBN deve respo nder a trS tlpos d e eventos:
C11amcula l'i1ufrr ,le cima. Quando rdt_s e nd () cham.1do de cima. o remetente primeiramente veri-
l'ic.t se a jancl11 est cheia, isto ~ se h N pacotes pendentes no reconhecidos. Se a janela no estiver
cheia, um pacote criado e enviado e as variveis so adequadamente atua lizadas. Se estiver che ia, o
remetente apenas de\'olve os dados camada superi or - uma indkao implcita de que a janela est
cheia. Presu mivelmente, a camada superior ento teria de tentar ou1r:1 vez mais rnrclc. Em uma implc-
menrno real, o rem etente muito provavelmente teria colocado esses dados em um buffer (mas no os
reria enviado imediatamente) ou teria um mecanismo ele sincronizao (por exemplo, um semforo ou
uma llag) que permitiria que a camada s uperior d1.1massc rdt_se nd C ) somente quando as janelas nilo
eslivesse m cheias.
Rec:ebirttelH<> de urn ACK. Em nosso protocolo GBt , um reconhecimento de pacote com numero de
sequencia II seria to rnado como um reconhecimento cu mulath'O. indicando que todos os pacotes com
nmero de sequncia at e inclusive II tinham sido corre tamente recebidos no des1na1ro. Voltaremos
a esse assunto em breve, quando examinarmos o lado destinatrio do GBN.
Um csgotcw1 c1110 ele lcmporiw,lo. O nome 'Go-Back-N' dc.riva do componamcmo do rcmclcnlc cm
rela-l.o a pacotes perdidos ou demasiadamente atrasados. Como no prolocolo pare e espere, um tem-
porizador usado para recuperar a perda de d ados ou reconhecer pacotes. Se ocorre r o esgotame,110
da temporizao, o remetente reenvia lodos os pacotes que linham sido previamente enviados mas que
ainda no tinham sido reconhecidos. Nosso remete nte da Figura 3.20 usa apenas um llnlco temporiza-
dor, que pode ser imaginado como 11111 temporizador para o mais antigo pacote j transmitido mas que
ttind:1 mlo foi reconhecido. Se for recebido um ACK e ainda houver pacotes adicionais Lrnnsmitldos mas
ainda no reconhecidos, o temporizador ser reiniciado. Se no houver 11enhum pacote. pendente n!io
reconhecido, o temporizador ser desligado.
As aes do d estinatrio no GBN tambm so s imples. Se um pacote com numero de sequt ncia II for recel>ido
corretamente e estive.- na ordem (isto , os ltimos dados entregues camada superior vierem ele um pacote com
mi mero de scqLtncia ii -1}, o destinatrio enviar um ACK para o pacote II e entregar a por~\o dos dados do pacote
camada superior. Em todos os outros casos, o destinatrio dest-arta o pacote e reenvia um ACK !Y.'ra o pacote mais
rccemc que foi recebido na ordcrn correr..,. Dado que os p:.tcotes so entregues camada superior um por vez, S o
pacmc 11 tlvcr sido recebido e entregue, enco todos os pacotes com mlmcro de sequncia menores do que li tambm
ter.lo sido entregues. Assim. o uso de reconhecimentos cumul:uivos uma escolha nnmml para o GBN.
Em nosso protocolo GBN, o destinatrio descarta os pacotes que c hegam fora d e ordem. Embora parea
bobagem e perda de tempo descar1ar um pacote <.'Orretamcnte recebido (mas fora ck ordem) , existem j ustificativas
paro isso. Lembre-se de que o destinatrio deve entregar dados na ordem cena camada s uperi o r. Suponha agora
que o pacote II esteja sendo esperado, mas quem chega o pacote n + l. Como os d ados devem ser entregues
na ordem certa, o destinatrio poderia conservar o pacote 11 + 1 no buffer (salv-lo) e entregar esse pacote camada
bowot,o4ico.
168
Redes de compuladores e a lnleroet

rdl_send(ddld >
1 f (nextseqnt1m<1:>asc111)l
$ndpkt(11CL stqnum)'"llake_pkl( ,1extstlqnum. da t .cll1Xksu111>
udt_send!sndpkt[nextseqnumll
1 flbse ~nexueqnum>
St.lrt_L lne r
/\ .................. nextscqnum
......... 1
',._ eise
...... ... , refuse_d~L~CdH<l 1
... ,
..................
. ....
J"'""',.
\ " Lheout
star t_t. lmer
Espe<ar 11<11_s~ nd( sudpktl bd se J)

/\
r~t_rcv(rCvoHJ &,& corrur>t(rcvpl.t>
6u
) udLscnd( sndpkt( base-+ 1 J)
...
uCIL_se ndC sudJ)kl( nexl$~qn11a- 1J)

rdt_q;v( rcvpkt) U nolcorrupt( rcvpl:Ll


bcl~~~etdcknll!l(rcvpktlI
1 l b,1se-nexlseqnu>
stop_tiaer
else
stut_tl~r

Figura 3.20 Descriodo FSM eslendido do 1eme1enre GBtl

superior mais tarde, aps ter recebido o pacote 11 . Contudo, se o pacote n for perdido, os pacotes 11 e 11 + 1
ser-lo ambos finalmente retransmitidos como resultado da regra de rcLmnsmisso do GBN no remetente. Assim,
o dl'Stinatro pode simplesmente descartar o pacote n + l. A vantagem dessa abordagem a simplicidade da
manipulao ele bufers no destinatrio - o des1inauiro no precisa colocar no bufer nenhum paco1e que cs1eja
fora de ordem. Desse modo, enquanto o rcmc1eme deve rnamer os limi1es superior e inferior de sua janela e a
posio de nex tseqnum dentro dessa janela, a nica informa~1\o que o dcstina1rio precisa man1cr o nmero
de sequencia do prximo pacote esperado conforme a ordem. Esse "ator retido na w rivcl expec tedseqnum
mostrada na FSM desti natria da Figura 3.21. Evidentemente, a desvantagem de Jogar fora um paco te recebido
corre1amem c que a retransmiss;lo subsequcme desse pacote pode ser perdida ou ficar truncada, caso cm que
ainda mais retransmisses seriam necessrias.

rdl_rcvc rcvpkll
&& notcor~upt ercvpkl l
&& ha sseQnu"'C rvpkl. Q1tpec;lllilseqm1a)

exLractc , cvp~t .d@~dl


de11ver_d4latdatol
sndpkt make_pkltcxpcctc<lscqnua.ACK. cllecksum)
udt_send(S11dpkt l
expec;Ledseqnum~~

--------------->
n Esperar ) -de_,_.i_u_H____