• Nenhum resultado encontrado

Interligacao de Redes Com Tcp_i - Douglas Comer V2

N/A
N/A
Protected

Academic year: 2021

Share "Interligacao de Redes Com Tcp_i - Douglas Comer V2"

Copied!
900
0
0

Texto

(1)
(2)

INTERLIGAÇÃO DE REDES COM TCP/IP

PRINCÍPIOS, PROTOCOLOS E ARQUITETURA

DOUGLAS E. COMER

Volume 1 6a edição

Tradução de Tássia Fernanda Alvarenga Revisão Técnica de Sérgio Guedes

(3)

Do original: Internetworking with TCP/IP: Vol I: Principles, Protocols, and Architecture. 6th edition. Tradução autorizada do idioma inglês da edição publicada por Pearson Education, Inc. Copyright © 2014, 2006, 2000 Pearson Education, Inc.

© 2015, Elsevier Editora Ltda.

Todos os direitos reservados e protegidos pela Lei no 9.610, de 19/02/1998. Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados:

eletrônicos, mecânicos, fotográficos, gravação ou quaisquer outros. Copidesque: Isis Batista Pinto

Revisão: Casa Editorial BBM

Editoração Eletrônica: Estúdio Castellani Freitas Bastos: Freitas Bastos

Elsevier Editora Ltda.

Conhecimento sem Fronteiras

Rua Sete de Setembro, 111 – 16o andar

20050-006 – Centro – Rio de Janeiro – RJ – Brasil Rua Quintana, 753 – 8o andar

04569-011 – Brooklin – São Paulo – SP – Brasil Serviço de Atendimento ao Cliente

0800-0265340

atendimento1@elsevier.com ISBN: 978-85-352-7863-7

ISBN (versão digital): 978-85-352-7864-4 ISBN (edição original): 978-0-13-608530-0

Nota: Muito zelo e técnica foram empregados na edição desta obra. No entanto, podem ocorrer erros de digitação, impressão ou dúvida conceitual. Em qualquer das hipóteses, solicitamos a comunicação ao nosso Serviço de Atendimento ao Cliente, para que possamos esclarecer ou encaminhar a questão.

Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a pessoas ou bens, originados do uso desta publicação.

(4)

CDD: 004.6 CDU: 004.7 Sindicato Nacional dos Editores de Livros, RJ

C725i Comer, Douglas E.

Interligação de redes com TCP/IP / Douglas E. Comer; tradução Tássia Fernanda Alvarenga. – 6. ed. – Rio de Janeiro: Elsevier, 2015.

il.; 28 cm.

Tradução de: Internetworking with TCP/IP, v. 1, 6th edition ISBN 978-85-352-7863-7

1. TCP/IP (Protocolo de rede de computador). I. Título. 14-17850

(5)
(6)

Sobre o autor

Dr. Douglas Comer, ilustre professor de Ciência da Computação na Universidade de Purdue e ex-vice-presidente de Pesquisa da Cisco, é um especialista reconhecido internacionalmente em interligação de redes de computadores, em protocolos TCP/IP e em Internet. Autor de inúmeros artigos de referência e livros técnicos, é um pioneiro no desenvolvimento de currículos de laboratórios para pesquisa e educação.

Autor prolífico, os livros populares de Comer foram traduzidos para mais de quinze línguas e são usados na indústria, assim como na ciência da computação, na engenharia e em departamentos comerciais ao redor do mundo. Sua série de três volumes Interligação de redes com TCP/IP é um marco e revolucionou as redes e seu ensino. Seus livros didáticos e manuais de laboratório inovadores moldaram e continuam a moldar currículos de graduação e pós-graduação.

A precisão e o discernimento dos livros do Dr. Comer refletem sua extensa base de conhecimento de sistemas computacionais. Sua pesquisa abrange tanto hardware como software. Ele criou um sistema operacional completo, escreveu drivers de dispositivo e implementou software de protocolo de rede para computadores convencionais e para processadores de rede. O software resultante tem sido usado pela indústria em diversos produtos.

Comer criou cursos em que hoje leciona sobre protocolos de rede e tecnologias de computador para diversos públicos, incluindo engenheiros e acadêmicos. Seus laboratórios educacionais inovadores permitem a ele e a seus alunos criarem e implementarem protótipos funcionais de grandes e complexos sistemas, medindo o desempenho dos protótipos resultantes. Ele continua a ensinar em indústrias, universidades e participa de conferências no mundo todo. Além disso, Comer presta consultoria em projeto de redes e sistemas de computador a indústrias.

(7)

Por mais de dezoito anos, o professor Comer trabalhou como editor chefe do periódico de pesquisa Software – Practice and Experience. É Fellow da ACM, Fellow da Purdue Teaching Academy e recebedor de diversos prêmios, incluindo um prêmio Usenix Lifetime Achievement.

Outras informações poderão ser encontradas em: www.cs.purdue.edu/people/comer

E informações sobre os livros podem ser encontradas em: www.comerbooks.com

(8)

Prólogo

É um raro prazer ser convidado a escrever um prefácio para a sexta edição do livro já clássico de Doug Comer sobre TCP/IP e Internet. Em 2012, havia quase 3 bilhões de pessoas on-line. Algo como 6,5 bilhões de telefones móveis estavam em uso, e a maior parte deles era formada por “smartphones” com acesso à Internet via rede wireless e Wi-Fi. Na verdade, os sistemas sem fio desviam o tráfego para o Wi-Fi quando isso é possível, a fim de verter carga. Os dados mais recentes da TeleGeography são de que 77 Tbps (terabits por segundo) fluem através da Internet. Um componente substancial do tráfego é o vídeo, mas, cada vez mais, são transferidos grandes arquivos de dados que contêm informação de sequência genética, dados de telescópios, sistemas de sensores, do Grande Colisor de Hádrons e de outros instrumentos científicos.

Aprendemos muito sobre o TCP/IP em muitos contextos, e este texto reúne muito desse conhecimento. Aprendemos que a memória buffer pode não ser nossa amiga se grandes quantidades dela estiverem alocadas em um dispositivo de rede, em que há uma grande queda na capacidade. Este é o chamado problema “buffer bloat”, descrito no Capítulo 11. Quando uma ligação de alta velocidade encontra um link de baixa velocidade, grandes buffers levam um longo tempo para esvaziar indo no sentido de baixa velocidade, o que tem o efeito de aumentar a demora e afeta o controle de fluxo TCP, gerando congestionamento grave, com todo os seus efeitos colaterais negativos. Aprendemos também que existem condições sob as quais o TCP/IP trabalha de forma ineficiente..Estou pensando aqui em ambientes altamente instáveis e com atrasos variáveis. Exemplos incluem a comunicação interplanetária e comunicações táticas (incluindo móvel, bem como militar). Para essas condições, os novos tipos de protocolos, chamados de “atraso e interrupção de rede tolerante” (DTN), são necessários para complementar coisas como TCP. Na verdade, o DTN pode

(9)

ser executado por meio de TCP ou UDP ou virtualmente por qualquer outro subsistema de transmissão. Os protocolos que implementam esse tipo de rede já estão em uso na Estação Espacial Internacional e nos robôs, agora, em Marte!

Novas ideias, tais como Software Defined Networking e o protocolo OpenFlow da Universidade de Stanford, descritos no Capítulo 28, também estão colorindo o futuro da Internet. Embora esses sistemas possam operar para suportar arquiteturas de Internet convencionais, eles também são capazes de ir além das noções convencionais de endereçamento para suportar roteamento baseado em conteúdo, entre outras coisas. Gestão de fluxos fim a fim funciona bem com esses sistemas. Além disso, parece oportuno revisitar a comunicação sem fio e perguntar como os modos de transmissão poderiam influenciar maior evolução da Internet. Imagine satélites “chovendo” IP ou baixando UDP packets em centenas de milhões de receptores. Em contextos terrestres, a capacidade de irradiar 360 graus permite que vários receptores recebam uma transmissão. Avanços no compartilhamento do espectro e no uso de antenas beamforming fazem desta uma área ainda mais rica e interessante para explorar.

A Internet continua a se expandir e a mudar de forma inesperada. Além de dispositivos que os humanos usam, uma nova onda de sensores, câmeras e atuadores está sendo conectada, o que nos dará acesso a controle remoto de tudo, de dados científicos a luzes em um prédio e a processos de fabricação. Referimo-nos aos novos dispositivos como uma Internet das coisas; eles estão descritos no Capítulo 30.

Como acho que este livro demonstra amplamente, a Internet ainda é emocionante. É preciso que muita pesquisa seja realizada em apoio a aplicações novas e desafiadoras, oportunidades de crescimento colaborativo no dia a dia.

Bem-vindo à Internet do século 21, época em que a inovação ainda é a ordem do dia. Este livro fornece a base de que você precisa para entender e participar.

Vint Cerf, Internet Evangelist, Google Presidente, ACM. Março, 2013.

(10)

Prefácio

Interligação de redes e TCP/IP agora dominam toda a rede – até mesmo as empresas de telefonia que antes eram bastiões exclusivas de redes com circuito comutado adotaram a tecnologia IP. Mais duas mudanças revolucionárias estão ocorrendo que contam com internetworking: o paradigma de computação em nuvem e a Internet das coisas. No modelo de nuvem, computação e armazenamento são realizados em centros de dados em nuvem. Os usuários contam com a Internet para fazer upload, download, acessar suas informações e compartilhar dados com outras pessoas. A expressão Internet das coisas é utilizada para caracterizar uma Internet de dispositivos com inteligência incorporada que atuam de forma autônoma, em vez de dispositivos, como smartphones e laptops, que são operados por um ser humano. Usar a tecnologia da Internet permite aos dispositivos embarcados a comunicação com os servidores remotos, bem como entre si; a infraestrutura cibernética resultante já inclui dispositivos em residências, escritórios e lojas, bem como sensores que medem as condições ambientais e estruturas civis, como pontes e barragens.

Muitos leitores pediram que o texto fosse atualizado para refletir as mudanças recentes, sugerindo temas e ênfases específicos. Vinte anos após sua invenção, o IPv6 finalmente está ganhando aceitação. Voz e vídeo substituíram transferência de arquivos como os principais usos da Internet. A sexta edição atende às sugestões dos leitores por meio da reorganização e atualização de capítulos existentes e da introdução de material novo. Em particular, capítulos sobre as primeiras aplicações de Telnet e FTP foram eliminados para abrir espaço para material mais recente. Um novo capítulo sobre a Internet das coisas considera o uso do TCP/IP em uma rede de sensores sem fio. Um novo capítulo sobre redes definidas por software examina o uso de OpenFlow que, embora não seja um padrão IETF, se tornou uma parte importante na gestão de rede e de Internet.

(11)

Para atender a um pedido muitas vezes repetido, o capítulo sobre camadas de protocolos foi movido mais para o início do texto. Os instrutores são avisados, no entanto, de que a estratificação em camadas não é uma arquitetura rígida que explica todos os protocolos. Os alunos devem vê-la como uma diretriz básica, mas um pouco simplista, que nos ajuda a entender os protocolos. No Capítulo 30, por exemplo, aprendemos que os protocolos para uma route-over mesh graduam os limites entre camadas pela adição de shims e misturam encaminhamento de IP com alcançabilidade da Camada 2. Cada capítulo foi atualizado para focar as ideias e tecnologias que estão sendo utilizadas atualmente na Internet. A alteração mais significativa consiste na integração da discussão do IPv-6 com o IPv-4. Nos capítulos, descreve-se um princípio, explica-se o projeto geral, e então expõe-se como o princípio é aplicado aos IPv4 e IPv-6. Os leitores verão que essas duas versões de IP estão intimamente inter-relacionadas e que é impossível entender as mudanças introduzidas pelo IPv-6 sem entender os conceitos e princípios do IPv-4.

Como nas edições anteriores, que foram muito populares, todo o texto enfoca conceitos e princípios. Os capítulos iniciais descrevem a motivação para a interligação em redes e fornecem os fundamentos da tecnologia TCP/IP da internet. Veremos que interligação por rede é uma abstração poderosa que nos permite lidar com a complexidade de múltiplas tecnologias de comunicação subjacentes escondendo os detalhes de hardware de rede. Vamos entender os níveis de serviço de rede que a internet proporciona e ver como os aplicativos usam esse serviço. Capítulos posteriores trarão mais detalhes. No texto são comentados tanto a arquitetura das interconexões da rede como os princípios dos protocolos básicos que tornam tais redes interligadas função de um único sistema de comunicações integradas.

Após a leitura do livro, você irá entender como é possível interligar múltiplas redes físicas em um sistema coordenado, como os protocolos de internet funcionam nesse ambiente, e como programas de aplicação usam os sistema resultantes. Como exemplo específico, aprenderá os detalhes do TCP-IP global da Internet, inclusive a arquitetura de seu sistema de roteamento e o protocolo de aplicação que ele suporta. Entenderá também algumas das limitações de abordagem da internet e dos protocolos TCP/IP.

Elaborado tanto como texto escolar como de referência profissional, o livro está escrito em um nível para graduandos avançados ou graduados. Para profissionais, ele proporciona uma introdução abrangente tanto para a tecnologia TCP/IP como para a arquitetura da Internet. Embora não tenha o propósito de substituir documentos-padrão para protocolos, é um excelente

(12)

ponto de partida para o aprendizado sobre interligação por rede, pois fornece uma visão geral que enfatiza princípios. Além disso, dá a perspectiva ao leitor a qual pode ser extremamente difícil de obter a partir de documentos unicamente sobre protocolo.

Quando usado em sala de aula, o texto fornece material mais que suficiente para um semestre de curso tanto em nível de graduação como para graduados. Em um curso de graduação, encorajo os professores a incluir concepção e implementação de projetos significativos, bem como leituras de literatura que forneçam base para um maior aprofundamento. Muitos dos exercícios sugerem tais sutilezas; resolvê-los, muitas vezes, exige que os alunos leiam padrões de protocolo e apliquem energia criativa para compreender as consequências. Para os cursos de graduação, muitos dos detalhes são desnecessários. Deve-se esperar dos alunos a compreensão dos conceitos básicos descritos no texto, e eles devem ser capazes de descrever e de usar os protocolos fundamentais.

Em todos os níveis, a experiência prática aguça os conceitos e ajuda os alunos a ganharem intuição. Assim, encorajo os instrutores a propor projetos que deem aos alunos oportunidades para usar os serviços e protocolos da Internet. Em um curso para graduandos, a maioria dos projetos consistirá em escrever aplicativos que usam a rede. No meu curso de graduação, eu tenho alunos escrevendo um analisador de rede simplificada (ou seja, dado um pacote no sistema binário, imprimir o valor de cada campo). O projeto do semestre no meu curso de pós-graduação sobre interligação de rede na Universidade de Purdue exige que os alunos construam um software significativo para protocolo IP; o projeto tradicional envolve a implementação de um roteador IP. Nós fornecemos o hardware e o código fonte para um sistema operacional, incluindo o driver do dispositivo para as interfaces de rede; os alunos constroem um roteador de trabalho que interliga três redes com MTU diferentes. O curso é extremamente rigoroso, os estudantes trabalham em equipes e os resultados têm sido relevantes (muitas empresas recrutam formandos do curso). Embora tal experiência seja mais segura quando a rede de laboratórios de instrução está isolada das instalações de computação da produção, descobrimos que os alunos apresentam maior entusiasmo e obtêm mais benefícios quando eles têm acesso à Internet global e podem testar se seus protocolos interagem com versões comerciais.

O livro está organizado em cinco partes principais. Os Capítulos 1 e 2 formam uma introdução que fornece uma visão geral do assunto por meio da discussão das tecnologias existentes de rede. Em particular, o Capítulo 2 faz uma revisão sobre hardware de redes físicas. O objetivo é fornecer a

(13)

intuição sobre a funcionalidade que o hardware fornece e o que é possível fazer para não gastar muito tempo em detalhes de hardware. Os Capítulos de 3 a 11 descrevem o TCP/IP da Internet a partir do ponto de vista de um único host, mostrando os protocolos que um host contém e como eles operam. Cobrem as abstrações da internet, a noção de camada de protocolo, a base de endereçamento e encaminhamento da Internet e os protocolos de transporte. Os Capítulos de 12 a 14 consideram a arquitetura de uma internet quando vista de forma global. Exploram a arquitetura de roteamento e o uso de roteadores de protocolos para troca de informação de roteamento. Os Capítulos de 15 a 19 abordam variações e extensões de tecnologia básica, incluindo transmissão múltipla, classificação de pacotes, visualização de rede e mobilidade. Em particular, o capítulo sobre a mobilidade explica por que ela é difícil em uma rede IP. Finalmente, os Capítulos de 20 a 30 discutem serviços de aplicação disponíveis na Internet (incluindo gestão de rede), segurança de rede e a Internet das Coisas. Os Capítulos apresentam o modelo cliente-servidor de interação, dando vários exemplos de aplicações que usam tal modelo, e mostram como a interação cliente-servidor se aplica ao bootstrap dos computadores e à gestão da rede. O Capítulo 28 explica uma nova abordagem ao gerenciamento de rede conhecida como Rede Definida por Software (Software Defined Networking – SDN) e o protocolo principal, OpenFlow. Apesar de não ser parte oficial dos padrões TCP/IP, a tecnologia SDN foi incluída por ter gerado considerável excitação.

Os capítulos foram organizados de baixo para cima. Em vez de começar vendo a Internet como uma caixa-preta e aprender como usá-la, o texto começa com uma visão geral de hardware e continua adicionando os conceitos de protocolos necessários para criar a Internet.

Essa visão de baixo para cima vai atrair qualquer um que esteja interessado em engenharia, pois segue o padrão usado quando se constrói um sistema. Em algumas aulas, os professores preferem iniciar pelos Capítulos 20 e 21 de programação cliente-servidor, que permitem a seus alunos iniciarem mais cedo a escrita dos aplicativos de rede. Embora escrever aplicativos que usem a Internet seja importante, exorto os professores a incluírem também atividades que ajudem aos estudantes entenderem as tecnologias básicas (ou seja, protocolos e pacotes). Em uma atividade de laboratório, por exemplo, tive alunos que elaboraram um protocolo muito básico para contatar outro terminal e transferir dois pacotes: um contendo um nome de arquivo e o outro contendo dados do arquivo. Entre o emissor e o receptor, um aplicativo randomicamente para, duplica-se, atrasa e muda o conteúdo dos pacotes. O experimento é feito

(14)

com UDP, tornando trivial sua implementação. No entanto, os alunos tornam-se muito conscientes de como é difícil projetar protocolos.

É necessário um mínimo de conhecimento para entender o material. Os leitores não precisam de matemática avançada, nem saber teoria da informação ou teoremas de comunicação de dados; o livro descreve a rede física como uma caixapreta ao redor da qual uma interligação de rede pode ser construída. Espera-se que os leitores tenham um entendimento básico de sistemas de computadores e estejam familiarizados com estrutura de dados tais como pilhas, esperas e árvores. Ele deve ter uma noção básica sobre os serviços que um sistema operacional executa e de que processos podem ser executados de forma concorrente. Não se pressupõe conhecimento prévio da tecnologia da Internet: o texto não só relata de forma clara todos os princípios de projeto, mas também discute motivações e consequências.

Muita gente merece crédito por contribuir com sugestões e ideias para várias edições do texto ao longo dos anos. Para esta edição, um conjunto de revisores fez comentários sobre a organização e sobre itens que necessitavam de atualização, além de terem ajudado a verificar detalhes técnicos. Agradeço a Anthony Barnard, Tom Calabrese, Ralph Droms, Tom Edmunds, Raymond Kelso, Lee Kirk, John Lin, Dave Roberts, Gustavo Rodriguez-Rivera e Bhaskar Sharma, que revisaram, todos, o rascunho do manuscrito. John e Ralph foram especialmente úteis. Barry Shein contribuiu com o exemplo de código cliente-servidor no Capítulo 21.

Como de costume, minha esposa Christine prestou a maior ajuda. Ela gastou horas com o manuscrito, identificando ambiguidades, encontrando inconsistências e suavizando o texto.

Douglas E. Comer Março, 2013.

(15)

O QUE OUTROS DISSERAM A RESPEITO DA SEXTA EDIÇÃO DE INTERLIGAÇÃO DE REDES COM TCP/IP

“Este é o livro a que recorro para obter explicações claras dos princípios básicos e dos desenvolvimentos mais recentes em tecnologias TCP/IP. É uma referência ‘essencial’ para os profissionais de rede.”

Dr. Ralph Droms, Cisco Systems.

Coordenador do grupo de trabalho DHCP.

“Excelente livro! Obrigado!”

Henrik Sundin, NTI Gymnasiet, Estocolmo, Suécia.

“A 6ª edição do clássico Interligação de redes, de Comer, documenta a evolução contínua e acelerada da Internet, enquanto prediz o futuro com clareza e compreensão incomparáveis.”

Dr. Paul V. Mockapetris,

Inventor do Domain Name System.

“… uma verdadeira obra-prima.”

Mr. Javier Sandino, engenheiro de sistemas.

“O livro sobre TCP/IP mais bem escrito que eu já li. Dr. Comer expõe ideias complexas de forma clara, com excelentes gráficos e explicações. Com esta edição, o Dr. Comer torna contemporâneo este livro clássico.”

Dr. John Lin, Bell Laboratories.

“Esta atualização para a referência definitiva sobre as principais tecnologias da Internet confirma a reputação de Doug Comer pela apresentação clara e precisa de informações essenciais; deve ser a pedra angular da biblioteca de qualquer profissional de Internet.”

(16)

Interisle Consulting Group, Ex-presidente IAB.

“Um dos melhores livros que já li. O verdadeiro gênio não é apenas fluente em seu campo, como também sabe expressar suas ideias de forma simples. Obrigado, Dr. Comer, por escrever este excelente livro!”

Marvin E. Miller,

CIO, The ACS Corporation.

“Em um mundo de complexidade, a capacidade de transmitir conhecimento em oposição à informação a partir de um site de busca é bastante difícil. Poucos fazem parecer tão fácil como Doug Comer, cujo livro Interligação de Redes, volume 1, continua a desempenhar uma função fundamental em nos ensinar sobre o papel dos protocolos numa Internet continuamente em mudança.”

Dr. Balachander Krishnamurthy, AT&T Labs.

“Está acontecendo uma rápida evolução da Internet, já que o mundo inteiro a usa a cada dia, a cada hora, ou até mesmo de forma contínua (como é o caso dos meus netos). Comer monitora com precisão os fundamentos tecnológicos relevantes para a construção da Internet atualmente.”

Dan Lynch,

(17)

C CAPÍTULO 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 C CAPÍTULO 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7

Sumário

Sobre o autor Prólogo Prefácio

Introdução e visão geral

A motivação para interligação de redes A Internet TCP/IP

Serviços de Internet

História e escopo da Internet

O Internet Architecture Board (IAB) A reorganização do IAB

Internet Request for Comments (RFCs) O crescimento da Internet

Transição para o IPv6

Projeto comitê e a nova versão do IP Relação entre IPv4 e IPv6

Migração para o IPv6

Sistema de pilha dupla (Dual Stack Systems) Organização do texto

Resumo

Visão geral das tecnologias de rede subjacentes

Introdução

Duas abordagens para comunicação por rede Redes locais e de longa distância (WAN e LAN) Esquemas de endereçamento de hardware

Ethernet (IEEE 802.3) Wi-Fi (IEEE 802.11) ZigBee (IEEE 802.15.4)

(18)

2.8 2.9 2.10 2.11 2.12 2.13 C CAPÍTULO 3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 C CAPÍTULO 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15

Optical Carrier e Packet Over SONET (OC, POS) Redes ponto a ponto

Tecnologia VLAN e domínios de transmissão Bridging (ponte)

Congestionamento e perda de pacote Resumo

Conceito de interligação de redes e modelo de arquitetura

Introdução

Interconexão em nível de aplicação Interconexão em nível de rede Propriedades da Internet

Arquitetura da Internet

Interconexão de múltiplas redes com roteadores IP A visão do usuário

Todas as redes são iguais As questões não respondidas Resumo

Camadas de protocolos

Introdução

A necessidade de múltiplos protocolos

As camadas conceituais de software de protocolo Funcionalidade das camadas

Modelo de referência da camada ISO 7 X.25 e sua relação com o modelo ISO

Modelo de referência do TCP/IP cinco camadas Local de inteligência

O princípio de camadas de protocolos

O princípio de camada aplicado a uma rede Camadas em redes mesh

Dois limites importantes no modelo TCP/IP Otimizações Cross-Layer

A ideia básica por trás da multiplexação e demultiplexação

(19)

C CAPÍTULO 5 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 C CAPÍTULO 6 6.1 6.2 6.3 6.4 6.5 6.6 Endereçamento Internet Introdução

Identificadores universais de host

O esquema original de endereçamento Classful IPv4 Notação decimal com pontos usada com IPv4

Endereçamento em sub-rede IPv4 Sub-redes IPv4 de comprimento fixo Sub-redes IPv4 de comprimento variável

Implementação de sub-redes IPv4 com máscaras Representação de máscara de sub-rede IPv4 e notação com barra

O esquema de endereçamento IPv4 Classless atual Blocos de endereços IPv4 e notação CIDR Slash Exemplo de endereçamento IPv4 Classless

Blocos IPv4 CIDR reservados para redes privadas O esquema de endereçamento IPv6

Notação Hexadecimal IPv6 Colon (dois-pontos) Endereço IPv6 atribuição de espaço

Endereços IPv4 embutidos em IPv6 para a transição Os endereços IPv6 unicast e/64

Identificadores de interface IPv6 e endereços MAC Endereços IP, hosts e conexões de rede

Endereços especiais

Pontos fracos no endereçamento Internet

Atribuição de endereço Internet e delegação de autoridade

Um exemplo de atribuição de endereços IPv4 Resumo

Mapeando endereços internet em endereços físicos (ARP)

Introdução

O problema da resolução de endereços Dois tipos de endereços de hardware

Resolução por meio de mapeamento direto Resolução em uma rede mapeada diretamente Resolução de endereço IPv4 através de vínculo dinâmico

(20)

6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 C CAPÍTULO 7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 7.10 7.11 7.12 7.13 7.14 7.15 7.16 7.17 C CAPÍTULO 8 8.1 8.2 O cache ARP

ARP cache timeout Refinamentos ARP

Relação de ARP com outros protocolos Implementação do ARP

Encapsulamento e identificação do ARP Formato de mensagem ARP

Revalidação automática de cache ARP Resolução de endereços reversos (RARP) Caches ARP nos comutadores da camada três Proxy ARP

Descoberta de vizinho IPv6 Resumo

Protocolo de Internet: entrega de datagrama sem conexão (IPv4, IPv6)

Introdução

Uma rede virtual

Arquitetura e filosofia da Internet Princípios por trás da estrutura

Características do sistema de entrega sem conexão Propósito e importância do protocolo de Internet O datagrama IP

Tipo de serviço de datagrama e serviços diferenciados Encapsulamento de datagrama

Tamanho de datagrama, rede MTU e fragmentação Reconstituição de datagrama

Campos de cabeçalho usados para reconstrução de datagrama

Tempo de vida (IPv4) e limite de salto (IPv6) Itens IP opcionais

Opções de processamento durante fragmentação Ordem de byte da rede

Resumo

Protocolo de Internet: encaminhando datagramas IP

Introdução

(21)

8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 8.11 8.12 8.13 8.14 8.15 8.16 8.17 C CAPÍTULO 9 9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8 9.9 9.10 9.11 9.12 9.13 9.14 9.15 9.16 9.17 Ca CAPÍTULO 10

Entrega direta e indireta

Transmissão através de rede única Entrega indireta

Encaminhamento IP controlado por tabela Encaminhamento do próximo salto

Rotas default e um exemplo host Rotas específicas do host

O algoritmo de encaminhamento IP Paradigma Longest-Prefix Match

Encaminhamento de tabelas e endereços IP Tratando de datagramas de entrada

Encaminhamento em presença de broadcast e multicast Roteadores software e lookup sequencial

Estabelecendo tabelas de encaminhamento Resumo

Protocolo de Internet: mensagens de erro e controle (ICMP)

Introdução

Internet Control Message Protocol (ICPM) Relato de erro versus correção de erro Entrega de mensagem ICMP

Layering conceitual

Formato de mensagem ICMP

Exemplo de tipos de mensagem ICMP usados com IPv4 e IPv6

Teste de alcance e status do destino (ping)

Requisição de eco e formato de mensagem de resposta Computação checksum e o pseudocabeçalho IPv6 Relatos de destino inalcançável

Relatos de erro com relação à fragmentação Requisições de mudança de rota dos roteadores

Detectando rotas circulares ou excessivamente longas Relatando outros problemas

Mensagens ICMP mais antigas usadas na inicialização Resumo

(22)

10.1 10.2 10.3 10.4 10.5 10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 Ca CAPÍTULO 11 11.1 11.2 11.3 11.4 11.5 11.6 11.7 11.8 11.9 11.10 11.11 11.12 11.13 11.14 11.15 11.16 11.17 11.18 11.19 11.20 11.21 11.22 Introdução

Usando uma porta de protocolo como um destino final O User Datagram Protocol (UDP)

Formato de mensagem UDP Interpretação do checksum UDP

Computação checksum e pseudocabeçalho UDP Formato do pseudocabeçalho UDP IPv4

Formato do pseudocabeçalho UDP IPv6

Encapsulamento e camadas de protocolos UDP Camadas e cálculo de checksum UDP

Multiplexação, demultiplexação e portas protocolo Números de porta UDP reservados e disponíveis Resumo

Serviço de transporte de fluxo confiável (TCP)

Introdução

A necessidade de serviço confiável

Propriedades do serviço de entrega confiável Confiabilidade: confirmação e retransmissão O paradigma das janelas deslizantes

O Transmission Control Protocol (TCP) Camadas, portas, conexões e extremidades Aberturas passivas e ativas

Segmentos, fluxos e números de sequência Tamanho de janela variável e controle de fluxo Formato do segmento TCP

Dados fora de faixa (out of band data) Opções do TCP

Cálculo do checksum TCP

Confirmações, retransmissão e timeouts Medição precisa de amostras de ida e volta Algoritmo de Karn e o timer backoff

Resposta à alta variância no atraso Resposta ao congestionamento

Recuperação rápida e outras modificações de resposta Mecanismos de feedback explícitos (Sack e Ecn) Congestionamento, descarte de cauda e TCP

(23)

11.23 11.24 11.25 11.26 11.27 11.28 11.29 11.30 11.31 11.32 11.33 11.34 Ca CAPÍTULO 12 12.1 12.2 12.3 12.4 12.5 12.6 12.7 12.8 12.9 12.10 Ca CAPÍTULO 13 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10

Random Early Detection (RED) Estabelecendo uma conexão TCP Números sequenciais iniciais Fechando uma conexão TCP Reiniciando uma conexão TCP Máquina de estado TCP

Forçando a entrega de dados

Números de porta TCP reservados

Síndrome da janela tola e pacotes pequenos Evitando a síndrome da janela tola

Buffer Bloat e seus efeitos em latência Resumo

Arquitetura de roteamento: núcleo, pares e algoritmos

Introdução

A origem das tabelas de roteamento

Encaminhamento com informações parciais

Arquitetura original da Internet e núcleos (cores) Além da arquitetura básica para backbones peer Propagação automática de rota e uma FIB

Roteamento por vetor de distância (Bellman-Ford) Confiabilidade e protocolos de roteamento

Roteamento por estado do link (SPF) Resumo

Roteamento entre sistemas autônomos (BGP)

Introdução

O escopo do protocolo de atualização de roteamento Determinando um limite prático para o tamanho de grupo

Uma ideia fundamental: saltos extras Conceito de sistema autônomo

Protocolos de gateway exterior e alcançabilidade Características do BGP

Funcionalidade e tipos de mensagem BGP Cabeçalho de mensagem do BGP

(24)

13.11 13.12 13.13 13.14 13.15 13.16 13.17 13.18 13.19 13.20 13.21 13.22 Ca CAPÍTULO 14 14.1 14.2 14.3 14.4 14.5 14.6 14.7 14.8 14.9 14.10 14.11 14.12 14.13 14.14 14.15 14.16 14.17 14.18 14.19 14.20 Ca CAPÍTULO 15 15.1 Mensagem BGP UPDATE

Pares máscara-endereço IPv4 compactados Atributos de caminho BGP

Mensagem BGP KEEPALIVE

Informações da perspectiva do receptor

A restrição básica dos protocolos de gateway externos A arquitetura de roteamento e registros da Internet Mensagem de notificação BGP

Extensões multiprotocolo BGP para IPv6 Atributo multiprotocolo NLRI alcançável Roteamento Internet e economia

Resumo

Roteamento em um sistema autônomo (RIP, RIPng, OSPF, IS-IS)

Introdução

Rotas internas estáticas versus dinâmicas Routing Information Protocol (RIP)

O problema da convergência lenta

Resolvendo o problema da convergência lenta Formato de mensagem RIP (IPv4)

Campos de uma mensagem RIP RIP para IPv6 (RIPng)

A desvantagem de usar contador de saltos Métrica de atrasos (HELLO)

Métrica de atrasos, oscilação e route flapping O protocolo Open SPF (OSPF)

Formatos de mensagem (IPv4) OSPFv2 Mudanças no OSPFv3 para suportar o IPv6 Protocolo de propagação de rota IS-IS Confiança e desvio de rota

Gated: um daemon gateway de roteamento Métricas artificiais e métricas de transformação Roteamento com informações parciais

Resumo

Multicasting de Internet

(25)

15.2 15.3 15.4 15.5 15.6 15.7 15.8 15.9 15.10 15.11 15.12 15.13 15.14 15.15 15.16 15.17 15.18 15.19 15.20 15.21 15.22 15.23 15.24 15.25 15.26 15.27 Ca CAPÍTULO 16 16.1 16.2 16.3 16.4 16.5 16.6 16.7 Broadcast de hardware Multicast de hardware Multicast Ethernet

A Construção conceitual dos blocos multicast da Internet

O esquema do multicast IP

Endereços multicast IPv4 e IPv6 Semântica de endereço multicast

Mapeando multicast IP para multicast Ethernet Hosts e entrega multicast

Escopo multicast

Participação do host em multicasting IP

Protocolo de gerenciamento de um grupo Internet IPv4 (IGMP)

Detalhes do IGMP

Transições de estado de associação de grupo IGMP Formato de mensagem membership query IGMP Formato de mensagem membership report IGMP IPv6 multicast group membership com MLDv2 Informações de encaminhamento e roteamento multicast

Paradigmas básicos de encaminhamento multicast Consequências do TRPF

Árvores multicast

A essência da propagação de rota multicast Reverse Path Multicasting

Exemplo de protocolos de roteamento Multicast seguro e implosões de ACK Resumo

Comutação de rótulo, fluxos e MPLS

Introdução

Tecnologia de comutação

Fluxos e configurações de fluxo

Redes grandes, troca de rótulo e caminhos Usando comutação com IP

Tecnologias de comutação IP e MPLS Rótulos e atribuição de rótulos

(26)

16.8 16.9 16.10 16.11 16.12 16.13 16.14 16.15 Ca CAPÍTULO 17 17.1 17.2 17.3 17.4 17.5 17.6 17.7 17.8 17.9 17.10 17.11 Ca CAPÍTULO 18 18.1 18.2 18.3 18.4 18.5 18.6 18.7 18.8 18.9 18.10 18.11 18.12 18.13

Uso hierárquico do MPLS e uma pilha de rótulos Encapsulamento MPLS

Semântica de rótulo

Roteador por comutação de rótulo

Processamento de controle e distribuição de rótulo MPLS e fragmentação

Topologia em malha e engenharia de tráfego Resumo

Classificação de pacote

Introdução

Motivação para classificação

Classificação em vez de demultiplexação Camadas quando se usa classificação

Hardware de classificação e comutadores de rede Decisões de comutação e VLAN tags

Hardware de classificação

Classificação de alta velocidade e TCAM O tamanho de uma TCAM

Encaminhamento generalizado de classificação habilitada

Resumo

Mobilidade e IP móvel

Introdução

Mobilidade, endereçamento e roteamento Mobilidade via mudança de endereço de host Mobilidade via mudança no encaminhamento de datagramas

A tecnologia do IP móvel

Visão geral da operação do IP móvel Sobrecarga e frequência de mudança Endereçamento IPv4 móvel

Descoberta do agente externo IPv4 Registro IPv4

Formato de mensagem de registro IPv4 Comunicação com um agente externo IPv4 Suporte à mobilidade IPv6

(27)

18.14 18.15 18.16 18.17 Ca CAPÍTULO 19 19.1 19.2 19.3 19.4 19.5 19.6 19.7 19.8 19.9 19.10 19.11 19.12 19.13 19.14 19.15 19.16 19.17 19.18 19.19 Ca CAPÍTULO 20 20.1 20.2 20.3 20.4 20.5 20.6 20.7 20.8 20.9

Transmissão, recepção e tunelamento de datagrama Acesso de mobilidade IP e problemas não resolvidos Tecnologias de separação identificador-localizador alternativo

Resumo

Virtualização de rede: VPNs, NATs e sobreposições

Introdução Virtualização

Redes privadas virtuais (VPNs)

Tunelamento VPN e encapsulamento IP em IP Endereçamento e encaminhamento VPN

Extensão da tecnologia VPN a hosts individuais Usar uma VPN com endereços IP privados

Tradução de endereço de rede (NAT) Criação de tabela de tradução da NAT Variantes da NAT

Um exemplo de tradução NAT Interação entre NAT e ICMP Interação entre NAT e aplicativos NAT na presença de fragmentação Domínios de endereço conceitual

Versões da NAT para Linux, Windows e Mac Redes sobrepostas

Sobreposições múltiplas simultâneas Resumo

Modelo de interação cliente-servidor

Introdução

O modelo cliente-servidor

Um exemplo trivial: servidor de eco UDP Serviço de hora e data

Servidores sequenciais e concorrentes Complexidade do servidor

Difundindo uma requisição

Alternativas e extensões de cliente-servidor Resumo

(28)

Ca CAPÍTULO 21 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.9 21.10 21.11 21.12 21.13 21.14 21.15 21.16 21.17 21.18 21.19 21.20 Ca CAPÍTULO 22 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 22.10 22.11 22.12 22.13 22.14 22.15 A API socket Introdução

Versões da API socket

O paradigma de E/S do UNIX e a E/S da rede Acrescentando E/S de rede ao UNIX

A abstração e as operações socket Obtendo e definindo as opções socket Como um servidor aceita conexões

Servidores que tratam múltiplos serviços Obtendo e definindo o nome de host

Funções de biblioteca relacionadas a sockets Network Byte Order e rotinas de conversão Rotinas de manipulação do endereço IP Acessando o Domain Name System Obtendo informações sobre hosts Obtendo informações sobre redes Obtendo informações sobre protocolos

Obtendo informações sobre serviços de rede Um exemplo de cliente

Um exemplo de servidor Resumo

Bootstrap e autoconfiguração (DHCP, NDP, IPv6-ND)

Introdução

História do bootstrapping IPv4

Usando IP para determinar um endereço IP Retransmissão e randomização DHCP

Formato de mensagem DHCP

A necessidade de configuração dinâmica

Locação DHCP e atribuição de endereço dinâmico Endereços múltiplos e relays

Estados de aquisição de endereço DHCP Término precoce do aluguel

Estados de renovação de aluguel Opções DHCP e tipos de mensagem Sobrecarga de opção DHCP

DHCP e nomes de domínio

(29)

22.16 22.17 22.18 22.19 22.20 22.21 22.22 22.23 22.24 Ca CAPÍTULO 23 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 23.10 23.11 23.12 23.13 23.14 23.15 23.16 23.17 23.18 23.19 23.20 23.21 23.22 23.23 23.24 23.25 Ca CAPÍTULO 24

Configuração gerenciada e não gerenciada para o IPv6 Opções de configuração do IPv6 e conflitos potenciais Protocolo de descoberta de vizinho IPv6 (NDP)

Mensagem de solicitação de roteador ICMPv6 Mensagem de anúncio de roteador ICMPv6 Mensagem de solicitação de vizinho ICMPv6 Mensagem de anúncio de vizinho ICMPv6 Mensagem redirecionar ICMPv6

Resumo

O Domain Name System (DNS)

Introdução

Nomes para computadores Espaço de nomes plano Nomes hierárquicos

Delegação de autoridade para nomes Autoridade de subconjunto

Nomes de domínios da Internet Domínios de nível superior Sintaxe e tipo de nome

Mapeando nomes de domínio para endereços Tradução de nome de domínio

Tradução eficiente

Caching: a chave para a eficiência

Formato de mensagem do Domain Name System Formato de nome compactado

Abreviação de nomes de domínio Mapeamentos reversos

Consultas de ponteiro

Tipos de objeto e conteúdo de registro de recurso Obtendo autoridade para um subdomínio

Aplicação do servidor e replicação

Atualização e notificação dinâmicas do DNS DNS Security Extensions (DNSSEC)

Multicast DNS e serviço de descoberta Resumo

(30)

24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.9 24.10 Ca CAPÍTULO 25 25.1 25.2 25.3 25.4 25.5 25.6 25.7 25.8 25.9 25.10 25.11 25.12 25.13 25.14 25.15 25.16 25.17 25.18 Ca CAPÍTULO 26 26.1 26.2 26.3 26.4 26.5 Introdução Correio eletrônico

Nomes e aliases da caixa de correio

Expansão de alias e encaminhamento de correio Padrões do TCP/IP para serviço de correio eletrônico Simple Mail Transfer Protocol (SMTP)

Recuperação de correio e protocolos de manipulação de caixas de correio

As extensões MIME para dados não ASCII Mensagens MIME multiparte

Resumo

World Wide Web (HTTP)

Introdução

A importância da Web

Componentes arquitetônicos Uniform Resource Locators

Um documento HTML de exemplo Hypertext Transfer Protocol

A requisição GET do HTPP Mensagens de erro

Conexões persistentes

Tamanho de dados e saída do programa Codificação por tamanho e cabeçalhos Negociação

Requisições condicionais Servidores proxy e cache Cache

Outras funcionalidades do HTTP HTTP, segurança e e-commerce Resumo

Voz e vídeo sobre IP (RTP, RSVP, QoS)

Introdução

Digitalização e codificação

Transmissão e reprodução em áudio e vídeo Jitter e retardo de reprodução

(31)

26.6 26.7 26.8 26.9 26.10 26.11 26.12 26.13 26.14 26.15 26.16 26.17 26.18 Ca CAPÍTULO 27 27.1 27.2 27.3 27.4 27.5 27.6 27.7 27.8 27.9 27.10 27.11 27.12 27.13 27.14 Ca CAPÍTULO 28 28.1 28.2 28.3 28.4 28.5 28.6

Fluxos, mistura e multicasting Encapsulamento de RTP

RTP Control Protocol (RTCP) Operação do RTCP

Telefonia e sinalização IP

Controvérsia da qualidade de serviço QoS, utilização e capacidade

Serviços de emergência e direito de preferência IntServ e reserva de recursos

DiffServ e comportamento por salto Escalonamento de tráfego

Policiamento e conformação de tráfego Resumo

Gerenciamento de rede (SNMP)

Introdução

O nível dos protocolos de gerenciamento Modelo arquitetônico

Estrutura do protocolo Exemplos de variáveis MIB

A estrutura das informações de gerenciamento Definições formais usando ASN.1

Estrutura e representação dos nomes de objeto MIB As alterações no MIB e adições para o IPv6

Simple Network Management Protocol Formato de mensagem SNMP

Um exemplo de mensagem SNMP codificada Segurança em SNMPv3

Resumo

Software Defined Networking (SDN, OpenFlow)

Introdução

Rotas, caminhos e conexões

Engenharia de tráfego e controle de seleção de caminho Redes orientadas à conexão e sobreposições de

roteamento

SDN: uma nova abordagem híbrida Separação de dados e de controle

(32)

28.7 28.8 28.9 28.10 28.11 28.12 28.13 28.14 28.15 28.16 28.17 28.18 28.19 Ca CAPÍTULO 29 29.1 29.2 29.3 29.4 29.5 29.6 29.7 29.8 29.9 29.10 29.11 29.12 29.13 29.14 29.15 29.16 29.17 29.18 29.19 29.20 29.21 29.22

A arquitetura SDN e controladores externos SDN através de vários dispositivos

Implementação SDN com comutadores convencionais Tecnologia OpenFlow

OpenFlow básico

Campos específicos em um padrão OpenFlow Ações que OpenFlow pode tomar

Extensões OpenFlow e adições Mensagens OpenFlow

Usos do OpenFlow

OpenFlow: entusiasmo, publicidade e limitações Software Defined Radio (SDR)

Resumo

Segurança na Internet e projeto de firewall (IPsec, SSL) Introdução Protegendo recursos Política de informação Segurança da Internet IP Security (IPsec)

Cabeçalho de autenticação IPsec Associação de segurança

Payload de segurança no encapsulamento IPsec Campos de autenticação e cabeçalho mutável Tunelamento IPsec

Algoritmos de segurança necessários Camada de socket seguro (SSL e TLS) Firewalls e acesso à Internet

Conexões múltiplas e links mais fracos Implementando firewall e filtros de pacotes As regras de firewall e as 5-tuplas

Segurança e especificação de filtro de pacotes A consequência do acesso restrito para clientes Stateful Firewalls

Proteção de conteúdo e proxies Monitoração e logging

(33)

Ca CAPÍTULO 30 30.1 30.2 30.3 30.4 30.5 30.6 30.7 30.8 30.9 30.10 30.11 30.12 30.13 30.14 30.15 ApÌNDICE 1

Sistemas embarcados conectados (A Internet das coisas)

Introdução

Sensoreamento, monitoramento e controle Conservação e captação de energia

Um mundo de dispositivos inteligentes incorporados A importância da comunicação

Exemplo: anúncios eletrônicos em shopping centers Coleta de dados de sistemas embarcados

Rede sem fio e IEEE 802.15.4

Uma rede de malha para Smart Grid Sensors

Uma árvore de encaminhamento para uma malha de sensores

Usando protocolos de camadas 2 e 3 em uma malha A pilha de protocolos IPv6 ZigBee

Encaminhamento em uma rota de malha ZigBee Avaliação de uso de rota IPv6 para uma malha Resumo

Glossário de termos e abreviações de interligação de redes

(34)

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 CAPÍTULO 1

Introdução e visão geral

CONTEÚDOS DO CAPÍTULO

A motivação para interligação de redes A Internet TCP/IP

Serviços de Internet

História e escopo da Internet O Internet Architecture Board (IAB) A reorganização do IAB

Internet Request for Comments (RFCs) O crescimento da Internet

Transição para o IPv6

Projeto comitê e a nova versão do IP Relação entre IPv4 e IPv6

Migração para o IPv6

Sistema de pilha dupla (Dual Stack Systems) Organização do texto

(35)

1.1 A motivação para interligação de redes

A comunicação pela Internet tornou-se parte fundamental da vida. Redes sociais, tais como Facebook, promovem conexões entre um grupo de amigos e permite que eles compartilhem interesses. A World Wide Web contém informações sobre temas diversos como política, condições atmosféricas, preços das ações, colheitas e tarifas aéreas. Familiares e amigos usam a Internet para compartilhar fotos e manter contato com chamadas telefônicas VoIP e chats de vídeo ao vivo. Os consumidores usam a Internet para adquirir bens e serviços e para acesso a bancos. Empresas fazem encomendas e pagamentos eletronicamente. A mudança para a computação em nuvem vai colocar mais informações e serviços on-line.

Embora pareça operar como uma rede unificada, a Internet não é composta de uma única tecnologia de rede, pois nenhuma tecnologia isolada é suficiente para todos os usos. Em vez disso, o hardware de rede é projetado para situações e orçamentos específicos. Alguns grupos precisam de redes de alta velocidade para conectar computadores em um único prédio. Outros precisam de redes sem fio de baixo custo. Como o hardware de baixo custo que funciona bem dentro de um prédio não pode se espalhar a grandes distâncias geográficas, é preciso usar uma alternativa para conectar máquinas milhares de quilômetros distantes entre si.

Na década de 1970, foi criada uma tecnologia que tornou possível conectar várias redes individuais dispersas e operá-las como uma unidade

(36)

1.2

coordenada. Conhecida como interligação de redes, a tecnologia estabeleceu as bases para a Internet, acomodando várias tecnologias de hardware básicas, oferecendo um modo de interconectar as redes e definindo um conjunto de convenções de comunicação que as redes utilizam para interoperar. A tecnologia de interconexão de redes oculta os detalhes do hardware de rede e permite que os computadores se comuniquem independentemente de suas conexões de rede física.

A tecnologia da Internet é um exemplo de interconexão de sistema aberto. Ela é chamada aberta porque, diferentemente dos sistemas disponíveis de um fornecedor em particular, as especificações estão disponíveis publicamente. Assim, qualquer companhia individual pode montar o software necessário para se comunicar por uma interconexão de redes. Mais importante, a tecnologia inteira foi projetada para promover a comunicação entre máquinas com arquiteturas de hardware diversificadas, usar quase todo tipo de hardware de rede comutada por pacotes e acomodar não só uma grande variedade de aplicações, mas também diversos sistemas operacionais de computador.

A Internet TCP/IP

Nas décadas de 1970 e 1980, agências do governo dos Estados Unidos observaram a importância e o potencial da tecnologia da Internet e financiaram pesquisas que possibilitaram uma Internet global.* Este livro discute princípios e ideias que resultaram de pesquisa financiada pela Defense Advanced Research Projects Agency (DARPA).** A tecnologia DARPA inclui um conjunto de padrões de rede que especifica os detalhes de como os computadores se comunicam, além de um conjunto de convenções para interconexão de redes e encaminhamento de tráfego. Oficialmente chamada TCP/IP Internet Protocol Suite e normalmente referenciada como TCP/IP (os nomes de seus dois padrões principais), ela pode ser usada para comunicação entre qualquer conjunto de redes interconectadas. Por exemplo, TCP/IP pode ser usado para interconectar um conjunto de redes dentro de um único prédio, dentro de um campus físico ou entre um conjunto de campi.

Embora a tecnologia TCP/IP seja isoladamente digna de nota, ela é especialmente interessante porque sua viabilidade foi demonstrada em grande escala. Ela forma a tecnologia básica da Internet global, que conecta

(37)

1.3

aproximadamente 2 bilhões de indivíduos em lares, escolas, corporações e laboratórios do governo em praticamente todas as áreas povoadas do planeta. Um sucesso fantástico, a Internet demonstra a viabilidade da tecnologia TCP/IP e mostra como ela pode acomodar uma grande variedade de tecnologias básicas de hardware.

Serviços de Internet

Não se pode apreciar os detalhes técnicos por trás do TCP/IP sem entender os serviços que ele oferece. Esta seção analisa rapidamente os serviços de internet, destacando aqueles que a maioria dos usuários acessa, e deixa para os capítulos posteriores a discussão de como os computadores se conectam a uma rede TCP/IP e como a funcionalidade é implementada.

Grande parte de nossa discussão sobre os serviços terá como foco os padrões chamados protocolos. Protocolos como o TCP e o IP fornecem as regras sintáticas e semânticas para comunicação. Eles fornecem os detalhes dos formatos de mensagem, descrevem como um computador responde quando chega uma mensagem e especificam como um computador trata de erros ou outras condições anormais. Mais importante, os protocolos nos permitem discutir comunicação de computador independente do hardware de rede de qualquer fornecedor em particular. De certa forma, os protocolos são para a comunicação o que os algoritmos representam para a computação. Um algoritmo permite que alguém especifique ou entenda uma computação sem conhecer os detalhes de uma linguagem de programação particular ou do conjunto de instruções de uma CPU. De modo semelhante, um protocolo de comunicação permite que alguém especifique ou entenda a comunicação de dados sem depender do conhecimento detalhado do hardware de rede de determinado fornecedor.

Ocultar os detalhes de baixo nível da comunicação ajuda a melhorar a produtividade de várias maneiras. Primeiro, como os programadores tratam de abstrações de protocolo de alto nível, eles não precisam aprender ou lembrar-se de tantos detalhes sobre determinada configuração de rede. Assim, eles podem criar novos programas rapidamente. Segundo, como os programas confeccionados utilizando abstrações de alto nível não são restritos a determinada arquitetura de computador ou determinado hardware de rede, não precisam ser modificados quando as redes ou os computadores são substituídos ou reconfigurados. Terceiro, como os programas de aplicativos confeccionados utilizando protocolos de alto nível são independentes do hardware básico, eles podem oferecer comunicação direta entre um par de computadores qualquer. Os

(38)

1.3.1

programadores não precisam criar uma versão especial do aplicativo para cada tipo de computador ou cada tipo de rede. Em vez disso, o software criado para usar protocolos é de uso geral; o mesmo código pode ser compilado e executado em qualquer computador.

Veremos que os detalhes de cada serviço disponível na Internet são dados por um protocolo separado. As próximas seções referem-se a protocolos que especificam alguns dos serviços em nível de aplicação, além daqueles usados para definir serviços em nível de rede. Capítulos posteriores explicam cada um desses protocolos em detalhes.

Serviços de Internet em nível de aplicação

Do ponto de vista de um usuário, a Internet parece consistir em um conjunto de programas que utiliza a rede para realizar tarefas úteis de comunicação. Usamos o termo interoperabilidade para nos referir à capacidade de os sistemas de computação diversificados cooperarem na solução de problemas computacionais. Devido à Internet ter sido projetada para se ajustar a redes e computadores heterogêneos, a interoperabilidade foi um requisito básico. Em consequência, programas aplicativos de redes normalmente exibem em alto grau tal característica. Na verdade, a maioria dos usuários acessa os programas aplicativos sem entender os tipos de computadores e redes que estão sendo acessados, os protocolos de comunicação, nem o caminho em que os dados trafegam até seu destino. Assim, um usuário pode acessar uma página na web a partir de um sistema desktop ligado por cabo a um modem ou de um iPad conectado a uma rede sem fio 4G.

Os serviços da Internet mais populares e difundidos são descritos a seguir.

World Wide Web. A Web tornou-se a maior fonte de tráfego na Internet global entre 1994 e 1995, e permanece assim. Muitos serviços populares, incluindo busca na Internet (por exemplo, Google) e redes sociais (por exemplo, Facebook), usam a tecnologia web. Estimativas atribuem cerca de um quarto de toda a Internet ao tráfego no Facebook. Embora os usuários façam distinção entre os vários serviços baseados na web, veremos que todos eles usam o mesmo protocolo em nível de aplicação.

Acesso em nuvem (cloud access) e computador remoto (remote desktop). Trata-se de locais de computação em nuvem, instalações de

(39)

armazenagem em centros de dados em nuvem e arranjos para que os usuários acessem os serviços por meio da Internet. Uma tecnologia de acesso, conhecida como serviço de desktop remoto, permite que um usuário acesse um computador em um centro de dados remoto como se o computador fosse local. O usuário só precisa de um dispositivo de interface com a tela, teclado, mouse ou touchpad, e uma conexão de rede. Quando o computador do centro de dados atualiza a exibição do vídeo, o serviço de desktop remoto captura as informações, envia através da Internet e exibe na tela do usuário. Quando o usuário move o mouse ou pressiona uma tecla, o serviço de desktop remoto envia as informações para o centro de dados. Assim, o usuário tem acesso completo a um PC poderoso, mas só precisa levar um dispositivo básico de interface, como um tablet.

Transferência de arquivos. O protocolo de transferência de arquivos permite aos usuários enviar e receber uma cópia de um arquivo de dados. Muitos downloads de arquivos, incluindo downloads de filmes, requerem um mecanismo de transferência de arquivos. Devido ao fato de sempre solicitarem a transferência de arquivo por uma página da web, os usuários podem não estar cientes de que um pedido de transferência de arquivos foi executado.

Correio eletrônico (e-mail). O correio eletrônico, que já foi responsável por grandes quantidades de tráfego na Internet, foi substituído, em grande parte, por aplicações da web. Muitos usuários agora acessam e-mail através de uma aplicação web que lhes permite ler as mensagens em sua caixa postal, selecionar uma mensagem para processamento e encaminhar a mensagem ou enviar uma resposta. Uma vez que um usuário especifica um envio de mensagem, o sistema subjacente usa um protocolo de transferência de e-mail para enviar a mensagem para a caixa de correio do destinatário.

Serviços de voz e vídeo. Tanto o streaming de vídeo como o de áudio já respondem pelo transporte de uma fração significativa de bits através da Internet em nível mundial, e essa tendência vai continuar. Mais importante, uma mudança significativa está ocorrendo; o upload de vídeo está aumentando, especialmente porque os usuários estão usando dispositivos móveis para enviar vídeo de eventos ao vivo.

Retornaremos a essas e outras aplicações em capítulos posteriores, quando as examinaremos com mais detalhes. Veremos exatamente como as

(40)

1.3.2

aplicações utilizam os protocolos TCP/IP básicos e por que ter padrões para protocolos de aplicação tem ajudado a garantir que eles sejam difundidos.

Serviços de Internet em nível de rede

Um programador que cria programas aplicativos para rede possui uma visão da Internet totalmente diferente daquela que possui um usuário que simplesmente executa aplicações, como um site de busca na web. Em nível de rede, a Internet oferece dois grandes tipos de serviço que todos os programas aplicativos utilizam. Embora não seja importante no momento entender os detalhes desses serviços, eles são fundamentais para uma visão geral do TCP/IP.

Connectionless Packet Delivery Service. O envio por pacotes, explicado com detalhes ao longo do texto, forma a base para todos os serviços da internet. A entrega sem conexão é uma abstração do serviço que a maioria das redes de comutação de pacotes oferece. Significa simplesmente que uma rede TCP/IP encaminha pequenas mensagens de um computador para outro com base na informação de endereço transportada na mensagem. Como o serviço sem conexão encaminha cada pacote separadamente, uma internet não garante, de forma confiável, a entrega em ordem. Entretanto, por mapear diretamente na maioria das tecnologias de hardware, o serviço sem conexão é extremamente eficiente. Mais importante, devido ao projeto promover a entrega de pacote sem conexão como base para todos os serviços de internet, os protocolos TCP/IP podem se adaptar a uma grande gama de hardwares de rede.

Serviço de transporte com fluxo confiável (reliable stream transport service). A maioria das aplicações precisa que o software de comunicação recupere automaticamente erros de transmissão, pacotes perdidos ou falhas dos comutadores (switches) intermediários ao longo do caminho entre emissor e receptor. Consequentemente, elas precisam de um serviço de transporte confiável para resolver esses problemas. O serviço de transporte confiável de fluxo permite que uma aplicação em um computador estabeleça uma “conexão” com uma aplicação em outro computador e permite que a aplicação transfira arbitrariamente grandes volumes de dados pela conexão, como se fosse uma conexão direta de hardware permanente. Por trás disso, os protocolos de comunicação dividem o fluxo de dados em pequenos

(41)

pacotes e os enviam, um de cada vez, esperando que o receptor confirme a recepção.

Muitas redes fornecem serviços básicos semelhantes àqueles esboçados acima, de modo que alguém poderia questionar o que distingue os serviços TCP/IP dos outros. As principais características que os distinguem são apresentadas a seguir:

Independência da tecnologia de rede. Embora o TCP/IP seja baseado na tecnologia de comutação de pacotes, ele é independente de qualquer marca ou tipo de hardware em particular; a Internet global inclui uma série de tecnologias de rede. Os protocolos TCP/IP definem a unidade de transmissão de dados, denominada datagrama, e especificam como transmiti-los em uma rede em particular, mas nada em um datagrama está vinculado a um hardware específico.

Interconexão universal. A Internet permite a comunicação de qualquer par de computadores. Cada computador recebe um endereço que é reconhecido universalmente pela Internet. Cada datagrama transporta os endereços de sua origem e destino. Os dispositivos de comutação intermediários utilizam o endereço de destino para tomar decisões de encaminhamento; um emissor só precisa saber o endereço do receptor e a Internet se encarrega de encaminhar os datagramas. Confirmações fim a fim. Os protocolos TCP/IP da Internet fornecem confirmações entre a origem e o destino final, e não entre máquinas sucessivas ao longo do caminho, mesmo que a origem e o destino não se conectem a uma rede física comum.

Padrões de protocolo de aplicação. Além dos serviços básicos em nível de transporte (como as conexões de fluxo confiável), os protocolos TCP/IP incluem padrões para muitas aplicações comuns, incluindo protocolos que especificam como acessar uma página na web, transferir arquivos, e enviar e-mail. Assim, ao projetar programas aplicativos que utilizam o TCP/IP, os programadores normalmente procuram os softwares existentes que tenham os protocolos de aplicação que permitam os serviços de comunicação de que precisam. Capítulos posteriores discutirão os detalhes dos serviços fornecidos ao programador, assim como exemplos de padrões de aplicação de protocolo.

(42)

1.4 História e escopo da Internet

Parte do que torna a tecnologia TCP/IP tão interessante é sua adoção universal e o tamanho e a taxa de crescimento da Internet global. A DARPA começou a trabalhar em direção a uma tecnologia de interconexão de redes em meados da década de 1970, com a arquitetura e os protocolos tomando sua forma atual por volta de I977-1979. Nessa época, a DARPA era conhecida como a principal agência financiadora de pesquisa de redes de comutação de pacotes, pioneira de muitas ideias na comutação de pacotes, com sua conhecida ARPANET. A ARPANET usava interconexões de linha alugada ponto a ponto convencional, mas a DARPA também financiou a exploração da comutação de pacotes por redes de rádio e canais de comunicação por satélite. Na realidade, a diversidade crescente das tecnologias de hardware de rede ajudou a forçar a DARPA a estudar a interconexão de rede e levou adiante a interligação de redes.

A disponibilidade do financiamento de pesquisa da DARPA chamou a atenção e a imaginação de vários grupos de pesquisa, especialmente aqueles pesquisadores que já haviam adquirido experiência anterior no uso da comutação de pacotes na ARPANET. A DARPA marcou reuniões informais de pesquisadores para compartilhar ideias e discutir resultados de experiências. Informalmente, o grupo era conhecido como Internet Research Group. Em 1979, tantos pesquisadores estavam envolvidos no esforço do TCP/IP que a DARPA criou um comitê informal para coordenar e guiar o projeto dos protocolos e a arquitetura da Internet emergente. Denominado Internet Control and Configuration Board (ICCB), o grupo se reunia regularmente até 1983, quando foi reorganizado.

A Internet global começou por volta de 1980, quando a DARPA começou a converter máquinas conectadas às suas redes de pesquisa aos novos protocolos TCP/IP. Já em funcionamento, a ARPANET rapidamente se tornou o backbone da nova Internet e foi usada para muitas das primeiras experiências com TCP/IP. A transição para a tecnologia de Internet foi completada em janeiro de 1983, quando a Secretaria de Defesa determinou que todos os computadores conectados a redes de longa distância usassem TCP/IP. Ao mesmo tempo, a Defense Communication Agency (DCA) dividiu a ARPANET em duas redes separadas, uma para continuar a pesquisa e uma para comunicação militar. A parte de pesquisa reteve o nome ARPANET; a parte militar, que era um pouco maior, tornou-se conhecida como a rede militar (MILNET).

(43)

novos protocolos, a DARPA tornou a implementação disponível a baixo custo. Nesse tempo, a maior parte dos departamentos de ciência de computação estavam executando uma versão do sistema operacional UNIX disponível no BerkeleySoftware Distribution da Universidade da Califórnia, normalmente chamado BerkeleyUNIX ou BSD UNIX. Ao financiar a Bolt Beranek e Newman, Incorporated (BBN) para implementar seus protocolos TCP/IP para uso com UNIX e ao financiar a Berkeley para integrar os protocolos com sua distribuição de software, a DARPA foi capaz de alcançar mais de 90% dos departamentos de ciência de computação das universidades. O novo protocolo chegou em uma época particularmente significativa, pois muitos departamentos estavam acabando de adquirir segundo ou terceiro computadores e conectando-os a redes locais. Os departamentos precisavam de protocolos de comunicação que fornecessem serviços como transferência de arquivos.

Além de um conjunto de programas utilitários, o Berkeley UNIX criou uma nova abstração no sistema operacional conhecida como socket, para permitir que programas aplicativos acessassem protocolos de Internet. Uma generalização do mecanismo UNIX para I/O, a interface socket tem opções para vários tipos de protocolos de rede, além do TCP/IP. A introdução da abstração de socket foi importante porque permitiu que os programadores usassem protocolos TCP/IP com pouco esforço. A interface socket tornou-se o padrão de fato, sendo usada na maioria dos sistemas operacionais.

Percebendo que a comunicação de redes logo seria uma parte crucial da pesquisa científica, a National Science Foundation (NSF) assumiu um papel ativo na expansão da Internet TCP/IP no sentido de alcançar o máximo possível de cientistas. No final da década de I970, a NSF patrocinou um projeto conhecido como Computer Science NETwork (CSNET), cujo objetivo foi conectar todos os cientistas de computação. A partir de I985, a NSF iniciou um programa para estabelecer redes de acesso em torno de seus seis centros de supercomputação, e em 1986 expandiu os esforços de rede financiando uma nova rede de backbone, conhecida como backbone NSFNET. A NSF também forneceu muito dinheiro para redes regionais, cada uma conectando as principais instituições de pesquisa científica em determinada área.

Por volta de 1984, a Internet chegou a mais de 1.000 computadores. Em 1987, o tamanho cresceu para mais de 10.000. Em 1990, o tamanho superou 100.000, e, em 1993, ultrapassou 1 milhão. Em 1997, mais de 10 milhões de

Referências

Documentos relacionados