929 137 18MB
Portuguese Pages [488] Year 2017
O autor e a editora empenharam-se para citar adequadamente e dar o devido crédito a todos os detentores dos direitos autorais de qualquer material utilizado neste livro, dispondo-se a possíveis acertos caso, inadvertidamente, a identificação de algum deles tenha sido omitida. Não é responsabilidade da editora nem do autor a ocorrência de eventuais perdas ou danos a pessoas ou bens que tenham origem no uso desta publicação. Apesar dos melhores esforços do autor, do editor e dos revisores, é inevitável que surjam erros no texto. Assim, são bem-vindas as comunicações de usuários sobre correções ou sugestões referentes ao conteúdo ou ao nível pedagógico que auxiliem o aprimoramento de edições futuras. Os comentários dos leitores podem ser encaminhados à LTC – Livros Técnicos e Científicos Editora pelo e-mail [email protected]. Direitos exclusivos para a língua portuguesa
Copyright © 2013 by Luiz Paulo Maia
LTC – Livros Técnicos e Científicos Editora Ltda.
Uma editora integrante do GEN | Grupo Editorial Nacional Reservados todos os direitos. É proibida a duplicação ou reprodução deste volume, no todo ou em parte, sob quaisquer formas ou por quaisquer meios (eletrônico, mecânico, gravação, fotocópia, distribuição na internet ou outros), sem permissão expressa da editora. Travessa do Ouvidor, 11
Rio de Janeiro, RJ – CEP 20040-040
Tels.: 21-3543-0770 / 11-5080-0770
Fax: 21-3543-0896
[email protected]
www.ltceditora.com.br Capa: Leônidas Leite
Produção Digital: Geethik CIP-BRASIL. CATALOGAÇÃO NA PUBLICAÇÃO
SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ M184a
2. ed. Maia, Luiz Paulo
Arquitetura de redes de computadores/Luiz Paulo Maia. – 2. ed. – Rio de Janeiro: LTC, 2013. il.; 28 cm.
Inclui bibliografia e índice
ISBN 978-85-216-2435-6 1. Arquitetura de redes de computadores. I. Título. 13-01216
CDD: 004.6
CDU: 004.72
Aos meus filhos,
Maria Luiza e Felipe
Prefácio O livro Arquitetura de Redes de Computadores tem o objetivo de apresentar a estrutura e o funcionamento das redes de computadores de forma atual, abrangente e, principalmente, didática. O livro aborda as principais tecnologias relacionadas às redes de computadores, apresentando padrões de mercado consagrados como, por exemplo, os utilizados na Internet e redes locais Ethernet. Uma das maiores dificuldades para aqueles que querem estudar redes de computadores é a dificuldade em visualizar o funcionamento dos protocolos existentes e ter a compreensão do relacionamento entre eles. Para tentar minimizar esse problema, o texto utiliza mais de 250 figuras e apresenta exemplos de protocolos atuais, tornando a compreensão dos conceitos e mecanismos mais simples. A sequência dos assuntos tem a preocupação de garantir a evolução de complexidade do conteúdo, e ao final de cada capítulo são propostos exercícios para fixar os conceitos apresentados, totalizando quase 400 exercícios.
■ Público-alvo
O livro pode ser utilizado integralmente em disciplinas universitárias de graduação, como livrotexto, ou parcialmente em cursos de pósgraduação e extensão. Seu conteúdo foi elaborado para estar em conformidade com a Portaria do MEC/Inep no 197 [MEC, 2011], que define as habilidades e competências avaliadas no ENADE (Exame Nacional de Desempenho dos Estudantes) dos cursos de Tecnologia em Redes de Computadores. Além do meio acadêmico, profissionais de informática também podem utilizar a obra, para melhor compreender o funcionamento
das redes de computadores e aplicar esse conhecimento em suas áreas de atuação. Como pré-requisito básico para sua leitura, é necessário apenas algum conhecimento de sistemas operacionais e programação.
■ Estrutura do Livro
O livro está dividido em oito capítulos: • Capítulo 1 – Conceitos Básicos: motivações, tipos de rede, parâmetros para avaliação, modelo cliente-servidor, serviços de rede e histórico. • Capítulo 2 – Modelo de Camadas: vantagens, modelo de cinco camadas, encapsulamento, funções das camadas, protocolos de rede, modelo OSI, modelo Internet, modelo IEEE 802 e órgãos de padronização. • Capítulo 3 – Camada Física: processo de transmissão, tipos de sinais, problemas na transmissão, largura de banda, meios de transmissão, digitalização, sinalização, tipos de transmissão, multiplexação, sincronização e topologias de redes. • Capítulo 4 – Camada de Enlace: enquadramento, detecção e controle de erros, protocolos ARQ e controle de fluxo. • Capítulo 5 – Arquitetura de Redes Locais: protocolos de controle de acesso ao meio, modelo IEEE 802, redes Ethernet e redes locais sem fio. • Capítulo 6 – Camada de Rede: comutação, redes de pacotes, endereçamento IP, NAT, roteamento, fragmentação, controle de congestionamento e qualidade de serviço. • Capítulo 7 – Camada de Transporte: comunicação fim a fim, portas e sockets, PAT, segmentação, controle de erro, início de término de conexões, controle de fluxo e interface de programação de rede. • Capítulo 8 – Camada de Aplicação: serviço de nomes (DNS), serviço web (HTTP), transferência de arquivos (FTP e TFTP), serviço de correio (SMTP), terminal remoto (Telnet e SSH) e gerenciamento de rede (SNMP).
■ Nova Edição
A segunda edição do livro traz como grande diferencial novos exercícios divididos em questões de múltipla escolha e questões discursivas, incluindo diversas questões do ENADE dos cursos de Redes de Computadores, Engenharia da Computação, Ciência da Computação, Sistemas de Informação e Análise e Desenvolvimento de Sistemas, de diferentes anos. Além dos novos exercícios, o livro traz algumas mudanças como: • Capítulo 1 – Introdução sobre alguns problemas da Internet, inclusão do conceito de PAN, adição do termo inter-rede e atualização da evolução na Internet. • Capítulo 2 – Adição do termo inter-rede. • Capítulo 3 – Adição de informações sobre sinalização analógica e fibras óticas. • Capítulo 4 – Adição dos termos endereçamento por difusão e multidifusão. • Capítulo 5 – Inclusão dos conceitos de SSID, agregação de enlaces, spanning tree, VLANs e segurança em redes sem fio. • Capítulo 6 – Adição do termo inter-rede, inclusão da comutação por mensagem, X.25, CIDR, VLSM, ICMP e IPv6. • Capítulo 7 – Inclusão do conceito de controle de congestionamento. • Capítulo 8 – Melhorias nos itens sobre FTP e SNMP.
■ Agradecimentos
Gostaria de agradecer a todos aqueles que, de alguma forma, contribuíram para este trabalho, principalmente aos meus ex-alunos de redes de computadores. Também gostaria de agradecer à equipe editorial da LTC pelo suporte na elaboração desta obra.
Sumário 1 Conceitos Básicos 1.1 Introdução 1.2 Motivações 1.3 Transmissor, Receptor e Canal de Comunicação 1.4 Protocolos e Modelo de Camadas 1.5 Serviços de Rede 1.6 Parâmetros para Avaliação 1.7 Redes Locais, Metropolitanas e Distribuídas 1.8 Redes Cabeadas e Sem Fio 1.9 Redes Ponto a Ponto e Multiponto 1.10 Redes Comutadas por Circuitos e Comutadas por Pacotes 1.11 Modelo Cliente-Servidor 1.12 Serviços Oferecidos pelas Redes 1.13 Histórico Exercícios, 21
2 Modelo de Camadas 2.1 Introdução 2.2 Vantagens do Modelo de Camadas
2.3 Modelo de Cinco Camadas 2.3.1 Comunicação Vertical 2.3.2 Comunicação Horizontal 2.3.3 Encapsulamento 2.4 Funções das Camadas 2.4.1 Camada Física 2.4.2 Camada de Enlace 2.4.3 Camada de Rede 2.4.4 Camada de Transporte 2.4.5 Camada de Aplicação 2.5 Protocolos de Rede 2.6 Arquitetura de Redes 2.6.1 Modelo OSI 2.6.2 Modelo Internet 2.6.3 Modelo IEEE 802 2.7 Órgãos de Padronização Exercícios, 41
3 Camada Física 3.1 Introdução 3.2 Processo de Transmissão 3.3 Características do Sinal 3.4 Problemas na Transmissão 3.4.1 Ruídos 3.4.2 Atenuação 3.5 Largura de Banda e Capacidade de Transmissão 3.6 Meios de Transmissão 3.6.1 Características dos Meios de Transmissão
3.6.2 Par Trançado 3.6.3 Cabo Coaxial 3.6.4 Fibra Ótica 3.6.5 Rádio 3.6.6 Micro-ondas 3.6.7 Satélite 3.6.8 Infravermelho 3.7 Digitalização 3.8 Sinalização Digital 3.9 Sinalização Analógica 3.10 Sinalização Multinível 3.11 Multiplexação 3.11.1 Multiplexação por Divisão de Frequência 3.11.2 Multiplexação por Divisão de Tempo 3.12 Transmissão Simplex, Half-Duplex e Full-Duplex 3.13 Transmissão Serial e Paralela 3.14 Transmissão Assíncrona e Síncrona 3.15 Topologias de Rede 3.15.1 Topologia Totalmente Ligada 3.15.2 Topologia em Estrela 3.15.3 Topologia Hierárquica 3.15.4 Topologia Distribuída 3.15.5 Topologia em Barra 3.15.6 Topologia em Anel Exercícios
4 Camada de Enlace 4.1 Introdução
4.2 Quadros 4.3 Enquadramento 4.4 Endereçamento 4.5 Detecção de Erro 4.5.1 Bit de Paridade 4.5.2 Verificação de Redundância Cíclica 4.6 Correção de Erro 4.7 Protocolos ARQ 4.7.1 Bit Alternado 4.7.2 Retransmissão Integral 4.7.3 Retransmissão Seletiva 4.8 Controle de Fluxo Exercícios
5 Arquitetura de Redes Locais 5.1 Introdução 5.2 Controle de Acesso ao Meio 5.2.1 Protocolo FDMA 5.2.2 Protocolo TDMA 5.2.3 Protocolo CDMA 5.2.4 Protocolos ALOHA e Slotted ALOHA 5.2.5 Protocolo CSMA 5.2.6 Protocolo CSMA/CD 5.2.7 Protocolo CSMA/CA 5.2.8 Protocolo Baseado em Polling 5.2.9 Protocolo Baseado em Token 5.3 Modelo IEEE 802 5.4 Ethernet
5.4.1 Quadro Ethernet 5.4.2 Protocolo de Acesso ao Meio 5.4.3 Ethernet 10 Mbps 5.4.4 Fast Ethernet 5.4.5 Gigabit Ethernet 5.4.6 10 Gigabit Ethernet 5.4.7 Repetidores e Hubs 5.4.8 Pontes e Switches 5.5 Redes Locais Sem Fio 5.5.1 Tipos de Redes Sem Fio 5.5.2 Arquitetura do IEEE 802.11 5.5.3 Camada Física 5.5.4 Protocolo de Acesso ao Meio 5.5.5 Quadro IEEE 802.11 5.5.6 Segurança 5.6 Agregação de Enlaces 5.7 Spanning Tree Protocol (STP) 5.8 Virtual LAN (VLAN) Exercícios
6 Camada de Rede 6.1 Introdução 6.2 Comutação 6.2.1 Comutação por Circuito 6.2.2 Comutação por Pacote 6.3 Serviços de Datagrama e Circuito Virtual 6.4 Endereçamento 6.4.1 Espaço de Endereçamento 6.4.2 Subendereçamento
6.4.3 Endereçamento Sem Classes (CIDR) 6.4.4 Endereçamento Estático e Dinâmico 6.4.5 Mapeamento de Endereços 6.4.6 Tradução de Endereços de Rede 6.4.7 Endereçamento Multicast 6.5 Roteamento 6.5.1 Características dos Algoritmos de Roteamento 6.5.2 Classificação dos Algoritmos de Roteamento 6.5.3 Métricas de Roteamento 6.5.4 Roteamento por Vetor de Distância 6.5.5 Roteamento por Estado do Enlace 6.5.6 Roteamento Hierárquico 6.5.7 Roteamento Broadcast 6.5.8 Roteamento Multicast 6.6 Fragmentação 6.7 Controle de Erro 6.8 Controle de Congestionamento 6.8.1 Abordagens para o Controle de Congestionamento 6.8.2 Mecanismos para o Controle de Congestionamento 6.9 Qualidade de Serviço 6.9.1 Parâmetros para a Qualidade de Serviço 6.9.2 Mecanismos para a Implementação de QoS 6.9.3 Qualidade de Serviço na Internet 6.10 IPv6 Exercícios
7 Camada de Transporte 7.1 Introdução
7.2 Comunicação Fim a Fim 7.3 Tipos de Serviços de Transporte 7.4 Endereçamento 7.4.1 Portas e Sockets 7.4.2 Port Address Translation (PAT) 7.5 Segmentação 7.6 Controle de Erro Fim a Fim 7.7 Início e Término de Conexões 7.8 Controle de Fluxo Fim a Fim 7.9 Controle de Congestionamento 7.10 Interface de Programação de Rede 7.10.1 Programa Servidor 7.10.2 Programa Cliente Exercícios
8 Camada de Aplicação 8.1 Introdução 8.2 Protocolos de Aplicação 8.3 Serviço de Nomes 8.3.1 Espaço de Nomes de Domínio 8.3.2 Delegação e Zonas de Autoridade 8.3.3 Resolução de Nomes 8.4 Serviço Web 8.4.1 Cliente Web 8.4.2 Servidor Web 8.4.3 Protocolo HTTP 8.5 Transferência de Arquivos
8.6 Correio Eletrônico 8.7 Terminal Remoto 8.8 Gerenciamento de Redes Exercícios
Referências Bibliográficas Índice
Material
Suplementar Este livro conta com o seguinte material suplementar: ■ Ilustrações da obra em formato de apresentação (restrito a docentes) ■ Solução dos exercícios (restrito a docentes) ■ Plano de aula (acesso livre) ■ Programas utilizando Socket em C++ (acesso livre) ■ Links para ferramentas de apoio (acesso livre) O acesso ao material suplementar é gratuito, bastando que o leitor se cadastre em: http://gen-io.grupogen.com.br.
GEN-IO (GEN | Informação Online) é o repositório de materiais suplementares e de serviços relacionados com livros publicados pelo GEN | Grupo Editorial Nacional, maior conglomerado brasileiro de editoras do ramo científico-técnico-profissional, composto por Guanabara Koogan, Santos, Roca, AC Farmacêutica, Forense, Método, LTC, E.P.U. e Forense
Universitária. Os materiais suplementares ficam disponíveis para acesso durante a vigência das edições atuais dos livros a que eles correspondem.
ARQUITETURA DE REDES
DE COMPUTADORES
1 Conceitos Básicos
1.1 Introdução O principal objetivo deste capítulo é apresentar os conceitos básicos para a compreensão inicial das redes de computadores e do restante do livro. Na maioria dos casos, os conceitos introduzidos aqui serão reapresentados com maior detalhamento nos capítulos seguintes. Desta forma, é possível aprofundar o tema gradualmente, tornando o processo de aprendizado mais fácil. O capítulo apresenta, inicialmente, uma visão geral dos principais conceitos e termos aplicados às redes de computadores. Um fator importante no estudo das redes é poder avaliar e comparar os diversos tipos, suas vantagens e desvantagens. Para tal, são apresentados os principais parâmetros para a avaliação de redes de computadores. As redes de computadores podem ser classificadas de diversas formas, e o capítulo apresenta os conceitos de redes locais, metropolitanas e distribuídas, redes cabeadas e sem fio, redes ponto a ponto e multiponto, além de redes comutadas por circuito e pacotes. São apresentados o modelo cliente-servidor e os principais serviços oferecidos pelas redes de computadores, com ênfase nos serviços oferecidos pela Internet. Finalmente, é apresentado um histórico da evolução das redes, especialmente da Internet.
1.2 Motivações Uma rede de computadores é um conjunto de dispositivos interconectados com a finalidade de trocar informações e compartilhar recursos. No passado, uma rede era formada por dispositivos tradicionais, como os computadores de grande porte e os computadores pessoais. Hoje, o
termo computador tem um significado mais amplo, incluindo dispositivos como impressoras, telefones celulares, televisões ou qualquer dispositivo que tenha a capacidade de processamento de dados (Fig. 1.1). No caso da Internet, a rede é formada por um conjunto de dispositivos chamados hosts. Existem, basicamente, dois motivos para o surgimento e a evolução das redes de computadores. O primeiro é a necessidade de troca e compartilhamento de informações de forma rápida e a baixo custo. Por exemplo, uma instituição de ensino pode disponibilizar em seu site na Internet as notas dos alunos, informações sobre disciplinas e matrícula, oferecer cursos a distância e criar comunidades integrando alunos e professores. Uma empresa pode colocar em seu site informações que podem ser compartilhadas com seus funcionários, parceiros, acionistas e clientes em geral. Por exemplo, um banco pode utilizar a Internet para permitir que seus clientes realizem transações eletrônicas como consultas de saldo, aplicações financeiras, transferência de valores e pagamento de contas. O comércio eletrônico permite que as empresas divulguem e vendam seus produtos na Internet independentemente da localização do cliente e da hora da compra. Os governos também podem utilizar a rede para melhorar seu relacionamento com os cidadãos, como, por exemplo, a entrega do imposto de renda.
F IGURA 1.1
Rede de computadores.
O correio eletrônico é um bom exemplo de aplicação que permite a troca de informações de forma eficiente e de baixo custo. Quando enviamos um e-mail, não importa onde o destinatário está fisicamente localizado. O tempo de entrega do e-mail pode variar um pouco, talvez alguns minutos, mas o custo é o mesmo, independentemente do local do destinatário. Comparado ao correio tradicional, uma carta pode levar alguns dias ou semanas para ser entregue, e o custo de envio da carta dependerá da localização do destinatário. O segundo motivo para a crescente necessidade das redes de computadores é o compartilhamento de recursos de hardware e software. Com uma rede, é possível compartilhar recursos como impressoras, conexões a outras redes, espaço em disco e, até mesmo, processadores, gerando economia de recursos e, consequentemente, redução de custos. Por exemplo, uma impressora pode ser compartilhada por vários usuários de diferentes departamentos. Uma instituição de ensino pode compartilhar sua conexão com a Internet entre os diversos alunos, professores e funcionários. Um supercomputador em um centro de pesquisas pode ser utilizado para processar aplicações científicas submetidas por outras instituições através da rede. Apesar dos benefícios indiscutíveis trazidos pela Internet, existem alguns problemas que merecem ser comentados. Uma questão importante é quanto ao problema de segurança no uso da rede. A distribuição de vírus e variantes, invasão de sites para diversos fins, pedofilia, chantagem, difamação e crimes financeiros são apenas alguns exemplos de como a rede é insegura. Outra questão muito importante diz respeito à utilização indevida de textos digitais, como livros e artigos, música e imagens digitais, como filmes e fotografia, violando os direitos autorais.
1.3 Transmissor, Receptor e Canal de Comunicação Em uma rede existe a figura do dispositivo que transmite o dado, chamado transmissor ou origem, e do que recebe, chamado receptor ou destino. O papel de transmissor e receptor, geralmente, é dinâmico, ou seja, em um determinado momento um host pode estar transmitindo e no momento
seguinte receber dados. Na verdade, na maioria dos casos, um host pode transmitir e receber dados ao mesmo tempo. O dado é transportado entre o transmissor e o receptor através de um canal de comunicação, também chamado de circuito ou link. O canal de comunicação define uma série de características da transmissão, como, por exemplo, o meio de transmissão, ou seja, cabo coaxial, par trançado, fibra óptica, micro-ondas ou satélite (Fig. 1.2).
F IGURA 1.2
Transmissor, receptor e canal de comunicação.
Os dispositivos são conectados fisicamente ao canal de comunicação utilizando uma interface de rede. A interface de rede tem a função de colocar o dado no circuito na origem e retirá-lo no destino. Para ser transmitido, o dado precisa ser codificado em um sinal que percorrerá o meio de transmissão até chegar ao destino, onde será decodificado. Por exemplo, quando alguém fala ao telefone, a voz (dado) é codificada em pulsos elétricos (sinal) e transmitida utilizando o par telefônico (canal de comunicação). No destino, os pulsos elétricos são decodificados para o formato original. A codificação e a decodificação do sinal são implementadas pela interface de comunicação, que no exemplo é o próprio telefone. Um dispositivo em uma rede, normalmente, possui uma identificação, como um nome ou número, que permite identificá-lo de forma única na rede. A identificação de um dispositivo é semelhante ao número de um telefone. Cada telefone possui um número único que permite sua identificação, e a partir desse número é possível fazer e receber ligações. No caso da Internet, cada host possui um nome, e um endereço IP que é único em toda a rede. Por exemplo, o servidor Web da Universidade Federal do Rio de Janeiro (UFRJ) tem como endereço 146.164.2.32 e nome www.ufrj.br.
1.4 Protocolos e Modelo de Camadas Para garantir que a comunicação ocorra com sucesso, os dispositivos devem utilizar protocolos de comunicação, que são regras predefinidas que devem ser seguidas pelos dispositivos. Os protocolos utilizados em uma rede devem ser compatíveis, caso contrário a comunicação não se dará de forma efetiva ou, simplesmente, não ocorrerá. Os protocolos de rede são semelhantes às regras de trânsito, que devem ser respeitadas pelos motoristas para que cheguem com segurança ao destino. Existem diversos protocolos relacionados à comunicação de dados e redes de computadores, e cada um possui uma função específica. A Tabela 1.1 apresenta alguns protocolos utilizados no acesso à Internet através de uma linha telefônica comum. O TCP e o IP são dois dos muitos protocolos utilizados na Internet. Por serem considerados os mais importantes, o termo TCP/IP é utilizado como forma de referenciar todos os protocolos que fazem parte do modelo Internet. Tabela 1.1
Exemplos de protocolos
Protocolo
Descrição
V.92
Utilizado por modems para conexões discadas.
PPP
Utilizado para conexões ponto a ponto.
IP
Utilizado para transportar a informação da origem ao destino.
TCP
Utilizado para manter a confiabilidade da transmissão.
HTTP
Utilizado para transportar páginas na Internet.
Os protocolos possuem funções específicas e precisam interagir para tornar o processo de comunicação efetivo. A ideia do modelo de camadas é, inicialmente, dividir o projeto de redes em funções independentes e agrupar as funções afins em camadas, criando o total isolamento de suas funções e, principalmente, a independência de cada nível. O livro adota o modelo de cinco camadas para organizar e simplificar o ensino e o estudo das redes de computadores. A Fig. 1.3 apresenta as cinco camadas do modelo e exemplos de protocolos associados a cada camada.
O modelo de camadas traz grandes benefícios para a manutenção do projeto da rede, pois se houver algum problema basta identificar a camada responsável e corrigi-lo. Além disso, é possível introduzir novas funcionalidades em uma camada sem que as demais sejam afetadas, reduzindo o esforço para a evolução do projeto de rede. Existem também vantagens comerciais na adoção do modelo em camadas, principalmente quando existe uma arquitetura padrão a ser seguida pelos fornecedores de produtos de redes. Nesse caso, diferentes empresas podem oferecer soluções para uma ou mais camadas, e os usuários podem adquirir produtos de diferentes fabricantes sem o risco de incompatibilidades entre os diferentes produtos. O modelo de cinco camadas é apresentado em detalhes no Capítulo 2 – Modelo de Camadas.
F IGURA 1.3
Modelo de cinco camadas.
1.5 Serviços de Rede A maioria dos usuários, quando utiliza a rede, desconhece os detalhes do seu funcionamento. Detalhes como o canal de comunicação, interfaces e protocolos são completamente transparentes. Os usuários estão interessados em usufruir dos serviços oferecidos pela rede. Um serviço é uma funcionalidade da rede disponível de forma transparente para seus usuários e aplicações. As redes oferecem inúmeros serviços, como acesso à Web, correio eletrônico, transferência de arquivos, terminal remoto e videoconferência.
Para exemplificar os conceitos apresentados, vejamos o exemplo do serviço de telefonia quando duas pessoas (João e Maria) falam ao telefone. Neste exemplo, João utiliza o telefone como interface para fazer a ligação para Maria, utilizando a rede de telefonia como canal de comunicação. João utiliza protocolos para discar e aguardar que Maria atenda, e ela, por sua vez, utiliza protocolos para atender a ligação, identificar-se e conduzir a conversa. Terminada a conversa, João e Maria utilizam protocolos para encerrar a ligação. Se ambos não utilizarem os protocolos corretos e, por exemplo, falarem ao mesmo tempo, a comunicação se dará com problemas e um não entenderá o que o outro falou (Fig. 1.4). Outro serviço que pode ser utilizado para exemplificar os conceitos apresentados é o serviço Web. No caso da Internet, um host, para ser conectado à rede, precisa de um provedor de acesso, que funciona como um elo de ligação entre o host e a Internet. Existem inúmeras formas de realizar essa conexão, mas no caso de usuários domésticos geralmente utilizam-se uma linha telefônica como canal de comunicação e um modem como interface. Se considerarmos o acesso discado de um usuário ao seu provedor, tanto o usuário quanto o provedor possuem interfaces de rede que conectam seus computadores ao sistema de telefonia. No caso do usuário, ele utiliza diversos protocolos para estabelecer a conexão e manter a comunicação com seu provedor, como os protocolos V.92, PPP, IP, TCP e HTTP, entre outros.
F IGURA 1.4
Serviço de telefonia.
1.6 Parâmetros para Avaliação
Existem diferentes tipos de redes, e cada um possui vantagens e desvantagens. Para poder compará-los, é importante definir certos parâmetros utilizados como medidas nessa avaliação. A seguir são apresentados alguns parâmetros utilizados no decorrer do livro para avaliar vantagens e desvantagens e comparar os diversos tipos de redes.
■ Custo
Um dos parâmetros mais importantes quando analisamos uma rede é o seu custo. O custo envolve, basicamente, o projeto, a aquisição de equipamentos, instalação, operação e manutenção da rede. Com relação a esse último, o custo de manutenção envolve, além dos equipamentos de rede, os custos dos canais de comunicação e da equipe de suporte. Além do hardware, uma rede necessita de software para monitoração, gerenciamento e segurança, por exemplo.
■ Desempenho
O desempenho de uma rede pode ser medido de diversas formas, utilizando diferentes métricas. A métrica mais simples para especificar o desempenho de uma rede é a taxa de transmissão. A taxa de transmissão, vazão (throughput) ou banda especifica o número de bits por segundo (bps) ou número de bytes por segundo (bps) transmitidos pelo canal de comunicação. A Tabela 1.2 apresenta as unidades utilizadas para medir a taxa de transmissão. Por exemplo, uma conexão que apresenta uma taxa de 48 Kbps transmite 48000 bits por segundo ou 6000 bytes por segundo. Tabela 1.2
Unidades para a taxa de transmissão
Unidade
Descrição
Unidade
Descrição
1 bps
1 bit por segundo
1 bps
8 bits por segundo
1 Kbps
1000 bps
1 Kbps
8000 bps
1 Mbps
1000000 bps
1 Mbps
8000000 bps
1 Gbps
1000000000 bps
1 Gbps
8000000000 bps
1 Tbps
1000000000000 bps
1 Tbps
8000000000000 bps
É importante não confundir as unidades utilizadas para medir a taxa de transmissão (Tabela 1.2) e as unidades para medir a capacidade de armazenamento de arquivos e memórias, apesar da falsa semelhança. Enquanto 1 Kbps representa 1000 bits por segundo, 1 KB representa 1024 bytes. No primeiro caso K representa 103, enquanto no segundo K representa 210. A Tabela 1.3 compara as unidades utilizadas para medir a taxa de transmissão e a capacidade de armazenamento. Tabela 1.3
Comparação de unidades
Unidade
Descrição
Unidad e
Descrição
1 Kbps
103 ou 1000 bps
1 KB
210 ou 1024 bytes
1 Mbps
106 ou 1000000 bps
1 MB
220 ou 1048576 bytes
1 Gbps
109 ou 1000000000 bps
1 GB
230 ou 1073741824 bytes
1 Tbps
1012 ou 1000000000000 bps
1 TB
240 ou 1099511627776 bytes
A partir da taxa de transmissão é possível calcular o tempo necessário para transferir um arquivo pela rede. Para isso, basta dividir o tamanho do arquivo a ser transferido pela taxa de transmissão, tomando cuidado com as unidades utilizadas. Por exemplo, um arquivo com 1 MB e uma conexão de 48 Kbps levaria 2,9 minutos para a transferência, conforme o cálculo a seguir. Geralmente, quanto melhor o desempenho da rede, menor o tempo necessário para uma transferência, porém maior o seu custo. Tempo = 1 MB/48 Kbps
Tempo = 1048576 bytes/48000 bps
Tempo = 8388608 bits/48000 bps
Tempo ≈ 174 segundos ou 2,9 minutos A taxa de transmissão nem sempre é constante, e varia em função do tempo. Dependendo das características físicas da conexão e do tráfego da rede, a taxa pode ficar bem abaixo do valor máximo permitido. Conexões discadas que utilizam o padrão V.90/V.92 estão limitadas a taxas de transmissão de no máximo 56 Kbps, porém, em muitos casos, as
conexões ficam bem abaixo desse valor por problemas de condicionamento da linha. Outro problema é o tráfego da rede, que pode estar muito elevado, gerando atrasos na transmissão dos dados e redução da taxa de transmissão. Uma forma mais precisa e atual de especificar e medir o desempenho de uma rede é a utilização de parâmetros que permitem controlar a qualidade de serviço ou QoS (Quality of Service). De forma simplificada, o QoS permite definir diversos parâmetros, como, por exemplo, taxa de transmissão, atraso e variação do atraso, que permitem garantir ao usuário a qualidade dos serviços prestados pela rede. Por exemplo, se o usuário contrata um serviço de telefonia pela Internet, ele espera que a conversa transcorra de forma natural, sem falhas e ecos.
■ Escalabilidade
A escalabilidade é a capacidade de adicionar novos dispositivos ou usuários à rede com o menor impacto possível. Por exemplo, a tarefa de adicionar um novo dispositivo à rede não deve gerar alterações significativas nos protocolos, interfaces e canais de comunicação já utilizados na rede. Além disso, a entrada de um novo dispositivo na rede não deve exigir a reconfiguração dos demais elementos. O melhor exemplo de escalabilidade é a Internet, que inicialmente era formada por poucos hosts e hoje possui milhões de usuários. A arquitetura da Internet permite que novos hosts sejam agregados apenas com pequenas mudanças que não afetam a maior parte da rede. Além disso, é possível conectar dispositivos com diversos sistemas operacionais utilizando diferentes canais de comunicação. Novos serviços são agregados à Internet sem a necessidade de mudanças nos principais protocolos do modelo.
■ Disponibilidade
A disponibilidade é o tempo que a rede permanece em funcionamento de forma ininterrupta, incluindo possíveis falhas de hardware ou software, manutenções preventivas e corretivas. Redes que necessitam de alta disponibilidade são utilizadas em aplicações de missão crítica, como sistemas de tráfego aéreo e de comércio eletrônico na Internet. Uma alta disponibilidade é obtida utilizando dispositivos com maior tolerância a falhas e redundância de recursos. Em geral, quanto maior a disponibilidade, maior o custo da rede.
■ Segurança
A segurança de redes visa preservar quesitos como confidencialidade, autenticidade, controle de acesso, integridade e disponibilidade das informações. A segurança tornou-se um grande problema em função do crescimento e da interconexão das redes, principalmente com a Internet. Existem diversas técnicas que permitem implementar a segurança em uma rede, como a utilização de criptografia, certificados digitais, firewalls e proxies. O nível de segurança a ser aplicado em uma rede está relacionado ao valor dos bens e informações que circulam pela rede. Quanto maior for esse valor, mais alto é o nível de segurança que deverá ser aplicado. Por outro lado, quanto mais alto o nível de segurança, maior o custo da rede.
■ Padronização
A rápida evolução das redes de computadores leva, em determinados momentos, ao surgimento de diversas tecnologias para resolver um mesmo problema e, geralmente, incompatíveis entre si. Por exemplo, diversas tecnologias foram desenvolvidas ou adaptadas para a implementação de redes locais, como Token Ring, Token Bus, ATM LAN, 100VG-AnyLAN, porém a tecnologia Ethernet tornou-se o padrão utilizado pela maioria das empresas. Outro exemplo de padrão bemsucedido é o TCP/IP, utilizado no modelo Internet e adotado pela grande maioria do mercado. Quando uma padronização é amplamente aceita, um número maior de empresas passa a fornecer produtos com base nesses padrões, e, consequentemente, o custo da tecnologia tende a diminuir com o tempo. Além disso, existem um número maior de profissionais capacitados no mercado e, principalmente, a certeza de que o padrão continuará a ser desenvolvido, garantindo o investimento realizado. Por exemplo, o padrão Ethernet, quando foi lançado, suportava a velocidade 10 Mbps, depois evoluiu para 100 Mbps, 1 Gbps, 10 Gbps e, futuramente, 100 Gbps. Existem diversos órgãos de padronização, como ISO, IEEE e ABNT, que serão apresentados no Capítulo 2 – Modelo de Camadas.
1.7 Redes Locais, Metropolitanas e Distribuídas As redes de computadores podem ser classificadas conforme a distância física entre os dispositivos que compõem a rede. Geograficamente, as
redes podem ser divididas em redes pessoais, redes locais, redes metropolitanas e redes distribuídas (Fig. 1.5). Uma rede pessoal ou PAN (Personal Area Network) interliga dispositivos de uma pessoa como, por exemplo, um desktop, laptop, impressora, smartfone, tablet e TV, permitindo a transferência de arquivos, como fotos, filmes e músicas digitais e sincronização de agenda. Uma PAN permite conexões de poucos metros e, geralmente, utiliza os padrões USB (Universal Serial Bus) e FireWire.
F IGURA 1.5
Dispersão geográfica.
Em uma rede local ou LAN (Local Area Network), os dispositivos estão próximos fisicamente, geralmente cobrindo pequenas distâncias, como, por exemplo, estações em uma mesma sala, os andares de um prédio ou prédios de um campus. Como as distâncias são pequenas, as LAN oferecem taxas de transmissão elevadas, da ordem de Mbps e Gbps, e baixas taxas de erros. Outra característica das redes locais é que a posse dos canais de comunicação e dos dispositivos da rede é da própria instituição. As redes locais são padronizadas internacionalmente pelo
IEEE 802, e o melhor exemplo de padrão é o Ethernet, que pode ser encontrado na grande maioria das instituições e até mesmo em residências. As redes Ethernet oferecem grande escalabilidade, baixo custo, e podem alcançar taxas de transmissão de até 10 Gbps. A necessidade de interligar redes locais dentro de uma mesma cidade provocou o surgimento das redes metropolitanas, ou MAN (Metropolitan Area Network). As MAN oferecem altas taxas de transmissão, baixas taxas de erros, e geralmente os canais de comunicação pertencem a uma empresa de telecomunicações que aluga o serviço ao mercado (Fig. 1.6). As redes metropolitanas são padronizadas internacionalmente pelo IEEE 802 e ANSI, e os padrões mais conhecidos para a construção de MAN são o DQDB (Distributed Queue Dual Bus) e o FDDI (Fiber Distributed Data Interface). Outro exemplo de rede metropolitana é o sistema utilizado nas TVs a cabo.
F IGURA 1.6
Rede metropolitana.
As redes distribuídas ou WAN (Wide Area Network) permitem interligar dispositivos geograficamente distantes, ou seja, sistemas localizados em diferentes cidades, estados ou países. A velocidade de transmissão de uma WAN é, normalmente, da ordem de Kbps ou Mbps, porém é possível chegar a taxas de Gbps. Normalmente, os canais de comunicação utilizados para a interconexão de redes são alugados de alguma empresa
de telecomunicações. Geralmente, as redes distribuídas são formadas por redes locais e metropolitanas interconectadas, e não por dispositivos isolados. O melhor exemplo de WAN é a Internet, que congrega redes espalhadas por diversas localidades geograficamente distribuídas (Fig. 1.7).
F IGURA 1.7
Rede distribuída.
Um grande problema da classificação de redes utilizando a dispersão geográfica é considerar a distância como parâmetro. Em função da evolução tecnológica, a dispersão geográfica pode ser um diferencial pouco preciso. Por exemplo, as redes locais Ethernet, quando surgiram, permitiam somente pequenas distâncias e utilizavam apenas cabos coaxiais. Com a evolução, as redes locais Ethernet passaram a utilizar cabos de fibra ótica, o que veio a permitir distâncias maiores, semelhantes às redes metropolitanas.
1.8 Redes Cabeadas e Sem Fio Nas redes cabeadas existe algum tipo de cabo ligando os dispositivos, como, por exemplo, o par trançado, cabo coaxial ou fibra ótica. Nas redes sem fio (wireless) não existe uma conexão física entre os dispositivos, e a comunicação pode ser feita utilizando ar, água ou vácuo. Existem diversas
formas de comunicação sem fio que variam conforme o espectro de frequências utilizado como rádio, micro-ondas, satélite e infravermelho. As grandes vantagens das redes sem fio são o baixo custo, a facilidade de conexão dos usuários e a mobilidade dos dispositivos. Dependendo da frequência utilizada, não existe o custo com a manutenção do canal de comunicação. De maneira geral, as redes sem fio são mais suscetíveis a problemas de interferência, ocasionando taxas de erro maiores se comparadas com as redes cabeadas. Em função disso, as velocidades de transmissão nas redes sem fio são menores. Outro problema é a segurança. Como os sinais podem ser captados por outras antenas, é possível que as informações transmitidas possam ser capturadas por pessoas não autorizadas. As redes sem fio são padronizadas pelo IEEE 802, e os padrões mais conhecidos são o IEEE 802.11 para redes locais sem fio (Wireless Local Area Network – WLAN), o IEEE 802.15 para redes pessoais sem fio (Wireless Personal Area Network – WPAN), o IEEE 802.16 para redes metropolitanas sem fio (Wireless Metropolitan Area Network – WMAN) e o IEEE 802.20 para redes distribuídas sem fio (Wireless Wide Area Network – WWAN).
1.9 Redes Ponto a Ponto e Multiponto Às diversas formas de conexão física dos dispositivos de uma rede chamamos topologias. As topologias de rede podem ser classificadas como ponto a ponto ou multiponto. Nas redes ponto a ponto existe uma conexão dedicada ligando dois dispositivos, ou seja, não existe compartilhamento físico do canal de comunicação. As conexões ponto a ponto são, geralmente, utilizadas em redes distribuídas, porém as redes locais atuais também utilizam esse tipo de conexão. A Fig. 1.8 apresenta exemplos de topologias formadas por conexões ponto a ponto.
F IGURA 1.8
Redes ponto a ponto.
Nas redes multiponto o canal de comunicação é compartilhado por todos os dispositivos. Como o meio é compartilhado, deve existir algum mecanismo que regule o dispositivo que poderá transmitir em determinado instante, de forma a evitar que dois ou mais dispositivos transmitam ao mesmo tempo. Esse mecanismo é chamado de protocolo de controle de acesso ao meio e será abordado no Capítulo 5 – Arquitetura de Redes Locais. As conexões multiponto são utilizadas em redes locais e metropolitanas, especialmente nas redes sem fio. A Fig. 1.9 apresenta exemplos de topologias formadas por conexões multiponto. Os diferentes tipos de topologias são apresentados em detalhes no Capítulo 3 – Camada Física.
F IGURA 1.9
Redes multipondo.
1.10 Redes Comutadas por Circuitos e Comutadas por Pacotes Na Fig. 1.10, os dispositivos A e B estão conectados ponto a ponto, ou seja, existe uma ligação dedicada entre os dois dispositivos. Dependendo da distância, esse tipo de conexão não é viável financeiramente, e na maioria dos casos os dispositivos não estão conectados diretamente como apresentado. Essa situação pode ser comparada a uma malha rodoviária, formada por várias estradas que ligam as cidades. Não existe uma estrada única ligando cada cidade, mas um conjunto de estradas, que variam em número de pistas, distância, velocidade máxima e pedágios.
F IGURA 1.10
Conexão ponto a ponto.
Nas redes de computadores, o transmissor e o receptor são conectados a uma rede de interconexão ou inter-rede, responsável por receber o dado na origem e reencaminhá-lo até alcançar o destino. Ao contrário da
conexão ponto a ponto, que é dedicada aos dispositivos A e B, a rede de interconexão pode ser compartilhada entre diversos dispositivos que podem compartilhar o custo da rede. Internamente, a rede de interconexão é formada por dispositivos especializados como switches e roteadores, que permitem a comunicação entre a origem e o destino (Fig. 1.11).
F IGURA 1.11
Rede de interconexão ou inter-rede.
Na Fig. 1.12, como os dispositivos A e B não estão ligados ponto a ponto, é necessário que a mensagem saia de A e seja reencaminhada por dispositivos intermediários, também chamados comutadores, até alcançar B. Por exemplo, o dispositivo A está conectado ao comutador D, e o dispositivo B, ao comutador H. Para que A se comunique com B, a mensagem deverá ser enviada para D e reencaminhada, utilizando, por exemplo, os comutadores D-G-H. A mensagem, ao chegar ao comutador H, será entregue para B. O processo de reencaminhamento descrito chama-se comutação. A técnica de comutação é a base para a implementação de redes distribuídas como o sistema de telefonia e a Internet. A literatura aborda, basicamente, dois tipos de comutação que são utilizadas em redes de computadores: comutação por circuito e comutação por pacotes. Na comutação por circuito é estabelecido um caminho interligando a origem ao destino, chamado de circuito (Fig. 1.13). O circuito é criado antes do início do envio da mensagem e permanece dedicado até o final da transmissão. A comutação por circuito pode ser comparada a uma ligação telefônica entre duas pessoas A e B. Inicialmente, A disca para B, e, caso haja um caminho disponível ligando os dois aparelhos, o telefone de B irá tocar. Caso contrário, A receberá um aviso de que o telefone desejado está ocupado. Ao atender o telefone, B estabelece o circuito e a conversa com A pode ser iniciada. O circuito permanecerá alocado
enquanto a ligação não for encerrada por uma das partes. Caso o dispositivo C queira se comunicar com B, não será possível, pois o circuito G-H-B já está alocado.
F IGURA 1.12
Comutação.
F IGURA 1.13
Comutação por circuito.
Na comutação por pacotes não existe um circuito dedicado ligando a origem ao destino para a transmissão da mensagem. Inicialmente, as mensagens são divididas em pedaços menores, chamados pacotes, e cada um recebe o endereço do dispositivo de destino, que pode ser um endereço IP. Os pacotes são, então, encaminhados pelos dispositivos intermediários, também chamados de roteadores, de forma independente,
até chegarem ao destino. Por exemplo, na Fig. 1.14 a mensagem foi dividida em quatro pacotes, e cada um foi encaminhado por uma rota diferente em direção ao destino. Esse processo é chamado de roteamento. Nesse caso, o dispositivo C poderá comunicar-se com B ao mesmo tempo que A, compartilhando a utilização da rede de interconexão.
F IGURA 1.14
Comutação por pacote.
A comutação por pacotes é a base para a implementação das redes de computadores modernas, como, por exemplo, a Internet, redes ATM (Asynchronous Transfer Mode) e Frame Relay. As redes que utilizam essa filosofia são chamadas de redes de pacotes. Esse assunto será abordado em detalhes no Capítulo 6 – Camada de Rede.
1.11 Modelo Cliente-Servidor No modelo cliente-servidor existem as figuras do cliente e do servidor. O cliente é o dispositivo que solicita um serviço, enquanto o servidor recebe, processa e responde às solicitações do cliente (Fig. 1.15). Um servidor pode ser responsável por um ou mais serviços, como, por exemplo, serviços de arquivo e impressão, serviços de comunicação, serviços Web e serviços de banco de dados. Como os servidores concentram todas as solicitações, esses dispositivos devem ter características de hardware e software que permitam oferecer requisitos mínimos de disponibilidade e desempenho, o que influencia no parâmetro custo. O modelo cliente-
servidor é largamente utilizado em redes locais em que questões de desempenho e administração centralizada são importantes.
F IGURA 1.15
Modelo cliente-servidor.
A Internet é um bom exemplo de rede cliente-servidor, em que diversos serviços são oferecidos por dispositivos especializados como servidores de correio eletrônico e Web. Por exemplo, o serviço Web é oferecido por servidores como o Apache e Microsoft IIS. O cliente desse serviço é o browser, que pode ser, por exemplo, o Mozilla Firefox ou o Microsoft Internet Explorer. O browser solicita uma página ao servidor Web, que processa o pedido e retorna a página solicitada. A página é então exibida pelo browser na tela do usuário (Fig. 1.16).
F IGURA 1.16
Serviço Web.
Em redes cliente-servidor, caso um servidor tenha problemas, os clientes não terão acesso aos serviços oferecidos por esse servidor. Para evitar problemas de disponibilidade, os serviços podem ser oferecidos por vários servidores, criando um esquema de redundância. A facilidade de agregar servidores garante ao modelo escalabilidade e desempenho. Por exemplo, se um servidor Web estiver sobrecarregado, basta agregar novos servidores e dividir a carga de processamento. Esse esquema de
agregação de servidores, conhecido como cluster, é muito utilizado atualmente em diversos serviços oferecidos em uma rede [Pfister, 1998]. Outra forma de oferecer os serviços de rede é utilizar o modelo peer-topeer. No modelo peer-to-peer, ou P2P, os serviços são oferecidos por qualquer dispositivo da rede de maneira igual, não existindo a figura de um servidor especializado. As redes P2P são simples de instalar, e, como não existe a figura do servidor, oferecem baixo custo, enorme escalabilidade e disponibilidade. Por outro lado, as redes peer-to-peer tradicionais oferecem baixo desempenho e administração descentralizada, o que torna o gerenciamento da rede mais difícil. As redes P2P podem ser utilizadas em pequenas redes locais, em que questões de desempenho não são importantes. Atualmente, o modelo peer-to-peer vem sendo utilizado por usuários da Internet para o compartilhamento de arquivos como de música e vídeo. Independentemente do tipo da rede, é possível usufruir os benefícios de ambas as filosofias integrando serviços cliente-servidor e peer-to-peer. Informações adicionais sobre o modelo cliente-servidor, consultar [Orfani, 1999].
1.12 Serviços Oferecidos pelas Redes Os principais serviços oferecidos pelas redes de computadores são a troca de informações e o compartilhamento de recursos de hardware e software. Nesta seção são detalhados esses serviços, em particular os oferecidos pela Internet. A maioria dos serviços oferecidos utiliza o modelo cliente-servidor, apresentado anteriormente. Os protocolos utilizados para a implementação dos serviços serão estudados no Capítulo 8 – Camada de Aplicação.
■ Serviço Web
O serviço Web ou WWW (World Wide Web) é basicamente um conjunto de documentos ou páginas que contém textos, imagens, áudio ou vídeo, inter-relacionados. As páginas são interconectadas através de links, permitindo que o usuário navegue entre os diversos documentos de forma bastante intuitiva utilizando um browser. O esquema de links que relacionam os documentos forma o que é conhecido como hipertexto. O principal protocolo responsável por oferecer o serviço Web é o HTTP. Sua função é transportar uma página armazenada em um servidor Web
até o browser, também chamado de navegador, para ser exibida. Exemplos de servidores podem ser o Apache e o Microsoft IIS, e de browsers, o Mozilla Firefox e o Microsoft Internet Explorer.
■ Correio eletrônico
O serviço de correio eletrônico é muito semelhante a uma carta que enviamos pelo correio. Uma mensagem de correio eletrônico ou, simplesmente, e-mail (electronic mail) deve conter, basicamente, o endereço do destinatário, o endereço do remetente e a mensagem propriamente dita. O e-mail permite que uma mensagem seja enviada e recebida rapidamente em qualquer localidade a um custo muito baixo. Inicialmente, o e-mail estava limitado ao envio de mensagens no formato texto. Atualmente, o e-mail pode conter, além de texto, conteúdo multimídia. No modelo Internet, existem diversos protocolos relacionados ao envio e recebimento de e-mail, como SMTP, POP, MIME e IMAPI. O serviço utiliza um software cliente, que permite escrever, enviar, receber e ler e emails, e um servidor que permite armazenar e encaminhar as mensagens dos usuários. Exemplos de clientes de e-mail podem ser o Mozilla Thunderbird, o Qualcomm Eudora e o Microsoft Outlook, e de servidores, o Microsoft Exchange Server e o Sendmail.
■ Transferência de arquivos
O serviço de transferência de arquivos permite que um ou mais arquivos sejam copiados pela rede. Esse serviço, inicialmente, permitia que o usuário copiasse arquivos texto e executáveis. Atualmente, existe uma infinidade de tipos de arquivos que podem ser copiados pela rede, como fotos, vídeos e músicas. O processo de transferir arquivos do servidor para o cliente é chamado de download, enquanto o processo inverso, ou seja, do cliente para o servidor, é chamado de upload. No modelo Internet, o protocolo responsável por esse serviço é o FTP. Os sistemas operacionais que suportam TCP/IP possuem um utilitário, também chamado FTP, que funciona como cliente e permite a utilização do serviço. A maioria dos sistemas operacionais oferece a possibilidade de configuração de um servidor FTP. No exemplo a seguir, o cliente FTP está conectando ao servidor FTP do Departamento de Informática da PUC-Rio. ftp> open ftp.inf.puc-rio.br Connected to obaluae.inf.puc-rio.br.
220 Bem Vindo ao Servidor do LAB-POS / DI / PUC-Rio. User (obaluae.inf.puc-rio.br:(none)): anonymous 331 Please specify the password. Password: 230 Login successful. Have fun.
■ Terminal remoto
O serviço de terminal remoto permite que um usuário conectado a um sistema tenha acesso a outro sistema utilizando a rede. O usuário remoto pode submeter comandos e receber respostas como se estivesse conectado localmente ao sistema. Por exemplo, suponha que um pesquisador precise executar um programa em um supercomputador, porém a sua instituição não possua um computador desse tipo. Sem o serviço de terminal remoto, o pesquisador teria que se deslocar até outra instituição que possuísse os recursos necessários para a execução do programa. Utilizando o serviço, o pesquisador poderá conectar-se remotamente a uma instituição que possua um supercomputador, submeter seu programa e consultar os resultados. O serviço de terminal remoto também é muito utilizado por profissionais da área de redes que precisam administrar dispositivos que estão dispersos geograficamente. No modelo Internet, o protocolo responsável por esse serviço é o Telnet. Os sistemas operacionais que oferecem suporte ao TCP/IP possuem um utilitário, também chamado Telnet, que funciona como cliente e permite a utilização do serviço. De maneira geral, os utilitários que permitem implementar o serviço de terminal remoto são chamados de emuladores de terminal. Um emulador bastante conhecido e utilizado pelo mercado é o putty, que pode ser obtido gratuitamente na Internet. Os emuladores mais sofisticados permitem o acesso ao sistema remoto utilizando uma interface gráfica como se estivesse conectado localmente ao sistema. A maioria dos sistemas operacionais oferece a possibilidade de configuração de um servidor Telnet.
■ Gerência remota
O serviço de gerência remota permite que o administrador da rede possa consultar informações de um dispositivo de rede, alterar sua configuração remotamente e corrigir possíveis problemas. Além de ser útil para a correção de erros, a gerência remota permite analisar o desempenho da rede a partir dos dados coletadas. Esse serviço vem ganhando importância à medida que crescem o número e a diversidade dos dispositivos de redes.
No modelo Internet, o protocolo SNMP implementa o serviço de gerenciamento remoto. Para automatizar e simplificar o gerenciamento de redes existem softwares voltados especificamente para essa função, como o HP OpenView, o IBM Tivoli NetView e o Spectrum da CA.
■ Serviços de áudio e videoconferência
Os serviços de áudio e vídeo envolvem aplicações como telefonia, conferência, rádio, TV, educação a distância, telemedicina, que utilizem a rede para a transmissão de áudio e/ou vídeo. Existem diversos protocolos necessários para a implementação desse serviço, pois ele envolve codificação, compactação, transmissão e controle. No modelo Internet, os serviços de áudio e vídeo são padronizados pelos protocolos H.323, SIP, RTP, RTCP e RTSP, entre outros. Alguns produtos que suportam esses padrões são o Microsoft Netmeeting, o Real MediaPlayer e o Apple QuickTime.
■ Serviços de nomes
Cada dispositivo em uma rede possui, geralmente, um nome e um número que o identificam unicamente. Internamente, a rede lida apenas com números, e os nomes dos dispositivos têm pouca importância. Por outro lado, os usuários preferem utilizar o nome do dispositivo, por ser mais fácil de memorizar. O serviço de nomes permite traduzir nomes de dispositivos para seus respectivos números e vice-versa. No modelo Internet, o serviço de nomes é implementado pelo protocolo DNS. Quando, por exemplo, utilizamos o endereço www.ufrj.br, esse nome é traduzido para o número 146.164.2.32, que representa o endereço IP do servidor Web da Universidade Federal do Rio de Janeiro. Além de ser mais fácil de memorizar, o serviço de nomes oferece maior flexibilidade, pois o endereço IP do servidor pode ser alterado sem afetar o nome.
■ Serviços de arquivos e impressão
O serviço de arquivos permite que um usuário tenha acesso a arquivos e diretórios que estão fisicamente armazenados em computadores conectados à rede. Apesar da semelhança com o serviço de transferência de arquivos, existe um grau maior de transparência para os usuários. Depois de configurado, um diretório remoto parece fazer parte do sistema de arquivos local e pode ser manipulado como tal. O serviço de impressão
permite que um usuário possa utilizar impressoras remotas, conectadas a outros computadores ou diretamente à rede (Fig. 1.17).
F IGURA 1.17
Serviço de impressão.
Os serviços de arquivos e impressão estão disponíveis na maioria dos sistemas operacionais, e são muito implementados em redes locais. Sistemas que oferecem serviços desse tipo são chamados de sistemas operacionais de rede ou SOR. Atualmente, os SOR mais utilizados com esse fim são o Unix, especialmente as versões do Linux, e o Microsoft Windows.
■ Comércio Eletrônico
O comércio eletrônico permite que uma infinidade de negócios seja realizada através da rede, especialmente pela Internet. Existem diferentes formas de comércio eletrônico, como negócios entre empresas e seus consumidores (Business to Consumer – B2C) e entre as próprias empresas (Business to Business – B2B). O comércio eletrônico permite a comercialização de bens como, por exemplo, música, filmes, livros, eletrodomésticos e software. Além disso, é possível oferecer outros serviços como leilões, serviços bancários e serviços de busca.
1.13 Histórico
A história das redes de computadores está intimamente relacionada à evolução dos sistemas computacionais e das telecomunicações. Os primeiros computadores, surgidos na década de 1940 e comercializados na década seguinte, eram máquinas caras e de difícil programação. Apenas grandes corporações e centros de pesquisas tinham condições de adquirir e manter tais sistemas. Com o avanço tecnológico, os computadores ficaram mais acessíveis, permitindo que empresas e universidades tivessem seus próprios sistemas computacionais. Além disso, os computadores tornaram-se menores, mais rápidos, confiáveis e de fácil interação. A evolução das telecomunicações tem papel fundamental no surgimento e na evolução das redes de computadores. Avanços no sistema de telefonia e a comunicação utilizando satélites, rádio, micro-ondas, fibras óticas e telefonia celular permitiram ampliar a cobertura geográfica das redes em escala global, reduzir o custo das conexões, aumentar as taxas de transmissão e, ao mesmo tempo, reduzir as taxas de erro e oferecer diferentes possibilidades de conexão. A partir da disseminação do uso dos computadores e dos avanços das telecomunicações, foi possível a conexão dos sistemas e, consequentemente, a troca de informações e o compartilhamento dos recursos computacionais. Nesta seção é apresentada a evolução das redes de computadores, especialmente da ARPANET, que viria a se tornar a Internet.
■ Décadas de 1950 e 1960
Em meados da década de 1950, a IBM desenvolveu para a Força Aérea dos Estados Unidos da América (EUA) um sistema para detecção de ataques aéreos, conhecido como SAGE (Semi-Automatic Ground Environment). O sistema possuía um computador central conectado a dispositivos remotos que enviavam dados em tempo real sobre possíveis ataques. O primeiro modem foi desenvolvido para o projeto SAGE em 1958. A partir da experiência com o SAGE, a IBM, em 1961, desenvolveu a primeira rede de computadores com fins comerciais para o sistema de reservas de passagens aéreas da American Airlines. O SABRE (SemiAutomatic Business Related Environment), como foi chamado, utilizava modems e linhas telefônicas convencionais para a conexão de terminais remotos a um sistema central com taxas de transmissão de 1200 bps. O sistema SABRE ainda está em operação.
Durante a década de 1960, foram desenvolvidos diversos sistemas multiprogramáveis que permitiam que o sistema fosse compartilhado por vários usuários simultaneamente. Inicialmente, os usuários interagiam com o sistema através de cartões perfurados e, posteriormente, utilizando terminais. Com as redes de computadores, foi possível compartilhar os sistemas independentemente da localização física, criando o conceito de terminal remoto. Entre os sistemas multiprogramáveis desenvolvidos nessa época destaca-se o Multics, que mais tarde se tornaria o Unix. Para fazer frente às inovações tecnológicas desenvolvidas pela antiga União Soviética, o governo dos EUA criou uma agência com a missão de desenvolver projetos de vanguarda, chamada ARPA (Advanced Research Projects Agency) em 1957. Um desses projetos era o desenvolvimento de uma rede de comunicação para interligar os diferentes computadores das instituições de pesquisa dispersas geograficamente. Mas apenas em 1966, com a ida de Robert Taylor para o ARPA, e, posteriormente, de Lawrence Roberts em 1967, a ideia de construir a ARPANET foi, finalmente, proposta, utilizando o conceito de comutação por pacotes. Na comutação por pacotes, uma mensagem é dividida em pedaços menores, chamados pacotes, e encaminhados pela rede de interconexão de forma independente, podendo tomar caminhos diferentes entre a origem e o destino. Essa ideia permite que os diversos dispositivos compartilhem os mesmos canais de comunicação, o que não acontecia na comutação por circuitos, adotada pelas empresas de telecomunicações. Os primeiros estudos sobre a utilização de redes de pacotes aconteceram nos EUA por Paul Baran, do RAND, e Leonard Kleinrock, do MIT (Massachusetts Institute of Technology). Paralelamente, Donald Davies, do NPL (National Physical Laboratory), trabalhava em um projeto semelhante na Inglaterra. A ARPANET seria formada por computadores, chamados hosts, conectados a linhas telefônicas de 56 Kbps através de um dispositivo denominado IMP (Interface Message Processor), responsável por encaminhar os pacotes pela rede de interconexão, semelhantemente aos roteadores atuais. Em 1969, o primeiro IMP foi instalado na Universidade da Califórnia em Los Angeles (UCLA), seguido pelo Instituto de Pesquisa de Stanford (SRI), Universidade da Califórnia em Santa Bárbara e Universidade de Utah, totalizando quatro pontos. Estava criado o embrião da atual Internet. Nesse mesmo ano, foi publicada a primeira RFC (Request for Comments), que passou a ser a forma de especificar os padrões a serem seguidos no modelo Internet.
No Brasil, em 1965, foi constituída a EMBRATEL (Empresa Brasileira de Telecomunicações), empresa estatal responsável por assumir o monopólio das telecomunicações no país. A estatal seria privatizada em 1998.
■ Década de 1970
Durante a década de 1970 surgiram diversas iniciativas com base no conceito de redes pacotes. Muitas empresas, principalmente fabricantes de computadores, criaram suas próprias arquiteturas de rede, como a IBM com o SNA (System Network Architecture), a Digital com o DECnet e a Xerox com o XNS (Xerox Network Services). Além de arquiteturas proprietárias, padrões abertos também foram desenvolvidos, como o protocolo CCITT X.25 para redes públicas de pacotes em 1976. Diversas redes de pacotes foram implantadas baseadas no protocolo X.25, como Telenet (EUA), Datapac (Canadá), Transpac (França), PSS (Inglaterra) e RENPAC (Brasil). Com a adoção do TCP/IP como padrão de redes, essas e outras iniciativas perderam importância ou, simplesmente, desapareceram. O primeiro protocolo utilizado na ARPANET para a comunicação entre dois hosts, o NCP (Network Control Protocol), foi finalizado em 1970 e permitiu que as primeiras aplicações fossem desenvolvidas [RFC-54]. Em 1972, Ray Tomlinson desenvolveu o primeiro software de correio eletrônico, simplificando a troca de informações entre os usuários da rede. O protocolo NCP possuía uma série de limitações que impediam o rápido crescimento da rede. Em 1974, Vinton Cerf e Robert Kahn apresentaram uma proposta de um novo protocolo, chamado TCP (Transmission Control Program), que incluía as funções da camada de rede e transporte em um único protocolo [Cerf, 1974]. Posteriormente, o TCP seria desmembrado em dois, gerando os protocolos TCP e IP (Internet Protocol), utilizados atualmente. Durante a década de 1970, a ARPANET alcançaria a marca de cerca de 200 hosts. Norman Abramson e seus colegas da Universidade do Havaí projetaram uma rede para conectar as diversas unidades da instituição espalhadas pelas ilhas do arquipélago em 1971. A ALOHANET, como foi chamada, era uma rede de pacotes que utilizava ondas de rádio e um esquema inovador para implementar o controle de acesso ao meio. No final de 1972, a rede ALOHANET foi conectada à ARPANET via satélite. Influenciado pelas ideias da ALOHANET, Robert Metcalfe, em 1973, apresentou as bases para o que viria a ser o protocolo Ethernet, utilizado atualmente pela grande maioria das redes locais [Abramson, 1985]. Em
1979, Metcalfe fundaria a 3Com para comercializar produtos com base no padrão Ethernet. No Brasil, em 1976, a EMBRATEL implantou os primeiros circuitos para a transmissão digital de dados, operando a velocidades de até 4800 bps. Posteriormente, esse serviço passou a se chamar TRANSDATA.
■ Década de 1980
Durante a década de 1980, a ARPANET cresceria de forma explosiva, dando um salto de 200 hosts para 160 mil hosts. Esse crescimento se deve a uma série de fatos, como a evolução dos microcomputadores e estações de trabalho e a evolução das redes locais, especialmente do protocolo Ethernet, padronizado em 1983. Nesse mesmo ano, o TCP/IP foi introduzido no Unix da Universidade de Berkeley, conhecido como BSD (Berkeley Software Distribution), e distribuído para inúmeras instituições de ensino. Além disso, o governo dos EUA criou uma série de incentivos que facilitavam a qualquer instituição de ensino conectar-se à ARPANET. Em 1o de janeiro de 1983 ocorre a transição de toda a rede do protocolo NCP para o TCP/IP, marcando uma nova fase para a ARPANET [RFC801]. Com o crescimento da rede, era necessário um novo esquema de gerenciamento de nomes e endereços. Para esse problema, Paul Mockapetris apresentou o DNS (Domain Name System) como mecanismo de resolução de nomes. Nesse mesmo ano, a ARPANET seria dividida em duas: a MILNET, com fins militares, e a ARPANET, com fins de pesquisa. Ainda em 1983 foi criado o IAB (Internet Activities Board). Em 1984, a ISO (International Organization for Standardization) produziu uma recomendação para a conexão de sistemas heterogêneos que ficou conhecida como Modelo de Referência para a Interconexão de Sistemas Abertos ou, simplesmente, Modelo OSI (Open System Interconnection). Apesar da aceitação inicial, o Modelo OSI sofreu grande concorrência do modelo TCP/IP e praticamente desapareceu na década seguinte, servindo, hoje, apenas para fins didáticos. Nesse mesmo ano, seria criada a Cisco Systems, que, anos mais tarde, se tornaria uma das maiores empresas de produtos de rede. Durante a década de 1980, duas redes que não utilizavam TCP/IP ganharam popularidade no mundo, inclusive no Brasil: a USENET e a BITNET. A USENET (User Network) interligava estações Unix utilizando linhas discadas para a troca de mensagens agrupadas por assuntos. A BITNET (Because It´s Time Network) interligava estações via modem para troca de e-mails, transferência de arquivos e mensagens instantâneas.
Posteriormente, ambas as redes tiveram seus tráfegos aceitos na ARPANET, acelerando o crescimento da rede. Em 1986, nos EUA, a NSF (National Science Foundation) criou um programa chamado NSFNET que permitiria a qualquer instituição de ensino conectar-se à rede. O protocolo TCP/IP foi escolhido para suportar a nova rede, tornando simples a integração entre a NSFNET e outras redes TCP/IP. Com o crescimento da NSFNET, as instituições conectadas à ARPANET migraram para a nova rede. Em 1988, Robert Morris, Jr., um estudante de Ciência da Computação da Universidade de Cornell nos EUA, desenvolveu um programa que se autorreplicava (worm) e o executou na Internet. Em pouco tempo, diversos sistemas foram comprometidos, inclusive o próprio funcionamento da rede. No Brasil, a Embratel lançou em 1984 o serviço RENPAC, baseado no protocolo X.25. Em 1988, foi feita a primeira conexão da comunidade acadêmica com a BITNET, utilizando um circuito de 9600 bps entre o LNCC (Laboratório Nacional de Computação Científica) no Rio de Janeiro e a Universidade de Maryland nos EUA.
■ Década de 1990
No início da década de 1990, a grande maioria dos fabricantes de computadores e sistemas operacionais já oferecia o TCP/IP como protocolo de rede. Nessa década, o número de hosts deu um novo salto, saindo de 160 mil para mais de 56 milhões de hosts. Em 1996, é fundado nos EUA o consórcio Internet2, formado pela comunidade acadêmica e a iniciativa privada com o objetivo de desenvolver e implementar novas tecnologias para a Internet. Em 1991, o NSF elimina as restrições ao tráfego comercial na Internet e surgem os primeiros provedores de acesso (Internet Solution Provider – ISP). Os principais serviços utilizados pelos usuários da Internet eram o correio eletrônico, a transferência de arquivos, o terminal remoto e os serviços de notícias. Em 1992, no CERN, Tim Berners-Lee inventa o serviço Web, que viria a dar um novo impulso ao crescimento da Internet [Berners-Lee, 1992]. Em 1993, Marc Andreessen desenvolve o browser Mosaic, que, posteriormente, se tornaria o Netscape. Em 1995, o NSF retira-se definitivamente do papel de mantenedor da rede, entregando essa tarefa aos ISP. O serviço Web e a liberação do tráfego comercial fazem com que empresas de todos os portes passem a oferecer seus produtos e serviços na Internet. Durante a década de 1990, as redes locais com base na tecnologia Ethernet tornaram-se dominantes e, praticamente, eliminaram outras
iniciativas nessa área como o Token Ring. Nesse período, o Ethernet padrão (10 Mbps) evolui para o Fast Ethernet (100 Mbps) em 1995 e o Gigabit Ethernet em 1998. As redes locais sem fio ganham aceitação, principalmente após o lançamento dos padrões IEEE 802.11 (WLAN), IEEE 802.15 (WPAN) e IEEE 802.16 (WMAN). A necessidade de redes mais rápidas e que oferecessem qualidade na transmissão de áudio e vídeo levou ao desenvolvimento dos protocolos Frame Relay e ATM, em meados da década de 1980. Após a padronização de ambas as iniciativas pelo ITU, nos anos 1990, os protocolos ganharam ampla aceitação como solução para redes distribuídas de alta velocidade, e posteriormente passariam a oferecer suporte às redes IP. No Brasil, em 1991, é feito o primeiro acesso acadêmico à Internet, conectando a FAPESP (Fundo de Amparo à Pesquisa do Estado de São Paulo) e a NSFNET, utilizando um circuito de 4800 bps. No ano seguinte, é criada a Rede Rio, interligando, inicialmente, PUC-Rio, LNCC e Universidade Federal do Rio de Janeiro à Internet. Em 1993, a RNP (Rede Nacional de Ensino e Pesquisa) criou uma rede interligando onze capitais, permitindo o acesso de diversas instituições à Internet. No ano seguinte, a Embratel iniciou o serviço de acesso à Internet discado com circuitos de até 14400 bps. Em 1995, foi instituído o Comitê Gestor da Internet no Brasil, com a missão de organizar e supervisionar as funções básicas de infraestrutura para serviços Internet, bem como planejar e encaminhar a sua evolução. No ano seguinte, surgiram os primeiros provedores de acesso à Internet.
■ Década de 2000
No final de 1999, o número de hosts da Internet alcançava mais de 56 milhões e, em 2007, algo em torno de 433 milhões de hosts (Tabela 1.4). A evolução da rede trouxe também novos problemas. Com o aumento do número de usuários, os endereços de rede estão se esgotando. A transmissão de áudio e vídeo, por exemplo, exige mecanismos que garantam a sua qualidade. O comércio eletrônico exige que as transações sejam feitas de maneira segura. Diversas iniciativas vêm sendo feitas para resolver esses e outros problemas, com destaque para o protocolo IPv6, que irá substituir o IP atual [RFC-1752]. Tabela 1.4
Evolução da Internet [RFC-2235] e [ISC, 2012]
Ano
Número de hosts
1969
4
1981
213
1989
159.000
1999
56.218.000
2009
625.226.456
2012
908.585.739
O protocolo Ethernet continuou evoluindo, e em 2002 foi lançado o 10 Gigabit Ethernet. Com isso o Ethernet deixa de ser apenas um protocolo para redes locais e passa a competir com outros protocolos para redes metropolitanas e distribuídas. Nos próximos anos é aguardado o padrão 100 Gigabit Ethernet. Tradicionalmente, o acesso à Internet por usuários domésticos e pequenas empresas estava limitado a conexões discadas de baixa velocidade. Com o avanço das telecomunicações, o acesso à Internet pôde ser feito utilizando conexões em banda larga, como, por exemplo, ADSL e cable modem. Com o aumento das taxas de transmissão, houve uma mudança no tipo de informação que circulava na rede. Se no passado apenas mensagens do tipo texto circulavam pela rede, vemos hoje uma enorme variedade de mídias sendo utilizada, como imagens, áudio e vídeo. A possibilidade de suporte de multimídias nos leva a uma convergência de serviços, permitindo, por exemplo, que a telefonia convencional possa ser incorporada ao tráfego de dados, como nos serviços de voz sobre IP. No Brasil, em 2000 foi lançada a RNP2, com maior capacidade de transmissão, e em 2001 a rede da RNP passa a trocar dados com a Internet2, com um circuito de 45 Mbps, possibilitando a interação com a comunidade científica internacional através de uma rede de alta velocidade. Para informações adicionais sobre a evolução dos sistemas computacionais e das telecomunicações, consultar [Machado, 2013] e [Joel, 2002], respectivamente. A história da Internet, inclusive no Brasil, é abordada em detalhes em [Carvalho, 2006].
Exercícios Questões de múltipla escolha 1 Qual item a seguir não é um conceito ligado às redes de computadores? A. Transmissor B. Interface C. Receptor D. Canal de comunicação E. Processador 2 Quanto tempo levaria para realizar o download de arquivo de 50 MB em uma rede com taxa de transmissão de 100 Mbps, considerando que a taxa de transmissão é constante? A. 4 segundos B. 5 minutos C. 4,19 segundos D. 4 minutos E. 5 segundos 3 Qual destes itens não é um tipo de rede? A. Rede distribuída B. Rede metropolitana C. Redes cabeadas e sem fio D. Rede local E. Redes fortemente acopladas 4 Quais dos itens a seguir são parâmetros para avaliação de redes de computadores? A. Padronização B. Disponibilidade C. Desempenho D. Escalabilidade E. Segurança F. Todas as opções 5 Qual destes serviços não está relacionado às redes de computadores? A. Terminal remoto B. Serviço de memória virtual C. Gerência remota D. Serviços de nomes E. Serviços de arquivos e impressão 6 Quais as camadas do modelo de cinco camadas, iniciando pela camada mais próxima do meio de transmissão? A. Física, enlace, rede, transmissão e aplicação B. Física, enlace, rede, transporte e aplicação C. Aplicação, transporte, rede, enlace e física
D. Enlace, física, rede, transporte e aplicação E. Física, enlace, rede, transporte e apresentação 7 Qual destas opções não é um motivador para as redes de computadores? A. Compartilhamento de recursos de hardware B. Troca de informações C. Compartilhamento de informações D. Aumento da segurança das informações E. Compartilhamento de recursos de software 8 Qual destes termos melhor define a frase “regras predefinidas que devem ser seguidas pelos dispositivos para garantir que a comunicação ocorra com sucesso”? A. Transmissor ou receptor B. Canal de comunicação C. Interface D. Modelo de camadas E. Protocolo 9 Qual dos termos a seguir melhor define a frase “o dispositivo de origem solicita um serviço ao dispositivo de destino, que processa o pedido e retorna a solicitação para a origem”? A. Protocolo B. Canal de comunicação C. Interface D. Modelo cliente-servidor E. Modelo de camadas 10 Qual é o protocolo responsável pelo serviço Web? A. SMTP B. Telnet C. FTP D. SNMP E. HTTP 11 Qual é o protocolo responsável pelo serviço de correio? A. Telnet B. FTP C. HTTP D. SMTP E. SNMP 12 Qual é o protocolo responsável pelo serviço de transferência de arquivo? A. FTP B. HTTP C. SMTP D. Telnet E. SNMP
13 Qual é o protocolo responsável pelo serviço de acesso remoto? A. SMTP B. Telnet C. FTP D. SNMP E. HTTP 14 Qual é o protocolo responsável pelo serviço de gerência remota? A. Telnet B. SMTP C. SNMP D. FTP E. HTTP 15 [ENADE-ADS-Q3, 2011] “A cibercultura pode ser vista como herdeira legítima (embora distante) do projeto progressista dos filósofos do século XVII. De fato, ela valoriza a participação das pessoas em comunidades de debate e argumentação. Na linha reta das morais da igualdade, ela incentiva uma forma de reciprocidade essencial nas relações humanas. Desenvolveu-se a partir de uma prática assídua de trocas de informações e conhecimentos, coisa que os filósofos do Iluminismo viam como principal motor do progresso. (...) A cibercultura não seria pós-moderna, mas estaria inserida perfeitamente na continuidade dos ideais revolucionários e republicanos de liberdade, igualdade e fraternidade. A diferença é apenas que, na cibercultura, esses ‘valores’ se encarnam em dispositivos técnicos concretos. Na era das mídias eletrônicas, a igualdade se concretiza na possibilidade de cada um transmitir a todos; a liberdade toma forma nos softwares de codificação e no acesso a múltiplas comunidades virtuais, atravessando fronteiras, enquanto a fraternidade, finalmente, se traduz em interconexão mundial.” [LEVY, P. Revolução virtual. Folha de S. Paulo. Caderno Mais, 16 ago. 1998, p.3 (adaptado).] O desenvolvimento de redes de relacionamento por meio de computadores e a expansão da Internet abriram novas perspectivas para a cultura, a comunicação e a educação. De acordo com as ideias do texto citado, a cibercultura A. representa uma modalidade de cultura pós-moderna de liberdade de comunicação e ação. B. constituiu negação dos valores progressistas defendidos pelos filósofos do Iluminismo. C. banalizou a ciência ao disseminar o conhecimento nas redes sociais. D. valorizou o isolamento dos indivíduos pela produção de softwares de codificação. E. incorpora valores do Iluminismo ao favorecer o compartilhamento de informações e conhecimentos. 16 [ENADE-COMP-Q2, 2011] Exclusão digital é um conceito que diz respeito às extensas camadas sociais que ficaram à margem do fenômeno da sociedade da informação e da extensão das redes digitais. O problema da exclusão digital se apresenta como um dos maiores desafios dos dias de hoje, com implicações diretas e indiretas sobre os mais variados aspectos da sociedade contemporânea. Nessa nova sociedade, o conhecimento é essencial para aumentar a produtividade e a competição global. É fundamental para a invenção, para a inovação e para a geração de riqueza. As tecnologias de informação e comunicação (TICs) proveem uma fundação para a construção e aplicação do conhecimento nos setores públicos e privados. É nesse contexto que se aplica o termo exclusão digital, referente à falta de acesso às vantagens e aos benefícios trazidos por essas novas tecnologias, por motivos sociais, econômicos, políticos ou culturais. Considerando as ideias do texto citado, avalie as afirmações a seguir. I. Um mapeamento da exclusão digital no Brasil permite aos gestores de políticas públicas escolherem o público-alvo de possíveis ações de inclusão digital.
II. O uso das TICs pode cumprir um papel social, ao prover informações àqueles que tiveram esse direito negado ou negligenciado e, portanto, permitir maiores graus de mobilidade social e econômica. III. O direito à informação diferencia-se dos direitos sociais, uma vez que estes estão focados nas relações entre os indivíduos e aqueles, na relação entre o indivíduo e o conhecimento. IV. O maior problema de acesso digital no Brasil está na deficitária tecnologia existente em território nacional, muito aquém da disponível na maior parte dos países do primeiro mundo. É correto apenas o que se afirma em A. I e II B. II e IV C. III e IV D. I, II e III E. I, III e IV 17 [ENADE-COMP-Q15, 2008] Além do acesso a páginas html, a Internet tem sido usada cada vez mais para a cópia e troca de arquivos de músicas, filmes, jogos e programas. Muitos desses arquivos possuem direitos autorais e restrições de uso. Considerando o uso das redes ponto a ponto para a troca de arquivos de músicas, filmes, jogos e programas na Internet, a quem cabem a identificação e o cumprimento das restrições de uso associados a esses arquivos? A. aos programas de troca de arquivo B. aos usuários C. ao sistema operacional D. aos produtores dos arquivos E. aos equipamentos roteadores da Internet
Questões discursivas 1 Utilize o exemplo de uma aula tradicional, com professor e alunos, para exemplificar os conceitos de transmissor, receptor, canal de comunicação, interface, protocolo e serviço. 2 Quais os parâmetros utilizados para a avaliação de redes de computadores? 3 Uma conexão de 256 Kbps (bits por segundo) é equivalente a quantos Bps (bytes por segundo)? 4 Qual o tempo necessário para transferir um arquivo de 5 MB utilizando conexões de 28 Kbps, 52 Kbps, 64 Kbps, 128 Kbps, 512 Kbps, 1 Mbps, 10 Mbps, 100 Mbps e 1 Gbps? 5 Quais as principais diferenças entre as redes locais, metropolitanas e distribuídas? Apresente um exemplo para cada tipo de rede. 6 Suponha que você foi contratado para trabalhar em uma empresa de porte médio com algumas filiais que não utilize uma rede de computadores. Como você justificaria para a direção da empresa a implantação de uma rede interligando a matriz e suas filiais? 7 Justifique o uso doméstico da Internet, apresentando os serviços que podem ser utilizados. 8 Você foi contratado como consultor para um projeto que envolve a instalação de uma rede em um centro histórico em um curto espaço de tempo. Qual tipo de rede seria uma boa possibilidade, considerando a situação apresentada? 9 A partir do histórico de redes apresentado neste capítulo, quais os padrões mais importantes que foram criados nas últimas décadas?
2 Modelo de Camadas
2.1 Introdução Este capítulo apresenta um dos principais conceitos para a compreensão da arquitetura de redes de computadores: o modelo de camadas. Inicialmente são apresentadas as suas vantagens, com ênfase no modelo adotado pelo livro, formado por cinco camadas: física, enlace, rede, transporte e aplicação. É apresentado o funcionamento do modelo, descrevendo a comunicação vertical e horizontal, os conceitos de encapsulamento, desencapsulamento, PDU e protocolos de rede. As cinco camadas do modelo são apresentadas com suas respectivas funções. Em seguida são introduzidos o conceito de arquitetura de redes e exemplos dos modelos mais importantes, como o modelo OSI, Internet e IEEE 802.3. Finalmente são apresentados os diversos órgãos de padronização, responsáveis pelos padrões estudados no decorrer do livro.
2.2 Vantagens do Modelo de Camadas O desenvolvimento de uma arquitetura de redes de computadores é uma tarefa complexa, pois envolve inúmeros aspectos de hardware e software, como interface com o meio de transmissão, especificação, verificação e implementação de protocolos, integração com o sistema operacional, controle de erros, segurança e desempenho. O modelo de camadas surgiu para reduzir a complexidade do projeto de arquitetura de redes, da mesma forma que a programação estruturada e modular veio ajudar no desenvolvimento de sistemas. A ideia do modelo de camadas é, inicialmente, dividir o projeto de redes em funções independentes e agrupá-las em camadas. Dessa forma, cada nível é responsável por determinados serviços, e apenas aquela camada
pode oferecê-los. Além disso, o modelo implementa regras para a comunicação entre as camadas, criando o total isolamento de suas funções e, principalmente, a independência de cada nível. Os benefícios trazidos pelo modelo de camadas são semelhantes aos observados quando técnicas de programação estruturada e modular são aplicadas ao desenvolvimento de sistemas. Inicialmente, o projeto de rede pode ser dividido mais facilmente, e, como as camadas são isoladas, não importa como as funções de um nível são implementadas, desde que as regras de comunicação sejam respeitadas. Caso seja necessário, uma camada muito complexa pode ser dividida em subcamadas, sem que isso afete as demais. O modelo de camadas traz grandes benefícios para a manutenção do projeto da rede, pois se houver algum problema basta identificar a camada responsável e corrigi-lo. Além disso, é possível introduzir novas funcionalidades em uma camada sem que as demais sejam afetadas, reduzindo o esforço para a evolução do projeto de rede. Existem também vantagens comerciais na adoção do modelo em camadas, principalmente quando há uma arquitetura padrão a ser seguida pelos fornecedores de produtos de redes. Nesse caso, diferentes empresas podem oferecer soluções para uma ou mais camadas, e os usuários podem adquirir produtos de diferentes fabricantes, sem o risco de incompatibilidades entre os diferentes produtos. Dessa forma, o mercado torna-se mais competitivo, o que tende a reduzir o custo dos produtos para os usuários. Finalmente, o modelo de camadas pode ser utilizado para o estudo de redes de computadores. A compreensão das funções de cada camada e o funcionamento do modelo permitem uma visão mais clara e estruturada da arquitetura de redes. O modelo, apesar de todas as suas vantagens, também oferece algumas desvantagens, que serão abordadas ainda neste capítulo.
2.3 Modelo de Cinco Camadas Existem dois modelos clássicos que podem ser utilizados para o estudo de redes. O primeiro é o modelo OSI, que define uma arquitetura de sete camadas, e o segundo é o modelo Internet, que define uma arquitetura de quatro camadas. Como ambos possuem virtudes e defeitos, o livro adota um modelo híbrido de cinco camadas, muito semelhante aos modelos OSI e Internet, porém mais simples que o primeiro e mais detalhado que o
segundo. Nesta seção são apresentados o modelo de cinco camadas (Fig. 2.1), seu funcionamento e, posteriormente, os outros dois modelos.
F IGURA 2.1
Modelo de cinco camadas.
No modelo de camadas, os níveis são organizados hierarquicamente, formando uma espécie de pilha. Cada nível possui um nome e um número associados. A camada física está mais próxima do canal de comunicação, enquanto a camada de aplicação está mais próxima do usuário ou da aplicação (Fig. 2.1). A estrutura do modelo é muito semelhante à do utilizado em organização de computadores e em sistemas operacionais, conhecido como máquina de níveis [Machado, 2013]. Cada camada do modelo possui um conjunto bem definido de funções, que podem ser implementadas em hardware, firmware ou software. A
Tabela 2.1 apresenta uma visão geral das principais funções de cada uma das cinco camadas do modelo. Tabela 2.1
Funções de cada camada
Camada
Funções
Física
Sinalização, interface com o meio de transmissão, início e término de conexões, sincronização e multiplexação.
Enlace
Enquadramento, detecção e tratamento de erros, controle de fluxo e controle de acesso ao meio.
Rede
Endereçamento, roteamento, fragmentação, qualidade de serviço e controle de congestionamento.
Transporte
Comunicação fim a fim, início e término de conexões lógicas, e controle de fluxo fim a fim.
Aplicação
Web, correio eletrônico, transferência de arquivos e serviços de nomes.
2.3.1 Comunicação Vertical
No modelo de camadas, cada nível comunica-se apenas com a(s) camada(s) adjacente(s), formando a comunicação vertical (Fig. 2.2). Por exemplo, a camada de enlace pode trocar informações apenas com as camadas física e de rede. Cada nível oferece um conjunto de serviços para a camada imediatamente superior e utiliza serviços do nível inferior. Por exemplo, a camada de transporte oferece serviços para a camada de aplicação, que por sua vez utiliza serviços oferecidos pela camada rede. Os serviços são oferecidos através de interfaces que permitem a comunicação entre as camadas adjacentes.
F IGURA 2.2
Comunicação vertical.
2.3.2 Comunicação Horizontal
A comunicação vertical ocorre entre as camadas dentro de um mesmo dispositivo. Vejamos, agora, como é realizada a comunicação entre as camadas em dispositivos distintos, ou seja, a comunicação horizontal. Quando um usuário deseja enviar um dado, por exemplo, um e-mail, a mensagem é passada para a camada de aplicação, que, através de interfaces, passa o dado para a camada de transporte e assim sucessivamente até chegar na camada física, onde os bits são transmitidos. No destino, os bits são recebidos pela camada física e passados, através de interfaces, para a camada de enlace, e assim
sucessivamente até a camada de aplicação, onde o dado é entregue ao usuário. A Fig. 2.3 apresenta o processo de comunicação entre dois usuários de forma mais detalhada. Na origem, cada camada adiciona ao dado a ser enviado informações de controle, na forma de um cabeçalho, que serão recebidas e processadas pela camada de destino. Por exemplo, a camada de aplicação adiciona informações de controle ao dado na forma de um cabeçalho de aplicação (CA). A camada de transporte recebe o CA e o dado da camada de aplicação e acrescenta suas próprias informações de controle, utilizando o cabeçalho de transporte (CT). As camadas de rede, enlace e física acrescentam suas informações de controle, utilizando seus respectivos cabeçalhos (CR, CE e CF).
F IGURA 2.3
Comunicação horizontal.
No destino, a camada física recebe os bits, processa as informações de controle no cabeçalho físico (CF) e passa o restante para o nível superior. A camada de enlace, por sua vez, processa o cabeçalho de enlace (CE) e passa o restante para a camada de rede. O mesmo acontece nas
camadas de rede, transporte e aplicação, onde os seus respectivos cabeçalhos (CR, CT e CA) são processados. Finalmente, a camada de aplicação entrega o dado ao usuário. Como cada camada trata apenas das informações relacionadas ao seu cabeçalho, o modelo permite criar a abstração de que as camadas se comunicam diretamente, ou seja, existe uma comunicação horizontal camada a camada para cada nível do modelo. Essa abstração é possível graças ao conceito de encapsulamento.
2.3.3 Encapsulamento
O conceito de encapsulamento permite esconder de um determinado nível as informações de controle referentes aos níveis superiores, criando o efetivo isolamento e a independência entre as camadas (Fig. 2.4a). Na origem, o dado é acrescido do cabeçalho de aplicação, formando um PDU (Protocol Data Unit) ou unidade de dados do protocolo. O PDU de aplicação (PDU-A) é passado para a camada de transporte, que ignora o cabeçalho inserido pela camada superior e trata a mensagem como dados entregues pela camada de aplicação. Por sua vez, a camada de transporte acrescenta seu próprio cabeçalho e passa o PDU de transporte (PDU-T) para o nível de rede, que recebe o PDU-T como se fossem dados vindos da camada de transporte. O mesmo processo de encapsulamento se repete até a camada física, gerando os PDUs das camadas de rede, enlace e física. A Fig. 2.4b apresenta o processo de desencapsulamento, ou seja, o processo inverso ao encapsulamento. No destino, os bits são recebidos, o cabeçalho da camada física é processado e o PDU de enlace (PDU-E) é entregue à camada superior. A camada de enlace processa seu próprio cabeçalho e passa o PDU de rede (PDU-R) para a camada de transporte. O processo se repete até o dado ser entregue ao usuário.
F IGURA 2.4
Processo de encapsulamento e desencapsulamento.
2.4 Funções das Camadas Cada camada possui um conjunto definido de funções, que pode variar conforme a arquitetura de rede. Nesta seção é apresentada uma visão mais detalhada das funcionalidades de cada uma das cinco camadas do modelo. Posteriormente, as camadas são detalhadas em capítulos individuais.
2.4.1 Camada Física
A camada física é o nível mais próximo do canal de comunicação, e é responsável pela efetiva transmissão dos bits. Nessa camada são definidas as características da codificação dos dados, como, por exemplo, a intensidade e duração dos sinais que representarão os bits transmitidos. Outra função importante dessa camada é definir a interface de comunicação entre o dispositivo e o meio de transmissão como o tipo de conector, o número de pinos e a função de cada pino. As características do meio de transmissão também são definidas pelo nível físico, como o tipo do meio (cabo metálico, fibra ótica etc.), o comprimento máximo de cabos, o tamanho de antenas e o número de fios. Além disso, a camada física é responsável pela inicialização e término de conexões físicas, digitalização, multiplexação e sincronização da transmissão. Os protocolos V.92, EIA-232-F, IEEE 802.3 e IEEE 802.11
são exemplos padrões da camada física. O Capítulo 3 – Camada Física apresenta os detalhes dessa camada.
2.4.2 Camada de Enlace
Qualquer transmissão está sujeita a problemas que podem modificar a forma original do sinal e, consequentemente, alterar o significado dos bits transmitidos. A principal função da camada de enlace é detectar possíveis erros na transmissão e, quando necessário, corrigi-los. Enquanto a camada física está preocupada apenas com a transmissão dos bits, a camada de enlace preocupa-se em transmiti-los de forma correta. A camada de enlace agrupa os bits transmitidos pela camada física em blocos. É função da camada de enlace criar e interpretar corretamente esses blocos, chamados quadros. Outra função da camada de enlace é o controle de fluxo. O controle de fluxo permite que o dispositivo transmissor regule o volume de dados enviados de forma a não sobrecarregar o receptor, caso contrário o destino terá que descartar os quadros transmitidos, obrigando à sua retransmissão. Em redes multiponto, como em redes locais Ethernet, a camada de enlace também tem a função de realizar o controle de acesso ao meio para determinar qual estação poderá transmitir. Os protocolos HDLC, PPP, LAPB, IEEE 802.3 e IEEE 802.11 são exemplos padrões da camada de enlace. O Capítulo 4 – Camada Enlace apresenta os detalhes dessa camada.
2.4.3 Camada de Rede
A principal função da camada de rede é permitir que uma mensagem enviada pelo transmissor chegue ao destino utilizando dispositivos intermediários. Esse processo de reencaminhamento é chamado de comutação, e é realizado por dispositivos chamados comutadores. Enquanto a camada de enlace está preocupada com a comunicação entre dispositivos diretamente conectados, a camada de rede preocupa-se em permitir a comunicação entre dispositivos não adjacentes. No modelo Internet, essa função chama-se roteamento, e é executada por dispositivos chamados roteadores. Na Fig. 2.5, o dispositivo A está conectado ao comutador C1, e o dispositivo B, ao comutador C5; o dispositivo A poderia ser um computador utilizado por um aluno acessando o site de sua instituição de ensino, representado pelo dispositivo B. Para que A se comunique com B, a mensagem deverá ser enviada para C1 e reencaminhada, por exemplo,
pelos comutadores C2-C3-C4 até alcançar C5, que entregará a mensagem para o dispositivo B. O conjunto de comutadores que formam a nuvem da figura é chamado de rede de interconexão ou inter-rede.
F IGURA 2.5
Camada de rede e comutação.
Na maioria das redes de computadores, a camada de rede implementa a técnica de comutação por pacotes. Na comutação por pacotes, os dados são divididos em pedaços menores, chamados pacotes, que são encaminhados pela rede de interconexão. A camada de rede pode oferecer dois tipos de serviços para a camada de transporte, considerando a forma com que os pacotes são tratados pela rede de interconexão. O nível de rede pode garantir a entrega e a sequência dos pacotes transmitidos no destino ou, simplesmente, não oferecer nenhum tipo de garantia. No modelo Internet, a camada de rede, representada pelo protocolo IP, não oferece nenhum tipo de garantia na entrega dos pacotes. Nesse caso, a camada de transporte pode fornecer esse tipo de serviço. Uma rede de pacotes pode implementar o serviço de reencaminhamento de pacotes de duas formas diferentes: serviço não orientado à conexão e serviço orientado à conexão. No serviço não orientado à conexão ou datagrama não existe um caminho predefinido ligando a origem ao destino. Os pacotes são transmitidos de forma independente, possivelmente por caminhos diferentes, até alcançar o destino. Nesse caso, o processo de roteamento é utilizado em cada
dispositivo intermediário para decidir qual o próximo caminho a ser seguido. No serviço orientado à conexão ou circuito virtual existe um caminho predefinido ligando a origem ao destino. Antes de os pacotes serem transmitidos, é estabelecido um caminho entre a origem e o destino, chamado circuito virtual. Depois de estabelecido o caminho, todos os pacotes seguirão a mesma rota, dispensando o processo de roteamento. No modelo Internet, a camada de rede oferece o serviço do tipo datagrama. A Fig. 2.6 relaciona o modelo de camadas ao conceito de comutação. Enquanto os dispositivos A e B implementam as cinco camadas, os comutadores implementam apenas as camadas que permitem o processo de comutação, ou seja, as camadas física, enlace e rede. As camadas física e enlace permitem a conexão entre os dispositivos adjacentes, como, por exemplo, A-C1, C1-C2 e C5-B, enquanto a camada de rede permite conectar os dispositivos A e B, utilizando os comutadores C1-C2C3-C4, que formam a rede de interconexão.
F IGURA 2.6
Modelo de camadas e comutação.
Para que a comunicação seja possível, é necessário algum esquema de endereçamento que permita a identificação dos dispositivos, dos roteadores e dos possíveis caminhos disponíveis para a implementação do roteamento. No modelo Internet, o esquema de endereçamento é implementado através de endereços IP. Em uma rede que implemente
esse protocolo, cada host possui, pelo menos, um endereço IP no formato 146.164.2.32, por exemplo. A camada de rede também tem a função de controlar o funcionamento da rede de interconexão para evitar problemas de congestionamento e garantir a qualidade dos serviços oferecidos por ela. Resumidamente, o congestionamento é consequência do excesso de tráfego na rede de interconexão que acarretará sobrecarga nos comutadores e, possivelmente, perda de pacotes. Dependendo do tipo de serviço, a perda de pacotes pode comprometer o desempenho da rede e a qualidade dos serviços oferecidos pela rede de interconexão. O Capítulo 6 – Camada de Rede apresenta os detalhes dessa camada.
2.4.4 Camada de Transporte
Enquanto a camada de rede tem a função de encaminhar os pacotes pela rede de interconexão, a camada de transporte é responsável pela comunicação fim a fim entre os dispositivos transmissor e receptor. A comunicação fim a fim permite que os dispositivos se comuniquem como se existisse uma ligação direta entre eles, tornando a rede de interconexão totalmente transparente. Não importa se a rede de interconexão é uma rede local ou uma rede formada por inúmeras outras redes. Também não é importante se a rede de interconexão utiliza comutação por circuito ou comutação por pacotes. O nível de transporte permite que a camada de rede utilize qualquer mecanismo de comutação para mover as informações entre os dispositivos intermediários, tornando as duas camadas independentes. Por exemplo, na Fig. 2.7, o dispositivo A poderia ser um aluno acessando o site de sua instituição de ensino, representado pelo dispositivo B. A camada de transporte cria a abstração de que os dispositivos A e B estão conectados ponto a ponto, com o dispositivo A enviando dados e o dispositivo B recebendo, como se não existisse a rede de interconexão. Para o usuário, a rede de interconexão é totalmente transparente.
F IGURA 2.7
Comunicação fim a fim.
Semelhantemente à camada de rede, o nível de transporte pode oferecer dois tipos de serviços para a camada de aplicação. O nível de transporte pode garantir a entrega dos dados enviados e a sequência deles, ou, simplesmente, não oferecer nenhum tipo de garantia. No modelo Internet, a camada de transporte oferece os dois tipos de serviços através dos protocolos TCP e UDP. A camada de transporte também tem a função de controle de conexões lógicas, controle de fluxo fim a fim, endereçamento e segmentação de mensagens. O Capítulo 7 – Camada de Transporte apresenta os detalhes dessa camada.
2.4.5 Camada de Aplicação
A camada de aplicação é a camada mais próxima dos usuários e aplicações. Enquanto as camadas inferiores estão preocupadas com os detalhes da comunicação propriamente dita, a camada de aplicação permite o uso da rede e de suas facilidades da forma mais transparente possível. Enquanto na camada de transporte existem um ou dois protocolos, na camada de aplicação existem vários protocolos, um para cada tipo de serviço de rede. Os principais serviços dessa camada são a Web, o correio eletrônico, a transferência de arquivos, o terminal remoto, o serviço de nomes, a gerência remota e os serviços de áudio e vídeo. O Capítulo 8 – Camada de Aplicação apresenta os detalhes dessa camada.
2.5 Protocolos de Rede O conceito de protocolo foi definido no Capítulo 1 – Conceitos Básicos como um conjunto de regras predefinidas que devem ser seguidas pelos dispositivos para que a comunicação ocorra de forma efetiva. Com o modelo de camadas, é possível definir com mais precisão esse importante conceito. Na verdade, o protocolo é formado pelas informações de controle contidas no cabeçalho e pelo processamento dessas informações nas respectivas camadas de origem e destino. Para informações detalhadas sobre os elementos de um protocolo e como projetá-los, consultar [Holzmann, 1991]. Por exemplo, o protocolo de enlace é formado pelas informações contidas no cabeçalho de enlace e pelo processamento dessas informações realizado nas camadas de enlace da origem e destino. A Fig. 2.8 apresenta uma versão simplificada do PDU de enlace utilizado em redes locais Ethernet, conhecido como quadro Ethernet. O campo Dados do quadro encapsula o PDU da camada de rede, e os demais campos formam as informações de controle necessárias ao funcionamento do protocolo. Por exemplo, os campos End. de destino e End. de origem permitem identificar os endereços do transmissor e do receptor, respectivamente, o campo Tam define o tamanho do campo de dados e o CDE (Código de Detecção de Erro) permite identificar se houve algum erro no quadro transmitido. Cada campo possui um tamanho que pode ser fixo ou variável. Na figura, os campos para endereçamento possuem o tamanho fixo de seis bytes cada e o campo Tam possui dois bytes, enquanto o campo Dados pode variar de zero a 1500 bytes.
F IGURA 2.8
Quadro Ethernet.
Se o formato do quadro não for rigorosamente respeitado pela origem ou destino, não será possível a comunicação horizontal entre as camadas e, consequentemente, entre os dispositivos. Por exemplo, se o tamanho de um campo ou seu significado for alterado, os dispositivos não seguirão as mesmas regras de comunicação, impossibilitando a comunicação entre os dispositivos. É importante não confundir os conceitos de serviço e protocolo. Um serviço define o que deve ser feito pela camada, ou seja, as interfaces e parâmetros que permitem a comunicação vertical entre as camadas adjacentes. O protocolo define como o serviço é implementado, ou seja, as informações de controle e o processamento realizado pelas camadas no mesmo nível horizontal (Fig. 2.9).
F IGURA 2.9
Protocolo e serviço.
Uma determinada camada pode ter um ou mais protocolos associados. O conjunto de protocolos implementado por todas as camadas do modelo é conhecido como pilha de protocolos. A Fig. 2.10 apresenta um exemplo de pilha de protocolos de um usuário realizando acesso discado via modem à Internet, utilizando o serviço Web. É possível que um dispositivo implemente duas ou mais pilhas de protocolos para poder se comunicar com redes diferentes. Por exemplo, um dispositivo pode implementar as pilhas de protocolos IBM SNA e TCP/IP. Um dispositivo que suporta mais de uma pilha de protocolos é conhecido como multiprotocolo.
F IGURA 2.10
Pilha de protocolos.
Nem sempre é possível ou viável que um dispositivo suporte mais de uma pilha de protocolos. Uma forma de contornar esse problema é a utilização de gateways. Os gateways ou conversores funcionam como tradutores, que convertem a pilha de protocolos do dispositivo A para a pilha do dispositivo B e vice-versa (Fig. 2.11). Por exemplo, suponha que o dispositivo A utilize a pilha de protocolos IBM SNA e B utilize a pilha DECnet. Para que os dois dispositivos possam se comunicar, é necessário utilizar um gateway que faça a conversão de protocolos.
F IGURA 2.11
Gateway ou conversor.
A utilização de gateways para a conversão de protocolos tem um preço. Além do custo do conversor propriamente dito, geralmente formado por hardware e software dedicados, existe o atraso gerado pela tradução dos protocolos de uma arquitetura para a outra. Outra forma de resolver o mesmo problema seria instalar uma segunda pilha de protocolos comum aos dois dispositivos. Por exemplo, se os dispositivos utilizassem a pilha TCP/IP, não seria necessária a utilização de gateways.
2.6 Arquitetura de Redes Uma arquitetura de redes deve especificar o número de camadas, os serviços oferecidos por cada nível, as respectivas interfaces, além da pilha de protocolos. A definição das funções de cada camada é uma das principais tarefas no projeto de uma arquitetura de redes, pois tem grande influência no seu desempenho. Uma arquitetura que define claramente esses conceitos oferece uma série de benefícios, pois simplifica o projeto e a implementação de seus componentes e facilita a manutenção e a evolução da arquitetura. Se existir o efetivo isolamento entre as camadas é possível melhorar serviços já existentes ou incluir novos serviços sem afetar os demais níveis do modelo. O modelo de camadas oferece inúmeras vantagens, porém existem algumas desvantagens, consequência do próprio modelo hierárquico. Dependendo do número de camadas, é possível comprometer o desempenho da rede em função do número de interfaces pelas quais o dado irá passar. A divisão em camadas pode gerar funções repetidas em dois ou mais níveis, contribuindo também para o baixo desempenho da rede. Por exemplo, as funções de endereçamento e controle de erro repetem-se em vários níveis. Além disso, como cada camada adiciona suas próprias informações de controle, a relação entre dados enviados e controles utilizados pode tornar o modelo ineficiente. Para informações adicionais sobre os problemas com o modelo de camadas, consultar [Crowcroft, 1992], [Tennenhouse, 1989] e a RFC-817. A seguir são apresentadas três arquiteturas de rede que utilizam o modelo de camadas: modelo OSI, modelo Internet e IEEE 802. Apesar de o modelo de camadas tradicional ser dominante, existem outras propostas diferentes que podem ser consultadas em [Clark, 1990], [Moors, 1998] e [Tennenhouse, 1997].
2.6.1 Modelo OSI
Na década de 1970, diversos fabricantes estavam desenvolvendo suas próprias arquiteturas de rede, e cada um implementava seus próprios padrões, incompatíveis com os dos demais fabricantes. A ausência de um padrão para o desenvolvimento das redes tornou-se um obstáculo, pois o usuário deveria utilizar sempre produtos do mesmo fabricante a fim de evitar problemas de compatibilidade entre os diferentes sistemas. Nesse período, a ISO (International Organization for Standardization) iniciou o desenvolvimento de uma arquitetura chamada Modelo de
Referência para a Interconexão de Sistemas Abertos (Reference Model for Open System Interconnection). O modelo OSI, como é conhecido, recomenda um conjunto de diretrizes para o desenvolvimento de sistemas abertos com o objetivo de permitir a interconexão de redes heterogêneas. O modelo define sete camadas, cada uma com um conjunto de funções específicas. Caso os fabricantes seguissem as recomendações do modelo OSI os produtos comercializados seriam compatíveis, permitindo que o usuário escolhesse a opção que desejasse (Fig. 2.12). As funções das camadas física, enlace, rede, transporte e aplicação do modelo OSI são semelhantes às funções apresentadas anteriormente no modelo de cinco camadas, porém as camadas de sessão e apresentação são exclusivas do modelo OSI. Na verdade, algumas das funções dessas duas camadas estão presentes nas camadas de transporte e aplicação do modelo de cinco camadas. A camada de sessão do modelo OSI é responsável pela integração da rede a aspectos relacionados ao sistema operacional, funcionando como uma interface entre o software de rede e o sistema operacional. As principais funções dessa camada são criar e eliminar processos, receber e verificar pedidos de conexão, solicitar e monitorar ligações lógicas e controlar diálogo e sincronização.
F IGURA 2.12
Modelo OSI.
A camada de apresentação do modelo OSI é responsável por oferecer serviços de compatibilização e formatação de dados entre os dispositivos que trabalham com tipos de dados diferentes. Alguns serviços oferecidos são a conversão de códigos de caracteres, por exemplo ASCII para EBCDIC, a adaptação de telas de programas a diferentes terminais, a compressão de dados e a criptografia. A Tabela 2.2 apresenta alguns protocolos padronizados no modelo OSI. Tabela 2.2
Protocolos do modelo OSI
Protocolo
Camada
Descrição
V.24
Física
Padrão para conexões seriais, utilizado, por exemplo, para a conexão de um dispositivo ao modem.
X.21
Física
Interface digital para redes públicas de pacotes X.25.
HDLC
Enlace
Utilizado em conexões seriais ponto a ponto ou multiponto.
X.25
Rede
Protocolo para a interconexão de redes públicas de pacotes.
IS-IS
Rede
Protocolo de roteamento semelhante ao protocolo Internet OSPF.
TP4
Transporte
Protocolo de transporte que oferece serviços semelhantes ao protocolo Internet TCP.
ANS.1
Apresentação
Define uma notação e regras para a transmissão de estruturas de dados.
FTAM
Aplicação
Utilizado para implementar o serviço de transferência de arquivos.
VT
Aplicação
Utilizado para implementar o serviço de terminal remoto.
MHS
Aplicação
Utilizado para implementar o serviço de correio eletrônico.
CMIP
Aplicação
Utilizado para implementar o serviço de gerência remota.
Por diversos motivos, o modelo OSI não obteve êxito comercial. O primeiro motivo, e mais importante, foi o surgimento e o rápido crescimento do modelo Internet. Enquanto o modelo OSI foi lentamente concebido, o modelo Internet ganhou rapidamente o mercado. Devido à complexidade do modelo OSI, as primeiras implementações oferecidas pelos fabricantes demoraram a ser lançadas, não ofereciam bom desempenho e não eram totalmente compatíveis entre si, frustrando o principal objetivo do modelo. Por outro lado, o modelo Internet era simples e eficiente, estava disponível em diversas plataformas e mantinha a compatibilidade entre as diversas implementações. Para uma breve descrição do modelo OSI, consultar [Zimmermann, 1980], e para uma descrição detalhada, consultar [Brisa, 1994] e [Tanenbaum, 1989].
2.6.2 Modelo Internet
O modelo Internet, também chamado de modelo TCP/IP, surgiu durante a década de 1960 com o objetivo de conectar redes e sistemas heterogêneos utilizando o esquema de comutação por pacotes. A principal preocupação do modelo era a disponibilidade da rede, que deveria continuar em operação, mesmo no caso de falha de um de seus componentes. Além disso, o modelo deveria suportar diferentes tipos de serviços e oferecer uma boa relação custo-benefício, principalmente para a conexão de novas redes [Clark, 1988]. Com a evolução da Internet, o modelo original vem sendo discutido e aprimorado para atender às novas demandas e necessidades da comunidade. Para informações adicionais sobre o modelo Internet, consultar as RFC-1958, RFC-2775 e [Clark, 2003]. Enquanto no modelo OSI existia uma preocupação em criar uma arquitetura de redes com uma distinção clara entre camadas, serviços, interfaces e protocolos, no modelo Internet privilegiaram-se os protocolos, e com a evolução do modelo houve uma maior preocupação com a arquitetura. O modelo Internet possui quatro camadas, e a Fig. 2.13 faz uma comparação entre os modelos Internet, OSI e o modelo de cinco camadas utilizado no livro. É importante ressaltar que os limites entre as camadas dos três modelos não são exatamente como a figura apresenta, porém servem como uma boa aproximação didática. A seguir são apresentados as funções de cada uma das camadas e os principais protocolos do modelo Internet. Informações adicionais podem ser obtidas em [Comer, 2000] e [Leiner, 1985].
F IGURA 2.13
Modelo Internet.
■ Camada de acesso à rede
A camada de acesso à rede agrupa as funções das camadas física e de enlace, e tem a função de conectar o host à rede de interconexão. O modelo Internet não define protocolos para essa camada, pois presume que possa ser utilizado qualquer tipo de tecnologia de acesso. Assim, o modelo permite a utilização de diferentes tipos de conexões, independentemente de se a rede é ponto a ponto ou multiponto, cabeada ou sem fio, rede local ou distribuída. Além disso, a camada de acesso à rede pode agregar novas tecnologias sem a necessidade de alterações dos níveis superiores. Dessa forma, o modelo simplifica a conexão de redes heterogêneas.
■ Camada Internet
A camada internet tem como principal função o encaminhamento de pacotes utilizando a rede de interconexão e oferece um serviço do tipo datagrama que não exige que a origem e o destino estabeleçam uma
conexão para que ocorra a transmissão. Além disso, a camada internet não oferece nenhuma garantia de que um pacote enviado será recebido, como também não evita o recebimento de pacotes duplicados e fora de sequência. O principal protocolo da camada de rede e um dos principais do modelo Internet é o IP. O protocolo IP (Internet Protocol) tem como principais funções o endereçamento, o suporte ao roteamento de pacotes e a fragmentação. A Tabela 2.3 apresenta outros protocolos utilizados na camada de rede do modelo Internet. Tabela 2.3
Protocolos da camada de rede
Protocolo
Descrição
ICMP
Utilizado para o controle de erro e testes na rede.
IGMP
Utilizado no endereçamento multicast.
RIP
Utilizado no roteamento de pacotes baseado no algoritmo de vetor de distância.
OSPF
Utilizado no roteamento de pacotes baseado no algoritmo de estado do enlace.
Devido à sua simplicidade e limitações, os protocolos da camada internet vêm sendo atualizados como IPv6, que irá substituir o atual IP. As mudanças na camada internet, que também incluem a criação de novos protocolos, visam lidar melhor com diversos problemas como escassez de endereços, roteamento multicast, controle de congestionamento, qualidade de serviço e segurança.
■ Camada de transporte
A camada de transporte, também chamada de camada host-to-host, tem como principal função a comunicação fim a fim entre o host de origem e o host de destino. A comunicação fim a fim entre os processos é implementada utilizando os serviços da camada de rede sem nenhuma preocupação com a rede de interconexão. A camada de transporte oferece uma interface de programação, conhecida como sockets, que simplifica o processo de desenvolvimento de novas aplicações, sem a necessidade de se alterarem as camadas inferiores.
A camada de transporte do modelo Internet possui apenas dois protocolos: TCP e UDP. O protocolo TCP (Transmission Control Protocol) oferece um serviço que garante a entrega e a sequência dos dados transmitidos. Nesse caso, a camada de aplicação apenas envia uma mensagem com a certeza de que o destino irá recebê-la. Além disso, o TCP é responsável também por endereçamento, controle de congestionamento, segmentação e controle de fluxo fim a fim. O TCP permite complementar as funções que não estão disponíveis na camada de rede, permitindo a simplificação do projeto da rede de interconexão [Saltzer, 1984]. O protocolo UDP (User Datagram Protocol) oferece um serviço que não garante a entrega e a sequência dos dados transmitidos. Nesse caso, é responsabilidade da camada de aplicação implementar os controles necessários para tornar a transmissão confiável, se necessário. O UDP funciona somente como uma ligação entre as camadas de rede e aplicação, oferecendo apenas o serviço de endereçamento.
■ Camada de aplicação
A camada de aplicação oferece serviços para os usuários e suas aplicações. Os protocolos de aplicação podem utilizar dois tipos de serviços da camada de transporte oferecidos pelos protocolos TCP e UDP. A maioria dos protocolos de aplicação utiliza o protocolo TCP como transporte, garantindo que uma mensagem enviada será entregue corretamente ao destino. A Tabela 2.4 apresenta alguns protocolos utilizados na camada de aplicação do modelo Internet. Tabela 2.4
Protocolos da camada de aplicação
Protocolo
Descrição
HTTP
Utilizado no serviço Web.
FTP
Utilizado no serviço de transferência de arquivos.
SMTP
Utilizado no serviço de correio eletrônico.
Telnet
Utilizado no serviço de terminal remoto.
DNS
Utilizado no serviço de nomes.
SNMP
Utilizado no serviço de gerência remota.
A Fig. 2.14 apresenta uma visão geral do modelo Internet, relacionando as suas camadas aos principais protocolos. A camada de acesso à rede apresenta três exemplos: rede local Ethernet, conexão discada com V.92/PPP e conexão dedicada com ADSL/PPPoE, porém outros tipos de conexões são possíveis.
F IGURA 2.14
Modelo Internet e seus protocolos.
A Fig. 2.15 apresenta o esquema de encapsulamento no modelo Internet. Na camada de aplicação, o dado é acrescido de um cabeçalho de aplicação (CA) que é encapsulado na camada inferior. A camada de transporte recebe o dado e acrescenta o seu cabeçalho, que pode ser um cabeçalho TCP ou UDP. Se for utilizado o protocolo TCP, a estrutura de dado resultante é chamada de segmento TCP. Se o protocolo for UDP, a estrutura é chamada de datagrama UDP. Independentemente da estrutura gerada, o dado é encaminhado para a camada de rede, que acrescenta o
cabeçalho IP, formando um pacote IP ou datagrama IP. Finalmente, o dado é encapsulado na camada de acesso à rede, formando um quadro.
F IGURA 2.15
Encapsulamento no modelo Internet.
2.6.3 Modelo IEEE 802
No início da década de 1980, o IEEE iniciou os trabalhos do grupo responsável pela padronização de redes locais e metropolitanas, chamado IEEE 802. Apesar de diversos padrões terem sido desenvolvidos, apenas alguns poucos são realmente utilizados na prática. A Tabela 2.5 apresenta os principais padrões patrocinados pelo IEEE 802, com destaque para os padrões IEEE 802.3 e IEEE 802.11. Tabela 2.5
Padrões IEEE 802
Padrão
Descrição
802.2
Logical Link Control.
802.3
Ethernet.
802.4
Token bus.
802.5
Token ring.
802.6
Redes metropolitanas (MAN).
802.11
Redes locais sem fio (WLAN).
802.15
Redes pessoais sem fio (WPAN).
802.16
Redes metropolitanas sem fio (WMAN).
O modelo do IEEE 802 define protocolos apenas para as camadas física e de enlace, não fazendo nenhuma referência aos níveis superiores. Além disso, a camada de enlace é dividida em duas subcamadas: MAC (Medium Access Control) e LLC (Logical Link Control). A camada MAC é responsável pelo controle de acesso ao meio propriamente dito, além da construção do quadro, endereçamento e detecção de erro. A principal função da camada LLC é compatibilizar os diversos tipos de MAC com a camada de rede, além de oferecer, opcionalmente, correção de erro e controle de fluxo (Fig. 2.16). Como o modelo IEEE 802 especifica protocolos apenas para as camadas física e de enlace, o modelo Internet se encaixa facilmente em qualquer padrão já estabelecido ou que venha a ser especificado. Os protocolos IEEE 802 também são reconhecidos pela ISO e são suportados no modelo OSI. Informações adicionais sobre o modelo IEEE serão apresentadas no Capítulo 5 – Arquitetura de Redes Locais.
F IGURA 2.16
Modelo IEEE 802.
2.7 Órgãos de Padronização Os órgãos de padronização existem para criar e desenvolver padrões que, a princípio, devem ser seguidos pela indústria. Esses órgãos são formados por governos, entidades de classe, usuários, comunidade acadêmica, organizações sem fins lucrativos e empresas em geral. Apesar dos inúmeros esforços para se padronizar o mundo das telecomunicações e redes de computadores, essa não é uma tarefa simples, por envolver conflitos de interesses entre os diversos elementos envolvidos. Outro motivo é que nem sempre o que é definido pelos órgãos de padronização está em sintonia com o mercado naquele momento. Existem, basicamente, dois tipos de padrões: de jure e de facto. Um padrão de jure é definido pelos órgãos de padronização e, a princípio, deveria ser seguido por toda a comunidade. Um padrão de facto é estabelecido pela indústria e pelos usuários, muitas vezes confrontando os padrões de jure estabelecidos. Vejamos a seguir as principais entidades de padronização ligadas ao mundo das telecomunicações e redes de computadores.
■ International Telecommunications Union
O International Telecommunications Union (ITU) foi criado em 1865 a partir da necessidade de se padronizarem os diversos sistemas de telegrafia utilizados na época. O ITU ainda hoje é o principal órgão internacional de padronização para a indústria de telecomunicações, e é parte da ONU (Organização das Nações Unidas). Além de governos, fazem parte do ITU empresas de diversas áreas, organizações sem fins lucrativos e agências reguladoras. Apesar da importância de suas decisões, as recomendações definidas pelo ITU não são obrigatórias e podem ser acatadas ou não pelos governos. O ITU é responsável por diversas recomendações adotadas pela indústria, fazendo parte de produtos largamente utilizados, como, por exemplo, as recomendações V.35, V.92 e V.24. O ITU é composto por três setores. O ITU-R (Radio Communication Sector) é responsável pela gerência do espectro de radiofrequência e órbitas de satélites. O ITU-T (Telecommunication Standardization Sector) é responsável pelas recomendações na área de telecomunicações e foi criado em 1993 para substituir o CCITT (Comité Consultatif International Télégraphique et Téléphonique). O CCITT produziu inúmeras recomendações que são mundialmente utilizadas, como o padrão X.25 para redes públicas de pacotes. O ITU-D (Telecommunication
Development Bureau) é responsável por fornecer capacitação técnica e suporte em telecomunicações a países em desenvolvimento.
■ International Organization for Standardization
A International Organization for Standardization (ISO) foi criada em 1946, e é responsável por definir padrões internacionais nas mais diferentes áreas, incluindo computação e tecnologia da informação. Todo país pode participar como membro, e a participação é voluntária. Por exemplo, o Brasil participa com a ABNT (Associação Brasileira de Normas Técnicas), os Estados Unidos, com o ANSI, e a Grã-Bretanha, com o BSI. Um dos padrões ISO mais conhecidos e importante é o que define o Modelo de Referência para a Interconexão de Sistemas Abertos ou, simplesmente, modelo OSI, definido na recomendação ISO 7498 e CCITT X.200.
■ Institute of Electrical and Electronics Engineers
O Institute of Electrical and Electronics Engineers (IEEE ou I3E) é uma das maiores organizações profissionais sem fins lucrativos do mundo e desenvolve padrões em diversas áreas, incluindo engenharia e computação. Além dos padrões desenvolvidos, o IEEE também é responsável por inúmeros eventos, congressos e publicações especializados. O comitê IEEE 802 é responsável por alguns dos padrões mais importantes na área de redes locais, como o Ethernet e redes locais sem fio.
■ Padrões Internet
A principal entidade responsável pela padronização da Internet e seus protocolos é a ISOC (Internet Society). Fundada em 1992, a ISOC é uma organização internacional responsável pelo projeto, infraestrutura e manutenção da Internet, além de coordenar os esforços ao seu desenvolvimento. A ISOC é formada pelo IAB (Internet Architecture Board), IETF (Internet Engineering Task Force) e IRTF (Internet Research Task Force). Enquanto o IAB é responsável por apontar as diretivas gerais sobre a arquitetura da Internet, o IETF preocupa-se com o efetivo desenvolvimento dos protocolos que permitem o funcionamento da rede e o IRTF, com a parte de pesquisa de longo prazo. Um padrão Internet é publicado na forma de RFC (Request for Comment) e um número associado. Por exemplo, a RFC-791 define o protocolo Internet Protocol (IP), enquanto a RFC-793 define o Transmission Control Protocol (TCP). As RFCs estão disponíveis para
acesso gratuito na própria Internet, e nas referências bibliográficas é apresentado como essa consulta pode ser realizada.
Exercícios Questões de múltipla escolha 1 Quais as vantagens do modelo de camadas? A. Redução da complexidade B. Facilidade de manutenção C. Isolamento de funções D. Facilitar o ensino E. Desempenho da rede 2 O que não é verdade sobre o modelo de camadas? A. A comunicação vertical permite apenas a comunicação das camadas adjacentes. B. A comunicação vertical é implementada pelas interfaces. C. O encapsulamento permite esconder os detalhes dos níveis superiores. D. A comunicação horizontal permite, por exemplo, que a camada de transporte da origem fale com a camada de rede do destino. E. A comunicação horizontal é feita através de cabeçalhos. 3 Qual destas afirmações NÃO é verdadeira em relação ao modelo de camadas? A. A camada física é responsável pela pinagem dos conectores. B. A camada de enlace está preocupada com a comunicação dos dispositivos adjacentes. C. A camada de rede é responsável pela rede de interconexão. D. A camada de transporte oferece a comunicação fim a fim entre as aplicações. E. A camada de aplicação oferece o controle de acesso ao meio. 4 Quais destas afirmações são verdadeiras? A. O protocolo HTTP é parte da camada de apresentação. B. O protocolo Ethernet atua apenas na camada de enlace. C. O procotolo IP faz parte da camada de rede. D. O protocolo V.90 faz parte da camada de enlace. E. O protocolo UDP faz parte da camada de transporte. 5 Qual dos termos a seguir melhor define a frase “cada nível se comunica apenas com a camada adjacente”? A. Encapsulamento B. Comunicação adjacente C. Comunicação vertical D. Comunicação fim a fim E. Comunicação horizontal 6 Qual dos termos a seguir melhor define a frase “cada camada de origem adiciona informações de controle que serão recebidas e processadas pela camada de destino”?
A. Comunicação adjacente B. Encapsulamento C. Comunicação fim a fim D. Comunicação horizontal E. Comunicação vertical 7 Qual dos termos a seguir melhor define a frase “permite esconder de um nível as informações de controle referentes aos níveis superiores”? A. Encapsulamento B. Comunicação adjacente C. Comunicação vertical D. Comunicação fim a fim E. Comunicação horizontal 8 Qual dos termos a seguir melhor define a frase “define características físicas da transmissão”? A. Camada de enlace B. Camada de transporte C. Camada de rede D. Camada de aplicação E. Camada física 9 Qual dos termos a seguir melhor define a frase “permite a comunicação com o dispositivo adjacente”? A. Camada física B. Camada de aplicação C. Camada de transporte D. Camada de enlace E. Camada de rede 10 Qual dos termos a seguir melhor define a frase “responsável pela comunicação utilizando a rede de interconexão”? A. Camada de rede B. Camada de transporte C. Camada de enlace D. Camada física E. Camada de aplicação 11 Qual dos termos a seguir melhor define a frase “responsável pela comunicação fim a fim”? A. Camada de aplicação B. Camada de transporte C. Camada de enlace D. Camada física E. Camada de rede 12 Qual dos termos a seguir melhor define a frase “responsável por oferecer os serviços de rede”? A. Camada de rede B. Camada de enlace C. Camada de aplicação
D. Camada física E. Camada de transporte 13 Quais são as duas camadas no modelo OSI que não estão presentes no modelo de cinco camadas? A. Transporte e apresentação B. Apresentação e aplicação C. Sessão e aplicação D. Sessão e enlace E. Sessão e apresentação 14 Quais são as duas camadas no modelo de cinco camadas que são definidas pelo IEEE 802? A. Rede e transporte B. Física e de enlace C. Enlace e rede D. Aplicação e física E. Transporte e aplicação 15 [ENADE-REDE-Q12, 2008] As atuais arquiteturas de redes de computadores são baseadas em dois conceitos fundamentais: modelo em camadas e protocolos de comunicação. Com relação a esses conceitos, qual descrição a seguir aborda de modo consistente um aspecto da relação entre camadas e protocolos? A. O uso de camadas em redes de computadores permite o desenvolvimento de protocolos cada vez mais abrangentes e complexos, em que cada camada adiciona, de maneira transparente, uma nova característica a um protocolo. A estruturação de várias funções no mesmo protocolo dá origem à expressão “pilha de protocolos”. B. Os protocolos IP e TCP foram padronizados pela ISO para as camadas de rede e transporte, respectivamente. A estruturação do protocolo IP sobre o TCP dá origem à expressão “pilha de protocolos”. C. Os protocolos atuam como um padrão de comunicação entre as interfaces das camadas de uma arquitetura de redes e se comunicam através da troca de unidades de dados chamadas de PDU. O uso de protocolos para a comunicação entre camadas sobrepostas dá origem à expressão “pilha de protocolos”. D. As camadas das arquiteturas de redes de computadores foram concebidas para separar e modularizar a relação entre protocolos nas topologias lógica em barramento e física em estrela. A estruturação dos protocolos lógicos sobre os físicos dá origem à expressão “pilha de protocolos”. E. As arquiteturas de redes de computadores são organizadas em camadas para obter modularidade, e as funções abstratas dentro de cada camada são implementadas por protocolos. A estruturação com vários protocolos usados em camadas distintas dá origem à expressão “pilha de protocolos”. 16 [ENADE-REDE-Q16, 2008] A técnica de encapsulamento utilizada em arquiteturas de redes tem como objetivo prover a abstração de protocolos e serviços e promover a independência entre camadas. PORQUE O encapsulamento esconde as informações de uma camada nos dados da camada superior. Analisando as afirmações anteriores, conclui-se que A. As duas afirmações são verdadeiras, e a segunda justifica a primeira. B. As duas afirmações são verdadeiras, e a segunda não justifica a primeira. C. A primeira afirmação é verdadeira, e a segunda é falsa. D. A primeira afirmação é falsa, e a segunda é verdadeira. E. As duas afirmações são falsas.
Questões discursivas 1 Qual o papel do cabeçalho na comunicação horizontal no modelo de camadas? 2 É possível termos um PDU que não transporte dados de usuário? Se for possível, qual seria a função desse PDU? 3 É possível que em um dispositivo exista mais de uma pilha de protocolos? Dê um exemplo diferente do livro. 4 Tente descobrir como se chamou a iniciativa do governo brasileiro em padronizar sua arquitetura de redes seguindo o modelo OSI. 5 Quais as camadas ausentes no modelo Internet que estão presentes no modelo de cinco camadas? E em relação ao modelo OSI? 6 Quais as principais funções de cada camada no modelo Internet? Apresente, pelo menos, dois protocolos utilizados em cada nível. 7 Suponha que você foi contratado para desenvolver uma aplicação que utilize serviços de uma rede baseada no modelo de camadas. Qual a primeira camada cujos protocolos você iria avaliar para implementar essa aplicação? Por quê? 8 Suponha que você foi contratado para desenvolver um novo protocolo para transmissão de dados. Esse protocolo deve ter a preocupação de lidar com a sinalização e interface de comunicação. (a) Qual a primeira camada cujos protocolos existentes você iria avaliar para implementar esse novo protocolo? (b) Com qual ou quais camadas adicionais você deverá preocuparse? Por quê?
3 Camada Física
3.1 Introdução Este capítulo apresenta as principais funções da camada física, responsável pela efetiva transmissão dos dados, oferecendo uma visão geral do processo, as características de um sinal, problemas relacionados à transmissão, largura de banda e capacidade máxima de transmissão, e os diversos tipos de meios de transmissão com e sem fio. O capítulo apresenta o processo de digitalização, especialmente a codificação PCM, a sinalização analógica e digital, sinalização multinível e as técnicas de multiplexação por divisão de frequência e divisão de tempo. São apresentados os conceitos de transmissão simplex, half-duplex e fullduplex, transmissão serial e paralela e transmissão assíncrona e sincronização. Finalmente, são abordadas as diferentes topologias de redes ponto a ponto e multiponto. O estudo da camada física é extenso, e existem diversos livros dedicados exclusivamente ao assunto. Duas referências nessa área são [Lathi, 1998] e [Skar, 2001].
3.2 Processo de Transmissão O processo de transmissão envolve o tratamento de dados e sinais. Um dado é uma informação armazenada no dispositivo de origem que se deseja transmitir para o dispositivo de destino. Para ser transmitido, o dado precisa ser codificado em um sinal que percorrerá o canal de comunicação até chegar ao destino, onde será decodificado (Fig. 3.1). Por exemplo, quando alguém fala ao telefone, a voz (dado) é codificada em pulsos elétricos (sinal) e transmitida utilizando o par telefônico (canal de comunicação). No destino, os pulsos elétricos são decodificados para o
formato original. A codificação e a decodificação do sinal são implementadas pela interface de comunicação, que no exemplo é o próprio telefone. Tanto dados quanto sinais podem ser classificados como analógicos ou digitais. O termo analógico está associado à ideia de valores que variam continuamente no tempo dentro de um conjunto infinito de valores (Fig. 3.2a). Por exemplo, a visão e a audição humanas envolvem o tratamento de dados e sinais analógicos. O termo digital está associado à ideia de valores que variam de forma discreta em função do tempo dentro de um conjunto finito de valores (Fig. 3.2b). Computadores são considerados digitais porque representam dados e sinais apenas com dois valores: 0 ou 1.
F IGURA 3.1
Processo de transmissão.
F IGURA 3.2
Sinais analógico e digital.
Em redes de computadores, os dados estão sempre no formato digital, porém esses dados, para serem transmitidos, devem ser codificados em sinais analógicos ou digitais. A camada física tem como principal função a transmissão efetiva dos dados, representados por uma sequência de bits que formam o PDU da camada física (PDU-F). A sequência de bits deve ser codificada em sinais na origem e transmitida pelo canal de comunicação. Os sinais recebidos no destino são decodificados, formando novamente a sequência de bits transmitida. No exemplo da Fig. 3.3, os dados estão sendo transmitidos utilizando sinais digitais.
F IGURA 3.3
Camada física.
A escolha do tipo de sinal que será utilizado na codificação depende de alguns fatores, como, por exemplo, o meio de transmissão utilizado. Alguns meios aceitam apenas sinalização analógica como a fibra ótica e as transmissões sem fio. Mesmo nos meios que aceitam sinalização digital, como o par trançado e o cabo coaxial, o sinal digital impõe certas restrições à transmissão.
3.3 Características do Sinal Para entendermos as técnicas de codificação utilizadas na camada física é necessário compreender, inicialmente, as características de um sinal, pois é a partir dessas características que o processo de sinalização é implementado. O tipo mais simples de sinal é chamado sinal periódico, pois suas características se repetem em função do tempo. A Fig. 3.4 apresenta dois exemplos de sinal periódico; a Fig. 3.4a apresenta uma
onda senoidal, que representa um sinal analógico, e a Fig. 3.4b apresenta uma onda quadrada, que representa um sinal digital. Existem três características fundamentais em um sinal, que são a amplitude, a frequência e a fase, presentes em sinais tanto analógicos quanto digitais.
F IGURA 3.4
Sinal periódico.
A amplitude de um sinal está relacionada à sua potência e geralmente é medida em volts. A grande diferença entre os sinais analógico e digital é como a amplitude varia em função do tempo. Enquanto no sinal analógico a amplitude varia continuamente, no sinal digital a amplitude varia discretamente em função do tempo. Por exemplo, em um sinal analógico a amplitude varia continuamente de zero a um valor máximo, retorna a zero, atinge um valor mínimo e retorna novamente a zero (Fig. 3.4a). Em um sinal digital, a amplitude varia abruptamente de zero a um valor máximo,
permanece nesse valor por um intervalo de tempo, atinge abruptamente o valor mínimo, permanece nesse valor por um intervalo de tempo e retorna a zero (Fig. 3.4b). A frequência de um sinal é o número de vezes que o ciclo se repete no intervalo de 1 segundo. O ciclo representa a variação completa da amplitude do sinal, ou seja, a variação de zero a um valor máximo, passando por um valor mínimo e retornando novamente a zero. A frequência é medida em ciclos por segundo ou em hertz (Hz). Se um sinal leva 1 segundo para completar o ciclo, a frequência do sinal é de 1 Hz. A Fig. 3.5 apresenta três sinais analógicos com a mesma amplitude e frequências de 1 Hz, 2 Hz e 3 Hz, respectivamente.
F IGURA 3.5
Frequência de um sinal analógico.
As variações de frequência são especialmente importantes para a audição e visão humanas. O ouvido humano capta sons com frequências entre 100 Hz e 18000 Hz; as frequências mais baixas representam os
sons mais graves, e as mais altas, os agudos. A visão humana capta sinais com frequências entre 4,3*1014 Hz e 7*1014 Hz. A frequência mais baixa representa a cor vermelha, e a mais alta, a cor violeta. Frequências abaixo do vermelho (infravermelho) ou acima do violeta (ultravioleta) não são visíveis ao olho humano. A fase de um sinal está relacionada ao conceito de período. O período é o tempo correspondente à duração de um ciclo do sinal. Por exemplo, a Fig. 3.5 apresenta três sinais analógicos, com o período do sinal igual a 1, 1/2 e 1/3 segundo, respectivamente. A fase pode ser definida como o deslocamento do sinal dentro do seu período de tempo. O deslocamento do sinal é medido em graus, variando de 0º a 360º. A Fig. 3.6 apresenta três sinais analógicos com amplitudes e frequências constantes, porém com deslocamentos de fase de 0º, 90º e 180º, respectivamente.
F IGURA 3.6
Fase de um sinal analógico.
O último conceito relativo à característica do sinal é o comprimento de onda. O comprimento de onda, representado pela letra grega lambda (λ),
é a distância entre dois pontos na mesma fase do sinal em dois ciclos consecutivos. A Fig. 3.7 apresenta três sinais analógicos com comprimentos de ondas diferentes, medidos na fase de 90º. Como pode ser observado, o comprimento de onda varia conforme a frequência do sinal. Quanto mais alta a frequência, menor o comprimento de onda.
F IGURA 3.7
Comprimento de onda.
3.4 Problemas na Transmissão Qualquer transmissão está sujeita a problemas que podem modificar a forma original do sinal e, consequentemente, alterar o significado do dado transmitido. O projeto de um sistema de comunicação deve levar em consideração os diversos tipos de problemas na transmissão, tentando evitá-los ou minimizá-los, para que se possa aumentar a confiabilidade do sistema. Existem diversos tipos de problemas envolvendo a transmissão de dados. A seguir, são apresentados os dois principais problemas que podem afetar a integridade da transmissão: ruído e atenuação.
3.4.1 Ruídos
O problema de ruído é consequência de interferências eletromagnéticas indesejadas que provocam distorções nos sinais transmitidos e alteram o seu significado. A Fig. 3.8 apresenta os dados transmitidos, o sinal digital utilizado para a transmissão do dado, o ruído e o dado recebido no destino. Como podemos observar, dois bits foram alterados pelo efeito do ruído.
F IGURA 3.8
Exemplo de efeito do ruído.
O nível de ruído em uma transmissão é medido como uma relação entre a potência do sinal e a potência do ruído, chamada de relação sinal-ruído (RSR). Quanto maior a relação sinal-ruído, melhor a qualidade do sinal. A unidade utilizada para medir a relação sinal-ruído é conhecida como decibel (dB) e aplica uma escala logarítmica à RSR, conforme a fórmula 10 log10 RSR. Por exemplo, em uma transmissão em que a potência do sinal é 1000 e a potência do ruído é 10, a relação sinal-ruído em decibel (RSRdB) é igual a 20 dB, conforme o cálculo a seguir: RSRdB RSRdB RSRdB RSRdB RSRdB RSRdB
= = = = = =
10 10 10 10 10 20
log10 RSR * log10 (1000/10) * log10 100 * log10 102 * 2 dB
Existem diferentes tipos de ruídos que podem afetar uma transmissão, como o ruído térmico, intermodulação, crosstalk e ruído impulsivo. O ruído térmico ou ruído branco está presente na maioria dos canais de comunicação e é uma consequência do aquecimento do meio em função da movimentação dos elétrons. Esse tipo de ruído não pode ser eliminado, mas pode ser tratado de forma a não prejudicar a transmissão. O ruído de intermodulação pode ser encontrado em canais de comunicação que utilizem a técnica de multiplexação por divisão de frequência, que será detalhada posteriormente neste capítulo. De forma resumida, a multiplexação por divisão de frequência permite que a largura
de banda do canal seja dividida em faixas e cada uma possa ser utilizada para a transmissão de dados de forma independente. Nesse caso, faixas adjacentes podem interferir umas nas outras, causando ruídos na transmissão. O ruído do tipo crosstalk é consequência da proximidade física de cabos e antenas. Por exemplo, no sistema telefônico, é possível que durante uma ligação se escute a conversa de outra pessoa. Esse problema, conhecido como “linha cruzada”, se deve à proximidade de pares impropriamente condicionados que geram a interferência. O ruído impulsivo é bastante diferente dos anteriores. Enquanto o ruído térmico, de intermodulação e crosstalk são previsíveis e podem ser tratados de forma a não comprometer o sistema de comunicação, o ruído impulsivo é imprevisível quanto a sua ocorrência e intensidade. Por isso, esse tipo de ruído é considerado o maior problema na transmissão de dados. Ruídos impulsivos são consequência de descargas elétricas que produzem um ruído com amplitude maior que o sinal transmitido. Existem diversas fontes que podem gerar o problema, como motores, raios ou mau funcionamento de algum dispositivo de comunicação. A Fig. 3.8 apresenta um exemplo em que o ruído impulsivo comprometeu dois bits transmitidos. A maneira indicada para medir a qualidade de um canal de comunicação é utilizando a taxa de erro de bit, ou BER (Bit Error Rate). A BER é calculada dividindo-se o número de bits recebidos com erro pelo número total de bits transmitidos. Por exemplo, um canal com BER igual a 1/106 significa que a cada um milhão de bits transmitidos um bit apresenta erro na transmissão. Existe uma relação entre a taxa de transmissão e a taxa de erro. Por exemplo, se em uma transmissão de 10 Mbps ocorrer um ruído com duração de 0,1 segundo, um milhão de bits será comprometido. Logo, quanto maior a taxa de transmissão, maior o problema gerado pela ocorrência de ruídos.
3.4.2 Atenuação
O problema de atenuação é consequência da perda de potência do sinal transmitido à medida que o sinal percorre o canal de comunicação até atingir o destino. Nesse caso, o meio de transmissão funciona como um filtro, reduzindo a amplitude do sinal e impedindo que o receptor decodifique corretamente o sinal recebido. A Fig. 3.9 apresenta o efeito da atenuação na amplitude de um sinal digital. Como pode ser observado, conforme o dado percorre o canal de comunicação, a potência do sinal diminui.
O nível de atenuação do sinal depende do tipo de meio de transmissão utilizado. Por exemplo, a fibra ótica oferece uma atenuação menor que o par trançado e o cabo coaxial. Por isso, o efeito da atenuação limita diretamente o comprimento máximo de cabos e a distância máxima entre antenas. Por exemplo, em redes locais Ethernet que utilizam o padrão 100BASE-TX, o comprimento máximo do cabo é de 100 metros.
F IGURA 3.9
Atenuação de um sinal digital.
Problemas de atenuação podem ser resolvidos utilizando-se equipamentos especiais que recuperam a potência original do sinal. No caso de sinais analógicos, utilizam-se amplificadores para recuperar o sinal, enquanto em sinais digitais utilizam-se regeneradores ou repetidores. Dependendo da distância, pode ser necessária a instalação de um ou mais equipamentos em pontos específicos da rede, permitindo a recuperação do sinal original. A Fig. 3.10 apresenta um sinal digital atenuado sendo regenerado.
F IGURA 3.10
Regeneração de um sinal digital.
A atenuação em sinais analógicos apresenta dois problemas adicionais que devem ser considerados. O primeiro está relacionado ao nível de frequência que está sendo utilizado, pois quanto mais altas as frequências, maiores os efeitos da atenuação. O segundo problema está na amplificação do ruído, que ocorre juntamente com a recuperação do sinal, o que pode comprometer a decodificação correta do sinal.
3.5 Largura de Banda e Capacidade de Transmissão A largura de banda define o número máximo de frequências que podem ser sinalizadas em um canal de comunicação sem que haja perdas expressivas na transmissão. A largura de banda é uma característica física do meio de transmissão e define a capacidade máxima de dados que um determinado canal pode transportar. Por exemplo, as linhas telefônicas convencionais suportam frequências entre 300 Hz e 3400 Hz, aproximadamente. Nesse caso, a largura de banda do canal é a diferença entre o limite superior e o limite inferior, ou seja, 3100 Hz. O espectro de frequências possíveis nesse intervalo é definido como banda passante do canal de comunicação. Apesar de o ouvido humano poder captar ondas sonoras localizadas entre 100 Hz e 18000 Hz, exigindo, portanto, um canal de comunicação com largura de banda de no mínimo 17900 Hz, o sistema telefônico, por razões econômicas, oferece uma largura de banda de apenas 3100 Hz. Em geral, quanto maior a banda passante, maior o custo do canal de comunicação. Nesse caso, grande parte dos sinais que são percebidos pelo ouvido humano simplesmente não é transmitida e, apesar da perda de qualidade na transmissão, a comunicação continua inteligível entre as partes.
■ Teorema de Nyquist
Existe uma relação entre a largura de banda e a capacidade máxima de transmissão do canal de comunicação, ou seja, quantos bits por segundo (bps) o canal pode transportar. Informalmente, quanto maior a largura da banda, mais informações podem ser transmitidas pelo canal de comunicação. Uma forma mais precisa de se calcular a capacidade máxima de transmissão é obtida a partir do teorema de Nyquist. O teorema afirma que em um canal de comunicação com largura de banda
W é possível transportar no máximo 2W sinais, na ausência de qualquer tipo de ruído. Se considerarmos que a transmissão utilize apenas dois níveis de sinal para representar 0 e 1, a capacidade máxima de transmissão (CMT) é igual a 2W bps. Para exemplificar a utilização do teorema de Nyquist, vejamos sua aplicação no sistema telefônico. Com uma largura de banda aproximada de 3100 Hz, uma linha telefônica convencional poderia suportar no máximo 6200 bps. CMT = 2W CMT = 2 * 3100 CMT = 6200 bps
Para alcançar taxas de transmissão maiores que as impostas pelo teorema de Nyquist, é necessário enviar um número maior de bits por sinal, implementando a técnica de sinalização multinível, que será detalhada posteriormente neste capítulo. De forma resumida, a sinalização multinível permite enviar mais de um bit por sinal, através de diferentes níveis de sinalização. Por exemplo, para enviar dois bits por sinal são necessários, pelo menos, quatro níveis de sinalização. A Fig. 3.11 apresenta uma sinalização com quatro variações de amplitude, e cada nível representa dois bits.
F IGURA 3.11
Sinalização multinível.
Utilizando a sinalização multinível, o teorema de Nyquist pode ser alterado para 2W log2 N, em que W é a largura de banda do canal de comunicação e N, o número de níveis implementados na sinalização. Por exemplo, a linha telefônica com largura de banda de 3100 Hz e uma sinalização de 16 níveis terá uma capacidade máxima de transmissão de 24800 bps, conforme o cálculo a seguir:
CMT CMT CMT CMT CMT
= = = = =
2W log2 N 2 * 3100 * log2 16 6200 * log2 24 6200 * 4 24800 bps
■ Teorema de Shannon
Até o momento, o cálculo da capacidade máxima de transmissão utilizando o teorema de Nyquist não levou em consideração a existência de problemas na transmissão, como ruídos e atenuação. Na prática, a presença de qualquer tipo de interferência limita a capacidade máxima de transmissão do canal de comunicação, tornando apenas teórico o valor calculado a partir do teorema de Nyquist. O teorema de Shannon permite calcular a capacidade máxima de transmissão na presença de ruído, conforme a fórmula W log2 (1+RSR), em que W representa a largura de banda do canal de comunicação e RSR, a relação sinal-ruído. O teorema de Shannon leva em consideração apenas a existência de ruído térmico interferindo na transmissão, ou seja, atenuação e outros tipos de ruído não são considerados. Para exemplificar o teorema de Shannon, vejamos sua aplicação em uma linha telefônica comum com largura de banda de 3100 Hz e uma relação sinal-ruído de 30 dB. O primeiro passo é converter a relação sinalruído em dB para a sua forma não logarítmica. Obtida a relação sinalruído, é possível calcular a capacidade máxima de transmissão de 31000 bps, conforme o cálculo a seguir. Como o teorema não considera outros tipos de ruídos, mas apenas ruído térmico, a capacidade máxima de transmissão é, na verdade, menor que o valor apresentado. RSRdB = 10 log10 RSR 30 = 10 * log10 RSR 3 = log10 RSR RSR = 103 RSR = 1000
CMT CMT CMT CMT CMT CMT
= = = ≈ ≈ ≈
W log2 (1 + 3100 * log2 3100 * log2 3100 * log2 3100 * 10 31000 bps
RSR) (1 + 1000) 1001 210
3.6 Meios de Transmissão O meio de transmissão serve para transportar fisicamente os sinais codificados entre o transmissor e o receptor. Os meios de transmissão
podem ser classificados em duas categorias: meios com fio e sem fio. Na primeira categoria existem fios ou cabos ligando o transmissor ao receptor, enquanto na segunda existe o ar, água ou vácuo fazendo esse papel. A Tabela 3.1 apresenta os meios de transmissão em função dessa classificação. Tabela 3.1
Meios de transmissão com e sem fio
Meios com fio
Meios sem fio
Par trançado
Rádio
Cabo coaxial
Micro-ondas
Fibra ótica
Satélite Infravermelho
3.6.1 Características dos Meios de Transmissão
As principais características dos meios de transmissão e que permitem diferenciá-los são relacionadas ao tipo de sinalização, largura de banda e capacidade de transmissão, confiabilidade, segurança, facilidade de instalação e custo do meio.
■ Tipo de sinalização
Quanto ao tipo de sinalização, um determinado meio de transmissão pode suportar sinalização analógica, sinalização digital ou ambas. A Tabela 3.2 apresenta os meios de transmissão e o tipo de sinalização suportada. Como pode ser observado, meios de transmissão sem fio suportam apenas a transmissão de sinais analógicos, bem como transmissões utilizando fibra ótica. Apenas o par trançado e o cabo coaxial permitem a transmissão de sinais analógicos e digitais. Vale ressaltar que um meio que permite apenas sinais analógicos como a fibra ótica permite que os dados sejam transmitidos digitalmente. Nesse caso, os dados são digitais, e o sinal é analógico. O mesmo exemplo é aplicado aos telefones celulares digitais, que transmitem a voz digitalizada utilizando sinais analógicos.
Tabela 3.2
Meios de transmissão e tipos de sinalização
Meio de transmissão
Sinalização analógica
Sinalização digital
Par trançado
√
√
Cabo coaxial
√
√
Fibra ótica
√
Rádio, micro-ondas e satélite
√
Infravermelho
√
■ Largura de banda e capacidade de transmissão
A Fig. 3.12 apresenta o espectro de frequências e o intervalo que cada meio de transmissão ocupa no espectro. A partir do espectro de frequências é possível verificar a largura de banda do meio e calcular sua capacidade de transmissão máxima. Como pode ser observado, as frequências mais altas oferecem maior largura de banda e, consequentemente, maiores taxas de transmissão. O espectro de frequências é administrado internacionalmente pelo ITU e no Brasil pela Agência Nacional de Telecomunicações [Anatel, 2004].
F IGURA 3.12
Espectro de frequências [Stallings, 2000].
O espectro de frequências é especialmente importante em transmissões sem fio, pois quanto mais baixa a frequência, mais fácil para o sinal ultrapassar barreiras físicas, como paredes e montanhas. Além disso, as frequências mais baixas são menos suscetíveis ao problema de atenuação do sinal. Por outro lado, as frequências mais altas precisam de antenas menores e o sinal pode ser mais facilmente direcionado.
■ Confiabilidade
A confiabilidade de um meio de transmissão está associada à sua capacidade de ser menos suscetível a problemas na transmissão, como ruído e atenuação. De maneira geral, as transmissões sem fio são mais suscetíveis a problemas que as transmissões com fio. Mesmo em redes cabeadas, transmissões utilizando fibra ótica são menos suscetíveis a problemas do que as que utilizam cabo coaxial, que, por sua vez, são menos suscetíveis que as de par trançado. No caso específico do problema da atenuação, os meios de transmissão menos suscetíveis aos seus efeitos permitem um espaçamento maior entre os repetidores, reduzindo, consequentemente, o custo de instalação da rede.
■ Segurança
A segurança de um meio de transmissão está associada a sua capacidade de garantir a confidencialidade das informações trafegadas ou, pelo menos, dificultar o processo de escuta indevida dos dados. Por exemplo, em redes com fio existe a necessidade de contato físico com o meio de transmissão, o que torna a escuta nesse tipo de meio muito mais difícil que em redes sem fio. Devido à própria natureza da transmissão sem fio, os sinais podem ser facilmente interceptados. Nesse caso, os dados devem ser sempre criptografados para manter a confidencialidade da comunicação.
■ Instalação e manutenção
A complexidade da instalação e manutenção do meio de transmissão vai depender, basicamente, do tipo do meio e interfaces de comunicação, número de dispositivos e distância que os separam. No caso de redes cabeadas, a passagem de cabos nem sempre é uma tarefa simples, especialmente quando envolve prédios antigos, centros históricos, áreas industriais e regiões de difícil acesso como florestas. A grande vantagem dos meios de transmissão sem fio é justamente a facilidade de instalação,
pois dispensa a passagem de cabos, que muitas vezes exige a criação de dutos próprios. No caso de uma rede local, a instalação dispensa totalmente o uso de fios.
■ Custo
O custo do meio de transmissão envolve, além do próprio meio, os custos de instalação e manutenção, e os custos das interfaces de comunicação e dispositivos de rede como hubs e switches. De uma maneira geral, quanto maiores o número de dispositivos e a distância que os separa, maior será o custo como um todo. No caso de redes sem fio de curto alcance, que utilizam pequenas antenas, os custos de instalação são mínimos. Por outro lado, redes sem fio de longo alcance exigem diversas antenas para propagar o sinal, o que torna considerável o custo de instalação. Em redes distribuídas e metropolitanas, os meios de transmissão são alugados de alguma empresa de telecomunicações, que arca com todo o custo de instalação e manutenção da rede física. No caso das redes locais, o meio de transmissão pertence à própria instituição, que arca com todos os custos envolvidos.
3.6.2 Par Trançado
O par trançado, também chamado de cabo telefônico, consiste em dois fios de cobre envoltos em material plástico, enrolados em forma de espiral para reduzir o efeito de ruídos e manter constantes suas propriedades elétricas. O par trançado suporta sinalização tanto analógica quanto digital. No caso de sinais analógicos, o efeito da atenuação é menor que na sinalização digital. Existem dois tipos de cabo: o par trançado não blindado e o par trançado blindado. O par trançado não blindado ou UTP (Unshielded Twisted Pair) oferece baixo custo e fácil instalação se comparado aos outros meios cabeados, porém é suscetível a diferentes tipos de ruídos, como crosstalk e ruídos impulsivos. Apesar desses problemas, o par trançado não blindado permite taxas de transmissão acima de 1 Gbps em pequenas distâncias. O cabo UTP é padronizado internacionalmente em categorias que evoluem para oferecer maiores larguras de faixa e, consequentemente, melhores taxas de transmissão. A Tabela 3.3 apresenta as principais categorias de cabo UTP utilizadas em redes locais Ethernet. Tabela 3.3
Categorias de cabos UTP
Categoria
Largura de banda
Taxa de transmissão
Cat. 3
16 MHz
Até 10 Mbps.
Cat. 5
100 MHz
Até 100 Mbps.
Cat. 5e
100 MHz
Até 1 Gbps.
Cat. 6
250 MHz
Acima de 1 Gbps.
Cat. 6a
500 MHz
Até 10 Gbps.
Cat. 7
600 MHz
Acima de 10 Gbps.
O par trançado blindado ou STP (Shielded Twisted Pair) possui um revestimento externo que reduz interferências, permitindo maiores distâncias e taxas de transmissão. Por outro lado, o STP é mais caro e difícil de manusear que o UTP. Por isso, o par trançado blindado raramente é utilizado. Uma das aplicações para o cabo STP é em redes locais Token Ring e redes Ethernet 10 Gbits. O par trançado UTP é utilizado no sistema telefônico, conectando o telefone dos usuários às centrais telefônicas, em escritórios conectando telefones ao PBX (Private Branch Exchange) e em redes locais Ethernet. A Fig. 3.13a apresenta um cabo UTP formado por quatro pares, utilizado no cabeamento de redes locais Ethernet. A Fig. 3.13b apresenta um conector RJ-45 utilizado para a conexão do cabo UTP à interface de rede Ethernet.
F IGURA 3.13
Cabo UTP e conector RJ-45.
3.6.3 Cabo Coaxial
O cabo coaxial é formado por dois condutores, um interno e um externo, e entre os condutores existe um material isolante. O condutor externo é uma malha metálica que serve de blindagem para o condutor interno, feito de cobre. O cabo é revestido por uma proteção plástica (Fig. 3.14).
F IGURA 3.14
Cabo coaxial.
Devido a sua construção, o cabo coaxial é menos suscetível a ruídos que o par trançado, oferece taxas de transmissão mais altas e distâncias maiores, porém seu custo é maior e sua instalação não é tão simples quanto a do par trançado. O cabo coaxial permite sinalização tanto analógica quanto digital. O cabo coaxial é utilizado em diversos tipos de aplicações. No sistema de TV a cabo, é utilizado na transmissão de áudio, vídeo e dados, geralmente para acesso à Internet. No sistema telefônico, cabos coaxiais são utilizados para transmissões de longa distância, porém esse meio vem sendo substituído por fibra ótica. Cabos coaxiais já foram largamente utilizados em redes locais, porém, atualmente, o par trançado e a fibra ótica substituíram esse meio.
3.6.4 Fibra Ótica
A fibra ótica utiliza a luz para a transmissão de dados, ao contrário do par trançado e do cabo coaxial, que utilizam sinais elétricos. Para que a luz possa ser enviada pela fibra sem que haja dispersão, utiliza-se um princípio da ótica chamado refração. A Fig. 3.15 mostra um feixe de luz passando de um meio para outro com índices de refração diferentes. Dependendo do ângulo de incidência do raio, a luz pode ser refratada (Fig. 3.15a) ou refletida de volta para o meio do qual partiu o feixe (Fig. 3.15b).
F IGURA 3.15
Refração e reflexão da luz.
O cabo de fibra ótica consiste em um núcleo feito de vidro ou plástico, da espessura aproximada de um fio de cabelo. O núcleo é envolvido por um revestimento (cladding) feito de um material que possui índice de refração menor que o núcleo. O núcleo e o revestimento são envoltos por uma proteção plástica (Fig. 3.16). Seguindo o princípio da refração, um raio de luz gerado na origem pode ser refletido pelo revestimento e ser guiado pelo núcleo, aplicando a angulação correta. A fibra permite apenas sinalização analógica. A presença de luz indica o bit 1, e a ausência de luz representa o bit 0.
F IGURA 3.16
Fibra ótica.
As fibras óticas podem ser classificadas em dois tipos, dependendo do número de feixes de luz que são encaminhados pela fibra. Na fibra singlemode (SM) ou monomodo, apenas um feixe de luz é transportado pelo meio, enquanto na fibra multimodo (MM) diversos feixes são encaminhados. As fibras SM são utilizadas para transmissões em longa distância, como em redes distribuídas, enquanto as fibras MM são para curtas distâncias, como em redes locais. As fibras MM ainda podem ser
classificadas em duas categorias: multímodo de índice degrau e multímodo de índice gradual. Um sistema de transmissão ótico é composto por três componentes: uma fonte luz, o cabo de fibra ótica propriamente dito e um detector ótico. Existem, basicamente, dois tipos de fonte responsáveis pela sinalização da luz no meio: LED (Light Emitting Diode) e laser. O detector ótico tem a função de receber o sinal de luz e converter para um sinal elétrico (Fig. 3.17). Além desses elementos, existem diversos tipos de conectores que fazem a conexão do cabo de fibra ótica com a interface de rede; os mais conhecidos são os conectores ST, SC, LC e MTRJ.
F IGURA 3.17
Sistema de transmissão ótico.
A utilização de fibra ótica oferece diversas vantagens. Como possui uma grande largura de banda, a fibra oferece uma enorme capacidade de transmissão. Além disso, a fibra é imune a ruídos e, portanto, ideal para ambientes com elevada interferência eletromagnética, como em fábricas. O problema de atenuação tem um efeito bem menor que em outros meios, permitindo maiores distâncias e um número menor de repetidores. A fibra ótica também é mais segura, pois, como não emite radiação, dificulta a escuta do meio. Finalmente, o cabo de fibra é leve e fino, o que facilita a instalação física da rede. A fibra ótica possui porém algumas desvantagens: é mais cara que os outros tipos de cabos, como também conectores, interfaces de rede e demais componentes óticos. A fibra também é mais difícil de ser reparada caso haja rompimento do cabo. A fibra ótica vem substituindo cabos coaxiais e satélites no sistema de telefonia, permitindo criar redes de alta velocidade. Além disso, cabos de fibra ótica vêm ganhando espaço nas redes locais. É possível que no futuro a fibra ótica substitua integralmente o par trançado e o cabo coaxial. Mais informações sobre fibras óticas, consultar [Hecht, 1993] e [Held, 2001].
3.6.5 Rádio
O espectro de frequências de rádio inclui as faixas de rádio AM, rádio FM, TV aberta e telefonia móvel celular. Nesse espectro as ondas passam facilmente por obstáculos, como paredes, e podem alcançar longas
distâncias, especialmente quando as ondas são refratadas na ionosfera (Fig. 3.18). A transmissão via rádio utiliza antenas onidirecionais, ou seja, os sinais são transmitidos em todas as direções. Nesse caso, não há necessidade de que o transmissor e o receptor estejam alinhados ponto a ponto, como ocorre nas transmissões que utilizam frequências mais altas.
F IGURA 3.18
Refração do sinal na ionosfera.
Como os sinais na frequência de rádio são transmitidos por difusão, ou seja, para todas as direções, o problema com interferências deve ser evitado. Por isso, a utilização do espectro de frequência é regulamentada pelos governos de cada país. No entanto, existem algumas faixas de frequência, chamadas ISM (Industrial, Scientific, Medical), que podem ser utilizadas livremente, desde que a transmissão seja feita em baixa potência para evitar interferências. As redes locais sem fio, que seguem o padrão IEEE 802.11, e telefones sem fio funcionam em faixas ISM.
3.6.6 Micro-ondas
A transmissão na faixa de micro-ondas utiliza antenas direcionais, ou seja, as antenas funcionam no esquema ponto a ponto. Em função da curvatura da Terra, a distância máxima entre duas antenas de micro-ondas pode ser de no máximo 48 km, sem nenhum tipo de obstáculo entre elas. Para permitir distâncias maiores e evitar os obstáculos, as antenas devem ser colocadas em algum tipo de elevação. Transmissões que utilizam microondas são suscetíveis a interferências e atenuação, especialmente em caso de chuva. Transmissões de micro-ondas são largamente utilizadas no sistema de telefonia para a transmissão de voz e por emissoras de televisão para a transmissão de áudio e vídeo. As frequências de micro-ondas,
especialmente as mais altas, são muito utilizadas em redes para a conexão ponto a ponto de prédios próximos (Fig. 3.19).
F IGURA 3.19
Conexão ponto a ponto utilizando micro-ondas.
3.6.7 Satélite
A comunicação via satélite utiliza estações terrestres e satélites que ficam em órbita da Terra e funcionam como repetidores. Por exemplo, na Fig. 3.20a, a estação terrestre A transmite um sinal para o satélite, que recebe, amplifica e retransmite o sinal para a estação terrestre B. Um satélite recebe sinais por uma frequência, chamada de uplink, e retransmite por outra frequência diferente, chamada downlink, para evitar interferências. Um satélite pode trabalhar com várias frequências, e cada frequência que o satélite opera é chamada de transponder. A Fig. 3.20a apresenta a comunicação ponto a ponto utilizando um satélite, enquanto a Fig. 3.20b apresenta a comunicação multiponto com o satélite transmitindo sinais para várias estações terrestres. Os satélites que acompanham a rotação da Terra são chamados de geoestacionários e ficam a 36.000 km de altura, aproximadamente. Esse tipo de posicionamento permite o fácil alinhamento entre as estações terrestres e o satélite em órbita. Dois satélites que operam na mesma frequência não podem estar muito próximos um do outro, caso contrário haveria interferência. Isso reduz bastante o número de satélites que podem ocupar a mesma órbita. A grande vantagem da transmissão via satélite é a cobertura geográfica. Com poucos satélites é possível cobrir todas as áreas do planeta, chegando a locais em que a utilização de cabos não é possível ou não é
financeiramente viável. Outra vantagem na utilização de satélites é a grande largura de banda, oferecendo altas taxas de transmissão. Transmissões via satélite são suscetíveis a ruídos e atenuação, especialmente em certas frequências. Além disso, existe um tempo de atraso de propagação do sinal de aproximadamente 250 milissegundos, decorrente da distância que o sinal deve percorrer entre a estação transmissora até o satélite e do satélite até a estação receptora.
F IGURA 3.20
Comunicação via satélite.
A comunicação via satélite é muito utilizada na transmissão de TV pela facilidade de distribuir o sinal para vários receptores. As companhias de telefonia também utilizam largamente a transmissão via satélite para ligações telefônicas de longa distância. Empresas utilizam satélites como parte de suas redes de dados para conectar escritórios em outras cidades ou países. Para informações adicionais sobre a utilização de satélites em redes de computadores, consultar [Hu, 2001].
3.6.8 Infravermelho
As frequências chamadas de infravermelho ficam logo abaixo da luz visível. O sinal de infravermelho não ultrapassa obstáculos, como paredes, e é indicado para a conexão de dispositivos próximos, geralmente dentro de um mesmo ambiente. Dessa forma, é possível que dispositivos operando na mesma faixa de frequência mas em ambientes diferentes funcionem sem interferir uns com os outros. O infravermelho é utilizado para a conexão de periféricos, como teclado e mouse sem fios, a um computador. Essa faixa de frequência também é utilizada no padrão IEEE 802.11 para redes locais sem fio com taxas de
transmissão de 1 e 2 Mbps. Finalmente, o infravermelho é largamente utilizado em aparelhos de controle remoto.
3.7 Digitalização Os dados transmitidos em redes de computadores estão sempre no formato digital e podem ser transmitidos utilizando-se sinais analógicos ou digitais. Para que dados analógicos, como áudio e vídeo, possam ser transmitidos pela rede, é necessária a conversão dos dados analógicos para o formato digital. O processo que permite converter dados analógicos para dados digitais é chamado digitalização. Processo semelhante é utilizado em outras aplicações, como na criação de CD de música, DVD e fotografia digital. O processo de digitalização utiliza um dispositivo chamado CODEC (COdificador-DECodificador), que realiza a conversão analógico-digitalanalógico. Na origem, o dado analógico é recebido pelo CODEC, que o converte para o formato digital. O dado digital, então, pode ser transmitido pela interface de comunicação utilizando sinais analógicos ou digitais (Fig. 3.21). No destino, o processo inverso se repete e o dado analógico é recuperado.
F IGURA 3.21
Processo de digitalização.
A digitalização vem sendo aplicada largamente no sistema de telefonia. No sistema telefônico tradicional, a voz do usuário (dado analógico) é transmitida utilizando sinalização analógica. Com a digitalização do sistema, as centrais telefônicas passaram a converter a voz para o formato digital, que é então codificada para um sinal analógico e transmitida até a central destino. A central destino recebe o sinal analógico e o converte para a voz digitalizada, que pode ser decodificada para o formato analógico e ser ouvida pelo outro usuário. Processo
semelhante ocorre nos telefones celulares que utilizam tecnologia digital. Nesse caso, o telefone possui um CODEC que converte a voz para o formato digital, que é transmitida, utilizando sinais analógicos, para a antena mais próxima. No celular destino, ocorre o processo inverso. A técnica mais utilizada para a digitalização de áudio é conhecida como PCM (Pulse Code Modulation). Nessa técnica, o sinal analógico é amostrado periodicamente, formando um sinal no formato de pulsos estreitos, chamados pulsos modulados por amplitude ou PAM (Pulse Amplitude Modulated). Cada pulso representa um intervalo de valores que o sinal pode atingir, e cada intervalo representa um nível de quantização. Para cada nível de quantização é associado um conjunto de bits, permitindo criar a codificação PCM. No exemplo da Fig. 3.22, são utilizados três bits para representar os níveis de quantização, o que permite representar oito pulsos (0 a 7), e são realizadas onze amostragens (0 a 10). O resultado é uma sequência de 33 bits que forma o código PCM. No caso do sistema telefônico, que utiliza o esquema PCM, a central digitaliza a voz do usuário e a transmite no formato analógico. Na central destino, a voz no formato digital é recuperada, e, a partir dos códigos de bits, é recriada a onda de pulsos PAM. Como o sistema utiliza 8 bits para a codificação dos pulsos PAM, é possível representar 256 níveis. Para que o processo de digitalização funcione corretamente, o número de pulsos PAM amostrados deve ser suficiente para que o código de bits gerado permita a reconstrução do sinal analógico. Pelo teorema de Nyquist, um meio com largura de banda W precisa de no máximo 2W amostras para ser recuperado corretamente. Por exemplo, a voz humana necessita de uma largura de banda de algo em torno de 4000 Hz para ser transmitida de forma inteligível. Aplicando o teorema de Nyquist, são necessárias no máximo 8000 amostras por segundo para recuperar a voz transmitida. Utilizando uma codificação de 8 bits, padrão no sistema telefônico, e 8000 amostras por segundo, é necessário um meio que ofereça, pelo menos, 64 Kbps para a transmissão digital de uma conversa telefônica.
F IGURA 3.22
Codificação PCM.
3.8 Sinalização Digital A sinalização digital é a técnica que utiliza sinais digitais para a transmissão de dados digitais ou analógicos. No caso de dados digitais, as informações estão prontas para ser transmitidas, bastando serem codificadas para um sinal digital. No caso de dados analógicos, as informações devem ser, primeiramente, convertidas para o formato digital, através do processo de digitalização. Uma vez no formato digital, as informações podem ser codificadas em um sinal digital (Fig. 3.23).
F IGURA 3.23
Sinalização digital.
A sinalização digital é suportada apenas em meios de transmissão do tipo par trançado e cabo coaxial. Devido ao efeito da atenuação em sinais digitais, essa técnica é utilizada apenas em pequenas distâncias. A implementação da sinalização digital em distâncias maiores exige a utilização de regeneradores. A sinalização digital é, geralmente, utilizada na comunicação entre dispositivos próximos, como computadores e periféricos, em redes locais Ethernet e alguns tipos de conexões utilizando linhas telefônicas, como em conexões ISDN. A forma mais simples de sinalização digital, conhecida como codificação NRZ-L (Non Return to Zero-Level), estabelece um valor de voltagem para representar o bit 1 e um outro valor para o bit 0 (Fig. 3.24). Essa codificação é implementada no padrão EIA-232-F, e, nesse caso, o bit 1 tem o valor de -3 volts, enquanto o bit 0 tem o valor de +3 volts.
F IGURA 3.24
Codificação NRZ-L.
Uma variação da técnica NRZ-L é conhecida como NRZ-I (Non Return to Zero Invert). Nesse esquema de sinalização, também chamado de codificação diferencial, o dado é representado em termos de mudanças de sinais. O bit 0 é representado quando não há variação do sinal, e o bit 1, quando ocorre uma transição do sinal em relação ao sinal anterior. Na Fig. 3.25 o primeiro bit 1 é representado pela transição do sinal de um valor mais baixo para um mais alto. Os dois bits 0 que se seguem são representados pela manutenção do sinal anterior. O segundo bit 1 é representado pela transição do sinal de um valor mais alto para um mais baixo.
F IGURA 3.25
Codificação NRZ-I.
As técnicas NRZ possuem diversas limitações, como o problema de sincronização, que será abordado no final deste capítulo. Na codificação Manchester existe uma transição no meio do período de cada bit, que serve para representar tanto um dado quanto um sinal de sincronismo. Uma transição positiva (valor mais baixo para um mais alto) representa o bit 1, enquanto uma transição negativa (valor mais alto para um mais baixo) representa o bit 0 (Fig. 3.26). A codificação Manchester permite que o sinal digital, além do dado, transporte também uma informação de sincronismo, permitindo ao receptor identificar o bit recebido. Esse tipo de codificação é utilizado em redes locais Ethernet de 10 Mbps.
F IGURA 3.26
Codificação Manchester.
Existem diversas técnicas de sinalização digital, que podem ser consultadas em [Stallings, 2000]. Algumas técnicas de codificação permitem, além da sincronização da transmissão, a detecção de erros a partir do próprio sinal transmitido, a melhora do desempenho da transmissão e a redução do impacto de eventuais problemas na transmissão, como ruídos.
3.9 Sinalização Analógica A sinalização digital é a forma natural para a transmissão em redes de computadores, porém nem sempre é possível implementá-la. Dependendo do meio de transmissão, a sinalização digital oferece sérias limitações ou é impossível de ser implementada. Por exemplo, o sinal digital pode ser implementado apenas em par trançado e cabo coaxial, mesmo assim com restrições de distância. Em função de suas características, transmissões
sem fio e que utilizem fibra ótica podem utilizar apenas sinalização analógica. A sinalização analógica é a técnica que utiliza sinais analógicos para a transmissão de dados digitais ou analógicos. A sinalização analógica é largamente utilizada por dispositivos conectados a linhas telefônicas, como um computador conectado à Internet utilizando uma linha telefônica. Nesse esquema de sinalização, os dispositivos são conectados ao meio através de um modem (modulador-demodulador), que tem a função de realizar a modulação do sinal na origem e a demodulação do sinal no destino. Na Fig. 3.27 o modem converte os dados digitais vindos do dispositivo em sinais analógicos para serem transmitidos pelo canal de comunicação. No destino, os sinais analógicos devem ser convertidos novamente para dados digitais. É importante ressaltar que a linha telefônica permite a sinalização digital, porém esse meio foi concebido para transmissão de voz e não oferece as condições ideais para esse tipo de transmissão.
F IGURA 3.27
Modulação e demodulação.
O processo de modulação, base da sinalização analógica, utiliza o conceito de onda portadora. A onda portadora é um sinal de frequência constante e contínuo que funciona como um meio de transporte para o dado a ser enviado. A modulação é o processo que envolve alterar uma ou mais características da onda portadora, como a amplitude, a frequência ou a fase, de forma a que o dado possa ser transmitido. O processo inverso, que permite obter os dados a partir da onda portadora, é chamado demodulação. Existem, basicamente, três técnicas de modulação: chaveamento por deslocamento de amplitude, chaveamento por deslocamento de frequência e chaveamento por deslocamento de fase. No chaveamento por deslocamento de amplitude, ou ASK (Amplitude Shift Keying), a amplitude da onda portadora é modulada de forma a representar os bits 0 e 1. Por exemplo, na Fig. 3.28 o bit 0 é representado pela ausência de amplitude, enquanto o bit 1 é representado pela própria amplitude da onda portadora. A grande vantagem dessa técnica é a sua simplicidade de implementação, porém tem a desvantagem de ser mais suscetível a
ruídos e interferências, se comparada com a técnica de FSK. O esquema ASK é utilizado na maioria dos modems e em transmissões que utilizam fibra ótica.
F IGURA 3.28
Chaveamento por deslocamento de amplitude.
No chaveamento por deslocamento de frequência, ou FSK (Frequency Shift Keying), a frequência da onda portadora é modulada de forma a representar os bits 0 e 1. Por exemplo, na Fig. 3.29, os bits 0 e 1 são representados por duas frequências distintas. O esquema FSK é muito utilizado em transmissões sem fio.
F IGURA 3.29
Chaveamento por deslocamento de frequência.
No chaveamento por deslocamento de fase, ou PSK (Phase Shift Keying), a fase da onda portadora é modulada de forma a representar os bits 0 e 1, ou pode-se utilizar a mudança de fase para representá-los. Por exemplo, na Fig. 3.30, o bit 0 é representado por uma fase contínua, enquanto o bit 1 é representado por uma inversão de fase em relação à fase anterior. Esse segundo tipo de PSK é chamado de chaveamento por deslocamento de fase diferencial. O esquema PSK é utilizado na maioria dos modems, em conjunto com o esquema ASK.
F IGURA 3.30
Chaveamento por deslocamento de fase.
3.10 Sinalização Multinível Os exemplos de sinalização apresentados até o momento codificavam apenas um bit por sinal, o bit 0 ou o bit 1. Esse tipo de codificação é chamada de sinalização monobit. É possível aumentar a taxa de transmissão enviando um número maior de bits por sinal, utilizando a técnica de sinalização multinível. Essa técnica pode ser aplicada em sinais tanto digitais quanto analógicos e está presente em diversos esquemas de sinalização. Na sinalização multinível existe uma relação entre o número de bits que se deseja transmitir e o número de sinais distintos que devem ser codificados para alcançar o nível de sinalização desejado. Por exemplo, na Fig. 3.31 existem quatro (22) sinais digitais distintos, cada um dos quais
permite representar dois bits (dibit). Nesse caso, a sinalização dibit permite dobrar a capacidade de transmissão, se comparada à transmissão monobit. A sinalização tribit permite enviar três bits por sinal, utilizando oito (23) níveis de sinalização diferentes. No caso da sinalização tribit, é possível triplicar a capacidade de transmissão se comparada à transmissão monobit. De maneira geral, é possível enviar n bits implementando 2n sinais distintos. O esquema de sinalização digital dibit é utilizado em redes locais Gigabit Ethernet que utilizam par trançado como meio de transmissão.
F IGURA 3.31
Exemplo de sinalização digital dibit.
A sinalização multinível utilizando sinais analógicos pode ser implementada criando-se variações de amplitude, frequência ou fase do sinal. Por exemplo, a Fig. 3.32 apresenta uma sinalização multinível dibit que implementa quatro variações de amplitude, e cada amplitude representa dois bits. Um exemplo de sinalização multinível muito utilizada é a que implementa quatro variações de fase, conhecida como QPSK (Quadrature Phase Shift Keying).
F IGURA 3.32
Exemplo de sinalização analógica dibit.
Na sinalização multinível, é possível combinar variações de amplitude, frequência e fase para ampliar ainda mais o número de bits enviados por sinal. Por exemplo, a sinalização multinível conhecida como QAM-16 (Quadrature Amplitude Modulation) combina quatro variações de amplitude e quatro variações de fase, permitindo 16 combinações ou quatro bits por sinal. A sinalização QAM é utilizada nos modems que implementam o padrão V.92. A taxa de transmissão de um modem pode ser especificada em bits por segundo (bps) ou em baud. Como a taxa de bps está relacionada à taxa de baud, existe uma grande dificuldade em compreender a diferença entre as duas unidades. O baud representa o número de amostras que o modem realiza por segundo, ou seja, quantas vezes em um intervalo de 1 segundo o modem sinaliza o meio. Por exemplo, em uma transmissão monobit que utilize um modem que trabalhe a 2400 baud, a cada segundo são transmitidos 2400 sinais. Nesse caso, as duas taxas serão iguais, ou seja, o modem de 2400 baud permite uma transmissão de 2400 bps. Em uma transmissão dibit utilizando o mesmo modem de 2400 baud, serão transmitidos os mesmos 2400 sinais por segundo, porém, nesse segundo caso, o modem de 2400 baud permite uma transmissão de 4800 bps.
3.11 Multiplexação A multiplexação permite que diversas transmissões independentes sejam realizadas utilizando o mesmo meio de transmissão. O principal objetivo dessa técnica é maximizar a utilização do meio e, assim, reduzir os custos de comunicação. A técnica de multiplexação é possível por dois motivos. Primeiro, a largura de banda do meio de transmissão é geralmente maior que a largura necessária para a transmissão dos dados e, consequentemente, deixa parte da banda passante ociosa (Fig. 3.33a). Segundo, o meio pode estar sendo utilizado na sua capacidade máxima, porém não o tempo todo, deixando, novamente, o meio subutilizado (Fig. 3.33b). Nos dois casos, a multiplexação permite a utilização mais eficiente da largura de banda do meio de transmissão, trazendo redução de custos.
F IGURA 3.33
Subutilização do meio.
A multiplexação é implementada utilizando-se um equipamento chamado multiplexador, ou, simplesmente, mux. Na origem, o multiplexador tem a função de combinar os dados a serem transmitidos e encaminhá-los utilizando o mesmo meio de transmissão. No destino, o multiplexador realiza o processo inverso, ou seja, separar os dados de cada dispositivo individualmente. Existem duas técnicas de multiplexação que são largamente utilizadas em redes de comunicação de dados: multiplexação por divisão de frequência e multiplexação por divisão de tempo.
3.11.1 Multiplexação por Divisão de Frequência
Na multiplexação por divisão de frequência, ou FDM (Frequency Division Multiplexing), a largura de banda do meio é dividida em canais ou faixas de comunicação, e cada um pode ser utilizado para a transmissão de dados de forma independente. Na Fig. 3.34, a largura de banda do meio está sendo dividida em cinco canais, cada um dos quais pode transportar seus próprios dados. A técnica de FDM pode ser comparada a uma rodovia com várias faixas, na qual cada veículo segue por apenas uma delas. Na multiplexação FDM, os canais são criados a partir da técnica de modulação e não precisam ter a mesma banda passante, o que permite transmitir diferentes tipos de informação no mesmo meio. Por exemplo, é possível dividir a largura de banda do meio em três canais: um para dados, um para voz e outro para vídeo (Fig. 3.35). Para evitar interferência entre os canais adjacentes (ruído de intermodulação), os canais devem ser separados por uma pequena faixa de segurança, representada na figura pela linha pontilhada. A técnica de FDM pode ser utilizada apenas em transmissões com sinalização analógica, porém permite dados tanto analógicos quanto digitais.
F IGURA 3.34
Multiplexação por divisão de frequência.
F IGURA 3.35
Exemplo de FDM.
A multiplexação por divisão de frequência é utilizada em conexões à Internet em banda larga, como na tecnologia ADSL (Asymmetric Digital Subscriber Line). Nesse caso, a multiplexação permite dividir a largura de
banda em três canais: um pequeno para ser utilizado em ligações telefônicas, um intermediário para upload e um maior para download na Internet (Fig. 3.36). Em função da diferença das larguras de faixa no ADSL, as velocidades de upload e download são diferentes ou assimétricas. A partir do FDM, a tecnologia ADSL permite que o usuário utilize o telefone ao mesmo tempo que navega na Internet.
F IGURA 3.36
FDM e ADSL.
O FDM também é utilizado largamente em outras aplicações, como no sistema telefônico, em rádios AM e FM, TV aberta, retransmissoras de micro-ondas e TV a cabo. No caso da TV a cabo, a multiplexação permite dividir o meio em três grandes faixas: uma para os canais, uma segunda para upload e outra para download na Internet. A faixa utilizada para a transmissão dos canais é subdividida em faixas menores nas quais os vários canais são modulados (Fig. 3.37).
F IGURA 3.37
FDM e TV a cabo.
Um esquema semelhante ao FDM é implementado em transmissões que utilizam fibra ótica. A multiplexação por divisão de comprimento de onda, ou WDM (Wavelength Division Multiplexing), permite criar vários canais de comunicação independentes utilizando a mesma fibra, modulando o comprimento de onda de cada canal em partes diferentes do espectro de frequências da luz.
3.11.2 Multiplexação por Divisão de Tempo
Na multiplexação por divisão de tempo, ou TDM (Time Division Multiplexing), a largura de banda não é dividida em canais, como no FDM. Na multiplexação TDM, cada dispositivo utiliza toda a largura de banda do meio por um determinado intervalo de tempo, chamado slot. Um dispositivo utilizará tantos slots quantos forem necessários para a transmissão de seus dados. O canal de comunicação desse dispositivo será formado, então, por um ou mais slots, não consecutivos (Fig. 3.38). A técnica de TDM pode ser comparada ao esquema utilizado em sistemas operacionais de tempo compartilhado, no qual cada usuário recebe uma ou mais fatias de tempo do processador para completar sua tarefa. O TDM também pode ser comparado a uma rodovia com apenas uma faixa, na qual cada veículo segue um após o outro, compartilhando o mesmo caminho.
F IGURA 3.38
Multiplexação por divisão de tempo.
A multiplexação por divisão de tempo é utilizada na rede de telefonia digital e em conexões ISDN. O TDM exige que os dados transmitidos sejam digitais, ou seja, dados analógicos devem ser primeiro digitalizados, mas permite sinalização tanto analógica quanto digital. É possível implementar as técnicas de FDM e TDM no mesmo meio de transmissão. Por exemplo, TVs a cabo que oferecem acesso à Internet implementam FDM para dividir o meio em três faixas e utilizam TDM para compartilhar as faixas de upload e download entre os vários usuários (Fig. 3.37). Existem duas variações na técnica de multiplexação por divisão de tempo: assíncrono e síncrono. No TDM assíncrono os slots de tempo são iguais, independentemente dos dados a serem transmitidos. No TDM síncrono, também chamado de TDM estatístico, os slots de tempo não são iguais para todos os dados transmitidos. Nesse caso, a alocação pode ser feita dinamicamente de acordo com o tipo do dado ou da prioridade do dispositivo.
3.12 Transmissão Simplex, Half-Duplex e FullDuplex Uma transmissão pode ser classificada como simplex, half-duplex ou fullduplex conforme a direção do fluxo de dados entre o transmissor e receptor. Em uma transmissão simplex os dados são transmitidos apenas em uma direção, ou seja, do transmissor para o receptor. O rádio, a televisão e o controle remoto são exemplos de comunicação do tipo simplex, já que só existe transmissão em um único sentido. Nos sistemas de comunicação de dados modernos, a transmissão simplex raramente é utilizada (Fig. 3.39).
F IGURA 3.39
Transmissão simplex.
Em uma transmissão half-duplex é possível que os dados sejam transmitidos nas duas direções, porém nunca de maneira simultânea (Fig. 3.40). A transmissão half-duplex pode ser comparada à comunicação que ocorre entre duas pessoas que utilizem dispositivos do tipo walkie-talkie ou radioamador. Nesse caso, enquanto uma pessoa fala, a outra deve aguardar até o término da transmissão. Após a mensagem ser recebida, o receptor torna-se o transmissor e envia a mensagem. Nesse tipo de transmissão existe um tempo necessário para inverter a direção da transmissão, conhecido como tempo de turnaround. A transmissão halfduplex é utilizada em redes locais Ethernet que utilizam hubs.
F IGURA 3.40
Transmissão half-duplex.
Em uma transmissão full-duplex, ou apenas duplex, os dados podem ser transmitidos nas duas direções simultaneamente, sem a necessidade do tempo de turnaround (Fig. 3.41). As transmissões full-duplex são predominantemente utilizadas em redes de computadores. A transmissão full-duplex pode ser implementada utilizando dois canais de comunicação independentes ou utilizando o mesmo canal. No primeiro caso, cada canal é utilizado para a transmissão em um determinado sentido. Transmissões que fazem uso de cabos de fibra ótica geralmente utilizam duas fibras independentes, uma para cada direção da transmissão. No segundo caso, o meio deve ser multiplexado em duas faixas de frequências diferentes e cada uma utilizada para a transmissão em um determinado sentido. A maioria dos modems atuais utiliza o esquema de multiplexação por divisão de frequência para implementar a transmissão full-duplex. Redes locais Ethernet que utilizam switches geralmente implementam o esquema fullduplex.
F IGURA 3.41
Transmissão full-duplex.
3.13 Transmissão Serial e Paralela A transmissão pode ser definida como serial ou paralela, dependendo da forma com que os sinais são encaminhados entre o transmissor e o receptor. Na transmissão serial os sinais são transmitidos sequencialmente um após o outro através do canal de comunicação (Fig. 3.42). O padrão mais conhecido para transmissões seriais é o EIA-232-F, utilizado na conexão de impressoras seriais, terminais e modems. O padrão USB (Universal Serial Bus) vem sendo utilizado como interface serial padrão para a conexão de periféricos, em substituição ao EIA-232.
F IGURA 3.42
Transmissão serial.
Na transmissão paralela os sinais são transmitidos simultaneamente através do canal de comunicação. A transmissão paralela pode ser implementada utilizando canais de comunicação independentes ou apenas um único meio de transmissão. No primeiro caso, cada canal é utilizado para a transmissão de um sinal. Por exemplo, um byte pode ser transmitido de forma paralela quando cada bit é transmitido por um fio diferente (Fig. 3.43). No segundo caso, o meio deve ser multiplexado em várias faixas de frequências diferentes e cada faixa utilizada para a transmissão de um sinal.
F IGURA 3.43
Transmissão paralela.
Apesar do melhor desempenho, a transmissão paralela é utilizada apenas em pequenas distâncias devido ao seu custo elevado. Por exemplo, a transmissão paralela é muito utilizada para conectar um computador a uma impressora ou scanner. Outro exemplo é a conexão de discos ao barramento de entrada e saída de um computador, como nos padrões SCSI e ATA. De maneira geral, as redes de computadores utilizam a transmissão serial.
3.14 Transmissão Assíncrona e Síncrona Para compreender as técnicas de transmissão assíncrona e síncrona, é preciso apresentar um problema chamado sincronização. Esse problema pode ser comparado a uma linha de montagem com dois robôs (A e B). O robô A coloca periodicamente uma peça na esteira, e o robô B deve retirála, uma de cada vez. Se o robô B não estiver corretamente sincronizado, é possível que ele deixe passar uma peça ou tente retirar a mesma peça duas vezes. De forma semelhante, em um sistema de comunicação o receptor deve ser capaz de identificar exatamente cada sinal que está chegando. Para tal, a interface de comunicação do receptor verifica periodicamente o meio para colher o sinal e decodificá-lo para obter o dado transmitido. Se a taxa de amostragem variar muito, é possível que a interface do receptor não colha um sinal ou que o mesmo sinal seja colhido duas vezes, comprometendo a integridade do dado recebido. O processo de geração do sinal no transmissor e sua verificação no receptor é cadenciado por uma espécie de relógio presente em cada uma das interfaces de comunicação. A diferença entre as duas técnicas de sincronização está justamente na forma em que os relógios da origem e destino estão ajustados. Na transmissão assíncrona ou, transmissão start/stop, os relógios do transmissor e receptor não estão sincronizados, ou seja, não existe uma relação do momento em que o sinal é gerado e o momento em que o sinal é colhido. Apesar de não existir o sincronismo entre os relógios da origem e destino, o receptor ainda deve amostrar periodicamente o meio de forma a evitar os problemas citados. Para tal, a transmissão assíncrona trabalha em nível de caractere, utilizando cada caractere como elemento de sincronização. O sincronismo é alcançado precedendo cada caractere transmitido com um bit de início (start bit) e finalizado por um ou dois bits de término (stop bit). A Fig. 3.44 apresenta dois caracteres A e B transmitidos de forma assíncrona.
F IGURA 3.44
Transmissão assíncrona.
A transmissão assíncrona é relativamente lenta devido ao tempo necessário para gerar e interpretar os bits de início e término, e também porque cada caractere é separado por um intervalo de tempo indefinido. Por outro lado, essa técnica de sincronização é simples de ser implementada e de baixo custo. Os padrões EIA-232-F e USB implementam a transmissão assíncrona. Na transmissão síncrona, os relógios do transmissor e receptor estão sincronizados, ou seja, existe uma relação do momento em que o sinal é gerado e o momento em que o sinal é colhido. A transmissão síncrona é feita considerando blocos de caracteres ou bits, diferentemente da transmissão assíncrona, que trabalha caractere a caractere. A transmissão síncrona não utiliza bits de início e término, além de não existir a necessidade de intervalos de tempo entre os blocos. Cada bloco é precedido de um ou mais caracteres de sincronismo, chamado de SYN, que permite ao receptor sincronizar seu relógio com o do transmissor (Fig. 3.45). A transmissão síncrona é mais eficiente que a transmissão assíncrona; no entanto, o processo de sincronização é mais custoso por exigir interfaces mais precisas.
F IGURA 3.45
Transmissão síncrona.
O sincronismo também pode ser alcançado utilizando a própria codificação do sinal, como foi apresentado anteriormente na técnica de codificação Manchester, na seção Sinalização Digital.
3.15 Topologias de Rede A topologia de uma rede define como os dispositivos estão fisicamente conectados. De maneira geral, as topologias de rede podem ser classificadas em ponto a ponto ou multiponto. Nas redes ponto a ponto existe uma conexão dedicada ligando dois dispositivos, ou seja, não existe compartilhamento físico do canal de comunicação (Fig. 3.46a). Nas redes
multiponto o canal de comunicação é compartilhado por todos os dispositivos da rede (Fig. 3.46b).
F IGURA 3.46
Topologias ponto a ponto e multiponto.
A seguir serão apresentadas as principais topologias utilizadas em redes de computadores. A Tabela 3.4 apresenta essas topologias classificadas em ponto a ponto e multiponto. Tabela 3.4
Topologias de rede
Ponto a ponto
Multiponto
Totalmente ligada
Barra
Estrela
Anel
Hierárquica Distribuída
3.15.1 Topologia Totalmente Ligada
Na topologia totalmente ligada, todos os dispositivos estão conectados aos demais através de ligações ponto a ponto, ou seja, em uma rede com N dispositivos teremos N*(N-1)/2 conexões. Essa topologia oferece excelente desempenho, pois todos os dispositivos estão diretamente conectados, além de alta disponibilidade, oferecendo vários caminhos alternativos para se alcançar o mesmo destino. Por exemplo, na Fig. 3.47, se a conexão que liga A-D não puder ser utilizada, existem várias opções para se alcançar o mesmo destino, como A-E-F-D, A-F-D ou A-B-D.
F IGURA 3.47
Topologia totalmente ligada.
As grandes desvantagens dessa topologia são o seu custo de instalação, custo de manutenção e escalabilidade. Por exemplo, como cada dispositivo está conectado a todos os demais, adicionar um novo dispositivo significa criar (N-1) conexões com todos os outros dispositivos já conectados. Por essas questões, a topologia totalmente ligada é pouco utilizada na prática, servindo apenas como referência comparativa.
3.15.2 Topologia em Estrela
Na topologia em estrela, todos os dispositivos estão ligados ponto a ponto a um dispositivo central ou concentrador. Quando um dispositivo quer se comunicar com outro dispositivo que não o concentrador, a origem envia a mensagem primeiro para o dispositivo central, que reencaminha a mensagem para o destino. Por exemplo, na Fig. 3.48 o dispositivo B funciona como um concentrador. Se A deseja comunicar-se com D, o dispositivo A deve primeiro enviar a mensagem para o concentrador, que, por sua vez, envia a mensagem para D.
F IGURA 3.48
Topologia em estrela.
A grande vantagem dessa topologia é a sua simplicidade e baixo custo. Sua grande desvantagem está na baixa disponibilidade, pois depende integralmente do dispositivo central para o funcionamento da rede. Se o concentrador sofrer qualquer problema, todos os outros dispositivos não poderão se comunicar. Uma solução comum para o problema é adotar dispositivos com alta disponibilidade, que implementem algum esquema de redundância. Outro possível problema é o desempenho. Como todo o fluxo de dados passa pelo concentrador, esse dispositivo pode sofrer com o excesso de tráfego e prejudicar o desempenho da rede. A topologia em estrela é largamente utilizada em redes locais Ethernet, e as estações são ligadas a um hub ou switch que funciona como concentrador (Fig. 3.49).
F IGURA 3.49
Topologia em estrela utilizando hub ou switch.
3.15.3 Topologia Hierárquica
A topologia hierárquica, ou em árvore, é bastante semelhante à topologia em estrela, porém existe uma hierarquia organizando os dispositivos. Nessa topologia, um dispositivo para se comunicar com os demais deve passar por um ou mais concentradores intermediários até chegar ao destino. Na Fig. 3.50, existem três concentradores: H, B e F. Para que o dispositivo A se comunique com G, a mensagem deve obedecer à hierarquia e passar por B-H-F.
F IGURA 3.50
Topologia hierárquica ou em árvore.
A grande vantagem dessa topologia é a sua escalabilidade, pois existe a possibilidade de se ampliar a rede apenas adicionando concentradores e criando novos níveis. Com um número maior de concentradores, é possível distribuir os pontos de falha, aumentando, pelo menos em parte, a disponibilidade da rede. Também é possível obterem-se ganhos de desempenho, pois existem vários concentradores dividindo o tráfego da rede. As desvantagens são semelhantes às da topologia em estrela, ou seja, caso um concentrador tenha algum problema, todos os dispositivos ligados a ele não poderão se comunicar, além de não terem acesso ao restante da rede. Por exemplo, caso haja um problema com o concentrador F, os dispositivos E e G não poderão comunicar-se entre si e nem com o restante da rede. Se o problema ocorresse com o concentrador H, os dispositivos ligados a B não teriam acesso aos
dispositivos ligados a F e vice-versa. O problema com o concentrador H não impede, no entanto, que os dispositivos ligados a B se comuniquem entre si, como também os dispositivos ligados a F. A topologia hierárquica é utilizada em redes locais Ethernet, em que hubs e switches funcionam como concentradores e podem ser organizados de forma a criar uma estrutura em árvore (Fig. 3.51).
F IGURA 3.51
Topologia hierárquica utilizando hub ou switch.
3.15.4 Topologia Distribuída
Nas topologias em estrela e hierárquica, qualquer problema com o dispositivo central impossibilita que os demais dispositivos se comuniquem. Na topologia totalmente ligada não existe esse problema, porém o custo é inviável. Na topologia distribuída existem alguns caminhos alternativos entre os vários dispositivos da rede, de forma a oferecer maior disponibilidade. Por exemplo, na Fig. 3.52 o dispositivo A quer se comunicar com o dispositivo E. Existem dois caminhos diferentes possíveis: A-B-D-E e A-BC-D-E. Caso haja uma falha em um dos caminhos, o outro poderá ser utilizado. O mecanismo que permite que uma mensagem seja enviada utilizando diferentes caminhos é conhecido como comutação, e os dispositivos que realizam essa tarefa são chamados de comutadores.
F IGURA 3.52
Topologia distribuída.
A topologia distribuída oferece boa disponibilidade e escalabilidade, além de uma boa relação custo-desempenho. Essa topologia é largamente utilizada em redes do tipo WAN, como, por exemplo, na Internet. No caso da Internet, o mecanismo de comutação é conhecido como comutação por pacotes, e os dispositivos responsáveis pela tarefa são chamados de roteadores.
3.15.5 Topologia em Barra
Na topologia em barra, os dispositivos são conectados ao mesmo meio de transmissão e todos compartilham o mesmo barramento, tanto para receber como para enviar mensagens (Fig. 3.53). As vantagens dessa topologia são sua simplicidade e baixo custo, porém a topologia em barra oferece várias desvantagens. Devido à maneira como os dispositivos estão conectados ao canal de comunicação, caso haja algum problema com o meio, por exemplo, um rompimento do cabo, todos os dispositivos da rede ficarão incomunicáveis. Além do problema da disponibilidade, redes em barra possuem um limite máximo de dispositivos que podem ser conectados ao meio, o que restringe sua escalabilidade. Dependendo do número de dispositivos conectados à rede, o barramento pode tornar-se um gargalo, gerando problemas de desempenho.
F IGURA 3.53
Topologia em barra.
Como o canal de comunicação é compartilhado, deve existir algum mecanismo que regule qual o dispositivo poderá transmitir em determinado instante, de forma a evitar que dois ou mais dispositivos transmitam ao mesmo tempo. Esse mecanismo é conhecido como controle de acesso ao meio. As redes Ethernet utilizam o protocolo CSMA/CD para controle de acesso ao meio. Nesse método de controle de acesso, as estações, antes de transmitir, verificam se o meio está livre. Caso o meio esteja disponível, a estação transmite seus dados e as demais aguardam até que o meio fique novamente livre. Como mais de uma estação pode transmitir ao mesmo tempo, é possível que ocorram colisões. Nesse caso, os dados transmitidos serão perdidos e deverão ser transmitidos novamente. As primeiras redes locais Ethernet, que utilizavam cabo coaxial, foram concebidas com base na topologia em barra. Devido aos problemas citados, atualmente as redes Ethernet utilizam a topologia em estrela ou hierárquica. As redes locais Ethernet e o protocolo CSMA/CD serão estudados detalhadamente no Capítulo 5 – Arquitetura de Redes Locais.
3.15.6 Topologia em Anel
Na topologia em anel, os dispositivos compartilham o mesmo canal de comunicação, que tem a forma de um anel (Fig. 3.54). As vantagens e desvantagens dessa topologia são semelhantes às da topologia em barra. A topologia em anel é utilizada em redes locais, como no padrão Token Ring, e em redes metropolitanas, como no padrão FDDI.
F IGURA 3.54
Topologia em anel.
Como o anel é compartilhado por várias estações, é necessário um protocolo de controle de acesso ao meio. O protocolo mais conhecido para esse fim é chamado de passagem de token. Nesse protocolo, o token circula pelo anel e funciona como uma permissão para o acesso ao meio. Quando uma estação deseja transmitir, a estação aguarda até a chegada do token, retira o token do anel e envia os seus dados. Como não há token na rede, nenhuma outra estação poderá transmitir. Posteriormente, um novo token é inserido no anel, permitindo que outras estações façam uso do meio.
Exercícios Questões de múltipla escolha e associação 1 Qual a camada está associada diretamente ao processo de transmissão? A. Camada de enlace B. Camada física C. Camada de transporte D. Camada de rede E. Camada de aplicação 2 Associe os conceitos a seguir e suas definições: frequência, ciclo, comprimento de onda, amplitude, fase e período. A. É medido em ciclos por segunda ou em hertz.
B. É a distância entre dois pontos na mesma fase do sinal em dois ciclos consecutivos. C. Está relacionado à sua potência, e geralmente é medido em volts. D. Tempo correspondente à duração de um ciclo do sinal. E. Deslocamento do sinal dentro do seu período de tempo. F. Está relacionado ao conceito de período. G. Representa a variação completa da amplitude do sinal. H. É o número de vezes que o ciclo se repete no intervalo de 1 segundo. 3 O que não é verdadeiro a respeito de ruídos? A. É medido em decibel (dB). B. Todos os meios de transmissão são suscetíveis a ruídos. C. Os ruídos podem ser classificados como térmico, intermodulação, crosstalk e impulsivo. D. É medido como uma relação entre a potência do sinal e a potência do ruído. E. Bit Error Rate (BER) é indicado para medir a qualidade de um canal de comunicação. 4 A frase “é consequência da perda de potência do sinal transmitido, à medida que o sinal percorre o canal de comunicação até atingir o destino”, é definida como (escolher uma resposta): A. Crosstalk B. Atenuação C. Ruído D. Relação sinal-ruído E. Largura de banda 5 A frase “define o número máximo de frequências que podem ser sinalizadas em um canal de comunicação” é associada ao conceito de: A. Largura de banda B. Ruído C. Digitalização D. Atenuação E. Multiplexação 6 Qual a largura de banda de uma linha telefônica que suporta frequências entre 300 Hz e 3400 Hz? A. 3400 Hz B. 6200 Hz C. 3100 Hz D. 300 Hz E. 3700 Hz 7 Qual a capacidade máxima de transmissão de uma linha telefônica com uma largura de banda que suporta frequências entre 300 Hz e 3400 Hz? A. 3400 bps B. 3100 bps C. 6200 bps D. 300 bps E. 31000 bps
8 Qual a capacidade máxima de transmissão de uma linha telefônica com uma largura de banda que suporta frequências entre 300 Hz e 3400 Hz e uma sinalização de 16 níveis? A. 6200 bps B. 600 bps C. 6800 bps D. 24800 bps E. 49600 bps 9 Qual a capacidade máxima de transmissão de uma linha telefônica com uma largura de banda que suporta frequências entre 300 Hz e 3400 Hz, uma sinalização de 16 níveis e uma relação sinal-ruído de 30 dB? A. 6200 bps B. 31000 bps C. 600 bps D. 6800 bps E. 49600 bps 10 Associe os meios de transmissão ao tipo de sinalização possível: apenas analógica, apenas digital e analógica e digital. A. Fibra ótica B. Infravermelho C. Par trançado D. Cabo coaxial E. Rádio, micro-ondas e satélite 11 O que não é verdadeiro com relação ao processo de digitalização? A. É implementado por modems. B. PCM e PAM são técnicas para a digitalização de áudio. C. É o processo de conversão de um sinal analógico para dado digital. D. É utilizado nas tecnologias de telefonia digital. E. É o processo de conversão de dado digital para sinal analógico. 12 O que não é verdadeiro sobre a sinalização digital? A. É suportada apenas em meios de transmissão do tipo par trançado e cabo coaxial. B. É utilizada em redes Ethernet. C. Necessita de amplificadores para transmissões mais longas. D. É utilizada para a transmissão de dados analógicos ou digitais. E. É utilizada apenas em pequenas distâncias. 13 O que não é verdadeiro sobre a sinalização analógica? A. Muito utilizada em transmissões que utilizam linhas telefônicas. B. Permite a transmissão de dados digitais ou analógicos. C. É a única forma de transmissão em fibras óticas. D. Utiliza o conceito de onda portadora. E. São necessários CODECs para a transmissão. 14 A frase “permite que diversas transmissões independentes sejam realizadas utilizando o mesmo meio de transmissão” é associada ao conceito de:
A. Capacidade de transmissão B. Digitalização C. Multiplexação D. Largura de banda E. Sinalização multinível 15 O que não é verdadeiro sobre a multiplexação? A. Permite reduzir os custos de comunicação. B. Existem duas técnicas de multiplexação utilizadas em redes de comunicação de dados: FDM e TDM. C. No TDM, o canal de comunicação será formado por um ou mais slots consecutivos. D. Permite maximizar a utilização do meio. E. A tecnologia ADSL utiliza FDM. 16 Associe os tipos de transmissão e suas definições: simplex, half-duplex e full-duplex. A. Comunicação nos dois sentidos, porém não ao mesmo tempo. B. Comunicação nos dois sentidos ao mesmo tempo. C. Comunicação em um único sentido. 17 Associe tipos de transmissão e suas definições: assíncrona e síncrona. A. Implementa bit de start e stop. B. Trabalha em nível de caractere. C. Subutiliza o canal de comunicação. D. Utiliza melhor o canal de comunicação. E. Implementa o caractere SYN. F. Trabalha em nível de bloco. 18 Associe as topologias de redes e suas definições: totalmente ligada, barra ou anel, hierárquica, estrela e distribuída. A. Os dispositivos estão conectados ponto a ponto a um concentrador. B. Todos os dispositivos estão conectados aos demais por ligações ponto a ponto. C. Os dispositivos estão conectados ao mesmo meio de transmissão. D. Os dispositivos estão ligados de forma a garantir a disponibilidade da rede. E. Existe uma hierarquia organizando os dispositivos. 19 [ENADE-COMP-Q47, 2008] A transmissão em fibra ótica é realizada pelo envio de feixes de luz através de um cabo ótico que consiste em um filamento de sílica ou plástico. A fibra ótica funciona com base nos princípios de refração e reflexão dos feixes de luz no interior do filamento condutor. Para controlar a direção da propagação dos feixes de luz, o núcleo e a casca do filamento condutor são produzidos com diferentes índices de refração. Variando-se os índices de refração do núcleo e da casca, diferentes categorias de fibras óticas são produzidas. Qual opção apresenta três categorias de fibras óticas? A. Monomodo, bimodo e multímodo B. Monomodo refratário, monomodo reflexivo e multímodo C. Monomodo, multímodo degrau e multímodo gradual D. Monomodo, multímodo sílico e multímodo plástico E. Monomodo digital, monomodo analógico e multímodo
20 [ENADE-COMP-Q34, 2008] Modems são dispositivos capazes de converter um sinal digital em um sinal analógico e viceversa. No processo de modulação, para representar o sinal digital, o modem pode manipular as características de uma onda portadora (amplitude, frequência e fase), derivando diferentes técnicas de modulação, por exemplo: chaveamento da amplitude (ASK), chaveamento da frequência (FSK) e chaveamento da fase (PSK). Com relação a técnicas de modulação, julgue os itens a seguir. I. A modulação ASK é suscetível a ruídos. II. A modulação FSK possui maior imunidade a ruídos quando comparada à modulação ASK. III. Na modulação PSK, a fase da portadora é modificada durante o intervalo de sinalização. IV. Existem técnicas híbridas de modulação digital que modificam tanto a amplitude quanto a fase da portadora. V. As diversas técnicas de modulação transmitem, no mínimo, um único bit e, no máximo, 2 bits, por intervalo de sinalização. Estão certos apenas os itens A. I, II e IV. B. I, II e V. C. I, III e IV. D. II, III e V. E. III, IV e V. 21 [ENADE-COMP-Q56, 2008] Julgue os itens a seguir, relativos à transmissão de dados em redes de computadores que utilizam fios metálicos. I. Diferentes níveis de tensão no fio, como –5 V e +5 V, e transições entre os níveis definidos de tensão podem ser usados para representar bits durante a transmissão. II. Diferentes tipos de modulação, com mudanças de fase e de amplitude, podem ser aplicados a uma onda portadora para representar bits durante a transmissão. III. A taxa máxima de transmissão suportada por um canal é definida como função, entre outros parâmetros, do nível máximo de tensão suportado no canal. IV. Largura de banda é definida como a frequência mais alta que pode ser transmitida através de um meio de transmissão. V. Informações transmitidas por meio de sinais modulados podem ser recuperadas no receptor usandose taxa de amostragem com o dobro da frequência máxima do sinal transmitido. Estão certos apenas os itens A. I, II e IV. B. I, II e V. C. I, III e IV. D. II, III e V. E. III, IV e V. 22 [ENADE-REDE-Q15, 2008] A multiplexação de informação em um canal físico é uma técnica que permite o uso do canal por mais de um usuário, levando a uma economia pelo compartilhamento de recursos. Essa técnica pode ser dividida em duas categorias básicas: FDM e TDM. Qual das seguintes representa uma desvantagem da técnica FDM? A. A técnica não pode ser usada em fibras óticas monomodo porque estas adotam uma única frequência. B. A técnica não funciona em sistemas digitais por envolver componentes analógicos. C. A técnica é eficiente apenas quando a banda de frequência a dividir é suficientemente larga.
D. O canal fica subutilizado quando um usuário não tem o que transmitir. E. Os canais não podem ser combinados para oferecer maior banda a certos usuários. 23 [ENADE-REDE-Q15, 2011] A técnica de multiplexação surgiu a partir da necessidade de compartilhamento do meio físico nas redes de telecomunicações. Os esquemas de multiplexação podem ser divididos em duas categorias básicas: a multiplexação por divisão de tempo e a multiplexação por divisão de frequência. Com relação a esse tema, analise as asserções que se seguem e a relação proposta entre elas. A multiplexação por divisão de tempo tornou-se a mais difundida nos últimos anos PORQUE como a multiplexação por divisão de tempo é baseada no compartilhamento do meio físico no domínio do tempo, ela pode ser utilizada tanto por dados digitais como por dados analógicos. Acerca dessas asserções, assinale a opção correta. A. As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. B. As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. C. A primeira asserção é uma proposição verdadeira, e a segunda, uma proposição falsa. D. A primeira asserção é uma proposição falsa, e a segunda, uma proposição verdadeira. E. Tanto a primeira como a segunda asserção são proposições falsas.
Questões discursivas 1 O que distingue dados e sinais? 2 Dê um exemplo para cada uma das seguintes combinações: dado analógico com sinal analógico, dado digital com sinal digital e dado digital com sinal analógico. 3 Se transmissões sem fio permitem apenas sinais analógicos, explique a expressão “celular digital”. 4 Uma empresa decidiu colocar disponível um serviço de audioconferência para seus funcionários dentro da rede interna e na casa de alguns empregados. Na rede interna, os funcionários utilizam uma rede local Ethernet e em casa, um modem convencional. Explique como o dado/sinal são tratados de forma a permitir a comunicação: (A) entre usuários dentro da mesma LAN, (B) entre funcionários domésticos e (C) entre empregados na rede local e usuários remotos. 5 Você comprou um computador e gostaria de ter acesso à Internet pela linha telefônica utilizando um modem. Explique como o dado/sinal são tratados de forma a permitir a comunicação. 6 Quais são os dois tipos de problemas na transmissão apresentados? 7 Qual a relação sinal-ruído em decibel de uma transmissão em que a potência do sinal é igual a 300 e a potência do ruído é 30? 8 Se em uma transmissão de 100 Mbps ocorrer um ruído com duração de 0,1 segundo, quantos bits serão corrompidos? 9 Em uma transmissão de 50 Kbps, quantos bits serão danificados na ocorrência de um ruído impulsivo com duração de 0,01 segundo? 10 A. Qual a capacidade máxima de transmissão (em bps) de um meio que possui um intervalo de frequências entre 21 kHz e 26 kHz, admitindo-se que o meio é imune a ruídos? B. Como seria possível alcançar a taxa de 30000 bps nessas mesmas condições? 11 A. Qual a capacidade máxima de transmissão (em bps) de um meio que possui um intervalo de frequências entre 3 MHz e 4 MHz, admitindo-se que o meio é suscetível apenas a ruído térmico de 24 dB? B. Quantos níveis de sinalização são necessários para alcançar esse limite? 12 Quais os parâmetros utilizados para a comparação dos meios de transmissão? Explique resumidamente cada parâmetro.
13 Compare o par trançado com a fibra ótica, apresentando vantagens e desvantagens. 14 Dê exemplos de transmissões que utilizem sinalização digital. 15 Se as redes de computadores utilizam apenas dados digitais, por que não é utilizada apenas a sinalização digital? 16 Um modem de 2400 baud permite transmissões de até 9600 bps. Quantos níveis de sinalização são necessários para alcançar essa taxa de transmissão? 17 Explique como um modem de 2400 baud, conectado a uma linha telefônica, pode alcançar a taxa de transmissão de 33600 bps. 18 É possível termos as técnicas de multiplexação FDM e TDM implementadas no mesmo meio de transmissão? 19 Dê exemplos de transmissões que utilizem FDM, TDM e as duas técnicas de multiplexação. 20 Suponha uma transmissão assíncrona com um bit de start, dois bits de stop, sete bits para o caractere e um intervalo entre caracteres equivalente a dez bits. A. Qual a taxa de utilização do meio com dados? B. Qual a taxa de subutilização do meio? C. Quais as principais desvantagens desse modo de transmissão comparado com a transmissão síncrona? 21 Suponha uma transmissão de 250 caracteres no modo assíncrona, com um bit de start, um bit de stop, sete bits para o caractere e um intervalo entre caracteres equivalente a cinco bits. A. Qual a taxa de utilização do meio com dados? Suponha a mesma transmissão no modo síncrono, com quatro caracteres de sincronismo (SYN). Considere que todos os caracteres transmitidos possuem sete bits. B. Qual a taxa de utilização do meio? C. Qual o melhor modo de transmissão? Por quê? 22 Quantas conexões existem na rede da Fig. 3.47? Se um novo dispositivo for adicionado à mesma rede, quantas novas conexões deverão ser estabelecidas? 23 Faça uma análise da topologia em árvore, considerando custo, desempenho, escalabilidade e disponibilidade. Dê um exemplo de rede que utilize essa topologia. 24 Qual a topologia utilizada na Internet? Por que essa topologia foi escolhida? 25 Qual o problema em construir uma rede distribuída baseada em ligações ponto a ponto em anel? Existe alguma vantagem? 26 Quais são as topologias de redes mais indicadas para as redes locais? E para as redes distribuídas? Justifique suas escolhas. 27 [ENADE-COMP-Q60, 2008] Para transmissões de sinais em banda base, a largura de banda do canal limita a taxa de transmissão máxima. Como resultado do teorema de Nyquist, na ausência de ruído, a taxa de transmissão máxima C de um canal que possui largura de banda W, em hertz, é dada pela equação a seguir.
C = 2 × W bauds No entanto, em qualquer transmissão, o ruído térmico está presente nos dispositivos eletrônicos e meios de transmissão. Esse ruído, causado pela agitação dos elétrons nos condutores, é caracterizado pela potência de ruído N. De acordo com a lei de Shannon, na presença de ruído térmico, a taxa de transmissão máxima de um canal que possui largura de banda W, em hertz, e apresenta uma relação sinal-ruído S/N, expressa em decibel (dB), é definida pela equação a seguir:
Tendo como referência inicial essas informações anteriores, considere que seja necessário determinar a taxa de transmissão máxima de um canal de comunicação que possui largura de banda de 3 kHz, relação sinal-ruído de 30,1 dB e adota 16 diferentes níveis de sinalização. Nessa situação, responda aos seguintes questionamentos. A. Na ausência de ruído, de acordo com o teorema de Nyquist, qual a taxa de transmissão máxima do referido canal, em bits por segundo? Apresente os cálculos necessários.
B. Na presença de ruído térmico, de acordo com a lei de Shannon, qual a taxa de transmissão máxima do canal, em bits por segundo? Apresente os cálculos necessários e considere que log10 (1.023) = 3,01. C. Na presença de ruído térmico, é possível adotar mais de 16 níveis de sinalização no referido canal? Justifique.
4 Camada de Enlace
4.1 Introdução A principal função da camada de enlace é garantir a comunicação entre dispositivos adjacentes. Enquanto a camada física trabalha com bits, a camada de enlace trabalha com blocos de bits, chamados quadros. É função da camada de enlace criar e interpretar corretamente os quadros, detectar possíveis erros e, quando necessário, corrigi-los. A camada de enlace deve também controlar o fluxo de quadros que chegam ao destino, de forma a não o sobrecarregar com um volume excessivo de dados. Este capítulo trata de características comuns às camadas de enlace de redes ponto a ponto e multiponto. Os detalhes relativos às redes multiponto são tratados no próximo capítulo, Arquitetura de Redes Locais. Para mais informações sobre a camada de enlace, consultar [Black, 1993].
4.2 Quadros Enquanto a camada física trabalha com bits, a camada de enlace trabalha com blocos de bits, chamados quadros ou frames. Na grande maioria dos protocolos de enlace os quadros são formados por três estruturas básicas: cabeçalho, dados e CDE (Fig. 4.1).
F IGURA 4.1
Estrutura de um quadro.
O cabeçalho possui informações de controle para que haja a comunicação horizontal entre as camadas de enlace da origem e do destino. O cabeçalho é formado por diversos campos, cada um com uma função específica no protocolo. O campo de dados encapsula o PDU de redes passado pela camada de rede. Finalmente, o código de detecção de erro (CDE) tem a função de controlar erros na camada de enlace. Na Fig. 4.2 é apresentado o quadro do protocolo PPP (Point-to-Point Protocol), largamente utilizado em conexões discadas e dedicadas. A figura apresenta os campos do protocolo e o tamanho de cada campo em bytes. Como é possível observar, os campos podem ter tamanhos diferentes e até mesmo tamanhos variáveis. Para informações adicionais sobre o protocolo PPP, consultar as RFC-1661 e RFC-1662.
F IGURA 4.2
Quadro PPP.
Um quadro pode ser formado por uma sequência de caracteres ou por uma sequência de bits. No primeiro caso, o quadro é formado por um número inteiro de caracteres. Por exemplo, em um sistema com caracteres de oito bits, o quadro terá um tamanho múltiplo de um byte. No segundo caso é transmitida uma sequência de bits, não existindo uma relação entre o número de bits que compõem o quadro e o tamanho do caractere utilizado.
Os protocolos de enlace que se baseiam em um bloco de caracteres são chamados de protocolos orientados a caractere, enquanto os que se baseiam em um bloco de bits são chamados de protocolos orientados a bit. O protocolo HDLC (High-level Data Link Control) é um exemplo de protocolo orientado a bit, enquanto o BSC (Binary Synchronous Control) é um exemplo de protocolo orientado a caractere. O HDLC é um padrão internacional para a camada de enlace, e é a base para uma série de outros protocolos, inclusive o PPP. O protocolo PPP é um exemplo de protocolo que pode trabalhar orientado tanto a bit quanto a caractere.
4.3 Enquadramento Como a camada de enlace trabalha com quadros, o receptor deve ser capaz de identificar o início e o final de cada bloco transmitido. Essa função é chamada de enquadramento ou framing. Para exemplificar o problema, a Fig. 4.3a apresenta uma sequência de bits transmitida pela camada física. Na Fig. 4.3b, a camada de enlace identificou, através do mecanismo de enquadramento, três quadros.
F IGURA 4.3
Problema de enquadramento.
A maioria dos protocolos de enlace utiliza um flag para identificar os limites de cada quadro, que pode ser um caractere, no caso de protocolos orientados a caractere, ou uma sequência de bits especial, no caso de protocolos orientados a bit. Dependendo do protocolo, podem ser utilizados o mesmo flag para delimitar o início e o final do quadro ou dois flags diferentes. No exemplo da Fig. 4.4a é apresentado um quadro delimitado no início e no final pelo flag 01111110. Esse esquema de enquadramento é implementado nos protocolos PPP e HDLC. A Fig. 4.4b apresenta o quadro PPP delimitado. Um problema que pode ocorrer quando se utiliza a técnica de delimitação por flags é a ocorrência do próprio flag dentro do quadro. Nesse caso é necessário diferenciar o flag delimitador do flag que
representa uma informação. As técnicas de byte stuffing e bit stuffing, apresentadas a seguir, podem ser utilizadas para resolver o problema, dependendo da orientação do protocolo.
F IGURA 4.4
Uso de delimitadores.
Na técnica de byte stuffing, existe um caractere especial que permite identificar a ocorrência do delimitador dentro do quadro. Por exemplo, na Fig. 4.5, o quadro original é delimitado pelo flag de início (FI) e flag de fim (FF), e dentro do quadro existe a ocorrência de ambos os flags e do próprio caractere especial (CE). Antes de o quadro ser transmitido, o caractere especial é inserido antes da ocorrência dos delimitadores e do caractere especial. No receptor, a sequência de caracteres é analisada e o caractere especial retirado quando for o caso.
F IGURA 4.5
Byte stuffing.
Na técnica de bit stuffing, sempre que aparecer uma sequência de cinco bits 1 dentro do quadro, um bit 0 adicional é inserido pelo transmissor após a sequência. A Fig. 4.6a apresenta o quadro original e o quadro transmitido, após o bit stuffing. No receptor, a sequência de bits é analisada para verificar a ocorrência do flag dentro do quadro. Se aparecer um bit 0 após uma sequência de cinco bits 1, significa que a sequência é uma informação e o bit 0 deve ser removido. Caso contrário, a sequência representa realmente um delimitador. A Fig. 4.6b apresenta o quadro recebido e o quadro original, após a retirada do bit 0 adicional.
F IGURA 4.6
Bit stuffing.
Em protocolos orientados a caractere é possível implementar um esquema alternativo de enquadramento, que leva em consideração o tamanho do quadro. Nesse caso, o quadro possui no cabeçalho um campo que indica o número de bytes que compõem o restante do frame. Utilizando esse esquema, não há necessidade de um delimitador de término do quadro, mas apenas de início. Além disso, não existe mais a necessidade de implementar a técnica de stuffing. Outra forma também utilizada para a delimitação de quadros é a utilização do próprio esquema de sinalização. Por exemplo, em uma transmissão que tenha um sinal para representar o bit 0 e outro para o bit 1, é possível criar um terceiro sinal que pode ser empregado para identificar os limites do quadro. Por exemplo, em redes locais Ethernet de 10 Mbps, o término do quadro é identificado pela ausência de sinal no meio. Para informações adicionais sobre o problema de enquadramento e as soluções implementadas nos diversos protocolos, consultar [Cheshire, 1998].
4.4 Endereçamento O endereçamento na camada de enlace está associado à identificação da interface de comunicação, que conecta o dispositivo à rede, e cada interface possui um endereço único que permite identificá-la. O formato do endereço, ou seja, suas características, é definido pelo protocolo de enlace e deve ser seguido pelos fabricantes de interfaces de rede.
A Fig. 4.7 apresenta uma versão simplificada do quadro utilizado em redes locais Ethernet, conhecido como quadro Ethernet. O primeiro endereço identifica o destinatário da mensagem, ou seja, o receptor. O segundo endereço identifica o remetente, ou seja, o transmissor. Cada endereço é formado por seis bytes, permitindo teoricamente 248 endereços. Por exemplo, o número 00-0C-6E-3C-D1-6D representa um endereço Ethernet no formato hexadecimal.
F IGURA 4.7
Quadro Ethernet.
O endereço da camada de enlace, também chamado de endereço físico ou endereço MAC (Medium Access Control), pode ser facilmente visualizado em sistemas operacionais Microsoft Windows, utilizando-se o comando ipconfig/all. Em sistemas Unix, o comando ifconfig exibe as interfaces e seus respectivos endereços de enlace. A seguir são exibidas as saídas resumidas dos comandos ipconfig/all e ifconfig, respectivamente. c:\>ipconfig/all Adaptador Ethernet Conexão local: Descrição . . . . . . . : Endereço físico . . . . :
Realtek RTL8169/8110 Gigabit Ethernet NIC
Family
00-08-54-46-4B-FA
# ifconfig eth0 Link encap:Ethernet HWaddr 00:02:B3:B1:96:09 inet addr:10.10.0.50 Bcast:10.10.255.255 Mask:255.255.0.0
Existem, basicamente, três formas de endereçamento que podem ser implementadas em uma rede: unicast, multicast e broadcast (Fig. 4.8). No endereçamento unicast, a origem envia uma mensagem para apenas um destinatário, ou seja, apenas um dispositivo receberá a mensagem. No endereçamento broadcast ou por difusão, a origem envia uma mensagem para todos os dispositivos da rede. No endereçamento multicast ou por multidifusão, a origem envia uma mensagem para um grupo de dispositivos, chamado grupo multicast. O grupo multicast é um subconjunto dos dispositivos que formam a rede. O endereçamento
multicast, apesar de também ser utilizado na camada de enlace, será estudado no Capítulo 6 – Camada de Rede. O endereçamento unicast é utilizado quando um dispositivo deseja enviar uma mensagem para outro dispositivo específico, que possua um endereço unicast. Por exemplo, o endereço Ethernet 00-0C-6E-3C-D1-6D pode ser utilizado como destinatário de uma mensagem unicast. O endereçamento broadcast é utilizado quando o dispositivo quer enviar uma mensagem para todos os demais dispositivos da rede ou quando o transmissor não conhece o endereço unicast de um dispositivo específico. No primeiro caso, considere uma estação que monitore a rede verificando quais dispositivos estão ativos. A estação envia uma mensagem broadcast para toda a rede, e os dispositivos ativos respondem à mensagem. No segundo caso, considere uma estação que não possua um disco de boot para a carga do sistema operacional e precise realizar um boot remoto, ou seja, realizar a carga do sistema operacional a partir de outro dispositivo. Como a estação não conhece o endereço do servidor que possui o sistema operacional, a estação primeiro envia uma mensagem broadcast para descobrir algum servidor que possa realizar a carga remota. Em redes Ethernet, o endereço FF-FF-FF-FF-FF-FF funciona para endereçamento broadcast.
F IGURA 4.8
Endereçamentos unicast, multicast e broadcast.
4.5 Detecção de Erro
Qualquer transmissão está sujeita a problemas, como ruídos e atenuação, e a camada de enlace tem a função de realizar o tratamento dos possíveis erros. O controle de erro envolve duas etapas distintas: primeiro a detecção dos possíveis erros nos dados transmitidos e, em seguida, a correção dos erros encontrados. Nesta seção é apresentada a fase de detecção, e na seguinte, a correção dos possíveis erros. O mecanismo de detecção de erro é semelhante ao esquema de dígito verificador utilizado para garantir que o número de uma identidade ou conta bancária esteja correto. Por exemplo, suponha a conta bancária 05652-5, em que 05652 é o número da conta e o último número 5 represente o dígito verificador. O dígito verificador é gerado a partir dos números que compõem a conta corrente, utilizando uma função previamente definida. Sempre que a conta é utilizada, o dígito verificador é recalculado e comparado com o dígito presente na conta corrente. Se o dígito verificador calculado for igual ao dígito da conta, a informação está correta; caso contrário existe um erro. A detecção de erro é feita pelas informações de controle que são enviadas juntamente com os dados transmitidos. Antes de enviar uma mensagem, que pode ser um caractere ou um quadro, o transmissor utiliza uma função para gerar um código de detecção de erro (CDE) a partir da mensagem a ser enviada, de forma a gerar uma espécie de dígito verificador. O código gerado é anexado ao final da mensagem e, em seguida, enviado (Fig. 4.9).
F IGURA 4.9
Geração do código de detecção de erro.
O destinatário, ao receber a mensagem, recalcula o código de detecção de erro (CDE’) e o compara com o código recebido (CDE). Se o código
calculado no destino for igual ao transmitido, a mensagem está íntegra; caso contrário, houve algum erro (Fig. 4.10).
F IGURA 4.10
Verificação do código de detecção de erro.
Existem duas técnicas amplamente utilizadas para a detecção de erro pela camada de enlace, que serão apresentadas a seguir.
4.5.1 Bit de Paridade
A técnica mais utilizada para a detecção de erro em transmissões orientadas a caractere é conhecida como bit de paridade, e existem duas formas de implementá-la: paridade simples e paridade múltipla. A técnica de paridade simples consiste em adicionar um bit ao final de cada caractere transmitido, de modo que, com esse bit, o total de bits 1 seja par (paridade par) ou ímpar (paridade ímpar). A Tabela 4.1 apresenta dois exemplos de caracteres de sete bits utilizando o esquema de bit de paridade par e ímpar. Tabela 4.1
Exemplos de bit de paridade
Caractere
Paridade par
Paridade ímpar
1011010
10110100
10110101
0000001
00000011
00000010
O esquema de detecção de erro utilizando bit de paridade permite identificar problemas em apenas um bit do caractere. Se, por exemplo, o caractere 1011010 tiver dois de seus bits alterados, resultando na sequência 1111000, o bit de paridade não permitirá identificar o problema. Esse tipo de mecanismo de detecção de erro deve ser utilizado apenas em transmissões de baixa velocidade e que apresentem erros esporádicos. A técnica de paridade múltipla é uma melhoria da paridade simples. Na paridade múltipla, além do bit de paridade adicionado ao final de cada caractere, é adicionado outro bit para um bloco de caracteres transmitido. Na Fig. 4.11, que utiliza paridade ímpar, existem três caracteres (C1, C2 e C3), seus respectivos bits de paridade simples (PS) e a paridade múltipla (PM) para o bloco de caracteres. Caso haja um problema na transmissão que afete dois bits no mesmo caractere, a paridade múltipla permitirá identificar o problema.
F IGURA 4.11
Paridade múltipla.
4.5.2 Verificação de Redundância Cíclica
Uma das técnicas mais utilizadas para a detecção de erro é conhecida como código polinomial ou verificação de redundância cíclica (Cyclic Redundancy Check – CRC). Antes de explicar o cálculo do CRC, é importante relembrar os elementos que compõem uma divisão, quais sejam, dividendo (P), divisor (D), quociente (Q) e o resto (R). Por exemplo, em uma divisão em que o dividendo for igual a 503 e o divisor 12, o quociente é igual a 41 e o resto, 11. Uma propriedade da divisão diz que, se o resto for subtraído do dividendo e novamente dividido pelo mesmo
divisor, o resto da divisão será zero. Por exemplo, 503 menos 11 é igual a 492, dividido por 12 deixa resto zero. Esse mesmo raciocínio é empregado no cálculo do CRC, e o dado a ser transmitido é o dividendo e o divisor um número predefinido. O resto obtido dessa divisão, chamado de sequência de verificação do quadro, ou FCS (Frame Check Sequence), é incorporado ao dado e, então, transmitido. No destino, o dado recebido é dividido pelo mesmo número predefinido. Se o resto dessa divisão for zero, os dados enviados estão corretos; caso contrário, o dado possui algum erro. Antes de realizar a divisão entre dois números binários, vale lembrar que a soma e a subtração de binários utilizam aritmética módulo-2 e funcionam exatamente como um OU exclusivo (XOR). 0 + 0 = 0 – 0 = 0 1 + 1 = 1 – 1 = 0 0 + 1 = 0 – 1 = 1 1 + 0 = 1 – 0 = 1
O exemplo da Fig. 4.12 apresenta a divisão do dado 1010001101 pelo divisor 110101. Antes da divisão, são acrescentados cinco zeros ao dado para reservar o espaço necessário para a inclusão do resto. O número de bits a ser reservado é calculado a partir do número de bits do divisor menos um. Como pode ser observado, todas as subtrações realizadas no cálculo da divisão seguem a aritmética módulo-2 apresentada anteriormente. Depois de concluída a divisão, o resto 01110 é subtraído do dado, de forma a ser incorporado ao dado para ser transmitido. No destino, o dado é novamente dividido pelo mesmo divisor 110101. Se o resto da divisão for zero, não houve erro na transmissão; caso contrário, o dado sofreu alguma alteração.
F IGURA 4.12
Cálculo do CRC.
Outra forma de visualizar o cálculo do CRC é utilizando códigos polinomiais. Para isso, uma sequência de bits pode ser representada como polinômios com coeficientes 0 ou 1. De forma geral, uma sequência de n bits possui n termos, variando de x(n-1) a x0. Por exemplo, o dado 1010001101 pode ser representado pelo polinômio x9+x7+x3+x2+1, o divisor 110101 representado por x5+x4+x2+1 e o resto 01110, por x3+x2+x. O polinômio divisor, utilizado tanto na origem quanto no destino, é chamado de polinômio gerador. O polinômio gerador deve ser definido de forma a detectar a maioria dos problemas em uma transmissão, especialmente erros que afetem um grande número de bits em sequência, chamados de erros do tipo rajada. A Tabela 4.2 apresenta alguns exemplos de polinômios geradores padronizados internacionalmente. Por exemplo, o polinômio CRC-16 permite detectar 99% dos erros em rajadas que afetem mais de 16 bits. Tabela 4.2
Exemplos de polinômios geradores
Nome
Polinômio
CRC-12
x12+x11+x3+x2+1
CRC-CCITT
x16+x12+x5+1
CRC-16
x16+x15+x2+1
CRC-32
x32+x26+x23+x22+x16+x12+x11+x10+ x8+x7+x5+x4+x2+x+1
Essa técnica é utilizada pela maioria dos protocolos de enlace. Para tornar o processo de detecção de erro mais rápido e eficiente, tanto o cálculo quanto a verificação CRC são implementados em hardware utilizando circuitos bastante simples, que geralmente são parte da interface de comunicação.
4.6 Correção de Erro Na seção anterior foram apresentadas algumas técnicas de detecção de erro, que formam a primeira parte da função de controle de erro. Nesta seção são apresentadas as técnicas para a correção dos possíveis erros na transmissão. Antes, porém, é importante ressaltar que nem sempre a camada de enlace implementa algum mecanismo de correção de erro. É possível que um problema seja detectado e a camada de enlace simplesmente o ignore, deixando para as camadas superiores a correção do erro. A implementação da correção de erro na camada de enlace está relacionada ao tipo de meio de transmissão utilizado e à sua taxa de erro. Em meios como a fibra ótica, que apresenta imunidade a ruídos, é possível abrir mão desse mecanismo. Por outro lado, em meios que apresentam taxas de erro elevadas, como redes sem fio, o controle de erro torna-se indispensável na camada de enlace. Para entendermos os mecanismos de correção de erro, vejamos um exemplo de uma transmissão de três quadros, inicialmente sem nenhum problema (Fig. 4.13). O primeiro quadro (Q) é transmitido e, após um intervalo de tempo indefinido, chega ao destino. O receptor verifica a integridade do quadro, utilizando alguma técnica de detecção de erro, como, por exemplo, CRC. Na ausência de erro, o receptor confirma a recepção do quadro utilizando um ACK (ACKnowledgement). O ACK funciona para o transmissor como um reconhecimento de que o destinatário recebeu corretamente o quadro enviado. Por isso, esse esquema é conhecido como reconhecimento positivo. A mesma sequência
de passos é utilizada para o envio e o reconhecimento do segundo quadro.
F IGURA 4.13
Reconhecimento positivo.
Utilizando o mesmo exemplo da Fig. 4.13, existe a possibilidade de ocorrerem dois problemas. O primeiro problema a ser considerado é a possibilidade de que o quadro não chegue ao destino por algum tipo de erro na transmissão. O segundo problema é a possibilidade de o quadro chegar ao destino, porém com algum erro. A seguir, são apresentados os dois problemas e as respectivas soluções.
■ Quadro não chega ao destino
Se um quadro não chega ao destino, o receptor não tem nada a fazer a não ser aguardar que o transmissor resolva o problema. Nesse caso, o transmissor mantém um temporizador para cada quadro enviado, e, se não chegar um reconhecimento (ACK) em certo intervalo de tempo, ocorre um timeout e o quadro é retransmitido. Por outro lado, se o ACK chegar dentro do tempo esperado, o temporizador do quadro associado é desativado (Fig. 4.14). Esse esquema de correção de erro é conhecido como retransmissão por timeout.
F IGURA 4.14
Retransmissão por timeout.
Da mesma forma que um quadro pode não alcançar o receptor, um ACK também pode sofrer algum tipo de problema e não chegar ao destino. Nesse caso, ocorrerá um timeout e o quadro será retransmitido (Fig. 4.15). Se, dessa vez, não houver problemas, o destino irá receber o quadro e confirmá-lo novamente.
F IGURA 4.15
Retransmissão por timeout.
Um ACK pode ser implementado de duas formas diferentes: como um quadro especial ou fazendo parte do cabeçalho de enlace. No primeiro caso (Fig. 4.16a), cada reconhecimento possui um cabeçalho, o ACK propriamente dito e o código de detecção de erro (CDE). No segundo caso (Fig. 4.16b), e mais utilizado, o reconhecimento é implementado por um ou mais bits de controle no próprio cabeçalho de enlace. A grande vantagem em utilizar bits de controle no cabeçalho de enlace é permitir a implementação da técnica de piggybacking.
F IGURA 4.16
Implementação do ACK.
Na técnica de piggybacking, o reconhecimento pode ser enviado juntamente com dados, permitindo a melhor utilização do canal de comunicação. Como a transmissão é, geralmente, bidirecional, o receptor pode enviar o ACK juntamente com os dados que deseja transmitir, apenas sinalizando um bit no cabeçalho do quadro. A técnica de piggybacking permite evitar o envio de quadros com somente informação de reconhecimento e, assim, melhorar a utilização da rede. Um problema que pode ocorrer como consequência da utilização da técnica de piggybacking é o receptor não ter dados para transmitir de volta ao transmissor e adiar demasiadamente o envio de um ACK. Nesse caso, o transmissor não receberá o ACK no tempo esperado e ocorrerá uma retransmissão por timeout, eliminando o benefício do piggybacking. Para evitar esse tipo de efeito colateral, o receptor também deve implementar um temporizador de forma a forçar um envio de um ACK, mesmo na ausência de dados.
■ Quadro chega ao destino com erro
Caso um quadro chegue ao destino, porém com algum erro, existem duas estratégias possíveis. A primeira é simplesmente descartar o quadro recebido e aguardar que ocorra um timeout no transmissor para que o quadro seja novamente retransmitido. Essa estratégia é semelhante à do quadro não chegar ao destino, apresentada anteriormente (Fig. 4.14). A estratégia de descarte de quadros deve ser empregada sempre que a taxa de erro for baixa e o custo para a retransmissão não for significativo. Uma variação dessa estratégia é enviar um aviso para o transmissor, indicando que houve um erro no quadro e que este deve ser retransmitido imediatamente. Essa técnica é conhecida como reconhecimento negativo com retransmissão e utiliza um NAK para avisar ao transmissor do problema. Nesse caso, a origem ao receber o NAK deve desativar o temporizador para evitar a retransmissão do mesmo quadro posteriormente. Um problema que pode ocorrer é o temporizador não estar ajustado corretamente e expirar antes do recebimento do NAK. Nesse caso, o reconhecimento negativo não oferece nenhum benefício. A segunda estratégia, conhecida como FEC (Forward Error Correction), implementa a correção de erro no destino. Nesse caso, o quadro é recebido, analisado, e, se houver algum erro, os bits do quadro são corrigidos no próprio receptor. A principal vantagem desse esquema, em relação ao anterior, é dispensar a retransmissão do quadro em caso de erros. Por outro lado, para ser implementada, exige que o código de detecção de erro permita também a correção de qualquer problema
encontrado. Isso significa que o número de bits transmitidos e utilizados para a detecção e correção de erro é maior que o número de bits utilizados apenas para a detecção de erro. A estratégia de FEC é utilizada principalmente em transmissões sem fio, devido à elevada taxa de erro e ao custo de retransmissão.
4.7 Protocolos ARQ Os mecanismos que utilizam o reconhecimento e a retransmissão de quadros como mecanismos para a correção de erro são chamados genericamente de protocolos ARQ (Automatic Repeat re-Quest). Existem três implementações desses protocolos que devem ser consideradas para a correção de erro: bit alternado, retransmissão integral e retransmissão seletiva.
4.7.1 Bit Alternado
No protocolo de bit alternado, para cada quadro enviado o transmissor deve aguardar o seu reconhecimento antes de enviar o próximo quadro. Apesar de sua simplicidade, existem dois problemas que devem ser observados. O primeiro problema está relacionado à duplicação de quadros de dados. Na Fig. 4.17, houve um problema com o ACK do quadro Q, provocando a retransmissão por timeout do mesmo quadro. Se tudo correr bem com a segunda transmissão, o receptor terá duas cópias do mesmo quadro e deverá descartar uma delas.
F IGURA 4.17
Problema com a duplicação de quadros.
Para o receptor diferenciar um quadro duplicado de um novo frame, os quadros devem ser numerados em sequência. Como o esquema de bit alternado permite no máximo um quadro duplicado, os quadros podem ser numerados apenas com os valores 0 ou 1 de forma alternada. No exemplo da Fig. 4.18, o quadro Q0 é enviado e reconhecido. Em seguida, o quadro Q1 é enviado e reconhecido, porém ocorre um erro e o ACK é perdido. O quadro Q1 é retransmitido após o timeout e recebido com sucesso pelo receptor, que, agora, possui dois quadros Q1 iguais. O quadro é novamente reconhecido e o segundo quadro Q1 descartado.
F IGURA 4.18
Numeração dos quadros.
Não apenas os quadros de dados devem ser numerados, os ACK também, caso contrário é possível que o transmissor não reconheça o quadro que um determinado ACK esteja confirmando. No exemplo da Fig. 4.19, o quadro Q0 foi recebido e confirmado, porém o ACK sofreu um atraso e não chegou a tempo de evitar a retransmissão por timeout do mesmo quadro. Em seguida, o ACK do quadro Q0 é recebido pelo transmissor que pode, então, enviar o quadro Q1. No receptor, o quadro Q0 duplicado é descartado e um novo ACK enviado. Finalmente, o transmissor terá recebido dois ACK, mas não saberá que quadro está confirmando. No pior caso, o transmissor reconhecerá que ambos os quadros foram transmitidos com sucesso, o que não é verdade, pois o quadro Q1 nem sequer alcançou o destino.
F IGURA 4.19
Problema com ACK duplicado.
Resolvidos os problemas com duplicação de quadros, vejamos o funcionamento do protocolo de bit alternado. Na Fig. 4.20, o quadro Q0 é transmitido e o ACK0 retornado como reconhecimento. Somente após o recebimento do ACK0, o quadro Q1 pode ser transmitido. O ACK1 é enviado de volta, reconhecendo o quadro Q1. Com a chegada do ACK1, outro quadro Q0 é enviado, porém ocorre um erro. Após o timeout, o quadro Q0 é retransmitido e reconhecido, permitindo a transmissão do quadro Q1. Existe outra forma de fazer o reconhecimento dos quadros, muito utilizada nos protocolos ARQ. Em vez de reconhecer o último quadro recebido, os ACK são numerados de forma a indicar o próximo quadro que é esperado pelo receptor.
F IGURA 4.20
Protocolo de bit alternado.
O protocolo de bit alternado, apesar de sua simplicidade, é bastante ineficiente. Dependendo da distância entre os dispositivos, da taxa de
transmissão e do tamanho do quadro, a transmissão de um único frame por vez pode gerar uma enorme subutilização do canal de comunicação. Para exemplificar essa situação, considere a transmissão via satélite de um quadro de 4000 bits utilizando uma conexão de 1 Mbps. Na Fig. 4.21a, a estação A começa a transmitir o quadro e depois de 4 milissegundos (ms) o frame foi totalmente transmitido. O tempo de transmissão é calculado dividindo-se o tamanho do quadro pela taxa de transmissão, ou seja, 4000 bits por 1000000 bps.
F IGURA 4.21
Transmissão de um quadro via satélite.
Levando em consideração que o tempo de propagação do quadro para alcançar o destino é de aproximadamente 250 ms, o tempo necessário para que o frame seja recebido pela estação B é de 254 ms (Fig. 4.21b). A estação B reconhece o quadro imediatamente, enviando um ACK cujo tamanho é insignificante, permitindo desprezar o seu tempo de transmissão. O ACK leva 250 ms para alcançar a estação A, totalizando 504 ms para que um quadro seja transmitido e reconhecido (Fig. 4.21c). O tempo de propagação de um quadro varia conforme o tipo de meio de transmissão e a distância entre a origem e o destino. No caso da transmissão via satélite, o tempo de propagação de ida e volta ou RTT (Round Trip Time) é de 500 ms. Como o protocolo de bit alternado permite apenas a transmissão do próximo quadro após o recebimento do ACK do frame anterior, a estação A irá transmitir um novo quadro após 504 ms. Isso significa que a estação A utilizou o canal de comunicação somente durante 4 ms e no restante do tempo ficou aguardando o reconhecimento. Conforme o cálculo a seguir, a taxa de utilização do meio (TUM) foi de aproximadamente 0,8%, ou seja, o meio ficou ocioso 99,2% do tempo. TUM = 4 ms / 504 ms TUM ≈ 0,8%
4.7.2 Retransmissão Integral
Para melhorar a utilização do canal de comunicação, vários quadros podem ser transmitidos sem a necessidade de aguardar o reconhecimento de cada frame individualmente. Se considerarmos que a cada 4 ms um quadro poderia ser transmitido e que o intervalo de tempo entre a transmissão e o reconhecimento de um frame é de 504 ms, seria possível que a estação A transmitisse 125 quadros em sequência até a chegada do primeiro ACK. Como pode ser observado na Fig. 4.22a, após 254 ms o primeiro quadro chega ao destino. A cada frame recebido, a estação B enviará um ACK, e depois de 504 ms o reconhecimento do primeiro quadro chegará na estação A (Fig. 4.22b). Durante esse intervalo de tempo, a estação A enviou 125 quadros sequencialmente, criando um fluxo contínuo de frames chamado pipeline. Os protocolos que oferecem essa facilidade implementam a técnica conhecida como janela deslizante.
F IGURA 4.22
Transmissão de uma sequência de quadros.
A técnica de janela deslizante (sliding window) permite que as camadas de enlace da origem e destino tenham mais flexibilidade para enviar e receber quadros. Na origem é utilizada uma janela de transmissão que permite controlar os quadros que podem ser transmitidos de forma a maximizar o uso do canal de comunicação. O tamanho da janela é uma potência de 2 e os quadros são numerados de zero a 2n-1, e n é o tamanho máximo da janela. No exemplo da Fig. 4.23, a janela de transmissão (JT) permite no máximo quatro quadros, exigindo uma numeração de 0 a 3. Na mesma figura, é possível acompanhar os quadros
que ainda não foram transmitidos (QNT), os quadros transmitidos e não reconhecidos (QTNR) e os quadros transmitidos e reconhecidos (QTR). Inicialmente, na Fig. 4.23, a janela de transmissão indica que quatro frames podem ser enviados. O transmissor ao enviar Q0 e Q1 faz com que a janela diminua duas posições e deixe os dois quadros transmitidos como não reconhecidos. Ao receber o reconhecimento ACK0, a janela de transmissão aumenta em uma posição e Q0 passa a fazer parte dos quadros transmitidos e reconhecidos. Em seguida, o transmissor envia os quadros Q2, Q3 e Q0, fazendo com que a janela de transmissão fique fechada e impedindo que novos quadros sejam enviados. O recebimento do reconhecimento ACK1 abre novamente a janela de transmissão em uma posição, liberando o envio do quadro Q1. Como pode ser observado na Fig. 4.23, o tamanho da janela de transmissão é variável, diminuindo conforme os quadros são enviados e aumentando conforme são reconhecidos. A variação do tamanho da janela dá a impressão de que a janela desliza sobre os quadros. O tamanho máximo da janela de transmissão deve ser calculado de forma a permitir o máximo de quadros transmitidos e não reconhecidos, maximizando a utilização do canal de comunicação. O protocolo de retransmissão integral utiliza uma janela de transmissão de tamanho variável, porém implementa uma janela de recepção de tamanho fixo e com apenas uma posição. Nesse caso, cada quadro recebido é reconhecido individualmente, permitindo o recebimento do próximo quadro. Caso um quadro tenha algum problema e não chegue, os demais quadros transmitidos serão todos descartados pelo destino, pois não há espaço para armazená-los. Em algum momento, o quadro com problema e os demais quadros descartados serão todos retransmitidos por timeout. Por exemplo, na Fig. 4.24 os quadros Q0 e Q1 foram enviados, recebidos e reconhecidos por A0 e A1. O quadro Q2 é enviado, porém não chega ao destino. O transmissor desconhece o problema e continua a enviar os demais quadros (Q3 a Q7). Como o receptor tem espaço para apenas um quadro, que seria Q2, todos os demais quadros transmitidos são descartados. Após um intervalo de tempo, o quadro Q2 é retransmitido por timeout. O destino recebe e reconhece o quadro (A2), abrindo espaço para o próximo frame. O quadro Q3 também é retransmitido por timeout, e assim sucessivamente com os demais quadros. Como pode ser observado, o esquema de retransmissão integral não faz um uso eficiente do canal de comunicação, principalmente quando a janela de transmissão é grande e a taxa de erro elevada.
F IGURA 4.23
Janela de transmissão.
F IGURA 4.24
Retransmissão integral.
4.7.3 Retransmissão Seletiva
No protocolo de retransmissão seletiva, um problema em um quadro não implica a retransmissão integral dos frames já transmitidos e não reconhecidos, como ocorre no protocolo anterior. A transmissão seletiva implementa uma janela de recepção que permite controlar os quadros que ainda podem ser recebidos, ou seja, a janela define a capacidade máxima de quadros que a camada de enlace do destino pode gerenciar. O tamanho da janela de recepção é uma potência de 2 e os quadros são numerados de zero a 2n-1, e n é o tamanho máximo da janela. No exemplo da Fig. 4.25, a janela de recepção (JR) permite no máximo quatro frames, exigindo uma numeração de quadros de 0 a 3. Na mesma figura, é possível acompanhar os quadros que já foram recebidos e reconhecidos (QRR) e os quadros recebidos e não reconhecidos (QRNR). Como pode ser observado, o tamanho da janela é variável, diminuindo conforme os quadros são recebidos e aumentando quando são reconhecidos.
F IGURA 4.25
Janela de recepção.
Inicialmente, na Fig. 4.25, a janela de recepção está vazia, permitindo receber até quatro frames. Ao receber os quadros Q0 e Q1, a janela de recepção diminuiu para duas posições e os frames recebidos ficam como não reconhecidos. O envio dos reconhecimentos ACK0 e ACK1 confirma o recebimento dos quadros Q0 e Q1, abrindo mais duas posições na janela de recepção, retornando para sua capacidade máxima. Além disso, os quadros Q0 e Q1 passam de não reconhecidos para reconhecidos. O recebimento dos quadros Q2, Q3 e Q0 reduz o tamanho da janela de recepção para apenas uma posição. Finalmente, o envio do reconhecimento ACK2 aumenta a janela em uma posição e deixa o quadro Q2 como reconhecido.
Uma técnica utilizada para melhorar o funcionamento do protocolo de retransmissão seletiva é conhecida como reconhecimento cumulativo. Na Fig. 4.25 foram enviados dois reconhecimentos ACK0 e ACK1, um para cada quadro recebido. É possível melhorar esse algoritmo enviando apenas o reconhecimento do último quadro recebido corretamente, que nesse caso seria para o quadro Q1. Dessa forma, o ACK1, além de reconhecer o quadro Q1, incluiria também o reconhecimento ACK0 para o quadro Q0. A Fig. 4.26 apresenta um exemplo do funcionamento do protocolo de retransmissão seletiva. Os quadros Q0 e Q1 são enviados, recebidos e reconhecidos de forma cumulativa por A1. O quadro Q2 é enviado, mas por algum problema não chega ao destino. O problema com Q2 não impede que o destino receba os demais quadros (Q3 a Q7), que são armazenados no buffer de recepção. Após um intervalo de tempo, o quadro Q2 é retransmitido automaticamente por timeout. O quadro Q2 agora é recebido corretamente e o A7 enviado, confirmando todos os frames recebidos e armazenados no buffer, inclusive Q2. Enquanto o A7 não alcança o destino, os quadros Q3, Q4 e Q5 também são retransmitidos por timeout. Como esses quadros já estão no buffer de recepção, os frames são descartados.
F IGURA 4.26
Retransmissão seletiva.
Como podemos observar na Fig. 4.26, o protocolo de retransmissão seletiva permite que os quadros sejam recebidos fora de ordem, o que certamente geraria um problema para a camada de rede se os quadros fossem passados dessa forma. Nesse exemplo específico, o quadro Q2 chegou após os frames Q3 a Q7. Como os quadros são numerados
sequencialmente, o receptor pode reordenar os quadros antes de passálos para a camada superior. O protocolo de retransmissão seletiva, apesar de mais eficiente, apresenta um problema de sobreposição na janela de recepção. Na Fig. 4.27, o receptor tem uma janela de recepção de quatro posições, todas livres. O transmissor envia os quadros Q0, Q1 e Q2, que são recebidos e reconhecidos por ACK2, fazendo com que a janela de recepção deslize para aguardar os próximos quatro frames. Por algum problema, o ACK2 enviado não chega ao destino, e o quadro Q0 é retransmitido por timeout. Quando o quadro Q0 chega ao destino, o receptor não sabe que o Q0 já foi recebido e reconhecido anteriormente. O receptor considera então que houve um problema com o quadro Q3 e armazena novamente Q0. Nesse caso houve uma duplicação de quadros e o receptor não tem como identificar o problema, devido à sobreposição da janela de recepção. Para resolver o problema, a janela de recepção não pode ser maior que a metade do número de sequência utilizado para a numeração de quadros. No exemplo da Fig. 4.27 deveria ser utilizada uma janela de recepção de no máximo duas posições, pois equivale à metade do número de quadros que podem ser numerados, ou seja, quatro.
F IGURA 4.27
Problema de sobreposição na janela de recepção.
4.8 Controle de Fluxo O problema de controle de fluxo pode ser comparado a outro problema bastante conhecido. Imagine um balde com um pequeno furo na base e uma torneira que despeja água continuamente no balde (Fig. 4.28a). Dependendo do fluxo de água que sai da torneira e do fluxo de água que sai pelo fundo do balde, é possível que o recipiente fique cheio e comece a transbordar (Fig. 4.28b). O controle de fluxo permite que o dispositivo transmissor regule o volume de dados enviados de forma a não gerar um overflow (transbordamento) no receptor. Caso contrário, o destino terá que descartar os dados transmitidos, obrigando à sua retransmissão.
F IGURA 4.28
Problema de controle de fluxo.
A forma mais simples de controle de fluxo é chamada de pare e espere (stop-and-wait). Nessa estratégia, o transmissor, após enviar um quadro, aguarda pela confirmação do recebimento do frame para poder enviar o próximo. Dessa forma, o transmissor e o receptor estão de certa forma sincronizados, eliminando o problema de overflow. Esse mecanismo é
semelhante ao protocolo de bit alternado apresentado anteriormente, e oferece o mesmo problema de subutilização do canal de comunicação. Uma técnica de controle de fluxo bastante utilizada pelos protocolos da camada de enlace é fazer com que o receptor envie mensagens para o transmissor informando se está apto ou não a receber novos quadros. Por exemplo, na Fig. 4.29, o dispositivo A envia cinco quadros para o dispositivo B. O dispositivo B recebe os quadros, verifica que o seu buffer está cheio e, em seguida, envia uma mensagem para A, informando o problema. Após receber a mensagem, o dispositivo A para de enviar novos quadros e aguarda até que o dispositivo B autorize novamente o envio. O dispositivo B processa os quadros recebidos e informa ao dispositivo A, que inicia a transmissão de novos frames. O controle de fluxo é geralmente resolvido com o receptor informando ao transmissor sua capacidade de recepção de dados, ou seja, o tamanho do seu buffer de recepção. Dessa maneira, o transmissor pode regular o volume de dados enviados de forma a não sobrecarregar o destinatário. Os protocolos que utilizam a técnica de janela deslizante podem facilmente implementar a função de controle de fluxo apenas ajustando o tamanho da janela de transmissão. No início da conexão, o receptor pode informar ao transmissor o tamanho da sua janela de recepção, ou seja, o número máximo de quadros que podem ser recebidos e não reconhecidos. O transmissor, por sua vez, ao receber o tamanho da janela de recepção, ajusta a sua janela de transmissão com o valor informado. Conforme os quadros são transmitidos, a janela de transmissão diminui até chegar a zero, indicando que nenhum outro quadro poderá ser transmitido, caso contrário não haverá espaço para o quadro e o receptor terá que descartá-lo. À medida que chegam os reconhecimentos dos quadros enviados, a janela de transmissão é ampliada, permitindo que novos frames sejam transmitidos.
F IGURA 4.29
Controle de fluxo.
Outra forma de implementar o controle de fluxo é fazer com que o receptor informe o tamanho de sua janela de recepção a cada reconhecimento. Se, em algum momento, a janela de recepção ficar vazia, ou seja, não houver mais espaço para novos quadros, o receptor informa ao transmissor uma janela de recepção de tamanho zero. Nesse caso, o transmissor não poderá transmitir novos quadros, voltando a fazê-lo apenas quando receber uma janela de recepção maior que zero. Esse mecanismo é implementado no protocolo TCP do modelo Internet e será analisado no Capítulo 7 – Camada de Transporte.
Exercícios Questões de múltipla escolha e associação 1 Das alternativas a seguir, qual não é função da camada de enlace? A. Enquadramento B. Endereçamento C. Controle de erro D. Roteamento E. Controle de fluxo 2 Como é chamado o PDU da camada de enlace? A. Segmento B. Sequência de bits C. Pacote D. Quadro E. Mensagem 3 Qual dos protocolos a seguir é um exemplo de protocolo de enlace? A. IP B. V.92 C. PPP D. SMTP E. TCP 4 Das técnicas a seguir, qual ou quais são utilizadas pela camada de enlace para o enquadramento? A. ACK B. Piggybacking C. CRC D. Bit stuffing
E. Byte stuffing F. NAK 5 Das opções a seguir, qual é utilizado como um endereço de enlace? A. Porta TCP B. Endereço MAC C. Socket D. Porta UDP E. Endereço IP 6 Associe os tipos de endereçamento utilizados na camada de enlace: unicast, broadcast e multicast. A. Envia para todas as estações na mesma rede local. B. Envia para um grupo de estações que estão em um mesmo grupo. C. Envia o quadro apenas para uma única estação. 7 Das técnicas a seguir, qual ou quais são utilizadas pela camada de enlace para a detecção de erro? A. Piggybacking B. Bit de validade C. NAK D. ACK E. CRC F. Byte stuffing 8 O que não é verdadeiro sobre o reconhecimento positivo? A. Geralmente o receptor utiliza o esquema de piggybacking para o reconhecimento dos quadros. B. O receptor utiliza um ACK para indicar que recebeu o quadro corretamente. C. Pode ser utilizado o mecanismo de NAK para melhorar o desempenho da redE. D. O transmissor utiliza o esquema de timeout para a retransmissão de quadros não reconhecidos. E. É necessário apenas um ACK para reconhecer um quadro transmitido. 9 Das técnicas a seguir, qual é utilizada pela camada de enlace para melhorar a utilização do canal de comunicação? A. Byte stuffing B. Piggybacking C. CRC D. Bit de validade E. ACK 10 O que não é verdadeiro sobre o protocolo de bit alternado? A. Oferece baixo desempenho para transmissões via satélite, por exemplo. B. Os quadros devem ser numerados. C. Permite que com apenas um bit os quadros sejam numerados. D. Permite a transmissão do próximo quadro apenas quando o quadro anterior for reconhecido. E. Como existem apenas dois quadros na rede, os ACKs não precisam ser numerados. 11 Qual a taxa de utilização do meio considerando a transmissão via satélite de um quadro de 4000 bits utilizando uma conexão de 1 Mbps, protocolo de bit alternado e levando em consideração que o tempo de propagação do quadro para alcançar o destino é de aproximadamente de 250 ms?
A. 0,8% B. 1% C. 2% D. 95% E. 98% 12 O que é verdadeiro afirmar sobre o protocolo de retransmissão integral? A. Não utiliza o conceito de janela deslizante. B. Implementa uma janela de transmissão e outra de recepção. C. Permite criar um fluxo contínuo de quadros chamado pipeline. D. Implementa uma janela de transmissão de tamanho fixo. E. Permite a transmissão do próximo quadro apenas quando o quadro anterior for reconhecido. 13 O que é não verdadeiro afirmar sobre o protocolo de retransmissão seletiva? A. Implementa uma janela de transmissão e outra de recepção. B. Implementa o conceito de janela deslizante. C. A janela de recepção pode ser de qualquer tamanho. D. Pode ser utilizado no mecanismo de controle de fluxo. E. Implementa o reconhecimento cumulativo para melhorar o desempenho do protocolo. 14 Das técnicas a seguir, qual é utilizada pela camada de enlace para controlar o volume de dados enviados do transmissor para o receptor? A. Byte stuffing B. Piggybacking C. NAK D. ACK E. Controle de fluxo 15 [ENADE-REDE-Q14, 2008] A sonda Phoenix foi enviada ao espaço pela agência espacial norte-americana em 4 de agosto de 2007 e, desde que pousou em Marte, no dia 25 de maio de 2008, envia fotos para a Terra. Uma foto transmitida tinha o tamanho de 8×106 bytes, e, quando enviada, a distância entre os dois planetas era de 60 bilhões de metros (60×109 m). Assumindo que o enlace de comunicação entre a sonda e a base da missão na Terra é de 128 Kbps, que não há elementos intermediários e que a velocidade de propagação do sinal é a velocidade da luz (3×108 m/s), quanto tempo, em segundos, se passou entre o início do envio da foto até ela ser recebida completamente na Terra? A. 62,5 B. 200 C. 500 D. 700 E. 1200
Questões discursivas 1 Quais são as principais funções da camada de enlace? 2 Considere que a sequência A B ESC C ESC FLAG FLAG D ocorre no meio de um quadro e que o caractere ESC é utilizado pelo protocolo de enlace para implementar a técnica de stuffing. Como seria transmitida a mesma sequência utilizando byte stuffing? [Tanenbaum, 2002.]
3 A sequência de bits 0111101111101111110 deverá ser transmitida utilizando a técnica de bit stuffing. Qual a sequência realmente transmitida? [Tanenbaum, 2002.] 4 Existe uma técnica para delimitar o final do quadro que utiliza um campo no cabeçalho para indicar o número de bytes restantes. Se houver um erro nesse campo, o que ocorrerá? 5 Quais são as três formas de endereçamento apresentadas no texto? 6 Qual a diferença entre detecção e correção de erro? 7 Quais os mecanismos de detecção de erro mais utilizados? 8 Considere o caractere de sete bits 1011101. Como esse caractere seria transmitido utilizando o esquema de bit de paridade simples par e ímpar? 9 Considere a sequência de sete caracteres de sete bits 1000000, 1000001, 1000010, 1000100, 1001000, 1010000 e 1100000. Como seria a transmissão dessa sequência utilizando o esquema de bit de paridade múltipla par e ímpar? 10 Qual o resto da divisão da sequência de bits 10100001 pelo divisor 1001? Qual a sequência de bits transmitida? 11 Apresente os polinômios que representem a sequência de bits 10100001, o divisor 1001, o resto da divisão e a sequência de bits transmitida. 12 A sequência de bits 10011101 é transmitida utilizando a técnica de CRC, a partir do polinômio gerador x3+1. Mostre a sequência de bits transmitida. Suponha que o terceiro bit da esquerda foi invertido durante a transmissão. Mostre como o erro seria detectado pelo receptor. [Tanenbaum, 2002.] 13 Como o tipo de meio de transmissão pode influenciar na escolha do mecanismo de correção de erro? 14 Como você implementaria o esquema de NAK de forma eficiente? 15 Como você implementaria a correção de erro em um canal simplex, onde nenhum erro pode ser ignorado? 16 Considere dois dispositivos separados por uma distância de 1000 km e a transmissão de um quadro de 424 bits a uma taxa de transmissão de 155,55 Mbps utilizando um cabo de fibra ótica. Qual a taxa de utilização do meio considerando que a velocidade de propagação da luz na fibra é de 2*108 de metros por segundo?
5 Arquitetura de Redes Locais
5.1 Introdução Nos capítulos anteriores foram apresentadas as funções da camada física e da camada de enlace de forma isolada, porém as redes locais englobam essas duas camadas de forma mais interdependente e padronizada do que em outros tipos de redes. Por isso, teremos um capítulo dedicado ao estudo da arquitetura de redes locais. Inicialmente serão estudados os diversos mecanismos de controle de acesso ao meio. Em seguida é apresentado o padrão para redes locais IEEE 802, que define o modelo de camadas para as LAN. Finalmente, o capítulo trata especialmente das redes locais Ethernet (IEEE 802.3) e redes locais sem fio (IEEE 802.11), largamente utilizadas pelo mercado.
5.2 Controle de Acesso ao Meio Em redes multiponto, o meio de transmissão é compartilhado por vários dispositivos e, consequentemente, deve existir algum mecanismo que regule qual a estação poderá transmitir em determinado instante. Esse mecanismo é chamado de controle de acesso ao meio e é fundamental na arquitetura de redes que utilizam a topologia multiponto. Por exemplo, na Fig. 5.1a existe uma barra interligando os dispositivos, enquanto na Fig. 5.1b as estações estão conectadas utilizando um meio compartilhado que é o ar. Em ambos os casos, o meio está sendo disputado pelos dispositivos, e o controle de acesso ao meio tem o papel de regular esse acesso.
F IGURA 5.1
Controle de acesso ao meio.
Os protocolos de controle de acesso ao meio podem ser divididos em três grandes grupos: protocolos de acesso particionado, acesso aleatório e acesso ordenado (Tabela 5.1). Nos protocolos de acesso particionado, o meio de transmissão é dividido utilizando a multiplexação por frequência ou tempo, ou algum esquema de codificação. Com o particionamento, cada estação transmite sem interferir com a transmissão das demais. Tabela 5.1
Protocolos de controle de acesso ao meio
Acesso particionado
Acesso aleatório
Acesso ordenado
FDMA
ALOHA
Polling
TDMA
CSMA
Token
CDMA
CSMA/CD
CSMA/CA
Nos protocolos de acesso aleatório não existe uma ordenação no acesso e as estações transmitem sempre que há dados a serem transmitidos. Nesse caso é possível que dois ou mais dispositivos transmitam ao mesmo tempo, gerando um problema chamado colisão. Quando ocorre uma colisão, os dados transmitidos pelos dispositivos são perdidos. Nesse caso, a solução geralmente adotada é aguardar por um intervalo de tempo e retransmitir o quadro. Por isso, os protocolos de acesso aleatório também são chamados de protocolos baseados em contenção.
Nos protocolos de acesso ordenado existe uma sequência para o acesso ao meio e os dispositivos transmitem seus dados apenas quando o protocolo garante a exclusividade do acesso. Tanto nos protocolos de acesso ordenado quanto nos que utilizam particionamento, não existe o problema de colisões. A Tabela 5.1 apresenta exemplos dos três grupos de protocolos, que serão detalhados neste capítulo.
5.2.1 Protocolo FDMA
O acesso múltiplo por divisão de frequência ou FDMA (Frequency Division Multiple Access) utiliza a técnica de multiplexação por divisão de frequência apresentada no Capítulo 3 – Camada Física. No FDMA, a largura de banda do meio é dividida em faixas ou canais do mesmo tamanho e cada estação é associada a uma faixa para transmissão exclusiva, que ficará dedicada enquanto a estação não liberar o canal. Para evitar o problema de intermodulação, existe uma pequena faixa de segurança entre os canais adjacentes para impedir a interferência (Fig. 5.2). A técnica de FDMA é simples de ser implementada, e, como cada estação possui sua própria faixa para a transmissão dos dados, não há ocorrência de colisões. Por outro lado, essa técnica permite a subutilização do meio quando uma ou mais estações não transmitem continuamente, deixando suas faixas ociosas. Além disso, o FDMA limita o número máximo de estações que podem compartilhar o meio, em função do número de canais previamente criados. Finalmente, o protocolo FDMA não atende a transmissões que necessitem de diferentes taxas de transmissões, pois as faixas possuem uma largura de banda predefinida.
F IGURA 5.2
Protocolo FDMA.
O protocolo de acesso FDMA é largamente utilizado em transmissões que utilizam satélites e na telefonia móvel celular, juntamente com outras técnicas de acesso ao meio, como TDMA e CDMA. Para informações adicionais sobre o FDMA, consultar [Rom, 1990], [Shankar, 2002] e [Sklar, 2001].
5.2.2 Protocolo TDMA
O acesso múltiplo por divisão de tempo ou TDMA (Time Division Multiple Access) utiliza a técnica de multiplexação por divisão de tempo apresentada no Capítulo 3 – Camada Física. No TDMA, a largura de banda do meio é dividida em slots de tempo e cada estação é associada a um ou mais slots de tempo para transmissão exclusiva. Em uma transmissão com N estações serão necessários N slots, um para cada dispositivo. O conjunto de N slots consecutivos forma um quadro e cada estação possui um slot dentro do quadro. Por exemplo, na Fig. 5.3 existem quatro estações e um slot para cada estação, e o conjunto de quatro slots forma um quadro. Como pode ser observado, cada estação possui um slot dentro de cada quadro.
F IGURA 5.3
Protocolo TDMA.
Na técnica de TDMA não há ocorrência de colisões, pois cada estação utiliza o seu próprio slot de tempo para a transmissão dos dados. Por outro lado, essa técnica permite a subutilização do meio quando uma ou
mais estações não transmitem continuamente, deixando seus slots de tempo ociosos. Uma forma de minimizar o problema é alocar dinamicamente os slots de tempo em função da necessidade de cada estação. Outro problema que pode ocorrer com transmissões que utilizem TDMA é o atraso decorrente pela espera do próximo slot para a transmissão. O protocolo de acesso TDMA é largamente utilizado em transmissões que utilizam satélites e na telefonia móvel celular digital, como na tecnologia GSM (Global System for Mobile). Nos dois casos, o TDMA é implementado juntamente com a técnica de FDMA. Para informações adicionais sobre o TDMA, consultar [Rom, 1990], [Shankar, 2002] e [Sklar, 2001].
5.2.3 Protocolo CDMA
O acesso múltiplo por divisão de código ou CDMA (Code Division Multiple Access) não utiliza a ideia de faixas de frequência ou slots de tempo. Essa técnica permite que as estações transmitam ao mesmo tempo, utilizando toda a largura de banda do canal de comunicação. Para evitar a colisão entre os diversos dispositivos que compartilham o meio, o CDMA implementa uma codificação diferente para cada estação (Fig. 5.4). Essa codificação pode ser comparada a um grupo de pessoas que está conversando em diferentes idiomas. Apesar de existirem várias conversas ocorrendo simultaneamente, as pessoas ouvem apenas o seu idioma, ignorando os demais. No CDMA, cada estação possui seu próprio código (ou sequência pseudoaleatória) diferente das demais. Na origem, a estação codifica o sinal com a sua sequência e a estação de destino decodifica o sinal com a mesma sequência. Para implementar esse tipo de codificação, o CDMA utiliza uma técnica de espalhamento de frequência, conhecida como spread spectrum. Quando é utilizado o esquema de modulação por fase para a implementação da codificação, o CDMA é chamado de DS-CDMA (Direct Sequence CDMA). Quando é utilizado o esquema de modulação por frequência, o CDMA é chamado de FH-CDMA (Frequency Hope CDMA).
F IGURA 5.4
Protocolo CDMA [Sklar, 2001].
O protocolo CDMA oferece diversas vantagens. Como o meio não é particionado em faixas de frequência ou slots de tempo, é possível adicionar usuários ao sistema sem grandes problemas. A utilização de um código único para cada transmissão garante maior segurança contra acessos não autorizados. Além disso, a técnica de spread spectrum garante maior imunidade a problemas na transmissão como interferências. O protocolo CDMA é largamente utilizado na telefonia móvel celular, e é o maior concorrente do padrão GSM. Para informações adicionais sobre spread spectrum, consultar [Pickholtz, 1982], [Sklar, 2001] e [Viterbi, 1979]. Para informações adicionais sobre CDMA, consultar [Kohno, 1995] e [Shankar, 2002].
5.2.4 Protocolos ALOHA e Slotted ALOHA
O protocolo ALOHA foi desenvolvido no início da década de 1970 na Universidade do Havaí, com o objetivo de conectar diversas estações espalhadas pelas ilhas do arquipélago a uma estação central via rádio. O protocolo ALOHA teve influência no desenvolvimento de diversos protocolos e o mais importante foi o protocolo utilizado em redes locais Ethernet [Abramson, 1985]. Nesta seção, serão apresentados o ALOHA puro e uma versão melhorada do protocolo conhecida como slotted ALOHA. No protocolo ALOHA puro, as estações podem transmitir seus quadros sempre que houver dados a serem enviados. Como consequência, duas
ou mais estações podem transmitir seus dados ao mesmo tempo, gerando uma colisão. Nesse caso, todos os quadros transmitidos serão danificados e deverão ser retransmitidos posteriormente. A retransmissão dos quadros é feita após um intervalo de tempo aleatório, o que reduz a chance de novas colisões, porém não impede que o problema ocorra novamente. O intervalo de tempo que a estação espera para realizar uma nova transmissão é chamado de período de contenção (Fig. 5.5).
F IGURA 5.5
Protocolo ALOHA puro.
A Fig. 5.6 exemplifica o funcionamento do protocolo ALOHA puro. Inicialmente, a estação A transmite o quadro QA1 com sucesso. Em seguida, a estação B envia o quadro QB1, que, próximo do fim, colide com o início do quadro QC1 transmitido pela estação C. Apesar da colisão, as estações B e C continuam transmitindo seus quadros até o final, gerando outra colisão com o quadro QA2, que, por sua vez, colide com a retransmissão do frame QB1. Todos os quadros que foram afetados pelo problema da colisão, ou seja, QB1, QC1 e QA2, serão retransmitidos após um intervalo de tempo.
F IGURA 5.6
Exemplo do protocolo ALOHA puro.
Como não existe nenhuma preocupação com a ocorrência de colisões, o protocolo ALOHA puro, no melhor caso, permite uma taxa de utilização do meio de apenas 18%. Uma versão modificada do protocolo, conhecida como slotted ALOHA, permite alcançar uma taxa de utilização de até 37% [Roberts, 1975]. A ideia do slotted ALOHA é concentrar a ocorrência das colisões, reduzindo a taxa de colisão e, assim, melhorando o desempenho do protocolo. No protocolo slotted ALOHA, a linha de tempo é dividida em slots iguais, e cada slot representa o tempo necessário para enviar um quadro de um tamanho máximo predefinido. Enquanto no protocolo ALOHA puro as estações podem transmitir sempre que houver dados, no slotted ALOHA cada estação pode transmitir apenas no início de um slot. Para que o esquema funcione, todas as estações devem estar sincronizadas para iniciarem a transmissão sempre no início de um slot de tempo (Fig. 5.7).
F IGURA 5.7
Protocolo slotted ALOHA.
A Fig. 5.8 exemplifica o funcionamento do protocolo slotted ALOHA. Inicialmente, a estação A transmite o quadro QA1 no slot T0-T1 com sucesso. A estação B tem dados para transmitir durante o slot T1-T2, mas, como uma transmissão pode ocorrer apenas no início de um slot de tempo, o slot T1-T2 ficará livre. No slot seguinte, a estação B envia o quadro QB1 sem problemas. No slot T3-T4 as estações A e C transmitem ao mesmo tempo, ocasionando uma colisão. No slot seguinte, a estação B transmite o quadro QB2 com sucesso. Todos os quadros que foram afetados pelo problema da colisão (QC1 e QA2) serão retransmitidos após um intervalo de tempo. A estação A tem dados para transmitir durante o slot T5-T6, mas, como uma transmissão pode ocorrer apenas no início de um slot de tempo, o slot T5-T6 ficará livre.
F IGURA 5.8
Exemplo do protocolo slotted ALOHA.
A grande vantagem do protocolo slotted ALOHA é concentrar a ocorrência das colisões dentro dos limites dos slots. Como podemos observar na Fig. 5.8, apenas os quadros QA2 e QC1 são afetados pelo problema da colisão. Os quadros QB1 e QB2 estão livres do problema, pois estão em slots de tempo diferentes. Um problema apresentado por esse protocolo é a subutilização do meio. Como pode ser observado na figura, os slots T1-T2 e T5-T6 ficaram vagos devido à restrição de qualquer transmissão ser feita apenas no início de um slot de tempo. Para informações adicionais sobre o protocolo ALOHA e suas variações, consultar [Rom, 1990].
5.2.5 Protocolo CSMA
Nos protocolos ALOHA e slotted ALOHA apresentados anteriormente, as estações não estão preocupadas com o comportamento das demais. Se existem dados para serem transmitidos, então os quadros são enviados independentemente de se outra estação já esteja transmitindo. Essa estratégia, apesar de simples, gera uma taxa elevada de colisões e limita a eficiência do protocolo. Uma forma de melhorar o desempenho do protocolo é fazer com que uma estação, antes de transmitir, verifique se o meio está ocupado ou livre. Se o meio estiver ocupado, então a estação não poderá transmitir e deverá aguardar outra oportunidade para tentar fazê-lo. Nesse caso, o problema da colisão foi evitado. Se o meio estiver livre, então a estação poderá transmitir imediatamente, porém com a possibilidade de ocorrer uma colisão. Como duas ou mais estações podem verificar o meio no mesmo instante de tempo, as estações podem verificar que o meio está livre e transmitir simultaneamente, provocando uma colisão. Os protocolos de acesso que fazem a verificação do meio antes da transmissão são chamados de protocolos CSMA (Carrier Sense Multiple Access), e existem diversos algoritmos que têm como base esse protocolo. A seguir serão apresentadas duas implementações: CSMA persistente e CSMA não persistente. No protocolo CSMA persistente ou p-CSMA (persistent CSMA), quando uma estação tem dados para transmitir e o meio não está livre, a estação não transmite e fica verificando o meio até que este fique livre. Quando o meio é liberado, a estação transmite seus dados imediatamente. Se houver uma colisão, a estação deve aguardar um intervalo de tempo e verificar o meio novamente, reiniciando o algoritmo (Fig. 5.9).
F IGURA 5.9
Protocolo p-CSMA.
No protocolo CSMA não persistente ou np-CSMA (nonpersistent CSMA), quando uma estação tem dados para transmitir e o meio não está livre, a estação não transmite e fica aguardando por um intervalo de
tempo sem verificar o meio. Terminado esse período de tempo, a estação verifica o meio novamente e reinicia o algoritmo (Fig. 5.10).
F IGURA 5.10
Protocolo np-CSMA.
A diferença entre as duas implementações está apenas na ação tomada quando uma estação tem dados para transmitir e o meio não está livre. Enquanto no p-CSMA a estação fica verificando continuamente o meio até a sua liberação, no np-CSMA a estação aguarda um certo intervalo de tempo para tentar novamente a transmissão. Para informações adicionais sobre o protocolo CSMA, consultar [Kleinrock, 1975] e [Rom, 1990].
5.2.6 Protocolo CSMA/CD
Nos protocolos CSMA, caso o meio esteja livre, o dado pode ser transmitido imediatamente. Caso ocorra uma colisão durante a transmissão, o quadro continua a ser transmitido até o final, independentemente de se houve uma colisão. Enquanto o quadro estiver sendo transmitido, o meio estará ocupado, impedindo que outras estações façam uso do meio. Quanto maior o tamanho do quadro transmitido, maior a subutilização do meio no evento de uma colisão. O protocolo CSMA/CD introduz um melhoramento nessa parte do algoritmo, tornando a utilização do meio mais eficiente. No protocolo CSMA/CD (Carrier Sense Multiple Access with Collision Detection), caso ocorra uma colisão durante a transmissão de um quadro, a transmissão é interrompida logo que a colisão é detectada. Nesse caso, a estação espera por um intervalo de tempo, verifica novamente o meio e tenta outra vez a transmissão. Para que a colisão seja detectada durante a transmissão, a interface de comunicação do transmissor deve ter a capacidade de transmitir o dado e ao mesmo tempo verificar a ocorrência de uma colisão, ou seja, a interface deve funcionar no modo full-duplex (Fig. 5.11).
F IGURA 5.11
Protocolo CSMA/CD.
A Fig. 5.12 apresenta a comparação entre a transmissão de um quadro utilizando o protocolo CSMA e CSMA/CD. Na Fig. 5.12a é apresentado o esquema de transmissão do protocolo CSMA. O quadro é transmitido em T0 e em T1 ocorre uma colisão, porém o quadro continua a ser transmitido até o seu final em T2. Na Fig. 5.12b, é apresentado o esquema de transmissão do protocolo CSMA/CD. O quadro é transmitido em T0 e em T1 ocorre uma colisão, interrompendo a transmissão do restante do quadro. Como pode ser observado na Fig. 5.12a, o intervalo de tempo entre T1 e T2 está sendo ocupado por uma transmissão inútil, impedindo que o meio seja utilizado por outra estação. Nesse caso, o meio estaria sendo subutilizado.
F IGURA 5.12
Protocolos CSMA e CSMA/CD.
Sempre que ocorre uma colisão, as estações devem esperar por um intervalo de tempo para tentar uma nova transmissão. O período de contenção tem uma grande influência no desempenho do protocolo. Por
exemplo, suponha que duas estações verifiquem que o meio está livre e transmitam seus quadros. Detectada a colisão, as estações param imediatamente a transmissão e passam a aguardar por um intervalo de tempo. Se o tempo esperado for o mesmo, as duas estações irão retransmitir simultaneamente, gerando nova colisão. O problema se repetirá indefinidamente enquanto os tempos de espera forem iguais. Para reduzir a incidência de colisões sucessivas, os tempos de espera para cada estação são calculados de forma a gerar valores diferentes. O período de contenção, além de influenciar na taxa de colisões, também tem influência na taxa de utilização do meio. Quanto maior o período de contenção, maior o tempo que uma estação aguarda para tentar uma retransmissão, o que pode gerar uma subutilização do meio. O protocolo CSMA/CD foi apresentado por [Metcalfe, 1976] como esquema de controle de acesso ao meio para redes locais Ethernet, que será apresentado em detalhes neste capítulo.
5.2.7 Protocolo CSMA/CA
O protocolo CSMA/CD, apresentado anteriormente, presume que todas as estações têm condições iguais de identificar a ocorrência de colisões e verificar se o meio está livre ou não. Em redes cabeadas é possível assumir tais premissas, pois o sinal se propaga de forma que todas as estações identifiquem claramente a ocorrência de uma colisão e se o meio está realmente livre, porém em redes sem fio presumir essas condições não é tão simples. Um caso clássico que exemplifica essa situação, conhecido como o problema da estação escondida [Tobagi, 1975], pode ser acompanhado na Fig. 5.13. A estação Y está no raio de alcance das estações X e Z, porém X e Z estão a uma distância que não permite a comunicação direta entre as duas estações. A estação X verifica que o meio está livre e transmite para Y. Como a estação Z está fora do alcance de X, Z verifica que o meio está livre e também transmite para Y. Em algum momento as duas transmissões irão chegar à estação Y, gerando uma colisão. Neste exemplo, a estação Z está escondida da estação X.
F IGURA 5.13
Problema da estação escondida.
Outro caso semelhante à situação apresentada é conhecido como o problema da estação exposta e pode ser acompanhado na Fig. 5.14. Considere que a estação Y deseja enviar dados para a estação X e que a estação Z está no alcance de Y, mas não no alcance de X. Considere também que a estação Z deseja enviar dados para W e que a estação W está no alcance de Z, mas não está no alcance de Y. Quando a estação Y transmite dados para X, a estação Z verifica que o meio está ocupado e não pode transmitir seus dados para W, mesmo que sua transmissão não interfira com a estação X. Isso significa que Z poderia se comunicar com outra estação que estivesse fora do alcance de Y, mas não pode fazê-lo porque está exposta à transmissão de Y. Além disso, as estações em uma rede sem fio funcionam no modo halfduplex, ou seja, o processo de transmissão e recepção é feito de forma alternada. A transmissão full-duplex é complicada de ser implementada em redes sem fio, pois o sinal transmitido (de maior intensidade) pode interferir no sinal recebido (de menor intensidade), tornando difícil a identificação correta do sinal. Como as estações sem fio operam no modo half-duplex, não é possível a detecção de colisões enquanto estão transmitindo. Além disso, o sinal transmitido pode sofrer alterações, devido a ruídos e atenuações, tornando difícil para todas as estações identificarem se o sinal recebido é realmente fruto de uma colisão.
F IGURA 5.14
Problema da estação exposta.
O protocolo CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) implementa o esquema CSMA, porém introduz mecanismos para evitar os problemas apresentados. No CSMA/CA, o protocolo apenas verifica se o meio está livre antes de iniciar a transmissão. Se ocorrer uma colisão durante a transmissão, a estação não identificará o problema e continuará transmitindo até o fim do quadro. Como não é possível identificar claramente a ocorrência de colisões, os protocolos de acesso ao meio de redes sem fio tentam evitar a sua ocorrência. O CSMA/CA utiliza dois quadros especiais, chamados RTS e CTS, enviados antes de se iniciar a transmissão dos dados propriamente dita. O quadro RTS (Request To Send) funciona como um pedido de transmissão, enquanto o quadro CTS (Clear To Send) funciona como um aceite ao pedido de transmissão. Por exemplo, na Fig. 5.15a, a estação X envia um RTS para Y, antes de iniciar a transmissão do quadro de dados. Na Fig. 5.15b, a estação Y recebe o pedido de X e responde com um CTS. A estação X, ao receber o CTS, pode então transmitir o quadro de dados (Fig. 5.15c). A utilização dos quadros RTS/CTS permite alertar as estações que estão no raio de alcance de X e Y de que o meio estará ocupado e nenhuma outra transmissão deverá ser realizada nesse período. Na Fig. 5.15a, a estação X envia um RTS para Y, fazendo com que qualquer estação na área de cobertura de X também receba o RTS e saiba que uma transmissão estará em andamento. Na Fig. 5.15b, a estação Y envia um CTS para X, fazendo com que qualquer estação que esteja no raio de alcance de Y saiba que se dará uma transmissão. Nesse caso, a estação Z também irá receber o quadro CTS, fazendo com que aguarde e não inicie a sua transmissão. Como pode ser observado, a utilização dos quadros RTS/CTS evita o problema da estação escondida, porém não o
resolve completamente. Por exemplo, se o CTS enviado pela estação Y não chegar a Z, a estação Z irá transmitir e não será possível evitar a colisão. A utilização dos quadros RTS/CTS também permite evitar o problema da estação exposta. Na Fig. 5.14, a estação Y envia um RTS para X, indicando que irá transmitir. A estação X responderá com um CTS que será recebido por Y, mas não pela estação Z. Como a estação Z não recebeu um CTS, significa que a mensagem a ser enviada por Y tem um destinatário fora de alcance de Z. Logo a estação Z poderá comunicar-se com W sem afetar a transmissão de Y e X. Novamente, a utilização dos quadros RTS/CTS evita o problema, mas não o resolve. Para que as estações que estão no raio de alcance da transmissão saibam o período de tempo que devem permanecer sem ter acesso ao meio, os quadros RTS/CTS possuem um campo indicando o tamanho do quadro de dados que será transmitido. Dessa forma, os quadros RTS/CTS funcionam como um esquema de reserva do meio, evitando a ocorrência de colisões.
F IGURA 5.15
Protocolo CSMA/CA com RTS e CTS.
Além da dificuldade em identificar corretamente a ocorrência de colisões em redes sem fio, nem sempre é possível identificar com precisão se o meio está realmente livre. Depois de transmitido, o sinal sofre atenuação conforme se desloca pelo meio, chegando apenas nas estações que estão no raio de cobertura do transmissor. Em função da dificuldade em se definir se o meio está livre, alguns protocolos simplesmente aboliram esse mecanismo. Nos protocolos MACA (Multiple Access with Collision Avoidance) [Karm, 1990] e MACAW (MACA for Wireless) [Bharghavan, 1994] não há a verificação do meio antes da transmissão para identificar
se está livre, mas apenas mecanismos para evitar colisões. Nos dois protocolos, o esquema de quadros RTS/CTS é implementado. O protocolo CSMA/CA forma a base do protocolo DFWMAC, utilizado no controle de acesso ao meio em redes locais sem fio que seguem o padrão IEEE 802.11, que será apresentado em detalhes neste capítulo. Para informações adicionais sobre protocolos de controle de acesso ao meio em redes sem fio, consultar [Gummalla, 2000].
5.2.8 Protocolo Baseado em Polling
Nos protocolos baseados em polling, existe um dispositivo central, chamado máster, que pergunta a cada estação se possui dados para transmitir. Por exemplo, na Fig. 5.16 o dispositivo máster pergunta à estação W se possui dados para transmitir. Caso a estação tenha dados, a transmissão é realizada; caso contrário, a estação máster simplesmente passa para o próximo dispositivo. O algoritmo se repete para a estação X e assim sucessivamente até a estação N. Nesse ponto, o algoritmo reinicia e a estação W é novamente interrogada. Dessa forma, o algoritmo de polling funciona como um escalonamento circular.
F IGURA 5.16
Protocolo baseado em polling.
Para que o algoritmo de polling possa ser executado, é necessário primeiramente que a estação máster conheça as estações da rede que têm dados para transmitir. Depois, a estação máster deverá especificar uma sequência que determine quando cada estação será interrogada. Como cada estação pode transmitir apenas quando interrogada, não há problemas de colisão e necessidade de períodos de contenção. Dessa
forma, é possível garantir a qualidade de serviço para aplicações que necessitem, por exemplo, de garantia de banda e atraso. Esse protocolo, apesar de sua simplicidade, apresenta alguns problemas. Primeiro, existe uma dependência com relação à estação máster. Se houver algum problema com o dispositivo central, uma outra estação deverá assumir suas funções. Outro problema é o tempo desperdiçado com as perguntas para cada estação que compõem a rede, especialmente quando a rede é formada por um grande número de dispositivos e poucas estações têm dados para transmitir. O protocolo baseado em polling é utilizado como esquema de controle de acesso ao meio em redes locais sem fio IEEE 802.11, que será apresentado em detalhes neste capítulo. Para informações adicionais sobre protocolos baseados em polling, consultar [Levy, 1990].
5.2.9 Protocolo Baseado em Token
Nos protocolos baseados em token, existe um quadro especial, chamado token, que determina quando uma estação poderá fazer uso do meio. O token percorre as estações a partir de uma ordem predefinida e pode estar em dois estados: livre ou ocupado. Quando o token está livre, a estação que tem a posse do token poderá transmitir seus dados, caso contrário a estação não poderá transmitir naquele momento e deverá aguardar até que receba o token no estado de livre. Dessa forma, não há o problema de colisões e a necessidade de períodos de contenção, permitindo a melhor utilização do meio. Esse algoritmo é semelhante ao de polling, pois também implementa um esquema de escalonamento circular, porém não existe uma estação centralizando a passagem do token. Para exemplificar o funcionamento do algoritmo, vejamos a sua implementação em redes Token Ring. Nesse esquema, as estações estão dispostas em uma topologia de anel, e o token circula continuamente pelo anel. A Fig. 5.17 apresenta uma configuração com quatro estações W, X, Y e Z, e a estação X envia um quadro para a estação Z. Na Fig. 5.17a, a estação W cria o token e o coloca no estado de livre no anel. Na Fig. 5.17b, a estação X recebe o token livre, altera o estado do token para ocupado e transmite o quadro em sequência. A estação Y verifica que o token está ocupado e não realiza a sua transmissão. Na Fig. 5.17c a estação Z recebe o quadro, porém tanto o token quanto o quadro continuam a circular pelo anel. A estação W verifica que o token está ocupado e não realiza a sua transmissão. Finalmente, na Fig. 5.17d, a estação X, que realizou a transmissão, coloca o token no estado de livre
novamente e retira o quadro do anel. A estação Y receberá o token livre e poderá realizar a sua transmissão.
F IGURA 5.17
Protocolo baseado em token.
Esse protocolo também apresenta alguns problemas, e o principal é a gerência do token. O token deve ser criado quando a rede é inicializada e recriado quando é perdido por algum motivo. Outro problema ocorre quando um token no estado de ocupado não volta para o estado de livre, bloqueando o acesso ao meio. Todos os problemas relacionados à gerência do token devem ser tratados por alguma estação especialmente designada como monitora. O protocolo baseado em token é utilizado como esquema de controle de acesso ao meio em redes Token Bus (IEEE 802.4), Token Ring (IEEE 802.5) e FDDI. Informações adicionais sobre essas implementações podem ser obtidas em [Tanenbaum, 1996] e [Soares, 1995].
5.3 Modelo IEEE 802 O grupo de trabalho conhecido como IEEE 802 é responsável pela padronização dos protocolos para redes locais e metropolitanas. O modelo de camadas do IEEE 802 define protocolos apenas para as camadas física e de enlace, não fazendo nenhuma referência às camadas superiores. Além disso, o nível de enlace é dividido em duas subcamadas: controle de acesso ao meio (MAC) e controle do enlace lógico (LLC). A Fig. 5.18 apresenta o modelo de camadas do IEEE 802.
F IGURA 5.18
Modelo IEEE 802.
A camada física é responsável pela codificação e decodificação dos sinais, geração do preâmbulo que permite identificar o início do quadro e a sincronização da transmissão. Além disso, a camada física define o tipo de meio de transmissão, os conectores, as interfaces de comunicação e a topologia da rede. A camada de controle de acesso ao meio ou MAC (Medium Access Control) é responsável pelo controle de acesso ao meio propriamente dito, além da construção do quadro, endereçamento e detecção de erro. Existem diversos grupos de trabalho dentro do IEEE 802, e os dois mais importantes são o IEEE 802.3, que define padrões para redes locais Ethernet, e o IEEE 802.11, que define padrões para redes locais sem fio. Como pode ser observado na Fig. 5.18, os grupos são responsáveis pela definição de protocolos da camada física e da camada MAC, pois existe
uma grande dependência entre o mecanismo de controle de acesso ao meio e o tipo de meio de transmissão utilizado. A principal função da camada de controle do enlace lógico ou LLC (Logical Link Control) é compatibilizar os diversos tipos de MAC com a camada de rede, além de oferecer, opcionalmente, correção de erro e controle de fluxo. A camada LLC pode oferecer três tipos de serviços: serviço orientado à conexão, serviço não orientado à conexão com reconhecimento e serviço não orientado à conexão sem reconhecimento. No serviço orientado à conexão é estabelecida uma ligação lógica entre as estações antes de iniciarem a transmissão propriamente dita. Esse serviço garante a entrega e sequência dos quadros, além do controle de fluxo entre as estações. No serviço não orientado à conexão com reconhecimento, não é estabelecida uma conexão lógica, porém há a garantia de entrega e sequência dos quadros enviados. No serviço não orientado à conexão sem reconhecimento, não é estabelecida uma conexão lógica entre as estações, não há garantia de que os quadros serão recebidos e em qual sequência. Esse último serviço, apesar de não ser confiável, é o mais simples de ser implementado e o que oferece o melhor desempenho. Na maioria dos casos, a camada LLC oferece o serviço não orientado à conexão sem reconhecimento, principalmente se na camada de transporte for utilizado o protocolo TCP. Como veremos no Capítulo 6 – Camada de Transporte, o protocolo TCP já implementa um serviço orientado à conexão. Se a camada LLC também implementar o mesmo tipo de serviço, haverá uma repetição de funções, gerando um menor desempenho na comunicação. Como existem duas camadas no nível de enlace, o esquema de encapsulamento deve isolar as suas funções, como foi apresentado no Capítulo 2 – Modelo de Camadas. A Fig. 5.19 mostra o dado sendo encapsulado na camada de aplicação, que por sua vez é encapsulado na camada de transporte e assim sucessivamente até chegar à camada LLC. Na camada LLC, o PDU (Protocol Data Unit) de rede é encapsulado, formando o PDU LLC, que por sua vez é novamente encapsulado na camada MAC, formando o PDU MAC, também chamado de quadro MAC.
F IGURA 5.19
Encapsulamento no modelo IEEE 802.
O formato do PDU LLC é bastante simples, como pode ser observado na Fig. 5.20, que apresenta o tamanho dos campos em bytes. Os dois primeiros campos, DSAP (Destination Service Access Point) e SSAP (Source Service Access Point), representam os endereços LLC de destino e origem, respectivamente. O campo Controle permite implementar diversas funções, como o serviço orientado à conexão e o serviço orientado à conexão com reconhecimento.
F IGURA 5.20
PDU LLC.
Depois de apresentados o modelo IEEE 802 e a camada LLC, vejamos a seguir dois exemplos de MAC largamente utilizados pelo mercado: Ethernet (IEEE 802.3) e redes locais sem fio (IEEE 802.11).
5.4 Ethernet A tecnologia Ethernet foi desenvolvida por Robert Metcalfe nos laboratórios de pesquisa da Xerox, na primeira metade dos anos 1970. A primeira versão do Ethernet utilizava cabo coaxial, o protocolo CSMA/CD para controle de acesso ao meio, suportava 256 estações e oferecia taxas de transmissão de até 3 Mbps [Metcalfe, 1976]. No início da década de 1980, Digital, Xerox e Intel (DIX) juntaram forças para desenvolver produtos com tecnologia Ethernet, com taxas de transmissão de até 10 Mbps. Em 1983, o IEEE criou o padrão 802.3 para redes locais com base, em grande parte, no trabalho desenvolvido pelo DIX. Desde então, o Ethernet evoluiu de uma taxa de transmissão de 10 Mbps para 10 Gigabit, e está em desenvolvimento o Ethernet com taxa de transmissão de 100 Gigabit. Não foi apenas a taxa de transmissão que evoluiu na tecnologia Ethernet. A topologia em barra, inicialmente adotada, foi substituída pela topologia em estrela, utilizando hubs e switches. A mudança de topologia permitiu ao padrão Ethernet maior escalabilidade, facilidade de instalação e manutenção. O cabeamento, que utilizava basicamente cabos coaxiais, evoluiu para o par trançado e fibra ótica. Apesar das mudanças, o Ethernet evoluiu mantendo a compatibilidade com versões anteriores, simplicidade de instalação e configuração, além do baixo custo. Para informações adicionais sobre redes Ethernet, consultar [Seifert, 2010] e [Spurgeon, 2000].
5.4.1 Quadro Ethernet
O quadro Ethernet desenvolvido pelo IEEE 802.3, apesar de seguir em grande parte a proposta do DIX Ethernet, não é totalmente compatível. A Fig. 5.21a apresenta o quadro Ethernet IEEE 802.3, enquanto a Fig. 5.21b mostra o quadro DIX Ethernet. Como pode ser observado na figura, existem diferenças nos campos Preâmbulo e Tipo/Tam.
F IGURA 5.21
Quadros Ethernet.
O campo Preâmbulo é formado por uma sequência de bytes e serve para sincronizar a interface de rede do receptor e indicar o início do quadro. No quadro IEEE 802.3 existe um campo que serve para delimitar o início do quadro (IQ), que não está presente no Ethernet DIX. Apesar da diferença, ela não é significativa, pois a sequência de bits é a mesma nos dois tipos de quadros. O Endereço de destino e o Endereço de origem especificam o receptor e o transmissor do quadro, respectivamente. Esses endereços também são chamados de endereços físicos ou endereços MAC, por estarem relacionados à interface de rede. Cada placa de rede fabricada possui um endereço MAC único, fornecido em parte pelo IEEE. O endereço Ethernet permite o esquema de endereçamento unicast, multicast e broadcast. No endereçamento broadcast, todos os bits do endereço de destino são ligados, formando um endereço do tipo FF-FF-FF-FF-FF-FF. A Fig. 5.22 apresenta um exemplo de uma transmissão unicast, e a estação X deseja enviar um quadro para a estação Z. Inicialmente, a estação X preenche o cabeçalho do quadro com os endereços MAC de origem e destino. O quadro é transmitido, e, como o meio é compartilhado, o frame se propaga nas duas direções (Fig. 5.22a). O quadro, em algum momento, alcança as estações W e Y, que leem os campos do quadro até o endereço de destino para saber a qual estação o quadro foi endereçado. Como o quadro tem como destinatário a estação Z, as estações W e Y interrompem a leitura do restante do quadro (Fig. 5.22b). O quadro prossegue até chegar à estação Z, onde é lido o endereço de destino. Como Z é o destinatário da mensagem, a estação lê o restante do quadro (Fig. 5.22c). O quadro não é retirado do meio de transmissão e continua a ser lido e ignorado pelas demais estações que porventura estejam após a estação W e Z. O quadro será retirado do meio apenas quando encontrar um terminador que identifica o término do cabo.
F IGURA 5.22
Endereçamento Ethernet.
O campo Tipo, no quadro Ethernet DIX, permite identificar o tipo de informação que está encapsulada no campo dados. Esse campo identifica o protocolo da camada superior que receberá os dados e irá processá-los. Por exemplo, o campo Tipo com o valor hexadecimal 0800 representa o protocolo de rede IP, indicando que no campo Dados está encapsulado um pacote IP. O campo Tam, no quadro IEEE, define o tamanho do campo de Dados, que pode ter no máximo 1500 bytes. O quadro Ethernet, além de definir um tamanho máximo para o campo de Dados, define também um tamanho mínimo de 46 bytes. Essa restrição está associada ao protocolo de controle de acesso ao meio e será abordada na próxima seção. Para diferenciar o quadro Ethernet DIX do quadro Ethernet IEEE, foi definido que o valor do campo Tipo/Tam seria padronizado. Se o valor do campo for menor ou igual a 1500 (decimal), o formato do quadro é
Ethernet e o campo deve ser utilizado como o tamanho dos dados, nesse caso um PDU LLC. Se o valor do campo for maior que 1500, o formato do quadro é DIX e o campo deve ser utilizado como o tipo do protocolo da camada superior. O último campo do quadro Ethernet é o Checksum, utilizado para a detecção de erro. Esse campo é calculado a partir do CRC-32 dos campos do quadro, excluindo o preâmbulo e o início do quadro (IQ). Um quadro recebido com algum tipo de erro é apenas descartado. O Ethernet não implementa nenhuma estratégia de correção de erro ou reconhecimento, ficando essa tarefa a cargo das camadas superiores.
5.4.2 Protocolo de Acesso ao Meio
O protocolo de controle de acesso ao meio utilizado no padrão Ethernet é o CSMA/CD (Carrier Sense Multiple Access with Collision Detection), apresentado anteriormente. No protocolo CSMA/CD, as estações, antes de transmitirem, verificam se o meio está livre, ou seja, se não existe alguma transmissão em andamento. Caso o meio esteja livre, a estação aguarda por um pequeno intervalo de tempo (interframe gap) e inicia a transmissão do quadro. Caso contrário, a estação não transmite e aguarda até que o meio fique disponível, utilizando o esquema CSMA persistente (Fig. 5.23).
F IGURA 5.23
Protocolo CSMA/CD.
Como duas ou mais estações podem verificar que o meio está livre ao mesmo tempo e transmitir simultaneamente seus quadros, existe a possibilidade de ocorrer uma colisão. Nesse caso, todos os frames transmitidos serão afetados, obrigando a uma posterior retransmissão dos frames. No CSMA/CD, as estações têm a capacidade de identificar a ocorrência de uma colisão durante o envio de um quadro e interromper a transmissão imediatamente, permitindo que o meio volte a ser utilizado mais rapidamente. Uma colisão é identificada pelas interfaces de rede das estações a partir de uma variação de voltagem no meio de transmissão, decorrente da sobreposição dos sinais. Para garantir que todas as estações envolvidas na colisão tenham conhecimento do problema e interrompam as transmissões de seus quadros imediatamente, é enviado um sinal de reforço, chamado jam. O campo de dados do quadro Ethernet tem tamanho máximo de 1500 bytes e tamanho mínimo de 46 bytes, ou seja, um quadro Ethernet pode ter no mínimo 64 bytes. Esse número é resultado da soma dos 46 bytes do campo de dados mais 18 bytes do cabeçalho do quadro (excluindo o preâmbulo) e checksum. Caso um quadro tenha menos de 64 bytes, o protocolo preenche o restante do campo de dados até o seu tamanho mínimo. Esse procedimento, chamado padding, é necessário para que o protocolo de acesso ao meio CSMA/CD funcione corretamente, como apresentado a seguir. Na Fig. 5.24a, as estações X e Y estão em extremidades opostas e a estação X envia um quadro para Y. Como o quadro leva certo intervalo de tempo T para alcançar a outra extremidade, a estação Y não percebe que o meio está ocupado. Imediatamente antes de receber o quadro de X, a estação Y transmite seu próprio quadro, gerando uma colisão (Fig. 5.24b). A estação Y percebe a colisão rapidamente e interrompe a transmissão do seu quadro imediatamente. A estação X, como está na outra extremidade, leva cerca de 2T para perceber a colisão e interromper sua transmissão (Fig. 5.24c). Se o quadro transmitido pela estação X for muito pequeno, é possível que a transmissão do quadro termine antes que a colisão seja percebida por X, levando a estação a acreditar que a transmissão foi realizada com sucesso. Para evitar essa situação, o quadro deve ter um tamanho mínimo que, quando transmitido, tenha a duração de, pelo menos, 2T. Dessa forma, quando a colisão alcançar a estação X, a estação ainda estará transmitindo seu quadro.
F IGURA 5.24
Tamanho mínimo do quadro Ethernet.
Para que o mecanismo de colisão funcione de forma efetiva, esse tempo deve ser calculado com precisão. No Ethernet de 10 Mbps, que especifica um comprimento máximo de 2500 metros, o tempo foi definido como igual a 51,2 microssegundos (μs), o que determina um quadro de no mínimo 512 bits ou 64 bytes. O intervalo de tempo que define o tamanho mínimo do quadro para garantir o funcionamento do mecanismo de colisão é chamado slot time. Após uma colisão, as estações envolvidas interrompem a transmissão de seus quadros e aguardam por um intervalo de tempo. Terminado o intervalo de tempo, as estações verificam novamente a disponibilidade do meio para, em seguida, tentar a transmissão. Para evitar que as estações envolvidas na colisão aguardem pelo mesmo intervalo de tempo e, consequentemente, gerem colisões sucessivas, existe um algoritmo que tenta minimizar esse problema, chamado backoff exponencial binário.
O algoritmo para cálculo do tempo de backoff (TB) é apresentado a seguir, e o slot time representa o tempo necessário para gerar um quadro que garanta a identificação de colisões, R representa um valor inteiro aleatório dentro do intervalo especificado e K, o número de colisões sucessivas. Por exemplo, suponha um slot time de 51,2 μs e que ocorra a primeira colisão entre duas estações. Nesse caso, K é igual a 1, R poderá assumir os valores 0 ou 1 e o tempo de backoff, os valores 0 ou 51,2 μs. Se ocorrer uma segunda colisão, K é igual a 2, R poderá assumir os valores 0, 1, 2 ou 3 e o tempo de backoff, os valores 0, 51,2, 102,4 e 153,6 μs. Esse processo se repete até a décima colisão, quando K permanece constante até a décima sexta colisão. Dessa forma, quanto maior a taxa de colisão, maiores os tempos de espera, o que produzirá como consequência uma redução da taxa de colisão. Se ocorrer a décima sétima colisão, o processo de backoff é interrompido e o quadro é descartado. TB = slot time * R 0 arp -a Interface: 10.41.1.100 --- 0x2 Endereço IP
Endereço físico
Tipo
10.41.1.1
00-04-96-34-a6-16
dinâmico
10.41.1.5
00-30-48-8b-52-e6
dinâmico
10.41.1.6
00-30-48-8b-55-90
dinâmico
10.41.1.110
00-40-a7-12-11-c9
dinâmico
O protocolo ARP permite que a partir do endereço IP se obtenha o endereço de enlace. Existe também a situação inversa, em que uma estação conhece o endereço Ethernet e quer saber qual o endereço IP associado. Esse mecanismo é conhecido como mapeamento reverso de endereços, e é implementado no modelo Internet pelo protocolo RARP (Reverse Address Resolution Protocol) e definido na RFC-903.
6.4.6 Tradução de Endereços de Rede
Quando a Internet foi concebida e seus protocolos elaborados, um espaço de endereçamento da ordem de 232 parecia difícil de ser esgotado. O fato é que com o crescimento exponencial da Internet o limite está prestes a ser alcançado, obrigando os projetistas responsáveis por manter a Internet a criar novas soluções. Uma das soluções mais utilizadas para contornar o problema da escassez de endereços é a tradução de endereços de rede ou NAT. O NAT (Network Address Translation) permite que uma instituição opere com apenas um endereço na Internet, mesmo possuindo inúmeros hosts na rede interna. Para isso, existe um dispositivo que implementa o NAT, geralmente um roteador, fazendo a ligação entre a rede interna e a Internet. O NAT permite que uma instituição opere com apenas um endereço classe C, reduzindo assim a necessidade dos poucos endereços classe B ainda disponíveis. O NAT utiliza o conceito de endereços
privados, que são endereços que não podem ser utilizados na Internet, mas apenas dentro da rede interna. A Tabela 6.6 apresenta o intervalo de endereços privados de cada classe, como definido na RFC-1918. Na maioria dos casos, os administradores escolhem endereços privados classe A, independentemente do tamanho da rede interna. Tabela 6.6
Intervalos de endereços privados
Classe
Endereço inicial
Endereço final
A
10.0.0.0
10.255.255.255
B
172.16.0.0
172.31.255.255
C
192.168.0.0
192.168.255.255
A Fig. 6.19 apresenta a rede 10.0.0.0 conectada à Internet através do roteador R, que utiliza um endereço privado classe A (10.0.0.1) para a rede interna e um endereço classe C (192.1.2.3) para a rede externa. Vejamos como o host A (10.0.0.2) se comunica com o host B (146.164.2.70) utilizando o esquema de NAT. Primeiro, o pacote sai do host A e chega ao roteador (10.0.0.1). O roteador, por sua vez, faz a tradução do endereço privado 10.0.0.2 para o endereço 192.1.2.3 e envia a mensagem para o host B. O pacote, ao chegar no destino, é respondido para o endereço 192.1.2.3, e o host B desconhece a existência da rede 10.0.0.0 e da estação 10.0.0.2.
F IGURA 6.19
Funcionamento do NAT.
Uma questão importante que deve ser levantada é como o roteador, ao receber um pacote da rede externa, sabe para qual host da rede interna o datagrama deve ser encaminhado. Para poder relacionar as conexões internas com as conexões externas de forma única, o NAT utiliza o conceito de portas, implementado na camada de transporte, como veremos no Capítulo 7 — Camada de Transporte.
6.4.7 Endereçamento Multicast
Até o momento, abordamos os endereços unicast e broadcast. Enquanto no endereçamento unicast a mensagem é destinada apenas a um host, no endereçamento broadcast todos os hosts receberão a mensagem. No endereçamento multicast ou multidifusão uma mensagem é enviada para um grupo de hosts, conhecido como grupo multicast. Na Fig. 6.20, os dispositivos em destaque fazem parte do grupo multicast que receberá a mensagem. Esse tipo de endereçamento vem ganhando importância à medida que crescem as aplicações voltadas para grupos de usuários, como em áudio e videoconferência, aplicações distribuídas, jogos interativos e localização de recursos na rede.
F IGURA 6.20
Endereçamento multicast.
Cada grupo multicast possui um endereço, chamado endereço multicast, que permite identificá-lo unicamente na rede. Para que um host possa receber uma mensagem endereçada a um determinado grupo multicast, é necessário, primeiro, que a estação faça parte desse grupo. Fazer parte de um grupo significa ter configurado o endereço multicast associado ao grupo. Uma estação, além dos endereços unicast e broadcast, pode ter associados um ou mais endereços multicast, permitindo que a estação seja membro de vários grupos multicast ao
mesmo tempo. Vale ressaltar que uma estação, para enviar uma mensagem para um grupo multicast, não precisa fazer parte do grupo. O endereço multicast, no modelo Internet, é implementado através de endereços classe D. Como pode ser observado na Fig. 6.10, um endereço classe D possui 28 bits, oferecendo um espaço de endereçamento de 228 endereços. A classe D inicia no endereço 224.0.0.0 e termina no endereço 239.255.255.255, porém alguns endereços nesse intervalo são reservados, como definido na RFC-1700. A gerência de grupos multicast é implementada pelo protocolo IGMP (Internet Group Management Protocol), definido na RFC-2236. O protocolo IGMP permite que um host se associe e, posteriormente, se desassocie de grupos multicast. Nesse modelo, existem dois tipos de grupo: temporário e permanente. Um grupo multicast temporário é criado quando o primeiro host solicita sua associação e eliminado quando o último host se desassocia. Um grupo multicast permanente existe independentemente de haver hosts associados. O IGMP é parte integrante da camada de rede do modelo Internet e é encapsulado em um pacote IP para ser transmitido. A transmissão multicast envolve dois mecanismos distintos e complementares. O primeiro mecanismo é aquele que trata do endereçamento e da gerência de grupos multicast, que foi abordado nesta seção. O segundo mecanismo, definido como roteamento multicast, é responsável pelo encaminhamento eficiente dos pacotes para os respectivos membros do grupo multicast e será abordado na seção Roteamento, a seguir.
6.5 Roteamento O roteamento é a tarefa de encaminhar um pacote da origem ao destino utilizando dispositivos intermediários, chamados de roteadores, que juntos compõem a rede de interconexão. A escolha do caminho que um determinado pacote deverá seguir pela rede de interconexão é realizada pelo algoritmo de roteamento, e para determinar o caminho os roteadores mantêm tabelas de roteamento com informações sobre as rotas disponíveis. Sempre que um pacote é recebido pelo roteador, o algoritmo verifica na tabela de roteamento o melhor caminho para encaminhá-lo. Além disso, o algoritmo de roteamento deve manter atualizadas as informações para realizar essa tarefa. Periodicamente os roteadores
trocam informações para que possam atualizar suas tabelas de roteamento e, assim, tomar conhecimento das mudanças ocorridas na rede, como, por exemplo, a falha de um roteador ou canal de comunicação. Um roteador possui pelo menos duas interfaces de rede, e cada interface conecta uma rede distinta. Nesse caso, o algoritmo de roteamento seleciona uma determinada interface para encaminhar um pacote, em função do endereço IP de destino contido no cabeçalho do pacote. Na Fig. 6.21 existem quatro redes conectadas por três roteadores (R1, R2 e R3), e cada roteador possui duas interfaces de rede (1 e 2) conectando uma rede distinta. Por exemplo, o roteador R1 conecta na interface 1 a rede 20 e na interface 2 a rede 30. Cada roteador possui a sua própria tabela de roteamento (TR1, TR2 e TR3), formada por pares indicando a rede e a interface que deve ser utilizada para alcançá-la. No exemplo, todas as tabelas de roteamento possuem quatro entradas, uma para cada rede conhecida.
F IGURA 6.21
Processo de roteamento.
Utilizando o exemplo da Fig. 6.21, vejamos como um pacote enviado da rede 50 chega à rede 20. O roteador R3, ao receber o pacote, verifica o endereço IP de destino e consulta a TR3 para saber por qual interface deve encaminhar o pacote. Como a rota para a rede 20 está configurada para a interface 1, o pacote é reencaminhado para a rede 40. O roteador R2, por sua vez, verifica o endereço IP de destino, e, como a rota para rede 20 está configurada para a interface 1, o pacote é reencaminhado para a rede 30. Finalmente, R1 recebe o pacote, verifica o destino e o encaminha para a interface 1, alcançando o seu destino. No exemplo da Fig. 6.21, as tabelas de roteamento dos três roteadores estão preenchidas com todas as rotas possíveis. Dependendo da topologia da rede, não é necessário definir todas as rotas existentes, e, nesse caso, se faz necessário definir uma rota padrão ou rota default, pela
qual todos os pacotes serão encaminhados na ausência de uma rota específica. Por exemplo, na Fig. 6.22 o roteador R3 não precisa ter rotas para as redes 20 e 30. Se R3 possuir apenas uma rota padrão definida para a interface 1, todos os pacotes que não sejam para a rede 50 serão encaminhados para a interface de R3 conectada à rede 40. O mesmo poderia ser feito no roteador R1, definindo uma rota padrão para a interface 2. Para definir a rota padrão em redes IP basta criar uma rota com o endereço 0.0.0.0 para a interface ou endereço IP para o qual se deseja encaminhar os pacotes. Os usuários da rede local 50, quando querem se comunicar com outros usuários da mesma rede, não precisam de um roteador. A partir do endereço de enlace, os switches da rede podem fazer o encaminhamento dos quadros. Um problema surge quando os usuários querem se comunicar com usuários de outras redes, por exemplo, a rede 20. Para resolver esse problema, as estações da rede local possuem definido o endereço IP do gateway padrão ou default gateway. O gateway padrão representa o roteador que recebe todo tráfego que seja endereçado para fora da LAN. Se o endereço do gateway padrão for configurado incorretamente, os usuários da rede local não terão acesso à rede externa, mesmo que o roteador esteja operacional. Na Fig. 6.21, se, por exemplo, o endereço IP da interface que liga R3 à rede 50 for 50.0.0.1, as estações da rede local deverão ter como gateway padrão esse endereço. Em redes que utilizam o esquema de endereçamento dinâmico, a informação sobre o gateway padrão é fornecida pelo servidor de DHCP, simplificando a configuração das estações.
F IGURA 6.22
Roteamento com rotas padrão.
Um conceito importante quanto se trata de roteamento é o domínio de broadcast. No Capítulo 5 — Arquitetura de Redes Locais, tratamos desse assunto, juntamente com o conceito de domínio de colisão. Vimos que switches reduzem os domínios de colisão, mas tinham influência no domínio de broadcast apenas quando se utilizavam redes virtuais
(VLANs), o que não é sempre possível de implementar. Outra forma de reduzir os domínios de colisão é a utilização de roteadores separando as redes. Por exemplo, na Fig. 6.21 temos quatro domínios de broadcast diferentes. Caso alguma estação da rede 50 envie uma mensagem do tipo broadcast, apenas os usuários que estão na mesma rede a receberão. O roteador verifica que o pacote tem como endereço de destino o endereço de broadcast da rede local 50 e não reencaminha a mensagem às demais redes. Um roteador possui três funções básicas: manutenção das informações de roteamento, encaminhamento de pacotes e serviços adicionais. A manutenção das informações de roteamento inclui a construção da tabela de roteamento e a sua atualização através de troca de informações com outros roteadores. O encaminhamento de pacotes significa receber um pacote por uma interface de entrada, determinar o caminho a ser seguido e reencaminhá-lo para a respectiva interface de saída. Para determinar o caminho para o reencaminhamento do pacote é feita uma busca na tabela de roteamento a partir do endereço de destino contido no pacote. Basicamente, um roteador é formado por quatro componentes: processador, memória, interfaces de rede e algum esquema de interconexão que permita a comunicação das unidades funcionais (processador, memória e interfaces). Uma interface de rede opera de duas formas diferentes: a interface de entrada recebe os pacotes, enquanto a interface de saída transmite os pacotes. Normalmente, uma interface de rede realiza as duas funções, ou seja, recebe e envia pacotes. Os roteadores podem ser classificados em dois tipos: especializado e não especializado. Um roteador especializado é concebido apenas para realizar as tarefas de roteamento e seus componentes projetados para maximizar o desempenho dessa tarefa. Na maioria dos casos, os roteadores especializados possuem uma arquitetura e um sistema operacional proprietários e diversas funções implementadas em hardware para obter melhor desempenho. Dependendo do tipo do roteador, é possível serviços adicionais, como, por exemplo, segurança, gerência de rede, controle de congestionamento e qualidade de serviço. Um roteador não especializado pode ser um computador comum, com pelo menos duas interfaces de rede, configurado de forma a realizar as funções de roteamento. O software utilizado é um sistema operacional multiprogramável, como Linux ou MS Windows, que ofereça suporte a roteamento. Normalmente, o software de roteamento é uma extensão do sistema operacional e pode ser configurado quando necessário. Enquanto os roteadores especializados estão dedicados exclusivamente ao
roteamento de pacotes, os não especializados podem realizar o roteamento e outras tarefas de forma concorrente. A grande vantagem dos roteadores não especializados é o seu menor custo, mas, por outro lado, não há compromisso com desempenho. Essa solução é indicada apenas para pequenas redes com baixo tráfego. Para informações adicionais sobre a arquitetura de roteadores, consultar [Maia, 2009]. É importante não confundir o conceito de protocolo roteável e protocolo de roteamento. Um protocolo roteável, como o protocolo IP, carrega os dados da camada de transporte e possui informações de controle no seu cabeçalho que permitem o processo de encaminhamento. O protocolo IP não realiza o roteamento propriamente dito, função essa que é desempenhada pelo protocolo de roteamento. O protocolo de roteamento implementa um algoritmo que realiza efetivamente o roteamento dos pacotes. Por exemplo, os protocolos RIP e OSPF utilizam as informações no cabeçalho do pacote IP, como o endereço de destino, para realizar o processo de encaminhamento. Enquanto o IP é chamado de protocolo roteável, diz-se que o protocolo NetBEUI, utilizado em antigas redes MS Windows, é não roteável. Existem diversos algoritmos de roteamento, porém abordaremos nesta seção os principais algoritmos utilizados em redes de pacotes, especialmente na Internet. Antes serão apresentados as principais características que se espera de um bom algoritmo de roteamento, os tipos existentes e as métricas utilizadas para a escolha do melhor caminho. Para informações adicionais sobre esse assunto, consultar [Doyle, 1998], [Doyle, 2001] e [Huitema, 2000].
6.5.1 Características dos Algoritmos de Roteamento
Um algoritmo de roteamento deve oferecer algumas características básicas, como selecionar o melhor caminho, convergir rapidamente, oferecer robustez, oferecer escalabilidade e consumir poucos recursos computacionais. A seguir é descrita cada uma dessas características.
■ Selecionar o melhor caminho
Um algoritmo de roteamento não tem apenas a função de selecionar um caminho qualquer, mas escolher a melhor rota para encaminhar um pacote. O melhor caminho dependerá da métrica que o algoritmo está utilizando no processo de roteamento. Uma métrica, como veremos em detalhes, é uma medida que permite ao algoritmo de roteamento calcular
o melhor caminho, baseado, por exemplo, na taxa de transmissão dos canais de comunicação ou no atraso.
■ Convergir rapidamente
Um algoritmo de roteamento deve ser capaz de adaptar-se rapidamente às mudanças que possam ocorrer na rede, como, por exemplo, falhas em roteadores e canais de comunicação. A convergência é o processo que permite que todos os roteadores tomem conhecimento das mudanças ocorridas na rede e, dessa forma, possam tomar decisões de roteamento corretas. A convergência é alcançada com a troca de informações entre os roteadores para que, a partir dessas informações, possam recalcular os melhores caminhos. Se um algoritmo de roteamento não oferece uma rápida convergência, é possível que nem todos os roteadores tenham a mesma informação sobre as possíveis rotas, levando a situações de loops e falhas na rede.
■ Oferecer robustez
Um algoritmo de roteamento deve ser robusto, ou seja, deve funcionar corretamente mesmo na presença de problemas de hardware, como a falha de um roteador, ou excesso de tráfego na rede. Além disso, o algoritmo deve garantir que pacotes não bloqueiem a rede (deadlock) ou fiquem vagando pela rede indefinidamente (livelock).
■ Oferecer escalabilidade
O algoritmo de roteamento deve oferecer desempenho compatível com o tamanho da rede. Além disso, adicionar um novo roteador e, consequentemente, novas rotas deve ser uma tarefa automática que não exija a interrupção dos serviços oferecidos e a reconfiguração dos demais roteadores da rede de interconexão.
■ Consumir poucos recursos
Um algoritmo de roteamento deve realizar tudo que foi mencionado anteriormente e consumir poucos recursos computacionais. Isso quer dizer que o algoritmo deve alocar pouca memória, não fazer uso intensivo do processador dos roteadores e consumir poucos recursos da rede de interconexão para a troca de informações de roteamento.
6.5.2 Classificação dos Algoritmos de Roteamento
Os algoritmos de roteamento podem ser classificados conforme suas características. A seguir são apresentados os principais tipos de algoritmos de roteamento segundo [Duato, 2003].
■ Unicast, multicast e broadcast
No roteamento unicast, o algoritmo de roteamento deve encaminhar pacote a partir de um transmissor para apenas um receptor. roteamento multicast, o algoritmo de roteamento deve encaminhar pacote a partir de um transmissor para um grupo de receptores. roteamento broadcast, o algoritmo de roteamento deve encaminhar pacote a partir de um transmissor para todos os dispositivos da rede.
um No um No um
■ Estático e dinâmico
No algoritmo de roteamento estático ou determinístico as tabelas de roteamento são criadas e mantidas manualmente pelo administrador da rede. Como as tabelas de roteamento não são alteradas automaticamente, o caminho seguido por um pacote será sempre o mesmo, considerando uma mesma origem e destino. Qualquer problema em uma rota exigirá a intervenção manual do administrador para configurar um novo caminho. Esse tipo de algoritmo, simples de ser implementado, é indicado apenas para pequenas redes. No algoritmo de roteamento dinâmico ou adaptativo as tabelas são inicializadas e mantidas pelos próprios roteadores, a partir de informações periodicamente trocadas entre os dispositivos, permitindo a atualização dinâmica das tabelas de roteamento. Esse tipo de roteamento é indicado para grandes redes que estão em constante mudança, e as alterações devem se refletir na escolha do melhor caminho.
■ Plano e hierárquico
No roteamento plano todos os dispositivos estão no mesmo nível, ou seja, não existe uma hierarquia entre os roteadores. Nesse caso, a tabela de roteamento de cada roteador possui uma entrada para todos os outros roteadores da rede. Em grandes redes, manter tabelas de roteamento desse tipo pode consumir muitos recursos computacionais dos roteadores. No roteamento hierárquico os roteadores são agrupados logicamente em áreas, regiões, domínios ou sistemas autônomos. Nesse tipo de roteamento, as áreas se comunicam entre si através de roteadores que fazem a ligação entre as regiões. A tabela de roteamento dos roteadores de uma determinada área precisa conter informações apenas dos
roteadores daquela área e dos roteadores que fazem a ligação entre as várias regiões. Além disso, o roteamento hierárquico permite criar áreas administrativas que podem ser gerenciadas de forma independente das demais.
■ Interno e externo
Uma consequência do roteamento hierárquico é a possibilidade de especializar o roteamento em função de sua área de atuação. Os algoritmos de roteamento interno são responsáveis apenas pelo roteamento dentro de uma mesma área, não se preocupando com o roteamento entre as regiões. Os protocolos RIP e OSPF são exemplos de implementações do algoritmo de roteamento interno. Os algoritmos de roteamento externo são responsáveis apenas pelo roteamento entre diferentes áreas. O protocolo BGP é um exemplo de implementação de algoritmo de roteamento externo.
■ Local e global
No algoritmo de roteamento local, os roteadores tomam as decisões de roteamento com base apenas em informações de seus vizinhos, ou seja, dispositivos que possuam algum tipo de conexão ponto a ponto. Os roteadores não conhecem o mapa da rede, mas apenas o dispositivo adjacente que leva ao destino desejado. Esse tipo de algoritmo, apesar de simples, não está livre de erros e, em certas situações, converge lentamente. O algoritmo baseado no vetor de distância é um exemplo de algoritmo de roteamento local e é implementado no protocolo RIP. No algoritmo de roteamento global, cada roteador tem o conhecimento completo do mapa da rede. Para isso, os roteadores trocam informações com todos os demais dispositivos, enviando o estado do enlace de cada vizinho. Esse tipo de algoritmo, apesar de sua complexidade, é mais robusto e oferece excelente convergência se comparado ao algoritmo por vetor de distância. O algoritmo baseado no estado do enlace é um exemplo de algoritmo de roteamento global e é implementado no protocolo OSPF.
■ Centralizado e distribuído
No algoritmo de roteamento centralizado, a decisão de qual caminho a ser seguido é tomada de forma centralizada, e geralmente calculada na origem. Depois de selecionado o caminho, o pacote seguirá a rota predeterminada independentemente das mudanças que venham a ocorrer
na rede de interconexão. Por isso, esse tipo de algoritmo de roteamento é indicado para redes razoavelmente estáveis, que não impliquem alterações das rotas disponíveis. O algoritmo conhecido como source routing é um exemplo de algoritmo de roteamento centralizado. No algoritmo de roteamento distribuído, a decisão de qual caminho a ser seguido é tomada de forma distribuída pelos roteadores que compõem a rede de interconexão, à medida que o pacote é encaminhado. Esse tipo de algoritmo de roteamento é indicado para redes que estão em constante mudança e que impliquem alteração dos caminhos disponíveis. Os protocolos RIP e OSPF são exemplos de protocolos que implementam o algoritmo de roteamento distribuído.
6.5.3 Métricas de Roteamento
As tabelas de roteamento contêm informações que são utilizadas pelos roteadores para selecionar o melhor caminho para enviar um pacote. Essas informações são chamadas de métricas de roteamento, e para determinar o melhor caminho os algoritmos de roteamento podem utilizar apenas uma métrica específica ou um conjunto de métricas combinadas. A seguir são apresentadas as principais métricas utilizadas pelos roteadores no processo de seleção do melhor caminho.
■ Número de saltos
O número de saltos ou hops representa o número de dispositivos intermediários que um pacote deverá percorrer da origem até o destino. Nesse caso, o melhor caminho é aquele com o menor número de saltos, ou seja, o caminho mais curto. A utilização do número de hops para definir o melhor caminho nem sempre é uma boa opção. Em redes que possuem conexões com diferentes taxas de transmissão, o caminho mais curto pode não ser o mais rápido. Essa métrica é bastante simples de ser implementada e consome poucos recursos, porém é recomendada para redes pequenas e com tráfego constante. O protocolo RIP utiliza como métrica o número de saltos.
■ Taxa de transmissão e carga da rede
A taxa de transmissão representa o número de bits transmitidos por segundo (bps) pelos canais de comunicação que conectam os roteadores. Nesse caso, o melhor caminho é aquele que possui a maior taxa de transmissão. Utilizar essa métrica para a seleção do melhor caminho nem sempre é uma boa opção. Por exemplo, se um caminho com alta taxa de
transmissão estiver congestionado, é possível que a rota escolhida não seja a melhor opção devido ao atraso gerado nos pacotes. Para identificar problemas de congestionamento, pode-se utilizar a carga da rede que representa a taxa de utilização dos canais de comunicação.
■ Atraso
O atraso ou latência representa o tempo necessário para que um pacote transmitido por um roteador alcance o dispositivo adjacente. Geralmente, o atraso é medido enviando-se um pacote para o dispositivo vizinho e calculando o tempo de ida e volta do pacote, também chamado de RTT (Round-Trip Time). Na maioria dos casos, são enviados vários pacotes e calculada uma média dos RTT para garantir maior precisão no cálculo do atraso. Aplicações como voz e vídeo são especialmente sensíveis ao atraso.
■ Taxa de erro
A taxa de erro de um canal é medida comparando-se o total de bits transmitidos e o número de bits recebidos com erro. Geralmente, a taxa de erro está relacionada ao tipo de meio de transmissão. Por exemplo, a fibra ótica oferece taxas menores que transmissões sem fio. Nesse caso, o melhor caminho é aquele com a menor taxa de erro.
■ Disponibilidade
A disponibilidade é o tempo que determinado canal de comunicação permanece em funcionamento de forma ininterrupta. A disponibilidade é medida contabilizando-se o tempo que determinado canal ficou em operação durante um certo período, geralmente um ano. Nesse caso, o melhor caminho é aquele que oferece a maior disponibilidade.
■ Custo
O custo de um caminho não está associado exclusivamente ao seu valor financeiro. Muitos algoritmos de roteamento utilizam a métrica de custo de uma forma mais abrangente, considerando o custo uma combinação de diversas métricas que resultam em um valor. Nesse caso, o melhor caminho é aquele que oferece o menor custo. Por exemplo, o caminho de menor custo pode ser aquele que ofereça a maior taxa de transmissão com os menores atrasos ou que ofereça a menor taxa de erro e a maior disponibilidade. O protocolo EIGRP da Cisco Systems utiliza quatro
métricas para o cálculo do custo: taxa de transmissão, atraso, confiabilidade e carga da rede.
6.5.4 Roteamento por Vetor de Distância
O algoritmo de roteamento baseado no vetor de distância, também chamado de Belmann-Ford, foi o primeiro algoritmo de roteamento utilizado na Internet, porém ainda é muito utilizado por sua simplicidade e baixo consumo de recursos computacionais. Existem diversos protocolos de roteamento que implementam esse algoritmo, e o mais importante é o RIP (Routing Information Protocol), definido na RFC-1058 e na RFC-2553. Outro protocolo baseado no algoritmo de vetor de distância é o IGRP (Internet Gateway Routing Protocol) da Cisco. No algoritmo de vetor de distância, cada roteador possui uma tabela de roteamento que contém uma entrada para todos os demais roteadores da rede. Cada entrada na tabela de roteamento indica apenas o próximo roteador para onde o pacote deve ser encaminhado, considerando o caminho de menor custo. Dessa forma, um roteador não conhece o caminho completo para determinado destino, mas apenas o próximo passo para alcançá-lo. A métrica utilizada para o cálculo do caminho de menor custo pode ser qualquer uma das apresentadas anteriormente, como número de saltos, atraso ou uma combinação de diferentes métricas. No caso do protocolo RIP, o número de saltos é utilizado como métrica.
■ Funcionamento do algoritmo
O algoritmo de roteamento por vetor de distância pode ser mais bem compreendido a partir da rede apresentada na Fig. 6.23, formada por cinco roteadores (A, B, C, D e E), conectados pelos caminhos de C1 a C6. No exemplo, utilizaremos como métrica o número de saltos, que seria semelhante a considerar todos os caminhos com custo igual a um [Huitema, 2000].
F IGURA 6.23
Exemplo do roteamento por vetor de distância.
Cada roteador possui uma tabela de roteamento com três campos: o destino para onde se deseja ir, o caminho (interface) a ser tomado para chegar ao destino e o custo para alcançá-lo (Fig. 6.24). Inicialmente, no passo T0, as tabelas de roteamento dos roteadores possuem apenas o seu próprio destino e o custo para alcançar a si mesmo, ou seja, zero.
F IGURA 6.24
Tabelas de roteamento em T0.
Periodicamente, cada roteador envia aos seus vizinhos informações de roteamento contidas na sua tabela de roteamento. Dois roteadores são considerados vizinhos se compartilham o mesmo canal de comunicação. Por exemplo, o roteador A é considerado vizinho de B e D. As informações de roteamento são enviadas no formato de um vetor de distância, contendo a identificação do destinatário e o custo para alcançálo. Essas informações são representadas seguindo a notação [destinocusto]. O algoritmo de vetor de distância é assíncrono, ou seja, os roteadores podem enviar seus vetores em momentos diferentes. Para facilitar o acompanhamento do exemplo apresentado, o algoritmo é executado de forma síncrona, e todos os roteadores transmitem suas informações de
roteamento ao mesmo tempo. A Tabela 6.7 apresenta os vetores de distância enviados por todos os roteadores para seus vizinhos no passo T1. Por exemplo, o roteador A envia o vetor [A-0] para B e D, de forma que possam atualizar suas tabelas de roteamento e passar a conhecer a existência de A. Por outro lado, o roteador A receberá os vetores de distância de seus adjacentes e poderá atualizar sua tabela de roteamento e tomar conhecimento da existência de B e D. Tabela 6.7
Vetores enviados em T1
De-Para
Vetor
A-B e A-D
[A-0]
B-A, B-C e B-E
[B-0]
C-B e C-E
[C-0]
D-A e D-E
[D-0]
E-B, E-C e E-D
[E-0]
Após todos os roteadores trocarem seus vetores de distância, é possível atualizar suas tabelas de roteamento. Nesse momento, todos os roteadores conhecem pelo menos os roteadores adjacentes, o caminho para alcançá-los e o custo de cada caminho (Fig. 6.25). Por exemplo, o roteador A recebe dois vetores enviados pelos roteadores B e D e, dessa forma, toma conhecimento da existência de seus vizinhos. Ao término de T1, todos os roteadores conhecem pelo menos os seus vizinhos, e com custo igual a um, por estarem apenas a um salto de distância.
F IGURA 6.25
Tabelas de roteamento em T1.
A Tabela 6.8 apresenta os vetores de distância enviados por todos os roteadores para seus adjacentes no passo T2. Por exemplo, o roteador A envia o vetor [A-0, B-1, D-1] para B e D, de forma que possa atualizar suas tabelas de roteamento. Por outro lado, o roteador A receberá os vetores de distância de seus adjacentes (B e D) e poderá, assim, atualizar a sua tabela de roteamento. Nesse caso, A receberá o vetor [B-0, A-1, C1, E-1] do roteador B e o vetor [D-0, A-1, E-1] do roteador D. Tabela 6.8
Vetores enviados em T2
De-Para
Vetor
A-B e A-D
[A-0, B-1, D-1]
B-A, B-C e B-E
[B-0, A-1, C-1, E-1]
C-B e C-E
[C-0, B-1, E-1]
D-A e D-E
[D-0, A-1, E-1]
E-B, E-C e E-D
[E-0, B-1, C-1, D-1]
À medida que os vetores de distância são recebidos, a tabela de roteamento pode ser atualizada de forma a melhor representar a topologia da rede. No caso do roteador A, vamos supor que o primeiro vetor recebido foi enviado por B, ou seja, [B-0, A-1, C-1, E-1]. A primeira informação B-0 indica que B é adjacente ao roteador A, porém essa informação não é relevante, pois já foi tratada no passo anterior. O segundo valor do vetor indica que existe um caminho de B para A com custo 1, o que também não é relevante, já que A não irá enviar uma mensagem para A passando por B. A próxima informação C-1 indica que C é adjacente ao roteador B, tornando possível que A alcance C através de B. Como essa informação não está na tabela de roteamento de A, uma nova entrada é criada, indicando que é possível alcançar C pelo caminho C1 ao custo de 2. A mesma lógica se aplica ao quarto valor E-1, que também é incluído na tabela. No caso do vetor enviado por D, ou seja, [D0, A-1, E-1], a primeira informação D-0 indica que D é adjacente ao
roteador A, porém essa informação não é relevante. O segundo valor do vetor indica que existe um caminho de D para A com custo 1, o que também não é relevante. A próxima informação E-1 indica que E é adjacente ao roteador D, tornando possível que A alcance E através de D. Como já existe um caminho para E passando por B, a informação pode ser ignorada. Após o recebimento e processamento dos vetores de distância por todos os roteadores, as tabelas de roteamento estariam como na Fig. 6.26.
F IGURA 6.26
Tabelas de roteamento em T2.
Nesse momento, o algoritmo convergiu e todos os roteadores têm as informações necessárias para alcançar os demais. Como pode ser observado, o tempo de convergência do algoritmo dependerá do número de saltos entre os dois pontos mais distantes da rede. No exemplo da Fig. 6.23, a distância máxima entre dois roteadores é de dois saltos.
■ Recuperação em caso de falhas
Em uma rede, os roteadores ou canais de comunicação podem falhar por diversos motivos. Por ser um algoritmo dinâmico, o roteamento por vetor de distância deve ser capaz de recuperar a rede em casos de falhas. Para exemplificar a situação, vamos supor que houve um problema com o caminho C1 da Fig. 6.27a. Percebendo o problema, os roteadores A e B devem atualizar suas tabelas de roteamento, de forma a refletir essa situação, atribuindo o maior custo possível a todos os destinos que utilizem o caminho C1. A Fig. 6.27b apresenta as tabelas de roteamento de A e B após a falha de C1, e o símbolo infinito (∞) representa o custo máximo para alcançar o caminho.
F IGURA 6.27
Falha no caminho C1.
Depois da atualização de suas tabelas, devido à falha de C1, o roteador A envia seu vetor de distância [A-0, B-∞, D-1, C-∞, E-∞] para D, enquanto B envia seu vetor de distância [B-0, A-∞, C-1, E-∞, D-∞] para C e E. Ao receberem os vetores, os roteadores C, D e E atualizam suas tabelas de roteamento para refletir a falha de C1, como pode ser observado na Fig. 6.28.
F IGURA 6.28
Tabelas de C, D e E após recebimento dos vetores de A e B.
No passo seguinte, o roteador C envia o vetor de distância [C-0, B-1, E1, A-∞, D-2] para B e E, D envia o vetor [D-0, A-1, E-1, B-∞, C-2] para A e E, enquanto E envia o vetor [E-0, B-1, C-1, D-1, A-∞] para B, C e D. Após esse passo, os roteadores atualizam suas tabelas de roteamento para criar novo caminho que substitua o caminho C1. A Fig. 6.29 apresenta todas as tabelas dos roteadores, e, como é possível verificar, todos os caminhos de custo igual a um já foram recuperados.
F IGURA 6.29
Tabelas após recebimento dos vetores de C, D e E.
No próximo passo, os roteadores enviam novamente seus vetores de distância, e finalmente todos os caminhos foram recuperados. A Fig. 6.30 apresenta as tabelas de roteamento dos roteadores após esse passo, e, como é possível verificar, a rede convergiu. Isso significa que todos os dispositivos estão com suas tabelas de roteamento refletindo a nova topologia da rede.
F IGURA 6.30
Tabelas de roteamento após a convergência.
O algoritmo baseado no vetor de distância apresenta, em algumas situações, dois problemas, conhecidos como rota reversa e contagem para o infinito. O problema de rota reversa (reverse route) envolve a troca de informações entre dois roteadores vizinhos que pode levar a uma situação de loop. Esse problema pode ser resolvido implementando as técnicas de split horizon e split horizon with poison reverse. A solução de split horizon interrompe o loop entre roteadores vizinhos, mas não elimina
a possibilidade de loops na rede. Nesse caso, o loop não é interrompido, levando a uma situação conhecida como contagem para o infinito (count to infinity). A solução adotada para o problema de contagem para o infinito é utilizar uma espécie de contador que interrompe o loop após determinado número de repetições, geralmente 16. Para informações adicionais sobre esses dois problemas e suas soluções, consultar [Doyle, 1998] e [Huitema, 2000].
6.5.5 Roteamento por Estado do Enlace
O algoritmo baseado no vetor de distância apresentado anteriormente possui algumas características indesejáveis que o tornam pouco recomendável para ser utilizado em grandes redes. O algoritmo baseado no estado do enlace é uma alternativa ao roteamento por vetor de distância, pois não apresenta situações de loop e converge mais rapidamente. O roteamento por estado do enlace é implementado nos protocolos OSPF (Open Shortest Path First) e IS-IS (Intermediate System to Intermediate System). Enquanto o protocolo OSPF é um padrão Internet, definido na RFC-2328, o protocolo IS-IS é um padrão OSI. O algoritmo baseado no estado do enlace tem uma visão global da rede, ao contrário do roteamento por vetor de distância, que possui apenas um conhecimento local. Para ter uma visão global da rede, todos os roteadores mantêm uma base de dados com informações sobre todos os caminhos disponíveis e seus respectivos custos. As informações são, periodicamente, trocadas pelos roteadores, gerando a atualização da base de dados. Sempre que for necessário reencaminhar um pacote, o roteador pode calcular o melhor caminho com base nessas informações.
■ Funcionamento do algoritmo
O algoritmo pode ser mais bem compreendido a partir do exemplo apresentado na Fig. 6.31, formada por oito roteadores (A a H) e um custo associado a cada caminho da rede. O algoritmo possui quatro etapas, que são apresentadas a seguir.
F IGURA 6.31
Exemplo do roteamento por estado do enlace.
Na primeira etapa, cada roteador envia uma mensagem do tipo Hello para todas as suas interfaces, solicitando a identificação do dispositivo adjacente. Ao receber a resposta, o roteador passa a conhecer seus vizinhos. Por exemplo, o roteador A envia um Hello para as interfaces que levam aos dispositivos B e G. Se os roteadores B e G responderem, A poderá considerá-los seus vizinhos. Esse mecanismo também é utilizado para garantir que os roteadores estão ativos. Periodicamente, uma mensagem Hello é enviada para os dispositivos vizinhos para garantir que estão em funcionamento. Caso não seja obtida uma resposta, o dispositivo pode ser considerado fora de operação. Na segunda etapa, os roteadores calculam o custo para alcançar cada um de seus vizinhos, utilizando alguma das métricas apresentadas. No exemplo, consideremos o atraso como métrica, e, nesse caso, o melhor caminho será aquele com o menor atraso. Depois de calculado o custo, cada roteador cria um pacote contendo sua identificação e o custo para alcançar seus vizinhos, chamado de pacote de estado do enlace ou LSP (Link State Packet). A Fig. 6.32 apresenta os pacotes que serão enviados por cada um dos roteadores da rede. Na terceira etapa, os pacotes criados por cada roteador são enviados para todos os demais utilizando o roteamento por inundação, que será apresentado na seção Roteamento Broadcast. À medida que os pacotes são recebidos pelo roteador, é criada uma base de dados contendo a origem, o destino e o custo do enlace. Para garantir que pacotes antigos não afetem o conteúdo da base de dados, os pacotes são numerados sequencialmente. Se o roteador recebe um pacote com número de sequência menor ou igual ao último recebido, o pacote já foi processado e
é simplesmente descartado. Se o pacote possui um número de sequência maior que o último recebido, as informações podem ser utilizadas para atualizar a base de dados e o pacote é reencaminhado. A Fig. 6.33 apresenta a base de dados dos roteadores após o recebimento dos pacotes LSP. A partir dessa base de dados, cada roteador terá um mapa completo da rede.
F IGURA 6.32
LSP criados por cada roteador.
F IGURA 6.33
Base de dados após recebimento dos pacotes LSP.
Na quarta e última fase, cada roteador poderá calcular o melhor caminho para qualquer destino consultando a base de dados construída na fase anterior. O algoritmo mais implementado para o cálculo do melhor caminho é conhecido como SPF (Shortest Path First) e pode ser consultado em [Dijkstra, 1959]. O algoritmo SPF cria uma árvore de caminho de menor custo a partir de determinado roteador, chamado de raiz, para todos os demais. Por exemplo, a Fig. 6.34 apresenta a árvore de caminho de menor custo com base na rede da Fig. 6.30 e considerando o roteador A a raiz.
F IGURA 6.34
Árvore do caminho de menor custo.
A Tabela 6.9 descreve a sequência de passos para a criação da árvore de caminho de menor custo apresentada na Fig. 6.33, utilizando o algoritmo SPF. O primeiro passo do algoritmo é selecionar o roteador A como raiz. No passo seguinte são selecionados todos os possíveis vizinhos como candidatos e é calculado o custo para alcançar a raiz por cada caminho disponível. O caminho de menor custo é selecionado, e dizse que o roteador leva a esse caminho visitado, ou seja, passa a fazer parte da árvore de caminho de menor custo. Os caminhos candidatos que não foram utilizados nesse passo são testados novamente no passo seguinte, e o algoritmo é repetido enquanto houver caminhos candidatos. Tabela 6.9
Construção da árvore de caminho de menor custo
P a s s o
Ca ndi dat os
C u st o
Sel eci ona do
Visi tad os
Comentários
1
-
-
( A , A , 0 )
A
A é selecionado para ser a raiz da árvore.
2
( A , B , 2 ) ( A , G , 6 )
2 6
( A , B , 2 )
A , B
O caminho de menor custo é selecionado: (A,B,2).
3
( A , G , 6 ) ( B , C , 7 ) ( B , E , 2 )
6 9 4
( B , E , 2 )
A , B , E
O caminho de menor custo é selecionado: (B,E,2).
4
( A , G , 6 ) ( B , C , 7 ) ( E , F , 2 ) ( E , G , 1 )
6 9 6 5
( E , G , 1 )
A , B , E , G
O caminho de menor custo é selecionado: (E,G,1). Como G já foi visitado, o caminho (A,G,6) pode ser eliminado.
5
( B , C , 7 ) ( E , F , 2 ) ( G , H , 4 )
9 6 9
( E , F , 2 )
A , B , E , G , F
O caminho de menor custo é selecionado: (E,F,2).
6
( B , C , 7 ) ( G , H , 4 ) ( F , C , 3 ) ( F , H , 2 )
9 9 9 8
( F , H , 2 )
A , B , E , G , F , H
O caminho de menor custo é selecionado: (F,H,2). Como H já foi visitado, o caminho (G,H,4) pode ser eliminado.
7
( B , C , 7 ) ( F , C , 3 ) ( H , D , 2 )
9 9 1 0
( B , C , 7 )
A , B , E , G , F , H , C
Como existiam dois caminhos para C com o mesmo custo, o primeiro foi selecionado (B,C,7) e o segundo eliminado (F,C,3).
8
( H , D , 2 ) ( C , D , 3 )
1 0 1 1
( H , D , 2 )
A , B , E , G , F , H , C , D
O caminho de menor custo é selecionado: (H,D,2). Como D já foi visitado, o caminho (C,D,3) pode ser eliminado.
■ Recuperação em caso de falhas
Para exemplificar a recuperação em casos de falhas do algoritmo baseado no estado do enlace, vejamos o seu funcionamento na ocorrência de um problema com o caminho B-E na rede da Fig. 6.35a. Ao perceber o problema, o roteador B enviará para A e C um pacote informando que o custo do caminho para E é infinito. Depois de um período de tempo, todos os demais roteadores receberão o pacote, permitindo que as suas bases de dados fiquem com a mesma informação (Fig. 6.35b).
F IGURA 6.35
Base de dados após falha de B-E.
A partir da base de dados atualizada da Fig. 6.35b, cada roteador pode recalcular as rotas executando novamente o algoritmo SPF. A Fig. 6.36 apresenta uma possível árvore de caminho de menor custo considerando a falha de B-E e tendo o roteador A como raiz.
F IGURA 6.36
Árvore de caminho de menor custo após a falha de B-E.
6.5.6 Roteamento Hierárquico
No roteamento plano ou não hierárquico, todos os roteadores estão no mesmo nível, e, nesse caso, a tabela de roteamento de cada roteador possui pelo menos uma entrada para os demais roteadores da rede. Em grandes redes, manter tabelas de roteamento muito extensas provoca dois problemas que devem ser considerados. O primeiro é a capacidade de armazenar e processar as tabelas pelos roteadores. Quanto maiores as tabelas, mais memória e processador serão necessários para o roteador realizar suas funções de forma eficiente. O segundo problema é o tráfego gerado na rede pela transmissão das tabelas de roteamento. Quanto maiores as tabelas, maior o tráfego gerado pela troca de informações de roteamento, prejudicando as aplicações dos usuários. Além disso, tabelas grandes são mais suscetíveis a erros durante a transmissão, o que poderá deixar os roteadores com tabelas desatualizadas, comprometendo o processo de roteamento e a estabilidade da rede como um todo. No roteamento hierárquico, os roteadores são agrupados logicamente em regiões, áreas ou sistemas autônomos (autonomous systems). Nesse tipo de roteamento, as regiões se comunicam entre si através de roteadores específicos que fazem a ligação entre as áreas, chamados de
roteadores de borda. A tabela de roteamento dos roteadores de uma determinada região precisa conter apenas informações dos roteadores daquela região e dos roteadores que fazem a ligação entre as várias áreas. Uma consequência do roteamento hierárquico é a possibilidade de especializar o roteamento em função de sua área de atuação. Os algoritmos de roteamento interno são responsáveis apenas pelo roteamento dentro de uma mesma região, não se preocupando com o roteamento entre as áreas. Os protocolos desse tipo são chamados de protocolos de roteamento interno ou IGP (Interior Gateway Protocol). Os algoritmos de roteamento externo são responsáveis apenas pelo roteamento entre diferentes áreas, e os protocolos desse tipo são chamados de protocolos de roteamento externo ou EGP (Exterior Gateway Protocol). A Fig. 6.37 apresenta o exemplo de uma rede estruturada em dois níveis hierárquicos e quatro regiões; a região 1 possui três roteadores, a região 2, quatro, a região 3, dois, e a região 4, cinco roteadores. Os roteadores A1, A3, B2, B4, C2, D4 e E4 executam apenas o algoritmo de roteamento interno, enquanto os roteadores A2, A4, B1, B3, C4 e D2 executam os algoritmos de roteamentos interno e externo. A Fig. 6.38a apresenta a tabela de roteamento do roteador A1 considerando o roteamento plano, ou seja, sem o conceito de hierarquia e regiões. Como pode ser observado, a tabela de roteamento de A1 possui uma entrada para cada roteador da rede, totalizando 14 entradas. A Fig. 6.38b apresenta a tabela de A1 considerando agora a rede da Fig. 6.36, que implementa a hierarquia dos roteadores em regiões. Como pode ser observado, a tabela de roteamento de A1 possui apenas seis entradas. As três primeiras para os roteadores de sua própria região e as outras três entradas representam o caminho para as demais regiões: R2, R3 e R4.
F IGURA 6.37
Exemplo de roteamento hierárquico.
F IGURA 6.38
Tabela de roteamento de A1.
Além de melhorar o desempenho e a escalabilidade, o roteamento hierárquico simplifica o processo de administração da rede, pois permite
criar regiões administrativas que podem ser gerenciadas de forma independente das demais. Essa facilidade permite, por exemplo, que uma região utilize determinado algoritmo de roteamento interno diferente das demais. O modelo Internet utiliza o protocolo BGP (Border Gateway Protocol), definido nas RFC-1771, RFC-1772 e RFC-1773, para implementação do roteamento hierárquico. O protocolo BGP é baseado no algoritmo de vetor de distância, apresentado anteriormente. Para mais informações sobre esse protocolo, consultar [Doyle, 2001], [Huitema, 2000] e [Stewart, 1998].
6.5.7 Roteamento Broadcast
No roteamento broadcast ou roteamento por difusão, um dispositivo transmite um pacote que deve ser encaminhado para todos os demais dispositivos da rede. O roteamento broadcast pode ser implementado como várias transmissões unicast utilizando os algoritmos tradicionais apresentados. O problema em utilizar essa abordagem é o enorme desperdício de recursos da rede de interconexão. Na Fig. 6.39a, o dispositivo A envia o mesmo pacote para os dispositivos D1, D2 a Dn utilizando o roteamento unicast. Se em nosso exemplo n for igual a 1000, para cada dispositivo Dn um pacote é transmitido, totalizando 3000 pacotes. Na Fig. 6.39b, a rede está utilizando o roteamento broadcast para transmitir o mesmo pacote de A para os dispositivos Dn. Nesse caso, apenas um pacote é transmitido de A para B e de B para C. Somente em C os pacotes são entregues individualmente, totalizando 1002 pacotes transmitidos.
F IGURA 6.39
Comparação entre roteamento unicast e broadcast.
Nesta seção são apresentados dois algoritmos de roteamento broadcast: o roteamento por inundação e o roteamento por árvore de cobertura.
■ Roteamento por inundação
Um dos algoritmos mais simples de roteamento broadcast é conhecido como roteamento por inundação (flooding). Nesse algoritmo, um pacote é enviado por todas as interfaces do roteador, com exceção daquela em que o pacote foi recebido. Por exemplo, na rede da Fig. 6.40, o roteador A quer enviar um pacote para todos os demais dispositivos da rede. Inicialmente, A envia o pacote para B e D (Fig. 6.40a). Em seguida, B envia o mesmo pacote para todas as suas interfaces, menos para aquela pela qual o pacote foi recebido, chegando em C, D e E. O mesmo ocorre com D, que envia o pacote para B, C e E (Fig. 6.40b). Finalmente, C e E enviam o pacote para F, além de outros roteadores (Fig. 6.40c).
F IGURA 6.40
Roteamento por inundação.
O roteamento por inundação, para ser uma solução viável, deve controlar dois problemas básicos. Primeiro, os roteadores devem ser capazes de reconhecer pacotes duplicados, como ocorre com o roteador F, na Fig. 6.40c, que irá receber quatro pacotes idênticos. Para resolver esse problema, basta identificar cada pacote individualmente de forma que os dispositivos possam descartar os pacotes com a mesma identificação. O segundo problema, e mais importante, é a quantidade crescente e contínua de pacotes retransmitidos que podem ficar em loop e rapidamente esgotar a capacidade da rede, como pode ser observado na Fig. 6.40c. Uma maneira de resolver o problema é utilizar a identificação do pacote e descartar os pacotes que já foram transmitidos. Outra solução
é adicionar ao cabeçalho do pacote um campo de contagem de saltos que é inicializado na origem e decrementado a cada dispositivo intermediário. O valor atribuído inicialmente ao contador de saltos deve ser pelo menos igual ao caminho mais distante da rede, ou seja, o caminho que utilize o maior número de hops. A cada dispositivo intermediário o contador de saltos é decrementado e, quando atinge o valor zero, é descartado. No exemplo da Fig. 6.40, o contador de saltos deverá ser inicializado com o valor três, pois representa o número de saltos entre os dois pontos mais distantes. Essa solução é implementada no protocolo IP (Fig. 6.6) através do campo Tempo de vida ou TTL (Time-To-Live). O roteamento por inundação oferece grande robustez e disponibilidade, pois todos os caminhos possíveis entre a origem e destino são utilizados. Dessa forma, se existir pelo menos um caminho disponível, é possível alcançar o destino. Como todos os elementos da rede recebem pelo menos uma cópia do pacote, esse tipo de algoritmo pode ser utilizado para disseminar uma informação por toda a rede. O roteamento por inundação é utilizado como parte do algoritmo de roteamento baseado no estado do enlace. Nesse caso, cada roteador calcula o custo dos enlaces dos seus vizinhos e utiliza o algoritmo para distribuir os pacotes LSP para os demais roteadores. O roteamento por inundação não precisa de tabelas de roteamento e, portanto, não necessita trocar informações de atualização de rotas. Essa técnica é indicada para redes dinâmicas que possuem dispositivos móveis. Nesse caso, a topologia da rede pode mudar constantemente, tornando dispendioso manter tabelas de roteamento atualizadas.
■ Roteamento por árvore de cobertura
Uma árvore de cobertura (spanning tree) define uma estrutura em árvore que representa a rede de interconexão de forma a evitar a ocorrência de pacotes em loop, como foi apresentada no Capítulo 5 — Arquitetura de Redes Locais, para evitar loops em redes locais. Depois de construída, e definido o roteador raiz, a árvore de cobertura é utilizada por cada roteador para implementar o processo de reencaminhamento. Sempre que um pacote é recebido, o roteador reencaminha a mensagem por todas as suas interfaces, com exceção da interface pela qual o pacote foi recebido. A utilização da árvore de cobertura garante que todos os roteadores receberão o pacote e evita a ocorrência de loops.
6.5.8 Roteamento Multicast
No roteamento multicast, o algoritmo de roteamento deve encaminhar um pacote a partir de um transmissor para um grupo de receptores, conhecido como grupo multicast. Para ser eficiente, um algoritmo de roteamento multicast deve oferecer as mesmas características oferecidas por um algoritmo de roteamento unicast, porém considerando os membros do grupo multicast. A maioria dos algoritmos multicast utiliza algum tipo de árvore de cobertura, preferencialmente uma árvore de cobertura de menor custo, que permite alcançar os membros do grupo multicast utilizando o melhor caminho. Nesta seção são apresentados dois algoritmos de roteamento multicast: o roteamento multicast por caminho inverso e o roteamento por árvore baseada em núcleo. Para mais informações sobre algoritmos de roteamento e protocolos multicast, consultar [Doyle, 2001], [Ramalho, 2000] e [Sahasrabuddhe, 2000].
■ Roteamento multicast por caminho inverso
O roteamento multicast por caminho inverso ou RPM (Reverse Path Multicasting) foi proposto por [Deering, 1990] com base no algoritmo conhecido como reencaminhamento por caminho inverso (reverse path forwarding), apresentado por [Dalal, 1978]. A seguir é apresentada uma breve descrição do algoritmo RPM. Informações adicionais podem ser obtidas em [Semeria, 1996]. O algoritmo RPM utiliza as informações contidas na tabela de roteamento para determinar se um pacote deve ou não ser reencaminhado. Sempre que um pacote multicast é recebido, o roteador verifica na sua tabela de roteamento a origem do pacote, que chamaremos de S, e por qual interface o pacote chegou, que chamaremos de I. Se o pacote foi recebido pela interface que oferece o menor custo para alcançar S, o pacote é reencaminhado por todas as interfaces, com exceção da interface I. Caso contrário, o pacote é simplesmente descartado e não é reencaminhado. Na Fig. 6.41a, é apresentada uma rede em que o transmissor T está conectado no dispositivo A e os receptores R, membros do grupo multicast, estão conectados a E, F e H. Para exemplificar o funcionamento do algoritmo, vejamos alguns passos para a construção da árvore de cobertura da Fig. 6.41b, considerando que os custos das conexões de rede são todos iguais. Inicialmente, o dispositivo A envia o mesmo pacote para B, D e E. Como o dispositivo B recebeu o pacote pela interface de menor custo que leva à origem (B-A), B retransmite o pacote para todas as suas interfaces (B-C, B-D, B-G e B-H), com exceção da interface pela
qual o pacote foi recebido (B-A). Processo semelhante se repete com os dispositivos D e E, que retransmitem o pacote para todos os seus vizinhos, com exceção de A. Em algum momento, o dispositivo B receberá um pacote de D, e, como o pacote não foi recebido pela interface de menor custo (B-A), ele é simplesmente descartado. Seguindo esse algoritmo é possível criar a árvore de cobertura de menor custo, que, além de evitar loops, permite oferecer o melhor caminho para alcançar os membros do grupo multicast.
F IGURA 6.41
Árvore de cobertura de menor custo.
A árvore de cobertura apresentada na Fig. 6.41b permite alcançar os membros do grupo multicast, mas também dispositivos que não pertencem ao grupo, como D, H e I. No algoritmo RPM, os roteadores que não levam aos membros do grupo multicast realizam uma espécie de poda (pruning) nas folhas e nos galhos da árvore de cobertura. Por exemplo, o dispositivo H, ao receber um pacote multicast, envia uma mensagem para o roteador B informando que não há membros do grupo multicast ligados a ele. O dispositivo B armazena a informação, e, na próxima vez que receber um pacote para o mesmo grupo, não repassará para H. O mesmo ocorre com o dispositivo I, que informa ao roteador D que não há membros do grupo ligados a ele, que por sua vez informa ao roteador A. O algoritmo RPM apresenta dois problemas que são críticos em grandes redes. O primeiro é de escalabilidade, pois cada roteador envolvido no tráfego multicast possui uma árvore de cobertura específica para um determinado grupo multicast e um determinado transmissor dentro do grupo. Quanto maior o número de grupos multicast e de possíveis transmissores, mais informações são necessárias nos roteadores para o funcionamento do algoritmo. O outro problema está
associado ao processo de poda da árvore de cobertura, que pode consumir muitos recursos da rede, especialmente quando os grupos multicast são formados por poucos membros espalhados pela árvore de cobertura. No modelo Internet, existem três protocolos que utilizam o conceito do algoritmo multicast por caminho inverso: o DVMRP (Distance Vector Multicast Routing Protocol), definido na RFC-1075, o MOSPF (Multicast Extensions to OSPF), definido na RFC-1584, e o PIM-DM (Protocol Independent Multicast – Dense Mode), definido em [Deering, 1996].
■ Roteamento por árvore baseada em núcleo
O roteamento multicast por árvore baseada em núcleo ou CBT (Core Base Tree), proposto por [Ballardie, 1993] e definido na RFC-2201, oferece uma solução para os dois problemas apresentados pelo algoritmo RPM. No algoritmo CBT, existe apenas uma árvore de cobertura para cada grupo multicast e os pacotes são transmitidos e recebidos utilizando a mesma árvore, independentemente do dispositivo transmissor. Esse tipo de árvore multicast é chamado de árvore compartilhada. O primeiro passo do algoritmo é selecionar a raiz da árvore de cobertura, ou seja, o núcleo da árvore. Esse dispositivo não é necessariamente um dispositivo que esteja próximo ao centro da rede, e nem mesmo precisa ser um membro do grupo multicast. A Fig. 6.42a apresenta um exemplo de uma rede formada por um grupo multicast com um transmissor e três receptores. A Fig. 6.42b apresenta uma possível árvore baseada em núcleo para a mesma rede, e D foi selecionado como núcleo da rede. Sempre que um novo membro deseja se associar a um grupo multicast, é enviada uma mensagem para o núcleo da árvore, utilizando o caminho de menor custo, indicando o desejo de se juntar ao grupo. Por exemplo, o dispositivo A envia uma mensagem para D pedindo para se juntar ao grupo multicast, utilizando o caminho de menor custo. Aceito o pedido, é estabelecido o caminho D-A. O mesmo acontece com o dispositivo E, criando o caminho D-E. No caso do dispositivo G, o roteador B também deve ser incluído na árvore por fazer parte do caminho para alcançar o núcleo, criando o caminho D-B-G. Finalmente, F solicita sua entrada no grupo, e, nesse caso, basta adicionar o caminho G-F, formando o caminho D-B-G-F.
F IGURA 6.42
Árvore baseada em núcleo.
A grande vantagem do algoritmo CBT é a utilização de uma única árvore de cobertura, compartilhada por cada grupo multicast, o que reduz o consumo de recursos da rede se comparado ao algoritmo RPM. Além disso, o CBT não utiliza o esquema de poda da árvore de cobertura, que também consome recursos da rede. Por outro lado, o algoritmo CBT introduz outros problemas inexistentes no RPM. O processo de escolha do núcleo da árvore pode não ser trivial, e ter um dispositivo concentrando o tráfego pode gerar problemas de desempenho e disponibilidade da rede. Além disso, o CBT não garante o melhor caminho entre o transmissor e os possíveis receptores, o que é garantido pelo RPM. No modelo Internet existem dois protocolos que utilizam o conceito do algoritmo de árvore baseada em núcleo: o CBT (Core Base Tree) versão 2, definido na RFC-2189, e o PIM-SM (Protocol Independent Multicast – Sparse Mode), definido na RFC-2362.
6.6 Fragmentação No modelo Internet, um pacote IP, para ser transmitido, deve ser encapsulado em um quadro na camada de enlace (Fig. 6.43). O quadro possui um campo de dados que irá receber o datagrama, porém esse campo possui tamanho máximo, definido como unidade de transferência máxima ou MTU (Maximum Transfer Unit). Por exemplo, em uma rede Ethernet, o quadro possui um MTU de 1500 bytes. Isso significa que um quadro Ethernet pode transportar pacotes de no máximo 1500 bytes. O problema é que um pacote IP pode ter até 65535 bytes, muito maior que o MTU definido pelo quadro Ethernet.
F IGURA 6.43
Encapsulamento na camada de enlace.
Para compatibilizar o tamanho do pacote IP com os diferentes tamanhos de MTU existentes na rede de interconexão, a camada de rede deve dividir o pacote em pedaços menores, chamados de fragmentos. O processo de dividir o pacote em fragmentos menores é chamado de fragmentação. Cada fragmento possui seu próprio cabeçalho, e o tamanho máximo do fragmento não pode ultrapassar o MTU definido pelo protocolo da camada de enlace. Por exemplo, um pacote de 4000 bytes, para ser transportado em um quadro Ethernet, precisa ser dividido em três partes (Fig. 6.44). Se um dos fragmentos encontrar um MTU de enlace menor que 1500 bytes, o fragmento deverá ser novamente dividido em pedaços menores.
F IGURA 6.44
Exemplo de fragmentação.
A remontagem dos fragmentos ou desfragmentação pode ser realizada pela rede de interconexão ou pelo host de destino. No caso do protocolo
IP, a remontagem dos fragmentos é realizada no host de destino, a partir dos campos de controle existentes no cabeçalho do datagrama IP: Identificação, Flags e Deslocamento do fragmento (Fig. 6.6). A camada de rede do host de destino deve receber os fragmentos e remontar o pacote original antes de passá-lo para a camada de transporte. A fragmentação e a desfragmentação são um processo necessário, mas que deve ser evitado sempre que possível [Kent, 1987]. No modelo Internet, a camada de rede recomenda na RFC-791 trabalhar com pacotes de no máximo 576 bytes para evitar que esse processo ocorra.
6.7 Controle de Erro Apesar de a camada de rede do modelo Internet oferecer um serviço não orientado à conexão, ou seja, que não garante a entrega e nem a sequência dos pacotes, existe uma preocupação em controlar certos tipos de erros que ocorrem na rede de interconexão. Por exemplo, se algum roteador da inter-rede não consegue rotear ou entregar um pacote para o seu destino, uma mensagem de erro deve ser enviada à origem, avisando ao transmissor que ocorreu um problema. O controle de erro também passa por permitir que os usuários da rede possam testar se determinado host está ativo ou verificar as rotas para determinado destino. Dessa forma, é possível realizar um diagnóstico simples e ajudar na resolução de problemas da rede (troubleshooting). O controle de erro no modelo Internet é implementado pelo protocolo ICMP (Internet Control Message Protocol), definido na RFC-792. Apesar de o ICMP pertencer à camada de rede, o protocolo é encapsulado dentro de pacotes IP, como se fosse um dado (Fig. 6.45). Importante ressaltar que o protocolo ICMP não foi concebido para corrigir erros, mas apenas para verificar a ocorrência de alguns problemas e reportá-los à origem. Cabe ao transmissor entender o problema e corrigi-lo, conforme o caso.
F IGURA 6.45
Encapsulamento do ICMP.
Uma das melhores aplicações para o protocolo ICMP é a sua utilização no comando ping, disponível na maioria dos sistemas operacionais e que permite testar a conectividade de um host. No exemplo a seguir, foi utilizado um ping no host 192.168.0.1. Foram enviados quatro pacotes para o host e quatro pacotes foram retornados como resposta, indicando que o host é alcançável. Além disso, podemos observar algumas estatísticas, indicando que não houve perda de pacotes e que os tempos de retorno estão abaixo de 1 ms, significando que a conexão ao host está excelente. O comando ping utiliza duas mensagens ICMP distintas para realizar o teste: no pacote de ida é utilizada a mensagem echo request e no pacote de volta, uma mensagem echo reply. É importante ressaltar que uma mensagem indicando que o host não está alcançável não significa que o host esteja realmente desligado ou com problemas. Se, por exemplo, houver algum problema de rota na rede de interconexão ou existir um firewall filtrando mensagens ICMP, o host pode estar ativo e não receber a mensagem do ping. C:\>ping 192.168.0.1 Disparando contra 192.168.0.1 com 32 bytes de dados: Resposta de 192.168.0.1: bytes=32 tempoh_length); 24 ret = bind(sEscuta,(struct sockaddr *) &EnderLocal, sizeof(EnderLocal)); 25 ret = listen(sEscuta, 10); 26 TamEndereco = sizeof(EnderRemoto); 27 sCliente = accept(sEscuta, (struct sockaddr *) &EnderRemoto, &TamEndereco); 28 ret = recv(sCliente, BufferEnt, sizeof(BufferEnt), 0); 29 TamBuffer = ret; 30 BufferEnt[TamBuffer] = ‘\0’;
31 printf(“Dado recebido: %s”, BufferEnt); 32 strcpy(Mensagem, MESSAGE); 33 TamMensagem = strlen(Mensagem); 34 ret = send(sCliente, Mensagem, TamMensagem, 0); 35 closesocket(sCliente); 36 closesocket(sEscuta); 37 WSACleanup(); 38 exit(0); 39} F IGURA 7.20
Programa servidor.
A função socket, na linha 18, cria o socket sEscuta e define a família de protocolos que será utilizada (AF_INET), o tipo de socket (SOCK_STREAM) e o protocolo de transporte (IPPROTO_ TCP). A função retorna um número inteiro que representa o descritor do socket, utilizado para que se possa referenciar o socket nas chamadas posteriores. Se a função retornar um número menor que zero, houve um erro na chamada. Nas linhas 19-23, o programa obtém o nome do servidor e inicializa a variável EnderLocal com as informações necessárias para ser utilizada pela função bind posteriormente. Na linha 20, o ponteiro hp recebe o endereço da estrutura de dados que identifica o endereço IP do servidor. Nas linhas 21-23, a variável EnderLocal é inicializada com o endereço IP e a porta do servidor. As variáveis EnderLocal e EnderRemoto são registros do tipo SOCKADDR_IN, que define a estrutura do socket. O socket sEscuta, criado anteriormente, não está associado a nenhum endereço ou porta. A função bind permite associar o endereço IP e a porta contidos na variável EnderLocal ao socket sEscuta. No programa servidor, o bind define o próprio IP da máquina e a porta 5000 em que o servidor estará recebendo conexões. A função listen, na linha 25, coloca o servidor no estado de escuta por conexões e especifica o tamanho da fila de pedidos de conexão. A função accept, na linha 27, permite que servidor aceite um pedido de conexão solicitado pelo cliente, utilizando o algoritmo three-way handshake apresentado anteriormente. Para cada cliente que solicita uma conexão, o servidor cria um novo socket sCliente para estabelecer a conexão e trocar dados com o cliente. O servidor, por sua vez, continua recebendo conexões no mesmo socket sEscuta definido no início do programa. A função recv, na linha 28, permite que o servidor receba uma mensagem do cliente a partir do socket sCliente, e a mensagem é
armazenada na variável BufferEnt. Nas linhas 29-31, o tamanho da variável BufferEnt é ajustado de acordo com o que foi recebido e a mensagem apresentada na tela. Nas linhas 32-33, o servidor prepara a mensagem a ser enviada para o cliente. A função send, na linha 33, envia a mensagem “Eu sou o servidor!” para o cliente. A função close, nas linhas 35-36, encerra a conexão com o cliente, e na linha 37 a biblioteca WinSock é desalocada.
7.10.2 Programa Cliente
O programa cliente, apresentado na Fig. 7.21, aloca um socket e realiza uma conexão com o servidor. Caso a conexão seja possível, o cliente envia uma mensagem para o servidor que responde com outra mensagem. Nas linhas 1-6 o programa inclui as bibliotecas necessárias a sua execução e define duas constantes: a mensagem que será enviada e a porta utilizada para a conexão no servidor. Nas linhas 7-16 são declaradas as variáveis utilizadas pelo programa, que serão mais bem compreendidas conforme referenciadas no código fonte. Na linha 17, a rotina WSAStartup inicializa a biblioteca WinSock do MS Windows. O programa permite que o usuário especifique como parâmetro de entrada o nome ou endereço IP do servidor ao qual quer se conectar. Caso não seja passado o parâmetro, o programa presume que o servidor está sendo executado na mesma máquina que o cliente. Esse teste é realizado na linha 18, através da variável argc, que especifica o número de parâmetros passados para o programa. Se argc for diferente de dois, então os programas cliente e servidor estão sendo executados na mesma máquina; caso contrário, o nome do servidor que foi passado na linha de comando é copiado para a variável Servidor. Na linha 22, o ponteiro hp recebe o endereço da estrutura de dados que identifica o endereço IP do servidor. Nas linhas 23-25, a variável EnderRemoto, do tipo SOCKADDR_IN, é inicializada com o endereço IP e a porta do servidor. Na linha 26, o cliente cria o seu próprio socket sCliente. Como o programa não realiza um bind, o socket fica associado à própria máquina em que está sendo executado, e a porta é dinamicamente alocada pelo sistema operacional. Após a criação do socket, o programa chama a função connect, na linha 27, para estabelecer uma conexão com o servidor. Na chamada, o cliente especifica três parâmetros: o seu socket (sCliente), o endereço do servidor, utilizando a variável EnderRemoto previamente inicializada, e o tamanho da estrutura. Nas linhas 28-30, o cliente envia a mensagem “Eu sou o cliente!” para o servidor. Na linha 31, o programa recebe a resposta do servidor, que é
processada nas linhas 32-34 e apresentada na tela. Na linha 35, a conexão com o servidor é encerrada e na linha seguinte a biblioteca WinSock é desalocada. 1 2 3 4
#include #include #include #include
5 #define MESSAGE “Eu sou o cliente!\n” 6 #define PORTA 5000 7 int main(int argc, int **argv) 8 { 9 WSADATA wsda; 10 struct hostent *hp; 11 char Mensagem[80]; 12 char BufferEnt[128]; 13 char Servidor[256]; 14 int TamBuffer, TamMensagem, ret; 15 SOCKET sCliente; 16 SOCKADDR_IN EnderRemoto; 17 WSAStartup(MAKEWORD(1,1), &wsda); 18 if(argc != 2) 19 gethostname(Servidor, sizeof(Servidor)); 20 else 21 strcpy(Servidor, (char *) &argv[1][0]); 22 hp = gethostbyname(Servidor); 23 EnderRemoto.sin_family = hp->h_addrtype; 24 EnderRemoto.sin_port = PORTA; 25 memcpy((char *)&EnderRemoto.sin_addr, hp->h_addr, hp->h_length); 26 sCliente = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 27 ret = connect(sCliente,(struct sockaddr *) &EnderRemoto, sizeof(EnderRemoto)); 28 strcpy(Mensagem, MESSAGE); 29 TamMensagem = strlen(Mensagem); 30 ret = send(sCliente, Mensagem, TamMensagem, 0); 31 ret = recv(sCliente, BufferEnt, sizeof(BufferEnt), 0); 32 TamBuffer = ret; 33 BufferEnt[TamBuffer] = ‘\0’; 34 printf(“Resposta recebida: %s\n”, BufferEnt); 35 closesocket(sCliente); 36 WSACleanup(); 37 exit(0); 38}
F IGURA 7.21
Programa cliente.
Para informações adicionais sobre programação com a interface de socket no ambiente Unix, consultar [Comer, 2000] e [Stevens, 2003]. Para informações adicionais sobre programação com a interface de socket no ambiente MS Windows, consultar [Comer, 1997].
Exercícios Questões de múltipla escolha 1 Qual a principal função da camada de transporte? A. Roteamento B. Endereçamento C. Qualidade de serviço D. Controle de acesso ao meio E. Comunicação fim a fim. 2 O que é verdadeiro sobre os protocolos TCP e UDP? A. Os protocolos TCP e UDP são confiáveis. B. O protocolo TCP não é confiável e o UDP é confiável. C. O protocolo UDP não é confiável e o TCP é confiável. D. Os protocolos TCP e UDP são muito parecidos. E. O protocolo TCP oferece melhor desempenho do que o UDP. 3 O que é verdade sobre uma conexão lógica na camada de transporte? A. É formada por um socket. B. É formada por um par de endereços IPs. C. É formada por um par de IP e porta. D. É formada por um par de portas. E. É formada por um IP e porta. 4 Qual destas opções é verdadeira? A. Porta 21 - SMTP B. Porta 23 - FTP C. Porta 25 - Telnet D. Porta 1553 - DNS E. Porta 80 - HTTP 5 Qual o comando que permite visualizar e monitorar as conexões de rede em sistemas MS Windows? A. tracert B. ping C. netstat
D. nslookup E. arp 6 Qual o protocolo de aplicação que utiliza o protocolo UDP como transporte? A. Telnet B. FTP C. HTTP D. SMTP E. TFTP 7 No esquema de NAPT, o que é utilizado para permitir que hosts na rede privada possam acessar a Internet com apenas um endereço público? A. Portas B. IP de origem e destino C. Protocolo de aplicação D. IP de origem E. IP de destino 8 Qual o nome do mecanismo utilizado pelo protocolo TCP para iniciar uma conexão lógica com um host? A. Serviço não orientado a conexão B. Serviço orientado a conexão C. Início de conexão lógica D. Three-way handshake E. Comunicação fim a fim 9 Suponha que você está desenvolvendo uma aplicação que roda basicamente dentro da LAN e transmite pequenas mensagens. Qual o protocolo de transporte que você escolheria? A. IP B. TCP/IP C. TCP D. UDP E. ICMP 10 Se o desenvolvedor escolher utilizar o protocolo UDP, como pode ser garantida a confiabilidade da transmissão? A. Criando um novo protocolo na camada de transporte. B. Usando o TCP/IP. C. Tratando o problema na camada de aplicação. D. Usando o protocolo TCP. E. Usando o IP. 11 Qual dos protocolos a seguir utiliza os protocolos TCP e UDP? A. DNS B. BOOTP C. FTP D. TFTP E. SMTP
12 Qual o mecanismo que permite que um servidor possa oferecer diversos serviços ao mesmo tempo? A. Endereço de porta B. Endereço TCP C. Endereço UDP D. Endereço IP E. Endereço MAC 13 Qual dos comandos a seguir não faz parte da interface de sockets? A. bind B. accept C. socket D. open E. listen 14 [ENADE-COMP-Q67, 2008] No desenvolvimento e na programação de aplicações em redes TCP/IP, qual tipo de protocolo de transporte libera o programador da responsabilidade de detectar e corrigir erros durante a transmissão, objetivando tornar a programação da aplicação mais simples? A. Sem conexão B. Orientado a conexão C. Orientado a bit D. Orientado a byte E. Datagrama confirmado 15 [ENADE-COMP-Q58, 2008] Considerando o mecanismo de tradução de endereços e portas (network address port translation – NAPT), para redes que utilizam os endereços IP privados (10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16), analise as asserções a seguir. Ao passar por um roteador com NAPT, os endereços de origem nos pacotes originados pelas estações da rede privada são substituídos pelo endereço externo desse roteador PORQUE não há rotas na Internet para o encaminhamento de pacotes destinados a endereços IP privados, de forma que pacotes destinados a esses endereços são descartados ou rejeitados. Em relação às asserções feitas anteriormente, assinale a opção correta. A. As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. B. As duas asserções são proposições verdadeiras, e a segunda não é uma justificativa correta da primeira. C. A primeira asserção é uma proposição verdadeira, e a segunda é uma proposição falsa. D. A primeira asserção é uma proposição falsa, e a segunda é uma proposição verdadeira. E. As duas asserções são proposições falsas. 16 [ENADE-COMP-Q75, 2008] Considere que a figura a seguir ilustre o cenário de NAPT em uma empresa cujos equipamentos de rede interna (LAN) usam endereços IP privados. Considere, ainda, que haja apenas um endereço IP válido nas redes dessa empresa, que é atribuído à interface externa do roteador. Considerando que os computadores A e B façam acessos simultâneos a um servidor WWW externo (www.inep.gov.br, por exemplo), quais deverão ser os endereços IP de origem contidos nos pacotes de A e B, respectivamente, que chegarão a esse servidor?
A. 10.0.0.1 e 10.0.0.2 B. 10.0.0.254 e 10.0.0.254 C. 138.76.28.4 e 138.76.28.4 D. 138.76.28.1 e 138.76.28.2 E. 169.254.1.1 e 169.254.1.2 17 [ENADE-REDE-Q17, 2008] Considere as afirmações que se seguem, sobre arquitetura de redes de computadores. I. Um dos motivos que levaram ao conceito de inter-rede é o fato de que nenhuma tecnologia de rede satisfaz todos os requisitos de alcance geográfico e velocidade desejados. II. Uma inter-rede pode juntar redes de quaisquer tecnologias, desde que cada uma utilize o mesmo esquema de endereçamento físico de hospedeiros e roteadores. III. A família de protocolos TCP/IP contém dois protocolos de enlace, um baseado em conexão e o outro, sem conexão. IV. Na família de protocolos TCP/IP, cada hospedeiro tem endereço único de camada de transporte. V. O objetivo de uma inter-rede é fazer uma coleção de redes parecer uma única rede. Estão corretas APENAS as afirmações A. I e V. B. II e IV. C. IV e V. D. I, II e V.
E. II, III e V. 18 [ENADE-REDE-Q22, 2008] A figura abaixo apresenta a captura de um conjunto de pacotes, mostrando dois blocos de informação: um, na parte superior, e outro, na parte inferior da figura. O bloco superior mostra uma lista de pacotes capturados, um por linha, com as seguintes colunas: numeração do pacote capturado (No.), momento da captura do pacote (Time), endereço de origem (Source), endereço de destino (Destination), protocolo (Protocol) e algumas informações adicionais (Info). O bloco inferior mostra o detalhamento do pacote número 7, selecionado na lista de pacotes capturados. Considerando que os pacotes capturados são relativos a uma conexão entre um cliente (endereço IP 192.168.1.8) e um servidor (endereço IP 209.85.193.104), analise as afirmações que se seguem. I. O pacote selecionado faz parte do processo de abertura de uma conexão TCP (three-way handshake). II. A conexão aberta pelo cliente usando a porta 50059, com o servidor usando a porta 80, foi fechada. III. O servidor aceitou o pedido de conexão do cliente, e o tamanho do cabeçalho do seu segmento de resposta indica a presença de opções no cabeçalho TCP. IV. O cliente usou a conexão TCP aberta na porta de origem 50059 para buscar um objeto no servidor. Está(ão) correta(s) a(s) afirmação(ões) A. I, apenas. B. IV, apenas. C. III e IV, apenas. D. I, II e IV, apenas. E. I, II, III e IV. 19 [ENADE-REDE-Q18, 2008] Em qual sistema e com que finalidade o mecanismo de controle de congestionamento do TCP é implementado?
A. No roteador, para controlar a ocupação das filas de saída e não saturar a rede. B. No emissor, para prevenir a saturação do receptor com o envio de dados e evitar perdas de pacotes. C. No emissor, para estimar a capacidade disponível na rede e não saturar a rede. D. No receptor, para calcular o valor do campo Janela (Window) presente nos reconhecimentos (ACK) e evitar perdas de pacotes. E. No receptor, para controlar o envio de reconhecimentos (ACK) e evitar perdas de pacotes. 20 [ENADE-REDE-Q13, 2011] No nível mais amplo, podem-se distinguir mecanismos de controle de congestionamento conforme a camada de rede ofereça ou não assistência explícita à camada de transporte com finalidade de controle de congestionamento. A respeito desse tema, avalie as asserções que se seguem e a relação proposta entre elas. O protocolo de controle de transmissão (TCP) deve necessariamente adotar o método não assistido, no qual a camada de rede não fornece nenhum suporte explícito à camada de transporte com a finalidade de controle de congestionamento. PORQUE a camada de rede Internet Protocol (IP) não fornece realimentação de informações aos sistemas finais quanto ao congestionamento da rede. Acerca dessas asserções, assinale a opção correta. A. As duas asserções são proposições verdadeiras, e a segunda é uma justificativa correta da primeira. B. As duas asserções são proposições verdadeiras, mas a segunda não é uma justificativa correta da primeira. C. A primeira asserção é uma proposição verdadeira, e a segunda é uma proposição falsa. D. A primeira asserção é uma proposição falsa, e a segunda é uma proposição verdadeira.
E. Tanto a primeira quanto a segunda asserções são proposições falsas.
Questões discursivas 1 Qual a principal função da camada de transporte? 2 Quais as diferenças entre o serviço orientado e não orientado a conexão oferecido pela camada de transporte? 3 Quais os protocolos de transporte implementados no modelo Internet? Qual a diferença entre eles? 4 Imagine que o protocolo IP oferecesse uma variante orientada à conexão, chamado IPOC. O que aconteceria quando fosse utilizada a combinação TCP e IPOC? 5 Dê exemplos de protocolos de aplicação no modelo Internet que utilizem TCP, UDP ou ambos. 6 O que é um socket? Qual a relação entre sockets e conexões lógicas do TCP? 7 Como uma estação que possui duas conexões com o mesmo servidor Web diferencia as conexões? 8 Como funciona o esquema de conexão do protocolo TCP? 9 No protocolo TCP, o controle de fluxo é implementado, em parte, pelo campo tamanho da janela no cabeçalho do protocolo. Qual a técnica utilizada pelo TCP para enviar essa informação de forma eficiente? 10 Você desenvolveu uma aplicação que utiliza sockets. a) Essa aplicação irá executar de forma correta independentemente de se a rede for uma LAN, MAN ou WAN? b) Essa aplicação poderá se comunicar com outras aplicações que também utilizem sockets, independentemente do sistema operacional e da plataforma de hardware?
8 Camada de Aplicação
8.1 Introdução A principal função da camada de aplicação é oferecer serviços de rede para os usuários e suas aplicações, como serviços de nomes, web, transferência de arquivos, correio eletrônico, gerência remota, entre outros. Enquanto a camada de transporte e as demais camadas inferiores estão preocupadas com a transmissão dos dados propriamente dita, a camada de aplicação utiliza os recursos da rede de forma transparente, oferecendo serviços específicos para seus usuários.
8.2 Protocolos de Aplicação A camada de aplicação é a camada mais próxima dos usuários e de suas aplicações. Enquanto as camadas inferiores estão preocupadas com os detalhes da comunicação propriamente dita, a camada de aplicação permite o uso da rede e de suas facilidades da forma mais transparente possível. Para isso, a camada de aplicação oferece uma interface de programação que simplifica o processo de desenvolvimento de aplicações em rede. No modelo Internet, o conceito de sockets oferece uma interface de programação padronizada para a utilização dos recursos da camada de transporte e, consequentemente, das demais camadas. Tabela 8.1
Protocolos de aplicação
Serviço de rede
Protocolo
Serviço de nomes
DSN
Serviço web
HTTP
Transferência de arquivos
FTP e TFTP
Correio eletrônico
SMTP, POP e IMAP
Terminal remoto
Telnet
Gerenciamento de rede
SNMP
Enquanto na camada de transporte existem um ou dois protocolos, na camada de aplicação existem vários protocolos, um para cada tipo de serviço de rede. Na verdade, um mesmo serviço de rede pode exigir diversos protocolos de aplicação. Por exemplo, o serviço de correio eletrônico pode utilizar os protocolos SMTP, POP e IMAP. Os principais serviços dessa camada são o serviço de nomes, web, correio eletrônico, transferência de arquivos, terminal remoto, gerência remota, áudio e videoconferência. A Tabela 8.1 apresenta os principais serviços oferecidos pela camada de aplicação e os principais protocolos de cada serviço. No modelo Internet, os serviços de rede especificam qual o protocolo de transporte se deseja utilizar. Se a aplicação utiliza o protocolo TCP, será fornecido um serviço confiável com controle de erro e controle de fluxo. Se, por outro lado, a aplicação escolhe o protocolo UDP, será fornecido um serviço não confiável, deixando para a própria aplicação a tarefa de implementar os mecanismos de controle necessários. A Fig. 8.1 apresenta os principais protocolos de aplicação e os protocolos de transporte associados. Como pode ser observado, existem protocolos, como o DNS, que utilizam os dois protocolos de transporte, dependendo do tipo de serviço a ser executado.
F IGURA 8.1
Protocolos de aplicação e transporte.
A decisão em utilizar os protocolos TCP ou UDP pela camada de aplicação deve seguir como parâmetros o desempenho e a confiabilidade. A camada de aplicação deve optar pelo protocolo TCP quando há a transferência contínua de grandes volumes de dados e garantia na entrega desses dados. Por outro lado, a camada de aplicação deve optar pelo protocolo UDP quando as mensagens são pequenas e não existe a necessidade de garantia na entrega das mensagens. A transmissão de mensagens pequenas, utilizando o protocolo TCP, obriga a estabelecer uma conexão lógica, manter todos os controles de erro durante a transmissão e, ao término, desfazer a conexão. Todo esse procedimento demanda tempo, impactando o desempenho da aplicação. Se o custo da retransmissão das mensagens for pequeno, não há a necessidade de controles de erro, como fornecidos pelo protocolo TCP, tornando mais interessante o uso do protocolo UDP.
8.3 Serviço de Nomes O serviço de nomes está relacionado ao endereçamento na camada de aplicação. Como essa função é implementada em outras camadas, é
interessante relembrarmos o assunto. O endereçamento é maneira de identificar quem está enviando uma mensagem e, principalmente, quem irá recebê-la. O esquema de endereçamento pode ser implementado em todos os níveis, e, seguindo a lógica do modelo de camadas, endereços da camada de origem são interpretados no destino pela camada de mesmo nível. A Tabela 2.2 apresenta exemplos de endereços encontrados em cada uma das camadas do modelo. No Capítulo 4, estudamos o endereçamento na camada de enlace, que, em redes Ethernet, é implementado através do endereço MAC ou endereço físico. No Capítulo 6 apresentamos o endereçamento na camada de rede que, no modelo Internet, é implementado pelo protocolo IP. No Capítulo 7 abordamos o endereçamento na camada de transporte, que, no modelo Internet, é implementado pelas portas TCP e UDP. Tabela 8.2
Endereçamento nas várias camadas
Camada
Endereço
Protocolo
Exemplo
Enlace
MAC
Ethernet
00-0C-6E-3C-D1-6D
Rede
IP
IP
208.77.188.193
Transporte
Porta
TCP e UDP
80
Aplicação
URL
HTTP
www.iana.org
A camada de aplicação poderia utilizar os endereços da camada de rede e de transporte para ter acesso aos serviços disponíveis na rede. Por exemplo, se um usuário especificar o endereço http://208.77.188.193, estará acessando o servidor web da IANA (Internet Assigned Numbers Authority), responsável pelo controle de nomes e endereços na Internet. Utilizar o endereço IP para acessar os serviços de rede oferece dois problemas práticos. O primeiro é fazer com que os usuários lembrem dos endereços IP de cada host de seu interesse. Certamente, para um usuário, é mais simples memorizar um nome, por exemplo, www.iana.org, do que o endereço 208.77.188.193. O segundo problema ocorrerá sempre que o endereço do servidor for alterado. Nesse caso, o usuário, mesmo conhecendo o endereço IP antigo, não terá acesso ao serviço. A utilização de um nome, como www.iana.org, permite que o endereço IP associado seja alterado sem causar problemas para os usuários.
A principal função do serviço de nomes é traduzir nomes de dispositivos em endereços utilizados pelas camadas inferiores, como o endereço IP da camada de rede. Por exemplo, quando um usuário faz referência ao nome www.iana.org, esse nome é convertido para o endereço 208.77.188.193, que pode ser utilizado pelas camadas inferiores. Para o usuário, o processo de tradução é totalmente transparente. Ele não conhece qual é o endereço IP do servidor, e, caso o endereço seja alterado, o usuário continuará a ter acesso ao serviço sem nenhum problema. Existem, basicamente, duas formas de implementar o mapeamento de endereços de aplicação em endereços de rede: mapeamento estático e dinâmico. No mapeamento estático, existe um arquivo em cada host contendo uma lista com todos os nomes de dispositivos existentes na rede e seus respectivos endereços. Quando o usuário referenciar determinado host, o nome é pesquisado no arquivo e o endereço IP é obtido. A seguir, é apresentado um exemplo do arquivo hosts utilizado na maioria dos sistemas operacionais para criar o mapeamento estático de endereços. O primeiro IP da lista, 127.0.0.1, é um endereço reservado e conhecido como IP de loopback. Esse endereço é utilizado apenas para testar se a máquina local possui a pilha de protocolos TCP/IP instalada. Os demais endereços associam cada IP ao seu respectivo nome. # Arquivo hosts exemplo 127.0.0.1 208.77.188.193 64.170.98.32 206.131.241.137
localhost www.iana.br www.ietf.org www.isoc.org
O esquema de endereçamento estático utilizando o arquivo hosts, apesar de ser bastante simples, não oferece escalabilidade, sendo indicado apenas para pequenas redes. No caso de grandes redes, como a Internet, manter um arquivo atualizado em todos os hosts seria, na prática, inviável. Para manter o arquivo de hosts consistente, seria necessária a centralização de todas as atualizações do arquivo em um único ponto. Dessa forma, seria praticamente impossível atualizar o arquivo na velocidade em que novos hosts são conectados à Internet. Além disso, o arquivo se tornaria muito grande, gerando problemas no armazenamento local e no consumo de banda de rede para a transferência do arquivo para todos os demais hosts da Internet. Para resolver esse problema, foi desenvolvido o protocolo DNS (Domain Name System), definido nas RFC1034 e RFC-1035, com a principal finalidade de servir como tradutor de nomes em grandes redes, como a Internet. O DNS pode utilizar como
transporte os protocolos TCP ou UDP e recebe conexões na porta reservada 53. O serviço de nomes DNS implementa o esquema de endereçamento dinâmico, utilizando servidores de nomes ou servidores DNS, que possuem informações relacionando os nomes dos hosts e seus respectivos endereços IP. Quando um usuário faz referência ao nome www.iana.org, um servidor DNS é consultado, e o IP correspondente retornado, nesse caso, 208.77.188.193 (Fig. 8.2). Depois de obtido o endereço IP, o acesso ao servidor web poderá ser realizado pelas camadas inferiores. Se o usuário souber o IP do servidor web da IANA e utilizá-lo diretamente em suas aplicações, o servidor DNS não será consultado. Por exemplo, se o usuário utilizar no browser o endereço http://208.77.188.193, não haverá consulta ao DNS.
F IGURA 8.2
Serviço de nomes DNS.
Existem diversas implementações para o serviço de nomes DNS, e a mais importante é conhecida como BIND (Berkeley Internet Name Domain). O BIND foi desenvolvido inicialmente para o sistema operacional Unix de Berkeley, chamado BSD Unix, e atualmente pode ser encontrado na maioria dos sistemas operacionais.
8.3.1 Espaço de Nomes de Domínio
O espaço de nomes de domínio implementado pelo DNS é hierárquico, semelhante ao modelo de árvore de diretórios e subdiretórios utilizado na maioria dos sistemas de arquivos dos sistemas operacionais. O espaço de nomes é formado por domínios, subdomínios e hosts, e o domínio de mais
alto nível é conhecido como domínio raiz, representado pelo ponto (Fig. 8.3). Abaixo da raiz existem os domínios de primeiro nível ou TLD (Top-Level Domain), que podem representar domínios genéricos ou de países. Os domínios genéricos representam grupos como empresas (com), órgãos do governo (gov), organizações sem fins lucrativos (org), instituições educacionais (edu), provedores de acesso (net), entre outros. Os domínios de países representam cada um dos países, utilizando apenas duas letras e seguindo o padrão ISO 3166, como Brasil (br), Estados Unidos da América (us), Alemanha (de), Japão (jp), entre outros. A administração e a criação de novos TLD são de responsabilidade da IANA e da ICANN. Abaixo dos domínios de primeiro nível estão os domínios de segundo nível, que por sua vez podem ser formados por outros subdomínios. Nas extremidades da estrutura, ou seja, nas folhas, estão os hosts. A referência a um nome de domínio ou host é feita especificando o caminho a partir da folha até a raiz, separando os domínios por um ponto. Por exemplo, o domínio da PUC é referenciado como puc-rio.br, e o servidor web do Núcleo de Computação Eletrônica (NCE) da UFRJ é referenciado como www.nce.ufrj.br. O nome completo de um domínio ou host é chamado de FQDN (Full Qualified Domain Name). Para facilitar a referência aos nomes, também é possível referenciar domínios e hosts de forma relativa. Por exemplo, o host iris.pd.wxyz.com.br pode ser acessado apenas pelo nome do host iris quando o acesso partir do domínio pd.wxyz.com.br.
F IGURA 8.3
Espaço de nomes de domínio.
O espaço de nomes de domínio também pode ser comparado a uma árvore genealógica. Um domínio pai pode possuir um ou mais domínios filho, porém um domínio filho só pode ter um domínio pai. Na Fig. 8.4a, o domínio pai com.br possui dois domínios filho, wxyz e ibm. A relação de parentesco não é absoluta, mas relativa. Por exemplo, na Fig. 8.4b, o domínio wxyz é filho do domínio com.br, mas é pai do domínio pd. Os subdomínios e hosts logo abaixo do domínio pai não podem ter nomes duplicados, de forma a garantir a identificação única no espaço de nomes. Por exemplo, não é permitido dois hosts com o nome iris abaixo do domínio pd.wxyz.com.br, porém é possível ter um host com esse mesmo nome abaixo de wxyz.com.br e ibm.com.br (Fig. 8.4a).
F IGURA 8.4
Domínio pai e filho.
8.3.2 Delegação e Zonas de Autoridade
O esquema de nomes hierárquico permite a delegação de autoridade para a administração dos domínios, tornando a gerência do espaço de nomes descentralizada e flexível (Fig. 8.5). Quando um novo subdomínio deve ser criado, basta apenas solicitar sua criação ao domínio pai, sem interferir com todos os demais domínios. Por exemplo, para criar o domínio da empresa wxyz abaixo de com.br, basta solicitar ao administrador do domínio com.br a criação do subdomínio. O administrador irá verificar se o nome não viola nenhuma política do domínio com.br, e, caso não haja impeditivos, o domínio filho será criado. Na prática, a criação do domínio significa basicamente acrescentar informações para a resolução do nome wxyz no servidor DNS do domínio com.br. A administração e o controle do domínio br e de seus domínios filho, com.br, edu.br e org.br, entre outros, são delegados ao Registro.br.
F IGURA 8.5
Delegação de autoridade.
Depois de criado o domínio wxyz, é delegada a autoridade ao responsável pelo domínio para que possa criar subdomínios e hosts apenas com a alteração do servidor DNS da própria empresa, sem interferir com os demais domínios. Por exemplo, se for preciso criar o subdomínio de pesquisa e desenvolvimento (pd) abaixo do domínio wxyz.com.br, basta que o administrador da rede da empresa registre no servidor DNS o novo domínio pd.wxyz.com.br. O mesmo pode ser feito para criar o nome www.wxyz.com.br para o servidor web da empresa. Além de hierárquico, o DNS também é um sistema distribuído. Devido ao grande número de domínios e hosts na Internet, seria extremamente complicado se somente alguns servidores fossem capazes de resolver qualquer nome para seu respectivo IP. No modelo distribuído, os servidores DNS são responsáveis por apenas alguns segmentos contínuos do espaço de endereçamento, formando uma zona de autoridade. Por exemplo, na Fig. 8.5, o domínio wxyz.com.br foi definido como uma zona de autoridade, significando que o servidores DNS dessa zona serão responsáveis por responder pelos domínios, subdomínios e hosts desse segmento do espaço de endereçamento.
Cada zona possui um servidor DNS primário, que possui um arquivo com informações sobre os domínios que estão sob a sua autoridade, os hosts e seus respectivos endereços IP, entre outras informações. Além do servidor primário, podem existir um ou mais servidores DNS secundários, que possuem uma cópia da configuração do servidor primário. Periodicamente, as informações contidas nos servidores secundários são atualizadas pelo servidor primário, de forma a manter a consistência da base de dados. Esse processo é chamado de transferência de zona. Os servidores secundários permitem melhorar o desempenho e a disponibilidade do sistema.
8.3.3 Resolução de Nomes
A função de busca de informações dentro do espaço de nomes é conhecida como resolução de nomes ou lookup. O processo funciona no modelo cliente-servidor, e o cliente é chamado de resolvedor (resolver), e o servidor, de servidor DNS. O processo se inicia quando o cliente necessita da resolução de um nome e essa solicitação é passada para o resolvedor. O resolvedor pode fazer parte do próprio aplicativo, por exemplo do browser, ou ser parte do sistema operacional. O resolvedor, por sua vez, solicita a resolução do nome a um servidor DNS, previamente definido no cliente. No Microsoft Windows, o comando ipconfig/all apresenta os servidores primário e secundário, se disponíveis, que serão referenciados pelo resolvedor na resolução de nomes. No exemplo a seguir, primeiro será consultado o servidor DNS primário 10.3.1.3, e, caso não esteja disponível, o servidor DNS secundário 10.3.1.4. Depois de resolvida a solicitação, normalmente essa informação fica armazenada em uma memória cache do resolvedor por um certo período de tempo, a fim de evitar nova resolução de nomes já referenciados. O comando ipconfig/displaydns mostra as entradas da cache do resolvedor. C:\>ipconfig/all Windows IP Configuration ... IP Address. . . . . . . . . . . . :
Subnet Mask . . . . . . . . . . . :
Default Gateway . . . . . . . . . :
10.3 .1.1 3 255. 255. 255. 0 10.3 .1.1
DHCP Server . . . . . . . . . . . : DNS Servers . . . . . . . . . . . :
10.3 .1.2 10.3 .1.3 10.3 .1.4
...
O servidor de DNS local possui a sua própria base de dados e armazena na sua memória cache as solicitações de nomes mais recentes. Sempre que um resolvedor solicita uma resolução de nome, o servidor DNS verifica se essa solicitação pode ser resolvida localmente. Caso não seja possível, pois o servidor DNS desconhece o nome solicitado, existem dois mecanismos de busca que podem ser utilizados para a resolução de nomes: busca iterativa e busca recursiva. Na busca iterativa, apresentada na Fig. 8.6, o cliente solicita ao resolvedor a resolução do nome www.wxyz.com.br. Caso desconheça o nome, o resolvedor solicita ao servidor DNS local a resolução do nome e, caso também desconheça, inicia o processo de busca. O servidor DNS local solicita a resolução do nome ao servidor DNS raiz e, caso desconheça, retorna o endereço do servidor DNS responsável pelo domínio br. O servidor DNS local solicita a resolução do nome ao servidor DNS br e, caso desconheça, retorna o endereço do servidor DNS responsável pelo domínio com.br. O servidor DNS local solicita a resolução do nome ao servidor DNS com.br e, caso desconheça, retorna o endereço do servidor DNS responsável pelo domínio wxyz.com.br. Finalmente, o servidor DNS local solicita a resolução do nome ao servidor DNS wxyz.com.br, que retorna o endereço do site www.wxyz.com.br. O servidor DNS local repassa a informação para o resolvedor, que atende a solicitação do cliente e, agora, pode fazer o acesso ao nome referenciado. Os servidores DNS que estão na raiz do espaço de nomes de domínio são fundamentais para o funcionamento de todo o sistema de resolução de nomes. Esses servidores conhecem os servidores DNS dos domínios de primeiro nível, que, por sua vez, conhecem os servidores DNS de segundo nível. Caso haja algum problema com todos os servidores DNS na raiz, o mecanismo de resolução de nomes, em algum momento, ficará comprometido. Atualmente, existem espalhados pelo mundo 13 servidores DNS na raiz, conhecidos pelas letras de A a M, para garantir desempenho e disponibilidade ao sistema. Para mais informações, consultar o site www.root-servers.org.
F IGURA 8.6
Busca iterativa..
Na busca recursiva, apresentada na Fig. 8.7, o processo é bem diferente da busca iterativa. Inicialmente, o cliente solicita ao resolvedor a resolução do nome www.wxyz.com.br. Caso desconheça o nome, o resolvedor solicita ao servidor DNS local a resolução do nome e, caso também desconheça, inicia o processo de busca. O servidor DNS local solicita a resolução do nome ao servidor DNS raiz e, caso desconheça, solicita ao servidor DNS responsável pelo domínio br a resolução do nome. Caso o servidor DNS br desconheça o nome www.wxyz.com.br, é feita uma solicitação de resolução de nome ao servidor responsável pelo domínio com.br. Caso o servidor DNS com.br desconheça o nome www.wxyz.com.br, é feita uma solicitação de resolução de nome ao servidor responsável pelo domínio wxyz.com.br. Finalmente, o servidor DNS wxyz.com.br retorna o endereço do site www.wxyz.com.br ao servidor DNS solicitante. Esse processo se repete até o servidor raiz passar a informação para o servidor DNS local, que, por sua vez, repassa a informação para o resolvedor. Finalmente, o resolvedor atende a solicitação do cliente, que, agora, pode fazer o acesso ao nome referenciado.
F IGURA 8.7
Busca recursiva.
Para melhorar o desempenho do sistema, o mecanismo de resolução de nomes utiliza sempre que possível o esquema de memória cache no resolvedor, servidor DNS local e nos demais servidores DNS existentes. Sempre que é feita uma solicitação, o resultado fica armazenado na memória cache do resolvedor e dos servidores DNS pesquisados. A ideia é tentar fazer a resolução de nomes o mais próxima possível do cliente e evitar novas buscas. As informações armazenadas na cache têm um tempo de vida ou TTL (Time To Live), que representa o tempo que a informação permanecerá na cache. Após esse intervalo de tempo, a informação é eliminada da cache para que novas consultas possam ser armazenadas. Um comando muito útil que permite realizar consultas ao espaço de nomes do domínio é nslookup. No exemplo a seguir, o comando solicita a resolução do nome www.iana.org. Após a sua execução, são exibidos o nome e o IP do servidor DNS utilizado na resolução, no caso o DNS primário 10.3.1.3, e o nome e o IP do servidor web da IANA, 208.77.188.193. C:\>nslookup www.iana.org Server: dns1.wxyz.com.br Address: 10.3.1.6 Non-authoritative answer: Name: www.iana.org Address: 208.77.188.193
O esquema de resolução de nomes apresentado mostrou apenas a resolução de um nome para seu respectivo endereço IP, mas o serviço de DNS também oferece a resolução reversa, ou seja, um determinado IP encontrar o nome associado. O comando nslookup pode ser utilizado para fazer a resolução de IP para o nome, bastando especificar o IP desejado.
8.4 Serviço Web O serviço WWW (World Wide Web), ou, simplesmente, serviço web, é basicamente um conjunto de documentos ou páginas web contendo textos, imagens, áudio e/ou vídeo. As páginas são interconectadas por hiperlinks, permitindo ao usuário navegar entre os diversos documentos de forma bastante intuitiva. O esquema de hiperlinks que liga as páginas forma o que é conhecido como hipertexto. A Fig. 8.8 ilustra o conceito de hipertexto. A página principal Treinamentos possui quatro hiperlinks para as páginas Sistemas operacionais, Redes, Banco de dados e Programação. Selecionada a opção de Sistemas Operacionais, é apresentada outra página para outros cinco hiperlinks: MS Windows, Linux, HP-UX, IBM-AIX e Sun Solaris. Selecionando a opção Linux temos os hiperlinks para as páginas cursos de Linux, Fundamentos, Administração, Redes TCP/IP e Shell script, além da opção de retornar para a página inicial. O serviço web é formado por três elementos básicos: o servidor web, o cliente web e o protocolo HTTP (Fig. 8.9). O servidor web armazena fisicamente as páginas web, que são transferidas pelo protocolo HTTP para o cliente web, onde são exibidas para o usuário. As páginas web podem estar armazenadas em diversos servidores, e o esquema de hiperlinks torna a localização física das páginas completamente transparente para o usuário. A seguir são apresentados esses três componentes.
F IGURA 8.8
Hipertexto.
F IGURA 8.9
Serviço web.
8.4.1 Cliente Web
O cliente web, também chamado de browser, é responsável basicamente por receber as páginas web, interpretá-las e exibi-las ao usuário. O browser tornou-se a interface padrão de acesso aos recursos da rede, como a transferência de arquivos, acesso ao correio eletrônico (web mail), Internet banking e comércio eletrônico. Atualmente, os clientes web mais populares são o Mozilla Firefox e o Microsoft Internet Explorer. Quando deseja acessar determinada página, o cliente deve utilizar sua respectiva URL (Uniform Resource Locator), que permite localizar a página na web. Por exemplo, http://www.training.com.br/index.html define que o protocolo de comunicação entre o browser e o servidor é o HTTP, www.training.com.br representa o domínio da Training, e index.htm, uma página web específica a ser exibida. Depois que o usuário entra com a
URL, o browser solicita ao DNS o IP do site www.training.com.br, no caso 74.86.226.154. Na sequência, o browser estabelece uma conexão na porta 80 do servidor 74.86.226.154 e envia um comando para que a página / index.htm seja enviada. Depois de enviada, a página é exibida pelo browser e a conexão, encerrada. Uma página web é, na verdade, formada por diversos componentes. O principal componente de uma página é o arquivo HTML, que contém os hiperlinks para os demais componentes, que podem ser imagens (GIF e JPEG), arquivos de áudio (MP3) e vídeo (MPEG), applets ou outros documentos. As páginas web são desenvolvidas em HTML (HyperText Markup Language), que é uma linguagem de formatação de texto responsável apenas pela forma com que as informações são apresentadas. A linguagem HTML não é uma linguagem de programação e é uma iniciativa do World Wide Web Consortium (W3C). As primeiras versões dos browsers exibiam basicamente textos e imagens. Devido às limitações da linguagem HTML, logo surgiram alternativas para ampliar a capacidade do browser a fim de torná-lo mais dinâmico e interativo. Uma das primeiras iniciativas nesse sentido foi a adoção dos plug-ins, que funcionam como extensão do browser, permitindo a execução de arquivos em formatos diferentes de HTML, como áudio, vídeo e animações. Dois exemplos de plug-ins bastantes populares são o Adobe Flash e Apple QuickTime. Além dos plug-ins, foram desenvolvidos linguagens de programação e componentes específicos para serem executados no browser como JavaScript, VBScript, Java e ActiveX. Essas tecnologias também têm a função de tornar a interação do usuário com a página web mais dinâmica, expandindo os recursos oferecidos pela linguagem HTML. O JavaScript, apesar do nome, não tem relação com a linguagem Java. A linguagem JavaScript é semelhante a C/C++ e foi desenvolvida pela Netscape. JavaScript é uma linguagem interpretada, ou seja, o código é incluído dentro do próprio arquivo HTML, interpretado pelo browser e depois executado. A linguagem VBScript foi desenvolvida pela Microsoft e é semelhante ao Visual Basic. O VBScript, como o JavaScript, também é interpretado pelo browser. A linguagem Java, desenvolvida pela Sun Microsystems, é uma linguagem poderosa, orientada a objetos e similar a C++. Um programa escrito em Java deve ser compilado para gerar um código intermediário, independentemente de plataforma, conhecido como bytecode ou applet Java. O applet é armazenado no servidor web juntamente com os demais componentes da página web. Quando o cliente recebe a página e verifica
que existe uma referência a um applet, o arquivo é copiado do servidor para o browser e executado por uma máquina virtual Java ou JVM (Java Virtual Machine). A JVM interpreta o applet, traduzindo o bytecode para as instruções do ambiente em que o browser está sendo executado (Fig. 8.10). A grande vantagem da linguagem Java é a possibilidade de criar um único applet que pode ser executado em qualquer plataforma de hardware ou sistema operacional. Basta existir uma máquina virtual compatível com a plataforma para que o applet seja executado. Essa característica oferece à linguagem Java grande portabilidade e flexibilidade.
F IGURA 8.10
Applet Java.
O ActiveX é uma tecnologia da Microsoft, e são programas executáveis desenvolvidos em uma linguagem de programação qualquer, como C/C++ ou Visual Basic, e encapsulados em um arquivo OCX. Os controles ActiveX também residem no servidor web e são transferidos para o cliente quando referenciados. A grande diferença entre as duas tecnologias é quanto à utilização da máquina virtual. Controles ActiveX não precisam de máquina virtual, pois são desenvolvidos para executar apenas em sistemas operacionais MS Windows. As páginas web desenvolvidas utilizando a linguagem HTML misturam a forma ao conteúdo. Olhando uma página HTML não fica claro, por exemplo, se o número 100, contido na página, representa o preço de um produto, seu peso ou garantia. Por essa razão, foram desenvolvidas duas linguagens: XML e XSL. A linguagem XML (eXtensible Markup Language) permite definir o conteúdo de uma página web de forma estruturada, enquanto a linguagem XSL (eXtensible Style Languagem) permitir descrever a sua formatação independentemente do conteúdo.
8.4.2 Servidor Web
O servidor web é responsável por armazenar as páginas web e enviá-las aos clientes quando solicitado. Geralmente as páginas são copiadas para o servidor utilizando algum serviço de transferência de arquivos, como o FTP. Atualmente, os servidores web mais populares são o Apache e Microsoft Internet Information Services (IIS). A ideia de enviar para o cliente web scripts e código executável para ampliar a capacidade do browser oferece inúmeras vantagens, porém também gera alguns problemas. O primeiro foi a necessidade de que os browsers de diferentes fabricantes suportassem, além do HTML, todas as opções disponíveis e que fossem compatíveis. O segundo foi a questão do desempenho. Por exemplo, no caso de um applet Java, a máquina virtual ocupa espaço no disco e na memória principal do cliente. Além disso, o applet deve ser interpretado na memória do cliente para depois ser executado. O terceiro problema é a segurança. Enviar código para ser executado no cliente pode criar uma série de riscos de segurança, alguns bastante sérios [Maia, 2008]. Em função dos problemas apresentados, o servidor web deixou de ser apenas um repositório de páginas estáticas para tornar-se um servidor ativo, integrado a servidores de aplicação e banco de dados. Nesse caso, as páginas residentes no servidor podem ser criadas dinamicamente conforme, por exemplo, uma solicitação de um usuário. Uma das primeiras iniciativas nesse sentido foi a utilização do padrão CGI (Common Gateway Interface). O CGI permite a passagem de parâmetros de forma padronizada para a execução de um programa no servidor web. Na maioria dos casos, os programas executados no servidor são desenvolvidos em linguagens de script como Perl ou Python. Atualmente, os servidores web utilizam produtos específicos para a geração de páginas dinâmicas, como PHP do PHP Group, Active Server Pages (ASP) da Microsoft e JavaServer Pages (JSP) da Sun Microsystems.
8.4.3 Protocolo HTTP
O protocolo HTTP (HyperText Transfer Protocol) permite que uma página web armazenada em um determinado servidor seja copiada para o cliente web e exibida pelo browser. A versão do protocolo mais utilizada atualmente é o HTTP/1.1 definido na RFC-2616. O HTTP utiliza o protocolo TCP como transporte e está associado à porta reservada 80. As mensagens utilizadas no HTTP são no formato texto e podem ser de dois tipos: solicitações do cliente para o servidor (request) e respostas do servidor para o cliente (response). As solicitações do cliente para o
servidor são feitas por métodos como, por exemplo, GET, que solicita uma página ao servidor, ou PUT, que manda gravar uma página no servidor. Por exemplo, no comando a seguir, o método GET solicita uma página web ao servidor. Uma mensagem de solicitação pode ser seguida por cabeçalhos para complementar a mensagem. No exemplo, o cabeçalho Host especifica o site da Training que será acessado. GET /index.htm HTTP/1.1 Host: www.training.com.br
Uma mensagem de resposta é formada pela versão do protocolo HTTP que está sendo utilizada pelo cliente, um código de estado e uma pequena frase explicando o código. Existem diversos códigos de estado que podem indicar o sucesso da solicitação, falha no cliente ou servidor. No exemplo a seguir, a primeira linha informa que o protocolo utilizado é HTTP/1.1 e que a solicitação foi realizada com sucesso pelo servidor. Além disso, o servidor envia uma série de informações para o cliente, antes de enviar a página web solicitada, como, por exemplo, a data e hora do envio, e o tipo servidor web acessado. HTTP/1.1 200 OK Date: Sat, 08 Nov 2008 12:39:44 GMT Server: Apache/2.0.63 (Unix) mod_ssl/2.0.63 OpenSSL/0.9.8b Last-Modified: Thu, 23 Dec 2004 12:27:35 GMT ETag: “ef11e9-2b0-98489bc0” Accept-Ranges: bytes Content-Length: 688 Content-Type: text/html
Devido a sua natureza, o protocolo HTTP não identifica o cliente no momento da conexão e não mantém informações sobre o que o cliente está solicitando ao servidor web. Esse esquema de acesso é conhecido como conexão sem estado. Para manter o controle das conexões, foi introduzido um artifício, chamado cookie. Os cookies são enviados pelo servidor web, juntamente com as páginas solicitadas pelo cliente, e armazenados em um diretório na estação do cliente. Sempre que novas solicitações forem feitas ao servidor, os cookies também serão enviados e o servidor poderá reconhecer, acompanhar e atualizar as solicitações do cliente. O protocolo HTTP não oferece nenhuma confidencialidade no envio das informações, inclusive as senhas, contas bancárias e números de cartões de créditos são enviados em claro, ou seja, sem nenhum tipo de criptografia. A versão segura do protocolo HTTP é conhecida como
HTTPS (HTTP Secure). O HTTPS é uma combinação do protocolo HTTP com o protocolo SSL (Secure Socket Layer), que permite garantir o sigilo das transações bancárias e no comércio eletrônico na Internet. O protocolo HTTPS responde na porta reservada TCP 443.
8.5 Transferência de Arquivos A transferência de arquivos é um dos serviços mais básicos em uma rede de computadores. O serviço de transferência de arquivos permite ao usuário copiar arquivos utilizando a rede, além de visualizar o conteúdo de arquivos e diretórios, definir o formato dos arquivos (texto e executável) transferidos e criar e eliminar arquivos e diretórios. No modelo Internet existem dois protocolos que implementam o serviço de transferência de arquivos: FTP e TFTP. O protocolo FTP (File Transfer Protocol), definido na RFC-959, utiliza o protocolo TCP na camada de transporte. O FTP implementa o modelo cliente-servidor, e são necessários um cliente FTP e um servidor FTP. O servidor FTP utiliza duas portas para estabelecer a comunicação: uma porta para a troca de comandos e outra diferente para a transferência de dados. No caso da troca de comandos é sempre utilizada a porta reservada 21. Para a transferência de dados existem duas opções, dependendo do tipo da conexão do cliente com o servidor. Na conexão passiva, é utilizada a porta reservada 20 para a transferência dos dados. Na conexão ativa, cliente e servidor podem negociar qual porta será utilizada para a transferência (Fig. 8.11). O usuário tem acesso aos serviços de transferência de arquivo a partir do utilitário FTP, que, geralmente, acompanha a maioria dos sistemas operacionais. Enquanto a maioria dos utilitários que acompanham os sistemas operacionais é orientada a caractere, existem opções de utilitários com interface gráfica que facilitam a utilização do serviço. A Tabela 8.3 descreve os principais comandos disponíveis nos utilitários FTP.
F IGURA 8.11
FTP com conexão passiva.
Tabela 8.3
Comandos FTP
Comando
Descrição
open
Abre uma conexão com o servidor FTP.
close
Encerra uma conexão.
get
Transfere um arquivo do host remoto para o host local.
put
Transfere um arquivo do host local para o host remoto.
dir ou ls
Exibe o conteúdo do diretório remoto.
ascii
Especifica que a transferência é de um arquivo texto.
binnary
Especifica que a transferência é de um arquivo binário.
No exemplo a seguir, é apresentada a conexão ao servidor FTP da PUC-Rio no endereço ftp. puc-rio.br, a partir de um cliente MS Windows, utilizando o nome de usuário anonymous e como senha o e-mail do autor. Alguns servidores FTP permitem o login anônimo, utilizando-se a conta anonymous, como foi o caso. Após a conexão, é exibido o conteúdo do diretório default de login utilizando o comando ls. O comendo cd pub acessa o subdiretório pub, e ls lista o seu conteúdo. O comando close encerra a conexão. C:\> ftp ftp.puc-rio.br Connected to sedna.rdc.puc-rio.br. 220 ProFTPD 1.3.1 Server (FTP PUC-Rio) [139.82.34.42] User (sedna.rdc.puc-rio.br:(none)): anonymous
331 Anonymous login ok, send your complete email address as your password Password: [email protected] 230 Anonymous access granted, restrictions apply ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list vestibular2007 pub 226 Transfer complete ftp: 21 bytes received in 0,00Seconds 21000,00Kbytes/sec. ftp> cd pub 250 CWD command successful ftp> ls 200 PORT command successful 150 Opening ASCII mode data connection for file list lattes vestibular2007 puc windows 226 Transfer complete ftp: 38 bytes received in 0,00Seconds 38000,00Kbytes/sec. ftp> quit C:\>
O protocolo FTP não oferece nenhuma confidencialidade no envio das informações, inclusive a senha, que é enviada em claro. A versão segura do protocolo FTP é conhecida como SFTP (Secure FTP). O SFTP utiliza o protocolo SSH (Secure SHell) para garantir o sigilo nas transferências de arquivos e responde na porta TCP 22. O protocolo TFTP (Trivial File Transfer Protocol), definido na RFC-1350, também permite a transferência de arquivos, porém de forma mais simples. O TFTP utiliza o protocolo UDP no transporte, o que obriga o TFTP a implementar seus próprios mecanismos de controle de erro. O TFTP também utiliza o modelo cliente-servidor, sendo necessários um cliente e um servidor TFTP. O servidor TFTP utiliza apenas a porta TCP 69 para dados e controle. O TFTP é muito utilizado para realizar o backup de arquivos de configuração de equipamentos de rede como switches, roteadores e firewalls.
8.6 Correio Eletrônico
O serviço de correio eletrônico ou e-mail (electronic mail) é um dos mais antigos e importantes serviços da Internet. O e-mail permite a comunicação rápida e de baixo custo, independentemente da localização geográfica. Um e-mail é muito semelhante a uma carta convencional, formado por informações do destinatário, informações do remetente, algumas informações opcionais e a mensagem propriamente dita. Um endereço de e-mail é formado por três elementos: um nome, o símbolo @ e o domínio ao qual pertence o nome. Por exemplo, no e-mail [email protected], lpmaia identifica o nome do usuário Luiz Paulo Maia no domínio training.com.br. O serviço de correio de eletrônico funciona com base em dois tipos de agentes: o agente de usuário e o agente de transferência (Fig. 8.12). O agente de usuário tem como função permitir ao usuário criar, editar, enviar e receber mensagens. O Mozilla Thunderbird, o Eudora da Qualcomm e o Microsoft Outlook são exemplos de produtos que funcionam como agentes de usuário. O agente de transferência tem como função receber uma mensagem de um agente de usuário e encaminhá-la para o seu destino. Os servidores de mail, como Sendmail, Lotus Notes e Microsoft Exchange, são exemplos de agentes de transferência.
F IGURA 8.12
Agentes de usuário e de transferência.
O serviço de e-mail utiliza diversos protocolos, e o mais importante é o protocolo SMTP (Simple Mail Transfer Protocol), definido na RFC-2821. O SMTP utiliza o protocolo TCP como transporte e recebe conexões na porta reservada 25. O protocolo SMTP é baseado em comandos no formato texto, e a seguir é apresentada uma sequência de comandos para exemplificar o seu funcionamento. O comando HELO inicia a conexão com o servidor SMTP da Training. O comando MAIL FROM indica quem está enviando a mensagem, enquanto o comando RCPT TO define quem
receberá a mensagem. O comando DATA permite editar a mensagem propriamente dita, no caso, Ola LPMAIA. O ponto após a mensagem indica o término da mensagem. O comando QUIT encerra a conexão com o servidor. A RFC 1425 define extensões para o protocolo SMTP, e, nesse caso, o comando para iniciar a conexão é EHLO (Extended Hello). Se uma mensagem de erro for retornada, indica que o servidor de correio destino não suporta as extensões e poderá apenas aceitar um HELO. HELO www.training.com.br 250 serv.hostbrazil.com.br Hello www.training.com.br [189.122.15.246] MAIL FROM: 250 OK RCPT TO: 250 Accepted DATA 354 Enter message, ending with “.” on a line by itself Ola LPMAIA . 250 OK id=1L1iqm-0002sD-7f QUIT 221 serv.hostbrazil.com.br closing connection
Para exemplificar os protocolos utilizados no serviço de correio, vejamos o exemplo do usuário Luiz ([email protected]) que envia uma mensagem para o usuário Pedro ([email protected]). Inicialmente, o usuário Luiz utiliza o seu agente para criar uma mensagem e enviá-la para o servidor de mail do Dominio1. A mensagem depois de transferida para o servidor é colocada em uma fila, onde aguardará para ser enviada. Geralmente, o protocolo SMTP é utilizado para conectar o agente de usuário ao agente de transferência (Fig. 8.13a).
F IGURA 8.13
Envio de uma mensagem.
Em algum momento, o servidor de mail do usuário Luiz irá selecionar a sua mensagem e abrir uma conexão com o servidor de mail do Domínio2,
utilizando o protocolo SMTP. Estabelecida a conexão, a mensagem é enviada; caso contrário a mensagem não será enviada e permanecerá aguardando uma próxima oportunidade. A mensagem recebida pelo servidor de mail do Domínio2 é armazenada na caixa postal do usuário Pedro. A caixa postal é uma área em disco no servidor de mail na qual as mensagens dos usuários são armazenadas para serem lidas posteriormente (Fig. 8.13b). O usuário Pedro, utilizando seu agente, poderá acessar sua caixa postal no servidor de mail e ler a mensagem. Existem dois protocolos utilizados para a conexão entre o agente do usuário Pedro e seu servidor de mail: POP3 ou IMAP (Fig. 8.13c). O protocolo POP3 (Post Office Protocol versão 3), definido na RFC-1939, permite que um usuário tenha acesso ao seu servidor de e-mail, onde está a sua caixa postal, e transfira as mensagens do servidor para a máquina local. Geralmente, as mensagens são eliminadas do servidor depois de copiadas para a máquina local, porém é possível manter uma cópia das mensagens no servidor. O POP3 funciona no modelo cliente-servidor, utiliza como transporte o protocolo TCP e utiliza a porta reservada 110 para receber conexões. O protocolo IMAP (Interactive Mail Access Protocol), definido na RFC3501, permite que um cliente tenha acesso ao seu servidor de e-mail, onde está sua caixa postal, e apenas consulte suas mensagens no servidor, sem copiá-las para a máquina local. A grande vantagem do IMAP é permitir que o usuário possa organizar suas mensagens em pastas no servidor de mail. O IMAP funciona no modelo cliente-servidor, utiliza como transporte o protocolo TCP e utiliza a porta reservada 143 para receber conexões. Os usuários de Webmail utilizam o browser como agente para a leitura das mensagens e o protocolo HTTP para a transferência. O usuário acessa um servidor web, que por sua vez acessa a caixa postal do usuário no servidor de correio. O servidor web lê as mensagens no servidor de correio e gera as páginas web para serem exibidas no browser do usuário. No Webmail, as mensagens permanecem no servidor de mail, e o usuário é o responsável por eliminá-las. A grande vantagem do Webmail é a facilidade de acesso à caixa postal independentemente da máquina e do sistema operacional utilizado, oferecendo grande flexibilidade e mobilidade aos usuários. Originalmente, as mensagens de e-mail podiam conter apenas texto utilizando caracteres ASCII, como definido na RFC-2822. Posteriormente, as opções de conteúdo foram estendidas, permitindo suporte a outros alfabetos, mídias, como imagens, som e vídeo, e programas executáveis.
O padrão MIME (Multipurpose Internet Mail Extensions), definido na RFC2045 a RFC-2049, especifica as extensões disponíveis. Além disso, o protocolo MIME permite que uma única mensagem contenha diferentes tipos de arquivos.
8.7 Terminal Remoto O serviço de terminal remoto ou login remoto permite que um usuário tenha acesso interativo a um dispositivo utilizando a rede. Geralmente, o acesso local a um dispositivo é realizado utilizando-se um console que está fisicamente ligado ao equipamento. Com a dispersão geográfica das redes, o acesso a console dos equipamentos tornou-se um problema. Com o terminal remoto, o usuário pode conectar-se a qualquer host da rede e executar comandos como se estivesse fisicamente conectado ao equipamento. Por exemplo, um administrador de rede no Rio de Janeiro pode conectar-se remotamente a um roteador em Manaus, como se estivesse conectado localmente ao equipamento. No modelo Internet, o protocolo Telnet implementa o serviço de terminal remoto, e é definido nas RFC-854 e RFC-855. O Telnet utiliza como transporte o protocolo TCP e recebe conexões na porta reservada 23. Outro protocolo muito utilizado para acesso remoto a servidores Unix é o rlogin (remote login), definido na RFC-1258. O rlogin utiliza como transporte o protocolo TCP e recebe conexões na porta reservada 513. O protocolo Telnet é baseado no modelo cliente-servidor e está disponível na grande maioria dos sistemas operacionais e equipamentos de rede (Fig. 8.14). No cliente Telnet, o usuário especifica o nome ou endereço IP do dispositivo remoto que deseja conectar. O servidor Telnet recebe o pedido de conexão, e, geralmente, o equipamento solicita ao usuário uma conta de login (username) e senha (password) para realizar o acesso. O login é o processo de autenticação para permitir que apenas usuários autorizados tenham acesso ao equipamento.
F IGURA 8.14
Terminal remoto.
A grande vantagem do protocolo Telnet é permitir o acesso remoto a qualquer dispositivo que suporte o protocolo, independentemente do tipo ou do fabricante. Não importa se o dispositivo for um servidor Unix ou MS Windows, um roteador, switch, hub, estação de trabalho ou impressora. Basta o dispositivo suportar um servidor Telnet para permitir o acesso remoto. No exemplo a seguir, o usuário realizou um telnet, a partir de estação MS Windows, para um switch da Cisco, que solicitou apenas a senha. Depois de autenticado, o switch apresentou o prompt de comandos SWCORE>. C:\> telnet 10.3.1.1 User Access Verification Password: SWCORE>
Um dos grandes problemas para a implementação do serviço de terminal remoto é compatibilizar as características de hardware, software e representação dos dados nas estações cliente e servidor. Por exemplo, a sequência de teclas [Ctrl]-[C] pode ter um significado na máquina local e outro na máquina remota. O protocolo Telnet define um padrão para compatibilizar diferentes sistemas, conhecido como terminal de rede virtual ou NVT (Network Virtual Terminal), e funciona da seguinte maneira. Antes de enviar a mensagem, o cliente Telnet traduz os dados do formato da máquina cliente para o formato NVT, e, no destino, o servidor Telnet realiza o processo inverso, convertendo do formato NVT para o formato da máquina servidora. O mesmo esquema de representação implementado pelo Telnet, utilizando o NVT, também é implementado em outros protocolos, como no HTTP e SMTP. Dessa forma, é possível realizar um comando Telnet nas portas de servidores web e servidores de correio e executar comandos e receber os resultados. Por exemplo, o comando a seguir realiza um Telnet na porta 25 do servidor de correio da Training. O comando HELO inicia o processo de diálogo com o servidor, que responde na sequência. O mesmo poderia ser realizado em um servidor web, bastando especificar a porta 80 e enviar comandos HTTP. Utilizado dessa forma, o Telnet pode ser uma ferramenta de diagnóstico de rede, permitindo identificar se determinado host responde em determinada porta. C:\> telnet mail.training.com.br 25
HELO mail.training.com.br 250 serv.hostbrazil.com.br Hello mail.training.com.br [189.122.15.246]
Apesar de ampla utilização, os protocolos Telnet e rlogin possuem sérios problemas de segurança. O problema mais crítico é permitir a captura de contas e senhas utilizadas na rede, pois os dados são transmitidos em claro, sem criptografia. Uma implementação segura do serviço de terminal remoto é oferecida pelo protocolo SSH (Secure SHell), definido na RFC-4251, entre outras. O protocolo SSH utiliza como transporte o protocolo TCP e responde na porta reservada 22. O utilitário putty é um bom exemplo de ferramenta, que pode ser obtida gratuitamente na Internet, para realizar acessos via terminal remoto seguro, pois oferece suporte ao SSH.
8.8 Gerenciamento de Redes Atualmente, as redes de computadores são a infraestrutura básica para os negócios das empresas. Problemas com a rede significam problemas com as aplicações e seus usuários, impactando diretamente os negócios da empresa. O serviço de gerenciamento de redes veio atender a uma necessidade de administrar grandes redes, com diversos tipos de dispositivos e conexões. Com a efetiva gerência da rede, é possível saber de problemas em tempo real e, até mesmo, antever potenciais problemas, permitindo o trabalho proativo do administrador e evitando a indisponibilidade da rede. No modelo Internet, o protocolo SNMP (Simple Network Management Protocol) implementa o serviço de gerenciamento de redes, sendo definido em diversas RFCs. O SNMP é parte de uma arquitetura maior, chamada de Internet Network Management Framework (NMF). A primeira versão do protocolo foi publicada em 1988 e é conhecida como SNMPv1. Apesar de amplamente utilizada, a primeira versão do protocolo possuía diversos problemas, principalmente com a parte que tratava da segurança. A segunda versão, conhecida como SNMPv2, foi publicada em 1993, mas não foi amplamente aceita por não haver consenso dentro do grupo de trabalho. A versão três, conhecida como SNMPv3, foi publicada em 1998 e amplamente utilizada pelo mercado. O SNMP utiliza como transporte o protocolo UDP e utiliza as portas 161 e 162. O protocolo SNMP permite o monitoramento e gerenciamento remoto de dispositivos em rede, como, por exemplo, roteadores, switches, hubs,
nobreaks, servidores e impressoras. A partir desse protocolo, é possível monitorar, descobrir problemas e gerenciar remotamente qualquer dispositivo que suporte o protocolo SNMP, tornando mais simples o trabalho de administração da rede. Por exemplo, um administrador de rede localizado na matriz do Rio de Janeiro deseja verificar o desempenho de um roteador na filial de Manaus. Com o serviço de gerência de redes, o administrador pode monitorar o volume de pacotes processados, a taxa de utilização do processador e a memória disponível do roteador. Além de verificar o desempenho do dispositivo, o administrador pode alterar o funcionamento do roteador, enviando comandos que alterem sua configuração. A Tabela 8.4 apresenta três dispositivos e algumas das informações obtidas através do protocolo SNMP. Tabela 8.4
Informações oferecidas pelo SNMP
Dispositivo
Informações
Roteador
Número de pacotes recebidos, enviados e descartados, estado das interfaces, taxa de utilização do processador e memória.
Servidor
Tempo que o servidor está ligado, taxa de utilização do processador e memória e versão do sistema operacional.
Impressora
Fabricante e modelo da impressora, número de páginas impressas número de arquivos impressos, estado e configuração.
O modelo proposto pelo protocolo SNMP define quatro componentes básicos: o agente SNMP, o sistema de gerenciamento de rede (NMS), o banco de dados (MIB) e o protocolo SNMP propriamente dito (Fig. 8.15). Para que um dispositivo possa ser gerenciado remotamente, é necessário que o dispositivo suporte o protocolo SNMP, ou seja, execute um processo específico para essa função, conhecido como agente SNMP. O agente tem a função de receber e processar comandos, além de armazenar localmente as informações relacionadas ao dispositivo em uma base de dados local, conhecida como MIB. Os agentes dos dispositivos se comunicam com um sistema de gerenciamento de rede ou NMS (Network Management System), que envia comandos para os agentes e recebe as respectivas respostas. Um sistema de gerenciamento de rede é, geralmente, executado em uma máquina dedicada para essa tarefa, que possui um software específico
para a gerência de rede, como HP OpenView, IBM Tivoli NetView, CA Spectrum ou Nagios. No exemplo da Fig. 8.15, o NMS está se comunicando com três agentes: um roteador, um switch e um servidor. As informações obtidas dos dispositivos são armazenadas em uma base de dados no servidor, juntamente com os eventos que ocorrem na rede. As informações armazenadas no NMS permitem ter um histórico do comportamento da rede. O NMS oferece, geralmente, uma interface gráfica para a visualização dos componentes da rede e o estado de cada componente, monitorar diferentes tipos de alertas e corrigir os problemas alarmados. Por exemplo, o NMS pode gerar um alerta sempre que um determinado link alcance 85% de utilização ou que a fonte de um equipamento esteja com alta temperatura. O protocolo SNMP faz a ligação entre o sistema de gerenciamento e os agentes SNMP, permitindo que o NMS se comunique com os dispositivos. O sistema de gerenciamento, periodicamente, verifica o estado dos dispositivos, realizando um polling nos elementos da rede. O sistema de gerenciamento pode realizar uma operação de leitura ou gravação nos dispositivos gerenciados. Na operação de leitura (get), o sistema envia uma solicitação de leitura para o agente, que consulta a sua base local e retorna uma resposta. Na operação de gravação (set), o sistema de gerenciamento envia uma solicitação de gravação para o agente, que processa o pedido, altera a base de dados local (MIB) e retorna uma resposta. A comunicação que parte do NMS para os agentes é estabelecida pela porta reservada UDP 161. É possível também que um agente notifique determinados eventos sem a solicitação do sistema de gerenciamento. Nesse caso, o agente realiza um trap e envia uma mensagem para o NMS. A comunicação que parte dos agentes para o sistema de gerenciamento é estabelecida pela porta reservada UDP 162.
F IGURA 8.15
Componentes do SNMP.
Os agentes SNMP mantêm uma base de dados local, onde são armazenadas as variáveis que descrevem o estado atual do dispositivo e informações históricas previamente armazenadas. A base de informações de gerenciamento ou MIB (Management Information Base) é formada por uma coleção de objetos, que descrevem o dispositivo em detalhes. A partir dos objetos da MIB, o sistema de gerenciamento de rede pode consultar e alterar o estado do dispositivo. Por exemplo, um switch de 48 portas terá objetos para o switch como um todo (modelo, temperatura, taxa de utilização do processador e memória) e objetos para cada uma das suas 48 portas (taxas de transmissão, recepção e erro). Para garantir que os objetos das MIBs sejam padronizados, é utilizada uma linguagem específica, conhecida como SMI (Structure of Management Information), uma adaptação do ASN.1 (Abstract Syntax Notation One) padronizado pelo ISO. A linguagem SMI permite definir os atributos dos objetos, como, por exemplo, seus tipos de dados que serão manipulados e armazenados (inteiro, string ou uma tabela), o tipo de acesso permitido ao objeto (leitura ou gravação) e, principalmente, o esquema hierárquico de nomeação para garantir a unicidade dos nomes dos objetos. A seguir, um exemplo da definição de um objeto utilizando a
linguagem SMI, que informa o tempo que o sistema está em funcionamento sem interrupções (system up time). sysUpTime OBJECT-TYPE SYNTAX Time-Ticks ACCESS read-only STATUS mandatory DESCRIPTION “Time since the network management portion of the system was last re-initialised.” ::= {system 3}
Exercícios Questões de múltipla escolha 1 Qual destes protocolos não é confiável? A. Telnet B. FTP C. TFTP D. SMTP E. HTTP 2 Qual o protocolo que é responsável pela tradução de nomes no modelo Internet? A. DNS B. SMTP C. NFS D. HTTP E. SNMP 3 Qual o comando que permite verificar informações sobre o esquema de resolução de nomes em estações MS Windows? A. ipconfig B. netstat C. ping -t D. nslookup E. tracert 4 Qual o protocolo responsável pela gerência remota de hosts? A. DNS B. SMTP C. Telnet D. FTP E. HTTP 5 Qual o principal protocolo responsável pelo correio eletrônico? A. Telnet B. DNS
C. HTTP D. SMTP E. FTP 6 Qual o protocolo responsável pelo serviço web? A. SMTP B. DNS C. Telnet D. FTP E. HTTP 7 Qual o protocolo responsável pelo serviço de transferência de arquivos? A. SMTP B. HTTP C. Telnet D. DNS E. FTP 8 Qual o comando que permite visualizar os endereços do(s) servidor(es) DNS em uma estação MS Windows? A. netstat -n B. nslookup C. ipconfig D. ping -t E. ipconfig/all 9 Qual o protocolo que você utilizaria para fazer um acesso seguro a um servidor para gerenciá-lo remotamente? A. SSH B. SMTP C. HTTP D. Telnet E. HTTPS 10 Qual o protocolo que você utilizaria para gerenciar a rede como um todo? A. SSH B. SNMP C. Telnet D. HTTP E. HTTPS 11 [ENADE-REDE-Q33, 2008] Quando um usuário acessa páginas web na Internet, a partir de um navegador padrão, a resolução do nome das máquinas que hospedam as páginas de interesse é realizada tipicamente por meio de A. acesso a um arquivo na máquina do usuário (por exemplo, arquivo “hosts”) que contém uma lista dos nomes das máquinas da Internet e seus respectivos endereços IP. B. consulta a um proxy HTTP que retorna a página solicitada pelo usuário. C. consulta a um servidor DHCP que possui as informações, armazenadas em cache, dos nomes das máquinas da Internet e seus respectivos endereços IP.
D. consulta a um servidor DNS que, de forma recursiva e/ou iterativa, consulta outros servidores DNS da Internet até o nome de interesse ser resolvido. E. consulta a um servidor DNS raiz da Internet, que contém uma lista dos nomes das máquinas da Internet e seus respectivos endereços IP. 12 [ENADE-COMP-Q16, 2011] Um navegador web executa em um hospedeiro A, em uma rede de uma organização, e acessa uma página localizada de um servidor web em um hospedeiro B, situado em outra rede na Internet. A rede em que A se situa conta com um servidor DNS local. Um profissional deseja fazer uma lista com a sequência de protocolos empregados e comparar com o resultado apresentado por uma ferramenta de monitoramento executada no hospedeiro A. A lista assume que I. todas as tabelas com informações temporárias e caches estão vazias; II. o hospedeiro cliente está configurado com o endereço IP do servidor DNS local. Qual das sequências a seguir representa a ordem em que mensagens, segmentos e pacotes serão observados em um meio físico ao serem enviados pelo hospedeiro A? A. ARP, DNS/UDP/IP, TCP/IP e HTTP/TCP/IP. B. ARP, DNS/UDP/IP, HTTP/TCP/IP e TCP/IP. C. DNS/UDP/IP, ARP, HTTP/TCP/IP e TCP/IP. D. DNS/UDP/IP, ARP, TCP/IP e HTTP/TCP/IP. E. HTTP/TCP/IP, TCP/IP, DNS/UDP/IP e ARP. 13 [ENADE-REDE-Q35, 2008] Uma arquitetura de rede é usualmente organizada em um conjunto de camadas e protocolos com o propósito de estruturar o hardware e o software de comunicação. Como exemplos, tem-se as arquiteturas OSI e TCP/IP. A arquitetura TCP/IP, adotada na Internet, é um exemplo concreto de tecnologia de interconexão de redes e sistemas heterogêneos usada em escala global. Com relação à arquitetura TCP/IP, assinale a opção correta. A. A camada de interface de rede, também denominada intrarrede, adota o conceito de portas para identificar os dispositivos da rede física. Cada porta é associada à interface de rede do dispositivo, e os quadros enviados transportam o número das portas para identificar os dispositivos de origem e de destino. B. A camada de rede, também denominada inter-rede, adota endereços IP para identificar as redes e seus dispositivos. Para interconectar redes físicas que adotam diferentes tamanhos máximos de quadros, a camada de rede adota os conceitos de fragmentação e remontagem de datagramas. C. A camada de transporte é responsável pelo processo de roteamento de datagramas. Nesse processo, a camada de transporte deve selecionar os caminhos ou rotas que os datagramas devem seguir entre os dispositivos de origem e de destino, passando assim através das várias redes interconectadas. D. A camada de aplicação é composta por um conjunto de protocolos que são implementados pelos processos executados nos dispositivos. Cada protocolo de aplicação deve especificar a interface gráfica ou textual oferecida pelo respectivo processo para permitir a interação com os usuários da aplicação. E. A arquitetura TCP/IP é uma implementação concreta da arquitetura conceitual OSI. Portanto, a arquitetura TCP/IP é também estruturada em 7 camadas, que são as camadas: física, de enlace, de rede, de transporte, de sessão, de apresentação e de aplicação. 14 [ENADE-REDE-Q30, 2011] O SNMP (Simple Network Management Protocol) é o protocolo padrão de gerenciamento de redes TCP/IP. O SNMP A. define, como estratégia de segurança, que todas as variáveis MIB (Management Information Base) precisam ser definidas e referenciadas usando a Abstract Syntax Notation 1 (ASN.1) da ISO. Isso significa que a notação utilizada permite que nomes sejam repetidos e não possam ser lidos sem a utilização de um sistema de criptografia complexo.
B. especifica que as operações mais complexas sejam executadas em etapas, cada qual marcada por uma mensagem de retorno sobre o status da operação. Em caso de erro, permite que as operações não realizadas sejam reenviadas em uma próxima mensagem. C. possui campos fixos e de tamanho único para suas mensagens, assim como a maioria dos protocolos TCP/IP. D. foi projetado inicialmente para controlar as redes, de forma que as capacidades de segurança e administração estiveram presentes desde a primeira versão. E. distribui todas as suas operações em um modelo de buscar (get), armazenar (set) e notificar (trap), em vez de definir um grande conjunto de comandos. As demais operações do SNMP são definidas como resultados das duas primeiras operações. 15 [ENADE-REDE-Q35, 2011] Os protocolos da camada de aplicação que utilizam, na camada de transporte o protocolo TCP para o estabelecimento de conexões fazem uso de portas específicas por padrão. Além disso, o funcionamento desses protocolos pode variar no estabelecimento e na manutenção dessas conexões, bem como na troca de dados entre cliente e servidor. Considerando o funcionamento desses protocolos, analise as afirmações que se seguem. I. O protocolo HTTP utiliza, por padrão, para conexão do cliente ao servidor, a porta 80/TCP. O estabelecimento de conexões HTTP tem início com a solicitação, por parte do cliente (browser), ao servidor web. Após o estabelecimento da conexão, o socket permanece ativo até que o cliente finalize a conexão enviando um segmento TCP ao servidorcom a flag FIN ativada. II. O protocolo FTP utiliza, por padrão, para conexão do cliente ao servidor, a porta 21/TCP. Após o estabelecimento de conexões FTP, além da porta 21/TCP, utilizada para o controle da conexão, as portas TCP utilizadas para a troca de dados entre cliente e servidor podem variar de acordo com o modo configurado no servidor (ativo ou passivo). III. O protocolo SMTP utiliza, por padrão, para conexão do cliente ao servidor, a porta 25/TCP. O uso desse protocolo é parte do serviço de correio eletrônico, uma vez que é responsável pelo envio de e-mails. Para o acesso às caixas de mensagens e recebimento desses e-mails, utilizam-se os protocolos POP ou SSH, que usam, por padrão, respectivamente, as portas 110/TCP e 22/TCP. IV. O protocolo DNS utiliza, por padrão, para conexão do cliente ao servidor, a porta 53/TCP. Através dessa porta, o cliente, após estabelecida a conexão, pode fazer consultas a hosts definidos nos mapas de zona do servidor autoritativo. A consulta a nomes atribuídos aos hosts tem como respostas os endereços IP a eles atribuídos, enquanto a consulta aos endereços IP (quando configurado o DNS reverso) resulta nos respectivos nomes. É correto apenas o que se afirma em A. I. B. II. C. I e III. D. II e IV. E. III e IV.
Questões discursivas 1 Uma máquina em uma rede Ethernet faz um acesso a um servidor na Internet utilizando a sua URL. Quais os endereços referenciados em cada camada? 2 Quais os problemas em se utilizar o mapeamento estático de endereços na camada de aplicação? 3 [ENADE-REDE-QD3, 2011] Uma empresa de desenvolvimento de soluções web precisa atender a algumas demandas em sua rede de computadores: • Construir um servidor web e colocar esse servidor no ar em um serviço de hospedagem. • Configurar a rede local para receber a configuração de conectividade do protocolo TCP/IP automaticamente.
• Acessar remotamente um servidor UNIX/Linux em uma filial para ter acesso à sua interface de linha de comando. • Configurar um serviço de tradução de nomes na Internet. • Configurar todos os serviços de envio e recebimento de e-mails. Determine todos os serviços, protocolos e portas de comunicação que devem ser usados para atender às demandas solicitadas.
Referências Bibliográficas Todas as RFCs (Request for Comments) referenciadas no texto podem ser consultadas gratuitamente no site do Internet Engineering Task Force no endereço http://www.ietf.org/rfc.html. Basta digitar o número da RFC e o documento será exibido. 10GEA. 10 Gigabit Ethernet Technology Overview White Paper. 10 Gigabit Ethernet Alliance. Sept. 2001. ABRAMSON, N. Development of the ALOHANET. IEEE Transactions on Information Theory. v. 31, n. 2, Mar. 1985. AGÊNCIA NACIONAL DE TELECOMUNICAÇÕES (ANATEL). Quadro de Atribuição de Faixas de Frequências no Brasil. ANATEL, 2004. ALBITZ, P.; LIU, C. DNS and BIND in a Nutshell. 4. ed. O’Reilly, 2001. BALLARDIE, T.; FRANCIS, P.; CROWCROFT, J. Core Based Trees (CBT): An Architecture for Scalable Multicast Routing. In: Proceedings of the ACM SIGCOMM. p. 85-95, Sept. 1993. BERNERS-LEE, T. et al. World-Wide Web: The Information Universe. Electronic Networking: Research Applications and Policy. v. 2, n. 1, 1992. BHAGWAT, P. Bluetooth: Technology for Short-Range Wireless Apps. IEEE Internet Computing. May 2001. BHARGHAVAN, V. et al. MACAW: A Media Access Protocol for Wireless LAN’s. In: Proceedings of the ACM SIGCOMM. p. 212225, Aug. 1994. BHATTI, S.; CROWCROFT, J. QoS Sensitive Flows: Issues in IP Packet Handling. IEEE Internet Computing. July 2000. BLACK, U. Data Links Protocols. Prentice-Hall, 1993.
BORLAND. Borland C++ Compiler version 5.5 Free Download. Consultado em 2008 e disponível em: http://dn.codegear.com/article/20633. BRISA. Arquitetura de Redes de Computadores OSI e TCP/IP. Makron Books, 1994. CARVALHO, M. S. R. M. A Trajetória da Internet no Brasil: do surgimento das redes de computadores à instituição dos mecanismos de governança. 2006. Dissertação de M.Sc. COPPE/UFRJ, Rio de Janeiro. CHESHIRE, S. Consistent Overhead Byte Stuffing. Ph.D. dissertation, Stanford University, California, 1998. CISCO. 802.11n: The Next Generation of Wireless Performance. Cisco Systems, 2008. CLARK, D. D. The Design Philosophy of the DARPA Internet Protocols. In: Proceedings of the ACM SIGCOMM. v. 18, n. 4, p. 106–114, Aug. 1988. __________. et al. Addressing Reality: An Architecture Response to Real-World Demands on the Evolving Internet. ACM SIGCOMM Workshops. Aug. 2003. __________; TENNENHOUSE, D. L. Architecture Considerations for a New Generation of Protocols. In: Proceedings of the ACM SIGCOMM. p. 200-208, Sept. 1990. COMER, D. E. Internetworking with TCP/IP. 4. ed. v. 1, PrenticeHall, 2000. __________; STEVENS, D. L. Internetworking with TCP/IP Vol. III Client-Server Programming and Applications-Windows Sockets Version. 2. ed. Prentice-Hall, 1997. CROW, B. P. et al. IEEE 802.11 Wireless Local Area Networks. IEEE Communications Magazine. Sept. 1997. CROWCROFT, J. et al. Layered Considered Harmful. IEEE Network. v. 6, n. 1, Jan. 1992. DALAL, Y. K.; METCALFE, R. M. Reverse Path Forwarding of Broadcast Packets. Communication of ACM. v. 12, n. 12, p. 10401048, Dec. 1978. DAVIE, B.; REKHTER, Y. MPLS: Technology and Applications. Morgan Kaufmann, 2000.
DEERING, S. E.; CHERITON, D. R. Multicast Routing in Datagram Internetworks and Extended LANs. ACM Transactions on Computer Systems. v. 8, n. 2, May 1990. __________. et al. The PIM Architecture for Wide-Area Multicast Routing. IEEE/ACM Transactions on Networking. v. 4, n. 2, p. 153162, Apr. 1996. DIJKSTRA, E. W. A Note on Two Problems in Connection with Graphs. Numerische Mathematic. v. 1, p. 269-271, 1959. DOYLE, J. Routing TCP/IP, Volume I. Cisco Press, 1998. __________; CARROLL, J. D. Routing TCP/IP, Volume II. Cisco Press, 2001. DUATO, J.; YALAMANCHILI, S.; NI, L. Interconnection Networks: An Engineering Approach. Morgan Kaufmann, 2003. DURHAM, D.; YAVATKAR, R. Inside the Internet’s Resource Reservation Protocol: Foundations for Quality of Service. John Wiley, 1999. EKLUND, C. et al. IEEE Standard 802.16: A Technical Overview of the WirelessMAN Air Interface for Broadband Wireless Access. IEEE Communications Magazine. June 2002. EL-GENDY, M.; BOSE, A.; SHIN, K. G. Evolution of the Internet QoS and Support for Real-Time Applications. Proceeding of the IEEE. v. 91, n. 7, July 2003. FERGUSON, P.; HUSTON, G. Quality of Service: Delivering QoS on the Internet and in Corporate Networks. John Wiley, 1998. FLOYD, S.; JACOBSON, V. Random Early Detection Gateways for Congestion Avoidance. IEEE/ACM Transactions on Networking. v. 1, n. 4, p. 397-413, Aug. 1993. __________. TCP and Explicit Congestion Notification. ACM Computer Communication Review. v. 24, n. 5, p. 10-23, Oct. 1994. FRAZIER, H.; JOHNSON, H. Gigabit Ethernet: from 100 to 1000 Mbps. IEEE Internet Computing. Jan. 1999. GAST, M. S. 802.11 Wireless Networks: The Definitive Guide. O’Reilly, 2002. GEVROS, P. et al. Congestion Control Mechanisms and the Best Effort Service Model. IEEE Network. v. 15, n. 3, p. 16-25, May 2001.
GUÉRIN, R.; PERIS, V. Quality-of-Service in Packet Networks: Basic Mechanisms and Directions. Computer Networks. p. 169-189, Feb. 1999. GUMMALLA, A. C. V.; LIMB, J. O. Wireless Medium Access Control Protocols. IEEE Communications Surveys. Apr. 2000. HAARTSEN, J. C. The Bluetooth Radio System. IEEE Personal Communications. Feb. 2000. HECHT, J. Entendendo Fibras Óticas. Berkeley, 1993. HELD, G. Deploying Optical Networking Components. McGraw-Hill, 2001. HOLZMANN, G. Design and Validation of Computer Protocols. Prentice-Hall, 1991. HU, Y.; LI, V. O. K. Satellite-Based Internet: A Tutorial. IEEE Communications Magazine. Mar. 2001. HUITEMA, C. Routing in the Internet. 2. ed. Prentice-Hall, 2000. INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS (IEEE). Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. ANSI/IEEE Std 802.11. 1999. INTERNET SYSTEMS CONSORTIUM (ISC). Internet Host Count History. Disponível na Internet via https://www.isc.org/solutions/survey/history. Consultado em 2008. JACOBSON, V. Congestion Avoidance and Control. In: Proceedings of the ACM SIGCOMM. p. 314-329, Aug. 1988. JAIN, R. Congestion Control in Computer Networks: Issues and Trends. IEEE Network Magazine. p. 24-30, May 1990. __________. Myths About Congestion Management in High-Speed Networks. Internetworking: Research and Experience. v. 3, p. 101113, 1992. JAREMA, D. R.; SUSSENGUTH, E. H. IBM Data Communications: A Quarter Century of Evolution and Progress. IBM Journal of Research and Development. v. 25, n. 5, p. 391-404, Sept. 1981. JOEL, A. Telecommunications and the IEEE Communications Society. IEEE Communications Magazine. May 2002. KARN, P. MACA – A New Channel Access Method for Packet Radio. ARRL/CRRL Amateur Radio 9th Computer Networking Conference. Sept. 1990.
KENT, C. A.; MOGUL, J. C. Fragmentation Considered Harmful. Digital Equipment Corporation. Dec. 1987. KLEINROCK, L.; TOBAGI, F. A. Packet Switching in Radio Channels: Part I – Carrier Sense Multiple-Access Modes and Their Throughput-Delay Characteristics. IEEE Transactions on Communications. v. COM-23, n. 12, p. 1400-1416, Dec. 1975. KOHNO, R.; MEIDAN, R.; MILSTEIN, L. B. Spread Spectrum Access Methods for Wireless Communications. IEEE Communications Magazine. Jan. 1995. KOZIEROK, C. M. The TCP/IP Guide. 3. ed. No Starch Press, 2005. KUROSE, J. F.; ROSS, K. M. Computer Networking: A Top-Down Approach Featuring the Internet. 2. ed. Addison-Wesley, 2002. LATHI, B. P. Modern Digital and Analog Communications Systems. 3. ed. Oxford University Press, 1998. LEINER, B. et al. The DARPA Internet Protocol Suite. IEEE Communications Magazine. v. 23, n. 3, Mar. 1985. __________. et al. The Past and Future History of the Internet. Communications of the ACM. v. 40, n. 2, Feb. 1997. __________. et al. Brief History of the Internet. Internet Society. Aug. 2000. LEVY, H.; SIDI, M. Polling Systems: Applications, Modeling, and Optimization. IEEE Transactions on Communications. v. 38, n. 10, p. 1750-1760, Oct. 1990. MACHADO, F. B.; MAIA, L. P. Arquitetura de Sistemas Operacionais. 5. ed. LTC, 2013. MAIA, L. P. Segurança do Browser. Disponível na Internet via http://www.training.com.br/lpmaia/pub_seg_browser.htm. Consultado em 2008. MCDYSAN, D. QoS & Traffic Management in IP & ATM Networks. McGraw-Hill, 2000. METCALFE, R. M.; BOGGS, D. R. Ethernet: Distributed Packet Switching for Local Computer Networks. Communications of the ACM. v. 19, n. 7, July 1976. MINISTÉRIO DA EDUCAÇÃO (MEC). Portaria MEC/INEP no 197. Disponível na Internet via http://download.inep.gov.br/educacao_superior/enade/legislacao/2
011/diretrizes/diretrizes_tec_redes_de_computadores_n_197.pdf. Consultado em 2012. MONTEIRO, M. Introdução à Organização de Computadores. 4. ed. LTC, 2001. MOURA, J. A. B. et al. Redes Locais de Computadores: Protocolos de Alto Nível e Avaliação de Desempenho. McGraw-Hill, 1986. NICHOLS, S. J. V. Will 10-Gigabit Ethernet Have a Bright Future? Computer. v. 35, n. 6, p. 22-24, June 2002. __________. Achieving Wireless Broadband with WiMax. Computer. v. 37, n. 6, p. 10-13, June 2004. NORTEL. Introduction to Quality of Service. Nortel Networks. 2003. OLEXA, R. Implementing 802.11, 802.16, and 802.20 Wireless Networks: Planning, Troubleshooting and Operations. Elsevier, 2004. ORFANI, R.; HARKEY, D.; EDWARDS, J. Client/Server Survival Guide. 3. ed. John Wiley, 1999. PERLMAN, R. Interconnections: Bridges, Routers, Switches, and Internetworking Protocols. 2. ed. Addison-Wesley, 1999. PFISTER, G. F. In Search of Clusters. Prentice-Hall, 1998. PHIFER, L. The Trouble with NAT. The Internet Protocol Journal. v. 3, n. 4, Dec. 2000. PICKHOLTZ, R. L.; SCHILLING, D. L.; MILSTEIN, L. B. Theory of Spread-Spectrum Communication – A Tutorial. IEEE Transactions on Communications. v. COM-30, n. 5, May 1982. PRESS, W. H. et al. Numerical Recipes in C: The Art of Scientific Computing. 2. ed. Cambridge University Press, 1992. RAMAKRISHNAN, K. K.; JAIN, R. A Binary Feedback Scheme for Congestion Avoidance in Computers Networks. ACM Transactions on Computer Systems. v. 8, n. 2, p. 158-181, 1990. RAMALHO, M. Intra- and Inter-Domain Multicast Routing Protocols: A Survey and Taxonomy. IEEE Communications Surveys & Tutorials. v. 3, n. 1, 2000. ROBERTS, L. G. ALOHA Packet System with and without Slots and Capture. Computer Communication Review. v. 5, n. 2, Apr. 1975. RODRIGUEZ, A. et al. TCP/IP Tutorial and Technical Overview. 7. ed. IBM Redbooks, 2001.
ROM, R.; SIDI, M. Multiple Access Protocols: Performance and Analysis. Springer-Verlag, 1990. ROSHAN, P.; LEARY, J. 802.11 Wireless LAN Fundamentals. Cisco Press, 2003. RYU, S.; RUMP, C.; QIAO, C. Advances in Internet Congestion Control. IEEE Communications Surveys & Tutorials. v. 5, n. 1, 2003. SAHASRABUDDHE, L. H.; MUKHERJEE, B. Multicasting Routing Algorithms and Protocols: A Tutorial. IEEE Network. Jan. 2000. SALTZER, J. H.; REED, D. P.; CLARK, D. D. End-to-End Arguments in System Design. ACM Transactions in Computer Systems. v. 2, p. 277-288, Nov. 1984. SEIFERT, R. The Switch Book: The Complete Guide to LAN Switching Technology. John Wiley, 2000. SEMERIA, C.; MAUFER, T. Introduction to IP Multicast Routing. Internet Draft. May 1996. SHANKAR, P. M. Introduction to Wireless Systems. John Wiley, 2002. SKLAR, B. Digital Communications: Fundamentals and Applications. 2. ed. Prentice-Hall, 2001. SOARES, L. F. G.; LEMOS, G.; COLCHER, S. Redes de Computadores: das LANs, MANs e WANs às Redes ATM. Campus, 1995. SPURGEON, C. E. Ethernet: The Definitive Guide. O’Reilly, 2000. STALLINGS, W. Data and Computer Communications. 6. ed. Prentice-Hall, 1999. __________. Wireless Communications & Networks. Prentice-Hall, 2001. __________. Cryptography and Network Security: Principles and Practice. 5. ed. Prentice-Hall, 2011. STEVENS, W. R. TCP/IP Illustrated: The Protocols. vol. 1, AddisonWesley, 1993. __________; FENNER, B.; RUDOFF, A. M. Unix Network Programming, Vol. 1: The Sockets Networking API. 3. ed. AddisonWesley, 2003. STEWART III, J. W. BGP4: Inter-domain Routing in the Internet. Addison-Wesley, 1998.
TAKAHASHI, T. Sociedade da Informação no Brasil – Livro Verde. Ministério da Ciência e Tecnologia, 2000. TANENBAUM, A. S. Computer Networks. 2. ed. Prentice-Hall, 1989. __________. Computer Networks. 3. ed. Prentice-Hall, 1996. __________. Computer Networks. 4. ed. Prentice-Hall, 2000. TENNENHOUSE. D. L. Layered Multiplexing Considered Harmful. Protocols for High-Speed Networks. 1989. __________. et al. A Survey of Active Network Research. IEEE Communication Magazine. v. 35, n. 1, p. 80-86, Jan. 1997. TOBAGI, F. A.; KLEINROCK, L. Packet Switching in Radio Channels: Part II – The Hidden Terminal Problem in Carrier Sense Multiple-Access and the Busy-Tone Solution. IEEE Transactions on Communications. v. COM-23, n. 12, p. 1417-1433, Dec. 1975. VITERBI, A. J. Spread Spectrum Communications: Myths and Realities. IEEE Communications Magazine. v. 17, n. 3, May 1979. WANG, Z. Internet QoS: Architectures and Mechanisms for Quality of Service. Morgan Kaufmann, 2001. XIAO, X.; NI, L. M. Internet QoS: A Big Picture. IEEE Network. Mar. 1999. YANG, C.-Q.; REDDY, A. V. S. A Taxonomy for Congestion Control Algorithms in Packet Switching Networks. IEEE Network. Jul. 1995. ZHANG, L. et al. RSVP: A New Resource Reservation Protocol. IEEE Network Magazine. v. 7, n. 5, Sept. 1993. ZIMMERMANN, H. OSI Reference Model – The ISO Model of Architecture for Open Systems Interconnection. IEEE Transactions on Communications. v. 28, n. 4, Apr. 1980.
Índice A Access Control List (ACL), 159 Acesso múltiplo por divisão de código, 106, 107 de frequência, 105, 106 de tempo, 106 Acordo de nível de serviço, 198 SLA, 198 Active Queue Management (AQM), 195 Address Resolution Protocol (ARP), 167, 168 Advanced Research Projects Agency (ARPA), 17 Agente de transferência, 252 de usuário, 252 Agregação de enlaces, 140 Algoritmo(s) baseado no estado de enlace, 175, 183 Belmann-Ford, 176 CBT, 189, 190 de prevenção, 193, 227 de recuperação, 193 de roteamento, 173-176, 185, 187 adaptativo, 174 características de, 173 centralizado, 175 classificação, 174 determinístico, 174 dinâmico, 174 distribuído, 175 estático, 174
externo, 174, 184, 185 global, 174 interno, 174, 184, 185 local, 174, 175 por vetor de distância, 176, 177
do balde
de token, 201 furado, 201
FQ, 200 para cálculo do tempo de backoff, 122 SPF, 182 Alocação antecipada, 194 dinâmica, 194 ALOHANET, 18 Amplificador(es), 48 Amplitude de um sinal, 46-50 Shift Keying (ASK), 63 Application Program Interface (API), 228 Áreas autônomas, 184 ARPANET, 18, 19 Arquitetura(s) de rede(s), 18, 34-39 locais, 104-151 que utilizam o modelo de camadas, 34 Arquivo hosts, 238-245 Árvore baseada em núcleo, 187-190 compartilhada, 190 de caminho de menor custo, 182, 183 de cobertura, 186-189 de menor custo, 187, 188
Assured Fowarding (AF), 202 Atenuação, 49, 50, 86, 114, 126 Atraso, 175, 176, 197, 198 Autenticação corporativa, 139, 140 pessoal, 139, 140 Autoconfiguração de endereços IPv6, 203-205
Autonegociação, 124 B Backoff algoritmo para cálculo do tempo de, 122 exponencial binário, 122 Balde de token, algoritmo, 201 furado, algoritmo, 201 Banda, 5 passante, 51 Base de dados após recebimento dos pacotes LSP, 182 de informações de gerenciamento, 256 Baud, 65, 80 Beacon, 135-138 Berkeley Internet Name Domain (BIND), 240 Socket Interface (BSI), 228, 229 Bit de paridade, 87, 88 Bluetooth, 132 Buffer(s) de recepção, 221, 222, 225, 226 de transmissão, 221, 222, 225, 226 Busca interativa, 245 recursiva, 243, 244 Byte(s) não transmitidos (BNT), 223, 224 que aguardam para serem transmitidos (BAT), 223, 224 transmitidos e não reconhecidos (BTNR), 223, 224 e reconhecidos (BTR), 223, 224
C Cabeçalho, 27, 82
IPv6, 203-205 Cabo(s) coaxial, 55, 56 UTP, 55 Cálculo do CRC, 88, 89 Camada de aplicação, 237-259 de enlace, 29, 82-103 de rede, 152-213 de transporte, 214-236 física, 44-81 do 10 Gigabit Ethernet, 125, 126 do Ethernet 10 Mbps, 122 do Fast Ethernet, 124 do Gigabit Ethernet, 124, 125 do IEEE 802.11, 134, 135
host-to-host, 37 Campo(s), 118-120 Canal de comunicação, 3 Capacidade de transmissão, 53 Carga de rede, 175 Carrier extension, 125 Sense Multiple Access (CSMA), 110 with Collision Avoidance (CSMA/CA), 112-114 Detection (CSMA/CD), 111, 112
Categorias de cabos UTP, 55 Chaveamento ASK, 63 FSK, 63 por deslocamento de amplitude, 63 de fase, 64 diferencial, 64 de frequência, 64
PSK, 64 Choke packet, 195 Circuito(s), 3, 11, 153 virtual(is), 30, 157
comutados, 157 permanentes, 157
Class-Based Queuing (CBQ), 200 Classe do endereço IP, 160 Classless Inter-Domain Routing (CIDR), 165 Cliente DHCP, 166 Telnet, 253 web, 246-248 Cluster, 13 Code Division Multiple Access (CDMA), 106 Codificação diferencial, 62 Manchester, 62 NRZ-I, 62 NZR-L, 62 Código do fluxo, 203 polinomial, 88 Colisão, 105 Comando(s) arp-a, 168 EHLO, 251-253 FTP, 249-251 ifconfig, 85 netstat, 220 nslookup, 243-245 Comitê Gestor da Internet no Brasil, 20 Common Gateway Interface (CGI), 246-248 Compartilhamento de informações, 1 de recursos de hardware e software, 2 Complementary Code Keying (CCK), 135 Comportamento de encaminhamento por nó, 202 Comprimento de onda, 48 Comunicação fim a fim, 31, 214, 215 entre duas aplicações, 221
horizontal, 27 vertical, 26 via satélite, 58, 59 Comutação, 11, 29, 75, 152-156 por circuito, 11, 153, 154 desvantagens, 154
por mensagens, 155 por pacotes, 12, 13, 17, 18, 29-31, 75, 155, 156 desvantagens, 156
Comutador(es), 11, 29, 75, 152 Concentrador, 73 Conexão ativa, 249-251 lógica, 219 passiva, 249-251 Confiabilidade de um meio de transmissão, 54 Congestionamento, controle de, 182, 226-228 abordagens para, 193, 194 Construção da árvore de caminho de menor custo, 182 Contagem para o infinito, 180 Controle de acesso ao meio, 75, 104, 105, 117 virtual (NAV), 136
de admissão, 194, 195, 198, 199 de congestionamento, 192-196, 226-228 na origem, 194 nos roteadores, 194
de erro, 86
fim a fim, 223, 224 no modelo Internet, 191
de fluxo, 29, 99-100 fim a fim, 225
do enlace lógico, 116-118 Convergência, 173 Conversão de protocolos, 33, 34 Conversor(es), 33 Cookie, 248, 249 Core Base Tree (CBT), 189
Correção de erro, 89-91 no destino, 91 Count to infinity, 180 Crescimento da ARPANET, 19 CSMA persistente, 120 Custo de rede, 5 de um caminho, 176 de um meio de transmissão, 54 D Dado(s), 44, 45 analógico, 44, 45 digital, 44, 45 Datagrama, 30 IP, 39, 157 não confiável, 156 UDP, 39, 217 Default Fowarding (DF), 202 Default gateway, 172 Delegação de autoridade, 241, 242 Delimitação por flags, 83 Demodulação, 63 Descarte de pacotes, 195 randômico, 195
de quadros, 91 seletivo, 194 Desempenho de rede, 5, 6 Desencapsulamento, 28 Desfragmentação, 190 Destino, 2 Detecção antecipada randômica, 195 de erro, 86-89 Digitalização, 59-61 Direct Sequence
CDMA (DS-CDMA), 107 Spread Spectrum (DSSS), 134 Disponibilidade, 175, 198 de rede, 7 Distributed Coordination Function (DCF), 135 Foundation Wireless Medium Access Control (DFWMAC), 135 Queue Dual Bus (DQDB), 8 Distribution System, 133 Domain Name System (DNS), 217 Domínio(s) de broadcast, 128 de colisão, 126 genéricos, 240 nível primeiro, 240 segundo, 240
pai e filho, 241 raiz, 240 TLD, 240 Download, 15 Drop tail, 195 Duplicação de quadros, 92-94 Dynamic Host Control Protocol (DHCP), 166 E Echo reply, 191 request, 191 Efeito do congestionamento, 192 E-mail, 14, 251 Emuladores de terminal, 15 Encaminhamento assegurado, 202, 203 Encapsulamento, 28 do ICMP, 191 no modelo internet, 36-39 Endereçamento, 238
anycast, 204 broadcast, 85, 86 classfull, 164 classless, 165 com classe, 165 da camada de rede, 158 dinâmico, 166, 240 desvantagens, 167
em níveis, 160 estático, 166 Ethernet, 119 hierárquico, 160 IPv6, 203-205 multicast, 85, 86, 169, 170 na camada de enlace, 85 de rede, 158, 218 de transporte, 218
nas várias camadas, 239 por difusão, 85, 86 por multidifusão, 85, 86 sem classe, 165 unicast, 85, 86 Endereço(s) da camada de enlace, 85 de e-mail, 251 do gateway padrão, 172 físico, 85, 119 hierárquicos, 163 Internet, 158 IP, 158 de destino, 159, 203 de origem, 159, 203
MAC, 85, 119 multicast, 170 Enfileiramento com base em classes, 200 justo, 200 com bit-round, 200
com pesos, 200
Enlace camada de funções da, 29, 82 endereçamento na camada de, 85, 86 lógico, controle do, 117 Enquadramento, 83-85 Entroncamento de VLANs, 145 Erro controle de, 86 fim a fim, 223, 224 no modelo internet, 191
correção de, 89-91 detecção, 86-89 Escalabilidade de rede, 6, 7 Escalonamento circular, 200 FQ, 200 por prioridades, 199, 200 Espaço(s) de endereçamento, 159-161 de nomes de domínio, 240, 241 entre quadros, 137 Espectro de frequência, 54 de rádio, 57, 58 Esquema CCK, 135 de endereçamento, 30, 238 DSSS, 134 FHSS, 134 HR-DSSS, 135 OFDM, 134 PPM, 134 Estilo das redes, 1 Estrutura de um quadro, 82 Estudo de redes de computadores, 24, 25 Ethernet, 118-131 10 Mbps, 122, 123 camada física, 122, 123
endereçamento, 119 Evolução da Internet, 20, 21 da(s) rede(s), 1 de computadores, 17-21
das telecomunicações, 17 dos sistemas computacionais, 17 Explicit Congestion Notification (ECN), 227 Extended Service Set (ESS), 133 Extensão de portadora, 125 Extensible markup language (XML), 247 Extensible style language (XSL), 247 Exterior Gateway Protocol (EGP), 184 F Fair queuing (FQ), 200 Fase de um sinal, 47 Fast Ethernet, 124 camada física, 124 Feedback binário, 196 Fiber Distributed Data Interface (FDDI), 8 Fibra monomodo, 57 multimodo (MM), 57 ótica, 56, 57, 62-64, 68 singlemode (SM), 57 File transfer protocol (FTP), 249 Flooding, 186 Fluxo, 197 controle de, 29, 99, 100, 225, 226 fim a fim, 225, 226
Formas de operação de uma interface de rede, 172 Forward Error Correction (FEC), 91 Fragmentação, 190, 191 Fragmento(s), 190, 191 Frame(s), 82 bursting, 125
Check Sequence (FCS), 88 Framing, 83 Frequência de um sinal, 46, 47 Frequency Hope CDMA (FH-CDMA), 107 Hoping Spread Spectrum (FHSS), 134 Shift Keying (FSK), 64 Frequency Division Multiple Access (FDMA), 105 Full Qualified Domain name (FQDN), 240, 241 Função(ões) accept, 231 básicas do roteador, 170, 172 bind, 231 close, 231 connect, 231 da camada de acesso à rede, 36 de aplicação, 31, 32, 237 do modelo internet, 37-39 de apresentação do modelo OSI, 35 de enlace, 29, 82 de rede, 29, 152 de sessão do modelo OSI, 34 de transporte, 31, 214 do modelo internet, 37 física, 28, 29, 44 internet, 36, 37 LLC, 39 MAC, 39
da interface socket, 229 das camadas, 28-32 de cada camada do modelo de cinco camadas, 26 de pontes, 129 do serviço de nomes, 231 listen, 231 recv, 231 send, 231 socket, 231 Funcionamento, do NAPT, 220, 221
G Gateway(s), 33 de nível dois, 129 padrão, 172 endereço do, 172
Gerenciamento ativo de filas, 195 Gigabit Ethernet, 124, 125 10 Mbps, 125 camada física, 125
camada física, 125 Grupo, multicast, 170 H High-Rate, Direct Sequence Spread Spectrum (HR-DSS), 135 Hiperlink(s), 245 Hipertexto, 245 História das redes de computadores, 17-21 Hop(s), 175 -by-hop choke packet, 195 Host(s), 1 HTTPS (HTTP Secure), 249 Hub(s), 123, 126 HyperText Markup Language (HTML), 246 Transfer Protocol (HTTP), 248 I Identificação de um dispositivo, 3 Implementação de Qualidade de Serviço, 198-201 do ACK, 91 Infravermelho, 59 Início de conexões, 225 lento, 227 Institute of Electrical and Electronics Engineers (IEEE), 40
Instalação de um meio de transmissão, 54 Interactive Mail Access Protocol (IMAP), 252, 253 Interconexão de VLANs, 145 Interface(s), 26 BSI, 228, 229 de programação de rede, 228-232 de rede, 3 de socket, 229 Message Processor (IMP), 18 TLI, 229 InterFrame Space (IFS), 137 Interior Gateway Protocol (IGP), 184 Intermodulação, 105 International Organization for Standardization (ISO), 40 Telecommunications Union (ITU), 40 Internet Architecture Board (IAB), 41 Control Message Protocol (ICMP), 191, 195 Corporation for Assigned Names and Numbers (ICANN), 159 endereço, 158 Engineering Task Force (IETF), 41 evolução, 19, 20 Gateway Routing Protocol (IGRP), 176 Group Management Protocol (IGMP), 170 Research Task Force (IRTF), 41 Service Provider (ISP), 159 Society (ISOC), 41 Solution Provider (ISP), 19, 20 Inter-rede, 11, 29 Intervalo(s) de endereço(s) por classe, 161 privados, 169 J Jam, 121
Janela de recepção, 97 de transmissão, 95, 224 deslizante, 95 Java virtual machine (JVM), 247 JavaScript, 247 Jitter, 197 L Largura de banda, 53 do meio de transmissão, 53, 54 Laser, 56 Latência, 175, 176 LED (Light Emitting Diode), 56 Limite de saltos, 203 Linguagem Java, 247 SMI, 256 XML, 247 XSL, 247 Link, 2, 3 State Packet (LSP), 181 Listas de controle de acesso, 159 Local Area Network (LAN), 8 Logical Link Control (LLC), 39, 117 Login remoto, 253 Lookup, 243 Loop aberto, 193, 194 fechado, 193, 194 M MACA, for Wireless (MACAW), 114 Management Information Base (MIB), 256 Manutenção de um meio de transmissão, 54 Mapeamento
de endereços, 167, 168 de VLANs, 144 com base na porta, 144 no endereço IP, 144 MAC, 144
dinâmico de endereços, 167 estático, 239 de endereços, 167
reverso de endereços, 168 Máquina virtual Java, 247 Máscara(s) de sub-rede, 163 padrão, 164 Maximum Transfer Unit (MTU), 190 Mecanismo(s) para o controle de congestionamento, 194-196 Medium Access Control (MAC), 39, 117 Meio(s) de transmissão, 52-59 características dos, 53, 54 com fio, 52 custo de, 54 manutenção, 54 sem fio, 52
Memória cache, 245 Método de acesso centralizado, 135 distribuído, 135 Métricas de roteamento, 175 Metropolitan Area Network (MAN), 8 Microssegmentação, 129 Modelagem do tráfego, 201 Modelo(s) camadas, desvantagens, 34 classfull, 160 cliente-servidor, 13, 14 de camadas, 4, 24-43 do IEEE 802, 39, 116, 135 e comutação, 30
de cinco camadas, 4, 25-28
de referência para a interconexão de sistemas abertos, 19 internet, 36-39, 216 OSI (Open System Interconection), 19, 34, 35 P2P, 14 peer-to-peer, 14 TCP/IP, 36-39 Modem, 63 Modulação, 63 Multidifusão, 169 Multi-homed, 159 Multiple Access with Collision Avoidance (MACA), 114 Multiplexação, 66-68 FDM, 66-69 por divisão de comprimento de onda, 68 de frequência, 66-68 de tempo, 68, 69
TDM, 68, 69 WDM, 68 Multiplexador, 66 Multiprotocol Label Switching (MPLS), 158 Multiprotocolo, 33 Multipurpose Internet Mail Extensions (MIME), 253 Mux, 66 N Network Address Port Translation (NAPT), 220 Translation (NAT), 168, 169
Control Protocol (NCP), 18 Management System (NMS), 255 Virtual Terminal (NVT), 254 Nível de quantização, 60 Nonpersistent CSMA (np-CSMA), 110 Notação CIFR, 165 Notificação explícita de congestionamento, 227 Numeração dos quadros, 92-94
Número de redes e hosts por classe, 161 de saltos, 175 O Objeto(s) da MIB, 256 Onda portadora, 63 quadrada, 46 senoidal, 46 Operação de gravação, 256 de leitura, 256 Órgãos de padronização, 40, 41 Origem, 2 Orthogonal Frequency Division Multiplexing, 134 P Pacote(s), 12, 30 de bloqueio, 195 salto a salto, 195
de estado de enlace, 181 IP, 36-39, 157 Padding, 121 Padrão(ões) CGI, 248 de facto, 40 de jure, 40 IEEE 802, 39 IEEE 802.11, 134, 135 Internet, 41 MIME, 253 Token Ring, 76 Padronização de rede, 7 Par trançado, 55 blindado, 55
não blindado, 55 STP, 55 UTP, 55 Parâmetro(s) para a qualidade de serviço, 197, 198 para avaliar vantagens e desvantagens de redes, 5-7 que permitem controlar a qualidade de serviço, 6 Pare e espere, 99 Paridade múltipla, 87 simples, 87 Pedido de conexão, 224 de desconexão, 225 Perda de pacotes, 198 Perfil de tráfego, 198 Per-Hop, Behaviors (PHB), 202 Período, 47 de contenção, 107, 108 Perl, 248 Persistent, CSMA (p-CSMA), 110 Personal Area Network (PAN), 7 Phase Shift Keying (PSK), 64 PHB de encaminhamento expresso, 202, 203 padrão, 202, 203 Pilha de protocolos, 33 dupla de protocolos, 204 Pipeline, 94 Point Coordination Function (PCF), 135 -to-Point Protocol (PPP), 83 Policiamento de tráfego, 199 Polinômio gerador, 89 Política(s) de escalonamento, 199, 200 Ponte(s), 128
Ponto de acesso, 133 Port Address Translation (PAT), 220 Porta(s), 218 dinâmicas, 219 privadas, 219 registradas, 219 reservadas, 219 Post Office Protocol versão 3 (POP3), 252 Prevenção algoritmo de, 193 de congestionamento, 227 Priority queuing, 199 Problema(s) com duplicação de quadros, 92 com o endereçamento estático, 166 críticos em grandes redes, 188 da estação escondida, 112 exposta, 112
das redes sem fio, 131, 132 de buffer, 226 de congestionamento, 192, 193 de controle de fluxo, 99, 100 de enquadramento, 83 de rota reversa, 180 de transmissão, 48-50 trazidos pela Internet, 2 Processo, 214 de transmissão, 44, 45 Programa(s) cliente, 231, 232 servidor, 230, 231 Protocol Data Unit (PDU), 28 Protocolo(s), 32-34 ALOHA, 107-109 puro, 107
ARP, 168 ATM, 20
Automatic Repeat Request (ARQ), 92 baseados em contenção, 105 em polling, 114, 115 em token, 115, 116
CDMA, 106, 107 conversão de, 33, 34 CSMA, 109, 110 /CA, 112-114 /CD, 111, 112 não persistente, 110 persistente, 110
da camada de rede, 36, 37 de acesso aleatório, 105 ordenado, 105 particionado, 105
de aplicação, 217, 237, 238 de bit alternado, 92-94 de controle de acesso ao meio, 10, 104 no padrão Ethernet, 120 no padrão IEEE 802.11, 135
de rede, 3, 4 de roteamento, 173
externo, 184 interno, 184 de transporte, 217, 237, 238
DFWMAC, 135 DNS, 16, 217, 240 do modelo OSI, 34, 35 EGP, 184 Ethernet, 18-21 FDMA, 105, 106 Frame Relay, 20 FTP, 15, 249-251 HTTP, 248, 249 ICMP, 191, 195 IGMP, 170 IGP, 184 IGRP, 176 IMAP, 252
IP, 37 IPv6, 203-205 MACA, 114 MACAW, 114 MPLS, 158 Neighbor Discovery (ND), 204 orientados a bit, 83 a caractere, 83
POP3, 252 RARP, 168 RIP, 176 roteável, 172, 173 RSTP, 141 slotted ALOHA, 108, 109 SMTP, 251-253 SNMP, 15, 254-257 TCP (Transmission Control Protocol), 36-39, 117, 216 TDMA, 106 Telnet, 15, 253, 254 TFTP, 251 UDP, 37, 216, 226, 238 utilizados na camada de aplicação, do modelo internet, 38 WEP, 139 WPA, 139 WPA2, 139 Provedor(es) de acesso, 19, 20 Pulse Amplitude Modulated (PAM), 60 Code Modulation (PCM), 60 Position Modulation (PPM), 134 Putty, 254 Python, 248 Q Quadrature Amplitude Modulation (QAM-16), 65
Phase Shift Keying (QPSK), 65 Quadro(s), 82 chega ao destino com erro, 91 CTS, 113 Ethernet, 32, 85, 118-120 IEEE 802.11, 138, 139 não chega ao destino, 90, 91 PPP, 83 RTS, 113 Qualidade de serviço, 196, 203 na internet, 201-203 Quality of Service (QoS), 6, 196, 203 R Rajada de quadros, 125 Random drop, 195 Random Early Detection (RED), 195 Rapid Spanning Tree Protocol (RSTP), 141 Recaminhamento por caminho inverso, 187 Receptor, 2 Reconhecimento (ACK), 89-91 cumulativo, 97 de segmentos, 228
dos quadros, 92 negativo com retransmissão, 91 positivo, 89, 90 Recuperação algoritmo de, 193 em caso de falhas do algoritmo baseado no estado do enlace, 183 no vetor de distância, 179
rápida, 228 Rede(s) ad hoc, 133 arquiteturas de, 18, 34-39 ATM, 194-196 cabeadas, 9
camada de, 152-213 funções da, 29-31, 152
carga de, 175 custo de, 5 de computadores, 1 evolução, 17, 20, 21 motivos, 1, 2 surgimento, 1, 2
de interconexão, 11, 29-31, 153 de pacotes, 29-31, 156 desempenho, 5, 6 disponibilidade de, 7 distribuídas, 9 sem fio, 9, 133
endereçamento da camada de, 158, 159, 218 escalabilidade de, 6, 7 infraestruturada, 133 interface, 3 local(is), 8 sem fio, 9, 131, 132 IEEE 802.11, 133
metropolitanas, 8 sem fio, 9, 132
multiponto, 10, 72 não estruturada, 133 pessoais sem fio, 9, 132 pessoal, 7 ponto a ponto, 10, 72 Rio, 20 sem fio, 9, 131 store-and-forward, 155 Token Ring, 116 Regenerador(es), 50 Regiões autônomas, 184 Relação sinal-ruído (RSR), 49 Remontagem dos fragmentos, 190 Repetidor(es), 50, 126 Request for Comments (RFC), 18 Resolução de nomes, 243-245
Resolvedor, 243 Resource reSerVation Protocol (RSVP), 201 Retransmissão integral, 94-96 por timeout, 90 rápida, 227, 228 seletiva, 97-99 Reverse Address Resolution Protocol (RARP), 168 Path Multicasting (RPM), 187 route, 180 Rota default, 171 padrão, 171 Roteador(es), 12, 29-31, 75, 155, 170 de borda, 184 especializado, 172 não especializado, 172 Roteamento, 12, 29-31, 155, 170 algoritmo de, 170-173 broadcast, 174, 186, 187 desvantagens, 186, 187
CBT, 189 hierárquico, 174, 184 multicast, 174, 187-190 por árvore baseada em núcleo, 189 por caminho inverso, 187-189
plano, 174 por árvore de cobertura, 187 por difusão, 185-187 por estado de enlace, 180-184 por inundação, 185, 186 por vetor de distância, 176-180 RPM, 187 unicast, 174 Round-trip Time (RTT), 175, 176 Routing Information Protocol (RIP), 176 Ruído, 48-50
branco, 49 crosstalk, 49 de intermediação, 66-69 de intermodulação, 49 impulsivo, 49 térmico, 49 S Satélites geoestacionários, 58, 59 Segmentação, 221 Segmento(s), 221 TCP, 38, 39, 216 Segurança de rede, 7 de um meio de transmissão, 54 Semi-Automatic Business Related Environment (SABRE), 17 Ground Environment (SAGE), 17 Sequência de verificação do quadro, 88 pseudoaleatória, 107 Service Level Agreement (SLA), 198 Serviço(s), 4, 5, 26, 32-34 controlado, 202 de arquivos, 16 de áudio e vídeo, 15, 16 de circuito virtual, 156-158 de comércio eletrônico, 16, 17 de correio eletrônico, 14, 251-253 de datagrama, 156-158 de gerência remota, 15 de gerenciamento de redes, 254-257 de impressão, 16 de nomes, 16, 239 DNS, 240
de rede, 4, 5 de terminal remoto, 15, 253, 254
de transferência de arquivos, 14, 15 de transporte confiável, 216 não confiável, 216
diferenciados, 202, 203 garantido, 202 integrados, 201, 202 não orientado à conexão, 30, 156, 216 com reconhecimento, 117 sem reconhecimento, 117
oferecidos pelas redes, 14-17 orientado à conexão, 30, 117, 157, 216 Web, 19, 20, 245-249 WWW, 245-249 Servidor(es) de nomes, 238-245 DNS, 240 local, 243 primário, 242 secundários, 242
web, 245-249 Shortest Path First (SPF), 182 Simple Mail Transfer Protocol (SMTP), 251 Network Management Protocol (SNMP), 254, 255 Sinal(is), 44, 45 analógico, 44-46 características, 46-48 digital, 44-46 periódico, 46-46 Sinalização analógica, 62-64 dibit, 65 digital, 61, 62 monobit, 64 multinível, 51, 64-66 tribit, 65 Sincronização, 71 Sistema(s)
autônomos, 184 de distribuição, 133 de gerenciamento de redes, 254-257 de transmissão ótico, 57 multiprogramáveis, 17 operacionais de rede, 16 SOR, 16 Sliding window, 95 Slot time, 121 Sobreposição da janela de recepção, 98, 99 Socket, 219 Solução de split horizon, 180 Source routing, 175 Spanning tree, 140, 187 protocol (STP), 140, 141
Spread spectrum, 107 Starvation, 199, 200 Stop-and-wait, 99 Structure of Management Information (SMI), 256 Subendereçamento, 161-164 CIDR, 164-166 tradicional, 165 Sub-rede(s), 161 Supernet, 165, 166 Super-Rede, 165, 166 Switch(es), 128-131 cut-through, 131 de nível 3, 145 store-and-forward, 131 T Tabela(s) de roteamento, 170-173 em T0, 177 em T1, 178 em T2, 179 Tagging, 144
explícito, 144 implícito, 144 Tamanho da janela, 226 máximo do segmento, 222 Taxa(s) de erro de bit, 49 de um canal, 176
de transmissão, 5, 21, 175, 197 TDM assíncrono, 69 estático, 69 síncrono, 69 Técnica de bit stuffing, 84 de byte stuffing, 84 de piggybacking, 91 Tempestade de broadcast, 140 Tempo de propagação de quadro, 94 Tempo de vida, 187 Teorema de Nyquist, 51, 52 de Shannon, 52 Terminal de rede virtual, 253 Término de conexões, 225 Three-way handshake, 224, 225, 231 Throughput, 5 Time Division Multiple Access (TDMA), 106 Time to Live (TTL), 187, 245 Top-Level Domain (TLD), 240 Topologia(s) de rede, 10, 72-76 distribuída, 74, 75 em anel, 76 em árvore, 74, 75 em barra, 75-76 em estrela, 73
hierárquica, 73-74 totalmente ligada, 72, 73 Traceroute, 192 Tradução de endereços de rede, 168, 169 Tráfego classificação, 200 Traffic Shaping, 201 Transferência de arquivos, 249-251 de zona, 242 Transmissão(ões) assíncrona, 71 de micro-ondas, 58 duplex, 69 full-duplex, 69 half-duplex, 69 multicast, 170 paralela, 70 serial, 70 simplex, 69 síncrona, 71 turnaround, 69 Transmissão de segmentos TCP, 221 de uma sequência de quadros, 95 via satélite, desvantagens, 58, 59 Transmission Control Protocol (TCP), 18, 37, 215-217 Transmissor, 2, 3 Transponder, 58 Transport Layer Interface (TLI), 228, 229 Trap, 256 Trivial File Transfer Protocol (TFTP), 251 Troca de informações, 1 Trunking, 145 Tunelamento, 204 U
Unidade(s) de dados do protocolo, 28 máxima de transferência, 221, 222 para a taxa de transmissão, 5, 6 Uniform Resource Locator (URL), 246 User Datagram Protocol (UDP), 216 V Variable Lenght Subnet Masking (VLSM), 165 Variação do atraso, 197 Vazão, 5 Verificação de redundância cíclica, 88, 89 Vetor(es) de distância, 176 enviados em T1, 177 enviados em T2, 178 Virtual Lan (VLAN), 141-145 VLAN, 141-145 W Wide Area Network (WAN), 9 Wi-Fi, 132 Protected Access (WPA), 139 2 (WPA2), 139
Wired Equivalent Privacy (WEP), 139 Wireless, 9, 131 Local Area Network (WLAN), 9, 132 Metropolitan Area Network (WMAN), 9, 132 Personal Area Network (WPAN), 9, 132 Wide Area Network (WWAN), 9, 132 World Wide Web (WWW), 14, 245 Z ZigBee, 132 Zona de autoridade, 242
Arquitetura de Sistemas Operacionais Machado, Francis B. 9788521622871 266 páginas Compre agora e leia
O estudo de sistemas operacionais ganha importância à medida que diversos profissionais da área de computação necessitam deste conhecimento para exercer suas atividades, como administradores de sistemas, programadores de aplicações concorrentes e gerentes de segurança. Outro fator importante é o relacionamento dos sistemas operacionais nas redes de comunicação de dados, o que faz seu estudo necessário para os administradores de rede. Arquitetura de Sistemas Operacionais aborda a arquitetura e funcionamento dos sistemas operacionais multiprogramáveis, de forma atual, abrangente e didática. Seu conteúdo é direcionado a estudantes e a profissionais de informática de todas as áreas. Como pré-requisito básico para sua leitura, é necessário apenas algum conhecimento de organização de computadores e estrutura de dados. Sempre que for necessário o uso de programas será utilizada a linguagem de programação Pascal, por sua clareza e fluência no meio acadêmico, assim como a linguagem Java, por sua ampla aceitação no mercado.
Compre agora e leia
Introdução à Computação Hardware, Software e Dados Carvalho, André C. P. L. F. de 9788521633150 300 páginas
Compre agora e leia Introdução à Computação: Hardware, Software e Dados tem o intuito de desmistificar os conceitos dessa ciência ao apresentar, de forma simples e direta, o conhecimento necessário tanto para quem quer se aprofundar no tema quanto para profissionais de diversas áreas. Os professores ? cuja parceria já foi responsável, em conjunto com outros autores, pelo Prêmio Jabuti 2012 na categoria Tecnologia e Informática - desenvolveram um texto esclarecedor e didático que facilita o entendimento dos temas abordados. Introdução à Computação: Hardware, Software e Dados traz, a cada capítulo, curiosidades, destaques para definições de conceitos importantes, exemplos, exercícios para testar o conhecimento e indicação de leituras adicionais, tudo para enriquecer a experiência do leitor ao longo de seu estudo. Compre agora e leia
Valuation - Como Avaliar Empresas e Escolher as Melhores Ações Damodaran, Aswath 9788521620501 220 páginas
Compre agora e leia Aliando a boa teoria às melhores práticas, o renomado autor Aswath Damodaran escreveu este Valuation – Como Avaliar Empresas e Escolher as Melhores Ações, com o intuito de oferecer aos leitores um material atualizado, objetivo e criterioso sobre o interessante tema. Laureado professor de negócios, o autor mescla com maestria os fundamentos clássicos sobre finanças, aos conceitos desenvolvidos e consagrados por ele – como o próprio termo Valuation, disseminado globalmente. A obra apresenta as ferramentas conceituais mais adequadas à compreensão do funcionamento de uma empresa e de seus valores intrínsecos. Assim, após a leitura do livro, o leitor estará ainda mais apto a estabelecer o valor de ações de empresas e poderá igualmente utilizar esse conhecimento para se tornar um investidor mais bem informado e bemsucedido no mercado. Compre agora e leia
Sala de Aula Invertida - Uma metodologia Ativa de Aprendizagem Bergmann, Jonathan 9788521630869 116 páginas
Compre agora e leia Dar a mesma aula quatro, seis e até oito vezes, em um só dia, para turmas diferentes. Que professor nunca passou por isso? Quem conseguiu manter, em todas as exposições, a mesma energia e entusiasmo? E a aula sempre alcançou os objetivos planejados? Em cada turma, alguns alunos certamente não entenderam uma parte da explicação e vários podem ter perdido algo do que foi dito. Mas na aula não há um botão de "pausa" nem é possível "voltar" um trecho para rever o assunto. É comum que, ao fazer as tarefas de casa, surjam as dúvidas – mas o professor já não está lá para apoiar. A obra Sala de Aula Invertida ajuda a superar esses desafios. A ideia central é que o aluno assista previamente às principais explicações gravadas pelo professor ou estude o material indicado. O encontro presencial passa a ser a oportunidade para esclarecer dúvidas, realizar atividades, trocar conhecimentos e fixar a aprendizagem. O sucesso da Sala de Aula Invertida na educação básica e superior, em escolas e
universidades de diversos países do mundo – incluindo instituições de referência como Harvard e MIT – confirma que esse modelo chegou para revolucionar a relação dos alunos com o conhecimento. Neste livro, os criadores do conceito explicam como usar adequadamente a metodologia e as tecnologias associadas, obtendo mais autonomia, mais motivação e melhor desempenho. Compre agora e leia
O Gestor Eficaz (edição revista, atualizada e ampliada) Drucker, Peter F. 9788521620174 218 páginas
Compre agora e leia The Effective Executive: O Gerente Eficaz agora é O Gestor EficazOs mais de 30 livros escritos por Drucker reúnem três características fundamentais: rigor intelectual, praticidade e profundo conhecimento das tendências administrativas que realmente viriam para ficar. Essas qualidades o tornaram um dos escritores mais lidos em todos os tempos na área de negócios, difundindo como nenhum outro a arte de bem administrar. Drucker foi o precursor daquilo que hoje se convencionou chamar de melhores práticas, muito antes de o termo virar moda, e seus ensinamentos primam pela simplicidade tanto quanto pela eficácia.Uma de suas obras mais importantes - The Effective Executive, de 1966 - é um dos melhores exemplos disso. Publicada no Brasil em 1990, com o título O Gerente Eficaz, até hoje o livro é um sucesso de vendas, sendo conhecido aqui, e em todo o mundo, como o guia definitivo para a arte de fazer acontecer. Compre agora e leia