• Nenhum resultado encontrado

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

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

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

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

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

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

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

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.

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).

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

1.5

1.6

computadores foram permanentemente ligados à Internet e, em 2001, o tamanho excedeu 100 milhões. Em 2011, a Internet atingiu mais de 800 milhões de computadores permanentemente conectados.

O crescimento inicial da Internet não ocorreu simplesmente porque as universidades e grupos financiados pelos governos adotaram os protocolos.