• Nenhum resultado encontrado

REDESCOMPUTADORES1

N/A
N/A
Protected

Academic year: 2021

Share "REDESCOMPUTADORES1"

Copied!
71
0
0

Texto

(1)

REDES DE

COMPUTADORES 1

(2)

Sumário

1. Introdução...5

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

1.2 Usos das Redes de Computadores... 6

1.2.1 Aplicações Pessoais... 7

1.3 Tipos de Rede... 7

1.3.1 Redes Locais... 8

1.3.2 Redes Metropolitanas...8

1.3.3 Redes Geograficamente Distribuídas...8

1.3.4 Redes Sem Fio...9

1.3.5 Inter-Redes... 9 1.4 Aplicações Básicas... 9 1.4.1 Servidor de Arquivos... 9 1.4.2 Servidor de Impressão...10 1.4.3 Compartilhamento de Software... 10 1.4.4 Correio Eletrônico...10

1.4.5 Servidor de Banco de Dados... 11

1.5 Exercícios... 11

2. Topologias... 12

2.1 Linhas de Comunicação...12

2.2 Redes Geograficamente Distribuídas... 12

2.2.1 Topologia Totalmente Ligada...12

2.2.2 Topologia em Anel...13

2.2.3 Topologia Parcialmente Ligada... 13

2.3 Redes Locais e Metropolitanas...14

2.3.1 Topologia em Estrela... 14 2.3.2 Topologia em Anel...14 2.3.3 Topologia em Barra... 15 2.4 Exercícios... 16 3. Protocolos de Comunicação... 18 3.1 Software de Rede...18 3.1.1 Hierarquias de Protocolo...18 3.1.2 Interfaces e Serviços... 19

3.1.3 Serviços Orientados à Conexão e Serviços sem Conexão... 20

3.1.4 Primitivas de Serviço... 20

3.2 Modelos de referência... 21

3.2.1 O Modelo de Referência OSI...21

3.2.1.1 A Camada Física...22

3.2.1.2 A Camada de Enlace de Dados... 22

3.2.1.3 A Camada de Rede...22

3.2.1.4 A Camada de Transporte...23

3.2.1.5 A Camada de Sessão... 23

3.2.1.6 A Camada de Apresentação... 23

3.2.1.7 A Camada de Aplicação...24

3.2.1.8 Transmissão de Dados no Modelo OSI...24

3.2.2 O Modelo de Referência TCP/IP... 25

3.2.2.1 A Camada Inter-redes...25

3.2.2.2 A Camada de Transporte...25

(3)

3.2.2.4 A Camada Host/Rede... 26

3.2.3 Comparação entre os Modelos de Referência OSI e TCP/IP... 26

3.3 Exercícios... 27

4. Camada de Rede...28

4.1 Comutação de pacotes store-and-forward... 28

4.2 Serviços Oferecidos à Camada de Transporte...28

4.3 Organização Interna da Camada de Rede...29

4.4 Endereçamento no Nível de Rede... 29

4.5 Exercícios... 30

5. Camada de Transporte...31

5.1 O Serviço de Transporte... 31

5.1.1 Serviços Oferecidos às Camadas Superiores... 31

5.1.2 Qualidade de Serviço... 31

5.1.3 Primitivas de Serviço de Transporte... 32

5.2 Protocolos de Transporte... 33

5.2.1 Endereçamento...33

5.2.2 Estabelecimento de uma Conexão... 34

5.2.3 Encerramento de uma Conexão... 34

5.3 Exercícios... 34

6. Protocolos para Internet...35

6.1 O Protocolo IP... 35

6.1.1 Endereços IP... 37

6.1.2 Sub-Redes... 37

6.1.3 NAT...39

6.1.4 Protocolos de Controle da Internet... 39

6.1.4.1 ICMP (Internet Control Message Protocol)... 40

6.1.4.2 ARP (Address Resolution Protocol)...40

6.1.4.3 RARP (Reverse Address Resolution Protocol)... 41

6.1.4.4 BOOTP (BOOTstrap Protocol)... 41

6.1.4.5 DHCP (Dynamic Host Configuration Protocol)...42

6.1.5 Multicast IP... 43

6.2 Protocolos de Transporte da Internet...44

6.2.1 TCP (Transmission Control Protocol) ... 45

6.2.1.1 O Modelo de Serviço TCP... 45

6.2.1.2 O protocolo TCP... 46

6.2.1.3 O Cabeçalho de Segmento TCP... 46

6.2.1.4 Gerenciamento de Conexão TCP... 47

6.2.1.5 Política de Transmissão TCP... 47

6.2.2 UDP (User Datagram Protocol)... 48

6.2.3 Exemplos de Portas Conhecidas... 49

6.3 Aplicações...49

6.3.1 DNS (Domain Name System)...49

6.3.1.1 Espaço de Nomes do DNS... 50

6.3.1.2 Servidores de Nomes...50

(4)

6.3.5.2 Formatos de Mensagem...53

6.3.5.3 Transferência de Mensagens... 55

6.3.5.4 Entrega Final... 56

6.3.5.5 Privacidade de Correio Eletrônico... 57

6.3.6 WWW (World Wide Web)... 57

6.3.6.1 Servidores Web... 57

6.3.6.2 HTTP (HyperText Transfer Protocol)... 58

6.4 Exercícios... 58 7. Segurança em Redes...61 7.1 Risco... 61 7.2 Ameaças e Ataques...62 7.2.1 Danos Acidentais... 62 7.2.2 Danos Intencionais...62

7.2.3 Acesso Não Autorizado ao Sistema... 62

7.2.4 Vírus...63

7.2.5 Programas Maliciosos... 63

7.3 Política de Segurança...63

7.4 Mecanismos de Segurança...64

7.4.1 Descoberta e Remoção de Vírus... 64

7.4.2 Controle de Acesso... 64

7.4.3 Controle de Acesso Remoto...64

7.4.3.1 Callback...64 7.4.3.2 Criptografia de Senhas... 64 7.4.3.3 Senhas Dinâmicas... 64 7.4.4 Criptografia... 64 7.4.5 Assinatura Digital... 66 7.4.6 Compromisso de Terceiro...66

7.4.7 Hardware e Software de Confiança... 66

7.4.8 Detecção e Informe de Eventos... 66

7.4.9 Registro de Eventos... 66

7.5 Barreiras de Proteção - Firewalls...67

7.5.1 Filtro de Pacote... 67

7.5.2 Gateway de Aplicação...68

7.5.3 Gateway de Circuito...68

7.6 Rede Privada Virtual - VPN... 69

7.7 Exercícios... 69

(5)

1. Introdução

Inicialmente os sistemas de computação eram sistemas únicos, centralizados e de grande porte.

A década de 50 ficou marcada pelo uso de máquinas complexas de grande porte operadas por pessoas altamente especializadas e o enfileiramento de usuários para submeter seus jobs (cartão ou fita magnética).

O processamento era todo realizado em batch, sem interação entre usuário e máquina, o que resultava em um longo período para obter alguma resposta do sobre o processamento.

Na década de 60 começaram a aparecer os primeiros terminais interativos e os sistemas de tempo compartilhado (time-sharing) – sistemas multitarefa.

Na década de 70 o sistema centralizado começou a ceder espaço à distribuição do processamento. Minicomputadores e microcomputadores com bom desempenho e requisitos menos rígidos de temperatura e umidade permitiram a instalação de uma grande base computacional.

Mas equipamentos periféricos ainda eram caros e justificaram sua utilização compartilhada. A necessidade de troca de informações também foi razão importante para interconexão.

Atualmente a busca por performance impulsiona novas arquiteturas.

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

A arquitetura definida por Von Neumann onde as instruções são executadas seqüencialmente, uma após outra, era perfeita para as maneiras como os programas eram desenvolvidos.

Os avanços da tecnologia de integração de circuitos provocaram uma grande revolução nos sistemas de computadores, principalmente no que se refere a custo. Várias arquiteturas foram propostas (dentro das restrições de tecnologias da época) tentando contornar as limitações de Von Neumann. Dentre tais propostas destacam-se:

• Sistemas com UCP com múltiplas unidades funcionais. • Máquinas pipeline.

• Array Processors (processadores de matriz).

Em uma outra alternativa contornando as restrições centralizadas de controle da arquitetura de Von Neumann aparece a idéia de seqüências múltiplas e independentes de instruções em um sistema composto por vários elementos de processamento compartilhando um espaço comum de memória. Tais sistemas são conhecidos como sistemas multiprocessados fortemente acoplados e são compostos por 2 ou mais processadores com capacidade aproximadamente iguais, todos dividindo acesso comum à memória e compartilhando canais de E/S e periféricos, sendo o sistema total controlado por um único sistema operacional.

Surgiram também os sistemas fracamente acoplados (sistemas de processamento distribuído), que são uma coleção de elementos de processamento interconectados, tanto lógica quanto fisicamente, para execução cooperativa de programas de aplicação, com controle geral dos recursos descentralizado. Nos sistemas fracamente acoplados, o sistema é fragmentado em partes

(6)

Dentre as vantagens dos sistemas multiprocessados, pode-se destacar:

• Custo/desempenho: evolução da tecnologia de síntese de CI tem levado a alto potencial de microprocessadores na relação custo/desempenho.

• Responsividade (tempo de resposta): apresentam grande potencial de processamento e responsividade.

• Modularidade: permite alterar a configuração de acordo com a tarefa a ser desempenhada (custo/desempenho) e facilidade de manutenção.

• Confiabilidade: garantida pela redundância e mecanismos de reconfiguração. • Concorrência: para aplicações que exigem alto desempenho.

Dentre as desvantagens dos sistemas multiprocessados, pode-se destacar: • Desenvolvimento de software é mais complexo e mais caro.

• Decomposição de tarefas é complexa.

• Dependente de tecnologia de comunicação devida a alta demanda de tráfego de comunicação.

• Falha em um processador pode interferir em outro.

Uma máquina de arquitetura distribuída é composta por um conjunto de módulos autônomos de processamento interconectados para formar um único sistema. Ela necessita de um sistema operacional único para gerenciar o processamento de seus módulos e apresentar-se ao usuário como um sistema único.

As redes de computadores são formadas por um conjunto de módulos autônomos de processamento interconectados, preservando a independência dos vários módulos de processamento.

1.2 Usos das Redes de Computadores

Muitas empresas possuem uma grande quantidade de computadores. Em um determinado momento a empresa resolve conectá-los para poder extrair e correlacionar informações, ou seja,

compartilhar recursos, tornando todos os programas, equipamentos e especialmente dados ao

alcance de todas as pessoas na rede, independente da localização física do recurso e do usuário. Porém, talvez mais importante do que compartilhar recursos físicos seja compartilhar

informações.

No caso de empresas pequenas é comum que todos os computadores se encontrem em um único escritório ou em um único edifício; porém, no caso de empresas maiores, os computadores e funcionários podem estar dispersos por escritórios e fábricas em muitos países. Independente disso, um funcionário em uma cidade às vezes pode ter a necessidade de acessar dados em outra cidade. Resumindo, o fato de um usuário estar a quilômetros de distância de seus dados não deve impedi-lo de usar tais dados.

Podemos imaginar que o sistema de informações de uma empresa consista em um ou mais bancos de dados e um número de funcionários que precisam acessá-los remotamente. Nesse modelo, os dados são armazenados em computadores chamados servidores e os funcionários têm em suas escrivaninhas máquinas chamadas clientes, com as quais eles acessam dados remotos. As máquinas clientes e servidores são conectadas entre si por uma rede. Tal modelo é conhecido como

(7)

No modelo cliente/servidor há dois processos envolvidos, um na máquina cliente e um na máquina servidora. O processo cliente envia uma mensagem pela rede ao processo servidor. Então, o processo cliente espera por uma mensagem de resposta. Quando o processo servidor recebe a solicitação, ele executa o trabalho solicitado e envia de volta uma resposta.

Outro objetivo de uma rede de computadores está relacionado às pessoas. Uma rede de computadores pode oferecer um meio de comunicação eficiente entre funcionários. Entre os meios de comunicação mais comuns podemos citar o correio eletrônico (e-mail), documentação on-line e videoconferência.

Outra atividade que surgiu com as redes de computadores foi a capacidade de realizar

negócios eletronicamente com outras empresas, em especial fornecedores e clientes. A capacidade

de emitir pedidos conforme a demanda reduz a necessidade de grandes estoques e aumenta a eficiência.

Um uso mais recente das redes de computadores é o comércio eletrônico (e-commerce), ou seja, a capacidade de realizar negócios com consumidores pela Internet.

1.2.1 Aplicações Pessoais

No início as pessoas compravam computadores pessoais para processar textos e jogar. Nos últimos anos surgiu uma nova motivação, o acesso à Internet. Alguns dos usos mais populares da Internet para usuários domésticos são:

• Acesso a informações remotas, em especial pela web (artes, negócios, governo, saúde, jornais, revistas, diversão, etc).

• Comunicação entre pessoas, utilizando e-mail, grupos de notícias (newsgroups) e programas para troca de mensagens instantâneas.

• Entretenimento interativo. Os melhores exemplos são vídeo sob demanda e jogos. • Comércio eletrônico, tanto o promovido por lojas quanto sites de leilão.

A tabela abaixo mostra algumas abreviações corriqueiras:

Abreviação Significado Exemplo

B2C Business-to-consumer Compras on-line

B2B Business-to-business Fabricante de solicitando peças a um fornecedor G2C Government-to-consumer Transmissão da declaração de imposto de renda C2C Consumer-to-consumer Leilões on-line de produtos usados

P2P Peer-to-peer Compartilhamento de arquivos

1.3 Tipos de Rede

Uma Rede de Computadores é formada por um conjunto de módulos processadores capazes de trocar informações e compartilhar recursos, interligados por um sistema de comunicação.

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

(8)

Generalizando, há dois tipos de tecnologia de transmissão: • Redes de difusão

• Redes ponto a ponto

As redes de difusão possuem apenas um canal de comunicação, compartilhado por todas as máquinas. As mensagens enviadas por uma das máquinas são recebidas por todas as demais, sendo o destinatário especificado através de um campo de endereço dentro do pacote.

Os sistemas de difusão também oferecem a possibilidade de endereçamento de um pacote a todos os destinos por meio de um endereço especial. Quando um pacote com esse endereço é transmitido, ele é recebido e processado por todas as máquinas da rede. Esse modo de operação é chamado de difusão (broadcast). Alguns sistemas de difusão também suportam transmissão para um subconjunto das máquinas, conhecido como multidifusão (multicasting).

Por outro lado, as redes ponto a ponto consistem em conexões entre pares individuais de máquinas. Para ir da origem ao destino, talvez um pacote nesse tipo de rede tenha de visitar uma ou mais máquinas intermediárias. Os algoritmos de roteamento desempenham um importante papel nas redes ponto a ponto.

Embora haja algumas exceções, geralmente as redes menores tendem a usar os sistemas de difusão, e as maiores os sistemas ponto a ponto.

As redes também podem ser classificadas por escala, sendo classificadas em redes locais, redes metropolitanas e redes geograficamente distribuídas. A conexão de duas ou mais redes é chamada de inter-rede. A Internet é um exemplo bastante conhecido de uma inter-rede.

1.3.1 Redes Locais

Redes locais (local area networks – LANs), são redes privadas contidas em um único edifício ou campus com até alguns quilômetros de extensão. São amplamente usadas para conectar computadores pessoais e estações de trabalho em escritórios e instalações industriais.

Possuem um tamanho restrito, o que significa que o pior tempo de transmissão é limitado e conhecido com antecedência.

As LANs tradicionais possuem taxas de transmissão que variam de 10 Mbps a 1000 Mbps, têm baixo retardo e possuem baixas taxas de erros (10-8 a 10-11). As LANs mais modernas operam

em até 10 Gbps.

1.3.2 Redes Metropolitanas

Uma rede metropolitana (metropolitan area network – MAN), é uma versão ampliada de uma LAN, pois basicamente os dois tipos de rede utilizam tecnologias semelhantes. Uma MAN pode abranger uma cidade inteira e pode ser privada ou pública. É capaz de transportar dados e voz, podendo inclusive ser associado à rede de televisão a cabo local.

1.3.3 Redes Geograficamente Distribuídas

Uma rede geograficamente distribuída (wide area network – WAN), abrange uma ampla área geográfica, com freqüência um país ou continente.

Na maioria das redes geograficamente distribuídas, a sub-rede consiste em dois componentes distintos: linhas de transmissão e elementos de comutação. As linhas de transmissão transportam os bits entre as máquinas. Os elementos de comutação são equipamentos especializados que conectam três ou mais linhas de transmissão. Quando os dados chegam a uma linha de entrada, o elemento de comutação deve escolher uma linha de saída para encaminhá-los.

(9)

embora em alguns casos um host possa estar conectado diretamente a um roteador. O conjunto de linhas de comunicação e roteadores (sem os hosts) forma a sub-rede.

Na maioria das WANs, a rede contém numerosas linhas de transmissão, todas conectadas a um par de roteadores. Se dois roteadores que não compartilham uma linha de transmissão desejarem se comunicar, eles só poderão fazê-lo indiretamente, através de outros roteadores.

1.3.4 Redes Sem Fio

Redes sem fio (wireless networks) podem ser divididas em três categorias principais: • Interconexão de sistemas.

• LANs sem fio. • WANs sem fio.

A interconexão de sistemas significa interconectar os componentes de um computador usando um rádio de alcance limitado. Algumas empresas se uniram para projetar uma rede sem fio de alcance limitado, chamada Bluetooth, a fim de conectar componentes sem a utilização de fios. A rede Bluetooth também permite a conexão de câmeras digitais, fones de ouvido, scanners e outros dispositivos a um computador simplesmente trazendo-os para dentro do alcance da rede.

Normalmente as redes de interconexão de sistemas utilizam o paradigma de mestre-escravo, onde o mestre informa aos escravos que endereços usar, quando eles podem transmitir, por quanto tempo podem transmitir, que freqüências podem usar e assim por diante.

As LANs sem fio são sistemas em que todo computador tem um modem de rádio e uma antena por meio dos quais podem se comunicar com outros sistemas. Freqüentemente existe uma antena central que permite a comunicação das máquinas, porém se os sistemas estiverem próximos o bastante, poderão se comunicar diretamente um com o outro em uma configuração não-hierárquica.

WANs sem fio são usadas em sistemas geograficamente distribuídos. A rede de rádio

utilizada para telefonia celular é um exemplo de sistema sem fio de baixa largura de banda. Além dessas redes de baixa velocidade, existem também redes sem fio de alta largura de banda.

1.3.5 Inter-Redes

Existem muitos padrões de rede em utilização e é comum que pessoas conectadas a redes distintas precisam se comunicar entre si. Para isso é preciso que se estabeleçam conexões entre redes, as vezes incompatíveis, por meio de máquinas chamadas gateways. Um conjunto de redes interconectadas é chamado inter-rede.

Uma forma comum de inter-rede é um conjunto de LANs conectadas por uma WAN.

1.4 Aplicações Básicas

Uma das aplicações básicas de uma rede local de computadores é simplesmente permitir o compartilhamento de um periférico mais caro entre diversos microcomputadores.

Nesse caso a LAN conecta equipamentos usuários, ou seja, os microcomputadores que funcionam como estações de trabalho e equipamentos servidores. Os servidores distinguem-se dos demais equipamentos da rede por disporem de hardware e/ou software específicos.

(10)

• gerenciar um sistema de arquivos que possa ser utilizado pelo usuário em substituição ou adição ao sistema de arquivos existente em sua própria máquina;

• garantir a integridade dos dados, detectando e implementando uma política de proteção em casos de falha do sistema ou de acessos concorrentes;

• implementar uma política de proteção contra acesso não autorizado que impeça a ação de usuários maliciosos.

Um outro objetivo do servidor de arquivos é que ele atenda simultaneamente requisitos de gerência de arquivos de diferentes sistemas operacionais.

O acesso do usuário ao servidor de arquivos pode ser implementado em três modos distintos: • O sistema operacional da máquina usuária é alterado de modo que o servidor de arquivos

seja visto como uma extensão do seu próprio sistema de arquivos, sendo totalmente transparente para o usuário final.

• Através de utilitários que acessam arquivos residentes no servidor, tendo o usuário conhecimento da existência do servidor mas não dos detalhes da sua utilização. • O usuário final usa o servidor através de primitivas para solicitar serviços como: abrir

arquivo, fechar arquivo, ler registro, etc. Nesse nível o usuário precisa conhecer as primitivas, embora não precise conhecer os detalhes das regras de comunicação entre a máquina usuária e o servidor.

1.4.2 Servidor de Impressão

Tem como finalidade oferecer aos computadores conectados à rede um serviço de impressão. Desse modo, uma impressora pode ser compartilhada entre vários usuários.

A forma mais simples de implementação do servidor de impressão é baseada na pré-alocação da impressora. Um computador que deseja utilizar a impressora envia uma mensagem ao servidor solicitando que a impressora lhe seja alocada. Se a impressora estiver livre o servidor de impressão responde, informando que ela pode ser utilizada e bloqueará seu uso a outros computadores.

Uma maneira mais eficiente de implementar o servidor de impressão é utilizar a técnica de

spooling. Nesse caso o computador simplesmente envia o texto que deseja imprimir ao servidor de

impressão que o armazenará até que a impressora esteja disponível e o texto possa ser impresso. Um terceiro modo de implementar o servidor de impressão é manter os arquivos de spooling no servidor de arquivos e apenas indicar esse fato ao servidor de impressão, que se encarregará de ler o arquivo e providenciar sua impressão.

1.4.3 Compartilhamento de Software

Atualmente um dos fatores que mais pesa na manutenção de um sistema computacional é a atualização periódica das licenças de software.

Com uma rede de computadores pode-se adquirir um número menor de licenças e instalá-las em um servidor. Quando for necessário utilizar o software basta executá-lo a partir do servidor. Desta forma será necessário adquirir somente o número estimado de licenças para uso simultâneo, e não uma licença para cada computador.

1.4.4 Correio Eletrônico

A idéia do correio eletrônico é permitir que os usuários se comuniquem uns com os outros, utilizando a rede como meio de transmissão das suas mensagens. Sua implementação consiste basicamente em associar a cada usuário o endereço de uma caixa postal onde são depositadas as mensagens que lhe forem enviadas.

(11)

1.4.5 Servidor de Banco de Dados

Um servidor de banco de dados permite o compartilhamento das informações de uma organização de forma centralizada e eficiente, evitando a duplicidade e até mesmo a inconsistência que poderia acontecer caso as informações fossem armazenadas de forma distribuída.

Sua principal diferença para um servidor de arquivos é que ele é capaz de processar consultas complexas sobre dados trafegando pela rede somente as informações que interessam, diminuindo bastante o tráfego total na rede.

1.5 Exercícios

1) O que diferencia um sistema multiprocessado fortemente acoplado de um sistema de processamento distribuído?

2) Cite uma vantagem e uma desvantagem de um sistema multiprocessado.

3) Qual a diferença entre uma rede de computadores e uma máquina com arquitetura distribuída? 4) Explique duas vantagens que as redes de computadores podem trazer para as empresas.

5) Explique duas vantagens que as redes de computadores podem trazer para as pessoas. 6) Explique como funciona o modelo cliente/servidor.

7) O que diferencia redes de difusão de redes ponto a ponto? 8) Defina:

• Rede local

• Rede metropolitana

• Rede geograficamente distribuída

9) O que diferencia uma rede local sem fio de uma rede sem fio para interconexão de sistemas? 10) Explique 2 aplicações para redes locais.

(12)

2. Topologias

O sistema de comunicação constitui-se por um arranjo topológico interligando os vários módulos processadores através de enlaces físicos (meio de transmissão) e de um conjunto de regras (protocolos) a fim de organizar a comunicação.

O termo topologia refere-se ao lay-out físico e ao meio de conexão dos dispositivos da rede. Qual arranjo topológico deve ser usado para uma rede em particular? O tipo da rede (LAN, MAN ou WAN) irá influenciar na escolha.

2.1 Linhas de Comunicação

As ligações físicas em um sistema de comunicação 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. 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 os hosts dá origem à seguinte classificação sobre a comunicação no enlace:

• Simplex: o enlace só pode ser utilizado em um dos sentidos de transmissão.

• Half-duplex: o enlace pode ser utilizado nos dois sentidos de transmissão, mas somente em um sentido por vez.

• Full-duplex: o enlace pode ser utilizado nos dois sentidos de transmissão simultaneamente.

Enlaces como os classificados anteriormente serão utilizados pelas diferentes topologias, que irão variar de acordo com o tipo de rede utilizada.

2.2 Redes Geograficamente Distribuídas

As redes geograficamente distribuídas caracterizam-se por apresentar enlaces com ligações ponto a ponto.

2.2.1 Topologia Totalmente Ligada

Uma primeira tentativa para a conexão de computadores em rede seria em uma topologia totalmente ligada. Nessa topologia, todas as estações são interligadas duas a duas através de um caminho físico dedicado com comunicação full-duplex.

Embora essa topologia apresente maior grau de paralelismo de comunicação, ela é quase sempre impraticável, principalmente em redes com grande número de estações e fisicamente dispersas. Uma rede com N estações necessita de N(N-1)/2 enlaces, elevando o custo do sistema.

(13)

2.2.2 Topologia em Anel

Na topologia em anel procura-se diminuir ao máximo o número de ligações no sistema. Em geral utiliza-se ligações ponto a ponto que operam num único sentido de transmissão (ligações simplex) fazendo com que o anel apresente uma orientação. Uma mensagem deverá circular pelo anel até que chegue ao seu destino, sendo passada de estação em estação.

Esta topologia representa ganho na economia dos enlaces, mas aumenta o número de estações pela qual a mensagem tem que trafegar, o que pode ser drástico para uma WAN (alto retardo). Outra restrição é que não tem caminhos alternativos, comprometendo a rede no caso de falha de uma estação ou enlace.

Nesta topologia, a estação que coloca a mensagem no anel é quem tem a função de retirá-la.

2.2.3 Topologia Parcialmente Ligada

Considerando as limitações de velocidade e confiabilidade é necessária a introdução de caminhos redundantes para um aumento tanto de confiabilidade quanto de desempenho através do paralelismo de comunicações, sem, no entanto, recair na topologia totalmente ligada.

Obtém-se assim uma topologia intermediária denominada topologia parcialmente ligada, também conhecida como topologia em grafo.

Nesta topologia nem todos os enlaces entre pares de estações existem diretamente, mas existem caminhos alternativos entre duas estações quaisquer. No caso em que estações sem conexão física direta desejem se comunicar, elas deverão encaminhar suas mensagens para alguma outra estação que possa fazer a entrega da mensagem para a estação destino. Por causa da necessidade de procurar estes caminhos alternativos é necessária a utilização de roteamento nesta topologia.

(14)

circuitos, um canal entre a origem e o destino é estabelecido para uso exclusivo dessas estações até que a conexão seja desfeita, de maneira idêntica a uma chamada telefônica. O chaveamento de mensagem ou de pacote vai otimizar o uso dos meios de comunicação, evitando a monopolização de todo o caminho durante uma conversação.

Em sistemas por chaveamento de mensagem, a mensagem é enviada por completo ao longo do caminho. Em cada nó do caminho a mensagem é primeiro armazenada e depois passada à frente. Nos sistemas por chaveamento de pacote a mensagem é quebrada em pacotes antes da transmissão ser efetuada. A transmissão de cada pacote pode ser feita por um único caminho ou por caminhos diferentes, sendo a mensagem reagrupada quando chega ao destino. Tanto na comutação de pacotes quanto na comutação de mensagens não existe a alocação de um canal dedicado da origem ao destino.

2.3 Redes Locais e Metropolitanas

Em redes locais e metropolitanas, meios de transmissão de alta velocidade e baixa taxa de erros, 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

Na topologia em estrela cada nó é interligado a um nó central (mestre), através do qual todas as mensagens devem passar. Tal nó age como centro de controle da rede, interligando os demais nós (escravos). Podem haver comunicações simultâneas, desde que as estações envolvidas sejam diferentes.

O nó central tem a função de gerenciamento das comunicações e é denominado de

comutador ou switch.

Redes em estrela podem atuar por difusão (broadcasting) ou não. Em redes por difusão todas as informações são enviadas ao nó central, que é o responsável por distribuí-las a todos os nós da rede. Em redes que não operam por difusão, um nó pode apenas se comunicar com outro nó de cada vez, sempre sob controle do nó central.

Confiabilidade é um problema nas redes em estrela. Falhas no nó central podem ocasionar a parada total do sistema. Redundâncias podem ser acrescentadas para diminuir o risco da ocorrência de problemas com o nó central.

Outro problema da rede em estrela é relativo à modularidade. A configuração pode ser expandida até o limite imposto pelo nó central.

O desempenho da rede é medido pela capacidade da estação central de chavear as mensagens.

2.3.2 Topologia em Anel

Por motivos de confiabilidade o anel não interliga os hosts diretamente, mas consiste em uma série de repetidores ligados por um meio físico sendo cada host ligado a esses repetidores.

(15)

Porém as configurações mais usuais são unidirecionais de forma a simplificar o projeto dos repetidores.

Os repetidores são em geral projetados de forma a transmitir e receber dados simultaneamente, diminuindo assim o retardo de transmissão.

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. Nas redes onde a mensagem é retirada pelo nó de origem é possível a utilização de mensagens de difusão.

A topologia em anel requer que cada nó seja capaz de remover seletivamente mensagens da rede ou passá-las à frente para o próximo nó. Isto requer um repetidor ativo em cada nó. Uma quebra em qualquer dos enlaces entre os repetidores vai parar toda a rede até que o problema seja isolado e um novo cabo instalado. Falhas no repetidor ativo também podem causar a parada total do sistema.

Uma solução parcial para o problema de falha no repetidor consta em prover cada um deles de um relé que pode removê-lo mecanicamente da rede em caso de falha. Essa remoção pode ser impossível se os repetidores imediatamente posterior e anterior ao repetidor com falha estiverem a uma distância maior do que o limite exigido pelo meio de transmissão para a interconexão de dois nós devido ao problema da atenuação.

Outras melhorias na topologia em anel foram propostas, como a introdução de caminhos alternativos, duplos anéis, etc. Na prática a topologia pode ser feita suficientemente confiável de forma que a possibilidade de falhas possa ser praticamente ignorada.

Estação fora

do anel TCU

Anel de backup

Anel principal

(16)

Nas redes em barra comum cada host conectado à barra pode ouvir todas as informações transmitidas. Esta característica facilita as aplicações com mensagens do tipo difusão.

Existe uma variedade de mecanismos para o controle de acesso à barra, que pode ser centralizado ou descentralizado. Em um controle centralizado, o direito de acesso é determinado por uma estação especial da rede. Em um ambiente de controle descentralizado, a responsabilidade de acesso é distribuída entre todos os hosts.

Ao contrário da topologia em anel, as topologias em barra podem empregar interfaces passivas, nas quais as falhas não causam a parada total do sistema.

A ligação ao meio de transmissão é um ponto crítico no projeto de uma rede local em barra comum. A ligação deve ser feita de forma a alterar o mínimo possível as características elétricas do meio. O meio, por sua vez, deve terminar em seus dois extremos por uma carga igual a sua impedância característica, de forma a evitar reflexões que interfiram no sinal transmitido.

A ligação das estações ao meio de comunicação é realizada através de um transceptor (transmissor/receptor), que tem como funções básicas transmitir e receber sinais, bem como reconhecer a presença destes sinais no meio.

O poder de crescimento, tanto no que diz respeito à distância máxima entre dois hosts da rede quanto ao número de nós que a rede pode suportar vai depender do meio de transmissão utilizado, da taxa de transmissão e da quantidade das ligações ao meio. Conforme se queira chegar a distâncias maiores, repetidores serão necessários para assegurar a qualidade do sinal.

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.

Deve-se ressaltar que com a utilização de hubs haverá uma diferença no que diz respeito às topologias lógica e física. Com hubs a topologia lógica da rede continua a ser a topologia em barra, porém a topologia física passa a ser uma topologia em estrela.

Hubs podem ser interconectados como forma de expansão do tamanho da rede.

2.4 Exercícios

1) Desenhe uma topologia com ligações ponto a ponto e uma topologia com ligações multiponto. 2) Quanto à forma de utilização do meio físico, defina:

• Comunicação simplex • Comunicação half-duplex • Comunicação full-duplex

3) Qual o problema que impede a utilização da topologia totalmente ligada em grandes redes? 4) Que problema pode ocorrer com a topologia em anel?

(17)

6) Qual a melhor topologia a ser utilizada para redes geograficamente distribuídas? 7) O que diferencia uma topologia em estrela de uma topologia em barra?

8) Explique o problema que pode ocorrer na topologia em estrela.

9) Quando se faz uso de concentradores em redes com topologia em barra passa-se a diferenciar topologia física de topologia lógica. Explique.

(18)

3. Protocolos de Comunicação

3.1 Software de Rede

Nas primeiras redes de computadores, o hardware foi colocado como prioridade e o software, em segundo plano. Atualmente, o software da rede está altamente estruturado.

Neste tópico será estudada a técnica de estruturação dos softwares.

3.1.1 Hierarquias de Protocolo

Para reduzir a complexidade do projeto, a maioria das redes foi organizada como uma série de camadas ou níveis, que são colocados um em cima do outro. O objetivo de cada camada é oferecer determinados serviços para as camadas superiores, ocultando detalhes da implementação desses serviços.

A camada n de uma máquina se comunica com a camada n da outra máquina. As regras usadas nesse diálogo são chamadas de protocolo da camada n. Basicamente, um protocolo é um conjunto de regras sobre o modo como se dará a comunicação entre as partes envolvidas.

A figura acima mostra uma rede com camadas. As entidades que ocupam as mesmas camadas em diferentes máquinas são chamadas de pares (peers). São os pares que se comunicam usando o protocolo.

Os dados não são diretamente transferidos da camada n de uma máquina para a camada n da outra. Cada camada transfere os dados e as informações de controle para a camada imediatamente abaixo dela, até a última camada ser alcançada. Abaixo da camada 1 está o meio físico, através do qual se dá a comunicação propriamente dita.

Uma das considerações mais importantes é a definição clara das interfaces entre as camadas. É preciso que cada camada execute um conjunto de funções bem definido. Isto reduz o volume de informações a ser passado de uma camada para outra e simplifica a substituição de uma camada por uma implementação diferente.

Um conjunto de camadas de protocolos é chamado de arquitetura de rede. A especificação de uma arquitetura deve conter informações suficientes para permitir que um implementador desenvolva o software ou construa o hardware de cada camada de modo que ele transmita corretamente o protocolo adequado. Não há, no entanto, a necessidade de que as interfaces de todas as máquinas de uma rede sejam iguais, desde que cada uma delas possa usar todos os protocolos. Uma lista de protocolos usados por um determinado sistema é chamado de pilha de protocolos.

(19)

Usando como exemplo uma rede com 5 camadas, uma mensagem M produzida por uma aplicação executando na camada 5 é transmitida para a camada 4. A camada 4 coloca um cabeçalho na frente da mensagem para identificá-la e envia o resultado à camada 3. O cabeçalho inclui informações de controle, como números de seqüência para permitir que a camada 4 da máquina de destino repasse as mensagens na ordem correta, para o caso das camadas inferiores não conseguirem manter a seqüência.

Algumas camadas não impõem limite ao tamanho da mensagem transmitida, enquanto outras impõem. Assim, as camadas que limitam o tamanho da mensagem que elas podem enviar devem dividir as mensagens em unidades menores, chamadas pacotes, anexando um cabeçalho de sua camada a cada pacote.

A camada 3 divide então as mensagens e transmite os pacotes à camada 2. A camada 2 adiciona, além de um cabeçalho, um fecho (trailer), e envia a unidade resultante à camada 1, para que ela possa ser transmitida fisicamente. Na máquina receptora, a mensagem será movida para cima de camada em camada, com os cabeçalhos sendo excluídos durante o processo.

3.1.2 Interfaces e Serviços

Os elementos ativos em cada camada são chamados de entidades. Uma entidade pode ser uma entidade de software (como um processo) ou uma entidade de hardware. As entidades da mesma camada contidas em máquinas diferentes são chamadas de entidades pares (peer entity). As entidades da camada n implementam um serviço usado pela camada n+1. Nesse caso, a camada n é chamada provedora de serviços e a camada n+1 é chamada de usuária do serviço. A camada n pode usar os serviços da camada n-1 para oferecer seu serviço. Ela pode, ainda, oferecer diversas classes diferentes de serviços.

Os serviços estão disponíveis em SAPs (Service Access Points – Pontos de Acesso ao Serviço). Os SAPs da camada n são os locais onde a camada n+1 pode acessar os serviços oferecidos. Cada SAP tem um endereço exclusivo que o identifica.

Para que duas camadas possam trocar informações é necessário estabelecer um conjunto de regras sobre a interface. A entidade da camada n+1 passa uma IDU (Interface Data Unit – Unidade de Dados da Interface) para a entidade da camada n através do SAP. A IDU consiste em uma SDU (Service Data Unit – Unidade de Dados do Serviço) e algumas informações de controle. A SDU é a informação passada pela rede para a entidade par da camada n+1.

Para enviar a SDU, a camada n acrescenta um cabeçalho à SDU. Tal cabeçalho é conhecido como PCI (Protocol Control Information – Informação de Controle do Protocolo). O pacote formato pela união da PCI com a SDU formam PDU (Protocol Data Unit – Unidade de Dados do Protocolo).

(20)

3.1.3 Serviços Orientados à Conexão e Serviços sem Conexão

As camadas podem oferecer dois tipos de serviço diferentes para as camadas superiores: serviços orientados à conexão e serviços sem conexão.

No serviço orientado à conexão o usuário do serviço antes estabelece uma conexão, usa a conexão e, em seguida, libera a conexão. Uma conexão funciona como um duto entre duas aplicações, onde o emissor coloca os dados em uma extremidade do duto e o receptor recebe estes dados na outra extremidade.

No serviço sem conexão cada mensagem carrega o endereço destino. Cada mensagem pode percorrer um caminho diferente das demais, ocasionando a possibilidade de uma mensagem enviada em determinado momento chegar depois de uma mensagem enviada depois dela.

Alguns serviços são confiáveis no sentido de que os dados jamais serão perdidos. Geralmente um serviço confiável é implementado por meio da confirmação das mensagens que chegam ao receptor. O processo de confirmação introduz overhead e retardos, fazendo com que ele nem sempre seja desejável.

Uma situação típica em que um serviço orientado à conexão confiável é apropriado é a transferência de arquivos, enquanto uma situação em que é o retardo introduzido pode ser pior do que a confiabilidade é o tráfego de voz.

O serviço orientado à conexão confiável tem duas pequenas variações: fluxo de mensagem e fluxo de bytes. No fluxo de mensagens os limites da mensagem são preservados. Quando duas mensagens são enviadas, elas chegam como duas mensagens distintas. No fluxo de bytes a conexão não preserva os limites da mensagem.

Nem todas as aplicações necessitam de conexão. Tudo o que é necessário é enviar uma mensagem cuja probabilidade de chegada seja bastante alta, sem que haja uma garantia de entrega. O serviço sem conexão não confiável (sem confirmação) é conhecido como serviço de datagrama.

Em algumas situações é conveniente ter confiabilidade em um serviço sem conexão. O

serviço de datagrama com confirmação pode ser oferecido para essas aplicações.

3.1.4 Primitivas de Serviço

Um serviço é um conjunto de primitivas (operações) disponíveis para que uma entidade possa acessá-lo. Uma primitiva indica a execução de alguma ação ou a geração de um relatório sobre uma ação executada por uma entidade par.

(21)

Primitiva Significado

Request Uma entidade solicita uma ação a outra Indication Uma entidade é informada sobre um evento Response Uma entidade responde a um evento

Confirm Resposta a uma solicitação anterior da entidade

Para estabelecer uma conexão ente uma máquina A e uma máquina B, por exemplo, uma entidade na máquina A emite uma primitiva CONNECT.request, que faz com que um pacote seja enviado à máquina B, que por sua vez recebe uma primitiva CONNECT.indication anunciando o pedido de conexão. A máquina B responde ao pedido pela primitiva CONNECT.response, que chega à máquina A como a primitiva CONNECT.confirm.

No serviços com confirmação as quatro primitivas são utilizadas, enquanto nos serviços sem

confirmação apenas as duas primeiras primitivas são utilizadas.

3.2 Modelos de referência

Nesta seção serão analisadas duas importantes arquiteturas de rede: o modelo de referência OSI e o modelo TCP/IP.

3.2.1 O Modelo de Referência OSI

O RM-OSI (Reference Model for Open Systems Interconnection – Modelo de Referência para Interconexão de Sistemas Abertos) é mostrado na figura abaixo. Ele é um modelo de 7 camadas baseado em uma proposta desenvolvida pela ISO (International Organization for Standardization) como um primeiro passo na direção da padronização internacional dos protocolos usados nas diversas camadas. O modelo OSI trata da interconexão de sistemas abertos, ou seja, sistemas que estão abertos à comunicação com outros sistemas.

(22)

O modelo OSI em si não é uma arquitetura de rede, pois não especifica os serviços e os protocolos que devem ser usados em cada camada. Ele apenas informa o que cada camada deve fazer. No entanto, a ISO criou padrões para todas as camadas, embora eles não pertençam ao modelo de referência propriamente dito.

3.2.1.1 A Camada Física

A camada física trata da transmissão bruta de bits através de um canal de comunicação, sem se preocupar com o seu significado. O projeto da rede deve garantir que, quando um lado envia um bit, o outro lado o receba corretamente. As questões mais comuns são a quantidade de volts a ser usada para representar um bit 1 e um bit 0, a quantidade de tempo que um bit deve durar, o fato de a transmissão poder ser ou não realizada nas duas direções, a forma como a conexão inicial será estabelecida e de que maneira ela será encerrada, a quantidade de pinos que o conector da rede precisará e de que maneira eles serão utilizados, etc. As questões dizem respeito às interfaces mecânicas, elétricas e procedurais e ao meio de transmissão físico, que fica abaixo da camada física.

3.2.1.2 A Camada de Enlace de Dados

A principal tarefa da camada de enlace de dados é transformar um canal de transmissão de bits de dados bruto em uma linha que pareça livre dos erros de transmissão não detectados na camada de rede. Para tal, a camada de enlace de dados divide os dados de entrada em quadros de

dados (que em geral têm algumas centenas ou milhares de bytes), transmite-os seqüencialmente e

processa os quadros de reconhecimento transmitidos pelo receptor.

Cabe à camada de enlace de dados criar e reconhecer os limites do quadro. Para o reconhecimento dos limites podem ser utilizados quatro métodos.

• Contagem de caracteres: o cabeçalho informa o tamanho do quadro.

• Caracteres delimitadores e transparência de caracteres: caracteres especiais são utilizados para indicar o início e o fim do quadro. Para evitar confusão de aparecerem delimitadores nos dados são inseridos caracteres especiais.

• Seqüências especiais de bits: são utilizados flags para delimitar os quadros. Para evitar seqüência igual nos dados é criado o bit stuffing.

• Violação de código: utilizado em redes onde a codificação dos bits traz redundâncias como, por exemplo, Manchester, que determina o bit pela direção da transição no meio do período do relógio.

Ruídos na linha podem destruir completamente um quadro. Nesse caso, a camada de enlace de dados da máquina de origem deverá retransmitir o quadro. No entanto, várias transmissões do mesmo quadro criam a possibilidade de existirem quadros repetidos, especialmente no caso de um quadro de reconhecimento enviado pelo receptor ao transmissor ser perdido. Cabe à camada de enlace de dados resolver os problemas causados pelos quadros repetidos, perdidos e danificados. Ela pode, ainda, oferecer diferentes classes de serviço para a camada de rede.

Outra função da camada de enlace de dados é implementar algum mecanismo de controle de fluxo para impedir que um transmissor rápido seja dominado por um receptor lento.

Nas redes de difusão a camada de enlace de dados precisa ainda controlar o acesso ao canal compartilhado. Esse problema é resolvido por uma subcamada especial denominada subcamada de acesso ao meio.

3.2.1.3 A Camada de Rede

A camada de rede controla como os pacotes são roteados da origem para o destino. As rotas podem se basear em tabelas estáticas que raramente são alteradas, podem ser determinadas no início de cada conversação ou podem ser altamente dinâmicas, sendo determinadas para cada

(23)

pacote a fim de refletir a situação atual da rede.

Se houver muitos pacotes na sub-rede eles utilizarão o mesmo caminho, provocando engarrafamentos. O controle de congestionamento pertence à camada de rede.

A camada de rede também é responsável pelo endereçamento das máquinas.

Em redes que trabalham com unidades de dados de diferentes tamanhos no nível de enlace de dados pode ser necessário realizar a fragmentação e a remontagem dos pacotes. A camada de rede é a responsável por esta tarefa.

A camada de rede pode interligar redes com diferentes protocolos de enlace de dados.

3.2.1.4 A Camada de Transporte

A função básica da camada de transporte é aceitar dados da camada superior, dividi-los em unidades menores (caso seja necessário), passá-los para a camada de rede e garantir que todas as unidades cheguem corretamente à outra extremidade. Ela deve isolar os níveis superiores de erros como chegada fora de ordem dos pacotes ou até mesmo a perda ou a duplicação de um pacote.

A camada de transporte determina o tipo de serviço que será oferecido à camada acima. O tipo de conexão de transporte mais comum é o canal ponto a ponto sem erros, que libera mensagens ou bytes na ordem em que eles são enviados. Outros tipos possíveis de serviço de transporte são as mensagens isoladas sem garantia em relação à ordem de entrega e à difusão de mensagens para muitos destinos. O tipo de serviço é determinado quando a conexão é estabelecida.

A camada de transporte é uma camada fim a fim, que liga a origem ao destino. Nas camadas inferiores os protocolos são trocados entre máquinas vizinhas.

Muitos hosts são multiprogramados, possuindo várias conexões com outros hosts. Desta forma, é preciso criar algum mecanismo que determine a qual conexão uma mensagem pertence. A

multiplexação de várias conexões deve ser feita de forma transparente pela camada de transporte

para as camadas superiores.

Além da multiplexação, a camada de transporte pode realizar também o splitting, que é o aumento da vazão distribuindo uma conexão de transporte por várias conexões de rede simultaneamente.

Também cabe à camada de transporte estabelecer e encerrar conexões.

3.2.1.5 A Camada de Sessão

A camada de sessão permite que os usuários de diferentes máquinas estabeleçam sessões entre eles. Uma sessão pode ser usada para permitir que um usuário estabeleça um, login com um sistema remoto ou transfira um arquivo entre duas máquinas.

Um dos serviços de sessão é o gerenciamento de token. Para alguns protocolos, é necessário que ambos os lados não executem a mesma operação ao mesmo tempo. A camada de sessão oferece tokens para serem trocados, fazendo com que determinadas operações só possam ser executadas pelo lado que está mantendo o token.

Outro serviço que a camada de sessão oferece é a sincronização. São inseridos pontos de sincronização no fluxo de dados de forma que se a conexão for perdida não seja necessário retransmitir todos os dados novamente, mas apenas aqueles enviados após o último ponto de sincronização.

(24)

usuário. Ao contrário das camadas inferiores, que estão interessadas em tornar confiável o processo de movimentação de bits de uma extremidade a outra, a camada de apresentação se preocupa com a sintaxe e a semântica das informações transmitidas.

Um exemplo típico de um serviço da camada de apresentação é a codificação de dados conforme o padrão estabelecido. Hosts têm diferentes códigos para representar strings e valores numéricos. Para permitir que hosts com diferentes representações se comuniquem, as estruturas de dados trocadas podem ser definidas de uma forma abstrata, juntamente com a codificação padrão a ser usada durante a conexão. A camada de apresentação gerencia essas estruturas de dados abstratas e converte a representação utilizada pelo host para a representação padrão da rede, e vice-versa.

Outros exemplos de serviços que podem ser oferecidos pela camada de apresentação são a criptografia e a compressão de dados.

3.2.1.7 A Camada de Aplicação

É a camada que oferece aos usuários acesso à pilha de protocolos OSI. Ela contém uma série de protocolos necessários ao funcionamento de uma rede como, por exemplo, terminais virtuais, transferência de arquivos, correio eletrônico, etc.

É na camada de aplicação que são executados os processos dos usuários.

3.2.1.8 Transmissão de Dados no Modelo OSI

A figura abaixo mostra como os dados podem ser transmitidos através do modelo OSI. Um processo que deseja enviar dados para um receptor passa os dados para a camada de aplicação que, em seguida, anexa o cabeçalho da aplicação e transmite o item resultante para a camada de apresentação.

A camada de apresentação inclui um cabeçalho ao item a ser enviado e passa o resultado para a camada de sessão. A camada de apresentação não identifica qual trecho dos dados transmitidos a ela é o cabeçalho da camada de aplicação e quais são os verdadeiros dados do usuário.

O processo é repetido até os dados alcançarem a camada física, onde eles são realmente transmitidos para o host de recepção. Na recepção, os diversos cabeçalhos são excluídos um a um conforme a mensagem se propaga pelas camadas.

Embora a transmissão de dados propriamente dita seja vertical, cada camada é programada como se fosse horizontal. Quando a camada de transporte do transmissor, por exemplo, obtém uma

(25)

mensagem da camada de sessão, ela anexa um cabeçalho de transporte e a envia à camada de transporte do receptor.

3.2.2 O Modelo de Referência TCP/IP

A ARPANET, antecessora da Internet, foi uma rede de pesquisa criada pelo Departamento de Defesa dos Estados Unidos. Aos poucos universidades e repartições públicas foram sendo conectadas a ela. Quando foram criadas as redes de rádio e satélite, começaram a surgir problemas com os protocolos existentes, forçando a criação de uma nova arquitetura de referência com o objetivo de conectar várias redes ao mesmo tempo. Essa arquitetura veio a ficar conhecida como Modelo de Referência TCP/IP, graças a seus dois principais protocolos.

Diante da preocupação do Pentágono de que seus hosts e roteadores fossem destruídos de uma hora para outra, definiu-se também que a rede deveria ser capaz de sobreviver à perda de hardwares da sub-rede, impedindo que as conversas que estivessem ocorrendo fossem interrompidas. Em outras palavras, o Pentágono queria que as conexões permanecessem intactas enquanto as máquinas de origem e de destino estivessem funcionando, mesmo que algumas máquinas ou linhas de transmissão intermediárias deixassem de operar repentinamente.

3.2.2.1 A Camada Inter-redes

A camada inter-redes é a camada que integra toda a arquitetura. Sua tarefa é permitir que os hosts injetem pacotes em qualquer rede e garantir que eles sejam transmitidos independentemente do destino (que pode ser outra rede).

A camada inter-redes define um formato de pacote oficial e um protocolo chamado IP (Internet Protocol). A tarefa da camada inter-redes é entregar pacotes IP onde eles são necessários. O roteamento é uma questão de grande importância nessa camada, assim como evitar congestionamentos.

A função da camada inter-redes do modelo TCP/IP é a mesma da camada de rede do modelo OSI.

3.2.2.2 A Camada de Transporte

A finalidade da camada de transporte é permitir que as entidades par (peer entity) dos hosts de origem e de destino mantenham uma conversação exatamente como acontece na camada de transporte do modelo OSI. Dois protocolos fim a fim foram definidos. O primeiro deles, o TCP

(26)

TCP cuida também do controle de fluxo, impedindo que um transmissor rápido sobrecarregue um receptor lento com um volume de mensagens muito grande.

O segundo protocolo dessa camada é o UDP (User Datagram Protocol), um protocolo sem conexão, não confiável, para aplicações que não necessitam nem de controle de fluxo, nem da manutenção da seqüência das mensagens enviadas. É amplamente utilizado em aplicações em que a entrega imediata é mais importante do que a entrega precisa.

3.2.2.3 A Camada de Aplicação

O modelo TCP/IP não tem as camadas de sessão e de apresentação. Acima da camada de transporte está a camada de aplicação.

A camada de aplicação contém os protocolos de alto nível. Dentre eles estão o protocolo de terminal virtual (Telnet), o protocolo de transferência de arquivos (FTP) e o protocolo de correio eletrônico (SMTP). Muitos outros protocolos foram incluídos com o decorrer dos anos, como o DNS (Domain Name Service), que mapeia os nomes de host para seus respectivos endereços de rede, o NNTP, protocolo usado para mover artigos de notícias, e o HTTP, protocolo usado para buscar páginas na WWW (World Wide Web), entre outros.

3.2.2.4 A Camada Host/Rede

Abaixo da camada inter-redes nada é definido, exceto pelo fato de que o host tem de se conectar com a rede utilizando um protocolo para que seja possível enviar pacotes IP. Esse protocolo não é definido e varia de host para host e de rede para rede.

3.2.3 Comparação entre os Modelos de Referência OSI e TCP/IP

Os modelos de referência OSI e TCP/IP têm muito em comum. Os dois se baseiam no conceito de uma pilha de protocolos independentes e as camadas têm praticamente as mesmas funções. Em ambos são oferecidos aos processos que desejam se comunicar um serviço de transporte fim a fim independente do tipo de rede que está sendo usado.

O modelo OSI tem três conceitos fundamentais: • Serviços

• Interfaces • Protocolos

Cada camada executa alguns serviços para a camada acima dela. A definição do serviço informa o que a camada faz e não a forma como as entidades acima dela o acessam ou como a camada funciona.

A interface de uma camada informa como os processos acima dela podem acessá-la. A interface especifica quais são os parâmetros e resultados a serem esperados. Ela também não revela o funcionamento interno da camada.

Os protocolos utilizados em uma camada são de responsabilidade dessa camada. A camada pode usar os protocolos que quiser, desde que eles viabilizem a realização do trabalho. Ela também pode alterar esses protocolos sem influenciar o software das camadas superiores.

Originalmente, o modelo TCP/IP não distinguiu com clareza a diferença entre serviço, interface e protocolo, embora as pessoas tenham tentado adaptá-lo ao modelo OSI. Por essa razão, os protocolos do modelo OSI são mais bem encapsulados do que no modelo TCP/IP e podem ser substituídos com relativa facilidade.

O modelo de referência OSI foi concebido antes de os protocolos terem sido inventados. Conseqüentemente, o modelo não foi criado com base em um determinado conjunto de protocolos, o que o deixou bastante flexível. No entanto, há o inconveniente de os projetistas não terem

(27)

experiência com o assunto e não terem muita noção sobre a funcionalidade que deveria ter sido colocado em cada camada.

Com o TCP/IP, aconteceu exatamente o contrário. Como os protocolos vieram primeiro, o modelo foi criado com base neles. Os protocolos não tiveram problemas para se adaptarem ao modelo. O único problema foi que o modelo não se adaptava às outras pilhas de protocolos. Assim ele não era de muita utilidade quando havia necessidade de se descrever redes que não faziam uso do protocolo TCP/IP.

Uma das maiores diferenças entre os dois modelos está no número de camadas. O modelo OSI tem sete camadas e o TCP/IP quatro.

Outra diferença está na área da comunicação sem conexão e da comunicação orientada à conexão. Na camada de rede o modelo OSI é compatível com a comunicação sem conexão e com a comunicação orientada à conexão. No entanto, na camada de transporte, o modelo aceita apenas a comunicação orientada à conexão. O modelo TCP/IP tem apenas um modo na camada de rede (sem conexão), mas aceita ambos os modelos na camada de transporte, oferecendo aos usuários uma opção de escolha. Essa escolha é especialmente importante para os protocolos simples de solicitação/resposta.

3.3 Exercícios

1) Por que o projeto de uma rede deve ser estruturado em camadas?

2) Como se dá a comunicação entre entidades pares, diretamente ou utilizando serviços de outras camadas?

3) Por que se acrescenta cabeçalhos a cada camada que a mensagem passa? 4) O que é um SAP de uma camada?

5) Como se dá a transferência de dados em um serviço orientado à conexão? 6) Como se dá a transferência de dados em um serviço de datagrama?

7) Qual a diferença entre fluxo de mensagens e fluxo de bytes para um serviço orientado à conexão?

8) Qual a diferença entre serviço com confirmação e serviço sem confirmação? 9) A que se propõem o RM-OSI?

10) Qual o principal objetivo da camada: • Física • Enlace de dados • Rede • Transporte • Sessão • Apresentação • Aplicação

(28)

4. Camada de Rede

A camada de rede cuida da transferência de pacotes da origem para o destino. Para chegar ao destino, pode ser necessário passar por vários roteadores intermediários ao longo do percurso, contrastando com a camada de enlace de dados, que apenas move quadros de uma extremidade a outra de um meio de transmissão.

A camada de rede é a camada mais baixa que lida com a transmissão fim a fim. Para atingir seus objetivos, a camada de rede deve:

• Conhecer a topologia da sub-rede de comunicações.

• Ter o cuidado de escolher rotas que evitem sobrecarregar algumas das linhas de

comunicação e roteadores deixando outras ociosas.

• Lidar com as diferenças da sub-rede e resolver os problemas que daí resultam.

4.1 Comutação de pacotes store-and-forward

Considerando a figura abaixo, os principais componentes de um sistema são roteadores da concessionária de comunicações conectados por linhas de transmissão (mostrados na elipse sombreada) e os equipamentos dos clientes (mostrado fora da elipse). O host H1 está diretamente conectado a um dos roteadores da concessionária (roteador A) por uma linha dedicada. Já o host H2 está em uma LAN com um roteador F pertencente ao cliente e operado por ele. Esse roteador também tem uma linha dedicada para o equipamento da concessionária.

Um host com um pacote a enviar o transmite para o roteador mais próximo, seja em sua própria LAN ou não. O pacote é armazenado no roteador até chegar totalmente, de forma que possa ser conferido. Em seguida ele é encaminhado para o próximo roteador ao longo do caminho até alcançar o host de destino, onde é entregue. Esse mecanismo é conhecido como comutação de pacotes (store-and-forward).

4.2 Serviços Oferecidos à Camada de Transporte

A camada de rede oferece serviços à camada de transporte na interface entre a camada de rede e a camada de transporte. Tais serviços foram projetados tendo em vista os seguintes objetivos:

• Os serviços devem ser independentes da tecnologia de sub-rede.

• A camada de transporte deve ser protegida contra a quantidade, o tipo e a topologia das

sub-redes presentes.

• Os endereços de rede que se tornaram disponíveis para a camada de transporte devem usar

um plano de numeração uniforme, independente do tipo de rede.

Tendo definido esses objetivos, os projetistas da camada de rede têm liberdade para escrever especificações detalhadas dos serviços a serem oferecidos à camada de transporte. A discussão se concentra em oferecer um serviço orientado à conexão ou serviço sem conexão.

(29)

4.3 Organização Interna da Camada de Rede

Há basicamente duas formas para a organização da sub-rede, uma utilizando conexões e a outra trabalhando sem conexão. Internamente a uma sub-rede, uma conexão costuma ser chamada de circuito virtual, enquanto pacotes independentes sem conexão são chamados de datagramas.

A idéia dos circuitos virtuais é evitar a escolha de uma nova rota para cada pacote enviado, sendo por isso utilizado em sub-redes com serviço orientado à conexão. Na verdade, quando se estabelece uma conexão uma rota entre a máquina origem e a máquina destino é escolhida como parte do estabelecimento da conexão. Essa rota é utilizada por todo o tráfego que flui pela conexão, exatamente como o sistema telefônico funciona. Quando a conexão é liberada o circuito virtual deixa de existir.

No caso de uma sub-rede de datagrama, nenhuma rota é previamente definida, mesmo que o serviço seja orientado à conexão. Cada pacote enviado é roteado independentemente de seus antecessores. Os sucessivos pacotes podem seguir diferentes rotas.

Se os pacotes que fluem por um determinado circuito virtual sempre seguirem a mesma rota através da sub-rede, os roteadores deverão lembrar para onde enviar os pacotes de cada um dos circuitos virtuais abertos que estiverem passando através deles. Cada pacote que percorre a sub-rede deve conter um campo de número de circuito virtual em seu cabeçalho.

4.4 Endereçamento no Nível de Rede

Alguns níveis de rede oferecem a comunicação entre estações com um único SAP (Service

Access Point – Ponto de Acesso ao Serviço) de rede, ao passo que outros possibilitam a definição

de vários SAPs de rede por estação. Mas independentemente do tipo de rede, o endereçamento dos SAPs de rede deve ser completamente independente do endereçamento dos protocolos de outros níveis. Basicamente dois tipos de endereçamento são possíveis: o hierárquico e o horizontal.

No endereçamento hierárquico, o endereço de uma entidade é constituído de acordo com os endereços correspondentes aos vários níveis da hierarquia de que ela faz parte. O endereço hierárquico é o método sugerido pelo ITU-T para interconexão de redes públicas de pacotes. Nessa recomendação os endereços são números decimais formados por três campos: um código do país, um código para a rede, e um campo para o endereçamento dentro da rede.

No endereçamento horizontal, os endereços não têm relação alguma com o lugar onde estão as entidades dentro da rede. Um exemplo comum desse tipo de endereçamento são os endereços globalmente administrados, constituídos pelo número de assinatura do usuário, como os utilizados pelo padrão IEEE 802 (endereços MAC).

Considerações sobre o roteamento parecem indicar vantagens na utilização de endereçamento hierárquico, uma vez que este contem informações explícitas sobre o local onde se localizam as entidades. Já o endereçamento horizontal facilita os esquemas de reconfiguração por permitir uma mobilidade das entidades sem reconfiguração das mesmas.

O mapeamento do endereço de nível de rede em um endereço de nível de enlace para o envio de pacotes é uma tarefa a ser resolvida pelo nível de rede. Existem duas técnicas usuais para essa conversão: resolução através de mapeamento direto e resolução através de vinculação dinâmica.

No mapeamento direto, a estação sabe como computar o endereço de enlace, através de uma função que mapeia o endereço de rede no endereço de enlace. Por exemplo, o endereçamento

(30)

o endereço de rede e o endereço de enlace através da utilização de algum protocolo de resolução.

4.5 Exercícios

1) Qual o principal objetivo da camada de rede? 2) Como funciona a comutação de pacotes?

3) Qual a diferença entre circuito virtual e datagrama?

Referências

Documentos relacionados

Tendo como parâmetros para análise dos dados, a comparação entre monta natural (MN) e inseminação artificial (IA) em relação ao número de concepções e

Quando contratados, conforme valores dispostos no Anexo I, converter dados para uso pelos aplicativos, instalar os aplicativos objeto deste contrato, treinar os servidores

Este subsídio é para aqueles que forem reformar a casa usando os serviços de alguma construtora que possua endereço na cidade de Hikone.. Informações Setor de Promoção da

Se a pessoa do marketing corporativo não usar a tarefa Assinatura, todos as pessoas do marketing de campo que possuem acesso a todos os registros na lista de alvos originais

Como ele apenas distribui o sinal, sem fazer qualquer tipo de amplificação, o comprimento total dos dois trechos de cabo entre um micro e outro, passando pelo hub, não pode exceder

Nossa expectativa com relação a criação de valor, no curto prazo, está baseada na perspectiva de resultados favoráveis para o 2º trimestre, sua

Se bater o desânimo, pense como você já está se sentindo melhor agora, tire uma foto sua de frente e de perfil logo que começar e guarde para comparar depois de algumas semanas,

"Al- guns capítulos foram objeto de um debate no Instituto Psicana- lítico de Londres." Segundo ela, Winnicott a interroga sobre por que "curar", quando muitas