Mostrando postagens com marcador Redes de Computadores. Mostrar todas as postagens
Mostrando postagens com marcador Redes de Computadores. Mostrar todas as postagens

segunda-feira, 19 de setembro de 2011

Arquitetura TCP/IP

A arquitetura internet foi criada pelo Departamento de Defesa dos Estados Unidos, com o objetivo de se ter uma rede interligando várias universidades e órgãos do governo de maneira descentralizada (ARPANET), para evitar a sua destruição no caso de ocorrência de uma guerra. Com o passar do tempo, esta idéia inicial perdeu o sentido e a infraestrutura foi aproveitada para se tornar o que hoje é a maior rede de computadores do mundo: a Internet.

Os padrões da internet não são criados por órgãos internacionais de padronização, como a ISO ou o IEEE, mas ela é uma arquitetura muito aceita, sendo chamada por isso como padrão "de facto", ao contrário do modelo OSI, considerado padrão "de jure". O corpo técnico que coordena a elaboração de protocolo e padrões da internet é o IAB (Internet Activity Board). Qualquer pessoa pode criar um protocolo para ser utilizado pela rede internet. Para isto, basta que ela documente este protocolo através de um RFC (Request for Comments), que pode ser acessado na Internet. Estes RFC's são analisados pelos membros da IAB que poderão sugerir mudanças e publicá-lo. Se após seis meses da publicação não houver nenhuma objeção, este protocolo se torna um Internet Standard.

A arquitetura internet se destaca pela simplicidade de seus protocolos e pela eficiência com que atinge o seu objetivo de interconectar sistemas heterogêneos.

Obs: cabe comentar aqui que por rede internet entende-se qualquer rede que utiliza os protocolos TCP/IP, enquanto que o termo Internet (com I maiúsculo) é utilizado para designar a Internet (conjunto de redes baseada na ARPANET, com milhões de usuários em todo o mundo).

Arquitetura internet

A arquitetura internet se baseia praticamente em um serviço de rede não orientado à conexão (datagrama não confiável), o Internet Protocol (IP) e em um serviço de transporte orientado à conexão, oferecido pelo Transmission Control Protocol (TCP). Juntos, estes protocolos se completam, oferecendo um serviço confiável de uma forma simples e eficiente.

A arquitetura internet se baseia em um modelo com quatro camadas (figura abaixo), onde cada uma executa um conjunto bem definido de funções de comunicação. No modelo em camadas da internet, não existe uma estruturação formal para cada camada, conforme ocorre no modelo OSI. Ela procura definir um protocolo próprio para cada camada, assim como a interface de comunicação entre duas camadas adjacentes.
Modelo em Camadas da Internet

Camada de rede de comunicação

Na camada de rede de comunicação da internet, não existe um padrão para a sub-rede de acesso, possibilitando a conexão de qualquer tipo de rede, desde que haja uma interface que compatibilize a tecnologia da rede com o protocolo IP. Desta forma, um número muito grande de tecnologias pode ser utilizado na sub-rede de acesso, como Ethernet, Token Ring, FDDI, X.25, Frame Relay, ATM, etc.

Para que todas estas tecnologias possam ser "vistas" pela rede internet, existe a necessidade de uma conversão de endereçamentos do formato utilizado pela sub-rede e o formato IP. Esta conversão é realizada pelos gateways, que tornam a interconexão das redes transparente para o usuário (figura abaixo).

Além das conversões de protocolos, os gateways são responsáveis pela função de roteamento das informações entre as sub-redes.
Interconexão de Sub-Redes à Rede Internet

Camada de interrede

A camada de interrede, também chamada de internet, é equivalente à camada de rede do modelo OSI. Nela são especificados vários protocolos, dentre os quais se destaca o IP (Internet Protocol).

O IP é um protocolo não orientado a conexão, cuja função é transferir blocos de dados denominados datagramas da origem até o destino, podendo passar inclusive por várias sub-redes (a origem e o destino são hosts identificados por endereços IP). A operação no modo datagrama é uma comunicação não confiável, não sendo usado nenhum reconhecimento fim-a-fim ou entre nós intermediários, nem qualquer tipo de controle de fluxo.

Nenhum mecanismo de controle de erro de dados é utilizado, apenas um controle de verificação do cabeçalho, para garantir que os gateways encaminhem as mensagens corretamente. Algumas das principais características do protocolo IP são as seguintes:

· Serviço de datagrama não confiável;

· Endereçamento hierárquico;

· Facilidade de fragmentação e remontagem de pacotes;

· Campo especial indicando qual o protocolo de transporte a ser utilizado no nível superior;

· Identificação da importância do datagrama e do nível de confiabilidade exigido;

· Descarte e controle de tempo de vida dos pacotes interredes no gateway. 

Endereçamento IP

O roteamento dos datagramas através das sub-redes são feitos baseados no seu endereço IP, números de 32 bits normalmente escritos como quatro octetos (em decimal), por exemplo 9.179.12.66. Devido ao fato de existirem redes dos mais variados tamanhos compondo a interrede, utiliza-se o conceito de classes de endereçamento:
Formato dos Endereços IP

Os endereços IP indicam o número da rede e o número do host, sendo que a classe A suporta até 128 redes com 16 milhões de hosts cada uma, a classe B 16384 redes com até 64 mil hosts cada uma, a classe C 2 milhões de redes com até 256 hosts cada uma e a classe D, onde um datagrama é dirigido a um grupo de hosts. Os endereços a partir de 1111 estão reservados para uso futuro.

A Internet utiliza a classe C para endereçamento de suas redes e máquinas. Quando um novo provedor de acesso se conecta à ela, ele recebe 256 endereços para serem utilizados pelos seus hosts (ou "usuários"). Como um provedor pode ter mais de 256 clientes, ele utiliza um esquema de alocação dinâmica de IP, ou seja, quando o usuário se conecta ao provedor de acesso, ele recebe um endereço IP, podendo desta forma haver até 256 usuários conectados simultaneamente a um provedor de acesso.

Formato do datagrama IP

O protocolo IP recebe da camada de transporte mensagens divididas em datagramas de 64 kbytes cada um, sendo que cada um destes é transmitido através da Internet, sendo ainda possivelmente fragmentados em unidades menores à medida em que passam por sub-redes. Ao chegarem ao seu destino, são remontados novamente pela camada de transporte, de forma a reconstituir a mensagem original.

O datagrama utilizado pelo protocolo IP consiste em um cabeçalho e um payload, sendo que o cabeçalho possui um comprimento fixo de 20 bytes mais um comprimento variável (figura abaixo).
Cabeçalho IP

O campo VERS identifica a versão do protocolo que montou o quadro. O campo HLEN informa o tamanho do quadro em palavras de 32 bits, pois este pode ser variável. O campo SERVICE TYPE indica às sub-redes o tipo de serviço que deve ser oferecido ao datagrama (por exemplo, para transmissão de voz digitalizada necessita-se mais de uma entrega rápida do que um controle rigoroso de erros, ao passo que para um serviço de transferência de arquivos, o tempo de entrega pode ser sacrificado para se obter um maior controle de erro).

O campo TOTAL LENGTH armazena o comprimento total do datagrama (dados e cabeçalho), com um valor máximo de 65.536 bytes. O campo IDENTIFICATION possibilita ao host determinar a que datagrama pertence um fragmento recém-chegado (todos os fragmentos de um datagrama possuem o mesmo valor). O campo FLAGS é composto de um bit não utilizado seguido por dois bits, DF e MF.

O DF significa Don't Fragment e indica que os gateways não devem fragmentar este datagrama (por incapacidade do destino juntar novamente os fragmentos). MF significa More Fragments, e é utilizado como dupla verificação do campo TOTAL LENGTH, sendo que todos os fragmentos, menos o último possuem este bit setado.

O FRAGMENT OFFSET informa a que posição no datagrama atual pertence o fragmento. O campo TIME TO LIVE é um contador utilizado para se limitar o tempo de vida de um pacote. Quando o datagrama é criado, este campo recebe um valor inicial, que é decrementado toda vez que passa por um gateway. Quando este contador atinge o valor zero, isto indica que a rede está em congestionamento ou que o datagrama está em loop, e o datagrama é descartado.

O campo PROTOCOL indica o protocolo que gerou o datagrama e que deve ser utilizado no destino. O campo HEADER CHECKSUM é utilizado pelos gateways para se fazer uma verificação do cabeçalho (apenas do cabeçalho, não dos dados), para que o gateway não roteie um datagrama que chegou com o endereço errado.

SOURCE IP ADRESS e DESTINATION IP ADRESS são, respectivamente, os endereços de host origem e destino. O campo IP OPTIONS é usado para o transporte de informações de segurança, roteamento na origem, relatório de erros, depuração, fixação da hora e outras. O campo PADDING possui tamanho variável e é utilizado para se garantir que o comprimento do cabeçalho do datagrama seja sempre um múltiplo inteiro de 32 bits. Finalmente, o campo DATA transporta os dados do datagrama.

Roteamento

O roteamento consiste no processo de escolha do caminho através do qual deve ser enviado o dado para o sistema destino. Caso o destino esteja localizado na mesma sub-rede, esta é uma tarefa fácil. Porém quando o destino se encontra em um sub-rede diferente, a transmissão dos dados é feita através de um gateway. O gateway faz o roteamento baseado no endereço IP de destino do datagrama. Se o gateway já estiver conectado à rede para onde o dado deve ser enviado, o problema acabou. Porém, o gateway pode não estar ligado diretamente à rede de destino. Neste caso, a partir da identificação da sub-rede, o endereço físico do próximo gateway na rota é obtido, através de processos de mapeamento. É importante observar que o gateway utilizado em uma rede internet possui funcionalidades distintas das normalmente aplicadas a ele nas redes OSI.

O roteamento pode, então, ser dividido em dois tipos:

· roteamento direto: quando o destino do datagrama se encontra na mesma sub-rede;

· roteamento indireto: quando o destino se encontra em outra sub-rede, necessitando de um gateway para o roteamento;

Para realizar o roteamento indireto, os gateways utilizam tabelas de roteamento, que armazenam informações sobre como atingir cada sub-rede da rede internet. Uma tabela de roteamento possui, tipicamente, entradas do tipo (N,G), onde N é um endereço IP (de destino) e G é o endereço IP do próximo gateway a ser utilizado para se atingir N (figura abaixo):
Tabela de Roteamento

Para diminuir o tamanho das tabelas de roteamento, existem algumas técnicas a serem utilizadas. Por exemplo, pode-se utilizar rotas default (pré-estabelecidas) para quando não se encontra referência na tabela sobre uma determinada rota. Este caso se aplica tipicamente para redes que possuem um único gateway, como por exemplo, departamentos de uma universidade ligados ao backbone por apenas um gateway. Ao invés de se ter uma rota para cada sub-rede, utiliza-se a rota default.

Algoritmos de Roteamento

Um algoritmo de roteamento é a parte do software da camada de rede que tem por objetivo decidir sobre qual linha de saída um pacote que chega deve ser transmitido. Para uma rede que trabalha com datagrama, a decisão deve ser tomada para cada pacote de dados que chega. Já para a rede que trabalha com circuitos virtuais, a decisão de roteamento deve ser tomada apenas quando se estabelece um circuito virtual.

Quando uma máquina M tem um datagrama a ser enviado, ela deve executar os seguintes passos:

· retirar do datagrama o endereço IP do destinatário (IPD);

· a partir do IPD obter o id.rede da sub-rede de destino (IRD);

· caso o IRD corresponda a uma rede na qual a máquina M está diretamente conectada, enviar o datagrama diretamente a IPD (roteamento direto);

· senão, se IRD aparece na tabela de roteamento, rotear o datagrama como especificado na tabela;

· senão, se foi especificado um gateway pré-definido na tabela de roteamento, rotear o datagrama conforme especificado na tabela;

· senão, indicar situação de erro utilizando, por exemplo, o protocolo ICMP.

Existem basicamente dois tipos de algoritmos utilizados em redes internet: Vetor-Distância e Estado-do-Enlace, porém não nos compete entrar em detalhes sobre eles neste momento.

Fragmentação e Remontagem de Datagramas

Como os datagramas IP atravessam redes das mais diversas tecnologias, os tamanhos dos quadros nem sempre devem ser os mesmos. Portanto deve haver uma certa flexibilidade em termos de tamanho de pacote a ser transmitido, de forma a este pacote se adaptar à sub-rede que vai atravessar.

Esta flexibilidade se dá através da facilidade de fragmentação e remontagem de datagramas.

Quando for necessário transmitir um datagrama maior do que o suportável pela rede, deve-se particionar o pacote em fragmentos. Estes fragmentos são transportados como se fossem datagramas independentes. Para poder recompor o datagrama original no destino, são utilizados alguns campos do cabeçalho do datagrama.

Quando o destino recebe o primeiro fragmento, inicia-se uma temporização para se aguardar o conjunto completo dos fragmentos que compõem o datagrama. Caso um dos fragmentos não chegue durante este intervalo, o datagrama é descartado, acarretando em uma perda de eficiência. 

Camada de Transporte

A camada de transporte tem o objetivo de prover uma comunicação confiável entre dois processos, estando eles ocorrendo dentro da mesma rede ou não. Ela deve garantir que os dados sejam entregues
livres de erros, em seqüência e sem perdas ou duplicação.

A Arquitetura Internet especifica dois tipos de protocolos na camada de transporte: o UDP (User Datagram Protocol) e o TCP (Transmission Control Protocol). O UDP é um protocolo não orientado à conexão que pode ser considerado como uma extensão do protocolo IP, e não oferece nenhuma garantia em relação à entrega dos dados ao destino.

Já o protocolo TCP oferece aos seus usuários um serviço de transferência confiável de dados, através da implementação de mecanismos de recuperação de dados perdidos, danificados ou recebidos fora de seqüência, minimizando o atraso na sua transmissão.

A cada fragmento transmitido é incorporado um número de seqüência, de forma a não se perder a ordem dos segmentos a serem juntados para formar o datagrama. Existe um mecanismo de reconhecimento para executar essa função que funciona da seguinte forma: o reconhecimento transmitido pelo receptor ao receber o segmento X é o número do próximo segmento que o receptor espera receber (X+1), indicando que já recebeu todos os segmentos anteriores a este. Através da análise dos números de segmento, o receptor pode ordenar os segmentos que chegaram fora de ordem e eliminar os segmentos duplicados.

Com base no checksum que é adicionado a cada segmento transmitido, os erros de transmissão são tratados e os segmentos danificados são descartados. Existe ainda um controle de fluxo baseado no envio da capacidade de recebimento do receptor, contado a partir do último byte recebido, ao transmissor. Desta forma o transmissor consegue controlar a quantidade de dados que são enviados ao receptor para não haver descarte de segmentos nem necessidade de retransmissão, que ocasionam a queda do desempenho da rede.

Para permitir que vários usuários (processos de aplicação) possam utilizar simultaneamente os serviços do protocolo TCP, foi criado o conceito de porta. Para não haver problemas de identificação de usuários, o identificador da porta é associado ao endereço IP onde a entidade TCP está sendo realizada, definindo assim um socket. A associação de portas a processos de aplicação (usuários) é tratada de forma independente por cada entidade TCP. No entanto, processos servidores que são muito utilizados, como FTP, Telnet, etc, são associados a portas fixas, divulgadas aos usuários. Uma conexão é identificada pelo par de sockets ligados em suas extremidades. Um socket local pode participar de várias conexões diferentes com sockets remotos.

Uma conexão pode ser utilizada para transportar dados em ambas as direções simultaneamente, ou seja, as conexões TCP são full-duplex.

É importante observar aqui que quando se fala que o TCP é orientado à conexão, não se fala em conexão a nível físico, mas sim a nível lógico. Este conceito pode ser compreendido através da figura
abaixo.
Serviços orientados e não orientados à conexão

No caso da figura acima, a máquina A quer se comunicar com a máquina B através de uma rede em anel utilizando TCP/IP. A única conexão física que existe entre A e B é através do anel, passando pelas máquinas C e D. A nível de IP, a comunicação não é orientada à conexão, portanto é muito simples enxergar que os dados possuem apenas dois caminhos para ir de A até B: através de C ou através de D.

A nível de TCP, porém, a comunicação entre os computadores A e B ocorre como se houvesse uma conexão direta entre eles. Isso implica que, se a nível de IP os dados podem chegar fora de ordem, o TCP tem que garantir a ordenação destes dados, de forma que eles sempre chegem na ordem correta, como aconteceria se houvesse uma conexão física direta entre A e B.

Camada de aplicação

As aplicações na arquitetura Internet, ao contrário do que ocorre com as OSI, são implementadas de uma maneira isolada, ou seja, não existe um padrão que defina como deve ser estruturada uma aplicação. Cada aplicação possui seu próprio padrão, correspondente a um RFC (Request for Comments).

RPC (Remote Procedure Call)

O RPC é um mecanismo criado para suportar aplicações distribuídas baseadas em um modelo cliente/servidor.

A aplicação cliente faz uma chamada de procedimento remoto onde o RPC, de forma automática, obtém os valores dos argumentos da chamada, monta a mensagem correspondente, a envia ao servidor e aguarda a resposta, armazenando os valores retornados nos argumentos definidos na chamada. Na realidade, o que ocorre é a mesma coisa que nas chamadas de funções locais comumente encontradas em aplicações, com a diferença que a execução real da função está ocorrendo em um local remoto.
Funcionamento de uma RPC

SMTP (Simple Mail Transfer Protocol)

O SMTP é o protocolo utilizado no correio eletrônico da arquitetura TCP/IP. Ela prevê uma interface com o usuário para enviar e receber mensagens que são armazenadas, inicialmente, em uma área de transferência de mensagens do sistema para serem, posteriormente, enviadas em background, conforme a figura abaixo.
Funcionamento do SMTP

O SMTP enxerga a mensagem como que dividida em duas partes: o corpo e o cabeçalho. O corpo da mensagem é onde são enviadas as mensagens propriamente ditas, sendo que o cabeçalho contém dados de endereçamento, assunto da mensagem etc. O protocolo SMTP não provê mecanismos sofisticados de controle de envio e recebimento de mensagens, tais como notificações, segurança de violação, criptografia dentre outros.

FTP (File Transfer Protocol)

O FTP provê serviços de transferência, renomeação e remoção de arquivos, bem como criação, remoção e modificação de diretórios, entre outros. Para que um serviço FTP seja prestado, são estabelecidas duas conexões TCP entre o cliente e o servidor: uma para a transferência dos dados e outra para controle. A confiabilidade das transferências de arquivos realizadas fica por conta do protocolo TCP, já que o FTP não possui nenhuma função de controle adicional sobre os arquivos, a não ser a exigência da senha do usuário para permitir a transferência. O FTP pode transmitir dois tipos de arquivos: arquivos texto (com dados no formato ASCII ou EBCDIC) ou arquivos binários (dados enviados como uma seqüência de bytes sem qualquer conversão).

TELNET (Terminal Virtual)

O TELNET é o protocolo utilizado para se permitir que o usuário de um sistema acesse um sistema remoto através de uma sessão de terminal, operando como se estivesse diretamente conectado neste sistema.

DNS (Domain Name System)

O DNS é o mecanismo utilizado pelo TCP/IP que define um sistema de nomes baseado em uma estrutura de árvore, que possibilita uma nomeação organizada de sistemas de domínio universal. O DNS estabelece a sintaxe de nomes e regras para delegação de autoridade sobre os nomes além de implementar um algoritmo computacional eficiente para mapear nomes em endereços.

Os nomes das máquinas são divididos em partes separadas por pontos correspondendo cada parte a um novo domínio de autoridade, em que o primeiro nome corresponde ao nível mais baixo e o último ao nível mais alto da hierarquia. No caso do nível mais alto, foram designados os seguintes nomes:

· ARPA - identificação do host da ARPA;

· COM - organizações comerciais;

· COUNTRY - qualquer país que utilize o padrão ISO3166 para nomes de país;

· EDU - instituições educacionais;

· GOV - instituições governamentais;

· INT - organizações internacionais;

· MIL - grupos militares;

· ORG - outras organizações.

A figura abaixo representa uma estrutura de nomes onde, por exemplo, o nome cctmn.inatel.br representa o domínio do CCTMN do INATEL.
Estrutura de nomes utilizada pelo DNS

Gerenciamento TCP/IP

O gerenciamento de uma rede TCP/IP se baseia no protocolo SNMP - Simple Network Management Protocol. O SNMP é um protocolo da camada de aplicação que atua sobre o UDP - User Datagram Protocol. A figura abaixo mostra a configuração típica da implementação do protocolo SNMP. O protocolo UDP é um protocolo não orientado à conexão, e a sua utilização (ao invés do TCP) se explica pelo fato de que não deve haver interrupções na comunicação de mensagens SNMP. No caso do TCP, uma interrupção em uma conexão, ou rota, influiria no desempenho do sistema de gerência. 

Ao se utilizar um serviço de datagrama, apesar de se obter um serviço de menor qualidade, esta limitação é contornada, pois em caso de impossibilidade de utilização de uma rota, outra rota é automaticamente escolhida.
SNMP

O gerenciamento de uma rede TCP/IP é baseado na estrutura agente-gerente, onde o gerente faz as requisições das operações a serem executadas sobre os recursos gerenciados. Estas requisições são enviadas ao agente, que executa as operações sobre os objetos gerenciados (abstrações dos recursos gerenciados para o agente). Através de uma interface, estas operações realizadas nos objetos gerenciados se refletem nos recursos gerenciados, e geralmente uma resposta é enviada de volta ao gerente, completando a operação de gerenciamento.

O protocolo SNMP é baseado no paradigma conhecido como fecth-store (busca-armazenamento), ou seja, todas as operações previstas para este protocolo são derivadas de operações básicas de busca e armazenamento. Estas operações básicas incluem:

· get-request: leitura do valor de uma variável;

· get-next-request: leitura do valor da próxima variável;

· get-response: resposta à operação de leitura;

· set-request: gravação do valor de uma variável;

· trap: notificação da ocorrência de um evento específico.

Segundo Marshall Rose, "o impacto do gerenciamento de rede adicionado para gerenciar os nós deve ser mínimo, refletindo o menor denominador comum. Cada nó é visto como tendo algumas variáveis. 

Pela leitura dos valores destas variáveis, o nó é monitorado. Alterando os valores destas variáveis, o nó é controlado".

Em decorrência disto, os agentes SNMP são simples e executam operações elementares, como estabelecer e obter valores das variáveis. O programa que analisa, manipula, combina ou aplica algum algoritmo sobre os dados deve residir no gerente. 

Comparação entre as arquiteturas TCP/IP e OSI

Atualmente, com a necessidade da utilização de modelos abertos em sistemas de comunicação, torna-se imprescindível conhecer os dois principais modelos que visam atender esta necessidade (o modelo OSI e o modelo TCP/IP) e suas diferenças.

A principal diferença entre os dois, é que o modelo OSI evoluiu de uma definição formal elaborada por comissões da ISO para o desenvolvimento de produtos, enquanto que o TCP/IP nasceu da necessidade do mercado e da demanda de produtos para resolver o problema de comunicação e a partir daí passou por uma série de implementações onde muitos produtos foram desenvolvidos fora da arquitetura internet, passando a ser incorporados a ela.

Vale então dizer que a arquitetura OSI é considerado um modelo de jure, enquanto que arquitetura internet é considerada um modelo de facto.

Analisando-se comparativamente a estrutura dos dois modelos (figura abaixo), pode-se observar que a parte referente às sub-redes de acesso da arquitetura internet corresponde à camada física, à de enlace e, parcialmente, à de rede do modelo OSI, sem que haja nenhuma padronização neste sentido.
O IP corresponde à camada de rede, enquanto o TCP e o UDP oferecem serviços semelhantes aos prestados, respectivamente, pelos protocolos de transporte orientados e não-orientados à conexão do modelo OSI. Nas camadas superiores, a arquitetura Internet coloca sob responsabilidade da aplicação os serviços fornecidos pelas camadas de sessão, apresentação e aplicação do modelo OSI.
Comparação entre as arquiteturas OSI e TCP/IP

O fato da arquitetura TCP/IP possuir menos camadas que o modelo OSI implica na sobrecarga de algumas camadas com funções que não lhe são específicas. Por exemplo, podemos citar a transferência de arquivos: no ambiente TCP/IP, as funções correspondentes à camada de apresentação OSI são desempenhadas pelo próprio protocolo de transferência de arquivos FTP. Por outro lado, o TCP/IP nos fornece aplicações simples, eficiente e de fácil implementação a nível de produtos. Uma das maiores limitações da arquitetura TCP/IP é quanto a sua capacidade de endereçamento, que já está se tornando limitada, devido ao crescimento da Internet.

Já a arquitetura OSI sofre críticas por apresentar "modelos e soluções acadêmicas" e objetivar atendimento a requisitos de propósito geral em detrimento de soluções imediatas, compatíveis com as exigências atuais dos usuários. É também criticada por não apresentar meios de migração entre as arquiteturas atualmente em funcionamento e suas soluções.

Diante desta situação, observa-se atualmente um emergente esforço de aproximação entre as duas arquiteturas, objetivando-se aproveitar o que cada uma tem de melhor a oferecer, de forma a se encontrar soluções mistas.

sexta-feira, 16 de setembro de 2011

Servidor DNS

História do Sistema de Nomes de Domínio

Nos anos 70, a ARPAnet era muito pequena, um simples arquivo host.txt contendo todas as informações que se precisava conhecer sobre os hosts resolvia o problema.

Quando a rede começou a crescer e se mover para o protocolo TCP/IP, os administradores de rede tiveram várias dificuldades, e dentre elas podemos citar:

Colisão de nomes - duas máquinas com IPs diferentes poderiam ter o mesmo nome, pois a manutenção dos arquivos hosts.txt se tornava complicada. Não existia nada que prevenisse que alguém adicionasse um host com um nome idêntico a outro.
Consistência - quando necessário incluir um novo host, o procedimento precisava ser replicado para todos os outros arquivos. Caso um dos arquivos hosts.txt não fosse atualizado era gerado um problema na resolução de nomes na rede.
Os arquivos hosts.txt não eram escaláveis.

Em 1984 foram liberadas as RFCs 882 e 883 que descreviam o Sistema de Nomes de Domínio.
O Sistema de Nomes de Domínio
O Sistema de Nomes de Domínio é um banco de dados distribuído.

Desta maneira formou-se um sistema robusto com alto desempenho que pudesse ser replicado e armazenado em memória.

Abaixo vemos a estrutura de uma base de nomes que é semelhante ao sistema de arquivos do UNIX.

Cada domínio tem um nome único, como em um diretório. O nome do domínio identifica a posição na base de dados, mas ao contrário do sistema de arquivos do UNIX, o nome é uma a seqüência do nó para a raiz como mostrado a seguir.

Cada domínio pode ser administrado por uma entidade diferente.

Por exemplo, a InterNIC resolve o domínio edu (educational), mas o subdomínio berkley.edu quem resolve é a universidade U.C. Berkeley.

A primeira implementação do Sistema de Nomes de Domínio era chamada JEEVES, escrita por Paul Mockapetris. Posteriormente outra implementação chamada BIND, escrita para o sistema operacional Berkeley's 4.3BSD UNIX foi escrita por Kevin Dunlap. BIND atualmente é mantida pelo Internet Software Consortium.

Os nomes para os hosts no domínio podem ter até 63 caracteres sendo o “.” reservado para a raiz.

A seguir temos alguns domínios do topo da estrutura.

Para cada país é seguida a norma ISO3166 que define dois caracteres para representação do país. Abaixo alguns exemplos.

No Brasil temos alguns subdomínios tais como:

Para maiores informações entre no site registro.br.

Configuração

Este exemplo é baseado em um computador com sistema Linux pré-instalado.

Altere o nome da máquina para ns1.teste.com.br e o gateway padrão.

nano /etc/sysconfig/network

HOSTNAME=ns1.teste.com.br
GATEWAY=192.168.0.254

Ajuste o arquivo /etc/hosts para

127.0.0.1   localhost.localdomain   localhost
::1         localhost6.localdomain6 localhost6
192.168.0.1 ns1.teste.com.br        ns1
Altere o IP da máquina virtual para 192.168.0.1

nano /etc/sysconfig/network-scipts/ifcfg-eth0
DEVICE=eth0
ONBOOT=Yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
Altere o endereço do servidor que irá resolver os nomes em /etc/resolv.conf, coloque inicialmente o endereço do seu provedor ou dns interno.

nameserver 10.2.0.1
Reinicie a máquina virtual para começarmos a configuração do nosso servidor de nomes.
Instalação dos pacotes
Instale os pacotes necessários para o servidor de nomes

yum install bind caching-nameserver bind-chroot

Definição do domínio teste.com.br
Vamos criar o domínio teste.com.br, edite o arquivo de configuração do servidor de nomes.

nano /etc/named.caching-nameserver.conf
Troque as linhas abaixo, que aparecem no arquivo de configuração,
listen-on port 53 { 127.0.0.1; };
view localhost_resolver {
     match-clients { localhost; };
     match-destinations { localhost; };
     recursion yes;
     include "/etc/named.rfc1912.zones";
};

Por

listen-on port 53 { 127.0.0.1; 192.168.0.1;};
view interno {
     match-clients { localhost; 192.168.0.0/24;};
     allow-query { localhost; 192.168.0.0/24;};
     recursion yes;
     include "/etc/named.rfc1912.zones";
     include "/etc/teste.com.br.zone";
};

Isto fará o servidor esperar por conexões no IP 192.168.0.1 vindas da rede 192.168.0.0/24, e indicará o arquivo onde será definido o domínio teste.com.br.

Como foi instalado o bind-chroot todos os arquivos referentes ao servidor de nomes se encontram no diretório /var/named/chroot. Vamos criar a zona teste.com.br.

nano /var/named/chroot/etc/teste.com.br.zone

Adicione neste arquivo as linhas abaixo.

zone "teste.com.br" IN {
     type master;
     file "teste.com.br.hosts";
     allow-update { none; };
};

zone "0.168.192.in-addr.arpa" IN {
     type master;
     file "teste.com.br.rev";
     allow-update { none; };
};

Altere as permissões deste arquivo para somente leitura e escrita pelo usuário root, e leitura para o grupo named.

O grupo proprietário deste arquivo deve ser o grupo named.
Criação da zona teste.com.br
Edite o arquivo da zona direta onde se cadastram as máquinas.

nano /var/named/chroot/var/named/teste.com.br.hosts
O arquivo deve conter as linhas abaixo.
$TTL 86400
@ IN SOA ns1.teste.com.br. root.ns1.teste.com.br. (
     2007082501 ; serial
     3H ; refresh
     15M ; retry
     1W ; expiry
     1D ) ; minimum
     IN NS ns1.teste.com.br.
     IN NS ns2.teste.com.br.
ns1 IN A 192.168.0.1
ns2 IN A 192.168.0.2
As permissões deste arquivo devem estar como no caso anterior.

Criação da zona teste.com.br reversa

Edite o arquivo da zona direta onde se cadastram as máquinas.

nano /var/named/chroot/var/named/teste.com.br.rev

O arquivo deve conter as linhas abaixo.

$TTL 86400
@ IN SOA ns1.teste.com.br. root.ns1.teste.com.br. (
     2007082501 ; Serial
     3H ; refresh
     15M ; retry
     1W ; expiry
     1D ) ; minimum
IN NS ns1.teste.com.br.
IN NS ns2.teste.com.br.
1.0.168.192.in-addr.arpa IN PTR ns1.teste.com.br.
2.0.168.192.in-addr.arpa. IN PTR ns2.teste.com.br.
As permissões deste arquivo devem estar como no caso anterior.

Testes
Inicie o serviço

/etc/init.d/named start

Resolução do nome

nslookup ns1.teste.com.br 127.0.0.1

A resposta deve ser

Server: 127.0.0.1
Address: 127.0.0.1#53

Name: ns1.teste.com.br
Address: 192.168.0.1

Resolução do nome reverso

nslookup 192.168.0.1 127.0.0.1

A resposta deve ser

Server: 127.0.0.1
Address: 127.0.0.1#53

1.0.168.192.in-addr.arpa name = ns1.teste.com.br.

Colocando para funcionar

Altere o arquivo /etc/resolv.conf para

search teste.com.br
nameserver 127.0.0.1

Faça os testes de resolução de nomes novamente.

Configuração do Servidor de Nomes Secundário

Em outro servidor instale os mesmos pacotes instalados no servidor de nomes primário.

Repita o passo 1 colocando em listen-on a linha abaixo

listen-on port 53 { 127.0.0.1; 192.168.0.1;};
No passo 2 quando for criar as zonas direta e reversa, coloque
zone "teste.com.br" IN {
     type slave;
     file "slaves/teste.com.br.zones";
     masters { 192.168.0.1; };
};

zone "0.168.192.in-addr.arpa" IN {
     type slave;
     file "slaves/teste.com.br.rev";
     masters { 192.168.0.1; };
};

Copie a chave que está no arquivo /etc/rndc.key do servidor primário para o secundário.

Altere no servidor primário, inclua a opção para o domínio na definição da zona direta e reversa, abaixo do allow-update;

allow-transfer { 192.168.0.2; };
Testes
Inicie o servidor DNS e veja se os arquivos do domínio foram transferidos.

ls /var/named/chroot/var/named/slaves/

quinta-feira, 15 de setembro de 2011

Serviço proxy: Squid

Disponibilizo no meu Scribd uma ótima aula sobre proxy Squid. Esta aula é do ex-professor do curso de Redes de Computadores do IFRN, Bruno Pontes.

Clique aqui para acessar

Servidor de correio eletrônico

Disponibilizo no meu Scribd uma ótima aula sobre Servidor de Correio Eletrônico, especificamente em ambiente de sistema de código aberto. Esta aula é do ex-professor do curso de Redes de Computadores do IFRN, Bruno Pontes.

Clique aqui para acessar

Redes de longa distância

1. Breve história das redes WAN

A história da WAN começa em 1965 quando Lawrence Roberts e Thomas Merril ligaram dois computadores, um TX-2 em Massachussets a um Q-32 na Califórnia, através de uma linha telefônica de baixa velocidade, criando a primeira rede de área alargada (WAN).

Em geral, as redes geograficamente distribuídas contém conjuntos de servidores, que formam sub-redes. Essas sub-redes têm a função de transportar os dados entre os computadores ou dispositivos de rede.

As WAN tornaram-se necessárias devido ao crescimento das empresas, onde as LAN não eram mais suficientes para atender a demanda de informações, pois era necessária uma forma de passar informação de uma empresa para outra de forma rápida e eficiente. Surgiram as WAN que conectam redes dentro de uma vasta área geográfica, permitindo comunicação de longa distância.

2. Rede de área alargada (WAN)

As redes de área alargada (Wide Area Network) tem a dimensão correspondente a países, continentes ou vários continentes. São na realidade constituidas por múltiplas redes interligadas, por exemplo LANs e MANs. O exemplo mais divulgado é a "internet". Dada a sua dimensão e uma vez que englobam LANs e WANs, as tecnologias usadas para a transmissão dos dados são as mais diversas, contudo para que as trocas de informação se processem é necessário um elo comum sobre essa tecnologia heterogénea. Esse elo comum é o protocolo de rede.

As WANs são redes usadas para a interconexão de redes menores (LANs ou MANs) e sistemas computacionais dentro de áreas geográficas grandes (cidades, países ou até continentes). Elas possuem um custo de comunicação bastante elevado devido aos circuitos para satélites e enlaces de microondas.

São, em geral, mantidas, gerenciadas e de propriedade de grandes operadoras (públicas ou privadas), e o seu acesso é público. São exemplos de tecnologias WAN as ATM e X.25.

Por questões de confiabilidade, caminhos alternativos são oferecidos entre alguns nós. Com isso, a topologia da rede é, virtualmente, ilimitada, isto é voz, dados e vídeo são comumente integrados.

A capacidade de chaveamento da rede permite a alteração dinâmica do fluxo de dados, ao contrário das LANs, que normalmente empregam o roteamento fixo.

A interligação ("internetworking") de redes de diferentes tecnologias é assegurada por dispositivos conhecidos por "roteadores". Um roteador possui tipicamente ligação física a duas ou mais redes, recebendo dados de uma rede para os colocar na outra rede. Um exemplo tipico é a ligação de uma rede "Ethernet" a uma rede ponto-a-ponto.

2.1. Características das redes WAN

– Cobertura de grandes áreas geográficas geridas por operadores de Telecomunicações;

– Os recursos de transmissão podem ser dedicados ou partilhados;

– Usa-se diversas tecnologias de transporte (modos de transferência)

     • Comutação de circuitos (rede telefônica, RDIS)

     • Comutação de pacotes (X.25, IP)

     • Comutação de tramas (Frame Relay)

     • Comutação de células (ATM – Asynchronous Transfer Mode)

     • Comutação de etiquetas (MPLS – Multiprotocol Label Switching)

– Deve conectar computadores entre longas distâncias;

– Deve permitir que muitos computadores possam se comunicar simultaneamente sem limitação de largura de banda;

– Escalabilidade.

– São construídas a partir de muitos switches, os quais os computadores individuais se conectam.

– Para aumentar a rede, basta inserir mais switches para acomodar mais computadores.

– O dispositivo switch utilizado para as WAN são os switches de pacotes;

Os switches são combinados para formar uma rede de longo alcance. Os switches podem ser interconectados através de grandes distâncias. As combinações podem ser realizadas para acomodar mais tráfego e oferecer redundâncias nos casos de falhas.

2.2. Protocolos WAN

Um protocolo tem algumas regras que os nós devem obedecer para se comunicarem uns com os outros. O que eles fazem é criar uma linguagem comum entre diferentes máquinas. De forma geral, ele é um conjunto de regras, especificações e procedimentos que devem governar entidades que se comunicam entre si.

Elementos de um protocolo
– Sintaxe (formato dos dados, níveis de sinal, etc.)

– Semântica (informação de controle, tratamento de erros) – procedimentos

– Temporizações (adaptação de velocidades, sincronização, ordenação dos dados).

2.2.1. Protocolo ponto-a-ponto [Point-to-Point Protocol ( PPP )]:

É o protocolo mais comum para dar acesso à internet tanto em conexões discadas como dedicadas.

2.2.1.1. Topologia do PPP na rede WAN

Chama-se “topologia” à disposição física dos computadores relativamente às cablagens e dispositivos que os unem. Entretanto, são várias as topologias existentes, nomeadamente:
Estrela/Star

Este tipo de topologia ganhou terreno relativamente à topologia bus, principalmente devido à maior flexibilidade na alteração da estrutura da rede, sendo aquela que se utiliza em praticamente todas as redes Ethernet.

Une os computadores através de um hub central, do qual sai um cabo para cada máquina, formando assim uma estrela, que lhe dá o nome.

Vantagens

• Facilidade de modificação do sistema, já que todos os cabos ligam ao mesmo local;

• Baixa de um computador não afeta o resto da rede;

• Fácil detecção e isolamento de falhas;
• Simplicidade de protocolo de comunicação;
• Pode utilizar múltiplos tipos de cabo;
Desvantagens
• Maior comprimento do cabo para efetuar as ligações;
• Dificuldade em expandir o número de nós;
• Dependência do nó central, se este falhar, a rede fica inoperacional.

Anel/Ring

Na topologia em anel cada computador está ligado a outros dois ao longo de um circuito fechado. A informação circula num determinado sentido já pré-definido. Cada computador inclui um dispositivo de recepção e transmissão, o que lhe permite receber o sinal e passá-lo ao computador seguinte no caso de a informação não ser para ele.

As redes que usam esta topologia são designadas por Redes Token Ring. Os dispositivos utilizados neste tipo de rede tem de possuir uma certa inteligência para que, em caso de corte do anel, o hub consiga fazer um novo anel.

Vantagens
• Pequeno comprimento de cabo;
• Não são necessários armários de distribuição dado que as ligações são efectuadas em cada um dos nós;

• Funciona bem com muito tráfego.

Desvantagens

• A falha de um nó pode causar a falha de toda a rede;
• Dificuldade em diagnosticar falhas;
• Dificuldade em reconfigurar a rede;
• Tipicamente mais cara do que a topologia estrela.

Malha/Mesh

Cada par de componentes liga-se e comunica diretamente a outros componentes da malha e cada componente é responsável por gerir sessões.

Vantagens

• Extremamente resistente a falhas;
• De fácil manutenção.
Desvantagens
• Topologia que requer mais cablagem;
• Tipicamente a topologia mais cara.
2.2.2.  Rede X.25

É uma arquitetura de comutação de pacotes (que correspondem dois tipos de serviços: Circuitos Virtuais e Datagramas) definida nas recomendações do ITU-T. A rede X.25 fornece uma arquitetura orientada à conexão para transmissão de dados sobre uma rede física sujeita a alta taxa de erros. A verificação desses erros é feita em cada nó da rede entre a origem e o destino (store and forward), o que acarreta alta latência e inviabiliza a rede X.25 para a transmissão de voz e vídeo. A rede pode dispor de mecanismos para:

• Manter a sequência (ordenação) de pacotes nó a nó;

• Reordenação de pacotes antes da entrega;
• Detecção (e eventual recuperação) de erros.

O uso da técnica de pacotes proporciona um elevado padrão de qualidade. A determinação do caminho mais adequado para transmissão de um conjunto de pacotes permite contornar situações adversas decorrentes de falhas no sistema ou de rotas congestionadas.
2.2.2.1. Níveis do Protocolo X.25
A recomendação X.25 do ITU-T define os protocolos na interface de acesso entre um equipamento terminal e uma rede pública de comutação de pacotes especifica três níveis que correspondem aos três níveis mais baixos do OSI:

     - Nível Físico - Interface física entre o equipamento terminal (DTE) e um equipamento de terminação de Rede (DCE).

     - Nível de ligação de dados (nível trama) - LAPB (Link Access Procedures Balanced) - Especifica os procedimentos para estabelecer, manter e terminar uma ligação de dados que permite o envio confiável de tramas, sujeito a mecanismos de controle de erros e de fluxo.

     - Nível de rede (nível pacote) - Oferece um Serviço de Circuitos Virtuais. Especifica os procedimentos para estabelecer, manter e terminar circuitos virtuais e transferir pacotes de dados nos circuitos virtuais.

2.2.3. Frame Relay

É uma arquitetura de rede de pacotes que adota o modelo de comutação de Circuitos Virtuais de alta velocidade e sucessor natural da rede X.25. Permite comutação mais rápida e mais eficiente que a comutação X.25 e ultrapassa algumas limitações dos serviços em modo pacote na RDIS.

O Serviço Frame Relay é orientado à conexão, oferecendo portanto uma interface do tipo Circuito Virtual. Os Circuitos Virtuais são identificados por um identificador de ligação de dados (DLCI) no campo de endereço das tramas.

Os Circuitos Virtuais podem ser de dois tipos: 

• Comutados (SVC – Switched Virtual Circuits)

     - Os circuitos virtuais comutados (chamadas virtuais) são estabelecidos e terminados por meio de procedimentos de sinalização.
• Permanentes (PVC – Permanent Virtual Circuits)
     - Os circuitos virtuais permanentes são estabelecidos por meio de procedimentos de gestão.

2.2.3.1. Caracteristicas do Frame Relay

– Procedimentos de sinalização de nível 3 em canais lógicos separados;

– Multiplexagem e comutação de circuitos virtuais no nível 2;
– Ausência de controle de erros e de fluxo nó-a-nó;
– Controle de erros e de fluxo extremo-a-extremo.
2.2.3.2. Parâmetros de tráfego 

AR – Access Rate
     
     - Capacidade do canal físico para acesso ao serviço;
     - O débito instantâneo do utilizador é limitado pela capacidade do canal de acesso.
CIR – Committed Information Rate

     - Débito médio na interface de acesso que a rede deve garantir em condições normais;
     - CIR é definido num intervalo T (tipicamente da ordem de 1 segundo) não diretamente especificado.
Bc – Committed Burst Size

     - Máxima quantidade de informação que a rede aceita transferir em condições normais durante um intervalo T, indiretamente definido pela relação Bc = CIR * T;
     - É possível transmitir um burst máximo Bc com débito instantâneo AR, desde que o valor médio do débito (em qualquer intervalo T) não exceda CIR;
     - O tráfego é sujeito a policiamento pela rede em janelas de observação contínuas de duração T;

     - A geração de tráfego conforme (shaping) e o respectivo policiamento podem ser realizados com um mecanismo de controle do tipo Token Bucket.
Be – Excess Burst Size

     - Máxima quantidade de informação (para além de Bc) que a rede transmite condicionalmente durante um intervalo T; Be = EIR * T, sendo EIR a Excess Information Rate;
     - Tráfego que num período T exceda Bc + Be é descartado incondicionalmente.
2.2.3.3. Vantagens e limitações do Frame Relay

- O serviço Frame Relay não garante total confiabilidade na transferência de dados, uma vez que tramas descartadas devido a erros de transmissão ou congestionamento não são recuperadas pela rede;

O impacto deste efeito é limitado pela elevada confiabilidade dos sistemas de transmissão digital e por mecanismos de prevenção de congestionamento.
- O aumento da capacidade de comutação resultante da redução de overheads protocolares e de processamento tem como consequências o aumento do débito (throughput) possível (total e por circuito virtual) e a redução do tempo de atraso (latência) na rede.
• O serviço Frame Relay combina assim as vantagens da comutação de circuitos dedicados com as vantagens da comutação de pacotes, podendo esta ser realizada a muito alta velocidade (tipicamente até cerca de 45 Mbit/s).

2.2.4. Rede ATM (Asynchronous Transfer Mode)

É uma tecnologia de rede (que adota também o modelo de comutação de Circuitos Virtuais) usada para WAN (e também para backbones de LAN), suporta a transmissão em tempo real de dados, de voz e vídeo. A unidade de transmissão e comutação designa-se por Célula. A topologia típica da rede ATM utiliza-se de switches que estabelecem um circuito lógico entre o computador de origem e destino, deste modo garantindo alta qualidade de serviço e baixa taxa de erros.

Diferentemente de uma central telefônica, a rede ATM permite que a banda excedente do circuito lógico estabelecido seja usada por outras aplicações. A tecnologia de transmissão e comutação de dados utiliza a comutação de células como método básico de transmissão, uma variação da comutação de pacotes onde o pacote possui um tamanho reduzido. Por isso, a rede ATM é altamente escalável, permitindo velocidades entre nós da rede como: 1.5Mbps, 25Mbps, 100Mbps, 155Mbps, 622Mbps, 2488Mbps (~2,5Gbps), 9953Mbps (10Gbps).

2.2.4.1. Camada ATM

As principais funções da camada ATM são a multiplexagem e a comutação de células de diferentes conexões virtuais.

Células de uma mesma conexão transportam um identificador comum, que tem significado local em cada interface e que, por essa razão, é normalmente alterado no processo de comutação.

O identificador de conexão é estruturado em duas partes:
• VPI – Virtual Path Identifier
• VCI – Virtual Channel Identifier
O conceito de Caminho Virtual (VP – Virtual Path) permite agrupar Canais Virtuais (VC – Virtual Channels), que podem ser comutados em conjunto.

2.2.4.2. Multiplexagem e comutação em ATM

É inerente ao modo de operação do ATM que a ocupação de células de um circuito virtual seja irregular (assíncrona), não obedecendo a um padrão pré-definido.
A multiplexagem e comutação de células ATM origina variações de débito e atraso que dependem por um lado do próprio padrão de tráfego submetido em cada circuito virtual, mas também da disponibilidade de recursos.

A importância das variações instantâneas do débito e do atraso depende dos requisitos de Qualidade de Serviço (QoS). A existência de tráfego com débito variável possibilita a exploração de Multiplexagem Estatística.

• A multiplexagem estatística permite aumentar a eficiência na utilização de recursos;
• A multiplexagem estatística aumenta a probabilidade de conflitos no acesso a recursos, originando situações de sobrecarga que agravam os atrasos e podem mesmo originar perdas (overflow de buffers).

2.2.4.3. QoS em redes ATM

Parâmetros de Qualidade de Serviço

- Cell Loss Ratio (CLR) - Definido para cada conexão pela relação:
     
     Nº de células perdidas / Nº total de células transmitidas
- Maximum Cell Transfer Delay (maxCTD) - O valor especificado por conexão é o percentil (1 - α) de CTD, isto é p (CTD > maxCTD) < α.

     Para serviços de tempo real, células cujo atraso exceda um certo limite são consideradas como perdidas (inúteis).

- Peak-to-peak Cell Delay Variation (peak-to-peak CDV)
     Habitualmente designado por Delay Jitter - É a diferença entre o maxCTD e o valor das componentes fixas do atraso (que determinam o atraso mínimo).
2.2.4.4. Funções de Controle de tráfego
O ATM Forum identificou um conjunto de funções genéricas de Controle (Gestão) de Tráfego, que deverão ser suportadas em diferentes elementos de rede – equipamento terminal, nós de acesso e nós internos da rede.

- Connection Admission Control – CAC
- Feedback Control

- Usage Parameter Control – UPC

- Cell Loss Priority Control
- Traffic Shaping
- Network Resource Management
- Frame Discard
2.3. Outros protocolos usados nas WAN
DSL (Digital Subscriber Line)

Permite tráfego de alta capacidade usando o cabo telefônico normal entre a casa ou escritório do assinante e a central telefônica. Possui dois modos básicos: ADSL e HDSL.
ADSL (Asymmetric DSL)
O ADSL compartilha uma linha de telefone comum, usando um faixa de frequência de transmissão acima daquelas usadas para a transmissão de voz. É a variação do protocolo DSL onde a capacidade de transmissão é assimétrica, isto é, a banda do assinante é projetada para receber maior volume de dados do que este pode enviar. Serviço mais adequado ao usuário comum que recebe dados da internet.

HDSL (High-Bit-Rate DSL)
O HDSL fornece um enlace de alta taxa de transmissão de dados, tipicamente T1, sobre o par trançado comum, exigindo a instalação de pontes e repetidores. Esta variação do protocolo DSL onde a capacidade de transmissão, a banda do assinante, tem a mesma capacidade de envio e recebimento de dados. Serviço mais adequado ao usuário corporativo que disponibiliza dados para outros usuários comuns.

Tecnologias de redes locais

1. Introdução

Nas topologias de redes em barramento e anel, observamos que o meio de interligação é comum entre as estações. Desta forma, quando duas máquinas necessitam trocar informações é necessário que exista um protocolo de controle do meio de transmissão, a fim de que outras máquinas não tentem transmitir, interferindo, assim, na comunicação que está em andamento.

As primeiras tecnologias de redes foram desenvolvidas por grandes corporações com a Xerox, a GM e a IBM. Em seguida, a organização americana IEEE (Institute of Electrical and Electronics Engineers – Instituto dos Engenheiros Eletricistas e de Eletrônica) desenvolveu um conjunto de padrões de protocolos de acesso ao meio para LANs conhecido como IEEE 802.

Posterioremente, a ISO adotou estes padrões internacionalmente como ISO 8802.

2. Histórico

Na década de 70 as grandes corporações como a Xerox, a General Motors e a Boeing começaram a se interessar pela automação dos seus escritórios e linhas de montagem. A partir de então, houve um desenvolvimento acelerado dos padrões de redes locais. A Xerox Corporation implementou a LAN Ethernet, a qual foi rapidamente adotada por muitas empresas, e a Intel construiu posteriormente um controlador de Ethernet em um único chip. Não demorou muito para que a Ethernet se tornasse um padrão de fato para LANs.

Paralelamente, a GM necessitava de LANs que atendessem a automação de suas fábricas, onde os carros se movimentavam a uma taxa fixa na linha de montagem. Portanto, a GM considerou essencial ter uma LAN com tempos determinísticos de transmissão de informações. Como a Ethernet não possuía esta propriedade, a GM optou por uma LAN chamada Token Bus, na qual as máquinas se alternariam, uma de cada vez, dando assim, um desempenho no pior caso determinístico, em vez de estatístico. Enquanto tudo isto acontecia, a IBM anunciou que havia adotado uma terceira opção, a Token Ring como seu padrão de LANs. A IBM adotou este padrão devido à sua alta confiabilidade e facilidade de manutenção, assim como outras vantagens técnicas.

Quando foi pensado em criar um padrão oficial para LANs, sobre a coordenação do IEEE, verificou-se que existiam três padrões de fato adotados, e como não existia uma maioria para a aprovação de um único padrão, foram estabelecidos pelo IEEE os três padrões de LANs, conhecidos como IEEE 802.3 (CSMA/CD) baseado no Ethernet, IEEE 802.4 token bus, e IEEE 802.5 (token ring).

3. A arquitetura IEEE 802 e o modelo OSI

Apesar das diferenças nos padrões de redes locais, as empresas viram a necessidade de utilizarem protocolos específicos e uma arquitetura aberta para suas redes, a fim de evitar futuras incompatibilidades. Obviamente foi adotado o modelo OSI para a implementação das arquiteturas. O conjunto dos padrões 802.X foi adotado pela ISO internacionalmente como tecnologias de redes locais através da padronização ISO 8802. Portanto, as tecnologias de redes locais do IEEE foram adotadas nas arquiteturas abertas OSI e TCP/IP.

A arquitetura IEEE compreende duas camadas: a física e a de enlace de dados. A camada de enlace de dados é dividida em duas partes: uma sub-camada de controle de acesso ao meio denominada de CAM que corresponde aos protocolos de acesso ao meio IEEE 802.3 (CSMA/CD), IEEE 802.4 (token bus) e IEEE 802.5 (token ring) e uma sub-camada de controle de enlace de dados denominada de LC e padronizado através do IEEE 802.2. A sub-camada LLC é a responsável pelo interfaceamento dos diferentes protocolos de acesso ao meio às camadas superiores do OSI e do TCP/IP. Além de servir de interfaceamento, a LLC é responsável pelas funções de controle de erro e de fluxo dos dados. A figura abaixo mostra a arquitetura IEEE 802 e o seu mapeamento no modelo OSI.
Mapeamento da arquitetura IEEE 802 no modelo OCI

Padrão IEEE 802.3 (CSMA/CD)

O IEEE 802.3 (ISO 8802-3) é o padrão para redes locais em barramento cujo protocolo para acesso ao meio é denominado de CSMA/CD (Carrier Sense Multiple Access with Collision Detection), acesso múltiplo por detecção de portadora com detecção de colisão. As redes IEEE 802.3 operam a taxas de velocidades de 10 Mbps, 100 Mbps, 1 Gbps podendo chegar a 10 Gbps.

O padrão IEEE 802.3 converge para a especificação Ethernet da Xerox. Por isso, esta tecnologia é geralmente denominada de Ethernet.

4.1 Protocolo de acesso ao meio

Para entender a técnica CSMA/CD, a figura abaixo ilustra a topologia de uma rede ethernet onde o meio é comum e o acesso é compartilhado entre todos os computadores. A figura "a" mostra a topologia física de uma rede ethernet. Neste exemplo, se considerarmos um equipamento de convergência, onde o sinal que chega por uma porta é difundido por todas as outras portas, esta rede tem uma topologia lógica em barramento, conforme a figura "b".
Topologia de uma rede ethernet

Portanto, considerando uma rede em barramento da figura abaixo, o protocolo CSMA/CD que controla a política de ocupação do meio pode ser explicado da seguinte forma:
Topologia de uma rede em barramento ethernet

1°) Quando um computador necessita enviar dados pela rede, ele verifica primeiramente se o meio está livre, ou seja, ele “escuta” se na rede nenhum outro computador está transmitindo. Caso o meio esteja ocupado, ele aguarda um tempo aleatório e repete o processo;

2°) Caso o meio esteja livre, ou seja, nenhum computador da rede transmitindo, os dados são enviados;

3°) Entretanto, se no mesmo instante um outro computador transmitir dados pela rede, haverá colisão de informações. Esta colisão é detectada pelos dois computadores, através da técnica de “escuta” do meio durante a transmissão, assim, o envio de informações é abortado pelos dois computadores;

4°) Em seguida, cada computador aguarda um tempo aleatório e repete o processo de escuta do meio e transmissão em seguida.

A técnica CSMA/CD apesar de ser a mais popular e a mais difundida entre as redes locais, não é aplicada em redes que possuem computadores com aplicações que exigem tempos determinísticos para comunicação, como, por exemplo, controles de processos em tempo real. A popularidade da técnica CSMA/CD deve-se principalmente ao fato do padrão Ethernet ser implementado em praticamente todas as redes que atendem a automação dos escritórios das empresas e universidades.

4.2 Sintaxe do protocolo

A estrutura do quadro MAC do padrão IEEE 802.3 é mostrada na figura abaixo.
Sintaxe do quadro IEEE 802.3

A função de cada componente do quadro é a seguinte:

- Preâmbulo (7 bytes): Cada um dos 7 bytes contém o formato de bits 10101010. A codificação Manchester desse padrão produz uma onda quadrada de 10MHz por 5,6s para permitir que o relógio do receptor se sincronize com o do transmissor;

- Delimitador de início de quadro (1 byte): Contém os bits 10101011 para sinalizar o início do quadro propriamente dito;

- Endereço de destino e Endereço de origem (2 ou 6 bytes): É o endereço referenciado entre as estações de origem e de destino. Normalmente esses endereços são chamados de endereços MAC. O padrão Ethernet usa endereços de 6 bytes, entretanto o IEEE 802.3 suporta também endereços de 2 bytes;

- Comprimento do campo de dados (2 bytes): Informa quantos bytes estão presentes no campo de dados;

- Dados (0 a 1500 bytes): É a parte que contém as informações propriamente ditas, ou seja, é a PDU (unidade de dados de protocolo) para a camada LLC. Embora um quadro de dados com 0 bytes seja válido, ele causa um problema. Quando detecta uma colisão, um transceptor trunca o quadro em uso, o que significa que pedaços de quadros e bits perdidos aparecem no cabo a toda hora. Para diferenciar um quadro válido de lixo, o IEEE 802.3 diz que todos os quadros válidos devem ter ao menos 64 bytes, do endereço de destino até a soma de verificação. Também, o IEEE 802.3 diz que o quadro deve conter no máximo 1518 bytes;

- Pad (preenchimento): Consiste de bytes suficientes de preenchimento para assegurar ao quadro IEEE 802.3 o tamanho mínimo de 64 bytes. Se a parte de dados é grande o suficiente, o campo Pad não aparece no quadro (ele se transforma em um campo de comprimento zero);

- FCS (Frame Check Sequence - Checagem de Sequência de Bloco) (4 bytes): Monitora erros de transmissão. A estação de origem executa um teste de redundância cíclica (CRC) nos bits do bloco, e armazena o resultado destes cálculos no campo FCS. A estação de destino realiza a mesma operação e compara seu resultado com os valores do campo FCS. Se os valores forem diferentes, a estação de destino reporta uma mensagem de erro.

4.3 Classificação do IEEE 802.3

O rápido avanço tecnológico dos computadores e de suas aplicações exigiu uma melhoria no desempenho das redes. Desta forma, o padrão IEEE 802.3 (Ethernet) que inicialmente operava a uma taxa de 10 Mbps, evoluiu para outros padrões cuja característica está no aumento da taxa de velocidade obtida. Assim, surgiu uma série de padrões IEEE 802.3 cuja a evolução da tecnologia ocorreu basicamente na taxa de transmissão e no meio fisco (cabeamento metálico ou ótico) da rede. O protocolo MAC que é o CSMA/CD manteve-se inalterado.

O padrão IEEE 802.3 pode ser classificado conforme abaixo:

IEEE 802.3 (Ethernet) a 10 Mbps em par metálico e ótico;

IEEE 802.3u (Fast-Ethernet) a 100 Mbps em par metálico e ótico;

IEEE 802.3z (Gigabit Ethernet) a 1Gbps em cabo ótico;

IEEE 802.3ab (Gigabit Ethernet) a 1Gbps em par metálico;

IEEE 802.3ac (Gigabit Ethernet) a 10 Gbps em cabo ótico.

4.4 Nível físico do IEEE 802.3

As tecnologias de redes incluem as camadas físicas e enlaces de dados. Desse modo, os padrões do IEEE para tecnologias de redes compreendem além no protocolo MAC e da taxa de velocidade, o meio que suportará os sinais transmitidos.

A tabela a seguir apresenta os diferentes meios utilizados nas redes Ethernets. As especificações usam nomes que obedecem a uma convenção onde a primeira parte é a taxa de transmissão de bits/segundo (bps), a segunda, base, indica que a transmissão é realizada em banda de base (transmissão digital sem modulação). Por último, a terceira parte indica o tipo de cabeamento empregado.


4.5 Padrão IEEE 802.5 (token ring)

O IEEE 802.5 (ISO 8802.5) é o padrão para redes locais que operam em 4 e 16 Mbps utilizando a técnica token ring (passagem de fichas) para acesso ao meio.

O token ring foi desenvolvido pela IBM para conectar microcomputadores com seus meios ambientes de grande porte. Em razão da significativa base instalada pela IBM, criou-se um consenso no sentido de definir um padrão de LAN baseado nesta implementação.
Topologia de uma rede token ring

4.5.1 Protocolo de acesso ao meio

Para entender a técnica de passagem de fichas a figura acima ilustra a topologia em anel utilizada nas redes token ring. O acesso das estações ao anel é controlado por grupos especiais de bits chamados de token (ficha), os quais circulam através do anel de estação em estação. A técnica para o envio de informações pela rede é realizada da seguinte forma:

- Existe um token circulando pelo anel. Quando uma estação recebe o token, ela repete este token, se não tiver nada para transmitir;

- Por outro lado, se ela tiver algo para transmitir, o token recebido é substituído por um quadro de dados. Em seguida, o quadro é enviado para a estação subseqüente;

- Se a estação subseqüente não for a estação de destino do quadro, ela apenas o recebe e o reenvia a estação seguinte, ou seja, ela ignora o quadro;

- Se a estação subseqüente for a estação de destino dos dados, ela copia o quadro e em seguida, o reenvia a estação subseqüente;

- O quadro é reenviado por todas as estações subseqüentes, até alcançar a estação de origem, que, por sua vez, retira o quadro de dados e libera um token para a estação seguinte.

Ligue a vontade para qualquer celular ou fixo em todo o Brasil, EUA e Canadá, através do 99TelexFREE. Teste nosso serviço por 1 hora gratuitamente: http://www.telexfree.com/ad/marcelmesmo