tanenbaum, andrew s. redes de computadores

632
LEITURA INDICADA SOMENTE PARA FINS EDUCACIONAIS. NÃO DISPENSA A AQUISIÇÃO DO LIVRO ORIGINAL

Upload: deka93

Post on 28-Jan-2018

432 views

Category:

Education


12 download

TRANSCRIPT

  1. 1. LEITURA INDICADA SOMENTE PARA FINS EDUCACIONAIS. NO DISPENSA A AQUISIO DO LIVRO ORIGINAL
  2. 2. Redes de computadores Quarta edio Andrew S. Tanenbaum Vrije Universiteit Amsterdam, Holanda Traduo: Vandenberg D. de Souza Analista de sistemas e tradutor Editora Campus Redes de computadores, quarta edio, a introduo ideal s redes de hoje e s redes de amanh. Este best-seller clssico foi completamente atualizado para refletir as tecnologias mais novas e mais importantes de redes, com nfase especial em redes sem fios, incluindo 802.11, Bluetooth, comunicao sem fios de banda larga, redes ad hoc, i-mode e WAP. Porm as redes fixas no foram ignoradas, com cobertura de ADSL, Internet via cabo, Ethernet de gigabit, redes no hierrquicas, NAT e MPLS. Alm disso, existe grande quantidade de material novo sobre aplicaes, inclusive mais de 60 pginas sobre a Web, e ainda rdio na Internet, voz sobre IP e vdeo por demanda. Por fim, a cobertura de segurana de redes foi revista e expandida para preencher um captulo inteiro. Autor, educador e pesquisador, Andrew S. Tanenbaum, vencedor do ACM Karl V. Karlstrom Outstanding Educator Award, explica cuidadosamente como as redes funcionam do lado de dentro, desde o hardware subjacente na camada fsica at a camada de aplicao de nvel superior. Tanenbaum focaliza todos estes temas e muitos outros: Camada fsica (cobre, fibra ptica, redes sem fios, satlites e Internet via cabo) Camada de link de dados (conceitos fundamentais de protocolos, verificao de protocolos, HDLC, SLIP e PPP) Subcamada MAC (Ethernet de gigabit, 802.11, comunicao sem fios de banda larga e comutao) Camada de rede (algoritmos de roteamento, controle de congestionamento, QoS, lPv4 e IPv6) Camada de transporte (programao de soquetes, UDP, TCP, RTP e desempenho de redes) Camada de aplicao (e-mail, a Web, PHP, Web sem fios, MP3 e streaming audio) Segurana de redes (AES, RSA, criptografia quntica, IPsec e segurana da Web) O livro fornece descries detalhadas dos princpios associados a cada camada e apresenta muitos exemplos extrados da Internet e de redes sem fios.
  3. 3. NDICE Prefcio .......................................................................................................................................... ..15 Captulo 1. Introduo ......................................................................................... ............................18 1.1 Usos de redes de computadores ...................................................................19 1.1.1 Aplicaes comerciais ............................................................................19 1.1.2 Aplicaes domsticas ............................................................................21 1.1.3 Usurios mveis .....................................................................................24 1.1.4 Questes sociais .....................................................................................26 1.2 Hardware de rede .........................................................................................27 1.2.1 Redes locais ............................................................................................29 1.2.2 Redes metropolitanas .............................................................................30 1.2.3 Redes geograficamente distribudas ......................................................31 1.2.4 Redes sem fios ........................................................................................33 1.2.5 Redes domsticas ...................................................................................35 1.2.6 Inter-redes ..............................................................................................36 1.3 Software de rede ..........................................................................................37 1.3.1 Hierarquias de protocolos ......................................................................37 1.3.2 Questes de projeto relacionadas s camadas........................................40 1.3.3 Servios orientados a conexes e servios sem conexes .....................41 1.3.4 Primitivas de servio...............................................................................42 1.3.5 O relacionamento entre servios e protocolos .......................................44 1.4 Modelos de referncia ..................................................................................44 1.4.1 O modelo de referncia OSI ...................................................................45 A camada fsica ............................................................................................45 A camada de enlace de dados ......................................................................46 A camada de rede .........................................................................................46 A camada de transporte ...............................................................................47 A camada de sesso .....................................................................................47 A camada de apresentao ...........................................................................47 A camada de aplicao .................................................................................47 1.4.2 O modelo de referncia TCP/IP ..............................................................47 A camada inter-redes ...................................................................................48 A camada de transporte ...............................................................................49 A camada de aplicao .................................................................................49 A camada host/rede ......................................................................................49 1.4.3 Uma comparao entre os mo delos de referncia OSI e TCP/IP ..........49 1.4.4 Uma crtica aos protocolos e ao modelo OSI .........................................51 Momento ruim ..............................................................................................51 Tecnologia ruim ............................................................................................52 Implementaes ruins ..................................................................................52 Poltica ruim .................................................................................................52 1.4.5 Uma crtica ao modelo de referncia TCP/IP .........................................53 1.5 Exemplos de redes ........................................................................................53 1.5.1 A Internet ...............................................................................................54 A ARPANET ..................................................................................................54 NSFNET........................................................................................................57 Utilizao da Internet ...................................................................................59 Arquitetura da Internet.................................................................................60 1.5.2 Redes orientadas a conexes: X.25, Frame Relay e ATM ......................61 X.25 e Frame Relay ......................................................................................62 ATM (Asynchronous Transfer Mode) ...........................................................62 Circuitos virtuais do ATM .............................................................................63 O modelo de referncia ATM ........................................................................64 1.5.3 Ethernet ..................................................................................................65
  4. 4. 1.5.4 LANs sem fios: 802.11 ............................................................................67 1.6 Padronizao de redes ..................................................................................69 1.6.1 Quem quem no mundo das telecomunicaes ....................................69 1.6.2 Quem quem no mundo dos padres internacionais ............................71 1.6.3 Quem quem no mundo dos padres da Internet .................................72 1.7 Unidades mtricas ........................................................................................73 1.8 Viso geral dos outros captulos do livro ......................................................74 1.9 Resumo .........................................................................................................75 Problemas ...........................................................................................................76 Captulo 2. A camada fsica ............................................................................... ..............................78 2.1 A base terica da comunicao de dados .....................................................79 2.1.1 Anlise de Fourier...................................................................................79 2.1.2 Sinais limitados pela largura de banda ..................................................79 2.1.3 Taxa mxima de dados de um canal .......................................................81 2.2 Meios de transmisso guiados ......................................................................82 2.2.1 Meios magnticos ...................................................................................82 2.2.2 Par tranado ...........................................................................................83 2.2.3 Cabo coaxial ...........................................................................................84 2.2.4 Fibra ptica ............................................................................................84 Transmisso de luz na fibra .........................................................................85 Cabos de fibra ..............................................................................................86 Redes de fibra ptica ....................................................................................87 Comparao entre fibras pticas e fios de cobre .........................................88 2.3 Transmisso sem fios ....................................................................................89 2.3.1 O espectro eletromagntico ...................................................................90 2.3.2 Transmisso de rdio .............................................................................92 2.3.3 Transmisso de microondas....................................................................93 A poltica do espectro eletromagntico ........................................................93 2.3.5 Transmisso por ondas de luz ................................................................95 2.4 Satlites de comunicaes ............................................................................96 2.4.1 Satlites geoestacionrios ......................................................................97 2.4.2 Satlites terrestres de rbita mdia .......................................................99 2.4.3 Satlites terrestres de baixa rbita ......................................................100 Iridium ........................................................................................................100 Globalstar....................................................................................................101 Teledesic......................................................................................................101 2.4.4 Comparao entre satlites e fibra ptica ...........................................102 2.5 A rede pblica de telefonia comutada ........................................................103 2.5.1 Estrutura do sistema telefnico ...........................................................103 2.5.2 A poltica das companhias telefnicas .................................................105 2.5.3 O loop local: modems, ADSL e redes sem fios .....................................107 Modems ......................................................................................................108 Linhas digitais do assinante .......................................................................112 Loops locais sem fios...................................................................................115 2.5.4 Troncos e multiplexao .......................................................................117 Multiplexao por diviso de freqncia ...................................................117 Multiplexao por diviso de comprimento de onda .................................118 Multiplexao por diviso de tempo...........................................................119 SONET/SDH ...............................................................................................122 2.5.5 Comutao ............................................................................................124 Comutao de circuitos ..............................................................................124 Comutao de mensagens ..........................................................................125 Comutao de pacotes ...............................................................................126 2.6 O sistema de telefonia mvel ......................................................................128
  5. 5. 2.6.1 Telefones mveis de primeira gerao: voz analgica .........................129 AMPS (Advanced Mobile Phone System) ...................................................129 Canais .........................................................................................................131 Gerenciamento de chamadas .....................................................................131 2.6.2 Telefones mveis de segunda gerao: voz digital ..............................132 D-AMPS (Digital Advanced Mobile Phone System) ....................................132 GSM (Global System for Mobile Communications).....................................133 CDMA (Code Division Multiple Access) .....................................................135 2.6.3 Telefones mveis de terceira gerao: voz e dados digitais ................139 2.7 Televiso a cabo ..........................................................................................141 2.7.1 CATV (Community Antenna Television) ................................................141 2.7.2 Internet por cabo...................................................................................142 2.7.3 Alocao do espectro ............................................................................143 2.7.4 Modems a cabo .....................................................................................144 2.7.5 ADSL versus cabo .................................................................................146 2.8 Resumo .......................................................................................................147 Problemas .........................................................................................................147 Captulo 3. A camada de enlace de dados ...................................................................... ...............150 3.1 Questes de projeto da camada de enlace de dados ..................................151 3.1.1 Servios oferecidos camada de rede .................................................151 3.1.2 Enquadramento ....................................................................................153 3.1.3 Controle de erros...................................................................................156 3.1.4 Controle de fluxo ..................................................................................157 3.2 Deteco e correo de erros .....................................................................157 3.2.1 Cdigos de correo de erros ...............................................................157 3.2.2 Cdigos de deteco de erros ..............................................................160 3.3 Protocolos elementares de enlace de dados ...............................................163 3.3.1 Um protocolo simplex sem restries ..................................................166 3.3.2 Um protocolo simplex stop-and-wait ....................................................167 3.3.3 Um protocolo simplex para um canal com rudo ..................................169 3.4 Protocolos de janela deslizante ..................................................................172 3.4.1 Um protocolo de janela deslizante de um bit .......................................174 3.4.2 Um protocolo que utiliza go back n ......................................................176 3.4.3 Um protocolo que utiliza retransmisso seletiva .................................181 3.5 Verificao de protocolos ...........................................................................185 3.5.1 Modelos de mquinas de estados finitos ..............................................185 3.5.2 Modelos de rede de Petri .....................................................................187 3.6 Exemplos de protocolos de enlace de dados ..............................................189 3.6.1 HDLC High-level Data Link Control .................................................189 3.6.2 A camada de enlace de dados na Internet............................................191 PPP Point-to-Point Protocol ....................................................................192 3.7 Resumo .......................................................................................................195 Problemas .........................................................................................................195 Captulo 4 - A subcamada de controle de acesso ao meio .............................................................198 4.1. O problema de alocao de canais ............................................................199 4.1.1. Alocao esttica de canais em LANs e MANs ...................................199 4.1.2 Alocao dinmica de canais em LANs e MANs ..................................200 4.2 Protocolos de acesso mltiplo ....................................................................201 4.2.1 ALOHA ..................................................................................................201 ALOHA puro ...............................................................................................201 Slotted ALOHA ...........................................................................................203 4.2.2 Protocolos CSMA (Carrier Sense Multiple Access) ..............................204 CSMA persistente e no persistente ..........................................................204 CSMA com deteco de colises ................................................................205
  6. 6. 4.2.3 Protocolos livres de coliso ..................................................................207 Um protocolo de mapa de bits ...................................................................207 Contagem regressiva binria .....................................................................208 4.2.4 Protocolos de disputa limitada .............................................................209 O protocolo adaptativo de percurso em rvore .........................................210 4.2.5 Protocolos WDMA .................................................................................211 4.2.6 Protocolos de LANs sem fios ................................................................213 MACA e MACAW ........................................................................................215 4.3 Ethernet ......................................................................................................216 4.3.1 Cabeamento Ethernet ..........................................................................216 4.3.2 Codificao Manchester .......................................................................218 4.3.3 O protocolo da subcamada MAC Ethernet ...........................................219 4.3.4 O algoritmo de recuo binrio exponencial................................................... ..........................221 4.3.5 Desempenho da Ethernet .....................................................................222 4.3.6 Ethernet comutada ...............................................................................223 4.3.7 Fast Ethernet ........................................................................................224 4.3.8 Ethernet de gigabit ..............................................................................227 4.3.9 O padro IEEE 802.2: LLC (Logical Link Control) ...............................229 4.3.10 Retrospectiva da Ethernet ..................................................................230 4.4 LANs sem fios .............................................................................................231 4.4.1 802.11: a pilha de protocolos ...............................................................231 4.4.2 802.11: a camada fsica ........................................................................232 4.4.3 802.11: o protocolo da subcamada MAC ..............................................233 4.4.4 802.11: estrutura de quadro ................................................................237 4.4.5 Servios ................................................................................................237 4.5 Redes sem fios de banda larga ...................................................................239 4.5.1 Comparao entre o 802.11 e o 802.16 ...............................................239 4.5.2 802.16: a pilha de protocolos ...............................................................240 4.5.3 802.16: a camada fsica ........................................................................241 4.5.4 802.16: o protocolo da subcamada MAC ..............................................242 4.5.5 802.16: estrutura de quadro ................................................................243 4.6 Bluetooth ....................................................................................................244 4.6.1 Arquitetura do Bluetooth ......................................................................245 4.6.2 Aplicaes do Bluetooth .......................................................................245 4.6.3 A pilha de protocolos do Bluetooth ......................................................246 4.6.4 A camada de rdio do Bluetooth .......................................................247 4.6.5 A camada de banda base do Bluetooth ................................................248 4.6.6 A camada L2CAP do Bluetooth .............................................................248 4.6.7 A estrutura de quadro do Bluetooth .....................................................248 4.7 Comutao na camada de enlace de dados ................................................249 4.7.1 Pontes entre LANs 802.x e 802.y .........................................................251 4.7.2 Interligao de redes locais .................................................................252 4.7.3 Pontes de rvores de amplitude ...........................................................254 4.7.4 Pontes remotas .....................................................................................255 4.7.5 Repetidores, hubs, pontes, switches, roteadores e gateways ..............255 4.7.6 LANs virtuais ........................................................................................257 O padro IEEE 802.1Q ...............................................................................261 4.8 Resumo .......................................................................................................263 Problemas .........................................................................................................264 Captulo 5. A camada de rede....................................................................................................... ..267 5.1 Questes de projeto da camada de rede ....................................................267 5.1.1 Comutao de pacotes store-and-forward.............................................267 5.1.2 Servios oferecidos camada de transporte .......................................268 5.1.3 Implementao do servio sem conexes ............................................269
  7. 7. 5.1.4 Implementao do servio orientado a conexes .................................270 5.1.5 Comparao entre sub-redes de circuitos virtuais e de datagramas ...271 5.2 Algoritmos de roteamento ..........................................................................272 5.2.1 O princpio de otimizao .....................................................................273 5.2.2 Roteamento pelo caminho mais curto ..................................................274 5.2.3 Inundao .............................................................................................276 5.2.4 Roteamento com vetor de distncia .....................................................277 O problema da contagem at infinito .........................................................279 5.2.5 Roteamento por estado de enlace ........................................................280 Conhecendo os vizinhos .............................................................................280 Como medir o custo da linha ......................................................................281 Como criar pacotes de estado de enlace ....................................................282 Distribuio dos pacotes de estado de enlace ...........................................282 Como calcular as novas rotas .....................................................................283 5.2.6 Roteamento hierrquico .......................................................................284 5.2.7 Roteamento por difuso .......................................................................286 5.2.8 Roteamento por multidifuso................................................................287 5.2.9 Roteamento para hosts mveis ............................................................289 5.2.10 Roteamento em redes ad hoc .............................................................291 Descoberta de rota .....................................................................................291 Manuteno de rotas ..................................................................................293 5.2.11 Pesquisa de ns em redes no hierrquicas ......................................294 5.3.1 Princpios gerais do controle de congestionamento ............................299 5.3.2 Polticas de preveno de congestionamento ......................................300 5.3.3 Controle de congestionamento em sub-redes de circuitos virtuais .....301 5.3.4 Controle do congestionamento em sub-redes de datagramas .............302 O bit de advertncia ...................................................................................302 Pacotes reguladores ...................................................................................303 Pacotes reguladores hop a hop ..................................................................303 5.3.5 Escoamento de carga ...........................................................................304 Deteco aleatria prematura ....................................................................305 5.3.6 Controle de flutuao............................................................................306 5.4 Qualidade de servio ..................................................................................307 5.4.1 Requisitos .............................................................................................307 5.4.2 Tcnicas para se alcanar boa qualidade de servio ...........................308 Superdimensionamento ..............................................................................308 Armazenamento em buffers .......................................................................308 Moldagem de trfego .................................................................................309 O algoritmo de balde furado ......................................................................309 O algoritmo de balde de smbolos ..............................................................310 Reserva de recursos ...................................................................................313 Controle de admisso .................................................................................314 Roteamento proporcional ...........................................................................316 Programao de pacotes ............................................................................316 5.4.3 Servios integrados ..............................................................................317 RSVP Resource reSerVation Protocol ....................................................317 5.4.4 Servios diferenciados .........................................................................319 Encaminhamento expedido ........................................................................320 Encaminhamento garantido .......................................................................320 5.4.5 Troca de rtulos e MPLS3.....................................................................321 5.5 Interligao de redes...................................................................................323 5.5.1 Diferenas entre redes .........................................................................324 5.5.2 Como as redes podem ser conectadas .................................................325 5.5.3 Circuitos virtuais concatenados ...........................................................326
  8. 8. 5.5.4 Interligao de redes sem conexes ....................................................327 5.5.5 Tunneling ..............................................................................................328 5.5.6 Roteamento inter-redes ........................................................................329 5.5.7 Fragmentao .......................................................................................330 5.6 A camada de rede na Internet ....................................................................333 5.6.1 O protocolo IP .......................................................................................334 5.6.2 Endereos IP ........................................................................................337 Sub-redes ...................................................................................................338 CIDR Classless InterDomain Routing ....................................................340 NAT Network Address Translatiom .......................................................342 5.6.3 Protocolos de controle da Internet .......................................................345 ICMP (Internet Control Message Protocol) ...............................................346 ARP (Address Resolution Protocol) ............................................................346 RARP, BOOTP e DHCP ................................................................................348 5.6.4 OSPF Interior Gateway Routing Protocol ........................................349 5.6.5 BGP O protocolo de roteamento de gateway exterior .....................353 5.6.6 Multidifuso na Internet .......................................................................354 5.6.7 IP mvel ................................................................................................355 5.6.8 IPv6 .......................................................................................................357 O cabealho principal do IPv6 ....................................................................358 Cabealhos de extenso .............................................................................361 Controvrsias .............................................................................................362 5.7 Resumo .......................................................................................................364 Problemas .........................................................................................................364 Captulo 6. A camada de transporte ...................................................................... ........................368 6.1 O servio de transporte ..............................................................................369 6.1.1 Servios oferecidos s camadas superiores .........................................369 6.1.2 Primitivas do servio de transporte .....................................................370 6.1.3 Soquetes de Berkeley ...........................................................................372 6.1.4 Um exemplo de programao de soquetes: um servidor de arquivos da Internet ..........................................................................................................373 6.2 Elementos de protocolos de transporte ......................................................376 6.2.1 Endereamento ....................................................................................377 6.2.2 Estabelecimento de conexes ..............................................................379 6.2.3 Encerramento de conexes ..................................................................383 6.2.4 Controle de fluxo e uso de buffers .......................................................386 6.2.5 Multiplexao .......................................................................................389 6.2.6 Recuperao de desastres ....................................................................390 6.3 Um protocolo de transporte simples ..........................................................392 6.3.1 Exemplo de primitivas de servio ........................................................392 6.3.2 Exemplo de entidade de transporte .....................................................393 6.3.3 O exemplo sob a forma de mquina de estados finitos ........................397 6.4 Os protocolos de transporte da Internet: UDP ...........................................399 6.4.1 Introduo ao UDP ...............................................................................399 6.4.2 Chamada de procedimentos remotos ...................................................400 6.4.3 O RTP (Real-time Transport Protocol) ..................................................402 6.5 Os protocolos de transporte da Internet: TCP ...........................................404 6.5.1 Introduo ao TCP ................................................................................405 6.5.2 O modelo de servio do TCP .................................................................405 6.5.3 O protocolo TCP ...................................................................................407 6.5.4 O cabealho de segmento do TCP ........................................................407 6.5.5 O estabelecimento de conexes TCP ....................................................410 6.5.7 Modelagem do gerenciamento de conexes do TCP ............................411 6.5.8 Poltica de transmisso do TCP ............................................................413
  9. 9. 6.5.9 Controle de congestionamento do TCP ................................................416 6.5.10 Gerenciamento de timers do TCP ......................................................418 6.5.11 TCP e UDP sem fios ............................................................................420 6.5.12 TCP transacional ................................................................................422 6.6 Questes de desempenho ...........................................................................423 6.6.1 Problemas de desempenho em redes de computadores ......................424 6.6.2 Medio do desempenho da rede .........................................................425 Certifique-se de que o tamanho da amostra grande o bastante .............426 Certifique-se de que as amostras so representativas ..............................426 Tenha cuidado ao usar o clock do computador ..........................................426 Certifique-se de que nenhum evento inesperado est ocorrendo durante os testes ..........................................................................................................426 O uso de caches pode arruinar as medies ..............................................427 Entenda o que est medindo ......................................................................427 Tenha cuidado para no extrapolar os resultados .....................................427 6.6.3 Projeto de sistemas para obter melhor desempenho ...........................427 Regra n 1: A velocidade da CPU mais importante que a velocidade da rede ............................................................................................................428 Regra n 2: Reduza o nmero de pacotes para reduzir o overhead do software ......................................................................................................428 Regra n 3: Minimize as mudanas de contexto .......................................428 Regra n 4: Minimize o nmero de cpias ................................................429 Regra n 5: Voc pode adquirir mais largura de banda, mas no um retardo mais baixo ...................................................................................................430 Regra n 6: Prevenir o congestionamento melhor do que remedi-lo ...430 Regra n 7: Evite os timeouts ....................................................................430 6.6.4 Processamento rpido de TPDUs .........................................................430 6.6.5 Protocolos para redes de gigabits ........................................................433 6.7 Resumo .......................................................................................................435 Problemas .........................................................................................................436 Captulo 7. A camada de aplicao ...................................................................................... ..........439 7.1 DNS Domain Name System ....................................................................439 7.1.1 O espao de nomes do DNS .................................................................440 7.1.2 Registros de recursos ...........................................................................441 7.1.3 Servidores de nomes ............................................................................444 7.2 Correio eletrnico .......................................................................................445 7.2.1 Arquitetura e servios ..........................................................................447 7.2.2 O agente do usurio .............................................................................448 O envio de mensagens de correio eletrnico .............................................448 Leitura de correio eletrnico .....................................................................449 7.2.3 Formatos de mensagens .......................................................................450 RFC 822 ......................................................................................................450 MIME Multipurpose Internet Mail Extensions ......................................451 7.2.4 Transferncia de mensagens ................................................................456 SMTP Simple Mail Transfer Protocol .....................................................456 7.2.5 Entrega final .........................................................................................458 POP3 ...........................................................................................................458 IMAP ...........................................................................................................460 Caractersticas de entrega .........................................................................461 Webmail ......................................................................................................462 7.3 A World Wide Web ......................................................................................462 7.3.1 Viso geral da arquitetura ....................................................................463 O lado cliente..............................................................................................465 O lado servidor ...........................................................................................468
  10. 10. URLs Uniform Resource Locators ..........................................................471 Ausncia de estados e cookies ...................................................................473 7.3.2 Documentos estticos da Web ..............................................................475 HTML HyperText Markup Language .....................................................476 T4] Formulrios ..........................................................................................480 XML e XSL ..................................................................................................483 XHTML eXtended HyperText Markup Language ...................................486 7.3.3 Documentos dinmicos da Web ............................................................486 Gerao dinmica de pginas da Web do lado servidor .............................486 Gerao dinmica de pginas da Web do lado cliente ...............................489 7.3.4 HTTP HyperText Transfer Protocol ..................................................493 Conexes ....................................................................................................493 Mtodos ......................................................................................................493 Cabealhos de mensagens .........................................................................495 Exemplo e utilizao do HTTP ...................................................................496 7.3.5 Aperfeioamentos de desempenho .......................................................497 Armazenamento em cache .........................................................................497 Replicao de servidores ............................................................................499 Redes de entrega de contedo ...................................................................499 7.3.6 A Web sem fios .....................................................................................501 WAP Wireless Application Protocol ........................................................501 I-Mode ........................................................................................................503 Web sem fio da segunda gerao ...............................................................507 7.4 Multimdia ..................................................................................................509 7.4.1 Introduo ao udio digital ..................................................................509 7.4.2 Compactao de udio .........................................................................511 7.4.3 udio de fluxo .......................................................................................513 7.4.4 Rdio da Internet .................................................................................515 7.4.5 Voz sobre IP ..........................................................................................517 H.323 ..........................................................................................................518 SIP Session Initiation Protocol ...............................................................520 Comparao entre H.323 e SIP ..................................................................522 7.4.6 Introduo ao vdeo ..............................................................................522 Sistemas analgicos ...................................................................................522 Sistemas digitais ........................................................................................524 7.4.7 Compactao de vdeo ..........................................................................525 O padro JPEG ............................................................................................525 O padro MPEG ..........................................................................................528 7.4.8 Vdeo por demanda ...............................................................................531 Servidores de vdeo ....................................................................................532 A rede de distribuio ................................................................................534 7.4.9 MBone Multicast Backbone .............................................................536 7.5 Resumo .......................................................................................................539 Problemas .........................................................................................................539 Captulo 8. Segurana de redes ......................................................................................... ............543 8.1 Criptografia ................................................................................................545 8.1.1 Introduo criptografia .....................................................................545 8.1.2 Cifras de substituio ...........................................................................547 8.1.3 Cifras de transposio ..........................................................................548 8.1.4 Chave nica ..........................................................................................549 Criptografia quntica .................................................................................550 8.1.5 Dois princpios fundamentais da criptografia ......................................552 Redundncia ...............................................................................................553 Atualidade ..................................................................................................554
  11. 11. 8.2 Algoritmos de chave simtrica ...................................................................554 8.2.1 DES Data Encryption Standard ........................................................555 DES triplo ...................................................................................................557 8.2.2 AES Advanced Encryption Standard ................................................557 Rijndael ......................................................................................................558 8.2.3 Modos de cifra ......................................................................................560 O modo Electronic Code Book ....................................................................560 Modo de encadeamento de blocos de cifras ..............................................561 Modo de feedback de cifra .........................................................................561 Modo de cifra de fluxo ................................................................................562 Modo de contador ......................................................................................563 8.2.4 Outras cifras .........................................................................................564 8.2.5 Criptoanlise ........................................................................................564 8.3 Algoritmos de chave pblica ......................................................................565 8.3.1 RSA .......................................................................................................566 8.3.2 Outros algoritmos de chave pblica .....................................................567 8.4 Assinaturas digitais ....................................................................................567 8.4.1 Assinaturas de chave simtrica ............................................................568 8.4.2 Assinaturas de chave pblica ...............................................................569 8.4.3 Sumrios de mensagens .......................................................................570 MD5.............................................................................................................571 SHA-1 .........................................................................................................571 8.4.4 Ataque de aniversrio ...........................................................................573 8.5 Gerenciamento de chaves pblicas ............................................................574 8.5.1 Certificados ..........................................................................................575 8.5.2 X.509 ....................................................................................................576 8.5.3 Infra-estruturas de chave pblica ........................................................577 Diretrios ...................................................................................................578 Revogao ..................................................................................................578 8.6 Segurana da comunicao ........................................................................579 8.6.1 IPsec .....................................................................................................579 8.6.2 Firewalls ...............................................................................................582 8.6.3 Redes privadas virtuais ........................................................................584 8.6.4 Segurana sem fios ..............................................................................585 Segurana de redes 802.11 ........................................................................585 Segurana do Bluetooth .............................................................................587 Segurana do WAP 2.0 ...............................................................................588 8.7 Protocolos de autenticao .........................................................................588 8.7.1 Autenticao baseada em uma chave secreta compartilhada .............589 8.7.2 Como estabelecer uma chave compartilhada: A troca de chaves de Diffie-Hellman ...............................................................................................593 8.7.3 Autenticao com o uso de um centro de distribuio de chaves ........594 8.7.4 Autenticao com a utilizao do Kerberos .........................................597 8.7.5 Autenticao com a criptografia de chave pblica ..............................598 8.8 Segurana de correio eletrnico ................................................................599 8.8.1 PGP Pretty Good Privacy ..................................................................599 8.8.2 PEM Privacy Enhanced Mail ............................................................602 8.8.3 S/MIME ................................................................................................603 8.9.1 Ameaas ...............................................................................................603 8.9.2 Nomenclatura segura ...........................................................................604 Spoofing de DNS ........................................................................................604 DNS seguro ................................................................................................606 Nomes de certificao automtica .............................................................608 8.9.3 SSL Secure Sockets Layer ...............................................................609
  12. 12. 8.9.4 Segurana do cdigo mvel .................................................................612 Segurana de miniaplicativos Java .............................................................612 ActiveX .......................................................................................................613 JavaScript ...................................................................................................613 Vrus ...........................................................................................................613 8.10 Questes sociais .......................................................................................614 8.10.1 Privacidade .........................................................................................614 Repostadores annimos .............................................................................614 8.10.2 Liberdade de expresso .....................................................................616 Esteganografia ...........................................................................................617 8.10.3 Direitos autorais..................................................................................619 8.11 Resumo .....................................................................................................620 Problemas .........................................................................................................621 Captulo 9.Sugestes de leitura e bibliografia ............................................................................... .624 9.1 Sugestes de leitura adicional ....................................................................624 9.1.1 Introduo e trabalhos genricos .........................................................625 9.1.2 A camada fsica .....................................................................................626 9.1.3 A camada de enlace de dados...............................................................627 9.1.4 A subcamada de controle de acesso ao meio .......................................628 9.1.5 A camada de rede .................................................................................629 9.1.6 A camada de transporte .......................................................................629 Bibliografia em ordem alfabtica......................................................................632
  13. 13. Dedicatria A Suzanne, Barbara, Marvin e memria de Bram e Sweetie
  14. 14. Outros ttulos de sucesso de Andrew S. Tanenbaum Distributed Systems: Principles and Paradigms Esse novo livro, em co-autoria com Maarten van Steen, aborda tanto os conceitos fundamentais quanto os paradigmas dos modernos sistemas distribudos. Na primeira parte, ele focaliza em detalhes os princpios de comunicao, processos, nomenclatura, sincronizao, consistncia e replicao, tolerncia a falhas e segurana. Em seguida, na segunda parte, se aprofunda em diferentes paradigmas utilizados para elaborar sistemas distribudos, inclusive sistemas orientados a objetos, sistemas de arquivos distribudos, sistemas orientados a documentos e sistemas baseados em coordenao. Numerosos exemplos so discutidos extensivamente. Modern Operating Systems, 2 edio Esse texto completo estuda em detalhes os conceitos fundamentais Sistemas operacionais modernos e os ilustra com numerosos exemplos reais. Aps um captulo introdutrio, os cinco captulos seguintes lidam com os conceitos bsicos: processos e threads, impasses(deadlocks), gerenciamento de memria, entrada/sada e sistemas de arquivos. Os prximos seis captulos lidam de material mais avanado, incluindo sistemas de multimdia, sistemas de vrios processadores, segurana. Por fim, so apresentados dois estudos de casos detalhados: UNIX/Linux e Windows 2000. Structured Computer Organization, 4 edio Esse clssico, um grande sucesso que est agora em sua quarta edio, oferece a introduo ideal arquitetura de computadores. Ele aborda o assunto com uma estratgia de fcil compreenso, estudando-o de baixo para cima. H um captulo sobre lgica digital para iniciantes, seguido por captulos sobre microarquitetura, sobre o nvel de arquiteturas de conjuntos de instrues, sistemas operacionais, linguagem assembly e arquiteturas de computadores paralelos. Operating Systems: Design and Implementation, 2 edio Esse texto popular sobre sistemas operacionais, escrito em parceria com Albert S. Woodhull o nico livro que abrange os conceitos fundamentais de sistemas operacionais e tambm sua aplicao a um sistema real. Todos os tpicos tradicionais de sistemas operacionais so estudados em detalhes. Alm disso, os conceitos bsicos so cuidadosamente ilustrados com o MINIX, um sistema operacional gratuito baseado no POSIX, semelhante ao UNIX, para computadores pessoais. Cada exemplar inclui um CD-R OM gratuito, contendo o sistema MINIX completo, inclusive todo o cdigo-fonte. O cdigo-fonte est listado em um apndice do livro e explicado em detalhes no texto. Sobre o autor Andrew S. Tanenbaum bacharel em cincias pelo M.I.T e Ph.D. pela University of California em Berkeley. Atualmente, professor de cincia da computao na Vrije Universiteit em Amsterdam, Holanda, onde lidera o Computer Systems Group. Ele tambm decano da Advanced School for Computing and Imaging, um programa interuniversitrio em nvel de ps-graduao, que desenvolve pesquisas sobre sistemas paralelos avanados, distribudos e de imagens. No entanto, Tanenbaum vem tentando de todas as formas no se tornar um burocrata. No passado, ele desenvolveu pesquisas sobre compiladores, sistemas operacionais, interligao de redes e sistemas distribudos locais. Sua rea de pesquisa atual tem como foco principal o projeto e a implementao de sistemas geograficamente distribudos que alcanam um bilho de usurios. Essa pesquisa, que est sendo realizada em conjunto com o professor Maarten van Steen, descrita em www.cs.vu.nl/globe. Em conjunto, todos esses projetos de pesquisa j produziram mais de 100 artigos em peridicos cientficos e conferncias, alm de cinco livros. O professor Tanenbaum tambm j produziu um considervel volume de software. Ele foi o principal projetista do Amsterdam Compiler Kit, um kit de ferramentas para o desenvolvimento de compiladores portteis amplamente utilizado, como tambm do MINIX, um pequeno clone do UNIX, destinado ao uso em laboratrios de programao para estudantes. Esse sistema forneceu a inspirao e a base sobre a qual foi desenvolvido o Linux. Juntamente com seus alunos do curso de doutorado e outros programadores, ele ajudou a desenvolver o sistema operacional distribudo
  15. 15. Amoeba, um sistema operacional distribudo baseado na utilizao de um microkernel de alto desempenho. Agora, os MINIX e Amoeba esto disponveis gratuitamente na Internet. Aps conclurem o curso, geralmente seus alunos de doutorado seguem carreiras ainda mais brilhantes, o que o deixa muito orgulhoso. O professor Tanenbaum membro do conselho da ACM, membro do conselho do IEEE e membro da Royal Netherlands Academy of Arts and Sciences; em 1994, ele recebeu da ACM o Karl V. Karlstrom Outstanding Educator Award. Tanenbaum tambm recebeu em 1997 da ACM/SIGCSE o Award for Outstanding Contributions to Computer Science Education e o prmio Texty de 2002 por excelncia em livros didticos. Ele tambm faz parte da lista Whos Who in the World. Sua home page na World Wide Web est no URL http://www.cs.vu.nl/~ast Prefcio Este livro j est em sua quarta edio. Cada edio correspondeu a uma fase distinta na forma como as redes de computadores eram utilizadas. Quando a primeira edio americana foi lanada em 1980, as redes eram uma curiosidade acadmica. Em 1988, ano da segunda edio, as redes estavam sendo usadas por universidades e grandes empresas. Na poca em que a terceira edio foi lanada, em 1996, as redes de computadores, especialmente a Internet, j haviam se tornado uma realidade diria para milhes de pessoas. O novo item na quarta edio o rpido crescimento das redes sem fio, em suas muitas formas. O quadro das redes mudou radicalmente desde a terceira edio. Em meados da dcada de 1990, existiam numerosos tipos de LANs e WANs, alm de vrias pilhas de protocolos. Em 2003, a nica LAN instalada com ampla utilizao era a Ethernet, e virtualmente todas as LANs estavam na Internet. De acordo com isso, foi removida deste livro um a grande quantidade de material sobre essas redes mais antigas. Entretanto, tambm h uma grande quantidade de novos desenvolvimentos. O mais importante o enorme crescimento das redes sem fios, incluindo 802.11, loops locais sem fios, redes celulares 2G e 3G, Bluetooth, WAP, i-mode e outras. Acompanhando essa tendncia, foi inclu da neste volume uma grande quantidade de material sobre redes sem fios. Outro tpico que se tornou importante recentemente a segurana; assim, foi acrescentado um captulo inteiro sobre esse assunto. Apesar de o Captulo 1 ter a mesma funo introdutria que tinha na terceira edio, o contedo foi completamente revisado e atualizado. Por exemplo, so dadas nesse captulo introdues Internet, Ethernet e LANs sem fios, juntamente com um pouco de histria e fundamentos bsicos. O captulo tambm discute brevemente as redes domsticas. O Captulo 2 foi um tanto reorganizado. Aps uma breve introduo aos princpios de comunicao de dados, h trs sees importantes sobre transmisso (meios guiados, sem fios e por satlite) seguidos por trs outros em exemplos importantes (o sistema de telefonia pblica comutada, o sistema de telefonia mvel e a televiso a cabo). Entre os novos tpicos abordados neste captulo esto ADSL, difuso sem fios, MANs sem fios e acesso Internet atravs de cabo e DOCSIS. O Captulo 3 sempre tratou dos princpios fundamentais de protocolos ponto a ponto. Essas idias so essencialmente atemporais e no mudaram durante dcadas. assim, a srie de exemplos de talhados de protocolos apresentados neste captulo permanece em grande parte inalterada desde a terceira edio. Em contraste, a subcamada MAC tem sido uma rea de grande atividade nos ltimos anos; assim, muitas mudanas esto presentes no Captulo 4. A seo sobre Ethernet foi expandida para incluir o gigabit Ethernet. Completamente novas, so as sees importantes sobre redes sem fios, difuso sem fios, Bluetooth e comutao da camada de enlace de dados, inclusive MPLS. O Captulo 5 tambm foi atualizado, com a remoo de todo o material sobre ATM e a incluso de material adicional sobre a Internet. A qualidade do servio tambm agora um tpico importante, incluindo discusses de servios integrados e servios diferenciados. As redes sem fios tambm esto presentes aqui, como uma discusso do roteamento em redes ad hoc. Outros tpicos novos incluem NAT e redes no hierrquicas (peer-to-peer).
  16. 16. O Captulo 6 ainda trata da camada de transporte, mas tambm h grandes mudanas. Entre elas encontra-se um exemplo de programao de soquetes. Um cliente de uma pgina e um servidor de uma pgina so apresentados em C e discutidos. Juntos, eles fornecem um servidor primitivo de arquivos remotos ou da Web, disponvel para experimentao. Outros novos tpicos incluem chamada de procedimentos remotos, RTP e transaction-TCP. O Captulo 7, que descreve a camada de aplicao, ficou mais nitidamente concentrado. Aps uma curta introduo ao DNS, o restante do captulo lida com apenas trs tpicos: e-mail, a Web e multimdia. Porm, cada tpico tratado com muitos detalhes. A descrio do funcionamento da Web tem agora mais de 60 pginas, cobrindo uma ampla variedade de tpicos, inclusive pginas da Web estticas e dinmicas, HTTP, scripts da CGI, redes de entrega de contedo, cookies e caches da Web. Tambm h material sobre como escrever pginas da Web modernas, incluindo breves introdues a XML, XSL, XTML, PHP e muito mais, todas com exemplos que podem se r testados. A Web sem fios tambm discutida, focalizando o i-mode e o WAP. O material sobre multimdia inclui agora MP3, streaming audio, rdio pela Internet e voz sobre IP. A segurana se tornou to importante que agora foi expandida para ocupar um captulo completo com mais de 100 pginas. Ele abrange os princpios de segurana (algoritmos simtricos e de chave pblica, assinaturas digitais e certificados X.509) e as aplicaes desses princpios (autenticao, segurana de correio eletrnico e segurana na Web). O captulo ao mesmo tempo amplo (variando desde criptografia quntica at censura governamental) e profundo (por exemplo, com detalhes sobre o funcionamento do SHA-1). O Captulo 9 contm uma lista totalmente nova de leituras sugeridas e uma bibliografia completa, com mais de 350 citaes sobre a literatura atual. Mais de 200 dessas citaes se referem a artigos e livros escritos a partir do ano 2000. Os livros de informtica esto repletos de acrnimos. E este no exceo. Quando tiver concludo a leitura deste volume, todas estas siglas tero um sentido claro para voc: ADSL, AES, AM PS, AODV, ARP, ATM, BGP, CDMA, CDN, CGI, CIDR, DCF, DES, DHCP, DMCA, FDM, FHSS, GPRS, GSM, HDLC, HFC, HTML, HTTP, ICMP, IMAP, ISP, ITU, LAN, LMDS, MAC, MACA, MIME, MPEG, MPLS, MTU, NAP, NAT, NSA, NTSC, OFDM, OSPF, PCF, PCM, PGP, PH P, PKI, POTS, PPP, PSTN, QAM, QPSK, RED, RFC, RPC, RSA, RSVP, RTP, SSL, TCP, TDM, UDP, URL, UTP, VLAN, VPN, VSAT, WAN, WAP, WDMA, WEP, WWW e XML. Mas no se preocupe. Cada um desses acrnimos ser cuidadosamente definido antes de ser usado. Para ajudar os instrutores a utilizarem este livro como um texto para um curso de treinamento, o autor preparou os seguintes complementos para auxlio ao ensino, incluindo: Um manual de solues de problemas. Arquivos contendo as figuras em vrios formatos. Transparncias do PowerPoint para um curso com a utilizao do livro. Um simulador (escrito em C) para os exemplos de protocolos do Captulo 3. Uma pgina da Web com links para muitos tutoriais, organizaes, FAQs etc. O manual de solues est disponvel diretamente na Prentice Hall (mas somente para instrutores, no para alunos). Todo o material restante encontra-se no Web site do livro: http://www.prenhall.com/tanenbaum. Quando estiver l, clique na capa do livro. Muitas pessoas me ajudaram durante o curso da quarta edio. Gostaria de agradecer especialmente s seguintes pessoas: Ross Anderson, Elizabeth Belding- Royer, Steve Bellovin, Chatsc hik Bisdikian, Kees Bot, Scott Bradner, Jennifer Bray, Pat Cain, Ed Felten, Warwick Ford, Kevin Fu, Ron Fulle, Jim Geier, Mario Gerla, Natalie Giroux, Steve Hanna, Jeff Hayes, Amir Herzberg, Philip Homburg, Philipp Hoschka, David Green, Bart Jacobs, Frans Kaashoek, Steve Kent, Roger Kermode, Robert Kinicki, Shay Kutten, Rob Lanphier, Marcus Leech, Tom Maufer, Brent Miller, Shivakant Mishra, Thomas Nadeau, Shlomo Ovadia, Kaveh Pahlavan, Radia PerIman, Guillaume Pierre, Wayne Pleasant, Patrick Po well, Thomas Robertazzi, Medy Sanadidi, Christian Schmutzer, Henning Schulzrinne, Pa ul Sevinc, Mihail Sichitiu, Bernard Sk lar, Ed Skoudis, Bob Strader, George Swallow, George Thiruvathukal, Peter Tomsu, Patrick Verkaik, Dave Vittali, Spyros Voulgaris, Jan-Mark Wams, Ruediger Weis, Bert Wijnen, Joseph Wilkes, Leendert van Doorn e Maarten van Steen. Agradecimentos especiais a Trudy Levine, por provar que as avs so capazes de fazer um
  17. 17. excelente tr abalho de reviso de material tcnico. Shivakant Mishra elaborou muitos prob lemas desafiantes para os finais de captulos. Andy Dornan sugeriu leituras ad icionais para o Captulo 9. Jan Looyen forneceu hardware essencial em um momento crtico. O dr. F. de Nies fez um timo trabalho de recorte e colagem, ex atamente quando foi necessrio. Minha editora na Prentice Hall, Mary Franz, me ofereceu mais material de leitura do que eu havia consumido nos sete anos anteriores, e tambm foi til em vrios outros aspectos. Por fim, chegamos s pessoas mais importantes: Suzanne, Barbara e Marvin. A Suzanne, por seu amor, sua pacincia e seus almoos no campo. A Barbara e Marvin por serem divertidos e alegres o tempo todo (exceto quando reclamavam de alguns terrveis livros didticos da faculdade, o que me manteve sempre atento). Obrigado.
  18. 18. Captulo 1. Introduo Cada um dos trs sculos anteriores foi dominado por uma nica tecnologia. O Sculo XVIII foi a poca dos grandes sistemas mecnicos que acompanharam a Revoluo Industrial. O Sculo XIX foi a era das mquinas a vapor. As principais conquistas tecnolgicas do Sculo XX se deram no campo da aquisio, do processamento e da distribuio de informaes. Entre outros desenvolvimentos, vimos a instalao das redes de telefonia em escala mundial, a inveno do rdio e da televiso, o nascimento e o crescimento sem precedentes da indstria de informtica e o lanamento dos satlites de comunicao. Como resultado do rpido progresso tecnolgico, essas reas esto convergindo rapidamente e so cada vez menores as diferenas entre coleta, transporte, armazenamento e processamento de informaes. Organizaes com centenas de escritrios dispersos por uma extensa rea geogrfica podem, com um simples apertar de um boto, examinar o status atual de suas filiais mais remotas. medida que cresce nossa capacidade de colher, processar e distribuir informaes, torna-se ainda maior a de manda por formas de processamento de informaes ainda mais sofisticadas. Apesar de a indstria de informtica ainda ser jovem em comparao a outros setores industriais (por exemplo, o de automveis e o de transportes areos), foi simplesmente espetacular o progresso que os computadores conheceram em um curto perodo de tempo. Durante as duas primeiras dcadas de sua existncia, os sistemas computacionais eram altamente centralizados, em geral instalados em uma grande sala com paredes de vidro, atravs das quais os visitantes podiam contemplar, embevecidos, aquela maravilha eletrnica. Uma empresa de mdio 2porte ou uma universidade contava apenas com um ou dois computadores, enquanto as grandes instituies tinham, no mximo, algumas dezenas. Era pura fico cientfica a idia de que, em apenas 20 anos, haveria milhes de computadores igualmente avanados do tamanho de um selo postal. A fuso dos computadores e das comunicaes teve uma profunda influncia na forma como os sistemas computacionais eram organizados. O conceito de "centro de computao" como uma sala com um grande computador ao qual os usurios levam seu trabalho para processamento agora est completamente obsoleto. O velho modelo de um nico computador atendendo a todas as necessidades computacionais da organizao foi substitudo pelas chamadas redes de computadores, nas quais os trabalhos so realizados por um grande nmero de computadores separados, mas interconectados. A estrutura e a organizao dessas redes so os temas deste livro. Ao longo do livro, utilizaremos a expresso "rede de computadores" quando quisermos mencionar um conjunto de computadores autnomos interconectados por uma nica tecnologia. Dois computadores esto interconectados quando podem trocar informaes. A conexo no precisa ser feita por um fio de cobre; tambm podem ser usadas fibras pticas, microondas, ondas de infravermelho e satlites de comunicaes. Existem redes em muitos tamanhos, modelos e formas, como veremos mais adiante. Embora possa parecer estranho para algumas pessoas, nem a Internet nem a World Wide Web uma rede computadores. No final deste livro, dever ficar claro o motivo dessa afirmao. A resposta simples que a Internet no uma nica rede, mas um a rede de redes, e a Web um sistema distribudo que funciona na Internet. Existe na literatura uma considervel confuso entre uma rede de computadores e um sistema distribudo. A principal diferena entre eles que, em um sistema distribudo, um conjunto de computadores independentes parece ser, para usurios, um nico sistema coerente. Em geral, ele tem um nico modelo ou paradigma que apresenta aos usurios. Com freqncia, uma camada de software sobre o sistema operacional, chamada middleware, responsvel pela implementao desse modelo. Um exemplo bem conhecido de sistema distribudo a World Wide Web, na qual tudo tem a aparncia de um documento (uma pgina da Web). Em uma rede de computadores, essa coerncia, esse modelo e esse software esto ausentes. Os usurios ficam expostos s mquinas reais, sem qualquer tentativa por parte do sistema de fazer as mquinas parecerem e atuarem de modo coerente. Se as mquinas tiverem hardware diferente e sistemas operacionais distintos, isso ser totalmente visvel para os usurios. Se quiser executar um programa em uma mquina remota, o usurio ter de efetuar o logon nessa mquina e executar o programa l. Na prtica, um sistema distribudo um sistema de software instalado em uma rede. O software d ao sistema um alto grau de coeso e transparncia. Conseqentemente, o software (e em
  19. 19. particular o sistema operacional) que determina a diferena entre uma rede e um sistema distribudo, no o hardware. Apesar disso, h uma considervel sobreposio entre os dois assuntos. Por exemplo, os sistemas distribudos e as redes de computadores precisam movimentar arquivos. A diferena est em quem o responsvel pela movimentao, o sistema ou o usurio. Embora este livro seja basicamente dedicado a redes, muitos tpicos tambm so importantes em sistemas distribudos. Para obter mais informaes sobre sistemas distribudos, consulte (Tanenbaum e Van Steen, 2002). 1.1 Usos de redes de computadores Antes de iniciarmos o exame detalhado das questes tcnicas, vale a pena 4dedicar algum tempo a explicar por que as pessoas esto interessadas em redes de computadores e com que finalidade essas redes podem ser usadas. Afinal, se ningum estivesse interessado em redes de computadores, poucas delas seriam elaboradas. Comearemos com os usos tradicionais em empresas e para indivduos, e depois passaremos aos desenvolvimentos mais recentes relacionadas a usurios mveis e a redes domsticas. 1.1.1 Aplicaes comerciais Muitas empresas tm um nmero significativo de computadores. Por exemplo, uma empresa pode ter computadores se parados para monitorar a produo, controlar os estoques e elaborar a folha de pagamento. Inicialmente, cada um desses computadores funcionava isolado dos outros mas, em um determinado momento, a gerncia deve ter decidido conect-los para poder extrair e correlacionar informaes sobre a empresa inteira. Em termos um pouco mais genricos, a questo aqui o compartilhamento de recursos, e o objetivo tornar todos os programas, equipamentos e especialmente dados ao alcance de todas as pessoas na rede, independente da localizao fsica do recurso e do usurio. Um exemplo bvio e bastante disseminado um grupo de funcionrios de um escritrio que compartilham uma impressora comum. Nenhum dos indivduos realmente necessita de uma impressora privativa, e uma impressora de grande capacidade conectada em rede muitas vezes mais econmica, mais rpida e de mais fcil manuteno que um grande conjunto de impressoras individuais. Porm, talvez mais importante que compartilhar recursos fsicos como impressoras, scanners e gravadores de CDs, seja compartilhar informaes. Toda empresa de grande e mdio porte e muitas empresas pequenas tm uma dependncia vital de informaes computadorizadas. A maioria das empresas tem registros de clientes, estoques, contas a receber, extratos financeiros, informaes sobre impostos e muitas outras informaes on-line. Se todos os computadores de um banco sofressem uma pane, ele provavelmente no duraria mais de cinco minutos. Uma instalao industrial moderna, com uma linha de montagem controlada por computadores, no duraria nem isso. Hoje, at mesmo uma pequena agncia de viagens ou um a firma jurdica com trs pessoas depende intensamente de redes de computadores para permitir aos seus funcionrios acessarem informaes e documentos relevantes de forma instantnea. No caso de empresas menores, todo s os computadores provavelmente se encontram em um nico escritrio ou talvez em um nico edifcio; porm, no caso de empresas maiores, os computadores e funcionrios podem estar dispersos por dezenas de escritrios e fbricas em muitos pases. Apesar disso, um vendedor em Nova York s vezes poderia ter necessidade de acessar um banco de dados de estoque de produtos localizado em Cingapura. Em outras palavras, o mero fato de um usurio estar a 15.000 quilmetros de distncia de seus dados no deve impedi-lo de usar esses dados como eles fossem dados locais. Resumindo, trata-se de uma tentativa de pr fim "tirania da geografia". No mais simples dos termos, possvel imaginar que o sistema de informaes de uma empresa consiste em um ou mais bancos de dados e em algum nmero de funcionrios que precisam acess-los remotamente. Nesse modelo, os dados so armazenados em poderoso s computadores chamados servidores. Com freqncia, essas mquinas so instaladas e mantidas em um local central por um administrador de sistemas. Em contraste, os funcionrios tm em suas escrivaninhas mquinas ma is simples, chamadas clientes, com as quais eles acessam dados remotos, por exemplo, para incluir em planilhas eletrnicas que esto elaborando. (Algumas vezes, faremos referncia ao usurio humano da mquina cliente como o "cliente", mas deve ficar claro a
  20. 20. partir do contexto se estamos nos referindo ao computador ou a seu usurio.) As mquinas clientes e servidores so conectadas entre si por uma rede, como ilustra a Figura 1.1. Observe que mostramos a rede como uma simples elipse, sem qualquer detalhe. Utilizaremos essa forma quando mencionarmos uma rede no sentido abstrato. Quando forem necessrios mais detalhes, eles sero fornecidos. Figura 1.1 - Uma rede com dois clientes e um servidor Todo esse arranjo chamado modelo cliente/servidor. Ele amplamente usado e constitui a base da grande utilizao da rede. Ele aplicvel quando o cliente e o servidor esto ambos no mesmo edifcio (por exemplo, pertencem mesma empresa), mas tambm quando esto muito distantes um do outro. Por exemplo, quando uma pessoa em sua casa acessa uma pgina na World Wide Web, empregado o mesmo modelo, com o servidor da Web remoto fazendo o papel do servidor e o computador pessoal do usurio sendo o cliente. Sob a maioria das condies, um nico servidor pode cuidar de um grande nmero de clientes. Se examinarmos o modelo cliente/servidor em detalhes, veremos que h dois processos envolvidos, um na mquina cliente e um na mquina servidora. A comunicao toma a forma do processo cliente enviando uma mensagem pela rede ao processo servidor. Ento, o processo cliente espera por uma mensagem em resposta. Quando o processo servidor recebe a solicitao, ele executa o trabalho solicitado ou procura pelos dados solicitados e envia de volta uma resposta. Essas mensagens so mostradas na Figura 1.2. Figura 1.2 - O modelo cliente/servidor envolve solicitaes e respostas Um segundo objetivo da configurao de uma rede de computadores est relacionado s pessoas, e no s informaes ou mesmo aos computadores. Uma rede de computadores pode oferecer um eficiente meio de comunicao entre os funcionrios. Agora, virtualmente toda empresa que tem dois ou mais computadores tem o recurso de correio eletrnico (e-mail), que os funcionrios utilizam de forma geral para suprir uma grande parte da comunicao diria. De fato, os funcionrios trocam mensagens de e-mail sobre os assuntos mais corriqueiros, mas grande parte das mensagens com que as pessoas lidam diariamente no tem nenhum significado, porque os chefes descobriram que podem enviar a mesma mensagem (muitas vezes sem qualquer contedo) a todos os seus subordinados, bastando pressionar um boto. Contudo, o e-mail no a nica forma de comunicao otimizada que as redes de computadores tornaram possvel. Com uma rede, fcil duas ou mais pessoas que trabalham em locais muito distantes escreverem juntas um relatrio. Quando um trabalhador faz uma mudana em um documento on-line, os outros podem ver a mudana imediatamente, em vez de esperarem vrios dias por uma carta. Tal acelerao facilita a cooperao entre grupos de pessoas distantes entre si, o que antes era impossvel. Outra forma de comunicao auxiliada pelo computador a videoconferncia. Usando essa tecnologia, funcionrios em locais distantes podem participar de uma reunio, vendo e ouvindo uns
  21. 21. aos outros e at mesmo escrevendo em um quadro-negro virtual compartilhado. A videoconferncia uma ferramenta eficiente para eliminar o custo e o tempo anteriormente dedicado s viagens. Algumas vezes, dizemos que a comunicao e o transporte esto disputando uma corrida, e a tecnologia que vencer tornar a outra obsoleta. Um terceiro objetivo para um nmero cada vez maior de empresas realizar negcios eletronicamente com outras em presas, em especial fornecedores e clientes. Por exemplo, fabricantes de automveis, aeronaves e computadores, entre outros, compram subsistemas de diversos fornecedores, e depois montam as peas. Utilizando redes de computadores, os fabricantes podem emitir pedidos eletronicamente, conforme necessrio. A capacidade de emitir pedidos em tempo real (isto , conforme a demanda) reduz a necessidade de grandes estoques e aumenta a eficincia. Um quarto objeto que est comeando a se tornar mais importante o de realizar negcios com consumidores pela Internet. Empresas areas, livrarias e lojas de discos descobriram que muitos clientes apreciam a convenincia de fazer compras em casa. Conseqentemente, muitas empresas fornecem catlogos de suas mercadorias e servios on-line e emitem pedidos on-line. Espera-se que esse setor cresa rapidamente no futuro. Ele chamado comrcio eletrnico (e- commerce). 1.1.2 Aplicaes domsticas Em 1977, Ken Olsen era presidente da Digital Equipment Corporation, ento o segundo maior fornecedor de computadores de todo o mundo (depois da IBM). Quando lhe perguntaram por que a Digital no estava seguindo a tendncia do mercado de computadores pessoais, ele disse: "No h nenhuma razo para qualquer indivduo ter um computador em casa". A histria mostrou o contrrio, e a Digital no existe mais. Por que as pessoas compram computadores para usar em casa? No incio, para processamento de textos e jogos; porm, nos ltimos anos, esse quadro mudou radicalmente. Talvez agora a maior motivao seja o acesso Internet. Alguns dos usos mais populares da Internet para usurios domsticos so: 1. Acesso a informaes remotas. 2. Comunicao entre pessoas. 3. Entretenimento interativo. 4. Comrcio eletrnico. O acesso a informaes remotas tem vrias formas. Ele pode significar navegar na World Wide Web para obter informaes ou apenas por diverso. As informaes disponveis incluem artes, negcios, culinria, governo, sade, histria, passatempos, recreao, cincia, esportes, viagens e muitos outros. A diverso surge sob tantas formas que no podemos mencionar, e tambm se apresenta em outras formas que melhor no mencionarmos. Muitos jornais so publicados on-line e podem ser personalizados. Por exemplo, s vezes possvel solicitar todas as informaes sobre polticos corruptos, grandes incndios, escndalos envolvendo celebridades e epidemias, mas dispensar qualquer notcia sobre esportes. Algumas vezes, at mesmo possvel transferir os artigos selecionados por download para o disco rgido enquanto voc dorme ou imprimi-los na sua impressora pouco antes do caf da manh. medida que essa tendncia continuar, ela causar desemprego macio entre os jovens entregadores de jornais, mas as empresas jornalsticas gostam dela, porque a distribuio sempre foi o elo mais fraco na cadeia de produo inteira. A prxima etapa alm de jornais (e de revistas e peridicos cientficos) a biblioteca digital on-line. Muitas organizaes profissionais, como ACM (www.acm.org) e IEEE Computer Society (www.computer.org), j tm muitos peridicos e anais de conferncias on-line. Outros grupos esto seguindo com rapidez essa tendncia. Dependendo do custo, tamanho e peso de notebooks com dimenses de livros, os livros impressos podero se tornar obsoletos. Os cticos devem observar o efeito que a mquina de impresso teve sobre os manuscritos medievais com iluminuras. Todas as aplicaes anteriores envolvem interaes entre uma pessoa e um banco de dados remoto repleto de informaes. A segunda grande categoria de utilizao de redes a comunicao entre pessoas, basicamente a resposta do Sculo XXI ao telefone do Sculo XIX. O correio eletrnico (e-mail) j usado diariamente por milhes de pessoas em todo o mundo e seu uso est crescendo rapidamente. Em geral, ele j contm udio e vdeo, alm de texto e imagens. O odor talvez demore um pouco mais.
  22. 22. Hoje em dia, qualquer adolescente fantico pela troca de mensagens instantneas. Esse recurso, derivado do programa talk do UNIX, em uso desde aproximadamente 1970, permite que duas pessoas digitem mensagens uma para a outra em tempo real. Uma verso dessa idia para vrias pessoas a sala de bate-papo (ou chat room), em que um grupo de pessoas pode digitar mensagens que sero vistas por todos. Newsgroups (grupos de notcias) mundiais, com discusses sobre todo tpico concebvel, j so comuns entre grupos seletos de pessoas, e esse fenmeno crescer at incluir a populao em gera l. O tom dessas discusses, em que uma pessoa divulga uma mensagem e todos os outros participantes do newsgroup podem ler a mensagem, poder variar de bem-humorado a inflamado. Diferentes das salas de bate-papo, os newsgroups no so de tempo real, e as mensagens so gravadas. Assim, por exemplo, quando algum voltar das frias, todas as mensagens publicadas durante esse perodo estaro bem guardadas, esperando para serem lidas. Outro tipo de comunicao entre pessoas recebe freqentemente o nome de comunicao no hierrquica (peer-to-peer), com o objetivo de distingui-la do modelo cliente/servidor (Parameswaran et al., 2001). Nessa forma de comunicao, indivduos que constituem um grupo livre podem se comunicar com outros participantes do grupo, como mostra a Figura 1.3. Em princpio, toda pessoa pode se comunicar com uma ou mais pessoas; no existe nenhuma diviso fixa entre clientes e servidores. Figura 1.3. Em um sistema no hierrquico no existem clientes e servidores fixos A comunicao no hierrquica realmente alcanou o auge por volta de 2000 com um servio chamado Napster que, em seu pico, teve mais de 50 milhes de fs de msica trocando todos os tipos de msicas, constituindo aquilo que provavelmente foi a maior violao de direitos autorais em toda a histria registrada (Lam e Tan, 2001; Macedonia, 2000). A idia era bastante simples. Os associados registravam em um banco de dados central mantido no servidor Napster a msica que tinham em seus discos rgidos. Se queria uma cano, cada associado verificava no banco de dados quem tinha a cano e ia diretamente at o local indicado para obt-la. Por no manter de fato nenhuma msica em suas mquinas, a Napster argumentou que no estava infringindo os direitos autorais de ningum. Os tribunais no concordaram e fecharam o site e a empresa. Porm, a gerao seguinte de sistemas no hierrquicos eliminou o banco de dados central, fazendo cada usurio manter seu prprio banco de dados local, alm de fornecer uma lista de outras pessoas prximas associadas ao sistema. Um novo usurio pode ento ir at qualquer associado para ver o que ele tem e obter uma lista de outros associados, com a finalidade de examinar outras msicas e outros nomes. Esse processo de pesquisa pode ser repetido indefinidamente, at constituir em um local um grande banco de dados do que existe fora desse local. Essa atividade seria tediosa para as pessoas, mas especialmente adequada para computadores. Tambm existem aplicaes legais para comunicao no hierrquica. Por exemplo, aficionados que compartilham msicas de domnio pblico ou amostras de faixas liberadas por novos conjuntos musicais para fins de publicidade, famlias que compartilham fotografias, filmes e informaes sobre a rvore genealgica, e adolescentes que participam de jogos on-line com vrias pessoas. De fato, uma das aplicaes mais populares de toda a Internet, o correio eletrnico, inerentemente no hierrquica. Espera-se que essa forma de comunicao venha a crescer consideravelmente no futuro.
  23. 23. O crime eletrnico no se restringe a infraes de direitos autorais. Outra rea agitada a dos jogos de apostas eletrnicos. Os computadores tm simulado vrios tipos de atividades durante dcadas. Por que no simular mquinas caa- nqueis, jogos de roleta, mesas de vinte-e-um e outros equipamentos de jogos? Bem, porque isso ilegal em muitos pases. O grande problema que o jogo legal em muitos outros lugares (na Inglaterra, por exemplo) e os donos de cassinos perceberam o potencial para jogos de apostas pela Internet. Ento, o que acontecer se o jogador e o cassino estiverem em pases diferentes, com leis 13conflitantes? Essa uma boa pergunta. Outras aplicaes orientadas a comunicaes incluem a utilizao da Internet para realizar chamadas telefnicas, alm de videotelefonia e rdio pela Internet, trs reas de rpido crescimento. Outra aplicao o ensino distncia (telelearning), que significa freqentar aulas s 8 da manh sem a inconvenincia de ter de sair da cama. No final das contas, o uso de redes para aperfeioar a comunicao entre os seres humanos pode se mostrar mais importante que qualquer dos outros usos. Nossa terceira categoria o entretenimento, uma indstria enorme e que cresce mais e mais a cada dia. A aplicao fundamental nesse caso (aquela que dever orientar todas as outras) o vdeo por demanda. Dentro de aproximadamente uma dcada talvez seja possvel selecionar qualquer filme ou programa de televiso, qualquer que seja a poca ou pas em que tenha sido produzido, e exibi-lo em sua tela no mesmo instante. Novos filmes podero se tornar interativos e ocasionalmente o usurio poder ser solicitado a interferir no roteiro (Macbeth deve matar Duncan ou aguardar o momento propcio?), com cenrios alternativos para todas as hipteses. A televiso ao vivo tambm poder se tornar interativa, com os telespectadores participando de programas de perguntas e respostas, escolhendo entre concorrentes e assim por diante. Por outro lado, talvez a aplicao mais importante no seja o vdeo por demanda, mas sim os jogos. J temos jogos de simulao em tempo real com vrios participantes, como os de esconder em um labirinto virtual, e simuladores de vo em que os jogadores de uma equipe tentam abater os jogadores da equipe adversria. Se os jogos forem praticados com culos de prote