REDES DE COMPUTADORES. ANDREW S. TANENBAUM

7.999 visualizações

Publicada em

Este é o clássico best-seller. Totalmente atualizado abordando as redes sem fio, incluindo 802.11, loops locais sem fio, redes celulares 2G e 3G, Bluetooth, WAP, i-mode e outras. E também apresenta um capítulo inteiro sobre segurança.

Publicada em: Educação
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
7.999
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4.240
Ações
Compartilhamentos
0
Downloads
516
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

REDES DE COMPUTADORES. ANDREW S. TANENBAUM

  1. 1. LEITURA INDICADA SOMENTE PARA FINS EDUCACIONAIS. NÃO DISPENSA A AQUISIÇÃO DO LIVRO ORIGINAL
  2. 2. Redes de computadores Quarta edição Andrew S. Tanenbaum Vrije Universiteit Amsterdam, Holanda Tradução: Vandenberg D. de Souza Analista de sistemas e tradutor Editora Campus Redes de computadores, quarta edição, é a introdução ideal às redes de hoje — e às redes de amanhã. Este best-seller clássico 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™, comunicação sem fios de banda larga, redes ad hoc, i-mode e WAP. Porém as redes fixas não foram ignoradas, com cobertura de ADSL, Internet via cabo, Ethernet de gigabit, redes não hierárquicas, NAT e MPLS. Além disso, existe grande quantidade de material novo sobre aplicações, inclusive mais de 60 páginas sobre a Web, e ainda rádio na Internet, voz sobre IP e vídeo por demanda. Por fim, a cobertura de segurança de redes foi revista e expandida para preencher um capítulo 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 física até a camada de aplicação de nível superior. Tanenbaum focaliza todos estes temas e muitos outros: • Camada física (cobre, fibra óptica, redes sem fios, satélites e Internet via cabo) • Camada de link de dados (conceitos fundamentais de protocolos, verificação de protocolos, HDLC, SLIP e PPP) • Subcamada MAC (Ethernet de gigabit, 802.11, comunicação sem fios de banda larga e comutação) • Camada de rede (algoritmos de roteamento, controle de congestionamento, QoS, lPv4 e IPv6) • Camada de transporte (programação de soquetes, UDP, TCP, RTP e desempenho de redes) • Camada de aplicação (e-mail, a Web, PHP, Web sem fios, MP3 e streaming audio) • Segurança de redes (AES, RSA, criptografia quântica, IPsec e segurança da Web) O livro fornece descrições detalhadas dos princípios associados a cada camada e apresenta muitos exemplos extraídos da Internet e de redes sem fios.
  3. 3. ÍNDICE Prefácio .......................................................................................................................................... ..15 Capítulo 1. Introdução ......................................................................................... ............................18 1.1 Usos de redes de computadores ...................................................................19 1.1.1 Aplicações comerciais ............................................................................19 1.1.2 Aplicações domésticas ............................................................................21 1.1.3 Usuários móveis .....................................................................................24 1.1.4 Questões 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 distribuídas ......................................................31 1.2.4 Redes sem fios ........................................................................................33 1.2.5 Redes domésticas ...................................................................................35 1.2.6 Inter-redes ..............................................................................................36 1.3 Software de rede ..........................................................................................37 1.3.1 Hierarquias de protocolos ......................................................................37 1.3.2 Questões de projeto relacionadas às camadas........................................40 1.3.3 Serviços orientados a conexões e serviços sem conexões .....................41 1.3.4 Primitivas de serviço...............................................................................42 1.3.5 O relacionamento entre serviços e protocolos .......................................44 1.4 Modelos de referência ..................................................................................44 1.4.1 O modelo de referência OSI ...................................................................45 A camada física ............................................................................................45 A camada de enlace de dados ......................................................................46 A camada de rede .........................................................................................46 A camada de transporte ...............................................................................47 A camada de sessão .....................................................................................47 A camada de apresentação ...........................................................................47 A camada de aplicação .................................................................................47 1.4.2 O modelo de referência TCP/IP ..............................................................47 A camada inter-redes ...................................................................................48 A camada de transporte ...............................................................................49 A camada de aplicação .................................................................................49 A camada host/rede ......................................................................................49 1.4.3 Uma comparação entre os mo delos de referência OSI e TCP/IP ..........49 1.4.4 Uma crítica aos protocolos e ao modelo OSI .........................................51 Momento ruim ..............................................................................................51 Tecnologia ruim ............................................................................................52 Implementações ruins ..................................................................................52 Política ruim .................................................................................................52 1.4.5 Uma crítica ao modelo de referência TCP/IP .........................................53 1.5 Exemplos de redes ........................................................................................53 1.5.1 A Internet ...............................................................................................54 A ARPANET ..................................................................................................54 NSFNET........................................................................................................57 Utilização da Internet ...................................................................................59 Arquitetura da Internet.................................................................................60 1.5.2 Redes orientadas a conexões: 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 referência ATM ........................................................................64 1.5.3 Ethernet ..................................................................................................65
  4. 4. 1.5.4 LANs sem fios: 802.11 ............................................................................67 1.6 Padronização de redes ..................................................................................69 1.6.1 Quem é quem no mundo das telecomunicações ....................................69 1.6.2 Quem é quem no mundo dos padrões internacionais ............................71 1.6.3 Quem é quem no mundo dos padrões da Internet .................................72 1.7 Unidades métricas ........................................................................................73 1.8 Visão geral dos outros capítulos do livro ......................................................74 1.9 Resumo .........................................................................................................75 Problemas ...........................................................................................................76 Capítulo 2. A camada física ............................................................................... ..............................78 2.1 A base teórica da comunicação de dados .....................................................79 2.1.1 Análise de Fourier...................................................................................79 2.1.2 Sinais limitados pela largura de banda ..................................................79 2.1.3 Taxa máxima de dados de um canal .......................................................81 2.2 Meios de transmissão guiados ......................................................................82 2.2.1 Meios magnéticos ...................................................................................82 2.2.2 Par trançado ...........................................................................................83 2.2.3 Cabo coaxial ...........................................................................................84 2.2.4 Fibra óptica ............................................................................................84 Transmissão de luz na fibra .........................................................................85 Cabos de fibra ..............................................................................................86 Redes de fibra óptica ....................................................................................87 Comparação entre fibras ópticas e fios de cobre .........................................88 2.3 Transmissão sem fios ....................................................................................89 2.3.1 O espectro eletromagnético ...................................................................90 2.3.2 Transmissão de rádio .............................................................................92 2.3.3 Transmissão de microondas....................................................................93 A política do espectro eletromagnético ........................................................93 2.3.5 Transmissão por ondas de luz ................................................................95 2.4 Satélites de comunicações ............................................................................96 2.4.1 Satélites geoestacionários ......................................................................97 2.4.2 Satélites terrestres de órbita média .......................................................99 2.4.3 Satélites terrestres de baixa órbita ......................................................100 Iridium ........................................................................................................100 Globalstar....................................................................................................101 Teledesic......................................................................................................101 2.4.4 Comparação entre satélites e fibra óptica ...........................................102 2.5 A rede pública de telefonia comutada ........................................................103 2.5.1 Estrutura do sistema telefônico ...........................................................103 2.5.2 A política das companhias telefônicas .................................................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 multiplexação .......................................................................117 Multiplexação por divisão de freqüência ...................................................117 Multiplexação por divisão de comprimento de onda .................................118 Multiplexação por divisão de tempo...........................................................119 SONET/SDH ...............................................................................................122 2.5.5 Comutação ............................................................................................124 Comutação de circuitos ..............................................................................124 Comutação de mensagens ..........................................................................125 Comutação de pacotes ...............................................................................126 2.6 O sistema de telefonia móvel ......................................................................128
  5. 5. 2.6.1 Telefones móveis de primeira geração: voz analógica .........................129 AMPS (Advanced Mobile Phone System) ...................................................129 Canais .........................................................................................................131 Gerenciamento de chamadas .....................................................................131 2.6.2 Telefones móveis de segunda geração: 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 móveis de terceira geração: voz e dados digitais ................139 2.7 Televisão a cabo ..........................................................................................141 2.7.1 CATV (Community Antenna Television) ................................................141 2.7.2 Internet por cabo...................................................................................142 2.7.3 Alocação do espectro ............................................................................143 2.7.4 Modems a cabo .....................................................................................144 2.7.5 ADSL versus cabo .................................................................................146 2.8 Resumo .......................................................................................................147 Problemas .........................................................................................................147 Capítulo 3. A camada de enlace de dados ...................................................................... ...............150 3.1 Questões de projeto da camada de enlace de dados ..................................151 3.1.1 Serviços 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 Detecção e correção de erros .....................................................................157 3.2.1 Códigos de correção de erros ...............................................................157 3.2.2 Códigos de detecção de erros ..............................................................160 3.3 Protocolos elementares de enlace de dados ...............................................163 3.3.1 Um protocolo simplex sem restrições ..................................................166 3.3.2 Um protocolo simplex stop-and-wait ....................................................167 3.3.3 Um protocolo simplex para um canal com ruído ..................................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 retransmissão seletiva .................................181 3.5 Verificação de protocolos ...........................................................................185 3.5.1 Modelos de máquinas 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 Capítulo 4 - A subcamada de controle de acesso ao meio .............................................................198 4.1. O problema de alocação de canais ............................................................199 4.1.1. Alocação estática de canais em LANs e MANs ...................................199 4.1.2 Alocação dinâmica de canais em LANs e MANs ..................................200 4.2 Protocolos de acesso múltiplo ....................................................................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 não persistente ..........................................................204 CSMA com detecção de colisões ................................................................205
  6. 6. 4.2.3 Protocolos livres de colisão ..................................................................207 Um protocolo de mapa de bits ...................................................................207 Contagem regressiva binária .....................................................................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 Codificação Manchester .......................................................................218 4.3.3 O protocolo da subcamada MAC Ethernet ...........................................219 4.3.4 O algoritmo de recuo binário 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 padrão 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 física ........................................................................232 4.4.3 802.11: o protocolo da subcamada MAC ..............................................233 4.4.4 802.11: estrutura de quadro ................................................................237 4.4.5 Serviços ................................................................................................237 4.5 Redes sem fios de banda larga ...................................................................239 4.5.1 Comparação 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 física ........................................................................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 Aplicações do Bluetooth .......................................................................245 4.6.3 A pilha de protocolos do Bluetooth ......................................................246 4.6.4 A camada de rádio 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 Comutação na camada de enlace de dados ................................................249 4.7.1 Pontes entre LANs 802.x e 802.y .........................................................251 4.7.2 Interligação 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 padrão IEEE 802.1Q ...............................................................................261 4.8 Resumo .......................................................................................................263 Problemas .........................................................................................................264 Capítulo 5. A camada de rede....................................................................................................... ..267 5.1 Questões de projeto da camada de rede ....................................................267 5.1.1 Comutação de pacotes store-and-forward.............................................267 5.1.2 Serviços oferecidos à camada de transporte .......................................268 5.1.3 Implementação do serviço sem conexões ............................................269
  7. 7. 5.1.4 Implementação do serviço orientado a conexões .................................270 5.1.5 Comparação entre sub-redes de circuitos virtuais e de datagramas ...271 5.2 Algoritmos de roteamento ..........................................................................272 5.2.1 O princípio de otimização .....................................................................273 5.2.2 Roteamento pelo caminho mais curto ..................................................274 5.2.3 Inundação .............................................................................................276 5.2.4 Roteamento com vetor de distância .....................................................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 Distribuição dos pacotes de estado de enlace ...........................................282 Como calcular as novas rotas .....................................................................283 5.2.6 Roteamento hierárquico .......................................................................284 5.2.7 Roteamento por difusão .......................................................................286 5.2.8 Roteamento por multidifusão................................................................287 5.2.9 Roteamento para hosts móveis ............................................................289 5.2.10 Roteamento em redes ad hoc .............................................................291 Descoberta de rota .....................................................................................291 Manutenção de rotas ..................................................................................293 5.2.11 Pesquisa de nós em redes não hierárquicas ......................................294 5.3.1 Princípios gerais do controle de congestionamento ............................299 5.3.2 Políticas de prevenção 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 advertência ...................................................................................302 Pacotes reguladores ...................................................................................303 Pacotes reguladores hop a hop ..................................................................303 5.3.5 Escoamento de carga ...........................................................................304 Detecção aleatória prematura ....................................................................305 5.3.6 Controle de flutuação............................................................................306 5.4 Qualidade de serviço ..................................................................................307 5.4.1 Requisitos .............................................................................................307 5.4.2 Técnicas para se alcançar boa qualidade de serviço ...........................308 Superdimensionamento ..............................................................................308 Armazenamento em buffers .......................................................................308 Moldagem de tráfego .................................................................................309 O algoritmo de balde furado ......................................................................309 O algoritmo de balde de símbolos ..............................................................310 Reserva de recursos ...................................................................................313 Controle de admissão .................................................................................314 Roteamento proporcional ...........................................................................316 Programação de pacotes ............................................................................316 5.4.3 Serviços integrados ..............................................................................317 RSVP — Resource reSerVation Protocol ....................................................317 5.4.4 Serviços diferenciados .........................................................................319 Encaminhamento expedido ........................................................................320 Encaminhamento garantido .......................................................................320 5.4.5 Troca de rótulos e MPLS3.....................................................................321 5.5 Interligação de redes...................................................................................323 5.5.1 Diferenças 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 Interligação de redes sem conexões ....................................................327 5.5.5 Tunneling ..............................................................................................328 5.5.6 Roteamento inter-redes ........................................................................329 5.5.7 Fragmentação .......................................................................................330 5.6 A camada de rede na Internet ....................................................................333 5.6.1 O protocolo IP .......................................................................................334 5.6.2 Endereços 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 Multidifusão na Internet .......................................................................354 5.6.7 IP móvel ................................................................................................355 5.6.8 IPv6 .......................................................................................................357 O cabeçalho principal do IPv6 ....................................................................358 Cabeçalhos de extensão .............................................................................361 Controvérsias .............................................................................................362 5.7 Resumo .......................................................................................................364 Problemas .........................................................................................................364 Capítulo 6. A camada de transporte ...................................................................... ........................368 6.1 O serviço de transporte ..............................................................................369 6.1.1 Serviços oferecidos às camadas superiores .........................................369 6.1.2 Primitivas do serviço de transporte .....................................................370 6.1.3 Soquetes de Berkeley ...........................................................................372 6.1.4 Um exemplo de programação de soquetes: um servidor de arquivos da Internet ..........................................................................................................373 6.2 Elementos de protocolos de transporte ......................................................376 6.2.1 Endereçamento ....................................................................................377 6.2.2 Estabelecimento de conexões ..............................................................379 6.2.3 Encerramento de conexões ..................................................................383 6.2.4 Controle de fluxo e uso de buffers .......................................................386 6.2.5 Multiplexação .......................................................................................389 6.2.6 Recuperação de desastres ....................................................................390 6.3 Um protocolo de transporte simples ..........................................................392 6.3.1 Exemplo de primitivas de serviço ........................................................392 6.3.2 Exemplo de entidade de transporte .....................................................393 6.3.3 O exemplo sob a forma de máquina de estados finitos ........................397 6.4 Os protocolos de transporte da Internet: UDP ...........................................399 6.4.1 Introdução 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 Introdução ao TCP ................................................................................405 6.5.2 O modelo de serviço do TCP .................................................................405 6.5.3 O protocolo TCP ...................................................................................407 6.5.4 O cabeçalho de segmento do TCP ........................................................407 6.5.5 O estabelecimento de conexões TCP ....................................................410 6.5.7 Modelagem do gerenciamento de conexões do TCP ............................411 6.5.8 Política de transmissão 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 Questões de desempenho ...........................................................................423 6.6.1 Problemas de desempenho em redes de computadores ......................424 6.6.2 Medição do desempenho da rede .........................................................425 Certifique-se de que o tamanho da amostra é grande o bastante .............426 Certifique-se de que as amostras são 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 medições ..............................................427 Entenda o que está medindo ......................................................................427 Tenha cuidado para não 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 número de pacotes para reduzir o overhead do software ......................................................................................................428 Regra n º 3: Minimize as mudanças de contexto .......................................428 Regra n º 4: Minimize o número de cópias ................................................429 Regra n º 5: Você pode adquirir mais largura de banda, mas não 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 rápido de TPDUs .........................................................430 6.6.5 Protocolos para redes de gigabits ........................................................433 6.7 Resumo .......................................................................................................435 Problemas .........................................................................................................436 Capítulo 7. A camada de aplicação ...................................................................................... ..........439 7.1 DNS — Domain Name System ....................................................................439 7.1.1 O espaço de nomes do DNS .................................................................440 7.1.2 Registros de recursos ...........................................................................441 7.1.3 Servidores de nomes ............................................................................444 7.2 Correio eletrônico .......................................................................................445 7.2.1 Arquitetura e serviços ..........................................................................447 7.2.2 O agente do usuário .............................................................................448 O envio de mensagens de correio eletrônico .............................................448 Leitura de correio eletrônico .....................................................................449 7.2.3 Formatos de mensagens .......................................................................450 RFC 822 ......................................................................................................450 MIME — Multipurpose Internet Mail Extensions ......................................451 7.2.4 Transferência de mensagens ................................................................456 SMTP — Simple Mail Transfer Protocol .....................................................456 7.2.5 Entrega final .........................................................................................458 POP3 ...........................................................................................................458 IMAP ...........................................................................................................460 Características de entrega .........................................................................461 Webmail ......................................................................................................462 7.3 A World Wide Web ......................................................................................462 7.3.1 Visão geral da arquitetura ....................................................................463 O lado cliente..............................................................................................465 O lado servidor ...........................................................................................468
  10. 10. URLs — Uniform Resource Locators ..........................................................471 Ausência de estados e cookies ...................................................................473 7.3.2 Documentos estáticos da Web ..............................................................475 HTML — HyperText Markup Language .....................................................476 T4] Formulários ..........................................................................................480 XML e XSL ..................................................................................................483 XHTML — eXtended HyperText Markup Language ...................................486 7.3.3 Documentos dinâmicos da Web ............................................................486 Geração dinâmica de páginas da Web do lado servidor .............................486 Geração dinâmica de páginas da Web do lado cliente ...............................489 7.3.4 HTTP — HyperText Transfer Protocol ..................................................493 Conexões ....................................................................................................493 Métodos ......................................................................................................493 Cabeçalhos de mensagens .........................................................................495 Exemplo e utilização do HTTP ...................................................................496 7.3.5 Aperfeiçoamentos de desempenho .......................................................497 Armazenamento em cache .........................................................................497 Replicação de servidores ............................................................................499 Redes de entrega de conteúdo ...................................................................499 7.3.6 A Web sem fios .....................................................................................501 WAP — Wireless Application Protocol ........................................................501 I-Mode ........................................................................................................503 Web sem fio da segunda geração ...............................................................507 7.4 Multimídia ..................................................................................................509 7.4.1 Introdução ao áudio digital ..................................................................509 7.4.2 Compactação de áudio .........................................................................511 7.4.3 Áudio de fluxo .......................................................................................513 7.4.4 Rádio da Internet .................................................................................515 7.4.5 Voz sobre IP ..........................................................................................517 H.323 ..........................................................................................................518 SIP — Session Initiation Protocol ...............................................................520 Comparação entre H.323 e SIP ..................................................................522 7.4.6 Introdução ao vídeo ..............................................................................522 Sistemas analógicos ...................................................................................522 Sistemas digitais ........................................................................................524 7.4.7 Compactação de vídeo ..........................................................................525 O padrão JPEG ............................................................................................525 O padrão MPEG ..........................................................................................528 7.4.8 Vídeo por demanda ...............................................................................531 Servidores de vídeo ....................................................................................532 A rede de distribuição ................................................................................534 7.4.9 MBone — Multicast Backbone .............................................................536 7.5 Resumo .......................................................................................................539 Problemas .........................................................................................................539 Capítulo 8. Segurança de redes ......................................................................................... ............543 8.1 Criptografia ................................................................................................545 8.1.1 Introdução à criptografia .....................................................................545 8.1.2 Cifras de substituição ...........................................................................547 8.1.3 Cifras de transposição ..........................................................................548 8.1.4 Chave única ..........................................................................................549 Criptografia quântica .................................................................................550 8.1.5 Dois princípios fundamentais da criptografia ......................................552 Redundância ...............................................................................................553 Atualidade ..................................................................................................554
  11. 11. 8.2 Algoritmos de chave simétrica ...................................................................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 Criptoanálise ........................................................................................564 8.3 Algoritmos de chave pública ......................................................................565 8.3.1 RSA .......................................................................................................566 8.3.2 Outros algoritmos de chave pública .....................................................567 8.4 Assinaturas digitais ....................................................................................567 8.4.1 Assinaturas de chave simétrica ............................................................568 8.4.2 Assinaturas de chave pública ...............................................................569 8.4.3 Sumários de mensagens .......................................................................570 MD5.............................................................................................................571 SHA-1 .........................................................................................................571 8.4.4 Ataque de aniversário ...........................................................................573 8.5 Gerenciamento de chaves públicas ............................................................574 8.5.1 Certificados ..........................................................................................575 8.5.2 X.509 ....................................................................................................576 8.5.3 Infra-estruturas de chave pública ........................................................577 Diretórios ...................................................................................................578 Revogação ..................................................................................................578 8.6 Segurança da comunicação ........................................................................579 8.6.1 IPsec .....................................................................................................579 8.6.2 Firewalls ...............................................................................................582 8.6.3 Redes privadas virtuais ........................................................................584 8.6.4 Segurança sem fios ..............................................................................585 Segurança de redes 802.11 ........................................................................585 Segurança do Bluetooth .............................................................................587 Segurança do WAP 2.0 ...............................................................................588 8.7 Protocolos de autenticação .........................................................................588 8.7.1 Autenticação 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 Autenticação com o uso de um centro de distribuição de chaves ........594 8.7.4 Autenticação com a utilização do Kerberos .........................................597 8.7.5 Autenticação com a criptografia de chave pública ..............................598 8.8 Segurança de correio eletrônico ................................................................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 Ameaças ...............................................................................................603 8.9.2 Nomenclatura segura ...........................................................................604 Spoofing de DNS ........................................................................................604 DNS seguro ................................................................................................606 Nomes de certificação automática .............................................................608 8.9.3 SSL — Secure Sockets Layer ...............................................................609
  12. 12. 8.9.4 Segurança do código móvel .................................................................612 Segurança de miniaplicativos Java .............................................................612 ActiveX .......................................................................................................613 JavaScript ...................................................................................................613 Vírus ...........................................................................................................613 8.10 Questões sociais .......................................................................................614 8.10.1 Privacidade .........................................................................................614 Repostadores anônimos .............................................................................614 8.10.2 Liberdade de expressão .....................................................................616 Esteganografia ...........................................................................................617 8.10.3 Direitos autorais..................................................................................619 8.11 Resumo .....................................................................................................620 Problemas .........................................................................................................621 Capítulo 9.Sugestões de leitura e bibliografia ............................................................................... .624 9.1 Sugestões de leitura adicional ....................................................................624 9.1.1 Introdução e trabalhos genéricos .........................................................625 9.1.2 A camada física .....................................................................................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 alfabética......................................................................632
  13. 13. Dedicatória A Suzanne, Barbara, Marvin e à memória de Bram e Sweetie
  14. 14. Outros títulos 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 distribuídos. Na primeira parte, ele focaliza em detalhes os princípios de comunicação, processos, nomenclatura, sincronização, consistência e replicação, tolerância a falhas e segurança. Em seguida, na segunda parte, se aprofunda em diferentes paradigmas utilizados para elaborar sistemas distribuídos, inclusive sistemas orientados a objetos, sistemas de arquivos distribuídos, sistemas orientados a documentos e sistemas baseados em coordenação. Numerosos exemplos são discutidos extensivamente. Modern Operating Systems, 2° edição Esse texto completo estuda em detalhes os conceitos fundamentais Sistemas operacionais modernos e os ilustra com numerosos exemplos reais. Após um capítulo introdutório, os cinco capítulos seguintes lidam com os conceitos básicos: processos e threads, impasses(deadlocks), gerenciamento de memória, entrada/saída e sistemas de arquivos. Os próximos seis capítulos lidam de material mais avançado, incluindo sistemas de multimídia, sistemas de vários processadores, segurança. Por fim, são apresentados dois estudos de casos detalhados: UNIX/Linux e Windows 2000. Structured Computer Organization, 4° edição Esse clássico, um grande sucesso que está agora em sua quarta edição, oferece a introdução ideal à arquitetura de computadores. Ele aborda o assunto com uma estratégia de fácil compreensão, estudando-o de baixo para cima. Há um capítulo sobre lógica digital para iniciantes, seguido por capítulos sobre microarquitetura, sobre o nível de arquiteturas de conjuntos de instruções, sistemas operacionais, linguagem assembly e arquiteturas de computadores paralelos. Operating Systems: Design and Implementation, 2° edição 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 também sua aplicação a um sistema real. Todos os tópicos tradicionais de sistemas operacionais são estudados em detalhes. Além disso, os conceitos básicos são 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 código-fonte. O código-fonte está listado em um apêndice do livro e é explicado em detalhes no texto. Sobre o autor Andrew S. Tanenbaum é bacharel em ciências pelo M.I.T e Ph.D. pela University of California em Berkeley. Atualmente, é professor de ciência da computação na Vrije Universiteit em Amsterdam, Holanda, onde lidera o Computer Systems Group. Ele também é decano da Advanced School for Computing and Imaging, um programa interuniversitário em nível de pós-graduação, que desenvolve pesquisas sobre sistemas paralelos avançados, distribuídos e de imagens. No entanto, Tanenbaum vem tentando de todas as formas não se tornar um burocrata. No passado, ele desenvolveu pesquisas sobre compiladores, sistemas operacionais, interligação de redes e sistemas distribuídos locais. Sua área de pesquisa atual tem como foco principal o projeto e a implementação de sistemas geograficamente distribuídos que alcançam um bilhão de usuários. 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 periódicos científicos e conferências, além de cinco livros. O professor Tanenbaum também já produziu um considerável volume de software. Ele foi o principal projetista do Amsterdam Compiler Kit, um kit de ferramentas para o desenvolvimento de compiladores portáteis amplamente utilizado, como também do MINIX, um pequeno clone do UNIX, destinado ao uso em laboratórios de programação para estudantes. Esse sistema forneceu a inspiração 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 distribuído
  15. 15. Amoeba, um sistema operacional distribuído baseado na utilização de um microkernel de alto desempenho. Agora, os MINIX e Amoeba estão disponíveis gratuitamente na Internet. Após concluírem 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 também recebeu em 1997 da ACM/SIGCSE o Award for Outstanding Contributions to Computer Science Education e o prêmio Texty de 2002 por excelência em livros didáticos. Ele também faz parte da lista Who’s Who in the World. Sua home page na World Wide Web está no URL http://www.cs.vu.nl/~ast Prefácio Este livro já está em sua quarta edição. Cada edição correspondeu a uma fase distinta na forma como as redes de computadores eram utilizadas. Quando a primeira edição americana foi lançada em 1980, as redes eram uma curiosidade acadêmica. Em 1988, ano da segunda edição, as redes estavam sendo usadas por universidades e grandes empresas. Na época em que a terceira edição foi lançada, em 1996, as redes de computadores, especialmente a Internet, já haviam se tornado uma realidade diária para milhões de pessoas. O novo item na quarta edição é o rápido crescimento das redes sem fio, em suas muitas formas. O quadro das redes mudou radicalmente desde a terceira edição. Em meados da década de 1990, existiam numerosos tipos de LANs e WANs, além de várias pilhas de protocolos. Em 2003, a única LAN instalada com ampla utilização 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, também 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 tendência, foi incluí da neste volume uma grande quantidade de material sobre redes sem fios. Outro tópico que se tornou importante recentemente é a segurança; assim, foi acrescentado um capítulo inteiro sobre esse assunto. Apesar de o Capítulo 1 ter a mesma função introdutória que tinha na terceira edição, o conteúdo foi completamente revisado e atualizado. Por exemplo, são dadas nesse capítulo introduções à Internet, Ethernet e LANs sem fios, juntamente com um pouco de história e fundamentos básicos. O capítulo também discute brevemente as redes domésticas. O Capítulo 2 foi um tanto reorganizado. Após uma breve introdução aos princípios de comunicação de dados, há três seções importantes sobre transmissão (meios guiados, sem fios e por satélite) seguidos por três outros em exemplos importantes (o sistema de telefonia pública comutada, o sistema de telefonia móvel e a televisão a cabo). Entre os novos tópicos abordados neste capítulo estão ADSL, difusão sem fios, MANs sem fios e acesso à Internet através de cabo e DOCSIS. O Capítulo 3 sempre tratou dos princípios fundamentais de protocolos ponto a ponto. Essas idéias são essencialmente atemporais e não mudaram durante décadas. assim, a série de exemplos de talhados de protocolos apresentados neste capítulo permanece em grande parte inalterada desde a terceira edição. Em contraste, a subcamada MAC tem sido uma área de grande atividade nos últimos anos; assim, muitas mudanças estão presentes no Capítulo 4. A seção sobre Ethernet foi expandida para incluir o gigabit Ethernet. Completamente novas, são as seções importantes sobre redes sem fios, difusão sem fios, Bluetooth e comutação da camada de enlace de dados, inclusive MPLS. O Capítulo 5 também foi atualizado, com a remoção de todo o material sobre ATM e a inclusão de material adicional sobre a Internet. A qualidade do serviço também é agora um tópico importante, incluindo discussões de serviços integrados e serviços diferenciados. As redes sem fios também estão presentes aqui, como uma discussão do roteamento em redes ad hoc. Outros tópicos novos incluem NAT e redes não hierárquicas (peer-to-peer).
  16. 16. O Capítulo 6 ainda trata da camada de transporte, mas também há grandes mudanças. Entre elas encontra-se um exemplo de programação de soquetes. Um cliente de uma página e um servidor de uma página são apresentados em C e discutidos. Juntos, eles fornecem um servidor primitivo de arquivos remotos ou da Web, disponível para experimentação. Outros novos tópicos incluem chamada de procedimentos remotos, RTP e transaction-TCP. O Capítulo 7, que descreve a camada de aplicação, ficou mais nitidamente concentrado. Após uma curta introdução ao DNS, o restante do capítulo lida com apenas três tópicos: e-mail, a Web e multimídia. Porém, cada tópico é tratado com muitos detalhes. A descrição do funcionamento da Web tem agora mais de 60 páginas, cobrindo uma ampla variedade de tópicos, inclusive páginas da Web estáticas e dinâmicas, HTTP, scripts da CGI, redes de entrega de conteúdo, cookies e caches da Web. Também há material sobre como escrever páginas da Web modernas, incluindo breves introduções a XML, XSL, XTML, PHP e muito mais, todas com exemplos que podem se r testados. A Web sem fios também é discutida, focalizando o i-mode e o WAP. O material sobre multimídia inclui agora MP3, streaming audio, rádio pela Internet e voz sobre IP. A segurança se tornou tão importante que agora foi expandida para ocupar um capítulo completo com mais de 100 páginas. Ele abrange os princípios de segurança (algoritmos simétricos e de chave pública, assinaturas digitais e certificados X.509) e as aplicações desses princípios (autenticação, segurança de correio eletrônico e segurança na Web). O capítulo é ao mesmo tempo amplo (variando desde criptografia quântica até censura governamental) e profundo (por exemplo, com detalhes sobre o funcionamento do SHA-1). O Capítulo 9 contém uma lista totalmente nova de leituras sugeridas e uma bibliografia completa, com mais de 350 citações sobre a literatura atual. Mais de 200 dessas citações se referem a artigos e livros escritos a partir do ano 2000. Os livros de informática estão repletos de acrônimos. E este não é exceção. Quando tiver concluído a leitura deste volume, todas estas siglas terão 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 não se preocupe. Cada um desses acrônimos 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 auxílio ao ensino, incluindo: • Um manual de soluções de problemas. • Arquivos contendo as figuras em vários formatos. • Transparências do PowerPoint para um curso com a utilização do livro. • Um simulador (escrito em C) para os exemplos de protocolos do Capítulo 3. • Uma página da Web com links para muitos tutoriais, organizações, FAQs etc. O manual de soluções está disponível diretamente na Prentice Hall (mas somente para instrutores, não 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 edição. 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 avós são capazes de fazer um
  17. 17. excelente tr abalho de revisão de material técnico. Shivakant Mishra elaborou muitos prob lemas desafiantes para os finais de capítulos. Andy Dornan sugeriu leituras ad icionais para o Capítulo 9. Jan Looyen forneceu hardware essencial em um momento crítico. O dr. F. de Nies fez um ótimo trabalho de recorte e colagem, ex atamente quando foi necessário. Minha editora na Prentice Hall, Mary Franz, me ofereceu mais material de leitura do que eu havia consumido nos sete anos anteriores, e também foi útil em vários outros aspectos. Por fim, chegamos às pessoas mais importantes: Suzanne, Barbara e Marvin. A Suzanne, por seu amor, sua paciência e seus almoços no campo. A Barbara e Marvin por serem divertidos e alegres o tempo todo (exceto quando reclamavam de alguns terríveis livros didáticos da faculdade, o que me manteve sempre atento). Obrigado.
  18. 18. Capítulo 1. Introdução Cada um dos três séculos anteriores foi dominado por uma única tecnologia. O Século XVIII foi a época dos grandes sistemas mecânicos que acompanharam a Revolução Industrial. O Século XIX foi a era das máquinas a vapor. As principais conquistas tecnológicas do Século XX se deram no campo da aquisição, do processamento e da distribuição de informações. Entre outros desenvolvimentos, vimos a instalação das redes de telefonia em escala mundial, a invenção do rádio e da televisão, o nascimento e o crescimento sem precedentes da indústria de informática e o lançamento dos satélites de comunicação. Como resultado do rápido progresso tecnológico, essas áreas estão convergindo rapidamente e são cada vez menores as diferenças entre coleta, transporte, armazenamento e processamento de informações. Organizações com centenas de escritórios dispersos por uma extensa área geográfica podem, com um simples apertar de um botão, examinar o status atual de suas filiais mais remotas. À medida que cresce nossa capacidade de colher, processar e distribuir informações, torna-se ainda maior a de manda por formas de processamento de informações ainda mais sofisticadas. Apesar de a indústria de informática ainda ser jovem em comparação a outros setores industriais (por exemplo, o de automóveis e o de transportes aéreos), foi simplesmente espetacular o progresso que os computadores conheceram em um curto período de tempo. Durante as duas primeiras décadas de sua existência, os sistemas computacionais eram altamente centralizados, em geral instalados em uma grande sala com paredes de vidro, através das quais os visitantes podiam contemplar, embevecidos, aquela maravilha eletrônica. Uma empresa de médio 2porte ou uma universidade contava apenas com um ou dois computadores, enquanto as grandes instituições tinham, no máximo, algumas dezenas. Era pura ficção científica a idéia de que, em apenas 20 anos, haveria milhões de computadores igualmente avançados do tamanho de um selo postal. A fusão dos computadores e das comunicações teve uma profunda influência na forma como os sistemas computacionais eram organizados. O conceito de "centro de computação" como uma sala com um grande computador ao qual os usuários levam seu trabalho para processamento agora está completamente obsoleto. O velho modelo de um único computador atendendo a todas as necessidades computacionais da organização foi substituído pelas chamadas redes de computadores, nas quais os trabalhos são realizados por um grande número de computadores separados, mas interconectados. A estrutura e a organização dessas redes são os temas deste livro. Ao longo do livro, utilizaremos a expressão "rede de computadores" quando quisermos mencionar um conjunto de computadores autônomos interconectados por uma única tecnologia. Dois computadores estão interconectados quando podem trocar informações. A conexão não precisa ser feita por um fio de cobre; também podem ser usadas fibras ópticas, microondas, ondas de infravermelho e satélites de comunicações. 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 afirmação. A resposta simples é que a Internet não é uma única rede, mas um a rede de redes, e a Web é um sistema distribuído que funciona na Internet. Existe na literatura uma considerável confusão entre uma rede de computadores e um sistema distribuído. A principal diferença entre eles é que, em um sistema distribuído, um conjunto de computadores independentes parece ser, para usuários, um único sistema coerente. Em geral, ele tem um único modelo ou paradigma que apresenta aos usuários. Com freqüência, uma camada de software sobre o sistema operacional, chamada middleware, é responsável pela implementação desse modelo. Um exemplo bem conhecido de sistema distribuído é a World Wide Web, na qual tudo tem a aparência de um documento (uma página da Web). Em uma rede de computadores, essa coerência, esse modelo e esse software estão ausentes. Os usuários ficam expostos às máquinas reais, sem qualquer tentativa por parte do sistema de fazer as máquinas parecerem e atuarem de modo coerente. Se as máquinas tiverem hardware diferente e sistemas operacionais distintos, isso será totalmente visível para os usuários. Se quiser executar um programa em uma máquina remota, o usuário terá de efetuar o logon nessa máquina e executar o programa lá. Na prática, um sistema distribuído é um sistema de software instalado em uma rede. O software dá ao sistema um alto grau de coesão e transparência. Conseqüentemente, é o software (e em
  19. 19. particular o sistema operacional) que determina a diferença entre uma rede e um sistema distribuído, não o hardware. Apesar disso, há uma considerável sobreposição entre os dois assuntos. Por exemplo, os sistemas distribuídos e as redes de computadores precisam movimentar arquivos. A diferença está em quem é o responsável pela movimentação, o sistema ou o usuário. Embora este livro seja basicamente dedicado a redes, muitos tópicos também são importantes em sistemas distribuídos. Para obter mais informações sobre sistemas distribuídos, consulte (Tanenbaum e Van Steen, 2002). 1.1 Usos de redes de computadores Antes de iniciarmos o exame detalhado das questões técnicas, vale a pena 4dedicar algum tempo a explicar por que as pessoas estão interessadas em redes de computadores e com que finalidade essas redes podem ser usadas. Afinal, se ninguém estivesse interessado em redes de computadores, poucas delas seriam elaboradas. Começaremos com os usos tradicionais em empresas e para indivíduos, e depois passaremos aos desenvolvimentos mais recentes relacionadas a usuários móveis e a redes domésticas. 1.1.1 Aplicações comerciais Muitas empresas têm um número significativo de computadores. Por exemplo, uma empresa pode ter computadores se parados para monitorar a produção, controlar os estoques e elaborar a folha de pagamento. Inicialmente, cada um desses computadores funcionava isolado dos outros mas, em um determinado momento, a gerência deve ter decidido conectá-los para poder extrair e correlacionar informações sobre a empresa inteira. Em termos um pouco mais genéricos, a questão 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 localização física do recurso e do usuário. Um exemplo óbvio e bastante disseminado é um grupo de funcionários de um escritório que compartilham uma impressora comum. Nenhum dos indivíduos realmente necessita de uma impressora privativa, e uma impressora de grande capacidade conectada em rede muitas vezes é mais econômica, mais rápida e de mais fácil manutenção que um grande conjunto de impressoras individuais. Porém, talvez mais importante que compartilhar recursos físicos como impressoras, scanners e gravadores de CDs, seja compartilhar informações. Toda empresa de grande e médio porte e muitas empresas pequenas têm uma dependência vital de informações computadorizadas. A maioria das empresas tem registros de clientes, estoques, contas a receber, extratos financeiros, informações sobre impostos e muitas outras informações on-line. Se todos os computadores de um banco sofressem uma pane, ele provavelmente não duraria mais de cinco minutos. Uma instalação industrial moderna, com uma linha de montagem controlada por computadores, não duraria nem isso. Hoje, até mesmo uma pequena agência de viagens ou um a firma jurídica com três pessoas depende intensamente de redes de computadores para permitir aos seus funcionários acessarem informações e documentos relevantes de forma instantânea. No caso de empresas menores, todo s os computadores provavelmente se encontram em um único escritório ou talvez em um único edifício; porém, no caso de empresas maiores, os computadores e funcionários podem estar dispersos por dezenas de escritórios e fábricas em muitos países. 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 usuário estar a 15.000 quilômetros de distância de seus dados não deve impedi-lo de usar esses dados como eles fossem dados locais. Resumindo, trata-se de uma tentativa de pôr fim à "tirania da geografia". No mais simples dos termos, é possível imaginar que o sistema de informações de uma empresa consiste em um ou mais bancos de dados e em algum número de funcionários que precisam acessá-los remotamente. Nesse modelo, os dados são armazenados em poderoso s computadores chamados servidores. Com freqüência, essas máquinas são instaladas e mantidas em um local central por um administrador de sistemas. Em contraste, os funcionários têm em suas escrivaninhas máquinas ma is simples, chamadas clientes, com as quais eles acessam dados remotos, por exemplo, para incluir em planilhas eletrônicas que estão elaborando. (Algumas vezes, faremos referência ao usuário humano da máquina cliente como o "cliente", mas deve ficar claro a
  20. 20. partir do contexto se estamos nos referindo ao computador ou a seu usuário.) As máquinas clientes e servidores são 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 necessários mais detalhes, eles serão 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 utilização da rede. Ele é aplicável quando o cliente e o servidor estão ambos no mesmo edifício (por exemplo, pertencem à mesma empresa), mas também quando estão muito distantes um do outro. Por exemplo, quando uma pessoa em sua casa acessa uma página na World Wide Web, é empregado o mesmo modelo, com o servidor da Web remoto fazendo o papel do servidor e o computador pessoal do usuário sendo o cliente. Sob a maioria das condições, um único servidor pode cuidar de um grande número de clientes. Se examinarmos o modelo cliente/servidor em detalhes, veremos que há dois processos envolvidos, um na máquina cliente e um na máquina servidora. A comunicação toma a forma do processo cliente enviando uma mensagem pela rede ao processo servidor. Então, o processo cliente espera por uma mensagem em resposta. Quando o processo servidor recebe a solicitação, ele executa o trabalho solicitado ou procura pelos dados solicitados e envia de volta uma resposta. Essas mensagens são mostradas na Figura 1.2. Figura 1.2 - O modelo cliente/servidor envolve solicitações e respostas Um segundo objetivo da configuração de uma rede de computadores está relacionado às pessoas, e não às informações ou mesmo aos computadores. Uma rede de computadores pode oferecer um eficiente meio de comunicação entre os funcionários. Agora, virtualmente toda empresa que tem dois ou mais computadores tem o recurso de correio eletrônico (e-mail), que os funcionários utilizam de forma geral para suprir uma grande parte da comunicação diária. De fato, os funcionários trocam mensagens de e-mail sobre os assuntos mais corriqueiros, mas grande parte das mensagens com que as pessoas lidam diariamente não tem nenhum significado, porque os chefes descobriram que podem enviar a mesma mensagem (muitas vezes sem qualquer conteúdo) a todos os seus subordinados, bastando pressionar um botão. Contudo, o e-mail não é a única forma de comunicação otimizada que as redes de computadores tornaram possível. Com uma rede, é fácil duas ou mais pessoas que trabalham em locais muito distantes escreverem juntas um relatório. Quando um trabalhador faz uma mudança em um documento on-line, os outros podem ver a mudança imediatamente, em vez de esperarem vários dias por uma carta. Tal aceleração facilita a cooperação entre grupos de pessoas distantes entre si, o que antes era impossível. Outra forma de comunicação auxiliada pelo computador é a videoconferência. Usando essa tecnologia, funcionários em locais distantes podem participar de uma reunião, vendo e ouvindo uns
  21. 21. aos outros e até mesmo escrevendo em um quadro-negro virtual compartilhado. A videoconferência é uma ferramenta eficiente para eliminar o custo e o tempo anteriormente dedicado às viagens. Algumas vezes, dizemos que a comunicação e o transporte estão disputando uma corrida, e a tecnologia que vencer tornará a outra obsoleta. Um terceiro objetivo para um número cada vez maior de empresas é realizar negócios eletronicamente com outras em presas, em especial fornecedores e clientes. Por exemplo, fabricantes de automóveis, aeronaves e computadores, entre outros, compram subsistemas de diversos fornecedores, e depois montam as peças. Utilizando redes de computadores, os fabricantes podem emitir pedidos eletronicamente, conforme necessário. A capacidade de emitir pedidos em tempo real (isto é, conforme a demanda) reduz a necessidade de grandes estoques e aumenta a eficiência. Um quarto objeto que está começando a se tornar mais importante é o de realizar negócios com consumidores pela Internet. Empresas aéreas, livrarias e lojas de discos descobriram que muitos clientes apreciam a conveniência de fazer compras em casa. Conseqüentemente, muitas empresas fornecem catálogos de suas mercadorias e serviços on-line e emitem pedidos on-line. Espera-se que esse setor cresça rapidamente no futuro. Ele é chamado comércio eletrônico (e- commerce). 1.1.2 Aplicações domésticas Em 1977, Ken Olsen era presidente da Digital Equipment Corporation, então o segundo maior fornecedor de computadores de todo o mundo (depois da IBM). Quando lhe perguntaram por que a Digital não estava seguindo a tendência do mercado de computadores pessoais, ele disse: "Não há nenhuma razão para qualquer indivíduo ter um computador em casa". A história mostrou o contrário, e a Digital não existe mais. Por que as pessoas compram computadores para usar em casa? No início, para processamento de textos e jogos; porém, nos últimos anos, esse quadro mudou radicalmente. Talvez agora a maior motivação seja o acesso à Internet. Alguns dos usos mais populares da Internet para usuários domésticos são: 1. Acesso a informações remotas. 2. Comunicação entre pessoas. 3. Entretenimento interativo. 4. Comércio eletrônico. O acesso a informações remotas tem várias formas. Ele pode significar navegar na World Wide Web para obter informações ou apenas por diversão. As informações disponíveis incluem artes, negócios, culinária, governo, saúde, história, passatempos, recreação, ciência, esportes, viagens e muitos outros. A diversão surge sob tantas formas que não podemos mencionar, e também se apresenta em outras formas que é melhor não mencionarmos. Muitos jornais são publicados on-line e podem ser personalizados. Por exemplo, às vezes é possível solicitar todas as informações sobre políticos corruptos, grandes incêndios, escândalos envolvendo celebridades e epidemias, mas dispensar qualquer notícia sobre esportes. Algumas vezes, é até mesmo possível transferir os artigos selecionados por download para o disco rígido enquanto você dorme ou imprimi-los na sua impressora pouco antes do café da manhã. À medida que essa tendência continuar, ela causará desemprego maciço entre os jovens entregadores de jornais, mas as empresas jornalísticas gostam dela, porque a distribuição sempre foi o elo mais fraco na cadeia de produção inteira. A próxima etapa além de jornais (e de revistas e periódicos científicos) é a biblioteca digital on-line. Muitas organizações profissionais, como ACM (www.acm.org) e IEEE Computer Society (www.computer.org), já têm muitos periódicos e anais de conferências on-line. Outros grupos estão seguindo com rapidez essa tendência. Dependendo do custo, tamanho e peso de notebooks com dimensões de livros, os livros impressos poderão se tornar obsoletos. Os céticos devem observar o efeito que a máquina de impressão teve sobre os manuscritos medievais com iluminuras. Todas as aplicações anteriores envolvem interações entre uma pessoa e um banco de dados remoto repleto de informações. A segunda grande categoria de utilização de redes é a comunicação entre pessoas, basicamente a resposta do Século XXI ao telefone do Século XIX. O correio eletrônico (e-mail) já é usado diariamente por milhões de pessoas em todo o mundo e seu uso está crescendo rapidamente. Em geral, ele já contém áudio e vídeo, além de texto e imagens. O odor talvez demore um pouco mais.
  22. 22. Hoje em dia, qualquer adolescente é fanático pela troca de mensagens instantâneas. 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 versão dessa idéia para várias pessoas é a sala de bate-papo (ou chat room), em que um grupo de pessoas pode digitar mensagens que serão vistas por todos. Newsgroups (grupos de notícias) mundiais, com discussões sobre todo tópico concebível, já são comuns entre grupos seletos de pessoas, e esse fenômeno crescerá até incluir a população em gera l. O tom dessas discussões, 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 não são de tempo real, e as mensagens são gravadas. Assim, por exemplo, quando alguém voltar das férias, todas as mensagens publicadas durante esse período estarão bem guardadas, esperando para serem lidas. Outro tipo de comunicação entre pessoas recebe freqüentemente o nome de comunicação não hierárquica (peer-to-peer), com o objetivo de distingui-la do modelo cliente/servidor (Parameswaran et al., 2001). Nessa forma de comunicação, indivíduos que constituem um grupo livre podem se comunicar com outros participantes do grupo, como mostra a Figura 1.3. Em princípio, toda pessoa pode se comunicar com uma ou mais pessoas; não existe nenhuma divisão fixa entre clientes e servidores. Figura 1.3. Em um sistema não hierárquico não existem clientes e servidores fixos A comunicação não hierárquica realmente alcançou o auge por volta de 2000 com um serviço chamado Napster que, em seu pico, teve mais de 50 milhões de fãs de música trocando todos os tipos de músicas, constituindo aquilo que provavelmente foi a maior violação de direitos autorais em toda a história registrada (Lam e Tan, 2001; Macedonia, 2000). A idéia era bastante simples. Os associados registravam em um banco de dados central mantido no servidor Napster a música que tinham em seus discos rígidos. Se queria uma canção, cada associado verificava no banco de dados quem tinha a canção e ia diretamente até o local indicado para obtê-la. Por não manter de fato nenhuma música em suas máquinas, a Napster argumentou que não estava infringindo os direitos autorais de ninguém. Os tribunais não concordaram e fecharam o site e a empresa. Porém, a geração seguinte de sistemas não hierárquicos eliminou o banco de dados central, fazendo cada usuário manter seu próprio banco de dados local, além de fornecer uma lista de outras pessoas próximas associadas ao sistema. Um novo usuário pode então ir até qualquer associado para ver o que ele tem e obter uma lista de outros associados, com a finalidade de examinar outras músicas 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. Também existem aplicações legais para comunicação não hierárquica. Por exemplo, aficionados que compartilham músicas de domínio público ou amostras de faixas liberadas por novos conjuntos musicais para fins de publicidade, famílias que compartilham fotografias, filmes e informações sobre a árvore genealógica, e adolescentes que participam de jogos on-line com várias pessoas. De fato, uma das aplicações mais populares de toda a Internet, o correio eletrônico, é inerentemente não hierárquica. Espera-se que essa forma de comunicação venha a crescer consideravelmente no futuro.
  23. 23. O crime eletrônico não se restringe a infrações de direitos autorais. Outra área agitada é a dos jogos de apostas eletrônicos. Os computadores têm simulado vários tipos de atividades durante décadas. Por que não simular máquinas caça- níqueis, jogos de roleta, mesas de vinte-e-um e outros equipamentos de jogos? Bem, porque isso é ilegal em muitos países. 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. Então, o que acontecerá se o jogador e o cassino estiverem em países diferentes, com leis 13conflitantes? Essa é uma boa pergunta. Outras aplicações orientadas a comunicações incluem a utilização da Internet para realizar chamadas telefônicas, além de videotelefonia e rádio pela Internet, três áreas de rápido crescimento. Outra aplicação é o ensino à distância (telelearning), que significa freqüentar aulas às 8 da manhã sem a inconveniência de ter de sair da cama. No final das contas, o uso de redes para aperfeiçoar a comunicação entre os seres humanos pode se mostrar mais importante que qualquer dos outros usos. Nossa terceira categoria é o entretenimento, uma indústria enorme e que cresce mais e mais a cada dia. A aplicação fundamental nesse caso (aquela que deverá orientar todas as outras) é o vídeo por demanda. Dentro de aproximadamente uma década talvez seja possível selecionar qualquer filme ou programa de televisão, qualquer que seja a época ou país em que tenha sido produzido, e exibi-lo em sua tela no mesmo instante. Novos filmes poderão se tornar interativos e ocasionalmente o usuário poderá ser solicitado a interferir no roteiro (Macbeth deve matar Duncan ou aguardar o momento propício?), com cenários alternativos para todas as hipóteses. A televisão ao vivo também 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 aplicação mais importante não seja o vídeo por demanda, mas sim os jogos. Já temos jogos de simulação em tempo real com vários participantes, como os de esconder em um labirinto virtual, e simuladores de vôo em que os jogadores de uma equipe tentam abater os jogadores da equipe adversária. Se os jogos forem praticados com óculos de proteção e imagens tridimensionais de qualidade fotográfica e movimentos em tempo real, teremos uma espécie de realidade virtual compartilhada em escala mundial. Nossa quarta categoria é o comércio eletrônico no sentido mais amplo do termo. A atividade de fazer compras em casa já é popular e permite ao usuário examinar catálogos on-line de milhares de empresas. Alguns desses catálogos logo oferecerão a possibilidade de obter um vídeo instantâneo sobre qualquer produto com um simples clique no nome do produto. Após a compra eletrônica de um produto, caso o cliente não consiga descobrir como usá-lo, poderá ser consultado o suporte técnico on-line. Outra área em que o comércio eletrônico já é uma realidade é o acesso a instituições financeiras. Muitas pessoas já pagam suas contas, administram contas bancárias e manipulam seus investimentos eletronicamente. Sem dúvida, isso crescerá à medida que as redes se tornarem mais seguras. Uma área que praticamente ninguém previu é a de brechós eletrônicos (e-brechó?). Leilões on-line de objetos usados se tornaram uma indústria próspera. Diferente do comércio eletrônico tradicional, que segue o modelo cliente/servidor, os leilões on-line se parecem mais com um sistema não hierárquico, uma espécie de sistema de consumidor para consumidor. Algumas dessas formas de comércio eletrônico utilizam pequenas abreviações baseadas no fato de que "to" e "2" têm a mesma pronúncia em inglês. As mais populares estão relacionadas na Figura 1.4. Figura 1.4. Algumas formas de comércio eletrônico Abreviação Nome completo Exemplo B2C Business-to-consumer Pedidos de livros on-line B2B Business-to-business Fabricante de automóveis solicitando pneus a um fornecedor G2C Government-to-consumer Governo distribuindo eletronicamente formulários de impostos C2C Consumer-to-consumer Leilões on-line de produtos usados Sem dúvida a diversidade de usos de redes de computadores crescerá rapidamente no futuro, e é provável que esse crescimento se dê por caminhos que ninguém é capaz de prever agora. Afinal, quantas pessoas em 1990 previram que o fato de adolescentes digitarem tediosamente pequenas mensagens de texto em telefones celulares enquanto viajavam de ônibus seria uma imensa fábrica de dinheiro para as empresas de telefonia 10 anos depois? No entanto, o serviço de mensagens curtas (short message) é muito lucrativo.
  24. 24. As redes de computadores podem se tornar imensamente importantes para pessoas que se encontram em regiões geográficas distantes, dando a elas o mesmo acesso a serviços que é oferecido às pessoas que vivem em uma grande cidade. O ensino à distância pode afetar de forma radical a educação; as universidades poderão ser nacionais ou internacionais. A telemedicina só agora está começando a se desenvolver (por exemplo, com o monitoramento remoto de pacientes), mas pode vir a ser muito mais importante. Porém, a aplicação fundamental poderá ser algo comum, como usar a câmera da Web (webcam) no refrigerador para verificar se é preciso comprar leite no caminho do trabalho para casa. 1.1.3 Usuários móveis Computadores móveis, como notebooks e PDAs (personal digital assistants), constituem um dos segmentos de mais rápido crescimento da indústria de informática. Muitos usuários desses computadores têm máquinas de desktop no escritório e querem se manter conectados a essa base mesmo quando estão longe de casa ou em trânsito. Tendo em vista que é impossível ter uma conexão por fios em automóveis e aviões, existe um grande interesse em redes sem fios. Nesta seção, examinaremos rapidamente alguns usos das redes sem fios. As redes sem fios têm muitas utilidades. Um uso comum é o escritório portátil. Quando viajam, muitas vezes as pessoas querem usar seu equipamento eletrônico portátil para enviar e receber ligações telefônicas, fax e correio eletrônico, navegar pela Web, acessar arquivos remotos e se conectar a máquinas distantes. Além do mais, elas querem fazer isso enquanto se encontram em qualquer lugar do planeta. Por exemplo, nas conferências de informática de hoje, os organizadores muitas vezes configuram uma rede sem fio na área de conferência. Qualquer pessoa com um notebook e um modem sem fio pode simplesmente ligar o computador e se conectar à Internet, como se o computador estivesse ligado a uma rede de fiação. De modo semelhante, algumas universidades instalam redes sem fios no campus, para que os alunos possam se sentar debaixo das árvores e consultar o catálogo de fichas da biblioteca ou ler seu correio eletrônico. As redes sem fios têm grande valor para frotas de caminhões, táxis, veículos de entrega e funcionários de serviços de assistência técnica, que precisam manter-se em contato com a base de operações da empresa. Por exemplo, em muitas cidades, os motoristas de táxi são homens de negócios independentes, em vez de serem funcionários de uma empresa de táxi. Em algumas dessas cidades, os táxis têm uma tela de vídeo que o motorista pode observar. Ao receber uma chamada, um despachante central digita os pontos de partida e destino. Essa informação é exibida nas telas de vídeo dos motoristas, e também é emitido um aviso sonoro. O primeiro motorista a pressionar um botão na tela de vídeo recebe a chamada. As redes sem fios também são importante s para os militares. Se, de uma hora para outra, for necessário disputar uma guerra em qualquer lugar no mundo, talvez não seja possível contar com a possibilidade de usar a infra-estrutura de rede local. Será melhor levar seu próprio equipamento de rede. Embora as redes sem fios e a computação móvel freqüentemente tenham uma estreita relação, elas não são idêntica s, como mostra a Figura 1.5. Aqui, observamos uma distinção entre redes sem fios fixas e sem fios móveis. Algumas vezes, até mesmo os computadores portáteis podem estar conectados por fios. Por exemplo, se um viajante conecta um notebook à tomada de telefone em um quarto de hotel, ele tem mobilidade sem precisar utilizar uma rede sem fio. Figura 1.5. Combinações de redes se m fios e computação móvel Sem fios Móvel Aplicações Não Não Computadores de desktop em escritórios Não Sim Um notebook usado em um quarto de hotel Sim Não Redes em edifícios mais antigos que não dispõem de fiação Sim Sim Escritório portátil; PDA para registrar o estoque de uma loja Por outro lado, alguns computadores sem fio não são portáteis. Esse é o caso, por exemplo, das empresas sediadas em edifícios antigos, nos quais não há cabeamento de rede para conectar os computadores. Para instalar uma rede sem fio, essas empresas só precisarão adquirir uma pequena caixa com alguns componentes eletrônicos, retirá-la da embalagem e conectar o equipamento. Essa solução pode ser muito mais econômica do que instalar a fiação necessária no edifício. Porém, é claro que também existem as verdadeiras aplicações sem fios móveis, que variam desde o

×