01 - Redes

67
Redes de Computadores Prof. Aluízio Rocha Natal, 2003 LIGA DE ENSINO DO RIO GRANDE DO NORTE FACULDADE NATALENSE PARA O DESENVOLVIMENTO DO RIO GRANDE DO NORTE

Transcript of 01 - Redes

Page 1: 01 - Redes

Redes de Computadores

Prof. Aluízio Rocha

Natal, 2003

LIGA DE ENSINO DO RIO GRANDE DO NORTE FACULDADE NATALENSE PARA O DESENVOLVIMENTO DO RIO GRANDE DO NORTE

Page 2: 01 - Redes

Redes de Computadores Aluízio Rocha

2

Sumário 1 Introdução ........................................................................................................................ 5

1.1 Evolução dos Sistemas de Computação ................................................................................. 5 1.2 Redes de Computadores......................................................................................................... 6 1.3 Parâmetros de comparação..................................................................................................... 7

1.3.1 Custo ................................................................................................................................................7 1.3.2 Retardo de Transferência .................................................................................................................7 1.3.3 Desempenho ....................................................................................................................................7 1.3.4 Confiabilidade..................................................................................................................................7 1.3.5 Modularidade...................................................................................................................................7 1.3.6 Compatibilidade...............................................................................................................................8 1.3.7 Sensibilidade Tecnológica ...............................................................................................................8

2 Topologias ......................................................................................................................... 9 2.1 Linhas de Comunicação ......................................................................................................... 9 2.2 Redes Geograficamente Distribuídas ................................................................................... 10 2.3 Redes Locais e Metropolitanas ............................................................................................ 11

2.3.1 Topologia em Estrela .....................................................................................................................11 2.3.2 Topologia em Anel ........................................................................................................................11 2.3.3 Topologia em Barra .......................................................................................................................12

2.4 Exemplo de Rede em Barra: Ethernet .................................................................................. 13 2.4.1 Compartilhamento em uma Ethernet .............................................................................................13 2.4.2 Sensibilidade de Portadora em Redes de Acesso Múltiplo com Detecção de Colisão (CSMA/CD) 14

2.5 Projeto de Redes Locais ....................................................................................................... 14 2.5.1 Cabeamento Fino de Ethernet ........................................................................................................14 2.5.2 Ethernet de Par Trançado...............................................................................................................15 2.5.3 Extensões de Fibra Ótica ...............................................................................................................15 2.5.4 Repetidores ....................................................................................................................................16 2.5.5 Bridges...........................................................................................................................................17 2.5.6 Exemplos de Cabeamento..............................................................................................................17

2.6 Redes Locais sem Fio .......................................................................................................... 18 2.6.1 Padrão IEEE 802.11.......................................................................................................................19 2.6.2 Conexão com Pontos de Acesso ou Ponto a Ponto ........................................................................20

3 Transmissão da Informação.......................................................................................... 21 3.1 Informação e Sinal ............................................................................................................... 21 3.2 Freqüência............................................................................................................................ 21 3.3 Sinais Analógicos e Digitais ................................................................................................ 22 3.4 Banda Passante..................................................................................................................... 23 3.5 Multiplexação e Modulação................................................................................................. 24

3.5.1 Multiplexação na Freqüência .........................................................................................................25 3.5.2 Técnicas de Modulação..................................................................................................................26 3.5.3 Sistemas em Banda Larga e em Banda Básica...............................................................................27 3.5.4 PCM...............................................................................................................................................23 3.5.5 Multiplexação no Tempo ...............................................................................................................26

3.6 Comutação ........................................................................................................................... 27 3.6.1 Comutação de Circuitos.................................................................................................................28 3.6.2 Comutação de Mensagens..............................................................................................................29 3.6.3 Comutação de Pacotes ...................................................................................................................29

3.7 Técnicas de Detecção de Erros ............................................................................................ 30 3.7.1 Paridade .........................................................................................................................................30 3.7.2 Checksum ......................................................................................................................................31 3.7.3 CRC ...............................................................................................................................................31

4 Arquitetura de Redes de Computadores ..................................................................... 32 4.1 Por que Protocolos são necessários...................................................................................... 32 4.2 Conjuntos de Protocolos ...................................................................................................... 32

Page 3: 01 - Redes

Aluízio Rocha Redes de Computadores

3

4.3 Um plano para Projeto de Protocolo.....................................................................................32 4.4 As Sete Camadas ..................................................................................................................33 4.5 Pilhas: Divisão de Software em Camadas ............................................................................34 4.6 Como o Software em Camadas Funciona.............................................................................35 4.7 Múltiplos Cabeçalhos Aninhados .........................................................................................35 4.8 Técnicas Usadas por Protocolos ...........................................................................................55

4.8.1 Seqüenciamento de Pacotes........................................................................................................... 55 4.8.2 Retransmitindo pacotes perdidos................................................................................................... 56 4.8.3 Controle de Fluxo para Prevenir Atropelamento de Dados ........................................................... 56

5 Ligação Inter-redes.........................................................................................................36 5.1 Motivação para Ligação Inter-redes .....................................................................................36 5.2 Ligação Inter-redes ...............................................................................................................36 5.3 Arquitetura de Inter-rede ......................................................................................................36 5.4 Uma Rede Virtual .................................................................................................................37 5.5 Protocolos para Ligação Inter-redes .....................................................................................38 5.6 Arquitetura da Internet TCP/IP.............................................................................................38 5.7 Comparação entre as Arquiteturas OSI e Internet TCP/IP ...................................................40

6 Endereçamento IP ..........................................................................................................41 6.1 Endereços para a Inter-rede Virtual ......................................................................................41 6.2 O Esquema de Endereçamento IP.........................................................................................41 6.3 A Hierarquia de Endereços IP ..............................................................................................41 6.4 Classes de Endereços IP .......................................................................................................42 6.5 Notação Decimal Pontilhada ................................................................................................42 6.6 Classes e Notação Decimal Pontilhada.................................................................................43 6.7 Divisão do Espaço de Endereçamento..................................................................................43 6.8 Um Exemplo de Endereçamento ..........................................................................................44 6.9 Resolução de Endereços .......................................................................................................44

6.9.1 Técnicas de Resolução de Endereços ............................................................................................ 44 6.9.2 Protocolo de Resolução de Endereço (ARP) ................................................................................. 45 6.9.3 Protocolo Reverso de Resolução de Endereço............................................................................... 46

6.10 Endereços IP Especiais .........................................................................................................46 6.10.1 Endereço de Rede ..................................................................................................................... 46 6.10.2 Endereço de Broadcast.............................................................................................................. 46 6.10.3 Endereço de Broadcast Limitado .............................................................................................. 47 6.10.4 Endereço de Loopback.............................................................................................................. 47

6.11 Endereços IP Privados ..........................................................................................................47 6.12 Roteadores e o Princípio de Endereçamento IP....................................................................48

7 Roteamento IP ................................................................................................................49 7.1 O Datagrama IP ....................................................................................................................49 7.2 Roteamento ...........................................................................................................................49 7.3 Entradas da Tabela de Roteamento e o Campo de Máscara .................................................50 7.4 Sub-Redes .............................................................................................................................51 7.5 Rota Padrão...........................................................................................................................52 7.6 Exercícios .............................................................................................................................53

8 Protocolos de Transporte...............................................................................................54 8.1 Introdução .............................................................................................................................54 8.2 Características do TCP..........................................................................................................54

8.2.1 Serviço Fim-a-Fim......................................................................................................................... 55 8.2.2 Obtendo Confiabilidade................................................................................................................. 55

8.3 Características do UDP.........................................................................................................58 8.4 O Paradigma Cliente-Servidor..............................................................................................58

8.4.1 Características de Clientes e Servidores ........................................................................................ 58 8.4.2 Programas Servidores e Computadores da Classe Servidor .......................................................... 59 8.4.3 Protocolos de Transporte e Interação Cliente-Servidor ................................................................. 59

8.5 Identificando um Serviço Particular .....................................................................................60 8.5.1 Comunicação Não-Ambígua ......................................................................................................... 60

Page 4: 01 - Redes

Redes de Computadores Aluízio Rocha

4

8.6 Interface de Sockets ............................................................................................................. 61 8.6.1 Parâmetros e a API de Sockets ......................................................................................................61

9 Sistema de Nomes de Domínios .................................................................................... 62 9.1 O Problema .......................................................................................................................... 62 9.2 A Solução............................................................................................................................. 63 9.3 Estrutura de Nomes de Computador .................................................................................... 63 9.4 Estrutura Geográfica ............................................................................................................ 64 9.5 Nomes de Domínio Dentro de uma Organização................................................................. 64 9.6 A Hierarquia do Servidor DNS ............................................................................................ 65 9.7 Resolvendo um Nome.......................................................................................................... 66

Page 5: 01 - Redes

Aluízio Rocha Redes de Computadores

5

1 Introdução

A comunicação é uma das maiores necessidades da sociedade humana desde os primórdios de sua existência. Conforme as populações se espalhavam, a comunicação a longa distância se tornava cada vez mais uma necessidade e um desafio. Formas de comunicação através de sinais de fumaça ou pombos-correio foram as maneiras encontradas por nossos ancestrais para tentar aproximar as comunidades.

A conjunção destas duas tecnologias – comunicação e processamento de informações

– veio revolucionar o mundo em que vivemos, abrindo as fronteiras com novas formas de comunicação, e permitindo uma maior eficácia dos sistemas computacionais. Redes de computadores são hoje uma realidade neste contexto. Para que possamos entendê-las, é necessário que observemos como se deu a evolução dos sistemas de computação até os dias de hoje, onde a distribuição do poder computacional é uma tendência indiscutível.

1.1 Evolução dos Sistemas de Computação

Na década de 1950, computadores eram máquinas grandes e complexas, operadas por

pessoas altamente especializadas. Usuários enfileiravam-se para submeter seus jobs (utilizando-se de leitoras de cartões ou fitas magnéticas) que eram processadas em lote (batch).

Avanços na década de 1960 possibilitaram o desenvolvimento dos primeiros terminais

interativos, permitindo aos usuários acesso ao computador central através de linhas de comunicação. Usuários passavam a ter então interação direta com o computador, ao mesmo tempo em que avanços nas técnicas de processamento davam origem a sistemas de tempo compartilhado (time-sharing), permitindo que as várias tarefas dos diferentes usuários ocupassem simultaneamente o computador central, através de uma espécie de revezamento no tempo de ocupação do processador.

Com o desenvolvimento tecnológico, a contínua redução do custo do hardware

acompanhada do aumento da capacidade computacional levou também ao uso cada vez maior dos microcomputadores. Esses sistemas pequenos e dispersos eram mais acessíveis ao usuário, possuíam um tempo de resposta melhor e eram mais fáceis de utilizar.

Embora o custo do hardware de processamento estivesse caindo, o preço dos

equipamentos periféricos continuavam alto. Assim, a interconexão entre os vários sistemas para o uso compartilhado de dispositivos periféricos tornou-se importante.

A capacidade de troca de informações também foi uma razão importante para a

interconexão. Usuários de sistemas de computação não trabalham isolados e necessitam de alguns benefícios oferecidos por um sistema centralizado. Entre esses, encontram-se a capacidade de troca de mensagens, a facilidade de acesso a dados e programas de várias fontes quando da preparação de um documento.

A busca de paralelismo para a solução de problemas complexos também impulsionou

os pesquisadores a criar novas arquiteturas que propunham a distribuição e o paralelismo como forma de melhorar o desempenho, confiabilidade e modularidade dos sistemas computacionais.

Page 6: 01 - Redes

Redes de Computadores Aluízio Rocha

6

1.2 Redes de Computadores

Uma Rede de Computadores é formada por um conjunto de módulos processadores (MPs)1 capazes de trocar informações e compartilhar recursos, interligados por um sistema de comunicação, conforme ilustrado na figura abaixo.

O Sistema de Comunicação vais se constituir de um arranjo topológico interligando os

vários módulos processadores através de enlaces físicos (meios de transmissão) e de um conjunto de regras com o fim de organizar a comunicação (protocolos).

Redes Locais (Local Área Network – LANs) surgiram dos ambientes de institutos de

pesquisa e universidades. Pode-se caracterizar uma rede local como sendo uma rede que permite a interconexão de equipamentos de comunicação de dados numa pequena região. Em geral, nos dias de hoje, constuma-se considerar “pequena região” distâncias entre 100m e 25Km. Outras características associadas a redes locais são: alta taxa de transmissão (de 0,1 a 100Mbps) e baixas taxas de erro (de 10-8 a 10-11). É importante notar que os termos “pequena região”, “altas taxas de transmissão” ou “baixas taxas de erro” são susceptíveis à evolução tecnológica atual e certamente não serão mais os mesmos dentro de poucos anos.

Quando a distância de ligação entre os vários módulos processadores começa a atingir

distâncias metropolitanas, chamamos esses sistemas de Redes Metropolitanas (Metropolitan Área Networks – MANs). Uma rede metropolitana apresenta características semelhantes à redes locais, sendo que as MANs, em geral, cobrem distâncias maiores do que as LANs operando em velocidades menores.

Redes Geograficamente Distribuídas (Wide Área Networks – WANs) surgiram da

necessidade de se compartilhar recursos especializados por uma maior comunidade de usuários geograficamente dispersos. Por terem um custo de comunicação bastante elevado (circuitos por satélite e enlaces de microondas), tais redes são em geral públicas, isto é, o sistema de comunicação, chamado de sub-rede de comunicação, é mantido, gerenciado e de propriedade pública. Ainda por problemas de custo, as velocidades de transmissão empregadas são baixas: da ordem de algumas dezenas de kilobits/segundo.

1 A definição de módulos processadores se refere a qualquer dispositivo capaz de se comunicar através do sistema de comunicação por troca de mensagens.

Sistema de Comunicação

Page 7: 01 - Redes

Aluízio Rocha Redes de Computadores

7

1.3 Parâmetros de comparação

A escolha de um tipo particular de rede para suporte a um dados conjunto de

aplicações é uma tarefa difícil. Cada arquitetura possui características que afetam sua adequação a uma aplicação em particular. Nenhuma solução pode chamar para si a classificação de ótima quando analisada em contexto geral, e até mesmo em particular. Muitos atributos entram em jogo, o que torna qualquer comparação bastante complexa.

1.3.1 Custo

O custo das conexões dependerá muito do desempenho que se espera da rede.

1.3.2 Retardo de Transferência Chamamos de retardo de transferência o intervalo de tempo decorrido desde que uma

mensagem a transmitir é gerada pela estação até o momento em que a estação consiga obter para ela e somente para ela o direito de transmitir, sem que haja colisão de mensagens no meio.

Chamamos de retardo de transmissão o intervalo de tempo decorrido desde o início da

transmissão de uma mensagem por uma estação de origem até o momento em que a mensagem chega à estação destino.

Podemos agora definir o retardo de transferência como a soma dos retardos de acesso

e transmissão. O retardo de transferência é, na maioria das vezes, uma variável aleatória, como veremos mais adiante. No entanto, o maior valor que o retardo de transferência pode assumir é limitado (costuma-se dizer que o retardo de transferência é determinístico, embora a palavra, seja mal empregada).

1.3.3 Desempenho

Vamos definir desempenho de uma rede como a capacidade efetiva de transmissão da

rede. Os termos velocidade, desempenho e retardo de transferência estão intimamente relacionados. A escolha adequada da arquitetura, incluindo a estrutura de conexão, o protocolo de comunicação e o meio de transmissão vão influenciar em muito no desempenho, velocidade e retardo de transferência de uma rede.

1.3.4 Confiabilidade

Confiabilidade pode ser avaliada em termos de tempo médio entre falhas, tolerância à falhas, degradação amena, tempo de reconfiguração após uma falha e tempo médio de reparo.

1.3.5 Modularidade

Modularidade pode ser caracterizada como o grau de alteração de desempenho e funcionalidade que uma rede pode sofrer sem mudar seu projeto original.

Page 8: 01 - Redes

Redes de Computadores Aluízio Rocha

8

1.3.6 Compatibilidade

De fundamental importância, a compatibilidade (ou interoperabilidade) será aqui utilizada como a capacidade que o sistema (rede) possui para se ligar a dispositivos de vários fabricantes, quer a nível de hardware quer a nível de software. 1.3.7 Sensibilidade Tecnológica

Sensibilidade tecnológica, em sua essência, diz respeito à modularidade, e foi aqui destacada devido a sua importância.

Uma rede deve ter a capacidade de suportar todas as aplicações para a qual foi

dedicada, mais aquelas que o futuro possa requerer – incluindo transmissão de vídeo, voz, interconexões com outras redes, etc. Quando possível, não deve ser vulnerável à tecnologia, prevendo a utilização de futuros desenvolvimentos, quer sejam novas estações, novos padrões de transmissão ou novas tecnologias de circuito integrado, transmissão, etc.

Page 9: 01 - Redes

Aluízio Rocha Redes de Computadores

9

2 Topologias

O sistema de comunicação vai se constituir de um arranjo topológico interligando os vários módulos processadores através de enlaces físicos (meios de transmissão) e de um conjunto de regras com o fim de organizar a comunicação (protocolos). A topologia de uma rede de comunicação refere-se à forma com que os enlaces físicos e os nós de comutação estão organizados, determinando os caminhos físicos existentes e utilizáveis ebtre quaisquer pares de estações conectadas a essa rede.

2.1 Linhas de Comunicação

As ligações físicas podem ser de dois tipos: ponto a ponto ou multiponto. Ligações ponto a ponto caracterizam-se pela presença de apenas dois pontos de comunicação, um em cada extremidade do enlace ou ligação em questão. Nas ligações multiponto observa-se a presença de três ou mais dispositivos de comunicação com possibilidade de utilização do mesmo enlace.

A forma de utilização do meio físico que conecta estações dá origem à seguinte classificação sobre a comunicação no enlace:

• Simplex: o enlace é utilizado apenas em um dos dois possíveis sentidos de transmissão.

• Half-duplex: o enlace é utilizado em dois possíveis sentidos de transmissão, porém apenas um por vez.

• Full-duplex: o enlace é utilizado nos dois possíveis sentidos de transmissão simultaneamente.

Você pode estar se perguntando como será possível obter-se comunicação full-duplex através de um único enlace físico. Um enlace pode ser formatado, por exemplo, por dois pares de fios: para a transmissão em cada um dos sentidos (muito embora esta não seja a única forma de implementação para um enlace onde se deseje obter comunicação full-duplex).

Ponto a Ponto Multiponto

Simplex

Half-duplex

ou

Full-duplex

Page 10: 01 - Redes

Redes de Computadores Aluízio Rocha

10

2.2 Redes Geograficamente Distribuídas

Uma primeira tentativa, bastante intuitiva, para a conexão de computadores em rede seria em uma topologia totalmente ligada (todo mundo conectado a todo mundo). A troca de mensagens entre cada par de estações se dá diretamente através de um desses enlaces. Embora, essa topologia apresente maior grau de paralelismo de comunicação, torna-se quase sempre impraticável, principalmente em redes com grande número de estações e fisicamente dispersas. Isto porque o custo de comunicação é bastante alto em redes geograficamente distribuídas.

Outro caso extremo, agora no sentido inverso ao da topologia totalmente ligada, é a

topologia em anel. Nessa topologia procura-se diminuir ao máximo o número de ligações no sistema além de simplificar ao máximo o tipo de ligação utilizada. Dessa forma, utiliza-se, em geral, ligação ponto a ponto que operam num único sentido de transmissão (ligações simplex) fazendo com que o anel apresente uma orientação ou sentido único de transmissão. Apesar de apresentar uma economia considerável, tal topologia apresenta algumas desvantagens que inviabilizam sua utilização. A principal delas diz respeito à inexistência de caminhos alternativos para o tráfego de mensagens; em redes WAN caminhos alternativos devem ser providenciados dado que as linhas utilizadas são, em geral, de baixa velocidade e de pouca confiabilidade. Assim, caímos em uma topologia intermediária que é utilizada pela maioria das redes WAN: a topologia parcialmente ligada (Figura abaixo), também chamada topologia em grafo. Nessa topologia, nem todas as ligações entre pares de estações estão presentes, mas caminhos alternativos existem e podem ser utilizados em casos de falhas ou congestionamentos em determinadas rotas. No caso em que estações sem conexão física direta desejem se comunicar, elas deverão, de alguma forma, encaminhas as suas mensagens para alguma outra estação que possa fazer a entrega da mensagem para a estação de destino. A comunicação entre dois equipamentos pode ser realizada por chaveamento de circuitos, chaveamento de mensagens ou chaveamento de pacotes. Em sistemas de chaveamento de circuitos, um canal entre o ETD (Equipamento Terminal de Dados) fonte e o ETD de destino é estabelecido para uso exclusivo dessas estações até que a conexão seja desfeita, de maneira idêntica a uma chamada telefônica comum. Chaveamento de mensagem ou pacote vai otimizar o uso dos meios de comunicação, tentando evitar a monopolização de todo o caminho durante uma conversação. Maiores detalhes sobre estes tipos de chaveamento, no próximo Capítulo.

3EB

1EB

3AC

2EB

1AC

4AC 2AC

4EB 5EB

A

E

B

C

D

Page 11: 01 - Redes

Aluízio Rocha Redes de Computadores

11

2.3 Redes Locais e Metropolitanas

Em redes locais e metropolitanas, meios de transmissão de alta velocidade, baixa taxa de erro, de baixo custo e privados podem ser usados. Topologias muitas vezes inviáveis em ambientes geograficamente distribuídos podem ser utilizadas.

2.3.1 Topologia em Estrela

Uma rede com topologia em estrela é ilustrada na Figura abaixo. Nesse tipo de

topologia cada estação é interligada a um nó central, através do qual todo o tráfego de informações deve passar. Tal nó age, assim, como centro de controle da rede, interligando as estações através de circuitos físicos dedicados a cada comunicação entre duas estações. Nada impede que haja comunicações simultâneas, desde que as estações envolvidas sejam diferentes.

O nó central cuja função é chaveamento (ou comutação) entre as estações que desejam se comunicar é denominado comutador ou switch.

Redes em estrela não têm necessidade de roteamento, uma vez que concentram todas

as mensagens no nó central. O gerenciamento das comunicações por este nó pode ser por chaveamento de pacotes ou chaveamento de circuitos.

Falhas no nó central podem ocasionar a parada total do sistema. Outro problema da

rede em estrela é relativo à modularidade. A configuração pode ser expandida até um certo limite imposto pelo nó central: em termos de capacidade de chaveamento, número de circuitos concorrentes que podem ser gerenciados e número total de nós que podem ser servidos.

2.3.2 Topologia em Anel

Uma rede em anel consiste em estações conectadas através de um caminho fechado

(círculo). Por motivos de confiabilidade, o anel não interliga as estações diretamente, mas consiste de uma série de repetidores ligados por um meio físico, sendo cada estação ligada a esses repetidores, conforme Figura abaixo.

switch

Page 12: 01 - Redes

Redes de Computadores Aluízio Rocha

12

Redes em anel são, teoricamente, capazes de transmitir e receber dados em qualquer direção. As configurações mais usuais, no entanto, são unidirecionais, de forma a simplificar o projeto dos repetidores e tornar menos sofisticados os protocolos de comunicação que asseguram a entrega da mensagem ao destino corretamente e em seqüência, pois sendo unidirecionais evitam o problema de roteamento. Quando uma mensagem é enviada por um nó, ela entra no anel e circula até ser retirada pelo nó de destino, ou então até voltar ao nó de origem, dependendo do protocolo empregado. Cada nó deve ser capaz de remover seletivamente mensagens da rede ou passá-las à frente para o próximo nó. Isto requer um repetidor ativo em cada nó, como mostrado na Figura abaixo.

2.3.3 Topologia em Barra

Topologia em barra comum é bastante semelhante ao conceito de arquitetura de barra em um sistema de computador, onde todas as estações (nós) se ligam ao mesmo meio de transmissão. Ao contrário das outras topologias, que são configurações ponto a ponto (isto é, cada enlace físico de transmissão conecta apenas dois dispositivos), a topologia em barra tem uma configuração multiponto.

Page 13: 01 - Redes

Aluízio Rocha Redes de Computadores

13

Nas redes em barra cada nó conectado à barra pode ouvir todas as informações transmitidas, similar às transmissões de radiodifusão. Esta característica vai facilitar as aplicações com mensagens do tipo broadcast (difusão – mensagens globais) além de possibilitar que algumas estações possam trabalhar no que chamamos, de endereçamento promíscuo ou modo espião. A ligação das estações ao meio de comunicação é realizada através de um tranceptor (trasnsmissor/receptor), que tem como funções básicas transmitir e receber sinais, bem como reconhecer a presença destes sinais no meio. Assim como em redes em anel, a utilização de concentradores (hubs) irá facilitar a localização e o isolamento de falhas, bem como permitir a inserção de novas estações na barra sem a parada do sistema (desde que existam entradas livres disponíveis no hub). A figura abaixo mostra um hub de uma rede em barra.

2.4 Exemplo de Rede em Barra: Ethernet

Ethernet é uma tecnologia bem-conhecida e extensamente usada que emprega topologia em barra. A Ethernet foi inventada no Centro de Pesquisa da Xerox em Palo Alto, no inicio dos anos 70. Atualmente o IEEE (Institute of Electrical and Eletronic Engeneers) controla os padrões Ethernet. Em sua versão original, uma LAN Ethernet consistia em um cabo coaxial único, chamado de éter, ao qual múltiplos computadores se conectam. Os engenheiros usam o termo segmento para se referir ao cabo coaxial de Ethernet ou barramento Ethernet. O hardware Ethernet original operava em uma largura de banda de 10 Megabits por segundo (Mbps); uma versão posterior conhecida como Fast Ethernet opera a 100 Mbps, e a versão mais recente, que é conhecida como Gibabit Ethernet, opera a 1.000 Mbps ou I Gigabit por segundo (Gbps).

2.4.1 Compartilhamento em uma Ethernet

Como a Ethernet usa uma topologia em barra, múltiplos computadores devem compartilhar o acesso a um meio físico único. Um remetente transmite um sinal, que se propaga do remetente em direção às duas extremidades do cabo.

Hub

Page 14: 01 - Redes

Redes de Computadores Aluízio Rocha

14

2.4.2 Sensibilidade de Portadora em Redes de Acesso Múltiplo com Detecção de Colisão (CSMA/CD)

O aspecto mais interessante sobre a Ethernet é o mecanismo usado para coordenar a

transmissão. Uma rede Ethernet não tem uma controladora centralizada que diz a cada computador como se alternar usando o cabo compartilhado. Em vez disso, todos os computadores acoplados a uma Ethernet participam em um esquema de coordenação distribuída chamado de Carrier Sense Multiple Access (CSMA). O esquema usa atividade elétrica no cabo para determinar o estado. Quando nenhum computador estiver enviando um quadro, o éter não contém sinais elétricos. Durante a transmissão de um quadro, porém, um remetente transmite sinais elétricos usados para codificar bits. Se não houver nenhum sinal, o computador pode transmitir um quadro. Se houver um sinal, o computador deve esperar que o remetente termine antes de continuar.

Como o CSMA permite que cada computador determine se um cabo compartilhado já

está em uso por outro computador, ele previne que um computador interrompa uma transmissão em andamento. Porém, o CSMA não pode prevenir todos os conflitos possíveis. Para entender por quê, imagine o que acontece se dois computadores em extremidades opostas de um cabo inativo têm um quadro pronto para enviar ao mesmo tempo. Quando eles tentam detectar uma portadora, ambas as estações encontram o cabo inativo e começam a enviar quadros simultaneamente. Os sinais viajam a aproximadamente 70% da velocidade da luz, e quando os sinais transmitidos por dois computadores alcançam o mesmo ponto no cabo, eles interferem um com o outro.

A interferência entre dois sinais é chamada de colisão. Embora uma colisão não

prejudique o hardware, ela produz uma transmissão adulterada que previne que qualquer um dos dois quadros seja corretamente recebido. Para assegurar que nenhum outro computador transmita simultaneamente, o padrão Ethernet exige que estações remetentes monitorem sinais no cabo. Se o sinal no cabo difere do sinal que a estação está enviando, quer dizer que ocorreu uma colisão. Sempre que uma colisão é detectada, a estação remetente pára imediatamente de transmitir. Tecnicamente, a monitoração de um cabo durante a transmissão é conhecida como Detecção de Colisão (Collision Detection, CD) e o mecanismo para Ethernet é conhecido como Carrier Sense Multiple Access with Collision Detection (CSMA/CD).

2.5 Projeto de Redes Locais

A limitação de distância é uma parte fundamental dos projetos de LANs. Quando estão projetando uma tecnologia de rede, os engenheiros escolhem uma combinação de capacidade, atraso máximo e distância que pode ser alcançada a um dado custo. Para ajudar a diminuir os custos, as tecnologias de LANs normalmente usam um meio de comunicação compartilhado como um barramento Ethernet.

2.5.1 Cabeamento Fino de Ethernet

Um dos primeiros tipos de cabo que se popularizou nas redes Ethernet foi o Thinnet, denominado de 10Base2. Em uma instalação de Thinnet, um cabo coaxial fino (de 50 ohms) se estende entre cada par de máquinas. Cada máquina deve possuir uma NIC (Network Interface Card, ou placa de interface de rede) com um conector BNC onde será ligado um conector T do cabo coaxial, como mostrado na Figura abaixo.

Page 15: 01 - Redes

Aluízio Rocha Redes de Computadores

15

2.5.2 Ethernet de Par Trançado

Formalmente chamado de 10Base-T, o esquema é popularmente conhecido como Ethernet de par trançado ou simplesmente Ethernet TP. O esquema 10Base-T, que se tornou o padrão para Ethernet, não usa um cabo coaxial. Em vez disso, o 10Base-T usa um hub como forma de implementar o barramento Ethernet. Como os outros esquemas de cabeamento, o 10Base-T exige que cada computador tenha uma placa de interface de rede e uma conexão direta da NIC até a rede. A conexão usa cabeamento de par trançado com conectores RJ-45 que são versões maiores dos conectores modulares usados com telefones. O conector em uma extremidade de um par trançado se conecta na interface de rede em um computador, e o conector na outra extremidade se conecta ao hub. Deste modo, cada computador tem uma conexão dedicada com o hub, como mostra a Figura a seguir.

2.5.3 Cabos de Fibra Ótica

O cabeamento de fibra ótica como mídia de comunicação oferece diversas vantagens importantes quando comparado com o cabeamento baseado em cobre. Os maiores benefícios encontrados neste tipo de cabeamento são suas características de altíssima taxa de transferência e imune a ruídos elétricos externos, além de não emitir qualquer interferência a outros meios.

Page 16: 01 - Redes

Redes de Computadores Aluízio Rocha

16

O uso dos cabos de fibra ótica está cada vez mais associado à utilização daquelas aplicações que requerem uma alta velocidade de transmissão, visto quê não existe nada mais rápido que a luz. Os limitadores de velocidade são os dispositivos óticos/eletrônicos que conectam os computadores às redes óticas. O cabo de fibra emprega o vidro para carregar pulsos de luz com uma perfeita imunidade a ruídos.

Recentes desenvolvimentos na tecnologia de fibras óticas têm tornado atraente o uso

de cabos de fibra de baixo custo e fácil instalação. Estes tipos de cabo, denominados de POF (Plastic Optical Fiber), ao invés de empregarem o vidro, utilizam o plástico como o elemento de transmissão no núcleo do cabo, e seus conectores são de fácil manuseio. Quanto às desvantagens encontradas no POF, podemos citar a redução de distância e capacidade de transmissão, quando comparado com cabos de fibra que usam o vidro como núcleo e têm alta taxa de transmissão.

As fibras óticas utilizadas nas redes são classificadas de acordo com a forma que a luz

trafega no cabo. Em outras palavras, temos a classificação das fibras como monomodo e multímodo. No tipo monomodo, um único sinal de luz é transportado de uma forma direta no núcleo do cabo. O sinal pode atingir distâncias maiores sem a repetição nesta forma de tráfego da luz quando comparado com a transmissão na segunda classe de fibra. Uma fibra multímodo tem como característica um feixe de luz que viaja ao longo do seu trajeto fazendo diferentes refrações ao longo das paredes do núcleo do cabo. Na figura abaixo, temos um exemplo da transmissão num cabo de fibra monomodo (a) e multímodo (b).

2.5.4 Repetidores

Uma limitação de distância em LANs surge porque um sinal elétrico se torna mais fraco ao viajar ao longo de um fio. Para superar tal limitação, algumas tecnologias de LAN permitem que dois cabos sejam juntados através de um dispositivo conhecido como repetidor.

Page 17: 01 - Redes

Aluízio Rocha Redes de Computadores

17

Um repetidor é normalmente um dispositivo eletrônico analógico que continuamente monitora sinais elétricos em cada cabo. Quando ele percebe um sinal em um cabo, o repetidor transmite uma cópia ampliada no outro cabo. A Figura a seguir ilustra como um repetidor pode dobrar o tamanho efetivo de uma rede Ethernet.

2.5.5 Bridges

Como um repetidor, uma bridge é um dispositivo eletrônico que conecta dois segmentos de LAN. Diferentemente de um repetidor, porém, uma bridge manipula quadros completos usa a mesma interface e rede que um computador convencional. A bridge escuta tráfego em cada segmento usando o modo promiscuo. Quando a bridge recebe um quadro de um segmento, ela verifica se o quadro chegou intacto (por exemplo, se não se verificou nenhuma interferência elétrica na LAN durante a transmissão), e então encaminha uma cópia do quadro para o outro segmento se necessário. Deste modo, dois segmentos de LAN conectados por uma bridge se comportam como uma LAN única. Um computador conectado a um dos segmentos pode enviar um quadro para qualquer outro computador conectado a um dos dois segmentos.

Na Figura abaixo, seis computadores conectados a um par de segmentos de LAN

unidos por uma bridge (bridged LANs). A bridge, que usa o mesmo tipo de conexões que um computador, sempre envia e recebe quadros completos.

2.5.6 Exemplos de Cabeamento

Page 18: 01 - Redes

Redes de Computadores Aluízio Rocha

18

Na Figura abaixo, podemos observar uma comparação entre os diversos tipos de cabeamento Ethernet dentro de um mesmo prédio (ambiente): (a) espesso, (b) fino e (c) 10Base-T (par trançado). Os fios podem correr acima do teto ou debaixo de um piso falso. Na Figura a seguir, um exemplo de ligação entre prédios.

2.6 Redes Locais sem Fio

As redes locais sem fio são sistemas de comunicações de dados flexíveis implementados como uma extensão, ou como uma alternativa, às redes locais tradicionais. Utilizando tecnologia de rádio-freqüência, elas transmitem e recebem dados via ar, minimizando a necessidade de conexões via cabo. Redes locais sem fio combinam conectividade de dados com mobilidade do usuário.

As tecnologias das wireless LAN (redes locais sem fio – ao invés de usar a expressão

sem fio, decidimos adotar o termo wireless, pois o mesmo é bastante empregado na leitura internacional) vêm se mostrando um elemento cada vez mais fundamental para agregar valor às redes de computadores das organizações.

Com as wireless LAN, usuários podem acessar informações compartilhadas sem se

preocupar com um lugar para se conectar a rede, e administradores de rede podem gerenciar redes sem instalar ou mover cabos.

Page 19: 01 - Redes

Aluízio Rocha Redes de Computadores

19

2.6.1 Padrão IEEE 802.11 O principal problema enfrentado pelas primeiras redes locais wireless era a

inexistência de padrões reais. Cada empresa produzia seu próprio sistema proprietário, fornecendo aos clientes opções confusas. Muitos usuários simplesmente decidiam não comprar a LAN sem fio, por medo de ficarem presos à tecnologia de um único fornecedor. As inúmeras vantagens dos serviços oferecidos pelas wireless LAN sempre se depararam com a falta de padronização da área. Este problema representava um obstáculo real para o efetivo crescimento do uso das tecnologias wireless. Em outras palavras, com diferentes abordagens de diversos fornecedores, os usuários muitas vezes se retraem evitando soluções proprietárias.

A maioria dos padrões de wireless LAN é definida pelo IEEE (Institute of Electrical

and Eletronic Engeneers). Como já vimos, o IEEE é responsável pelo sistema Ethernet, o sistema a cabo dominante, e, por isso, suas recomendações talvez tenham maior repercussão na comunidade redes.

O IEEE produziu pelo menos seis padrões incompatíveis, listados adiante na tabela.

Observe que os valores referentes à capacidade são bastante otimistas, pois até metade da largura de banda é desperdiçada nos sistemas sem fio. A natureza da transmissão significa que os valores são apenas unidirecionais; por exemplo, a capacidade de 10 Mbps representa realmente apenas 5 Mbps em cada direção.

Sistema Capacidade de dados Freqüência2 IEEE 802.11 (FHSS) 1 Mbps 2,4 GHz (ISM) IEEE 802.11 (DSS) 2 Mbps 2,4 GHz (ISM) IEEE 802.11b 11 Mbps 2,4 GHz (ISM) IEEE 802.11a 54 Mbps 5 GHz (U-NII)

O IEEE 802.11 foi o primeiro padrão de LAN sem fio a ser definido. Esse padrão

utiliza os mesmos protocolos de comutação da Ethernet convencional, mas substituindo os cabos pelo rádio ISM.

A versão mais simples do padrão 802.11 utiliza a tecnologia FHSS (Frequency Hopping Spread Spectrum), com ciclos rápidos entre as freqüências, varias vezes por segundo. Uma versão mais complexa utiliza a tecnologia DSSS (Direct Sequence Spread Spectrum), a mesma dos celulares CDMA: Transmite em todas as freqüências simultaneamente. Isso aumenta a velocidade de dados de um máximo de 1 Mbps para 2 Mbps, mas também utiliza mais energia. O consumo de energia pode ser um fator importante para dispositivos que quase sempre operam alimentados por baterias.

A versão IEEE 802.11b é baseado na versão DSSS do IEEE 802.11. Utiliza técnicas

melhores de modulação, um recurso que será discutido no Capítulo 3, aumentando a capacidade até máximo de 11 Mbps. Este padrão também é apresentado como Wireless Ethernet ou Wi-Fi (The Standard for Wireless Fidelity).

O IEEE 802.11a alcança velocidades de 54 Mbps, pois foi projetada para minimizar a

interferência causada pelos sinais refletidos nas paredes. Seu maior ponto fraco é não poder ser utilizado na Europa, por causa da norma que determina os padrões HiperLan do ETSI.

2 Esta propriedade das ondas de rádios será discutida em detalhes no Capítulo 3.

Page 20: 01 - Redes

Redes de Computadores Aluízio Rocha

20

2.6.2 Conexão com Pontos de Acesso ou Ponto a Ponto Todos os sistemas de wireless LAN podem ser utilizados para a conexão do tipo ponto

a ponto, chamadas de ad-hoc, de dois ou mais usuários quaisquer, que tenham uma placa instalada. Áreas, como escritórios ou casas, também podem ser ajustadas com pontos de acesso (Access Points), que estendem a faixa do sistema e permitem ligações para LANs comuns ou para a Internet. A figura abaixo mostra os dois tipos de redes.

O Access Point também pode agir como uma ponte para outra rede (cabeada ou sem

fio). A figura abaixo mostra três APs com suas três áreas de atuação e uma rede cabeada ligando essas três áreas.

Page 21: 01 - Redes

Aluízio Rocha Redes de Computadores

21

3 Transmissão da Informação

A transmissão da informação através de sistemas de comunicação pressupõe a passagem de sinais através dos meios físicos de comunicação que compõem as redes. As propriedades físicas dos meios de transmissão e as características dos sinais transmitidos apresentam uma série de questões tecnológicas que influenciam na construção e no projeto de redes de computadores.

3.1 Informação e Sinal

O processo de comunicação envolve a transmissão de informação de um ponto a outro

através de uma sucessão de processos, a saber: 1. A geração de uma idéia, padrão ou imagem na origem. 2. A descrição dessa idéia, com uma certa medida de precisão, por um conjunto de

símbolos. 3. A codificação desses símbolos em uma forma propícia à transmissão em um meio

físico disponível. 4. A transmissão desses símbolos codificados ao destino. 5. A decodificação e reprodução dos símbolos. 6. A recriação da idéia transmitida – com uma possível degradação de qualidade –

pelo destinatário. A geração de idéias ou imagens na origem do processo representa a produção de

informação na sua forma mais pura ou fundamental. A concretização dessa informação em computadores digitais, por exemplo, corresponde a um conjunto de dados, eletrônica ou magneticamente armazenados.

O processo de codificação dos símbolos, que descrevem a idéia, em uma forma propícia para a transmissão é o processo pelo qual o remetente produz uma mensagem, utilizando-se de uma linguagem, que poderá então ser transmitida e decodificada pelo receptor.

Sinais nada mais são do que ondas que se propagam através de algum meio físico, seja

ele o ar, um par de fios telefônicos, etc.. Informações estão em geral, associadas às idéias ou aos dados manipulados pelos

agentes que as criam, manipulam e processam. Sinais, por outro lado, correspondem à materialização específica dessas informações utilizada no momento da transmissão.

3.2 Freqüência

Para entendermos os conceitos de comunicação de forma mais abrangente, é importante que tenhamos conhecimento sobre freqüência e alguns dos parâmetros relacionados (exemplos são a banda, largura de banda, tamanho da onda, período e fase, entre outros). O IEEE define uma freqüência como “número completo de variações dos ciclos de uma senoide por unidade de tempo”. A unidade de tempo que podemos considerar é o segundo. A unidade da freqüência é dada em Hertz (Hz), que significa número de ciclos por segundo. Na figura a seguir, em (a) apresentamos uma onda senoidal da função y = seno(x).

Page 22: 01 - Redes

Redes de Computadores Aluízio Rocha

22

Em (b), duas ondas com diferentes freqüências são ilustradas. Temos uma onda com menor freqüência (y1), quando comparamos com a outra onda (y2). Da figura também podemos falar sobre a amplitude. Nos exemplos da figura, consideramos que a amplitude medida em volts é igual a +5V e -5V. Em outras palavras, a grandeza da amplitude é caracterizada pelo tamanho da onda numa direção no eixo y. 3.3 Os Termos Analógico e Digital

Computadores são equipamentos que armazenam, processam e codificam informações

em bits que correspondem a dois níveis discretos de tensão ou corrente, representando os valores lógicos “0” ou “1”. Chama-se este tipo de informação de digital. Já informações geradas por fontes sonoras apresentam variações contínuas de amplitude, constituindo-se no tipo de informação que comumente denominamos de analógica.

Numa rede de comunicação, os dados são propagados de um determinado ponto A

para outro B como um sinal elétrico, que pode estar numa forma analógica ou digital. O sinal analógico é caracterizado pela contínua variação da onda eletromagnética, que

pode ser transmitida por uma gama diferentes de meios. Em outras palavras, o sinal analógico pode ser transmitido empregando-se meios guiados (cabos de um modo geral) e meios não-guiados (a atmosfera terrestre ou o espaço).

O sinal digital, por outro lado, caracteriza-se pela presença de pulsos de voltagem nos

quais a amplitude é fixa. O sinal é construído através de uma seqüência de intervalos de tamanho fixo iguais a T segundos, chamados de intervalos de sinalização, durante os quais a amplitude do sinal permanece fixa, caracterizando um dos símbolos digitais transmitidos. Na figura a seguir, ilustramos a transmissão dos sinais analógicos e digitais.

0

0

A

-A

π 2π

+5V

-5V

(a) (b)

y2 y1

X X

T

0 0 0 0 0 01 1111

Y Y

Sinal Analógico Sinal Digital

Page 23: 01 - Redes

Aluízio Rocha Redes de Computadores

23

É importante que se entenda que qualquer tipo de informação (seja analógica ou digital) pode ser transmitido através de um sinal analógico ou digital. Um sinal analógico, por exemplo, pode ser amostrado, quantizado e o resultado dessa quantização, codificado em um sinal digital para transmissão. A transmissão de informação digital através de sinais analógicos também é possível; técnicas de modulação transformam sinais digitais em sinais que apresentam variação contínua de amplitude. O equipamento mais comum de modulação é o modem (MODulador/DEModulador), utilizado quando um computador deseja transmitir informações digitais usando sinais de voz em linhas telefônicas. O número de níveis utilizados em sinais digitais não necessariamente precisa se restringir a dois. Outras formas de codificação de sinais digitais podem ser obtidas através da atribuição de mais de um bit a cada nível de amplitude, casos em que o número de níveis possível não será mais de apenas dois. Ao se transmitir dois bits por nível, por exemplo, necessita-se de quatro níveis para expressar todas as possíveis seqüências de dois bits; tem-se o chamado “dibit”. Para esquemas com três bits, “tribit”, precisamos de oito níveis de amplitude, e assim por diante. De uma forma geral, para se codificar n bits em um nível de amplitude são necessários 2n níveis diferentes.

Uma confusão bastante comum entre os estudantes e profissionais na área de telecomunicação e redes é a terminologia e os conceitos de bps (bits por segundo) e baud. Esta última é a medida de transições por segundo ou, em outras palavras, a grandeza se refere a quantas vezes por segundo ocorreu uma transição de estado do sinal. Assim, num ambiente onde temos a taxa de sinalização de 400 bauds com 3 bits por elemento de sinalização, teremos uma taxa de transferência de 1.200 bps.

3.4 Codificação

A codificação é uma mudança na representação da informação de entrada para que esta possa ser transportada num sistema de comunicação digital. A informação de entrada pode ser analógica (como a voz humana) ou digital (proveniente de um computador). Em outras palavras, o objetivo da codificação é a transformação de uma informação em um sinal digital adequado às condições de uma rede de comunicação digital.

3.4.1 PCM

Na utilização de circuitos digitais para a transmissão da voz precisamos modificar a

forma analógica da voz em uma forma digital (digitalização da voz). A voz humana é limitada para fins de transmissão nas redes de comunicação a uma freqüência de 4kHz. Os dispositivos capazes de codificar informações analógicas em sinas digitais são denominados

T

0100111011000110100101 00

01

10

11

Níveis

Mensagem

Page 24: 01 - Redes

Redes de Computadores Aluízio Rocha

24

CODECs (CODer/DECoder). Nesta seção examinaremos a principal técnica utilizada por CODECs, denominada Pulse Code Modulation (PCM).

A técnica PCM é baseada no teorema de Nyquist (ou teorema da amostragem).

Segundo o teorema, devemos amostrar a uma taxa do dobro do sinal de uma determinada freqüência para podermos reconstituir o sinal original. Então, podemos dizer que para um canal de voz de 4 kHz, a taxa de amostragem deverá ser igual a 8.000 vezes por segundo. Utilizando esta taxa, o sinal original deve ser amostrado e, a cada amostra, deve-se associar um valor proporcional à amplitude do sinal naquele ponto. Este processo ilustrado na figura acima, é conhecido como Pulse Amplitude Modulation (PAM).

A partir dos pulsos PAM, podemos produzir os pulsos PCM através de um processo conhecido como quantização, onde cada amostra PAM é aproximada a um inteiro de n bits. No exemplo da figura, escolhemos n=3, dando origem a oito níveis (23). A saída PCM corresponde ao resultado dessa quantização. Observe que este arredondamento para números inteiros significará perda de informação quando o sinal digital tiver que ser descodificado. Isto é, para que o sinal codificado seja o mais fiel possível ao sinal original, os arredondamentos têm que ser os menores possíveis. Para isso, deve-se aumentar o número de níveis de amplitude, aumentando conseqüentemente, o número de bits por amostra.

3.5 Banda Passante

Denomina-se banda passante de um sinal o intervalo de freqüências que compõem este sinal. A largura de banda desse sinal é o tamanho de sua banda passante (ou seja, a diferença entre a maior e a menor freqüência que compõem o sinal).

Nenhum meio de transmissão é capaz de transmitir sinais sem que haja perdas de

energia durante o processo. Perdas de energia significam reduções na amplitude de sinais componentes. A proporção da perda para cada freqüência do espectro é uma característica do

Sinal original

4.1

6.0

3.0 2.2

5.0

1. 5 1. 5

5.0

7.0

2.8 Pulsos PAM

7 6 5 4 3 2 1 0

Pulsos PCM

Saída PCM

100 110 011 010 101 001 001 101 111 010

100110011010101001001101111010

Page 25: 01 - Redes

Aluízio Rocha Redes de Computadores

25

meio. Desta forma, o meio de transmissão atua como um filtro sobre o sinal, que sofrerá uma perda em cada uma de suas componentes de acordo com a curva característica do ganho daquele meio físico, ocasionando distorções no sinal resultante.

Chamaremos de banda passante do meio físico àquela faixa de freqüências que

permanece praticamente preservada pelo meio.

3.6 Multiplexação e Modulação Sempre que a banda passante de um meio físico for maior ou igual à banda passante

necessária para um sinal, podemos utilizar este meio para a transmissão do sinal. Na prática, a banda passante necessária para um sinal é, em geral, bem menor que a banda passante dos meios físicos disponíveis, como mostra a figura abaixo.

A técnica que permite a transmissão de mais de um sinal em um mesmo meio físico é

denominada multiplexação. Existem duas formas básicas de multiplexação: a multiplexação na freqüência (Frequency Division Multiplexing – FDM) e a multiplexação no tempo (Time Division Multiplexing – TDM).

3.6.1 Multiplexação na Freqüência

Considere, por exemplo, três sinais (C0, C1, C2) com a banda passante necessária

indicada na figura abaixo.

A técnica consiste em passar um filtro em cada um dos sinais de forma a preservar somente a faixa relativa à banda passante de cada um deles, e deslocar estas faixas de freqüência originais sem que um sinal interfira no outro, isto é, eles passam a ocupar três faixas disjuntas, sem sobreposição. Esta técnica que permite esse deslocamento ou shift de freqüências são é conhecida e denominadas técnicas de modulação.

Hz

Desperdício

0

Banda passante do meio físico Banda passante necessária para

o sinal

Hz 0

C0

C1

C2

C0 C1 C2

Page 26: 01 - Redes

Redes de Computadores Aluízio Rocha

26

3.6.2 Técnicas de Modulação

Todas as técnicas de modulação envolvem o deslocamento do sinal original, doravante denominado sinal modulador, de sua faixa de freqüência original para uma outra faixa. O valor desse deslocamento corresponde à freqüência de uma onda denominada portadora.

Existem três técnicas básicas de modulação:

• Modulação por Amplitude (Amplitude Modulation – AM). • Modulação por Freqüência (Frequency Modulation – FM). • Modulação por Fase (Phase Modulation – PM).

3.6.3 Multiplexação no Tempo

A multiplexação por divisão do tempo (Time Division Multiplexing - TDM) se

beneficia do fato de que a capacidade (em quantidade de bits por segundo) do meio de transmissão, em muitos casos, excede a taxa média de geração de bits das estações conectadas ao meio físico. Quando isto ocorre, vários sinais podem ser transportados por um único caminho físico, intercalando-se porções de cada sinal durante o tempo. A multiplexação no tempo pode ser classificada em síncrona ou assíncrona.

3.6.3.1 TDM Síncrono

No TDM síncrono (ou simplesmente TDM), o domínio do tempo é dividido em intervalos de tamanho fixo T chamados frames; cada frame é subdivido em N subintervalos {t1, t2, ..., tn} denominados slots ou segmentos que formam uma partição dos frames que, por sua vez, formam uma partição do tempo infinito.

Denomina-se canal, ao conjunto de todos os segmentos, um em cada frame,

identificado por uma determinada posição fixa dentro desses frames. Por exemplo, o canal 3 é formado pelo terceiro slot de cada frame. Canais podem ser alocados a estações que desejem transmitir. Cada estação deverá esperar o slot correspondente dentre de cada frame, quando então poderá transmitir durante o tempo daquele slot, utilizando a taxa de transmissão máxima suportada pelo meio físico.

T T

t1 t2 tn t1 t2 tn... ...

A1 B1 C1 D1 A2 B2 C2 D2

Banda desperdiçada

Page 27: 01 - Redes

Aluízio Rocha Redes de Computadores

27

3.6.3.2 TDM Assíncrono Uma alternativa ao TDM síncrono que procura eliminar o desperdício de capacidade

existente nesse esquema é o TDM assíncrono (também conhecido por TDM estatístico ou STDM – Statistical TDM). Nesse esquema, não há alocação de canal nem estabelecimento de conexão. Parcelas de tempo são alocadas dinamicamente de acordo com a demanda das estações. Nenhuma capacidade é desperdiçada, pois o tempo não utilizado está sempre disponível caso alguma estação gere trafego e deseje utilizar o canal de transmissão. Em compensação, cada unidade de informação transmitida deve sempre conter um cabeçalho com os endereços de origem e de destino.

3.6.4 Sistemas em Banda Larga e em Banda Básica As técnicas de transmissão estão diretamente relacionadas com as técnicas de

multiplexação. Duas técnicas de transmissão são as mais empregadas: a sinalização em banda básica (baseband) e a sinalização em banda larga (broadband).

Na sinalização em banda básica o sinal é simplesmente colocado na rede sem se usar

qualquer tipo de modulação, aparecendo diretamente na rede e não como deslocamentos de freqüência, fase ou amplitude de uma portadora de alta freqüência.

Ao contrario da sinalização em banda básica (também chamada sinalização digital) na

qual todo o espectro (banda) de freqüência do meio é utilizado para produzir o sinal, a sinalização em banda larga (também chamada de sinalização analógica) realiza a multiplexação em freqüência (FDM). Com essa multiplexação o espectro de freqüência do meio é divido em vários canais, cada um podendo suportar diferentes tráfegos.

A1 B1 B2 C2

Cabeçalho Capacidade extra disponível

Page 28: 01 - Redes

Redes de Computadores Aluízio Rocha

28

3.7 Comutação

A função de comutação (ou chavemento) em uma rede de comunicação refere-se à alocação dos recursos da rede (meios de transmissão, repetidores, sistemas intermediários, etc.) para a transmissão pelos diversos dispositivos conectados. As principais formas de comutação são denominadas comutação de circuitos e comutação de pacotes.

3.7.1 Comutação de Circuitos

A comunicação via comutação de circuitos pressupõe um caminho dedicado de

comunicação entre duas estações. A comunicação via comutação de circuitos envolve três fases:

1. Estabelecimento do circuito: antes que estações possam se comunicar, um circuito fim a fim tem que ser estabelecido. Em cada enlace, um canal é alocado e permanece dedicado a essa conexão até a hora da desconexão do circuito.

2. Transferência de informação: uma vez estabelecida a conexão, os dados podem ser transmitidos e recebidos pelas estações envolvidas.

3. Desconexão do circuito: após um certo período a conexão pode ser encerrada, em geral, pela ação de uma das estações envolvidas. Sinais de controle devem ser propagados por todos os nós intermediários do circuito de forma que todos os caminhos sejam desalocados.

Na figura abaixo, ilustramos a progressão de uma comunicação via comutação de

circuitos entre duas estações. Na fase de estabelecimento de conexão, uma mensagem de controle é enviada ao destino. Conforme ela vai sendo roteada (entre os diversos pontos de comunicação entre a origem e o destino), um caminho vai sendo alocado (correspondendo aos nós intermediários 2 e 3 da figura). Quando esta mensagem de controle atinge o nó de destino (nó 4), um caminho foi totalmente alocado, e uma mensagem de controle de confirmação é enviada de volta ao nó de origem (nó 1), já utilizando o circuito alocado pela primeira mensagem (note que não há mais tempo de processamento desta mensagem em cada nó intermediário, como havia na primeira mensagem). A partir daí, as estações podem se comunicar através do circuito estabelecido, até o momento em que uma das estações decida terminar a conexão.

1 2 3 4

Mensagem Tempo de Transmissão

Transmissão da Mensagem

Estabelecimento da conexão

Tempo de propagaçãoT

Page 29: 01 - Redes

Aluízio Rocha Redes de Computadores

29

3.7.2 Comutação de Mensagens Na comutação de mensagens não é necessário o estabelecimento de um caminho

dedicado entre as estações. Ao invés disso, se uma estação deseja transmitir uma mensagem (uma unidade lógica de informação), ela adiciona o endereço de destino a essa mensagem que será então transmitida pela rede de nó em nó. Em cada nó, a mensagem inteira é recebida e o próximo caminho da rota é determinado com base no endereço contido na mensagem. Note que esse caminho pode se encontrar ocupado pela transmissão de uma outra mensagem e, ainda, outras mensagens já podem estar esperando para serem transmitidas por esse caminho. Nesse caso, a mensagem espera numa fila até que chegue a sua vez de ser transmitida e o caminho esteja liberado, quando então a transmissão se inicia. Assim, uma mensagem caminha de nó em nó pela rede utilizando apenas um canal por vez, sendo armazenada e retransmitida em cada nó (processo conhecido como store-and-forward), como ilustrado na Figura abaixo.

3.7.3 Comutação de Pacotes

A comutação de pacotes é semelhante à comutação de mensagens. A principal

diferença está no fato de que o tamanho da unidade de dados transmitida na comunicação de pacotes é limitado. Mensagens com tamanho acima de um limite devem ser quebradas em unidades menores denominadas pacotes. Pacotes de uma mesma mensagem podem estar em transmissão simultaneamente pela rede em diferentes enlaces, o que reduz o atraso de transmissão total de uma mensagem. Além disso, redes com tamanho de pacotes requerem nós de comutação com menor capacidade de armazenamento e os procedimentos de recuperação de erros para pacotes são mais eficientes do que para mensagens.

A técnica de comutação de pacotes é também uma técnica store-and-forward, dado

que pacotes caminham de nó em nó pela rede, sendo armazenados e retransmitidos sucessivamente. Em cada nó, um pacote inteiro é recebido e o próximo caminho da rota é escolhido. Logo, vemos que cada pacote deve conter a informação de seu destino (endereço de destino) de forma a possibilitar o roteamento correto. A figura abaixo ilustra um exemplo onde todos os pacotes de uma mensagem seguem por uma mesma rota até o destino.

1 2 3 4

Mensagem

Tempo de espera na fila + tempo de escolha da rota

Cabeçalho

T

Mensagem

Mensagem

Mensagem

Page 30: 01 - Redes

Redes de Computadores Aluízio Rocha

30

3.8 Técnicas de Detecção de Erros de Transmissão

Já falamos de vários fenômenos que podem causar erros de transmissão, como os

ruídos elétricos. Na impossibilidade de eliminar totalmente esses fenômenos, sistemas de comunicação devem ser projetados de forma a possibilitar a recuperação da informação perdida. O primeiro passo para qualquer esquema de tratamento de erros é a sua detecção. O segundo passo seria o procedimento para a recuperação dos dados. Nesta seção abordaremos apenas as técnicas para a detecção de erros.

Todos os métodos de detecção de erros são baseados na inserção de bits extras na

informação transmitida. Esses bits consistem em informação redundante, isto é, que pode ser obtida a partir da informação original. Esses bits são computados pelo transmissor através de algum algoritmo que tem como entrada os bits originais a serem transmitidos. Após computar esses bits, o transmissor os acrescenta aos bits de informação propriamente dita, para então prosseguir com a transmissão do quadro. Quando o quadro é recebido, o receptor, conhecendo o algoritmo utilizado pelo transmissor, pode recomputar os bits de redundância e compara-los com os respectivos bits recebidos no quadro. Se eles forem diferentes, detectou-se a presença de um erro.

3.8.1 Paridade

A forma mais simples de redundância para detecção de erros consiste na inserção de

um bit de paridade ao final de cada caractere de um quadro. O valor desse bit é definindo contando todos os bits do caractere, e atribuindo-o a um (1) se esta contagem for par (paridade par) ou se a contagem for ímpar (paridade ímpar). Tipicamente, em transmissão assíncrona, costuma-se a utilizar paridade par. Se o transmissor desejar, por exemplo, transmitir o caracter “1110001”, utilizando paridade ímpar, ele acrescentará um bit 1 ao caracter, de forma que a seqüência resultante terá um número ímpar de bits 1 (no caso, igual a 5): “11100011”. O receptor, examinando o caractere recebido, deverá sempre encontrar um número de bits 1 ímpar, caso em que assumirá que a transmissão foi efetuada com sucesso. Caso contrário, houve algum erro durante a transmissão que ocasionou a inversão de um ou mais bits.

Note que, caso um número par de bits tenha sido invertido, o receptor não será capaz

de perceber a existência de erro, pois a paridade ainda estará correta.

1 2 3 4

Transmissão dos pacotes

T

1 Cabeçalho

Dados (pacote)

12

3 2

3

1

2

3

Page 31: 01 - Redes

Aluízio Rocha Redes de Computadores

31

3.8.2 Checksum

Neste esquema, o remetente trata os dados como uma seqüência de inteiros binários e computa sua soma. Os dados não são restritos a valores inteiros – podem conter caracteres, números em ponto flutuante ou uma imagem. O sistema de rede trata os dados meramente como uma seqüência de inteiros com o propósito de calcular um checksum. Por exemplo, a figura abaixo ilustra o cálculo de um checksum de 16 bits para uma pequena string de texto. Para calcular um checksum, o remetente trata cada par de caracteres como um inteiro de 16 bits e faz a soma. Se a soma cresce mais do que 16 bits, os bits de transporte (carry bits) são adicionados à soma final.

Os checksums têm vantagens e desvantagens. As vantagens principais derivam do tamanho e da facilidade de computação. A desvantagem principal é não detectar todos os erros comuns. Por exemplo, a soma pode dar o resultado esperado mesmo quando há uma troca de bits. Como não há qualquer referência à posição dos bits no quadro, os bits podem ser arranjados de alguma forma que a soma pode dar o valor original calculado pelo transmissor. Entretanto, a probabilidade disto acontecer é pequena.

3.8.3 CRC

Nesse esquema, um quadro de k bits, é representado por um polinômio em X, de

ordem k – 1, onde o coeficiente do termo Xi é dado pelo (i + 1)-ésimo bit da seqüência de k bits. Assim, por exemplo, o quadro 10110001 seria representado pelo polinômio X7 + X5 + X4 + 1.

No transmissor o polinômio de ordem k – 1 é dividido, em aritmética módulo 2, por

um polinômio gerador de ordem n, tendo como resultado um quociente e um resto de ordem n – 1. O transmissor gera em sua saída os k bits originais, seguidos dos n bits correspondentes ao polinômio obtido como resto da divisão (chamado de Frame Check Sequence – FCS).

No receptor, um processo análogo é realizado. De posse dos k primeiros bits

recebidos, o receptor realiza a divisão do polinômio correspondente, de ordem k – 1, pelo mesmo polinômio gerador usado no transmissor. O resto da divisão é comparado com os n últimos bits recebidos no quadro. Se os bits forem iguais, o receptor assume que recebeu os dados sem erros. Caso algum bit seja diferente, um erro é detectado.

Page 32: 01 - Redes

Redes de Computadores Aluízio Rocha

32

4 Arquitetura de Redes de Computadores

Este capítulo examina a estrutura de software usado com sistemas de rede. O capítulo explica por que o hardware sozinho não resolve todos os problemas de comunicação e mostra por que também é necessário software de protocolo. O capítulo discute os problemas que o software de protocolo deve tratar e as técnicas usadas para resolvê-los. Mais importante, neste capítulo, é a descrição do conceito de divisão em camadas que fornece uma base conceitual para se entender como um conjunto de completo de protocolos trabalha em conjunto com o hardware para fornecer um sistema de comunicação poderoso.

4.1 Por que Protocolos são necessários

Todas as partes envolvidas em uma comunicação devem concordar com um conjunto

de regras a ser usado quando estão trocando mensagens (por exemplo, o idioma a ser usado e as regras para quando as mensagens podem ser enviadas). Os diplomatas chamam tal acordo de protocolo. O termo é aplicado igualmente para comunicação entre computadores: um conjunto de regras que especifica o formato das mensagens, e as ações apropriadas exigidas para cada mensagem é conhecido como um protocolo de rede ou um protocolo de comunicação entre computadores. O software que implementa tais regras é chamado de software de protocolo.

4.2 Conjuntos de Protocolos

Em vez de terem um protocolo único e gigante que especifica detalhes completos para

todas as formas possíveis de comunicação, os projetistas escolheram dividir o problema de comunicação em subpartes e projetar um protocolo separado para cada uma deles. Isto torna o protocolo muito mais fácil de se projetar, analisar, implementar e testar.

A divisão em protocolos separados deve ser cuidadosamente escolhida para assegurar que o sistema de comunicação resultante seja eficiente e efetivo. Para evitar a duplicação de esforço, cada protocolo deve tratar de uma parte do problema de comunicação não tratada por outros protocolos.

Como alguém pode garantir que os protocolos funcionarão bem juntos? A resposta reside em um plano de projeto global: em vez de desenvolver cada protocolo isoladamente, os protocolos são projetados e desenvolvidos em conjuntos completos e cooperativos chamados simplesmente de conjuntos ou famílias. Cada protocolo em um conjunto resolve uma parte do problema de comunicação; juntos, eles resolvem o problema da comunicação por inteiro.

4.3 Um plano para Projeto de Protocolo

Foram desenvolvidas varias ferramentas para ajudar os projetistas de protocolos a

entender as subpartes do problema de comunicação e planejar um conjunto de protocolos inteiro. Uma das ferramentas mais importantes é chamada de modelo em camadas (layering model). Essencialmente, o modelo em camadas descreve uma maneira de dividir o problema de comunicação em subpartes, denominadas camadas. Um conjunto de protocolos pode ser projetado especificando-se um protocolo que corresponde a cada camada. Por exemplo, anteriormente na história das redes a Organização Internacional para Padronização (International Organization for Standardization) – ISO definiu um Modelo de Referência de

Page 33: 01 - Redes

Aluízio Rocha Redes de Computadores

33

7 Camadas. A figura abaixo ilustra o modelo de camadas ISO e mostra que cada camada é numerada.

4.4 As Sete Camadas Embora as idéias sobre o projeto de protocolos tenham mudado nos vinte anos desde

que o modelo ISO foi desenvolvido e embora muitos protocolos modernos não se encaixem no velho modelo, grande parte da terminologia ISO ainda persiste. Em particular, quando os profissionais de rede se referem à Camada i, eles normalmente se referem à i-ésima camada do ISO.

O modelo ISO é popular porque fornece uma explicação simples das relações entre o

hardware complexo e os componentes de protocolo de uma rede. No modelo ISO, a mais baixa camada corresponde ao hardware, e as camadas sucessivas correspondem ao firmware ou software que usam o hardware. Esta seção resume o propósito de cada camada.

Camada 1: Física

A camada 1 corresponde ao hardware de rede básico. Por exemplo, a especificação de RS-232 das portas serias dos microcomputadores pertence à camada 1.

Camada 2: Enlace de Dados Os protocolos da camada 2 especificam como organizar os dados em quadros e como transmiti-los através de uma rede. Por exemplo, as discussões sobre formato de quadros e computação de checksum são classificadas como Camada 2. Camada 3: Rede Os protocolos da Camada 3 especificam como são atribuídos endereços e como são encaminhados pacotes de uma ponta da rede para outra. Camada 4: Transporte Os protocolos da Camada 4, que especificam como tratar dos detalhes de transferência confiável, estão entre os protocolos mais complexos. Camada 5: Sessão Os protocolos da Camada 5 especificam como estabelecer uma sessão de comunicação com um sistema remoto (por exemplo, como fazer um login em um computador remoto de

Page 34: 01 - Redes

Redes de Computadores Aluízio Rocha

34

tempo compartilhado). As especificações para detalhes de segurança como autenticação usando senhas pertencem à Camada 5. Camada 6: Apresentação Os protocolos da Camada 6 especificam como representar dados. Tais protocolos são necessários porque marcas diferentes de computadores usam representações internas diferentes para inteiros e caracteres. Deste modo, os protocolos da Camada 6 são necessários para traduzir da representação em um computador para a representação em outro. Camada 7: Aplicação Cada protocolo da Camada 7 especifica como um aplicativo em particular usa uma rede. Por exemplo, a especificação para um aplicativo que transfere arquivos de um computador para outro pertence à Camada 7. 4.5 Pilhas: Divisão de Software em Camadas

Quando são projetados protocolos de acordo com um modelo de camadas, o software de protocolo resultante segue a organização em camadas. O software de protocolo em cada computador é dividido em módulos, com um módulo correspondendo a cada camada. Mais importante é que a divisão em camadas determina as interações entre os módulos: em teoria, quando o software de protocolo envia ou recebe dados, cada modulo se comunica somente com um módulo correspondente da camada imediatamente superior ou inferior. Deste modo, os dados que estão sendo enviados passam para baixo através de cada camada, e os dados em recebimento passam para cima através de cada camada. A figura abaixo ilustra o conceito.

Como mostra a figura, cada computador contém software para um conjunto inteiro de

protocolos. Os vendedores usam o termo pilha (stack) para se referir a tal software porque o modelo em camadas usado na construção do software é freqüentemente ilustrado com um conjunto de retângulos representando uma pilha.

Page 35: 01 - Redes

Aluízio Rocha Redes de Computadores

35

Várias pilhas estão comercialmente disponíveis. A tabela abaixo lista seis pilhas de protocolos que são populares.

Vendedor Pilha Novell Corporation Netware Banyan System Corporation VINES Apple Computer Corporation Apple Talk Digital Equipment Corporation DECNET IBM SNA (muitos vendedores) TCP/IP

4.6 Como o Software em Camadas Funciona

Foi dito que cada camada de software de protocolo resolve uma parte do problema de

comunicação. Para fazer isso, o software em uma determinada camada no computador remetente acrescenta informações aos dados que estão sendo enviados, e o software na mesma camada no computador receptor usa as informações adicionais para processar os dados recebidos.

Por exemplo, se dois computadores concordarem em um formato de quadro que inclui

um checksum, o software na camada de Enlace de Dados nas duas máquinas executam a computação do checksum. Na Figura anterior, sempre que um quadro de partida chega no software de Link de Dados no computador 1, o software computa um checksum antes de enviar o quadro através da rede. Sempre que um quadro entrante chega no software de Enlace de Dados no computador 2, o software verifica e remove o checksum antes de passar o quadro à camada de Rede.

4.7 Múltiplos Cabeçalhos Aninhados

Normalmente, cada camada coloca informações adicionais em um cabeçalho antes de

enviar dados a uma camada inferior. Deste modo, um quadro viajando através de uma rede contém uma serie de cabeçalhos como mostra a Figura abaixo.

Como mostra a figura, no modelo de camadas ISO, o cabeçalho para o protocolo de

enlace de dados aparece primeiro, pois a Camada 1 não acrescenta um cabeçalho da mesma forma que nas outras camadas.

Page 36: 01 - Redes

Redes de Computadores Aluízio Rocha

36

5 Ligação Inter-redes

Os capítulos anteriores descrevem a ligação em redes básicas, incluindo os componentes de hardware usados em redes LAN e WAN como também conceitos gerais, tais como endereçamento e roteamento. Este capítulo começa a examinar outra idéia fundamental em comunicação entre computadores – uma tecnologia de ligação inter-redes que pode ser usada para conectar múltiplas redes físicas em um grande e uniforme sistema de comunicação.

5.1 Motivação para Ligação Inter-redes

Cada tecnologia de rede é projetada para satisfazer um conjunto específico de

restrições. Por exemplo, as tecnologias de LAN são projetadas para fornecer comunicação de alta velocidade através de pequenas distâncias, enquanto que as tecnologias de WAN são projetadas para fornecer comunicação através de áreas geograficamente distantes. Conseqüentemente, não há uma tecnologia de rede que seja a melhor para todas as necessidades.

Uma organização grande com requisitos de rede diversos precisa de múltiplas redes

físicas. Mais importante, se a organização escolhe o tipo de rede que é o melhor para cada tarefa, a organização terá vários tipos de redes.

5.2 Ligação Inter-redes

Apesar das incompatibilidades entre tecnologias de rede, os pesquisadores inventaram

um esquema que fornece serviço universal entre redes heterogêneas. O esquema, chamado ligação inter-redes (internetworking), utiliza hardware e software. Os sistemas de hardware adicionais são usados para interconectar um conjunto de redes físicas. O software em todos os computadores acoplados, então, fornece serviço universal. O sistema que resulta das redes físicas conectadas é conhecido como uma inter-rede (internetworking).

5.3 Arquitetura de Inter-rede

O componente básico de hardware usado para interconectar redes heterogêneas é um

roteador. Fisicamente, os roteadores se assemelham a bridges – cada roteador é um computador de propósito específico dedicado à tarefa de interconectar redes. Como uma bridge, um roteador tem um processador e memória convencional, como também uma interface de E/S separada para cada rede que conecta. A rede trata a conexão com um roteador da mesma forma que uma conexão com qualquer outro computador.

Uma inter-rede formada usando três roteadores para interconectar quatro redes físicas. Cada rede

pode ser uma LAN ou uma WAN. Embora a figura mostre cada roteador com exatamente duas conexões, os roteadores

comerciais podem conectar mais de duas redes. Deste modo, um único roteador poderia

Page 37: 01 - Redes

Aluízio Rocha Redes de Computadores

37

conectar todos as quatro redes em nosso exemplo. Porém, uma organização raramente usa um único roteador para conectar todas as suas redes. Existem duas razões:

• Como a CPU e a memória em um roteador são usadas para processar cada pacote, o processador em um roteador é insuficiente para tratar do tráfego que passa entre um número arbitrário de redes.

• Redundância melhora a confiabilidade da inter-rede. O tráfego pode seguir caminhos alternativos quando uma rede ou roteador falha.

5.4 Uma Rede Virtual

Dizemos que uma inter-rede é um sistema de rede virtual porque o sistema de

comunicação é uma abstração. Isto é, embora uma combinação de hardware e software forneça a ilusão de um sistema de rede uniforme, tal rede não existe. A figura abaixo mostra o conceito de rede virtual como também uma estrutura física correspondente.

O conceito de inter-rede. (a) A ilusão de uma única rede que o software TCP/IP fornece para usuários e aplicativos, e (b) a estrutura física subjacente que liga um computador a uma rede física, e os roteadores interconectam as redes.

Page 38: 01 - Redes

Redes de Computadores Aluízio Rocha

38

5.5 Protocolos para Ligação Inter-redes

Embora muitos protocolos têm sido adaptados para uso em uma inter-rede, um suíte

distingue-se como o mais extensamente usado para a ligação inter-redes. O suíte é formalmente conhecido como Os Protocolos de Internet TCP/IP; a maioria dos profissionais de redes se referem a eles simplesmente como TCP/IP.

O TCP/IP foi o primeiro conjunto de protocolos desenvolvido para o uso em uma

inter-rede. De fato, os pesquisadores que inventaram o TCP/IP desenvolveram também a arquitetura de inter-rede descrita neste capítulo. O trabalho com TCP/IP começou nos anos 70, aproximadamente ao mesmo tempo em que as Redes Locais estavam sendo desenvolvidas. O exército dos EUA fundamentou boa parte da pesquisa em TCP/IP e ligação inter-redes através da Advance Research Projects Agency (ARPA). O exército estava entra as primeiras organizações a ter múltiplas redes físicas. Pela metade dos anos 80, a National Science Foundation e outras agências do governo dos EUA estavam financiando o desenvolvimento do TCP/IP e uma grande inter-rede que seria usada para testar os protocolos.

5.6 Arquitetura da Internet TCP/IP

A arquitetura do TCP/IP baseia-se principalmente em um serviço de transporte

orientado à conexão, fornecido pelo Transmission Control Protocol (TCP), e em um serviço de rede não-orientado à conexão (datagrama não confiável), fornecido pelo Internet Protocol (IP).

Os padrões da arquitetura Internet TCP/IP não são elaborados por órgãos

internacionais de padronização, como a ISO ou o IEEE. O corpo técnico que coordena o desenvolvimento dos protocolos dessa arquitetura é um comitê denominado IAB (Internet Activity Board). O IAB é formado por pesquisadores seniores, tendo a maioria deles projetado e implementado os protocolos da Arquitetura Internet. O IAB, na realidade, produz poucos documentos. Qualquer pessoa pode projetar, documentar, implementar e testar um protocolo para ser usado na Internet.

Para que um protocolo se torne um padrão Internet é necessário documenta-lo através

de uma RFC (Request for Comments). As RFCs podem ser obtidas por qualquer pessoa conectada à Internet. Da análise das RFCs surgem sugestões, e novas versões do protocolo podem ser elaboradas. Quando o protocolo se torna estável, um dos membros do IAB propõe ao comitê que o protocolo se torne um padrão. Uma RFC é publicada indicando esse status e, se após decorridos aproximadamente seis meses não houver nenhuma objeção, o IAB declara o protocolo como uma Internet Standard.

Para interligar duas redes distintas é necessário conectar uma máquina a ambas as

redes. Essa máquina fica responsável pela tarefa de transferir mensagens de uma rede para a outra. Uma máquina que conecta duas ou mais redes é denominada internet gateway ou internet router. Para ser capaz de rotear corretamente as mensagens, os gateways precisam conhecer a topologia da inter-rede, ou seja, precisam saber como as diversas redes estão interconectadas. Já os usuários vêem a inter-rede como uma rede virtual à qual todas as máquinas estão conectadas, não importando a forma física de interconexão.

Page 39: 01 - Redes

Aluízio Rocha Redes de Computadores

39

A arquitetura Internet TCP/IP é organizada em quatro camadas conceituais construídas sobre uma quinta camada que não faz parte do modelo, a camada intra-rede. A figura abaixo mostra as camadas de dados que é passado de uma para outra.

No nível de aplicação os usuários usam programas de aplicação para acessar os serviços disponíveis na inter-rede. As aplicações interagem com o nível de transporte para enviar e receber dados. As aplicações podem usar o serviço orientado à conexão fornecido pelo TCP (serviço de circuito virtual), ou o serviço não-orientado à conexão fornecido pelo User Datagram Protocol (UDP) que é um serviço de datagrama não confiável, como veremos nos capítulos seguintes. Algumas aplicações disponíveis na Internet TCP/IP são:

• Simple Mail Transfer Protocol (SMTP), que oferece um serviço store-and-forward para mensagens que carregam correspondências contendo textos;

• File Tranfer Protocol (FTP), que fornece o serviço de transferência de arquivos;

• TELNET, que fornece o serviço de terminal virtual; • Domain Name System (DNS) que oferece um serviço de mapemanento de

nomes em endereços de rede. A função básica do nível de transporte é permitir a comunicação fim-a-fim entre

aplicações. As funções do nível de transporte na arquitetura Internet TCP/IP são semelhantes às do mesmo nível do RM-OSI (Modelo de Referência OSI da ISO). Se o protocolo utilizado for o TCP, os seguintes serviços são fornecidos: controle de erro, controle de fluxo, seqüenciação e multiplexação do acesso ao nível inter-rede. O UDP é um protocolo bem mais simples e o serviço que ele fornece é apenas a multiplexação/demultiplexação do acesso ao nível inter-rede.

O nível inter-rede é o responsável pela transferência de dados através da inter-rede

desde a máquina origem até a máquina de destino. Esse nível recebe pedidos do nível de transporte para transmitir pacotes que, ao solicitar a transmissão, informa o endereço da

Page 40: 01 - Redes

Redes de Computadores Aluízio Rocha

40

máquina onde o pacote deverá ser entregue. O pacote é encapsulado em um datagrama IP, e o algoritmo de roteamento é executado para determinar se o datagrama pode ser entregue diretamente, ou se deve ser repassado para um gateway. Com base no resultado da avaliação algoritmo de roteamento, o datagrama é passado para a interface de rede apropriada para então ser transmitido. O nível inter-rede também processa pacotes recebidos das interfaces de rede.

5.7 Comparação entre as Arquiteturas OSI e Internet TCP/IP

Como pode ser observada na figura abaixo, a primeira diferença entre as arquiteturas

OSI e Internet TCP/IP está no número de camadas. Enquanto na arquitetura OSI são definidas sete camadas, na arquitetura Internet TCP/IP são definidas cinco.

A arquitetura Internet TCP/IP foi desenvolvida com o objetivo de resolver um problema prático: interligar redes com tecnologias distintas. Para tal foi desenvolvido um conjunto específico de protocolos que resolveu o problema de forma bastante simples e satisfatória. Os níveis físico, de enlace, e os aspectos do nível de rede do RM-OSI, relativos à transmissão de dados em uma única rede, não são tratados pela arquitetura TCP/IP, que agrupa todos esses serviços na camada intra-rede. A arquitetura TCP/IP se limita a definir uma interface entre o nível intra-rede e o nível inter-rede. Os serviços do nível de rede do RM-OSI relativos à interconexão de redes distintas são implementados na arquitetura TCP/IP pelo protocolo IP. Em outras palavras, nessa arquitetura só existe uma opção de protocolo e serviço para esta subcamada do nível de rede: o protocolo IP, cujo serviço é datagrama não confiável. Esta inflexibilidade da arquitetura TCP/IP no nível inter-rede é uma das principais razões de seu processo. O fato de um sistema utilizar ou não o protocolo IP foi usado inclusive para distinguir os sistemas que “estão na Internet” dos que não estão. No nível de transporte a arquitetura TCP/IP oferece duas opções: o TCP (que oferece um serviço de circuito virtual) e o UDP (datagrama). Acima do nível de transporte está a camada de aplicações na arquitetura TCP/IP. Nessa arquitetura os serviços dos níveis de sessão e apresentação OSI são implementados por cada aplicação de modo específico. A abordagem da ISO definindo as camadas de sessão, apresentação, e elementos de serviços genéricos básicos no nível de aplicação é mais razoável, no sentido em que permite uma maior reutilização de esforços durante o desenvolvimento de aplicações distribuídas.

FísicoEnlace

Rede

Transporte

SessãoApresentação

Aplicação

Intra-rede

Interface de rede

Inter-rede Transporte

Aplicação

Page 41: 01 - Redes

Aluízio Rocha Redes de Computadores

41

6 Endereçamento IP

O capítulo anterior explica a arquitetura física de uma inter-rede em que roteadores interconectam redes físicas. Este capítulo começa uma descrição do software de protocolo que faz uma inter-rede parecer ser um sistema de comunicação único integrado. O capítulo introduz o esquema de endereçamento usado pelo Protocolo de Internet (Internet Protocol, IP) e explica como o IP divide endereços em classes.

6.1 Endereços para a Inter-rede Virtual

O endereçamento é um componente crítico da abstração de inter-rede. Para dar a aparência de um sistema único uniforme, todos os computadores devem usar um esquema de endereçamento uniforme, e cada endereço deve ser único. Infelizmente, não bastam endereços físicos de rede, porque uma inter-rede pode incluir múltiplas tecnologias de rede, e cada tecnologia define seu próprio formato de endereço. Deste modo, os endereços usados por duas tecnologias podem ser incompatíveis pois possuem tamanhos ou formatos diferentes.

Para fornecer endereçamento uniforme em uma inter-rede, o software de protocolo

define um esquema de endereçamento abstrato que atribui a cada host um endereço único. Usuários, programas aplicativos e camadas mais altas de software de protocolo usam os endereços abstratos para se comunicar.

6.2 O Esquema de Endereçamento IP

Na pilha de protocolos TCP/IP, o endereçamento é especificado pelo Protocolo de

Internet (IP). O padrão IP especifica que a cada host é atribuído um número de 32 bits único conhecido como endereço de Protocolo de Internet do host, que é freqüentemente abreviado como endereço IP, ou endereços de Internet. Cada pacote enviado através de uma inter-rede contém o endereço IP de 32 bits do remetente (origem) como também o receptor pretendido (destino). Deste modo, para transmitir informações através de uma TCP/IP, um computador deve conhecer o endereço IP do computador remoto para o qual as informações estão sendo enviadas.

6.3 A Hierarquia de Endereços IP

Conceitualmente, cada endereço IP de 32 bits é dividido em duas partes: prefixo e

sufixo; a hierarquia de dois níveis é projetada para fazer uso eficiente de roteamento e alocação de faixas de endereços entre as diversas redes interconectadas.

O prefixo do endereço identifica a rede física ao qual o computador está acoplado,

enquanto o sufixo identifica um computador individual naquela rede. Isto é, a cada rede física em uma inter-rede é atribuído um valor único conhecido como número de rede. O número de rede aparece como um prefixo no endereço de cada computador acoplado à rede. Além disso, a cada computador em uma determinada rede física é atribuído um sufixo de endereço único.

A hierarquia de endereços IP garante duas propriedades importantes: • A cada computador é atribuído um endereço único (isto é, um único endereço

nunca é atribuído a mais de um computador).

Page 42: 01 - Redes

Redes de Computadores Aluízio Rocha

42

• Embora as designações de números de rede devam ser coordenadas globalmente, os sufixos podem ser atribuídos localmente sem coordenação global.

6.4 Classes de Endereços IP

Uma vez que os projetistas do IP escolheram um tamanho para endereços IP e

decidiram dividir cada endereço em duas partes, eles tiveram que determinar quantos bits colocar em cada parte. O prefixo precisa de bits suficientes para permitir que um número de rede único seja atribuído a cada rede física em uma inter-rede. O sufixo precisa de bits suficientes para permitir que a cada computador acoplado a uma rede seja atribuído um sufixo único. Escolher um prefixo grande acomoda muitas redes, mas limita o tamanho de cada rede; escolher um sufixo grande significa que cada rede pode conter muitos computadores, mas limita o número total de redes.

Os primeiros quatro bits de um endereço determinam a classe a que o endereço

pertence e especificam como o restante do endereço é dividido em prefixo e sufixo. A figura abaixo mostra as cinco classes de endereço, os bits iniciais usados para identificar cada classe e a divisão em prefixo e sufixo.

As classes A, B e C são chamadas de classes primárias porque são usadas para

endereços de hosts. A classe D é usada para multicasting, que permite a entrega a um conjunto de computadores. Para usar IP multicasting, um conjunto de hosts deve concordar em compartilhar um endereço multicast. Uma vez que o grupo multicast foi estabelecido, uma cópia de qualquer pacote enviado para o endereço multicast será entregue para cada host no conjunto.

6.5 Notação Decimal Pontilhada

Embora os endereços IP sejam números de 32 bits, os usuários raramente entram ou

lêem os valores em binários. Em vez disso, quando está interagindo com um usuário, o software usa uma notação que é mais conveniente para as pessoas entenderem. Chamada de notação decimal pontilhada, a forma expressa cada seção de 8 bits de um número de 32 bits como um valor decimal e usa pontos para separar as seções. A figura abaixo mostra alguns exemplos de números binários e as formas decimais pontilhadas equivalentes.

Page 43: 01 - Redes

Aluízio Rocha Redes de Computadores

43

A notação decimal pontilhada trata cada octeto (conjunto de 8 bits ou 1 byte) como um

inteiro binário sem sinal. Como mostra o exemplo final na figura, o menor valor possível, 0, acontece quando todos os bits de um octeto são zeros, e o maior valor possível, 255, quando todos os bits do octeto são um. Deste modo, os endereços variam de 0.0.0.0 a 255.255.255.255.

6.6 Classes e Notação Decimal Pontilhada

A notação decimal pontilhada trabalha bem com endereços IP porque o IP usa limites

de octeto para separar um endereço em prefixo e sufixo. Em um endereço classe A, os últimos três octetos correspondem a um sufixo de host. Semelhantemente, os endereços classe B têm dois octetos de sufixo de host, e os endereços de classe C têm um octeto.

Infelizmente, como a notação decimal pontilhada não mostra os bits individuais de um

endereço, a classe deve ser reconhecida a partir do valor decimal do primeiro octeto. A figura abaixo mostra o alcance decimal de valores para cada classe.

6.7 Divisão do Espaço de Endereçamento Como mostra a figura abaixo, o número de bits alocados a um prefixo ou sufixo

determina quantos números únicos podem ser atribuídos. Por exemplo, um prefixo de n bits permite 2n números de rede únicos, enquanto um sufixo de n bits permite que 2n números de hosts sejam atribuídos em uma determinada rede.

Page 44: 01 - Redes

Redes de Computadores Aluízio Rocha

44

6.8 Um Exemplo de Endereçamento Um exemplo elucidará as idéias e explicará como os endereços são atribuídos na

prática. Considere uma organização que escolhe formar uma inter-rede TCP/IP privada que consiste em quatro redes físicas. A organização deve comprar roteadores para interconectar as quatro redes e então deve atribuir endereços IP. Para começar, a organização escolhe um prefixo único para cada rede.

Como mostra a figura abaixo, o endereço IP atribuído a um host sempre começa com o

prefixo que foi atribuído à rede física do host. Os sufixos, que são atribuídos pelo administrador de rede local, podem ser números arbitrários. Embora muitos administradores prefiram atribuir sufixos consecutivamente, o IP não exige que um administrador assim o faça.

6.9 Resolução de Endereços

Os endereços de protocolo IP são abstrações fornecidas pelo software; o hardware de rede física não sabe como localizar um computador a partir de seu endereço de protocolo. O endereço de protocolo de um destino qualquer da rede deve ser traduzido para um endereço de hardware equivalente antes que um pacote possa ser enviado (fisicamente). A tradução de um endereço de protocolo de um computador para um endereço de hardware equivalente é conhecida como resolução de endereço, e diz-se que um endereço de protocolo é resolvido para o endereço de hardware correto.

A resolução de endereço é local a uma rede. Um computador pode resolver um

endereço de outro computador somente se ambos os computadores estiverem acoplados à mesma rede física.

6.9.1 Técnicas de Resolução de Endereços

Os algoritmos de resolução de endereços podem ser agrupados em três categorias

básicas:

Page 45: 01 - Redes

Aluízio Rocha Redes de Computadores

45

• Pesquisa de Tabela (table lookup). As informações ou mapeamentos são armazenados em uma tabela em memória, que o software procura quando precisa resolver um endereço.

• Computação de forma fechada (closed-form computation). O endereço de protocolo atribuído a um computador é cuidadosamente escolhido de forma que o endereço de hardware do computador possa ser computado a partir do endereço de protocolo usando operações básicas booleanas e aritméticas.

• Troca de Mensagem (message exchange). Os computadores trocam mensagens através de uma rede para resolver um endereço. Um computador envia uma mensagem de broadcast que solicita um a amarração de um endereço (isto é, tradução), e outro computador envia uma resposta que contém as informações solicitadas.

6.9.2 Protocolo de Resolução de Endereço (ARP)

Para garantir que todos os computadores concordem no formato e significado exato de mensagens usadas para resolver endereços, o suíte de protocolos TCP/IP inclui um Protocolo de Resolução de Endereço (Address Resolution Protocol, ARP). O padrão ARP utiliza Troca de Mensagens e Pesquisa de Tabela para a resolução de endereços. O protocolo define dois tipos básicos de mensagens: uma requisição e uma resposta.

O protocolo especifica que uma mensagem de requisição ARP deve ser colocada em

um quadro de hardware e difundido com broadcast para todos os computadores na rede. Cada computador recebe a requisição e examina o endereço IP. O computador que possui o IP procurado na requisição envia uma resposta diretamente ao computador que emitiu a requisição; todos os demais computadores descartam a requisição. A figura abaixo ilustra isto.

Sempre que uma resolução é feita por um computador, este armazenada a resolução

em uma estrutura de tabela em memória. Cada entrada na tabela contém um endereço de protocolo e o endereço de hardware equivalente, como mostrado na figura abaixo. Os endereços de hardware exemplificados na tabela são de uma rede Ethernet.

Page 46: 01 - Redes

Redes de Computadores Aluízio Rocha

46

6.9.3 Protocolo Reverso de Resolução de Endereço

Alguns sistemas de computador são projetados para iniciar o sistema operacional a partir de um disco local e usar a rede para obter informações de configuração de protocolo. O TCP/IP inclui o Reverse Address Resolution Protocol (RARP) que um computador pode usar para determinar seu próprio endereço IP a partir de um servidor de endereços.

O computador ao iniciar envia um broadcast na rede contendo um RARP request. Este

broadcast é capturado pelo servidor de configuração IP que responde com um RARP reply contendo o endereço IP do computador.

Alguns protocolos de aplicação foram desenvolvidos para utilizar tal recurso. Entre

eles, temos o BOOTP e o DHCP (Dynamic Host Configuration Protocol). No DHCP, não só o endereço IP é passado aos clientes, mas também qualquer outra informação necessária para o perfeito funcionamento dos protocolos TCP/IP.

6.10 Endereços IP Especiais

Além de atribuir um endereço a cada computador, é conveniente ter endereços que

podem ser usados para denotar redes ou conjuntos de computadores. O IP define um conjunto de formas de endereço especial que é reservado. Isto é, endereços especiais nunca são atribuídos a hosts.

6.10.1 Endereço de Rede

Uma das motivações para definir formas de endereço especial pode ser vista na figura acima – é conveniente ter um endereço que pode ser usado para denotar o prefixo atribuído a uma determinada rede. O IP reserva um endereço de host zero (ou seja, todos os bits do sufixo são zeros) e o usa para denotar uma rede. Deste modo, o endereço 128.211.0.0 denota a rede à qual foi atribuído a prefixo de classe B 128.211.

O endereço de rede se refere à rede propriamente e não aos computadores acoplados

àquela rede. Deste modo, o endereço de rede nunca deveria aparecer em um pacote.

6.10.2 Endereço de Broadcast Às vezes, é conveniente enviar uma cópia de um pacote para todos os hosts em uma

rede física. Para facilitar o broadcasting, o IP define um endereço de broadcast dirigido para

Page 47: 01 - Redes

Aluízio Rocha Redes de Computadores

47

cada rede física. Um pacote contendo como destino um endereço de broadcast é entregue a todos os hosts na rede.

O endereço de broadcast dirigido é formado colocando-se 1 em todos os bits de sufixo

do endereço. Assim, para o nosso exemplo, o endereço de broadcast dirigido à rede 128.211.0.0 seria 128.211.255.255.

6.10.3 Endereço de Broadcast Limitado

O termo broadcast limitado se refere a um broadcast em uma rede física local,

independente de seu endereço de rede. O broadcast limitado é usado durante a partida do sistema por um computador que ainda não sabe o seu endereço de rede.

O IP reserva o endereço que consiste em todos os bits em 1 para se referir ao broadcast

limitado. Assim, este endereço é 255.255.255.255.

6.10.4 Endereço de Loopback O IP define um endereço de loopback usado para testar aplicativos de rede. Este

endereço utiliza o prefixo de rede classe A 127 para fazer um loopback. Um loopback serve para testar a comunicação entre as camadas na pilha de protocolos: o pacote sai da camada mais superior, desce até a camada IP e sobe novamente até a camada de aplicação. Por convenção, os projetistas utilizam o endereço 127.0.0.1 para o endereço de loopback.

Durante o teste do loopback nenhum pacote deixa um computador – o software IP

encaminha pacotes de um programa aplicativo a outro. Conseqüentemente, o endereço de loopback nunca aparece em um pacote que viaja através de uma rede.

A figura abaixo resume as formas de endereço IP especiais.

6.11 Endereços IP Privados

Uma Intranet é uma estrutura de inter-rede em uma organização privada que utiliza toda a família de protocolos TCP/IP para implementar a comunicação entre os seus computadores. Freqüentemente, estas redes privadas não estão interligadas à Internet, e assim não há motivo para se requisitar ao órgão central da Internet, responsável pela distribuição de endereços, faixas únicas de endereços IPs a serem utilizadas na organização. Por convenção, o Comitê Gestor da Internet reservou três faixas de endereços para tal fim. As faixas de endereços privados são:

10.0.0.0 a 10.255.255.255 172.16.0.0 a 172.16.255.255

192.168.0.0 a 192.168.255.255

Page 48: 01 - Redes

Redes de Computadores Aluízio Rocha

48

Pacotes contendo qualquer um destes endereços como destino não podem trafegar na

Internet, eles são descartados pelos roteadores. Uma Intranet que utilize estas faixas de endereços e que queira se interligar com a

Internet deverá implementar algum esquema de troca de endereços privado/público para que seus pacotes trafegem da Intranet para a Internet e vice-versa. Este esquema é conhecido como Mascaramento IP (IP Masquerading).

6.12 Roteadores e o Princípio de Endereçamento IP

Um endereço IP não identifica um computador específico. Em vez disso, cada

endereço IP identifica uma conexão entre um computador e uma rede. Um computador com múltiplas conexões de rede (por exemplo, um roteador) deve ser designado com um endereço IP para cada conexão.

A figura abaixo ilustra a idéia com um exemplo que mostra endereços IP atribuídos a

dois roteadores que conectam três redes.

Page 49: 01 - Redes

Aluízio Rocha Redes de Computadores

49

7 Roteamento IP

Os capítulos anteriores descrevem a arquitetura de uma inter-rede, endereçamento da Internet e o software de resolução de endereços usado para amarrar endereços da Internet a endereços de hardware. Este capítulo discute o serviço de comunicação fundamental em uma inter-rede. Descreve o formato de pacotes que são enviados através de uma inter-rede e discute como os roteadores processam e encaminham tais pacotes.

7.1 O Datagrama IP

Os protocolos TCP/I usam o nome datagrama IP para se referir a um pacote de inter-

rede. Curiosamente, um datagrama IP tem o mesmo formato geral de um quadro de hardware: o datagrama começa com um cabeçalho seguido de uma área de dados. A figura abaixo mostra o formato de um datagrama.

A quantidade de dados transportados em um datagrama não é fixa. O remetente

escolhe uma quantidade de dados que é apropriada para um propósito particular. Por exemplo, um aplicativo que transmite o pressionar de teclas através de uma rede pode colocar cada tecla pressionada em um datagrama separado, enquanto que um aplicativo que transfere arquivos grandes pode enviar datagrama grandes. A questão é: o tamanho de um datagrama é determinado pelo aplicativo que envia dados. Permitir o tamanho variável de datagramas torna o IP adaptável para uma variedade de aplicativos.

Na versão corrente do IP (versão 4), um datagrama pode conter até mesmo um único

octeto de dados e no máximo octetos de 64K, incluindo o cabeçalho.

7.2 Roteamento Roteamento inter-redes é a principal função do protocolo IP. O protocolo assume que

os hosts sabem enviar datagramas para qualquer host conectado à mesma rede. A função de roteamento torna-se mais complexa quando uma entidade deve transmitir um datagrama cujo destinatário não está ligado à mesma rede que ela. Neste caso, a função de roteamento é transferida para os gateways (roteadores) entre a rede de origem e a rede de destino.

Cada roteador ao longo do caminho recebe o datagrama, extrai o endereço de destino

do cabeçalho e usa o endereço de destino para determinar um próximo hop (salto de uma rede para outra) para o qual o datagrama deve ser enviado, que pode ser o destino final ou outro roteador.

Para fazer a seleção eficiente de um próximo hop e para possibilitar que as pessoas

entendam a computação, cada roteador IP mantém informações em uma tabela de roteamento. Uma tabela de roteamento deve ser iniciada durante o boot do roteador e deve ser atualizada se houver mudanças na topologia; caso contrário o hardware falha.

Page 50: 01 - Redes

Redes de Computadores Aluízio Rocha

50

Conceitualmente, a tabela de roteamento contém um conjunto de entradas, no qual cada uma especifica um destino e o próximo hop a ser usado para alcançar aquele destino. A figura abaixo mostra o conteúdo de uma tabela de roteamento no roteador do centro (R2) que são usados para interconectar quatro redes em uma pequena inter-rede.

Como mostra a figura, o roteador R2 se conecta diretamente às redes indicadas por

Rede 2 e Rede 3. Portanto, o R2 pode entregar um datagrama a qualquer destino acoplado àquelas redes. Quando um datagrama for destinado à rede 4, R2 envia o datagrama para o roteador R3.

Cada destino listado em uma tabela de roteamento é uma rede, não um host individual.

A distinção é importante porque uma inter-rede pode conter acima de 1000 vezes mais hosts do que as redes. Deste modo, usar redes como destinos mantém as tabelas de roteamento pequenas.

7.3 Entradas da Tabela de Roteamento e o Campo de Máscara

Na prática, uma tabela de roteamento IP é ligeiramente mais complexa do que mostra

a Figura acima. O campo Destino em cada entra contém o prefixo de rede da rede destino. Segundo, um campo adicional em cada entrada contém uma máscara de endereço que especifica quais bits do destino correspondem ao prefixo de rede. Terceiro, é usado um endereço IP quando o campo Próximo Hop representar um roteador. A figura abaixo mostra como a tabela de roteamento da figura acima poderia aparecer.

Page 51: 01 - Redes

Aluízio Rocha Redes de Computadores

51

As duas primeiras redes na figura acima têm um prefixo classe A cada, a terceira rede

tem um prefixo classe B e a quarta tem um prefixo classe C. A cada roteador foram atribuídos dois endereços IP, um para cada interface. Por exemplo, o roteador que conecta a rede 30.0.0.0 à rede 40.0.0.0 foram atribuídos os endereços 30.0.0.7 e 40.0.0.7.

Uma máscara de bits torna eficiente a extração do prefixo – o software computa o E

(and) booleano da máscara com o endereço de destino do datagrama. Deste modo, a computação para examinar a i-ésima entrada na tabela pode ser expressa como:

Se ( ( Máscara[i] AND End_Destino ) = Destino[i] ) então Encaminha para o próximo Hop[i]; Como exemplo, considere um datagrama destinado ao endereço 192.4.10.3, e assuma

que o datagrama chega a um roteador que contém a tabela de roteamento que ilustra a figura acima. Assuma também que o software procura entradas na tabela em ordem. A primeira entrada falha porque 255.0.0.0 AND 192.4.10.3 não é igual a 30.0.0.0. Depois de rejeitar a segunda e a terceira entradas na tabela, o software de roteamento escolherá o próximo Hop 128.1.0.9 porque

255.255.255.0 AND 192.4.10.3 = 192.4.10.0

7.4 Sub-Redes

A técnica de máscara de bits que é útil para se definir o encaminhamento de um

datagrama, além de simplificar o esquema de roteamento, flexibiliza a distribuição de endereços nas redes. Isto é, eu posso definir máscaras que permitam, por exemplo, uma rede classe C ser subdivida em duas ou mais redes, chamadas de sub-redes.

O esquema de sub-rede consiste em incluir no prefixo alguns bits do sufixo dos

endereços. Assim, diminui-se o número máximo de hosts por rede mas aumenta-se o número de redes para o ‘mesmo’ prefixo. Estes bits que são tirados do sufixo (definidos a partir da divisão de classes de endereços IP) e são passados para o prefixo a fim de aumentar o número de sub-redes é chamado de bits da sub-rede.

O Campus da Universidade Estadual de Campinas (Unicamp) é um exemplo de tal

esquema de sub-redes. A Unicamp possui uma classe B de endereços – 143.106.0.0 e, portanto, sua máscara é 255.255.0.0. Internamente, a Rede da Unicamp consiste de várias pequenas redes espalhadas pelo Campus, tais como as LANs dos seus vários departamentos. Assim, se a Unicamp utilizar a máscara 255.255.255.0 a faixa de endereços IP é quebrado em 254 sub-redes de 254 máquinas cada, ao invés de 2552 máquinas para uma única rede.

Vale salientar que o esquema de se criar sub-redes é apenas uma divisão interna da

rede. Sub-redes são geradas pelo administradores de rede para refletir limites geográficos e/ou administrativos nas LANs da organização. Para o mundo exterior, esta divisão não precisa ser conhecida. No nosso exemplo da Unicamp, para todos nós que não fazemos parte da Rede da Unicamp, a única informação que temos é que os endereço da Rede da Unicamp é 143.106.0.0 com máscara 255.255.0.0, embora, internamente, todos os roteadores da Unicamp trabalham com a máscara 255.255.255.0. Este esquema é muito útil para se economizar endereços.

Page 52: 01 - Redes

Redes de Computadores Aluízio Rocha

52

7.5 Rota Padrão

Freqüentemente, as redes só possuem uma rota de saída para uma outra rede. Isto é, só existe um gateway na rede. Nestes casos, é interessante definir uma rota padrão nas tabelas de roteamento que será utilizada sempre que nenhuma outra rota ‘casa’ com o endereço de destino.

Por exemplo, considere a seguinte topologia:

Em cada roteador existirá uma rota para cada LAN apontando para o seu roteador específico (Roteador A para LAN A, Roteador B para LAN B e assim por diante), mais a rota padrão apontando para Roteador 1.

A rota padrão é utilizada não só pelos roteadores, mas também por qualquer host de

uma inter redes (como um host de internet). Quando definimos um gateway em um host, estamos definindo a rota padrão que o host irá utilizar quando quiser passar um pacote para um outro host que não está na sua rede.

Em termos de endereço e máscara, a entrada na tabela de roteamento para a rota

padrão tem a seguinte forma:

Rede Máscara Roteador 0.0.0.0 0.0.0.0 IP DO SERVIDOR

LAN A

LAN B

LAN C

LAN D

Firewall

Roteador A

Roteador B

Roteador C

Roteador D

Page 53: 01 - Redes

Aluízio Rocha Redes de Computadores

53

7.6 Exercícios

1. Defina a classe, o endereço de sub-rede e o de broadcast dos seguintes endereços:

Endereço Máscara Classe Sub-Rede Broadcast 201.222.10.60 255.255.255.248 15.16.193.6 255.255.248.0 128.16.32.13 255.255.255.252 153.50.6.27 255.255.255.128

2. Com base na topologia a seguir de uma organização que possui a classe B 143.200.0.0 para a sua intranet, defina o endereço de rede para cada LAN. Com base em sua definição, informe a tabela de roteamento dos quatro roteadores e da máquina “Pedro”.

LAN

INTERNET

LAN

LAN

Route A Route D

Maria

João Pedro

Page 54: 01 - Redes

Redes de Computadores Aluízio Rocha

54

8 Protocolos de Transporte

Os endereços definidos pelo protocolo IP são eficientes em rotular os milhões de computadores ligados à Internet de maneira que os dados cheguem até o endereço desejado. Entretanto, o protocolo IP não dispõe de meios para garantir a entrega dos dados íntegros e no tempo certo. Para isto, conta com o protocolo TCP, formando a dupla que é um dos pilares onde se assenta o funcionamento da Internet.

8.1 Introdução

Conforme já vimos anteriormente, o protocolo IP se encarrega de dirigir os pacotes de dados até seu destino. Entretanto, nada pode fazer para garantir a entrega dos dados. Por exemplo, vamos imaginar um determinado pacote de dados que chegou ao destino. Os pacotes IP carregam consigo números de checagem de integridade (checksum). O receptor verifica os dados, e se o checksum não for igual, simplesmente descarta as informações. Assim, o protocolo IP necessita de algo que cuide de fazer com que os dados que não chegam ao destino ou que cheguem deteriorados sejam retransmitidos, até que a informação percorra com sucesso o caminho entre o emissor e o transmissor. Esta é uma tarefa para os protocolos da camada de transporte.

Na família TCP/IP, existem dois protocolos de transporte, o TCP e o UDP. O

protocolo TCP oferece um serviço de entrega de pacotes do tipo orientado à conexão e confiável. Já o UDP oferece o mesmo serviço de entrega de pacotes só que não orientado à conexão (não confiável).

8.2 Características do TCP

Do ponto de vista de um programa aplicativo, o serviço oferecido pelo TCP tem sete

características importantes: • Orientado à conexão. O TCP fornece serviço orientado à conexão em que um

aplicativo deve primeiro solicitar uma conexão com um destino, e então usar a conexão para transmitir dados.

• Comunicação ponto a ponto. Cada conexão TCP tem exatamente duas extremidades.

• Confiabilidade completa. O TCP garante que os dados enviados através de uma conexão serão entregues exatamente como enviados, sem dados faltando ou fora de ordem.

• Comunicação Full Duplex. Uma conexão TCP permite que os dados fluam em uma ou outra direção e permite que um outro programa aplicativo envio dados a qualquer hora. O TCP pode armazenar nos buffers dados que partem e que chegam em ambas as direções, possibilitando que um aplicativo envie dados e então continue uma computação enquanto os dados estão sendo transferidos.

• Interface de stream. Dizemos que o TCP fornece uma interface de stream em que um aplicativo envia uma seqüência contínua de octetos através de uma conexão. Isto é, o TCP não fornece a noção de registros de dados.

• Partida de uma conexão confiável. O TCP exige que quando dois aplicativos criem uma conexão, ambos devem concordar com a nova conexão; os pacotes

Page 55: 01 - Redes

Aluízio Rocha Redes de Computadores

55

duplicados usados em conexões anteriores não parecerão ser respostas válidas ou de outra forma interferirão com a nova conexão.

• Desligamento de conexão graciosa (Graceful Connection Shutdown). Um programa aplicativo pode abrir uma conexão, enviar quantias arbitrárias de dados e então requisitar o fechamento da conexão. O TCP garante a entrega confiável de todos os dados antes de fechar a conexão.

8.2.1 Serviço Fim-a-Fim

O TCP é chamado de um protocolo fim-a-fim pois fornece uma conexão diretamente de um aplicativo em um computador remoto. Os aplicativos podem solicitar que o TCP forme uma conexão, envie e receba dados, e feche a conexão.

As conexões fornecidas pelo TCP são chamadas de conexões virtuais porque são

obtidas via software. Realmente, o sistema de inter-rede subjacentes não fornece suporte de hardware ou software para conexões. Em vez disso, os módulos de software TCP em duas máquinas trocam mensagens para obter a ilusão de uma conexão.

O TCP usa o IP para transportar mensagens. Cada mensagem TCP é encapsulada em

um datagrama IP e enviada através da inter-rede. Quando o datagrama chega ao host destino, o IP passa o conteúdo para o TCP. A figura abaixo ilustra a relação entre TCP e o IP.

8.2.2 Obtendo Confiabilidade

8.2.2.1 Seqüenciamento de Pacotes

Um sistema de rede com chaveamento por pacotes, que pode mudar as rotas destes,

pode também entregar pacotes fora de ordem. Para resolver este problema, os protocolos de transporte usam seqüenciamento. O lado remetente inclui um número de seqüência em cada pacote. O lado receptor armazena o numero de seqüência do último pacote recebido em ordem assim como uma lista de pacotes adicionais que chegaram fora de ordem. Quando um pacote chega, o receptor examina o número de seqüência para determinar como o pacote deve ser tratado. Se o pacote é o próximo esperado (ou seja, chegou em ordem), o software de protocolo entrega o pacote para a camada imediatamente superior e verifica sua lista para ver se podem ser entregues também pacotes adicionais. Se o pacote chegou fora de ordem, o software de protocolo acrescenta o pacote à lista.

Um hardware com mau funcionamento pode fazer com que os pacotes sejam

duplicados. O seqüenciamento resolve, também, o problema da duplicação de pacotes. O

Page 56: 01 - Redes

Redes de Computadores Aluízio Rocha

56

software receptor verifica se há duplicatas quando examina o número de seqüência de um pacote sendo recebido. Se a seqüência já foi entregue ou é igual a um dos pacotes esperando na lista, o software descarta a nova cópia.

8.2.2.2 Retransmitindo pacotes perdidos

A perda de pacotes é um problema fundamental em redes de computadores porque

erros de transmissão podem adulterar bits, tornando o quadro inválido. Quando um receptor detecta tais problemas, o receptor descarta o quadro.

Para garantir a transferência (isto é, transferência sem perda), o TCP usa confirmação

positiva com retransmissão. Sempre que um quadro chega intacto, o TCP receptor devolve uma pequena mensagem que relata que a recepção foi bem-sucedida. A mensagem é conhecida como confirmação (acknowledgment, ACK). O remetente tem que assegurar que cada pacote seja transmitido com sucesso. Sempre que o remetente envia um pacote, o software de protocolo do lado remetente começa um temporizador. Se uma confirmação chega antes do temporizador expirar, o protocolo cancela o temporizador. Se o temporizador expira antes de uma confirmação chegar, o software envia outra cópia do pacote e reinicia o temporizador.

A retransmissão não pode ter sucesso se um defeito de hardware desconectou

permanentemente a rede. Portanto, os protocolos que retransmitem mensagens usualmente limitam o número de retransmissões. Quando este limite é alcançado, o protocolo pára de transmitir e declara que o destino é inalcançável.

8.2.2.3 Controle de Fluxo para Prevenir Atropelamento de Dados

Os computadores não trabalham todos na mesma velocidade. O atropelamento de

dados acontece quando um computador envia dados através de uma rede mais rapidamente do que o destino pode absorver. Conseqüentemente, dados podem ser perdidos.

Existem várias técnicas para tratar de atropelamento de dados. Coletivamente, as

técnicas são conhecidas como mecanismos de controle de fluxo (flow control mechanisms). A forma mais simples de controle de fluxo é um sistema em que um remetente espera após a transmissão de cada pacote. Quando o receptor estiver pronto para outro pacote, o receptor envia uma mensagem de controle, normalmente uma forma de acknowledgement.

Embora os protocolos do tipo pára-e-vai (stop-and-go) previnem atropelamento, eles

podem levar ao uso extremamente ineficiente da largura de banda da rede. Para obter taxas altas de throughput, os protocolos usam uma técnica de controle de fluxo conhecida como janela deslizante (sliding window). O remetente e o receptor são programados para usar um tamanho de janela fixo, que é a quantia máxima de dados que podem ser enviados antes de um acknowledgment chegar. Por exemplo, o remetente e o receptor poderiam concordar em um tamanho de janela de quatro pacotes. O remetente começa com os dados a serem enviados, extrai os dados para encher a primeira janela e transmite. O receptor deve ter espaço de buffer pronto para receber a janela inteira. Quando um pacote chegar em seqüência, o receptor passa o pacote para o aplicativo receptor e transmite um acknowledgment para o remetente. Quando chega um acknowledgment, o remetente descarta a sua cópia do pacote cuja recepção foi confirmada e transmite o próximo pacote. A figura abaixo mostra porque o processo é conhecido como uma janela deslizante.

Page 57: 01 - Redes

Aluízio Rocha Redes de Computadores

57

A janela deslizante pode aumentar drasticamente o throughput. Para entender por quê, considere a seqüência de transmissões com um esquema pára-e-vai e um esquema de janela deslizante. A Figura abaixo contém uma comparação considerando a transmissão de quatro pacotes.

Page 58: 01 - Redes

Redes de Computadores Aluízio Rocha

58

8.2.2.4 Three-Way Handshake Baseia-se na troca de três mensagens. Os cientistas provaram que a troca de 3

mensagens é necessária e suficiente para assegurar o acordo não ambíguo apesar da perda de pacotes, duplicação e atraso. A figura abaixo ilustra o 3-way handshake usado para fechar uma conexão.

8.3 Características do UDP

O UDP (User Datagram Protocol) é uma alternativa econômica ao TCP. O UDP oferece um serviço de entrega de dados não orientado à conexão. Isto é, não há a necessidade de abertura de conexão para a entrega de pacotes de um ponto a outro. Além disso, o UDP não utiliza técnicas para detecção de erros na transmissão. Ele pressupõe que o hardware de rede envolvido entre o transmissor e o receptor está livre de erros.

Por não sobre-carregar o protocolo com técnicas para detecção e correção de erros, o

UDP acaba ficando ligeiramente mais rápido que o TCP. Principalmente, se o volume de dados que deverá ser transmitido for pequeno, pois o custo de estabelecimento e controle da conexão acaba ficando mais alto do que simplesmente reenviar os dados.

Portanto, o UDP é indicado para serviços de redes que não exigem a transferência de

um volume de dados grande. Um exemplo típico deste tipo de comunicação, é a notificação que os servidores de mensagens rápidas (instant messages), como ICQ e MS-Messenger, enviam para os clientes informando que um usuário está on-line ou off-line.

8.4 O Paradigma Cliente-Servidor

O paradigma de organizar um programa aplicativo para esperar passivamente que outro aplicativo inicie a comunicação distribuída que ele recebeu um nome: o paradigma de interação cliente-servidor.

Os termos cliente e servidor se referem aos dois aplicativos envolvidos em uma

comunicação. O aplicativo que começa ativamente o contato é chamado de cliente, ao passo que o aplicativo que espera passivamente por contato é chamado de servidor.

8.4.1 Características de Clientes e Servidores

Embora existam variações menores, a maioria das instâncias de interação cliente-

servidor tem as mesmas características gerais. Em geral, o software de cliente:

Page 59: 01 - Redes

Aluízio Rocha Redes de Computadores

59

• É um programa aplicativo arbitrário que se torna um cliente termporariamente quando for necessário acesso remoto, mas executa também outro processamento localmente.

• É diretamente invocado por um usuário e executa somente para uma sessão. • Executa localmente no computador pessoal de um usuário. • Inicia ativamente o contato com um servidor. • Pode acessar múltiplos serviços quando necessário, mas contata ativamente um

servidor remoto de cada vez. • Não exige hardware especial ou um sistema operacional sofisticado.

Em contraste, o software de servidor:

• É um programa privilegiado de propósito geral especial dedicado a fornecer um serviço, mas por tratar de múltiplos clientes remotos ao mesmo tempo.

• É automaticamente invocado quando um sistema inicia e continua a executar ao longo de muitas sessões.

• Roda em um computador compartilhado (isto é, não em um computador pessoal de um usuário).

• Espera passivamente pelo contato de clientes remotos arbitrários. • Aceita contato de clientes arbitrários, mas oferece um único serviço. • Exige hardware poderoso e um sistema operacional sofisticado.

8.4.2 Programas Servidores e Computadores da Classe Servidor

Há confusão às vezes sobre o termo servidor. Formalmente, o termo se refere a um programa que espera passivamente por comunicação, e não pelo computador em que ele executa. Porém, quando um computador é dedicado à execução de um ou mais programas servidores, o próprio computador é às vezes chamado (incorretamente) de servidor.

Aderimos à terminologia cientificamente precisa e usamos o termo servidor para nos

referirmos ao programa que está rodando e não ao computador. O termo computador da classe servidor (server class computer) se refere a um computador poderoso usado para executar software de servidor.

8.4.3 Protocolos de Transporte e Interação Cliente-Servidor

Um aplicativo de cliente ou servidor interage diretamente com um protocolo de

transporte para estabelecer uma comunicação e para enviar ou receber informações. O protocolo de transporte, então, usa protocolos das camadas mais baixas para enviar e receber mensagens individuais. Deste modo, um computador necessita de uma pilha completa de protocolos para rodar um cliente ou um servidor.

A figura abaixo mostra dois servidores em um único computador acessado por clientes

em dois outros computadores. O cliente 1 pode acessar o servidor 1, enquanto o cliente 2 pode acessar o cliente 2.

Page 60: 01 - Redes

Redes de Computadores Aluízio Rocha

60

Tecnicamente, diz-se que um sistema de computador que permite que múltiplos

programas aplicativos executem ao mesmo tempo suporta concorrência, e um programa que tem mais de um thread de controle3 é chamado de programa concorrente. A concorrência é fundamental para o modelo cliente-servidor de interação porque um servidor concorrente oferece serviço para múltiplos clientes ao mesmo tempo, sem exigir que cada cliente espere que os clientes anteriores terminem.

8.5 Identificando um Serviço Particular

Os protocolos de transporte fornecem um mecanismo que permite a um cliente

especificar de forma não-ambígua qual serviço é desejado. O mecanismo atribui a cada serviço um identificador único e exige que o servidor e o cliente usem o identificador. No TCP/IP este identificador de 16 bits é conhecido como número de porta. Assim, cada serviço oferecido por um servidor tem uma porta associada. Isto permite que o servidor ofereça vários serviços de redes simultaneamente.

Quando um servidor inicia a execução, ele se registra com o software de protocolo local

especificando o número da porta para o serviço que ele oferece e então espera passivamente pela comunicação. Um cliente especifica o número de porta de protocolo do serviço desejado ao enviar uma requisição. Conceitualmente, o TCP no computador servidor usa o número da porta para determinar qual servidor deve receber a requisição.

Abaixo, tem uma lista de número de portas para os serviços de redes mais conhecidos: Porta Protocolo / Serviço 21 FTP – Transferência de arquivos 23 TELNET – Abertura de sessão de trabalho em computador remoto 25 SMTP – Correio eletrônico 80 HTTP – Transferência de documentos hipermídia (HTML) 110 POP3 – Transferência de mensagens de correio do servidor para o cliente

8.5.1 Comunicação Não-Ambígua

Se existem muitas cópias de um servidor, como um cliente pode interagir com a cópia correta? Diretamente ao ponto, como uma requisição recebida pode ser passada para a cópia

3 Alguns sistemas usam o termo processo ou tarefa para o thread de controle.

Page 61: 01 - Redes

Aluízio Rocha Redes de Computadores

61

correta de um servidor? A resposta para estas perguntas reside no método que os protocolos de transporte usam para identificar um servidor.

O TCP exige que cada cliente escolha um número de porta de protocolo local que não

tenha sido atribuído a um serviço. Quando um cliente enviar um segmento de TCP, ele deve colocar seu número de porta de protocolo local no campo SOURCE PORT, e o número de porta de protocolo do servidor no campo DESTINATION PORT. No computador do servidor, o TCP usa a combinação de número de porta de origem e de destino (como também endereços IP do cliente e do servidor) para identificar uma comunicação particular. Deste modo, as mensagens podem chegar de dois ou mais clientes para o mesmo serviço sem causar problema. O TCP passa cada segmento recebido para a cópia do servidor que concordou em tratar do cliente.

8.6 Interface de Sockets

A interface que um aplicativo usa quando interage com o software de protocolo de

transporte é conhecida como Interface de Programa Aplicativo (Application Program Interface), ou API. Uma API define um conjunto de operações que um aplicativo pode executar quando interage com o software de protocolo.

A API para a programação de aplicativos que utilizem a família de protocolos de inter-

rede TCP/IP, é conhecida como API de sockets (lê-se “só-queti”, significando “conector”). A API de sockets está disponível para muitos sistemas operacionais, incluindo sistemas usados em computadores pessoais (por exemplo, Windows NT e 98 da Microsoft) como também vários sistemas UNIX (por exemplo, Solaris da Sun Microsystems e Linux).

A API de sockets se originou como parte do sistema operacional BSD UNIX da

University of Califórnia em Berkeley. Muitos vendedores de computadores portaram o sistema BSD para seu hardware, e o usaram como base em seus sistemas operacionais comerciais. Deste modo, a API de sockets se tornou o padrão de facto na indústria.

8.6.1 Parâmetros e a API de Sockets

Na programação através de sockets um aplicativo deve especificar diversos detalhes

para usar um socket. Por exemplo, um aplicativo deve escolher um protocolo de transporte em particular, fornecer o endereço IP de uma máquina remota e especificar se o aplicativo é um cliente ou um servidor. Para acomodar todos os detalhes, cada socket tem diversos parâmetros e opções – um aplicativo deve fornecer valores para cada um deles.

Essencialmente, um aplicativo cria um socket e então invoca funções para especificar

em detalhes como será usado o socket. A vantagem da abordagem de sockets é que a maioria das funções tem três ou menos argumentos; a desvantagem é que um programador deve se lembrar de chamar múltiplas funções ao usar sockets. Um socket é composto de três partes: o endereço IP do receptor, o número da porta do receptor e a indicação do protocolo de transporte: TCP ou UDP.

Page 62: 01 - Redes

Redes de Computadores Aluízio Rocha

62

9 Sistema de Nomes de Domínios

Os capítulos anteriores descrevem como é atribuído a cada computador um endereço do Internet Protocol que aparece em cada datagrama IP enviado para o computador. Embora os endereços IP sejam fundamentais em TCP/IP, qualquer pessoa que tenha usado a Internet sabe que os usuários não precisam lembrar ou digitar endereços IP. Em vez disso, aos computadores também são atribuídos nomes simbólicos.

Embora nomes simbólicos sejam convenientes para as pessoas, eles são

inconvenientes para computadores. Deste modo, embora softwares aplicativos permitam que usuários digitem nomes simbólicos, os protocolos de rede subjacentes exigem endereços – um aplicativo deve traduzir cada nome em um endereço IP equivalente antes de usá-lo para comunicação.

Neste capítulo estudaremos o serviço encarregado de traduzir nomes simbólicos dados

aos computadores em endereços IP e vice-versa.

9.1 O Problema O primeiro problema que os projetistas dos protocolos de redes enfrentaram foi o fato

de que máquinas trabalham com números, enquanto que as pessoas trabalham com nomes. É muito mais cômodo para os humanos decorarem nomes simbólicos do que números quando precisam referenciar algum computador da rede. Com resolver esta questão?

A primeira solução adotada foi criar arquivos, que eram armazenados localmente nos

computadores, que associavam cada endereço IP de computador da rede com seu respectivo nome simbólico. Por exemplo, na plataforma UNIX existe um arquivo chamado hosts no diretório /etc com a seguinte informação:

200.174.131.31 turing 200.239.44.169 pascal

O esquema de tradução baseado neste arquivo era bem simples. Sempre que alguém

informasse o nome turing o Sistema Operacional ‘traduzia’ tal nome pelo IP 200.174.131.31 associado ao nome no arquivo /etc/hosts.

O problema encontrado neste esquema, que o inviabilizou, era a necessidade de se

espalhar o mesmo arquivo em todos os computadores da rede; para redes muito grandes, isto não era uma tarefa trivial. Além disso, sempre que houvesse alguma alteração de nome ou acréscimo de computadores na rede, todo o trabalho de distribuição tinha que ser refeito.

Mas, como se referenciar a qualquer computador no mundo conectado na Internet?

Não existe uma autoridade central sobre todas as redes. Isto é, a Internet é um agrupamento de redes, cada uma gerenciada localmente e em constante alteração. O esquema acima estava muito distante da solução para este problema.

Page 63: 01 - Redes

Aluízio Rocha Redes de Computadores

63

9.2 A Solução

Os projetistas do TCP/IP resolveram este problema de tradução de nomes para endereços IPs na Internet através do DNS – Domain Name Service (Serviço de Nomes de Domínios). O DNS é um protocolo baseado em TCP/IP encarregado de distribuir e resgatar qualquer Nome/IP de computadores na Internet, fazendo a tradução de nomes simbólicos para os endereços IPs respectivos, e vice-versa.

O mesmo funciona graças ao estabelecimento de zonas de autoridade. Cada zona tem

autoridade sobre a atribuição de nomes aos seus computadores. Os nomes são organizados em uma estrutura hierárquica de nomes de domínios, onde um domínio significa um ambiente de rede. Uma zona é constituída de um domínio mais todos os domínios sobre ele, exceto os domínios delegados. Cada domínio administrativo possui um servidor de nomes, que atende às pesquisas de tradução daquele ambiente de rede ou da Internet.

9.3 Estrutura de Nomes de Computador

Cada nome de computador consiste de uma seqüência de segmentos alfanuméricos

separados por pontos. Por exemplo, um computador no Departamento de Ciências da Computação da UNICAMP tem o nome de domínio:

marumbi.unicamp.br

e um computador no Centro de Tecnologia da UFRN tem o nome de domínio:

www.ct.ufrn.br Os nomes de domínio são hierárquicos, com a parte mais significativa do nome à direita. O segmento mais à esquerda de um nome (marumbi e www nos exemplos) é o nome de um computador individual. Outros segmentos em um nome de domínio identificam o grupo que possui o nome. Por exemplo, os segmentos unicamp e ufrn correspondem ao nome de uma universidade. O sistema de nomes de domínios especifica valores para o segmento mais significativo, que é chamado de nível mais alto do DNS. A tabela abaixo lista os domínios de níveis mais altos:

Page 64: 01 - Redes

Redes de Computadores Aluízio Rocha

64

Quando uma organização deseja participar no sistema de nomes de domínios, a organização deve solicitar um nome abaixo de um dos domínios de nível mais alto existentes. A maioria das corporações escolhe registrar sob o domínio com.

Uma vez que tenha sido atribuído um domínio a uma organização, o sufixo é reservado para a organização – a nenhuma outra organização será atribuído o mesmo sufixo de nome. Por exemplo, uma vez que foobar.com foi atribuído, outra organização de nome Foobar poderia solicitar foobar.edu ou foobar.org mas não foobar.com.

9.4 Estrutura Geográfica

Além da familiar estrutura organizacional, o DNS permite a organizações usarem um

registro geográfico. Por exemplo, a Rede Governamental Norte-Riograndense de Informática registrou o domínio:

rn . gov . br

porque ela está localizada no RN, na categoria governamental, no Brasil. Por exemplo,

as universidades no Reino Unido se registraram sob o domínio:

ac . uk

onde ac é uma abreviação para acadêmica, e uk é o código oficial de país para o Reino Unido (United Kingdom).

9.5 Nomes de Domínio Dentro de uma Organização Uma vez que uma organização tenha um domínio particular, ela pode decidir se

introduz ou não uma estrutura hierárquica adicional. Por exemplo, se a Corporação Foobar é pequena, ela pode decidir que todos os nomes terão a forma:

computador . foorbar . com

onde computador denota o nome atribuído a um único computador. Porém, se Foobar

tem muitas divisões em cada localização, um nível da hierarquia de nomes de domínio poderia ser usado para distinguir entre divisões, resultando em nomes da forma:

computador . divisão . local . foobar . com

Por exemplo, a figura abaixo usa uma representação visual para ilustrar a hierarquia

DNS da Foobar se a companhia tem três subdivisões: doces de amendoim, de amêndoa, e de nozes. Como mostra a figura, a hierarquia corresponde diretamente à sintaxe de nomes. Por exemplo, os computadores na subdivisão nozes têm nomes que terminam com o sufixo:

nozes . doces . foobar . com

Em termos de diagrama, o sufixo dos nomes corresponde exatamente à seqüência de

símbolos encontrados ao longo de um caminho sudindo na hierarquia do item identificado por nozes.

Page 65: 01 - Redes

Aluízio Rocha Redes de Computadores

65

9.6 A Hierarquia do Servidor DNS Os servidores DNS são organizados em uma hierarquia que combina a hierarquia de

nomes, cada um sendo a autoridade para parte da hierarquia de nomes. Um servidor de raiz ocupa o topo da hierarquia e é uma autoridade para os domínios do nível topo (por exemplo, .com). Embora não contenha todos os nomes de domínios possíveis, um servidor raiz contém informações sobre como alcançar outros servidores. Por exemplo, embora não conheça os nomes dos computadores na IBM Corporation, um servidor raiz sabe como alcançar um servidor que trata de requisições para ibm.com.

Embora a hierarquia de servidores DNS siga a hierarquia de nomes, a estrutura não é

idêntica. Uma corporação pode escolher colocar todos os seus nomes de domínio em um único servidor ou pode escolher executar vários servidores. Por exemplo, a figura abaixo mostra dois modos que a corporação Foobar poderia escolher para alocar sua hierarquia de nomes a dois servidores. Em (a), o servidor para foobar.com inclui também a divisão sabão, enquanto que, em (b), o servidor foobar.com inclui tudo exceto a subdivisão nozes.

Page 66: 01 - Redes

Redes de Computadores Aluízio Rocha

66

Como mostrado na figura, um servidor não está restrito a um único nível na hierarquia de nomes de domínio, nem é necessário conter múltiplos níveis.

9.7 Resolvendo um Nome

A tradução de um nome de domínio em um endereço IP equivalente é chamada de

resolução de nome, e diz-se que o nome é resolvido em um endereço. O software para executar a tradução é conhecido como software resolvedor de nomes (name resolver, ou simplesmente resolver).

Como funciona o software resolvedor? Cada resolvedor é configurado com o endereço

de um servidor de domínio de nomes local. Para se tornar um cliente do servidor DNS, o resolvedor coloca o nome especificado em uma mensagem de requisição DNS e envia a mensagem para o servidor local. O resolvedor, então, espera que o servidor envie uma mensagem de resposta DNS que contém a resposta. Os resolvedores usam UDP para se comunicar com o servidor pois exige menos sobrecarga para uma única requisição.

Quando uma requisição recebida especifica um nome para o qual um servidor é uma

autoridade, o servidor responde diretamente à requisição. Isto é, o servidor pesquisa o nome em sua base de dados local e envia uma resposta para o resolvedor. Porém, quando uma requisição chega para um nome fora do conjunto para o qual o servidor é uma autoridade, há uma interação cliente-servidor adicional. O servidor se torna temporariamente um cliente de outro servidor de nomes. Quando o segundo servidor retorna uma resposta, o servidor original envia uma cópia da resposta de volta ao resolvedor a partir do qual a requisição chegou.

Como um servidor DNS sabe que outro servidor DNS é a autoridade para um

determinado nome? Ele não sabe. Porém, cada servidor sabe o endereço de um servidor raiz. Conhecer a localização de um servidor raiz é suficiente porque o nome pode ser resolvido a partir do servidor raiz. Por exemplo, suponha que os servidores da Corporação Foobar são organizados tal como a figura (b) acima, e um resolvedor em um site remoto (por exemplo, em uma universidade) envia uma requisição para seu servidor local, L, para o nome: venuz.nozes.doces.foobar.com.

Page 67: 01 - Redes

Aluízio Rocha Redes de Computadores

67

O servidor L não é uma autoridade para o nome, então ele prossegue para agir como um cliente de outros servidores. No primeiro passo, L envia uma requisição para o servidor raiz. O servidor raiz não é autoridade para o nome, mas a resposta do servidor raiz dá a localização de um servidor para foobar.com.

Ao receber a resposta do servidor raiz, o servidor L contata o servidor para

foobar.com. Embora, não seja a autoridade para nomes na subdivisão nozes, o servidor principal em Foobar sabe a localização do servidor para nozes. Deste modo, ele retorna uma resposta para informar a L. Finalmente, L contata o servidor que é uma autoridade para nomes da forma:

computador.nozes.doces.foobar.com

Aquele servidor retorna uma resposta autorizada para L, que é o endereço IP para o

nome requisitado ou uma indicação de que esse nome não existe. Caminhar através da hierarquia de servidores para encontrar o servidor que seja uma

autoridade para um nome é chamado de resolução iterativa de query (iterative query resolution), e é somente usada quando um servidor precisa resolver um nome. Os resolvedores que os aplicativos chamam sempre solicitam resolução recursiva de query (recursive query resolution). Isto é, eles solicitam a resolução completa – a resposta para uma resolução recursiva de query é ou o endereço IP sendo buscado ou uma declaração autorizada que esse nome não existe.

Um exemplo de diagrama para o esquema de resolução discutido anteriormente pode

ser visto na figura abaixo.