• Nenhum resultado encontrado

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

CONTEÚDOS DO CAPÍTULO

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

3.1

3.2

Introdução

Até aqui, vimos os detalhes de transmissão de baixo nível através de redes de dados individuais, a base sobre a qual toda a comunicação por computador é construída. Este capítulo dá um salto conceitual gigante descrevendo um esquema que nos permite agrupar as diversas tecnologias de rede em um todo coordenado. O principal objetivo é um sistema que esconda os detalhes de hardware subjacente de rede, enquanto fornece serviços de comunicação universal. O resultado principal é uma abstração de alto nível que fornece a estrutura para todas as decisões de projeto. Capítulos seguintes mostram como usamos a abstração aqui descrita para construir as camadas de software de comunicação de internet necessárias e como o software omite os mecanismos subjacentes de transporte físico. Capítulos posteriores mostram como os aplicativos usam o sistema de comunicação resultante.

Interconexão em nível de aplicação

Quando confrontados com sistemas heterogêneos, os primeiros criadores contaram com programas de aplicação especiais, chamados gateways de aplicação, para esconder as diferenças subjacentes e fornecer a aparência de uniformidade. Por exemplo, uma das primeiras incompatibilidades surgiu a partir de sistemas de e-mail comerciais. Cada fornecedor projetou

Figura 3.1

seu próprio sistema de e-mail. Os provedores escolheram um formato para armazenar e-mail, convenções para identificar um destinatário e um método para transferir mensagem de e-mail do remetente ao destinatário. Infelizmente, os sistemas eram totalmente incompatíveis.

Quando era necessária uma conexão entre os sistemas de e-mail, usava- se um gateway de aplicação. O software de gateway era executado em um computador que se conectava a ambos os sistemas de e-mail, como ilustra a Figura 3.1.

Ilustração de um gateway de aplicação usado para acomodar um par de sistemas de e-mail heterogêneos.

O gateway de aplicação deve compreender os detalhes das conexões de rede e os protocolos de mensagens, bem como o formato das mensagens usado nos dois sistemas de e-mail. Quando o usuário 1 envia uma mensagem para o usuário 2, o e-mail do usuário 1 é configurado para enviar a mensagem para o gateway de aplicação. Este deve traduzi-la para a forma utilizada pelo sistema de e-mail 2 e, em seguida, encaminhar a mensagem para o usuário 2.

Usar programas de aplicação para ocultar detalhes da rede pode parecer bastante razoável. Já que tudo pode ser manipulado por um aplicativo, não é necessário nenhum hardware especial. Além disso, os sistemas originais de e-mail nos computadores dos usuários permanecem inalterados. Na verdade, nem os usuários nem o software de e-mail nos computadores dos usuários podem dizer que o outro usuário tem um sistema de e-mail diferente.

Infelizmente, a abordagem no gateway de aplicação é complicada e limitada. A principal desvantagem surge porque um determinado gateway de aplicação só pode lidar com uma aplicação específica. Por exemplo, mesmo que um gateway de e-mail esteja ativo, ele não pode ser usado para transferir arquivos, conectar sessões de chat ou encaminhar mensagens de texto. Uma segunda desvantagem surge quando as diferenças de funcionalidade evitam interoperação. Por exemplo, se o sistema de e-mail 1 permite a um remetente anexar um arquivo a uma mensagem, mas o

3.3

sistema de e-mail 2 não, um gateway de aplicação não vai ser capaz de transferir mensagens que incluam arquivos. A terceira desvantagem surge a partir da frequência de atualizações. Sempre que um ou outro fornecedor muda seu software de e-mail, o gateway deve ser atualizado para lidar com essa mudança. Assim, gateways de aplicação devem ser atualizados frequentemente.

Nosso exemplo considera apenas um gateway de aplicação que conecta dois sistemas. Os usuários que têm experiência em rede entendem que, uma vez que o tamanho de um sistema de comunicação cresça o suficiente para se tornar global e existam vários fornecedores cada um criando seu próprio software de aplicação, será impossível manter um conjunto de gateways de aplicação que interliguem todas as redes. Além disso, para evitar a criação de gateways de aplicação para todas as combinações possíveis, o sistema evolui rapidamente a fim de usar um paradigma de comunicação passo a passo em que uma mensagem enviada para o primeiro gateway de aplicação é convertida e enviada para o segundo, e assim por diante. Uma comunicação bem-sucedida requer um correto funcionamento de todos os gateways de aplicação ao longo do caminho. Se qualquer um deles não consegue realizar a tradução correta, a mensagem não será entregue. Além disso, a fonte e o destino podem continuar incapazes de detectar ou controlar o problema. Assim, os sistemas que usam gateways de aplicação não podem garantir uma comunicação confiável.

Interconexão em nível de rede

A alternativa ao uso de gateways em nível de aplicativo é um sistema baseado na interligação em nível de rede. Ou seja, podemos conceber um sistema que transfere pacotes a partir de sua fonte original até seu destino final sem o uso de programas aplicativos intermediários. Comutação de pacotes em vez de arquivos ou mensagens grandes tem várias vantagens. Primeiro, o sistema mapeia diretamente no hardware de rede subjacente, tornando-se extremamente eficiente. Em segundo lugar, a interligação em nível de rede separa atividades de comunicação de dados de programas aplicativos, permitindo que computadores intermediários lidem com o tráfego de rede sem compreender as aplicações que estão enviando ou recebendo mensagens. Em terceiro lugar, a comunicação em nível de rede mantém a totalidade do sistema flexível, tornando possível a construção de instalações de comunicações de finalidade geral que não estão limitadas a usos específicos. Em quarto lugar, veremos que o sistema permite aos gerentes de rede adicionarem ou alterarem as tecnologias de rede, enquanto os programas de aplicação permanecem inalterados.

• •

A chave para a concepção de interconexão universal em nível de rede pode ser encontrada na de comunicação abstrata, conceito conhecido como interligação de rede em um sistema. O conceito de internet é extremamente poderoso. Ela separa as noções de comunicação dos detalhes das tecnologias de rede e oculta de usuários e aplicações detalhes de baixo nível. Mais importante, dirige todas as decisões de projeto de software e explica como lidar com endereços físicos e rotas. Depois de analisar as motivações básicas para interligações de redes, vamos considerar de forma mais detalhada as propriedades de uma internet.

Começamos com duas observações fundamentais sobre a concepção de sistemas de comunicação:

nenhuma tecnologia de hardware de rede única pode satisfazer todas as restrições;

usuários desejam interconexão universal.

A primeira observação é de ordem tanto econômica quanto técnica. Tecnologias de LAN de baixo custo que proporcionam comunicação de alta velocidade só cobrem curtas distâncias; redes de que se estendem por longas distâncias não podem fornecer comunicação local barata. É possível conseguir apenas dois itens no grupo alta velocidade, longa distância e baixo custo, mas não é possível atingir todos os três. Então, como não há tecnologia de rede única capaz de satisfazer todas as necessidades, somos forçados a considerar várias tecnologias de hardware subjacentes.

A segunda observação é autoexplicativa. Um usuário arbitrário gostaria de ser capaz de comunicar-se com um terminal arbitrário, outro usuário ou um sistema de computador. Dado o desejo de acesso móvel, podemos dizer que um usuário arbitrário gostaria de se envolver em uma comunicação a partir de uma localização arbitrária. Como consequência, desejamos um sistema de comunicação que não seja limitado pelas fronteiras de redes físicas.

O objetivo é construir um sistema unificado e cooperativo de interligação de redes que suporte um serviço de comunicação universal. Cada computador será anexado a uma rede específica, como as descritas no Capítulo 2, e vai usar os meios de comunicação dependentes de tecnologia de rede subjacente. Um novo software, inserido entre os mecanismos de comunicação dependentes de tecnologia e programas de aplicação, irá esconder todos os detalhes de baixo nível e fazer o conjunto de redes parecerem uma única grande rede. Tal esquema de interconexão é chamado interligação de redes ou internet.

3.4

A ideia de construir uma internet segue um modelo-padrão de projeto de sistema: pesquisadores imaginaram uma instalação de alto nível e trabalharam a partir de tecnologias de base disponíveis para realizar o objetivo imaginado. Na maioria dos casos, os pesquisadores criam um software que oferece cada um dos mecanismos necessários. Eles continuam até que produzam um sistema de trabalho que implemente de forma eficiente o sistema previsto. A próxima seção mostra o primeiro passo do processo de concepção, definindo a meta de forma mais precisa. As seções seguintes explicam a abordagem e os capítulos seguintes explicam princípios e detalhes.

Propriedades da Internet

A noção de serviço universal é importante, mas apenas isso não abrange todas as ideias que temos em mente para uma internet unificada. Na verdade, pode haver muitas implementações de serviços universais. Um dos primeiros princípios em nosso projeto objetiva o encapsulamento: queremos ocultar do usuário a arquitetura de rede subjacente e permitir a comunicação sem que seja necessário ter conhecimento da estrutura da internet. Ou seja, não queremos exigir que os usuários ou programas de aplicação entendam os detalhes das redes subjacentes ou interconexões de hardware para usar a internet. Não queremos também exigir uma topologia de interconexão de rede. Em particular, a inclusão de uma nova rede à internet não deverá significar a conexão a um ponto de comutação centralizado, e nem deverá significar a inclusão de conexões físicas diretas entre o novo hardware e todas as redes existentes. Queremos ser capazes de enviar dados por redes intermediárias, embora elas não estejam conectadas diretamente aos computadores de origem ou destino. Queremos que todos os computadores na rede compartilhem um conjunto universal de identificadores de máquina (que podem ser imaginados como nomes ou endereços).

Nossa noção de uma rede unificada também inclui a ideia de independência de rede e computador. Ou seja, queremos que o conjunto de operações usadas para estabelecer a comunicação ou transferir dados permaneça independente das tecnologias de rede subjacentes e do computador de destino. Um usuário não deve ter que conhecer sobre redes ou computadores remotos quando utilizar uma aplicação, e um programador não precisará entender de topologia de interconexão de rede ou do tipo de um computador remoto ao criar ou usar programas aplicativos que se comunicam pela internet.

3.5

Figura 3.2

3.6

Arquitetura da Internet

Temos visto como os computadores se conectam a redes individuais. Surge a pergunta: como as redes são interligadas para formar interligação de redes? A resposta tem duas partes. Fisicamente, duas redes não podem ser conectadas em conjunto diretamente. Em vez disso, elas só podem ser ligadas por um sistema de computador que tem o hardware necessário para se conectar a cada uma das redes. A ligação física não fornece a interligação que temos em mente, no entanto, porque essa ligação não garante que um computador vá cooperar com outras máquinas que desejem se comunicar. Para se ter uma internet viável, precisamos de computadores especiais que estão dispostos a transferir pacotes de uma rede para outra. Os computadores que interligam duas redes e passam pacotes de uma para outra são chamados de roteadores de internet ou roteadores IP.*

Para entender a interconexão, considere um exemplo que consiste de duas redes físicas e um roteador, como mostra a Figura 3.2.

Duas redes físicas interconectadas por um roteador IP, R.

Na figura, o roteador R conecta-se a ambas as redes, rede 1 e rede 2. Para R atuar como um roteador, deve capturar pacotes na rede 1 que são direcionados para a rede 2 e transferi-los. De forma análoga, R deve capturar pacotes na rede 2 que são destinados para máquinas na rede 1 e transferi-los.

Na figura, são usadas nuvens para denotar redes físicas, pois o hardware exato não é importante. Cada rede pode ser uma LAN ou uma WAN, e cada uma pode ter muitos ou poucos computadores conectados. O uso de nuvens enfatiza uma diferença significativa entre roteadores e bridges – uma bridge só pode conectar duas redes que usem a mesma tecnologia, mas um roteador pode conectar redes arbitrariamente.

Figura 3.3

Embora a Figura 3.2 ilustre a estratégia básica de conexão, ela é extremamente simplista. Uma internet realista incluirá múltiplas redes e roteadores. Nesse caso, cada roteador precisa conhecer as redes além daquelas às quais ele se conecta diretamente. Por exemplo, considere a Figura 3.3, que mostra três redes interconectadas por dois roteadores.

Três redes interconectadas por dois roteadores.

No exemplo, o roteador R1 deve transferir da rede 1 para a rede 2 todos os pacotes destinados a computadores tanto da rede 2 como da rede 3. De forma similar, o roteador R2 deve transferir pacotes da rede 3 que são destinados tanto para a rede 2 como para a rede 1. O importante é que um roteador deve lidar com pacotes para as redes às quais ele não está conectado. Em uma internet grande composta por muitas redes, a tarefa do roteador de decidir sobre para onde enviar os pacotes se torna mais complexa.

A ideia de um roteador parece simples, mas ele é importante, pois fornece uma maneira de interconectar redes, e não só computadores. Na verdade, já descobrimos o principal sobre interconexão usada através de uma internet como descrito a seguir:

Em uma internet TCP/IP, um sistema especial de computadores chamados roteadores IP fornece interconexões entre redes físicas.

Você pode suspeitar que os roteadores devem cada um saber como encaminhar os pacotes para o seu destino, pois são grandes máquinas com memória primária ou secundária suficiente para armazenar informações sobre cada computador na internet à qual eles estão conectados. Na verdade, os roteadores usados com internet TCP/IP podem ser computadores modestos semelhantes a um desktop PC. Eles não precisam

3.7

especialmente de grande armazenamento em disco, nem de uma grande capacidade de memória principal. O truque que permite que os roteadores tenham tamanho razoável reside no conceito a seguir.

Roteadores usam a rede de destino, não o computador de destino, quando estão enviando um pacote.

Como o encaminhamento de pacotes é baseado em redes, a quantidade de informações que um roteador precisa manter é proporcional ao número de redes na internet, não ao número de computadores. Como vimos no Capítulo 1, existem duas vezes menos redes na Internet do que computadores.

Em virtude de eles terem um papel fundamental na comunicação na internet, vamos voltar aos roteadores em capítulos posteriores para discutir os detalhes de como eles funcionam e de como aprendem sobre destinos remotos. Por enquanto, suponhamos que é possível e prático para cada roteador ter rotas corretas para todas as redes em uma internet. Iremos também assumir que apenas roteadores fornecem conexões entre redes físicas em uma internet.

A visão do usuário

Lembre-se de que uma internet é projetada para fornecer uma interconexão universal entre computadores, independentemente das redes específicas a que se ligam. Queremos que um usuário visualize uma internet como uma única rede virtual à qual todas as máquinas conectam-se, apesar de suas conexões físicas. A Figura 3.4 ilustra a ideia.

Figura 3.4 (a) A visão do usuário de uma internet TCP/IP em que cada computador parece se conectar a uma única rede grande e (b) a estrutura das redes físicas e dos roteadores que fornecem

interconexão.

Na figura, a parte (a) mostra a visão que o usuário tem. Ele pensa na internet como um sistema de comunicação unificado. A visão do usuário simplifica os detalhes e torna mais fácil conceituar comunicação. A parte (b) ilustra as redes constituintes e sua interligação com roteadores. Claro que cada computador que se conecta a uma internet deve executar um software que impõe o ponto de vista de uma única rede física. O software deve ocultar detalhes e permitir a programas aplicativos enviarem e receberem pacotes em locais arbitrários, como se o computador fosse conectado a uma única rede.

A vantagem de fornecer interligação em nível de rede torna-se agora clara. Como os programas aplicativos que se comunicam através da internet não sabem os detalhes de conexões subjacentes, eles podem ser executados sem alterações em qualquer computador. Devido aos detalhes de conexões de rede física de cada máquina estarem escondidos no software de internet, apenas ele precisa reagir quando novas conexões físicas são adicionadas ou conexões existentes são removidas. Por exemplo, um dispositivo portátil pode se conectar a uma rede Wi-Fi em um aeroporto, ser desligado para o voo e, em seguida, ser conectado a uma rede Wi-Fi em outro aeroporto sem

3.8

que as aplicações sejam afetadas de maneira alguma. Mais importante, é possível mudar a estrutura interna da internet (por exemplo, adicionando uma rede ou um roteador) enquanto os programas aplicativos estão sendo executados.

A segunda vantagem de ter a comunicação em nível de rede é mais sutil: lembre-se de que os usuários não têm de entender ou especificar como as redes se conectam, o tráfego que carregam ou que aplicações elas suportam. Na verdade, as redes internas não conhecem as aplicações – elas apenas transportam pacotes. Como resultado, os programadores que não conhecem estrutura de internet podem criar aplicativos, e a internet não precisa ser modificada quando uma nova aplicação é criada. Assim sendo, os gerentes de rede são livres para mudar partes interiores da arquitetura subjacente da internet sem qualquer efeito no software aplicativo. Claro que, se um computador se mover para um novo tipo de rede, vai precisar de um novo cartão de interface de rede e do software do driver associado, mas isso é simplesmente uma atualização das capacidades do computador, em vez de uma mudança devido à internet.

A Figura 3.4b ilustra um ponto sobre topologia da internet: os roteadores não fazem conexões diretas entre todos os pares de redes em uma internet. Pode ser necessário que o tráfego que viaja de um computador para outro passe através de vários roteadores quando atravessa redes intermédias. Assim, as redes que participam em uma internet são análogas a um sistema de estradas. Redes locais alimentam o tráfego em redes maiores, assim como as estradas locais ligam-se a rodovias. A maior parte dos ISPs fornece redes que lidam com o trânsito do tráfego, assim como o sistema interestadual nos Estados Unidos forma um backbone de rodovias que lidam com o tráfego por longas distâncias.

Todas as redes são iguais

O Capítulo 2 analisou exemplos de hardware de rede usados para construir internets TCP/IP e ilustrou a grande diversidade de tecnologias. Nós descrevemos uma internet como uma coleção de redes cooperativas interconectadas. Agora é importante entender um conceito fundamental: do ponto de vista da internet, qualquer sistema de comunicação capaz de transferir pacotes é considerado como uma única rede, independentemente do seu atraso e características de rendimento, tamanho máximo do pacote, ou escala geográfica. Em particular, a Figura 3.4b usa a mesma forma de pequena nuvem para representar cada rede física porque o TCP/IP os trata igualmente, apesar de suas diferenças. O ponto importante é descrito a seguir.

3.9

O protocolo TCP/IP de uma internet trata todas as redes de forma igual. Uma rede de área local como uma Ethernet, uma rede de longa distância usada como backbone, uma rede wireless tal como um hotspot Wi-Fi e um link ponto a ponto entre dois computadores, cada uma, conta como uma rede.

Os leitores não acostumados à arquitetura internet podem achar difícil aceitar essa visão simplista de redes. Em essência, o TCP/IP define uma abstração de “rede” que esconde os detalhes de redes físicas. Na prática, os