GERÊNCIA DE REDES DE COMPUTADORES LINUX

Page 1

Curso de Pós-Graduação “Lato Sensu” (Especialização) a Distância Administração em Redes Linux

GERÊNCIA DE REDES DE COMPUTADORES

Simone Markenson Pech Herlon Ayres Camargo

Universidade Federal de Lavras – UFLA Fundação de Apoio ao Ensino, Pesquisa e Extensão – FAEPE Lavras – MG


PARCERIA UFLA – Universidade Federal de Lavras FAEPE – Fundação de Apoio ao Ensino, Pesquisa e Extensão REITOR Antônio Nazareno Guimarães Mendes VICE-REITOR Ricardo Pereira Reis DIRETOR DA EDITORA Marco Antônio Rezende Alvarenga PRÓ-REITOR DE PÓS-GRADUAÇÃO Joel Augusto Muniz PRÓ-REITOR ADJUNTO DE PÓS-GRADUAÇÃO “LATO SENSU” Marcelo Silva de Oliveira COORDENADOR DO CURSO Heitor Augustus Xavier Costa PRESIDENTE DO CONSELHO DELIBERATIVO DA FAEPE Luis Antônio Lima EDITORAÇÃO Grupo Ginux (http://ginux.comp.ufla.br/) IMPRESSÃO Gráfica Universitária/UFLA Ficha Catalográfica preparada pela Divisão de Processos Técnicos da Biblioteca Central da UFLA Pech, Simone Markenson Gerência de Redes de Computadores/ Simone Markenson Pech, Herlon Ayres Camargo. - - Lavras: UFLA/FAEPE, 2006. 63 p. : il. - Curso de Pós-Graduação “Lato Sensu” (Especialização) a Distância: Administração em Redes Linux. Bibliografia. 1. Redes de Computadores. 2. Protocolos. 3. Hardware. 4. Software. 5. Comunicação de Dados. I. Pech, S.M. II. Universidade Federal de Lavras. III. Fundação de Apoio ao Ensino, Pesquisa e Extensão. IV. Gerência de Redes de Computadores. CDD-001.64404 Nenhuma parte desta publicação pode ser reproduzida, por qualquer meio ou forma, sem a prévia autorização.


SUMÁRIO

1 Introdução 1.1 Sobre os autores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Conceitos de Redes de Computadores 2.1 Breve histórico das redes de computadores . . . . . . . . . . . . . . . . . . 2.2 Classificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Quanto a abrangência . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Quanto a tecnologia de transmissão . . . . . . . . . . . . . . . . . . 2.3 Quanto a topologia física . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Modelos de aplicações em rede . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Cliente/Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2 Peer-to-Peer (P2P) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Protocolos em camadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Protocolos de rede e o Sistema Operacional Linux . . . . . . . . . . . . . . 2.6.1 TCP/IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6.2 SPX/IPX (Internet Packet Exchange/Sequenced Packet Exchange) 2.7 Web Sites recomendados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Modelos de Referência 3.1 Modelo de referência OSI . . . . . . . . . . . . . 3.1.1 Camada Física . . . . . . . . . . . . . . . 3.1.2 Camada de Enlace . . . . . . . . . . . . . 3.1.3 Camada de Rede . . . . . . . . . . . . . 3.1.4 Camada de Transporte . . . . . . . . . . 3.1.5 Camada de Sessão . . . . . . . . . . . . 3.1.6 Camada de Apresentação . . . . . . . . . 3.1.7 Camada de Aplicação . . . . . . . . . . . 3.2 Modelo de Referência TCP/IP . . . . . . . . . . . 3.2.1 Camada de Rede . . . . . . . . . . . . . 3.2.2 Camada de Internet ou Inter-rede . . . . 3.2.3 Camada de Transporte . . . . . . . . . . 3.2.4 Camada de Aplicação . . . . . . . . . . . 3.3 Endereçamento IP . . . . . . . . . . . . . . . . . 3.3.1 Endereços privados . . . . . . . . . . . . 3.3.2 Classe de loopback (local) . . . . . . . . 3.3.3 APIPA (Automatic Private IP Addressing) 3.3.4 Endereço de broadcast . . . . . . . . . . 3.3.5 Máscara de sub-rede . . . . . . . . . . . 3.4 Comparação entre os Modelos de Referência . . 3.5 Desenvolvimento de Aplicações em Rede . . . . 3.5.1 Utilizando sockets TCP . . . . . . . . . . 3.6 Utilizando RPC . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . .

7 8

. . . . . . . . . . . . .

9 9 10 10 12 14 15 15 16 17 19 19 19 20

. . . . . . . . . . . . . . . . . . . . . . .

21 21 23 24 25 26 27 28 28 29 31 31 32 34 35 37 37 38 38 38 38 38 39 46


3.7 Web Sites Recomendados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Componentes Físicos de Rede de Computadores 4.1 Interface de rede ou NIC (Network Interface Card) 4.2 Repetidores e hubs . . . . . . . . . . . . . . . . . 4.3 Switch . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Bridge . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Roteador . . . . . . . . . . . . . . . . . . . . . . . 4.6 Gateway . . . . . . . . . . . . . . . . . . . . . . . 4.7 Modem (MOdulador e DEModulador) . . . . . . . 4.8 Cabeamento . . . . . . . . . . . . . . . . . . . . . 4.9 Web Sites Recomendados . . . . . . . . . . . . . 5 Ferramentas para Gerência de Redes 5.1 SNMP: Simple Network Management Protocol 5.1.1 Mensagens do protocolo SNMP . . . . 5.1.2 Modelo de gerenciamento de redes . . 5.2 ntop – Network Top . . . . . . . . . . . . . . . . 5.3 mrtg – Multi Router Traffic Grapher . . . . . . . 5.4 Web Sites Recomendados . . . . . . . . . . . Referências Bibliográficas

. . . . . .

. . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .

48

. . . . . . . . .

49 50 50 51 52 52 53 53 54 56

. . . . . .

57 57 58 58 58 59 61 63


LISTA DE FIGURAS

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

Hosts e Sub-Redes [Tanenbaum (2003)]. . . . . . . . . . . . . . . . . Transmissão: (a) unicast (b) multicast. . . . . . . . . . . . . . . . . . . Uma rede simples de comutação de circuitos [Kurose & Ross (2006)]. Comuntação de pacotes [Kurose & Ross (2006)]. . . . . . . . . . . . . Rede em estrela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rede em anel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rede em barramento. . . . . . . . . . . . . . . . . . . . . . . . . . . . Entrega de mensagens no modelo cliente/servidor. . . . . . . . . . . . Relação entre camadas e interfaces [Tanenbaum (2003)]. . . . . . . .

3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15

Modelo de Referência OSI [Tanenbaum (2003)]. . . . . . . . . . . . . . . . . 22 Os cabeçalhos de cada camada no modelo OSI [Soares, Lemos & Colcher (1995)]. 23 Processos de aplicação [Kurose & Ross (2006)]. . . . . . . . . . . . . . . . . 29 Comunicação TCP/IP [Soares, Lemos & Colcher (1995)]. . . . . . . . . . . . 30 Formato do datagrama IPv4 [Kurose & Ross (2006)]. . . . . . . . . . . . . . . 32 Segmento UDP [Kurose & Ross (2006)]. . . . . . . . . . . . . . . . . . . . . . 33 Segmento TCP [Kurose & Ross (2006)]. . . . . . . . . . . . . . . . . . . . . . 33 Processos de aplicação [Kurose & Ross (2006)]. . . . . . . . . . . . . . . . . 34 Protocolos do conjunto TCP/IP [Stallings (2005)]. . . . . . . . . . . . . . . . . 35 Endereço IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Classes de endereços IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Comparação entre os modelos OSI e TCP/IP. . . . . . . . . . . . . . . . . . . 39 Comunicação TCP utilizando sockets. . . . . . . . . . . . . . . . . . . . . . . 40 Código do programa cliente.c . . . . . . . . . . . . . . . . . . . . . . . . . 45 Código do programa servidor.c . . . . . . . . . . . . . . . . . . . . . . . . 46

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8

Um exemplo de conexão entre redes. . . . . . . . Hubs empilháveis. . . . . . . . . . . . . . . . . . . Conexão entre duas redes através de um roteador. Funcionamento de um modem. . . . . . . . . . . . Compartilhamento via software. . . . . . . . . . . . Compartilhamento através de um roteador. . . . . Tomadas RJ-45. . . . . . . . . . . . . . . . . . . . Patch Panel com 48 portas. . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . .

. . . . . . . .

. . . . . . . . .

12 12 13 14 15 15 15 16 19

. . . . . . . .

49 51 52 53 54 54 55 55

5.1 Componentes do protocolo SNMP. . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Exemplo de uso do ntop (fonte: http://www.ntop.org). . . . . . . . . . . . . . . 5.3 Exemplo de uso do mrtg (fonte: http://oss.oetiker.ch/mrtg/). . . . . . . . . . .

59 60 61


LISTA DE TABELAS

2.1 Órgãos de padronização. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11

3.1 3.2 3.3 3.4 3.5

24 30 34 35 37

Resumo das características do modelo OSI. . . . . . . Resumo das características do modelo TCP/IP. . . . . . Aplicações da Internet e seus protocolos de transporte. Serviços da camada de aplicação. . . . . . . . . . . . . Classes de endereços IP. . . . . . . . . . . . . . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .


1 INTRODUÇÃO

Seja bem-vindo ao mundo das Redes de Computadores. Estamos todos conectados, seja por telefone, internet, satélites ou por uma tradicional rede local . . . de alguma forma, em algum lugar. Este material tem como objetivo apresentar conceitos de gerência de redes de computadores, bem como as ferramentas para este fim, utilizando o sistema operacional Linux. Não nos cabe definir regras de boa gestão pois estas estão fortemente ligadas a um contexto. Queremos sim fornecer subsídios técnicos que lhe ajude a tomar o melhor caminho. Então, o que é gerência de redes? Gerenciar uma rede envolve mais que algumas configurações; evolve decisões. Um modelo de gerenciamento foi estruturado pela International Organization for Standardization (ISO) definindo cinco áreas de gerenciamento: • Gerência de desempenho; • Gerência de falhas; • Gerência de configurações; • Gerência de contabilização; • Gerência de segurança. Cada uma das áreas mencionadas representa um caminho a ser percorrido. Podemos citar [Saydam & Magedanz (1996)] e traduzido por [Kurose & Ross (2006)], sobre as funções de um administrador: “Gerenciamento de rede inclui a disponibilização, a integração e a coordenação de elementos de hardware, software e humanos para monitorar, testar, consultar, configurar, analisar, avaliar e controlar os recursos da rede, e de elementos, para satisfazer às exigências operacionais, de desempenho e de qualidade de serviço em tempo real a um custo razoável.”

Apresentaremos no Capítulo 2 uma revisão de Redes de Computadores incluindo um breve histórico, a classificação das redes e a definição de protocolo. No Capítulo 3 abordaremos com mais detalhes os modelos de referência OSI e TCP/IP, terminando o capítulo


8

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

com exemplos de aplicações para redes. No Capítulo 4 abordaremos os equipamentos de rede e suas funcionalidades, completando então o embasamento teórico. No capítulo 5 serão apresentados os conceitos de gerência de redes e algumas das ferramentas disponíveis. Certamente não esgotaremos o assunto mas ficaremos muito contentes em fornecer aos nossos leitores os conceitos necessários para que caminhem e evoluam sempre de mãos dadas com a tecnologia e com a visão da disseminação do uso de software livre.

1.1

SOBRE OS AUTORES

Simone Markenson Pech Mestre em Informática pela UFRJ (IM-DCC-NCE), atualmente em fase de desenvolvimento de tese de doutorado em Sistemas Embarcados na mesma instituição. Graduada em Física pela UFRJ e especialista em Análise de Sistemas pela PUC-RJ. Professora adjunta da Universidade Estácio de Sá desde 1998 atuando nos cursos seqüenciais, bacharelado e pós-graduação, da UniverCidade desde 2002, da UniAbeu desde 2005 e tutora na pósgraduação a distância em Administração de Redes Linux da UFLA. Natural do Pará mas carioca há muito tempo, iniciou a carreira em 1984 como Analista de Sistemas, tendo desenvolvido projetos especializados para coletores de dados e sistemas CAD para microcomputadores, na época considerados inovadores. Atuou como coordenadora de suporte técnico e de tecnologia do grupo Brasif, sendo responsável pelo projeto de comunicação de dados entre todas as filiais, inclusive no exterior. Sócia gerente da Wizard Consultoria, empresa especializada em consultoria em tecnologia e suporte. Herlon Ayres Camargo Natural de Barbacena/MG, é Engenheiro Eletricista pela Universidade Federal de São João Del-Rei/MG (UFSJ), mestre em Engenharia Elétrica pelo Centro de Pesquisa e Desenvolvimento em Engenharia Elétrica (CPDEE) da Universidade Federal de Minas Gerais (UFMG). Foi professor do Centro Federal de Educação Tecnológica de Minas Gerais (CEFET-MG) de 1997 a 2002, e atualmente é professor do Curso Superior de Tecnologia em Desenvolvimento de Sistemas Distribuídos e do Curso Técnico em Informática da Escola Agrotécnica Federal de Barbacena/MG, desde 2003, onde também desenvolve as atividades de administrador de redes e de suporte em Software Livre. Trabalha com informática desde 1991 e conheceu o Linux em setembro de 2000, através da distribuição Conectiva Linux 5, onde se apaixonou pelo sistema e pela filosofia de liberdade em software, fazendo com que abandonasse, definitivamente, seu diploma de Engenheiro Eletricista para trabalhar exclusivamente com Linux e Redes de Computadores.


2 CONCEITOS DE REDES DE COMPUTADORES

2.1

BREVE HISTÓRICO DAS REDES DE COMPUTADORES

A comunicação e a troca de informações entre indivíduos são, talvez, mais antigas do que a própria fala. Era realizada através de gestos, cores e desenhos que permitiam que mensagens fossem transmitidas de um ponto a outro. Para que essa comunicação se realizasse com sucesso, foram estabelecidos padrões entre os envolvidos para que a mensagem pudesse ser entendida corretamente. Da idade da pedra lascada (ou será do bit lascado?) até os dias de hoje a comunicação foi se aprimorando e a necessidade de informações rápidas crescendo. A indústria viveu momentos importantes na década de 80 quando os microcomputadores começaram a atender isoladamente a uma grande demanda de processamento oferecendo ainda uma interface mais amigável que as utilizadas pelos mainframes1 Os grande computadores centralizados, muita vezes inviáveis em função do custo muito elevado, cederam seus lugares às redes de microcomputadores permitindo às empresas soluções mais escaláveis, com a possibilidade de livre escolha de fornecedores tanto de hardware quanto de software. Resumindo, as redes de microcomputadores ofereciam: • compartilhamento de recurso e dados independente da localização física; • replicação; • economia; • comunicação entre usuários em fisicamente distribuídos; • escalabilidade. As redes locais passaram então a ter maior importância no cenário corporativo em função da necessidade de compartilhamento de recursos e dados. Surgia então um grave 1 Termo

utilizado para se referenciar a um grande computador, normalmente produzido por uma grande empresa. O nome tem origem na forma com que estes computadores eram construídos. Todos os componentes (processador, memória, . . . ) do computador principal (Main) são colocados dentro de uma única estrutura (frame).


10

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

problema: a falta de padronização. Cada fabricante criava seus próprios padrões que, na maioria da vezes, eram incompatíveis com os demais. O modelo de referência proposto pelo ISO no início dos anos 80, o modelo RM OSI (Reference Model for Open Systems Interconnection), visava justamente padronizar a comunicação entre computadores diferentes oferecendo interconectividade e portabilidade. Este modelo serve de base para implementar qualquer tipo de rede, seja local ou de longa distância, através de um padrão de arquitetura aberta baseado em camadas. A padronização convergiu para o mesmo ponto de evolução da ARPANET (19691990), considerada a antecessora da Internet tal qual conhecemos hoje. A ARPANET foi desenvolvida pelo Departamento de Defesa dos Estados Unidos da América (DoD), era baseada em comutação de pacotes e os primeiros serviços oferecidos foram Telnet e FTP. Em 1972, Ray Tomlinson desenvolveu o primeiro sistema de correio eletrônico para uma rede de computadores, passando rapidamente a ser a aplicação mais utilizada na ARPANET. Em 1983, o protocolo NCP foi substituído pelo TCP/IP, desenvolvido por Robert Kahm e Vinton Cerf, entre outros. O modelo OSI é considerado um padrão de jure2 enquanto o modelo TCP/IP é considerado um padrão de facto3 . A Internet hoje é composta por milhares de redes hierárquicas superpostas e portanto não faz sentindo discutir a arquitetura exata da Internet [Stallings (2005)]. Existe, no entanto, um órgão mundial responsável por estabelecer regras do uso da Internet. Este órgão, denominado ICANN (The Internet Corporation for Assigned Names and Numbers) é o responsável pela distribuição mundial de endereços e nomes de domínios. A Tabela 2.1 cita alguns dos institutos de padronização. O quadro que se apresenta indica então o uso de computadores diferentes, com sistemas operacionais diferentes, conectados de formas diferentes compartilhando recursos e informações. Precisamos saber como administrar estas redes para que funcionem de forma previsível atendendo aos requisitos de gerência citados anteriormente.

2.2

CLASSIFICAÇÃO

As redes de computadores podem ser classificadas sob diferentes aspectos. Não há exatamente um consenso de como classificar uma rede, portanto iremos mostrar as características que consideramos mais importantes. 2.2.1

Quanto a abrangência As redes de classificam em:

2 Padrão 3 Padrão

estabelecido por uma instituição de padronização autorizada. estabelecido pelo uso.


Conceitos de Redes de Computadores

11

Tabela 2.1: Órgãos de padronização.

Sigla ANSI

Descrição American National Standarts Institute

BSI

British Standart Institute

ISO

International Standarts Organization

ITU

International Telecommunications Union

ITU-T

Telecom Standardization

ITU-R

Radio-communication

ITU-D

Telecom Development

TIA

Telecommunications Industries Association

IEEE

Institute of Electrical and Eletronic Engineers

IETF

Internet Engineering Task Force

LAN (Local Area Network ): Rede de alcance geográfico limitado, também chamada de rede local, restrita a alguns quilômetros, desenvolvidas no intuito de compartilhar informações e recursos. As implementações mais comuns são as LANs comutadas Ethernet e, mais recentemente, as LANs sem fio. MAN (Metropolitan Area Network ): Rede de longo alcance geográfico ultrapassando os limites físicos de uma cidade. São de fato a interligação de várias LANs. WAN (Wide Area Network ): Rede geograficamente distribuída com dimensões mundiais. São também geradas a partir de LANs e MANs constituindo uma série de nós de comutação interconectados. Tradicionalmente as WANs tem sido implementadas utilizando comutação de pacotes e comutação de circuitos e mais recentemente Frame Relay e ATM.

Cada máquina de uma WAN é denominada host ou end systems. Estas máquinas são conectadas por uma sub-rede de comunicação cuja tarefa é transportar mensagens de um host para outro. Uma sub-rede é composta basicamente por linhas de transmissão, que transportam os bits entre as máquinas e elementos de comutação4 . Um esquema que relaciona hosts e sub-rede é mostrado na Figura 2.1. 4 Equipamentos

utilizados para conectar linhas de transmissão.


12

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Figura 2.1: Hosts e Sub-Redes [Tanenbaum (2003)].

2.2.2

Quanto a tecnologia de transmissão As redes se classificam em:

Difusão: As redes de difusão (broadcasting) tem apenas um canal de comunicação compartilhado por todas as máquinas ou por um subconjunto destas máquinas (multicasting). São essencialmente utilizadas em redes locais e a filtragem das mensagens é delegada para os nós. Esta solução vem sendo substituída por redes de comutação. Um esquema de transmissão unicast e multicast está ilustrado na Figura 2.2.

Figura 2.2: Transmissão: (a) unicast (b) multicast.


Conceitos de Redes de Computadores

13

Comutação: As redes de comutação são constituídas por nós intermediários (comutadores) que promovem a conexão entre dois pontos. Os comutadores alternam a conexão entre os pontos, ou seja, os nós não estão fisicamente ligado. A comutação pode ocorrer em três modos: Comutação de circuito: estabelece um circuito físico antes de iniciar a transmissão de dados. Este circuito deve ser desfeito ao término da transmissão. Estabelecer um circuito gera um atraso inicial na comunicação e ambos os nós ficam inacessíveis a outros nós, no entanto, uma vez estabelecido o circuito, a transferência de dados é feita a uma taxa constante. A Figura 2.3 exemplifica a comutação de circuito.

Figura 2.3: Uma rede simples de comutação de circuitos [Kurose & Ross (2006)].

Comutação de mensagens: As mensagens são enviadas desde a origem até o destino sem qualquer fase anterior ao envio. A própria mensagem carrega o endereço de destino. A utilização de recursos é eficiente porém não há como prever possíveis atrasos. Comutação de pacotes: Nesta modalidade de comutação, a mensagem é dividida e transmitida em blocos (pacote = designação genérica). A transmissão destes blocos pode assumir o formato de datagramas, ou de circuitos virtuais. O exemplo


14

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

mais conhecido de comutação de pacotes é o X.25, substituído por implementações mais leves5 como o frame relay. A Figura 2.4 exemplifica a comutação de pacotes.

Figura 2.4: Comuntação de pacotes [Kurose & Ross (2006)].

2.3

QUANTO A TOPOLOGIA FÍSICA As redes se classificam em:

Estrela: Cada máquina está conectada a um ponto central fazendo com que cada segmento seja independente em caso de falhas. O componente centralizador pode ser um computador com n placas de redes, ou um hub (antigo) ou um switch (mais moderno). A Figura 2.5 exemplifica a topologia física estrela. Anel: Semelhante ao barramento porém a primeira e última máquinas são conectadas. A Figura 2.6 exemplifica a topologia física em anel. Barramento: Um único cabo conecta fisicamente todas as máquinas. É uma topologia em desuso por sem lenta e pouco tolerante à falhas. A Figura 2.7 exemplifica a topologia física em barramento. 5 As

implementações mais antigas estavam baseadas em redes de baixa velocidade e alta taxa de erros.


Conceitos de Redes de Computadores

15

Figura 2.5: Rede em estrela.

Figura 2.6: Rede em anel.

Figura 2.7: Rede em barramento.

2.4 2.4.1

MODELOS DE APLICAÇÕES EM REDE Cliente/Servidor

As aplicações baseadas no modelo cliente-servidor pressupõem a existência de dois processos6 : o cliente e o servidor. Estes processos cooperam na solução de uma tarefa com as seguintes características: 6 Cliente

e Servidor são processos e não computadores. A designação errônea é um legado de sistemas de redes que monopolizavam um determinado computador e este passava a ser identificado como “servidor”.


16

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

• Cliente é o processo ativo, ou seja, inicia uma comunicação solicitando serviços a um processo servidor. • Servidores são reativos e atendem às requisições dos processo clientes. • Ambos contribuem para o processamento mesmo que com cargas de trabalho diferentes. • A interface com o usuário é feita através do cliente e este também é responsável pelo tratamento da entrada de dados. • Servidores são especializados e não possuem interface com o usuário. • Um número muito grande de clientes para um servidor acarreta gargalo na comunicação. • É responsabilidade do processo cliente localizar o servidor. Não basta a identificação do computador onde o servidor está sendo executado pois em um mesmo computador pode existir mais de um processo servidor (exemplo: servidor web e servidor de correio em um mesmo computador). O processo destino também deverá ser identificado de forma que o sistema operacional consiga entregar a mensagem ao processo correto. A Figura 2.8 exemplifica a entrega de mensagens no modelo cliente/servidor.

Figura 2.8: Entrega de mensagens no modelo cliente/servidor.

2.4.2 Peer-to-Peer (P2P) O modelo de comunicação P2P é implementado em uma rede de computadores cuja comunicação não está baseada em servidores dedicados, como no modelo cliente-servidor, e sim na comunicação direta entre cada nó da rede (peer ). Cada computador conectado tem a capacidade de atuar como um servidor realizando tarefas para outros usuários da rede, ou atuar como cliente, requisitando a realização destas tarefas. Apesar de ter uma definição aparentemente clara, a classificação do que é ou não P2P ainda é alvo de discussões. Androutsellis e Spinellis [Androutsellis & Spinellis (2004)] propuseram a seguinte definição para sistemas P2P:


Conceitos de Redes de Computadores

17

“Sistemas peer-to-peer são sistemas distribuídos que consistem em nós interconectados com capacidade de auto-organização em relação à topologia da rede com o propósito de compartilhar recursos, adaptar-se a falhas e picos de carga mantendo um nível aceitável de conectividade e desempenho sem requerer intermediação ou suporte de um servidor central.”

Na arquitetura P2P não há coordenação central e, portanto, não há um ponto de falha nem gargalo. Nenhum peer tem uma visão global do sistema, porém todos os dados e serviços são acessíveis de qualquer peer. Estas características fazem com que este modelo de comunicação ofereça: • descentralização; • escalabilidade; • anonimato; • capacidade de auto-organização; • tolerância à falhas. A arquitetura de aplicação P2P está ainda subdividida em três categorias: Pura: não há um servidor funcionando no centro da aplicação. Exemplo: Gnutella. Híbrida: existe um servidor utilizado apenas para consulta ou autenticação, porém a transferência de arquivos é feita diretamente entre os pares. Exemplo: Napster. Intermediária: semelhante ao modelo puro porém alguns peers, denominados super-peers, possuem informações que os demais não possuem. Exemplo: Kazaa. As redes peer-to-peer se tornaram populares como distribuidoras de conteúdo porém são utilizadas também no compartilhamento de processamento e demais recursos computacionais.

2.5

PROTOCOLOS EM CAMADAS

Um protocolo é um conjunto de regras que define o modo em que a comunicação deverá ocorrer. Não é um conceito restrito às redes de computadores. Socialmente várias regras de conduta “regulamentam” o nosso dia-a-dia, como atender a uma chamada telefônica ou cumprimentar um conhecido na rua. Em relação às redes, a estratégia de ter o hardware como prioritário há muito foi deixada para trás, ficando a cargo do software compatibilizar diferentes plataformas de hardware por diferentes meios de comunicação. Esta tarefa se tornou muito complexa pela necessidade de tratar adequadamente todos os detalhes envolvidos na comunicação de forma independente da tecnologia utilizada.


18

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

O problema da comunicação foi então subdividido em camadas dispostas hierarquicamente, onde cada camada possui uma tarefa específica. A quantidade, o nome e as funções de cada camada diferem de uma rede para outra mas, de uma forma geral, a camada n de uma máquina conversa com a camada n da outra utilizando um protocolo de comunicação de camada n. A função de cada camada é fornecer serviços para a camada acima, assim, a camada n, denominada provedora do serviço, fornece serviços para a camada n+1, denominada usuária do serviço. Cada camada transfere os dados e demais informações de controle para a camada imediatamente inferior até atingir o nível mais baixo, relacionado ao meio físico. São objetivos do modelo de camadas: • reduzir a complexidade; • padronizar as interfaces; • modularidade; • garantir a interoperabilidade; • acelerar a evolução; • reduzir conflitos entre equipamentos; • simplificar o desenvolvimento. Um conjunto de camadas de protocolos é denominado arquitetura de rede e uma lista de protocolos, um por camada, utilizados por um determinado sistema é denominado pilha de protocolos. O modelo de camadas possui uma nomenclatura própria onde os termos mais relevantes serão descritos a seguir: Entidade: é o elemento ativo em uma camada. Entidade par: são as entidades de uma mesma camada porém em diferentes máquinas. SAP – Service Access Point: os SAPs da camada n identificam onde a camada n+1 pode ter acesso aos serviços oferecidos. Cada SAP é identificado de forma exclusiva através de um endereço. IDU – Interface Data Unit: a troca de informações entre duas camadas só é possível através do conhecimento das regras de interface. A entidade da camada n+1 para uma IDU para a entidade da camada n através de um SAP. É composta pela SDU e informações adicionais de controle (ICI). SDU – Service Data Unit: é a informação passada pela rede para a entidade par e para a camada n+1.


Conceitos de Redes de Computadores

19

PDU – Protocol Data Unit: se for necessário, a entidade da camada n pode fragmentar a SDU atribuindo à cada parte um cabeçalho que informa à entidade par na máquina destino como recompor a SDU original. A Figura 2.9 mostra a relação entre camadas e interfaces.

Figura 2.9: Relação entre camadas e interfaces [Tanenbaum (2003)].

2.6

PROTOCOLOS DE REDE E O SISTEMA OPERACIONAL LINUX

O sistema operacional Linux suporta diferentes protocolos de rede. O protocolo TCP/IP está presente desde as primeira versão e é considerado o protocolo padrão. Para a utilização de outros protocolos serão necessárias rotinas extras de instalação. 2.6.1

TCP/IPv6

O protocolo IPv6 é uma atualização do protocolo Ipv4 visando resolver questões como a escassez de endereços disponíveis, tratamento de tráfego e melhoria nos padrões de segurança. É suportado a partir do kernel 2.1.9 mas para que seja ativado o kernel deverá ser recompilado. 2.6.2

SPX/IPX (Internet Packet Exchange/Sequenced Packet Exchange)

É um protocolo proprietário desenvolvido pela Novell baseado no protocolo Xerox Network Systems (XNS). Foi difundido nos anos 80 como o protocolo padrão do Netware, sistema operacional de rede distribuído pela Novell.


20

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

A implementação deste protocolo no Linux permite a configuração de um roteador IPX, de clientes e servidores para compartilhamento de arquivos e impressão e de conexão PPP/IPX.

2.7 WEB SITES RECOMENDADOS The living Internet http://www.livinginternet.com ICANN http://www.icann.org IEEE http://www.ieee.org ACM http://www.acm.org LDP-BR http://br.tldp.org Playground.SUN http://playground.sun.com


3 MODELOS DE REFERÊNCIA

Como visto no Capítulo 2, o modelo de camadas tem como objetivo reduzir a complexidade da implementação através de abstrações onde uma camada não precisa conhecer os detalhes de implementação das demais. Esta característica garante ainda maior facilidade de manutenção tendo em vista que uma camada deve se preocupar apenas em utilizar os serviços da camada inferior, independentemente da implementação do protocolo daquela camada. Dois modelos baseados em camadas merecem particular destaque: OSI e TCP/IP. Estes modelos serão descritos com mais detalhes a seguir.

3.1

MODELO DE REFERÊNCIA OSI

O modelo OSI é um modelo de referência que se limita a definir as funções de cada camada sem especificar os serviços e protocolos que devem ser usados em cada camada, logo, não é uma arquitetura de rede. Divide o escopo do protocolo em sete camadas, que obedecem as regras dos modelos de camadas: • cada camada possui um nível de abstração próprio; • cada camada desempenha uma função muito bem definida segundo padrões internacionais; • as fronteiras entre as camadas minimiza o fluxo de informações pelas interfaces; • possui um número de camadas suficiente para que não seja necessário agrupar funções em uma mesma camada nem inviabilizar a implementação da arquitetura. As camadas podem ainda ser agrupadas funcionalmente: • as camadas física, enlace e de rede estão relacionadas aos aspectos da transmissão de dados propriamente dita e compõem a sub-rede de comunicação, conforme mostra a Figura 3.1. • a camada de transporte realiza a comunicação fim-a-fim.


22

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

• as três camadas superiores (sessão, apresentação e aplicação) estão relacionadas a lógica da aplicação.

Figura 3.1: Modelo de Referência OSI [Tanenbaum (2003)].

A transmissão dos dados através das camadas é ilustrado na Figura 3.2, onde se pode visualizar que cada camada insere sua identificação na mensagem original. Esta identificação será reconhecida e removida pela entidade par. As camadas adjacentes se comunicam através de primitivas de serviços. No modelo OSI são definidos quatro tipos de primitivas: Request: utilizada por uma entidade para solicitar um serviço; Indication: informa uma entidade sobre a ocorrência de um evento; Response: utilizada por uma entidade para responder a um evento; Confirmation: utilizada para confirmar uma solicitação anterior. Os conceitos de serviço e protocolos são comumente confundidos [Tanenbaum (2003)]. De forma resumida pode-se definir: Serviço: é o conjunto das operações disponíveis oferecidas a camada superior adjacente;


Modelos de Referência

23

Figura 3.2: Os cabeçalhos de cada camada no modelo OSI [Soares, Lemos & Colcher (1995)].

Protocolo: é o conjunto de regras que controla o formato e significado do conteúdo trocado entre entidades pares em uma camada. Os protocolos são utilizados para implementar os serviços. As camadas do modelo OSI estão sintetizadas na Tabela 3.1 e são descritas a seguir. 3.1.1

Camada Física

A camada física trata da transmissão de bits através de um canal de comunicação. Por ser a única camada que tem acesso físico ao meio de transmissão é a camada que se responsabiliza pela adaptação do sinal ao meio de transmissão. Deve garantir a equivalência entre o que é considerado bit 0 e o que é considerado bit 1, considerando: • a quantidade de volts utilizada para representar o bit 0 e o bit 1; • a duração de um bit; • o fluxo de transmissão (bidirecional ou não); • a forma de conexão e encerramento; • a quantidade de pinos do conector e como serão utilizados.


24

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Tabela 3.1: Resumo das características do modelo OSI.

Num 7

Identificação Aplicação

Função Interface para aplicações

6

Apresentação

Representação de dados.

5

Sessão

Comunicação interhosts.

4

Transporte

Conexão ponto-a-ponto.

3

Rede

Endereçamento.

2

Enlace

Acesso aos meios.

1

Física

Transmissão digital.

O projeto desta camada está relacionado às especificações elétricas, mecânicas e funcionais entre a interface física e o meio de comunicação. Equipamentos como hubs e repeters (repetidores) atuam estritamente nessa camada copiando bits entre segmentos de cabo. 3.1.2

Camada de Enlace

A principal tarefa de desta camada é a detecção e, opcionalmente, também a correção, de erros não detectados nas camadas adjacentes. O emissor divide a mensagem em quadros incluindo, no início e no término de cada quadro, padrões de bits especiais. São funções da camada de enlace: • fornecer uma interface de serviços à camada de redes; • determinar como os bits da camada física serão agrupados em quadros; • detectar erros de transmissão; • controlar o fluxo de quadros. A camada de enlace fornece como serviço à camada de redes a transferência de um dado da camada de rede da máquina de origem para a camada de rede da máquina de destino. Este serviço pode ser oferecido em basicamente três formatos: Serviço sem conexão e sem confirmação: a máquina de origem envia quadros independentes entre si à máquina de destino e esta não confirma o recebimento destes quadros; Serviço sem conexão e com confirmação: também não há conexão, porém a máquina de destino envia mensagem de confirmação à origem a cada quadro recebido;


Modelos de Referência

25

Serviço orientado a conexão: a máquina de origem estabelece uma conexão com a máquina de destino antes de iniciar a transferência de dados. Os quadros enviados durante a conexão são numerados de tal forma que a camada de enlace possa garantir o recebimento dos quadros em ordem e uma única vez. Os adaptadores de rede dos nós possuem endereços de camada de enlace também denominados endereço MAC (Media Access Control), que, para a maioria da LANs, possuem 6 bytes (248 possíveis endereços) expressos tipicamente em notação hexadecimal. Como também existe endereçamento na camada de rede, como o IP, é preciso fazer uma tradução de um para o outro. Esta tradução é feita pelo protocolo ARP (Address Resolution Protocol) para nós de uma mesma sub-rede. Ao solicitar um endereço de rede o computador destino responde com o endereço MAC. Os endereços relacionados são mantidos em uma tabela ARP. No Linux, esta tabela é tratada pelo comando arp, basicamente para fins de depuração. Para ver o conteúdo da tabela arp, use o comando “arp -a”. Atuam na camada de enlace equipamentos do tipo bridge (ponte), cuja função é armazenar e remeter quadros entre LANs. 3.1.3

Camada de Rede

A camada de rede é responsável por estabelecer como os dados serão entregues partindo de um computador de origem para um destino. Estes computadores podem ou não estar em uma mesma rede. É a última camada onde todos os computadores da sub-rede tomam parte. Oferece serviços à camada de transporte através de uma interface que, em geral, representa a fronteira entre a concessionária de comunicação e o usuário. Estes serviços devem ser independentes da tecnologia da sub-rede. As funções da camada de rede estão relacionadas a roteamento e controle de congestionamento e incluem: • definir endereços; • definir estratégia de conexão; • definir rotas a serem seguidas pelos pacotes; • definir técnicas para tratamento de congestionamentos. São implementadas duas estratégias para os serviços oferecidos pela camada de redes: circuito virtual e datagrama. Circuito Virtual: uma conexão é estabelecida entre o transmissor e o receptor de tal forma que todo o tráfego entre eles utilize essa rota. Quando a conexão é liberada, o circuito virtual deixa de existir.


26

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Datagrama: nenhuma rota é previamente definida, mesmo que o serviço seja orientado à conexão. Cada pacote enviado é roteado independentemente de seus antecessores. Em ambos os casos, a determinação do melhor caminho é feita por um algoritmo de roteamento, responsável pela escolha sobre a linha de saída a ser usada na transmissão de um pacote de entrada. Esses algoritmos são classificados em: Adaptativos: executam roteamento dinâmico, isto é, considerando alterações de topologia e tráfego na rede; Não adaptativos: executam roteamento estático, ou seja, de rota fixa independente das condições da rede. A comunicação entre redes e a escolha de rotas são suportadas por equipamentos chamados routers (roteadores), que atuam encaminhando os pacotes. 3.1.4

Camada de Transporte

A camada de transporte provê mecanismos que possibilitam a comunicação fim-a-fim, ou seja, não se comunica com máquinas intermediárias na rede, como pode ocorrer com as camadas inferiores. As funções básicas desta camada incluem: • receber os dados da camada de sessão e dividi-los em unidades menores, se necessário, repassando-os à camada de rede; • certificar-se de que todas as unidades da mensagem chegaram corretamente ao destino. Oferece serviços orientados à conexão e não orientados à conexão. No primeiro caso é necessário estabelecer uma conexão entre origem e destino antes do envio de mensagens, lembrando que esta conexão deve ser desfeita ao término da transmissão. No segundo caso, cada envio é independente do anterior. Estes serviços atuam como um supervisor de qualidade de serviço oferecido pela camada de rede. A avaliação de qualidade da camada de transporte se baseia em: Retardo no estabelecimento de uma conexão: tempo decorrido entre a solicitação de um conexão de transporte e o recebimento de confirmação pelo usuário do serviço; Falhas no estabelecimento de uma conexão: possibilidade da conexão não se estabelecer dentro de um período máximo estabelecido; Desempenho: número de bytes de dados transmitidos por segundo durante um determinado intervalo de tempo;


Modelos de Referência

27

Retardo de trânsito: tempo transcorrido desde o envio de uma mensagem pelo usuário de transporte da máquina de origem até seu recebimento pelo usuário de transporte da máquina destino; Taxa de erros: percentual de mensagens perdidas ou corrompidas do total enviado; Proteção: configuração para impedir leitura ou modificação dos dados; Prioridade: indicação de que uma conexão pode ser mais importante que outra, para atendimento prioritário em caso de congestionamento; Resiliência: permissão para finalizar conexão devido a problemas internos ou congestionamento. Dependendo da qualidade de serviço desejada, as entidades pares negociam uma das cinco classes de serviços: classe 0: nenhum mecanismo de detecção e recuperação de erros; classe 1: permite a retomada da comunicação entre duas entidades de transporte após a interrupção de rede; classe 2: permite que várias conexões de transporte sejam multiplexadas sobre uma única conexão de rede; classe 3: agrupa classes 1 e 2; classe 4: definida para atuar sobre serviços de rede não confiáveis. As funções da camada de transporte vão então depender do ambiente em que vão atuar, assim como da natureza dos serviços que irão oferecer. 3.1.5

Camada de Sessão

A principal função desta camada é oferecer meios para o estabelecimento de conexões, denominadas sessões, de modo que estes possam trocar dados. Os serviços oferecidos podem ser úteis às aplicações: gerência do controle de diálogo: organização da troca de informações entre entidades em um circuito half-duplex 1 controlada através da utilização de tokens; sincronização: determinação de marcas lógicas no diálogo de forma a permitir o reinicio da comunicação caso haja interrupção a partir da última marca enviada e confirmada; gerenciamento de atividades: divisão do fluxo de dados em atividades específicas como, por exemplo, transferência de um arquivo onde o início da atividade é marcado pelo inicio da transferência e o término da atividade pelo término da transferência. 1 Comunicação

em um sentido de cada vez.


28

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

As camadas de sessão e transporte podem aparentar algumas semelhanças mas são particularmente diferentes nos procedimentos de liberação da conexão. Na camada de transporte pode ocorrer uma liberação abrupta da conexão permitindo a perda de dados em trânsito enquanto na camada de sessão a primitiva responsável por essa ação garante uma liberação ordenada. 3.1.6

Camada de Apresentação

A camada de apresentação foi concebida para tratar a representação dos dados a serem transmitidos. Inicialmente a função desta camada estava restrita a conversão entre codificação ASCII e EBCDIC, mas hoje assume a responsabilidade pela criptografia e compressão de dados. 3.1.7

Camada de Aplicação

Responsável pelo gerenciamento dos programas de usuário (aplicações) que executam em máquinas que utilizam a rede para troca de informações. É a camada visível ao usuário e deve adaptar os processos ao ambiente de comunicação. Atualmente, as aplicações de rede mais conhecidas são: • correio eletrônico; • web; • mensagem instantânea; • login em computador remoto; • compartilhamento de arquivos; • jogos; • videoconferência; • telefonia. Podemos observar que as aplicações envolvem pares de processos e, para tal, utilizam arquiteturas P2P ou cliente/servidor. Todas as mensagens enviadas de um processo para outro se utilizam da rede de comunicação. Um processo envia e recebe mensagens através de sockets, que funcionam como portas virtuais entre o processo e a rede. Escrever em um socket significa enviar mensagens pela rede assim como ler de um socket significa receber mensagens da rede. Socket trambém é definido como uma interface de programação da aplicação. A Figura 3.3 ilustra a comunicação entre dois processos utilizando o protocolo TCP na camada de transporte. Para que um processo envie uma mensagem a outro processo em outro computador é necessário que o processo de origem conheça a localização do processo destino. Se tomarmos uma aplicação Internet como exemplo, o endereço do


Modelos de Referência

29

processo destino é dado pelo endereço IP do computador hospedeiro acrescido de um identificador do processo na máquina. Este identificador é conhecido através de um número de porta.

Figura 3.3: Processos de aplicação [Kurose & Ross (2006)].

De uma forma geral são funções da camada de aplicação: • seleção do modo de diálogo (full-duplex ou half-duplex); • determinação da qualidade de serviço aceitável na conexão; • identificação dos futuros parceiros na comunicação por nome ou endereço; • especificação de aspectos relativos à segurança como controle de acesso, integridade de dados, etc. Alguns protocolos específicos da camada de aplicação serão abordados no item referente ao modelo TCP/IP por serem mas conhecidos em função da Internet.

3.2

MODELO DE REFERÊNCIA TCP/IP

O nome deste modelo é oriundo dos principais protocolos da pilha: protocolo de serviço de rede IP (Internet Protocol) e o de serviço de transporte TCP (Transmission Control Protocol). Apesar de não serem os únicos, são os mais populares em função da ampla utilização por aplicações Internet. Diferente do modelo OSI, os protocolos da Internet não foram criados por órgãos internacionais de padronização, e são mantidos pelo comitê IAB (Internet Activity Board), membro da IETF (The Internet Engineering Task Force). Este comitê é responsável pela análise de qualquer novo protocolo para Internet. As propostas são submetidas através


30

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

de uma RFC (Request for Comments) que será avaliada e então publicada com ou sem alterações. Se após seis meses da data de publicação o comitê não receber nenhuma objeção a RFC torna-se um padrão Internet (IS - Internet Standard). Este modelo possui quatro camadas, embora alguns autores se refiram a cinco2 , onde cada uma executa um conjunto de funções de comunicação implementando protocolos próprios e fornecendo interfaces para a camadas adjacentes. Este modelo está ilustrado na Figura 3.4 e as camadas estão resumidas na Tabela 3.2.

Figura 3.4: Comunicação TCP/IP [Soares, Lemos & Colcher (1995)].

Tabela 3.2: Resumo das características do modelo TCP/IP.

2A

Num 4

Identificação Aplicação

Função Interface para aplicação.

3

Transporte

Conexão ponto-a-ponto.

2

Internet ou Inter-rede

Endereçamento.

1

Rede

Transmissão digital.

camada de rede é subdividida em camada física e camada de acesso à rede.


Modelos de Referência

3.2.1

31

Camada de Rede

Esta camada não é normatizada pelo modelo em função da grande variedade de tecnologias de rede existente como, por exemplo, X.25, ATM, FDDI, Ethernet, Token Ring e Frame Relay. É necessário que haja uma interface para a camada internet para ser possível transmitir a mensagem ao endereço de destino independente do meio. Esta característica garante a possibilidade de interconexão de redes heterogêneas. A camada de rede é responsável pelo envio de datagramas construídos pela camada internet executando também o mapeamento entre um endereço internet para um endereço do nível de rede. 3.2.2

Camada de Internet ou Inter-rede

Essa camada é a primeira normatizada do modelo e é responsável pelo endereçamento, roteamento, controle de envio e recepção de datagramas. Deve garantir que pacotes enviados de qualquer rede sejam transmitidos independente do seu destino. De forma simplificada podemos dizer que as funções desta camada são divididas entre: Repasse ao receber um pacote no enlace de entrada deve conduzi-lo ao enlace de saída. Este termo é em geral utilizado para se referir à ação local realizada por um roteador; Roteamento determina a rota ou caminho tomado pelo pacote. Os algoritmos que calculam este caminho são denominados algoritmos de roteamento. A camada de inter-rede define também um formato de pacote oficial e um protocolo, denominado IP (Internet Protocol), responsável pela função mais importante desta camada: roteamento. Atualmente existem duas versões deste protocolo referenciadas por IPv4 e IPv6. O formato do datagrama IPv4 está ilustrado na Figura 3.5. É responsável ainda pela montagem do datagrama IP a partir do segmento recebido pela camada de transporte e montagem do segmento para a camada de transporte a partir de datagramas IP recebidos da camada de rede. Esta camada possui ainda protocolos auxiliares que utilizam a estrutura de entrega de datagramas IP: ICMP (Internet Control Message Protocol) desempenha funções de controle, notificação de erros e redirecionamento de rotas. Usado por computadores e roteadores para troca de informações de controle da camada de rede. É utilizado pela aplicação ping. IGMP (Internet Group Management Protocol) procolo de gerenciamento de grupo que permite aos hosts ingressar ou abandonar grupos multicast. RIP, OSPF e BGP respectivamente Routing Information Protocol, Open Shortest Path First e Border Gateway Protocol, são implementações de algoritmos de roteamento.


32

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Figura 3.5: Formato do datagrama IPv4 [Kurose & Ross (2006)].

3.2.3

Camada de Transporte

Camada fim-a-fim, isto é, uma entidade desta camada só se comunica com a sua entidade-par do host destinatário. O acesso das aplicações à camada de transporte é feito através de portas3 que recebem um número inteiro para cada tipo de aplicação. Os protocolos desta camada são o TCP e o UDP. TCP (Transmission Control Protocol) É um protocolo orientado à conexão, ou seja, antes que os processos de aplicação comecem a trocar dados precisam estabelecer uma conexão através do envio de segmentos preliminares para determinação dos parâmetros de transferência. Como são trocados 3 segmentos entre os hospedeiros para estabelecimento da conexão (cliente->servidor>cliente->servidor) o procedimento é usualmente chamado de 3-way handshake. Provê ainda um serviço full-duplex e transferência confiável de dados. UDP (User Datagram Protocol) É um protocolo mais simples e mais mais leve que o TCP por não ser orientado à conexão nem confiável. Permite o envio imediato das mensagens recebidas de uma aplicação para a camada de inter-rede após empacotá-la em um segmento UDP. Os segmentos UDP e TCP estão ilustrados nas Figuras 3.6 e 3.7, respectivamente. 3O

termo porta foi consagrado pelo uso como tradução de port porém a tradução correta seria porto.


Modelos de Referência

33

Figura 3.6: Segmento UDP [Kurose & Ross (2006)].

Figura 3.7: Segmento TCP [Kurose & Ross (2006)].

A escolha de qual protocolo usar recai na necessidade da aplicação em obter ou não um serviço confiável de transferência de dados. Na Tabela 3.3 estão alguns exemplos de aplicações com os respectivos protocolos de transporte mais comumente utilizados.


34

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Tabela 3.3: Aplicações da Internet e seus protocolos de transporte.

Correio Eletrônico

Protocolo da camada de Protocolo da camada de aplicação transporte SMTP TCP

Acesso a terminal remoto

Telnet

TCP

Web

HTTP

TCP

Telefonia por internet

Proprietário

Tipicamente UDP

Gerenciamento de rede

SNMP

Tipicamente UDP

Tradução de nomes

DNS

Tipicamente UDP

Aplicação

3.2.4

Camada de Aplicação

Formada pelos protocolos utilizados nas diversas aplicações do modelo TCP/IP. Esta camada não possui um padrão comum. O padrão é estabelecido por cada aplicação como, por exemplo, FTP, HTTP e SMTP. A Figura 3.8 ilustra uma aplicação que envolve a comunicação entre dois processos utilizando o protocolo TCP na camada de transporte. Para que um processo envie uma mensagem a outro processo em outro computador é necessário que o processo de origem conheça a localização do processo destino. Se tomarmos uma aplicação Internet como exemplo, o endereço do processo destino é dado pelo endereço IP do computador hospedeiro acrescido de um identificador do processo na máquina (porta).

Figura 3.8: Processos de aplicação [Kurose & Ross (2006)].


Modelos de Referência

35

A Tabela 3.4 mostra a relação das aplicações mais usuais e as respectivas portas padrão. Tabela 3.4: Serviços da camada de aplicação.

Serviço FTP

Porta 21

Descrição Transferência de arquivos.

Telnet

23

Conexão remota a um host.

SMTP

25

Envio de e-mail.

DNS

53

Tradução de nomes para endereço IP.

HTTP

80

Acesso a web.

POP3

110

Recebimento de e-mail.

MSN

569

Mensagem instantânea.

Na Figura 3.9 estão ilustrados os protocolos de cada camada.

Figura 3.9: Protocolos do conjunto TCP/IP [Stallings (2005)].

3.3

ENDEREÇAMENTO IP

Em uma rede TCP/IP, cada equipamento possui um endereço único que o identifica. Este endereço, denominado endereço IP, possui 32 bits no padrão IPv4 e 128 bits no padrão IPv6. Utilizaremos para estudo o padrão IPv4 onde os 32 bits são divididos em quatro octetos. Parte do endereço é utilizado para identificar a rede e parte para identificar um host dentro da rede, conforme mosta a Figura 3.10. Os hosts com uma mesma identificação de rede compõem uma sub-rede e falam entre si sem a necessidade de um roteador.


36

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Figura 3.10: Endereço IP.

Estes endereços estão agrupados em classes de acordo com o número de bits destinado a parte que identifica a rede e a que identifica o host, conforme descrito a seguir: Classe A o primeiro octeto identifica a rede e os três restantes o host; Classe B os dois primeiros octetos identificam a rede e os demais o host; Classe C os três primeiros octetos identificam a rede e o quarto o host; Classe D utilizada para definição de grupos multicast; Classe E reservada para implementações futuras. A Figura 3.11 mostra as classes IP em notação binária.

Figura 3.11: Classes de endereços IP.

Os endereços IP da classe A são usados em locais onde é necessário uma única rede com um grande número de computadores conectados. A classe B é utilizada quando o número de redes equivale à quantidade de computadores e a classe C é utilizada em


Modelos de Referência

37

locais que necessitam de um grande número de redes com poucas máquinas em cada uma. A classe D é reservada para multicast e a classe E para evoluções futuras. A Tabela 3.5 mostra o intervalo de endereços para cada classe. Tabela 3.5: Classes de endereços IP.

Classe A

Redes Válidas 1.0.0.0 a 126.0.0.0

Endereços Válidos 1.0.0.1 a 126.255.255.254

Hosts 16.777.214

Redes 126

B

128.0.0.0 a 191.255.0.0

128.0.0.1 a 191.255.255.254

65.534

16.382

C

192.0.0.0 a 223.255.255.0

192.0.0.1 a 223.255.255.254

254

2.097.150

As classes de endereços dividem os endereços em campos de tamanho fixo distinguindo rede e host, e são utilizadas pelos protocolos de roteamento. Em 1993, foi introduzido o CIDR (Classless Inter-Domain Routing) usando máscaras de comprimento variável denominadas VLSM (Variable Length Subnet Masks). Este novo padrão permitiu melhor alocação dos endereços IP de acordo com a necessidade de cada rede. A divisão entre rede e host pode ocorrer em qualquer um dos bits de endereço, e este novo sistema foi chamado de roteamento sem classe. A notação utilizada para o intervalo de endereços CIDR começa com o endereço de rede seguido por um caractere separador e o comprimento de um prefixo, em bits, definindo o tamanho da rede, exemplificado a seguir: 192.168.0.0/24 representa os 256 endereços IPv4 de 192.168.0.0 até 192.168.0.255 inclusive, onde 192.168.0.255 é o endereço de broadcast para a rede. Alguns endereços possuem características especiais conforme descrito nas sub-seções seguintes. 3.3.1

Endereços privados Classe A: 10.0.0.0 – 10.255.255.255 Classe B: 172.16.0.0 – 172.31.255.255 Classe C: 192.168.0.0 – 192.168.255.255

3.3.2

Classe de loopback (local)

O endereço de loopback local (127.0.0.0) permite à aplicação endereçar um servidor na mesma máquina sem conhecer o endereço do host.


38

3.3.3

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

APIPA (Automatic Private IP Addressing)

É um endereço IP 169.254.x.x que é atribuído a uma interface de rede configurada para receber um endereço IP de um servidor DHCP e não há um servidor DHCP disponível. 3.3.4

Endereço de broadcast

Os endereços de broadcast permitem à aplicação enviar dados para todos os hosts de uma rede. É identificado pelo último endereço possível na rede. 3.3.5

Máscara de sub-rede

Porção do endereço IP onde todos os bits de maior ordem são 1 e todos os bits de mais baixa ordem são 0. Os bits com valor 1 representam a porção da rede do endereço, e com valor 0 representam a porção host. Indica onde termina o endereço de rede e começa o do host.

3.4

COMPARAÇÃO ENTRE OS MODELOS DE REFERÊNCIA

As principais diferenças entre os modelos são descritas a seguir e ilustradas na Figura 3.12: • quantidade de camadas diferentes; • TCP/IP não distingue claramente os conceitos de serviço, interface e protocolo; • OSI não foi baseado em nenhum protocolo existente; • TCP/IP foi baseado em protocolos de fato; • os protocolos TCP e UDP introduziram o conceito de portas, permitindo a multiplexação da conexão; • a camada de rede do modelo OSI prevê serviços com ou sem conexão enquanto no modelo TCP/IP, apenas sem conexão; • o modelo OSI foi definido antes dos protocolos, enquanto o modelo TCP/IP é a arquitetura resultante de protocolos que já existiam.

3.5

DESENVOLVIMENTO DE APLICAÇÕES EM REDE

As aplicações em rede podem ser de baixo nível ou de alto nível. No primeiro caso estamos falando do uso de sockets que atuam sobre a camada de transporte e no segundo, de ferramentas que atuam sobre as camadas de sessão, apresentação e aplicação.


Modelos de Referência

39

Figura 3.12: Comparação entre os modelos OSI e TCP/IP.

3.5.1

Utilizando sockets TCP

Sockets são mecanismos genéricos de IPC com suporte a comunicação via rede, mas podem ser utilizados também para comunicação entre processos em uma mesma máquina. O desenvolvimento de aplicações utilizando diretamente as primitivas de comunicação implica no conhecimento das características da rede e localização do processo servidor. Utilizaremos como exemplo uma aplicação cliente/servidor tendo o protocolo TCP na camada de transporte, isto é, com procedimento de conexão, conforme ilustrado na Figura 3.13. As funções utilizadas estão descritas a seguir com a respectiva implementação em linguagem C e estão definidas nos cabeçalhos sys/types.h e sys/socket.h. Socket Função utilizada tanto pelo cliente quanto pelo servidor para abrir um socket criando um ponto de comunicação e retornando um descritor inteiro positivo se a criação for bem sucedida, ou -1 caso contrário. int socket(int domínio, int tipo, int protocolo)


40

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Figura 3.13: Comunicação TCP utilizando sockets.

domínio seleciona a família de protocolos entre: • AF_UNIX, utilizado somente entre processos Unix e; • AF_INET, para processos em computadores diferentes. tipo define o tipo de conexão entre: • SOCK_STREAM, confiável, bidirecional e orientada a conexão, tipicamente implementado pelo TCP e; • SOCK_DGRAM, não confiável, sem conexão e tipicamente implementada pelo UDP. protocolo especifica o protocolo que será utilizado embora exista apenas um disponível para cada tipo. O valor 0 (zero) implica no uso do padrão: • tipo SOCK_STREAM implica em TCP; • tipo SOCK_DGRAM implica em UDP. Bind Associa um socket a uma conexão física identificada pelo número de uma porta em conexões do tipo AF_INET ou por um caminho em conexões AF_UNIX. int bind (int socket, const struct sockaddr *address, size_t address_len) socket descritor retornado pela chamada à função socket; address_len tamanho em bytes da estrutura apontada por *address;


Modelos de Referência

41

address estrutura utilizada para definir o nome da família e detalhes do protocolo. Para domínios AF_INET é utilizada a estrutura sockaddr_in definida por: struct sockaddr_in{ short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8];

// // // // // //

AF_INET número da porta INADDR_ANY, para conexão de qualquer host para que o tamanho seja igual ao de sockaddr

} Listen Um servidor pode processar diversas conexões em uma mesma porta criando processos filhos ou threads para atender às requisições. Estes servidores são chamados de concorrentes. No entanto, enquanto o servidor está processando uma requisição de conexão não poderá atender a novas requisições, e estas serão armazenadas em uma fila até serem atendidas. A função listen especifica quantas requisições poderão ficar pendentes antes que o servidor recuse a conexão enviando um ECONNREFUSED ao processo cliente. int listen (int socket, int backlog) socket descritor retornado pela chamada à função socket; backlog número máximo de requisições pendentes. As funções socket, bind e listen podem ser agrupadas para formar uma função de inicialização do processo servidor recebendo como parâmetro a porta que será utilizada. int open_servidor(unsigned short port){ int sock; struct sockaddr_in server; sock = socket(AF_INET,SOCK_STRAM,0); if (sock < 0) return -1; server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANT; server.sin_port = htons((short) port);


42

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

if ( bind(sock, (struct sockaddr *)&server, sizeof(server)) < 0 ) \ return -1; if (listen(sock, MAXBACKLOG) < 0 ) return -1; return sock; } Neste exemplo, a constante MAXBACKLOG é definida anteriormente e a função htons (host to network short) faz a conversão para o tipo necessário e deve ser usada para manter a portabilidade. Accept Depois da criação de uma interface para a conexão física, o servidor deverá aguardar por uma conexão executando a função accept. Para um mesmo socket poderão ser efetuadas diversas conexões. Cada conexão receberá um descritor próprio como retorno da função. int accept (int socket, struct sockaddr *address, int *address_len) socket descritor retornado pela chamada à função socket; address_len tamanho em bytes da estrutura apontada por *address; address estrutura utilizada para definir o nome da família e detalhes do protocolo. Difere da função bind por utilizar informações do cliente que fez a conexão no campo s_addr. Connect Função executada pelo processo cliente para estabelecer conexão com um servidor. É necessário que o servidor esteja esperando uma conexão, ou seja, que já tenha executado o accept. int connect (int socket, struct sockaddr *address, size_t address_len) socket descritor retornado pela chamada à função socket; address_len tamanho em bytes da estrutura apontada por *address; address estrutura utilizada para identificar o servidor. As funções socket e connect podem ser agrupadas para formar uma função que estabelece uma conexão com o servidor, recebendo como parâmetros a porta e o endereço


Modelos de Referência

43

IP do servidor. int open_cliente(unsigned short port, char * host){ struct sockaddr_in server; struct hostent *hp; int sock; int retval; sock = socket (AF_INET, SOCK_STREAM,0); if (sock < 0) return -1; server.sin_addr.s_addr = inet_addr(host); server.sin_port = htons((short)porta); server.sin_family = AF_INET; memset( &(server.sin_zero), ’\0’ , sizeof(server.sin_zero)); retval = connect(sock, (struct sockaddr *)&server, sizeof(server)); if (retval == -1) { close(sock); return -1; } return sock; }

Close Encerra uma conexão ou um socket, dependendo do descritor que for utilizado como parâmetro. int close (int socket) socket descritor do socket ou da conexão. Write ou Send São utilizadas para enviar dados através de um socket. A função write é executada da mesma forma que na escrita em arquivos em disco, onde o descritor do arquivo é o descritor do socket, porém a função send oferece recursos adicionais através de flags especiais. Ambas retornam a quantidade de bytes escritos ou -1 em caso de erro.


44

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

int write(int socket, char *msg, size_t msg_len) int send(int socket, char *msg, size_t msg_len, int flags) socket descritor retornado pela chamada à função socket; msg mensagem que será transmitida; msg_len tamanho em bytes de msg; flags modificadores de comportamento: • MSG_OOB, permite envio mensagens out-of-band 4 ; • MSG_DONTROUTE, mensagem deve ser entregue diretamente ao destino, • MSG_DONTWAIT, processo não é bloqueado enquanto a mensagem é enviada; • MSG_NOSIGNAL, desabilita a emissão do sinal SIGPIPE quando o socket destinatário quebra a conexão; • MSG_CONFIRM, habilita o envio de mensagem de confirmação para o remetente. Read ou Recv São funções utilizadas para receber uma mensagem através de um socket. De forma semelhante ao write, ambas executam a mesma função, porém recv permite o uso de flags adicionais. Ambas retornam a quantidade de bytes lidos ou -1 em caso de erro. int read(int socket, char *msg, size_t msg_len) int recv(int socket, char *msg, size_t msg_len, int flags) flags modificadores de comportamento: • MSG_OOB, permite recepção de mensagens out-of-band; • MSG_PEEK, desabilita a retirada da mensagem da fila de recepção quando for recebida; • MSG_WAITALL, habilita o bloqueio do processo até que a mensagem seja totalmente recebida ou que ocorra um erro; • MSG_NOSIGNAL, desabilita a emissão do sinal SIGPIPE quando o remetente deixa de existir; • MSG_TRUNC, habilita a recepção de mensagem com o tamanho real do pacote recebido mesmo que ultrapasse o tamanho do argumento msg_len; • MSG_ERRQUEUE, especifica que os erros de conexão devem ser tratados em uma fila especial. 4 Técnica

para transmitir mensagens de controle em um canal separado.


Modelos de Referência

45

Exemplo: O processo cliente faz uma conexão com o servidor que responderá com a data e hora corrente. O cliente utiliza esta resposta para ajustar o próprio relógio. Edite os programas das Figuras 3.14 e 3.15 e os compile utilizando os seguintes comando: gcc -o client client.c (para o cliente) gcc -o server sever.c (para o servidor) Execute cada um na mesma máquina (em sessões diferentes) ou em máquinas diferentes da seguinte forma: cliente: ./client ip porta servidor: ./server porta

// arquivo cliente.c #include <stdio.h> #include <sys/socket.h> #include <netdb.h> #include <errno.h> #include <time.h> #define BLKSIZE 1024 int open_cliente(unsigned short port, char * host); int main(int argc, char *argv[]){ unsigned short port; int fd; time_t data; if (argc!=3) { printf("Utilizacao: %s host port\n\r",argv[0]); exit(1); } port = (unsigned short) atoi(argv[2]); fd = open_cliente(port,argv[1]); if (fd<0) { perror("Conexao"); exit(1); } printf("Conexao estabelecida com %s\n\r",argv[1]); /* a conexao ja e a motivacao para o servidor enviar o dado desejado*/ read(fd,&data,4); stime(&data); //ajuste do relógio close(fd); }

Figura 3.14: Código do programa cliente.c


46

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

// arquivo servidor.c #include #include #include #include #include

<stdio.h> <sys/socket.h> <netdb.h> <errno.h> <time.h>

#define BLKSIZE 1024 #define MAXBACKLOG 5 int open_servidor(unsigned short port); int main(int argc, char *argv[]){ unsigned short port; int fd, conexao, sock; time_t data; struct sockaddr_in client; int len = sizeof(struct sockaddr); if (argc!=2) { printf("Utilizacao: %s port\n\r",argv[0]); exit(1); } port = (unsigned short) atoi(argv[1]); if ((fd = open_servidor(porta)) == -1) { perror("Socket"); close(fd); exit(1); } for (; ;){ conexao = accept (fd, (struct sockaddr *) (&client), &len)) ; if (conexao >= 0){ printf("Conectado... \r\n"); time(&data); // obtém data/hora corrente write(conexao,&data,sizeof(data)); close(conexao); } else perror("Conexão"); } }

Figura 3.15: Código do programa servidor.c

3.6

UTILIZANDO RPC

RPC (Remote Procedure Call) é o nome genérico para soluções que permitem clientes chamarem procedimentos remotos como se fossem procedimentos locais. O desenvol-


Modelos de Referência

47

vimento de aplicações baseadas em RPC são feitas supondo transparência em relação a localização física e a arquitetura do servidor. O sistema de arquivos NFS é um exemplo de implementação baseada em RPC. Para que um diretório seja compartilhado através de uma rede é necessário que o servidor exporte um determinado diretório e o cliente monte este diretório em um diretório local. Após estes procedimentos, o diretório é visto localmente pelo usuário que executou a montagem. Procedimentos para o servidor: • habilitar os serviços nfs e portmap; • editar o arquivo /etc/exports inserindo uma linha para cada diretório, como por exemplo: /dir_compart *(rw,insecure,sync,all_squash) • salvar o arquivo e executar o comando exportfs -r Procedimentos para o cliente: • criar um diretório para ser ponto de montagem; • montar: mount -t nfs ip_do_servidor:/dir_compart /dir_criado Para que seja possível implementar esse grau de transparência é necessário utilizarmos uma ferramenta que construa uma camada de abstração entre a aplicação e a rede. Como exemplo será utilizado a ferramenta RPCGen. A entrada para o gerador RPCGen é um arquivo em formato XDR especificando que funções irão executar remotamente. Note que esse arquivo não contém o código da função e sim uma identificação, os parâmetros que serão passados para cada função e o tipo de retorno de cada função. Exemplo: arquivo rand.x program RAND_PROG{ version RAND_VERS{ void INIT_RANDOM(long)=1; double PROX_RANDOM(void)=2; } = 1; } = 0x31111111; A função INIT_RANDOM inicializa uma seqüência de números aleatórios, recebe como parâmetro um número inteiro longo, a semente da série, e não retorna valor. A função PROX_RANDOM obtém o próximo número da seqüência em precisão dupla, logo não envia parâmetros.


48

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

O RPCGen irá gerar os stubs do cliente e do servidor, além de um arquivo makefile, e os esqueletos da aplicação cliente e servidor com as chamadas às funções. A opção -C indica que os arquivos estarão em formato C ANSI e -a solicita a geração de todos os arquivos. rpcgen -C -a rand.x Após a execução podemos verificar que foram gerados os seguintes arquivos: makefile.rand compila cliente e servidor; rand_clnt.c stub do cliente (não alterar); rand_svc.c stub do servidor (não alterar); rand.h cabeçalho com as definições necessárias; rand_client.c esqueleto do cliente; rand_server.c esqueleto do servidor. Os arquivos stub não devem ser alterados pois estão configurados adequadamente. Uma boa prática é compilar o cliente e o servidor, utilizando o makefile fornecido, para verificar se não houve nenhum erro na digitação do arquivo rand.x, antes de qualquer alteração. Os arquivos contendo os esqueletos do cliente e servidor serão completados com o código referente a própria aplicação sem se preocupar com os detalhes da rede.

3.7 WEB SITES RECOMENDADOS Tutoriais diversos http://www.projetoderedes.com.br Protocolos e padrões http://www.networksorcery.com/ Material de apoio http://wps.aw.com/br_kurose_redes_3 RFCs http://www.rfc-editor.org/ IAB http://www.iab.org IETF http:www.ietf.org ABUSAR http://www.abusar.org


4 COMPONENTES FÍSICOS DE REDE DE COMPUTADORES

Uma rede de computadores é composta por equipamentos que viabilizam a conexão física entre os nós da rede. O tipo e a quantidade de equipamentos exigidos depende fundamentalmente do tamanho e dos objetivos da rede. A Figura 4.1 ilustra a conexão entre quatro redes distintas com acesso a Internet.

Figura 4.1: Um exemplo de conexão entre redes.

O objetivo deste capítulo é descrever os equipamentos necessários para que a rede do exemplo ou qualquer outra rede possam ser implantadas.


50

4.1

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

INTERFACE DE REDE OU NIC (NETWORK INTERFACE CARD)

É a interface entre o computador e a rede. O padrão de interface utilizado depende diretamente de características físicas da rede e da forma de interface com o computador, conforme descrito a seguir: Interface com o computador definida pelo barramento que é utilizado. Os padrões mais comuns são ISA e PCI; Conector da Placa especifica o tipo de interface a ser utilizada pela placa de rede para acesso ao meio físico. Os principais tipos são o RJ-45 para cabeamento TP-10BaseT e BNC, um pouco mais antigo, para cabo coaxial 10Base2; Padrão de interconexão é o padrão utilizado para conexão em um rede local. Os principais tipos são Ethernet, Fast-Ethernet, Token-Ring, FDDI e ATM. Velocidade de Transmissão é a velocidade com que as informações trafegam pelo meio físico. Para redes Ethernet esta velocidade é tipicamente de 10 Mbps ou 100 Mbps. A interface de rede tem como principais funções mover os dados para dentro da memória RAM do computador, gerar o sinal elétrico que trafega através do cabo da rede e controlar o fluxo de dados no sistema de cabeamento da rede. Para compatibilizar a forma serial com que os dados trafegam pela rede e a forma paralela como são tratados pelo computador, a interface de rede possui uma área de armazenamento temporário, denominada buffer.

4.2

REPETIDORES E HUBS

Operam na camada física do modelo OSI atuando apenas repetindo o sinal (0 ou 1). Permite a conexão de dois segmentos de rede e até tipos diferentes de cabeamento. Recebem e amplificam o sinal proveniente de um segmento de rede e repetem esse mesmo sinal para outro segmento. Um hub atua de forma semelhante a um repetidor multiporta centralizando conexões de rede. O nome é genericamente utilizado para definir um dispositivo concentrador porém existem tipos diferentes deste equipamento. São classificados em: Passivos Concentradores de cabos que não possuem qualquer tipo de alimentação elétrica e funcionam retransmitindo apenas os sinais recebidos para todas as estações nele conectadas. Como não há amplificação de sinal, o comprimento total dos dois trechos de cabo entre uma estação e outro, através do hub, não pode exceder os 100 metros permitidos pelos cabos de par trançado;


Componentes Físicos de Rede de Computadores

51

Ativos possuem a capacidade de regenerar os sinais que recebem antes de enviá-los para todas as estações conectadas, de forma semelhante a do repetidor. Esta característica permite que cada trecho de cabo, entre a estação e o hub, possa ter até 100 metros. Inteligentes permitem monitoramento via software capaz de detectar e até mesmo desconectar da rede estações com problemas; Empilháveis permite a ampliação do número de portas, conectando uns aos outros através de uma porta destinada para este fim, com características específicas para cada fabricante. Os hubs são conectados entre si por um barramento de alta velocidade, conforme ilustrado na Figura 4.2, passando a se comportarem como um único equipamento. Existe ainda a possibilidade de expandir o número de portas utilizando hubs não empilhávies. Se os hubs possuírem uma porta up link, destinada justamente a esta conexão, basta conectar os hubs utilizando estas portas. É possível ainda utilizar uma porta qualquer para a mesma finalidade utilizando cabos do tipo cross-over.

Figura 4.2: Hubs empilháveis.

4.3 SWITCH É uma evolução do hub com funções de bridge e roteador. Permite a troca de mensagens entre várias estações ao mesmo tempo, pois ao invés de replicar os dados recebidos para todas as suas portas, ele envia os dados somente para o computador destinatário.


52

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Esta seleção é feita através da análise da camada de enlace de dados que possui o endereço MAC da placa de rede. Possuem basicamente dois modos de operação: cut_through e store-and-forward. cut_through os quadros são repassados imediatamente após a identificação do destino e a respectiva porta de saída. Esta transmissão acontece simultaneamente com o recebimento do restante do quadro pela porta de entrada. store-and-forward o quadro deve ser recebido inteiramente antes de iniciar a transmissão para o endereço de destino. Os quadros são recebidos integralmente antes de serem transmitidos, possibilitando realizar um controle de erros.

4.4 BRIDGE Conecta duas redes com camadas de enlace diferentes mas com uma mesma camada de rede. Possui a capacidade de segmentar uma rede local em várias sub-redes, e com isto consegue diminuir o fluxo de dados. A principal função é filtrar pacotes entre segmentos de LANs, repetindo apenas os pacotes que, para atingirem o destino, precisam passar pelo equipamento. Atua na camada de enlace do modelo OSI.

4.5

ROTEADOR

É o equipamento responsável pela interligação entre redes locais e redes remotas. Permite que uma máquina de uma LAN comunique-se com máquinas de outra LAN remota, como se estivessem em uma só rede. Interconecta duas redes que utilizam a mesma camada de transporte, porém, possuem camadas de redes diferentes. Roteadores filtram o tráfego baseados nos campos de endereçamento contido no cabeçalho do protocolo da rede, atuando como pontes na camada de Rede. A Figura 4.3 mostra a conexão entre duas redes usando roteador.

Figura 4.3: Conexão entre duas redes através de um roteador.


Componentes Físicos de Rede de Computadores

53

Em função do modelo TCP/IP, o protocolo IP é o responsável por produzir o conteúdo necessário às funções de roteamento. Os roteadores não analisam os quadros físicos e sim os datagramas IP produzidos pelo protocolo. O papel fundamental do roteador é então escolher um caminho para o datagrama.

4.6 GATEWAY Permite a comunicação entre duas redes de arquiteturas diferentes. Atua em todas as camadas do modelo OSI. Resolve problemas de diferença entre tamanho máximo de pacotes, forma de endereçamento, técnicas de roteamento, controle de acesso, timeout, etc. Em geral, é implementado por um computador executando um software que realiza esta função.

4.7 MODEM (MODULADOR E DEMODULADOR) É o dispositivo conversor de sinais digitais para comunicação entre computadores através de uma linha analógica. O padrão atual de velocidade para modems analógicos é de 56 Kbps. No entanto, serviços digitais como o ADSL e CATV, atualmente mais populares, levaram este limite aos 8 Mbps. Os serviços ADSL utilizam a rede telefônica convencional e permitem ainda que a linha não fique ocupada pois o modem contém um componente que separa voz e dados. As prestadoras de serviço de TV a cabo por assinatura utilizam os chamados cable modem para prover acesso à Internet. Estes modems recebem o sinal através de uma extensão do cabo coaxial que recebe os sinais da televisão. A Figura 4.4 mostra o uso de um modem.

Figura 4.4: Funcionamento de um modem.

Os modems ADSL podem funcionar em modo bridge ou roteador, permitindo diferentes topologias para compartilhamento de acesso em uma rede. Em modo bridge deverá estar conectado diretamente a um dos computadores da rede, através de uma interface de rede, que terá a função de gateway. Este computador se co-


54

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

necta a rede local através de uma segunda interface de rede, com IP local. O compartilhamento da conexão é feito por software e os demais computadores só poderão se conectar depois que o gateway estiver conectado. A Figura 4.5 mostra o compartilhamento de Internet via software.

Figura 4.5: Compartilhamento via software.

Em modo roteador, o modem está diretamente conectado a rede local e à Internet. Todos os computadores podem se conectar através do roteador que também pode ser responsável pela distribuição de endereços IP locais. Apenas o roteador terá um IP real atribuído pelo provedor de serviço. A Figura 4.6 mostra o compartilhamento em Internet via hardware.

Figura 4.6: Compartilhamento através de um roteador.

4.8

CABEAMENTO

O projeto de cabeamento de uma rede é um fator de extrema importância para o bom desempenho de uma rede. A decisão envolve definições relacionadas a taxa de transmissão, largura de banda, facilidade de instalação, imunidade a ruídos, confiabilidade, custos de interface, exigências geográficas e disponibilidades de componentes no mercado.


Componentes Físicos de Rede de Computadores

55

O cabeamento de rede local mais popular nos dias de hoje atende ao padrão Ethernet e é baseado em cabo par trançado sem blindagem, de forma que os computadores se conectam através de um equipamento concentrador. Os procedimentos básicos incluem o uso de tomadas RJ-45, Figura 4.7, de forma que os computadores se conectem às tomadas e não ao concentrador diretamente.

Figura 4.7: Tomadas RJ-45.

As tomadas, por sua vez, se conectam ao chamado Patch Panel, Figura 4.8, que é um sistema passivo contendo apenas conectores. Os painéis são então instalados em um rack. O uso de Patch Panel facilita muito a manutenção da rede, uma vez que muitas das tarefas podem ser resolvidas no próprio painel. Para tal, é necessário que cada porta do Patch Panel esteja rotulada de forma a identificar a qual equipamento está conectada.

Figura 4.8: Patch Panel com 48 portas.

Em função do número de computadores conectados haverá necessidade de quantidades e tipos diferentes de equipamentos. A simples adição de um switch ou um hub pode não ser suficiente para garantir uma nova instalação ou mesmo a remoção de um computador da rede. Em virtude desta constatação é que as técnicas de cabeamento estruturado se desenvolveram. O objetivo é organizar a rede fisicamente para ser possível gerenciá-la de forma mais precisa e simples. As motivações para utilização de cabeamento estruturado incluem: • dificuldade ou incapacidade de adaptação às mudanças de tecnologia;


56

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

• saturação de dutos ou outros suportes para cabeamento; • falta de flexibilidade para mudanças na organização do espaço físico; • diversidade de meios físicos; • falta de segurança; • dificuldades de acesso em redes departamentais. Os padrões de cabeamento estruturado obedecem às normas propostas pela EIA/TIA de 1991, atualmente na versão 568B, de 2001. No Brasil, a norma utilizada é definida pela ABNT através da NBR 14565, muito semelhante a da EIA/TIA e prevê os seguintes elementos funcionais: SET (Sala de Entrada de Telecomunicações) local onde se dá a entrada de cabos externos originados na concessionária do serviço; Sala de equipamento local onde ficam os principais equipamentos de telecomunicação de uma instalação; Armário de telecomunicações local onde ficam os equipamentos de interconexão entre o backbone e cabeamento interno; Área de trabalho local onde fica o equipamento terminal; Cabeamento primário (backbone) cabos que interligam os armários de telecomunicações; Cabeamento secundário ou horizontal cabos que ligam os armários de telecomunicações às áreas de trabalho. A essência do cabeamento estruturado está diretamente ligada ao futuro da rede que está sendo instalada. Alterações futuras em uma instalação física podem ser altamente custosas além de gerar um enorme gasto de tempo fazendo com que os esforços investidos em um projeto estruturado sejam recompensados.

4.9 WEB SITES RECOMENDADOS EIA http://www.eia.org ABNT http://www.abnt.org.br


5 FERRAMENTAS PARA GERÊNCIA DE REDES

Com o crescimento e avanço rápidos das redes de computadores, tornou-se necessária uma maneira eficiente de gerenciá-las. Os principais fabricantes e entidades de padronização definiram alguns protocolos de gerenciamento de dispositivos. O uso de protocolos fornece um padrão para sondarmos informações de diversos dispositivos diferentes, utilizando um mesmo formato (protocolo). Este capítulo aborda o protocolo SNMP e as ferramentas ntop e mrtg para gerência de redes.

5.1

SNMP: SIMPLE NETWORK MANAGEMENT PROTOCOL

O SNMP – Simple Network Management Protocol ou Protocolo Simples de Gerenciamento de Rede – é o mais utilizado com TCP/IP para gerência de redes. Apesar do nome, o SNMP é muito complexo, com bastante recursos. Ele permite, entre outras funções, que os computadores da rede sejam rastreados por programas de gerência de redes, tais como o mrtg e o ntop. Atuando na camada de aplicação, o SNMP conta atualmente com duas versões: SNMPv1 e SNMPv2. Ambas possuem muitos procedimentos comuns, sendo que a SNMPv2 possui algumas funcionaliddes extras. O SNMPv3 está em fase de testes no momento de escrita deste texto. Para utilizar o protocolo SNMP é necessário que haja um programa servidor e um programa cliente. O programa servidor é chamado de agente e representa aquilo que está sendo gerenciado. Já o cliente é chamdo de gerente, e pode ser desde utilitários de linha de comando simples até programas gráficos rodando em plataforma web. Os agentes podem ser quaisquer equipamentos que utilizam TCP/IP, tais como estações de tabalho, computadores executando serviços diversos, hubs, switches, roteadores, entre outros. Os agentes serão os equipamentos monitorados para fornecerem informações tais como: suas configurações, estado e conexões de rede. Basicamente, existem duas formas de comunicação entre os gerentes e agentes:


58

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

• o gerente solicitando informações ao agente, como por exemplo, a taxa de dados que entra por um determinada interface; • o agente notificando o gerente sobre algum novo evento ou condição anormal, como por exemplo, que uma interface de rede parou de funcionar. 5.1.1

Mensagens do protocolo SNMP

O SNMP é um protocolo que trabalha com simples requisições/respostas. Seis tipos de operações/mensagens podem ser trocadas entre agentes e gerentes: Get gerente requisita uma informação ao agente; GetNext gerente requisita a próxima informação ao agente a partir da última recebida, de acordo com uma tabela ou lista existente no agente; GetBulk introduzido pelo SNMPv2, esta mensagem veio para facilitar a aquisição de várias informações, sem a necessidade de usar repetidamente o GetNext; Set permite ao gerente ajustar variáveis no agente; Trap usado pelo agente para informar ao gerente sobre algum evento; Inform introduzido pelo SNMPv2, permite que um gerente envie informações do tipo trap para outro gerente. 5.1.2

Modelo de gerenciamento de redes

A Figura 5.1 mostra os componentes que constituem um gerenciamento de rede TCP/IP. Os componentes são: SNMP – Simple Network Management Protocol protocolo utilizado para a comunicação entre hosts. MIB – Management Information Base é um banco de dados que contém a coleção de informações gerenciadas organizadas hierarquicamente, e que os agentes manipulam; SMI – Structure of Management Information é a linguagem usada para definir as variáveis de configuração gerenciadas que residem nos agentes.

5.2

NTOP – NETWORK TOP

O ntop1 é um monitor de tráfego de rede que exibe informações sobre o uso da mesma, e trabalha de forma similar ao comando top do mundo Unix. O ntop foi escrito de forma portável, podendo tanto ser utilizado em ambientes Unix quanto Windows. 1 Página

oficial do projeto: http://www.ntop.org.


Ferramentas para Gerência de Redes

59

Figura 5.1: Componentes do protocolo SNMP.

O usuário do ntop pode usar a ferramenta tanto via web quanto no shell. Quando utilizado via web, o usuário através de um browser pode acompanhar vários detalhes da sua rede, de uma forma mais amigável do que utilizado via shell. Entre as informações fornecidas pelo ntop pode-se observar o tráfego de uma rede de acordo com diversos critérios, estatísticas do tráfego, distribuição do tráfego IP e muito mais. O ntop captura os pacotes da rede local e gera diversas estatísticas, tais como: uso de rede classificado por protocolo, por origem, por destino, matriz de tráfego, e outras. A interface é simples e permite muitas conclusões úteis sobre o que se passa na rede. A Figura 5.2 mostra um relatório gerado pelo ntop. Detalhes sobre download, formas de instalação, configuração, documentação, e muito mais, podem ser obtidos em http://www.ntop.org.

5.3

MRTG – MULTI ROUTER TRAFFIC GRAPHER

O mrtg 2 é uma ferramenta para monitorar o tráfego de dispositivos de rede, tais como roteadores, servidores, switches e outros. Além de coletar as informações estatísticas de cada equipamento, o mrtg ainda é responsável pela criação das páginas HTML e dos gráfi2 Página

oficial do projeto: http://oss.oetiker.ch/mrtg/.


60

EDITORA - UFLA/FAEPE - Gerência de Redes de Computadores

Figura 5.2: Exemplo de uso do ntop (fonte: http://www.ntop.org).

cos que serão exibidos. Ele gera páginas HTML contendo gráficos que visualmente representam do tráfego monitorado. Baseado em Perl e linguagem C, o mrtg trabalha sobre o UNIX e Windows NT/2000/XP. Ele faz a coleta de dados via SNMP, e por isso, o equipamento a ser monitorado precisa oferecer suporte a este protocolo. Embora o seu foco seja o acompanhamento de componentes de rede através do protocolo SNMP, o mrtg pode ser utilizado para verificar o funcionamento local do servidor ou estação de trabalho mesmo sem instalar o suporte a SNMP, utilizando apenas a sua interface com scripts shell. Como o mrtg pode monitorar qualquer variável SNMP, ele também pode ser utilizado para monitorar carga do sistema, uso de memória e disco, sessões abertas, e muito mais. A Figura 5.3 mostra gráficos gerados pelo mrtg. Detalhes sobre download, formas de instalação, configuração, documentação, e muito mais, podem ser obtidos em http://oss.oetiker.ch/mrtg/.


Ferramentas para Gerência de Redes

61

Figura 5.3: Exemplo de uso do mrtg (fonte: http://oss.oetiker.ch/mrtg/).

5.4 WEB SITES RECOMENDADOS mrtg http://oss.oetiker.ch/mrtg/ ntop – network top http://www.ntop.org/overview.html Simple Network Management Protocol (SNMP) http://www.cisco.com/univercd/cc/td/doc/ cisintwk/ito_doc/snmp.htm


62

EDITORA - UFLA/FAEPE - GerĂŞncia de Redes de Computadores


REFERÊNCIAS BIBLIOGRÁFICAS

[Androutsellis & Spinellis (2004)] Androutsellis, S. & Spinellis, D. A survey of peer-to-peer content distribution technologies, ACM Computing Surveys, vol. 36, num. 4, p.335-371, 2004 [Kurose & Ross (2006)] Kurose, J. F. & Ross, K. W. Redes de Computadores e a Internet, Terceira Edição, Editora Addison Wesley, 2006. [Ribeiro (2005)] Ribeiro, U. Sistemas Distribuídos – Desenvolvendo aplicações de alta performance no Linux, Axcel Books do Brasil Editora, 2005. [Robbins & Robbins (1996)] obbins K.A. & Robbins S. Practical Unix Programming, Prentice Hall, 1996. [Saydam & Magedanz (1996)] Saydam, T. & Magedanz, T. From networks and network management into service and service management, Jurnal of network and system management, vol. 4, num. 4, p.345-348, 1996. [Soares, Lemos & Colcher (1995)] Soares, L. F. G.; Lemos, G. & Colcher, S. Redes de computadores: Das LANs, MANs e WANs às Redes ATM, Segunda Edição, Rio de Janeiro, Editora Campus, 1995. [Stallings (2005)] Stallings, W. Redes e Sistemas de Comunicação de Dados – Teoria e aplicações corporativas, Editora Campus, 2005. [Stevens (1998)] tevens, W.R. Unix Network Programming, Vol 1, 2nd ed, Prentice Hall, 1998. [Tanenbaum (2003)] Tanenbaum, A. S. Redes de Computadores, Editora Campus, Quarta edição, 2003.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.