segunda-feira, 21 de junho de 2010

CAMADA DE APLICAÇÃO DO MODELO OSI


A camada de aplicação é a última do modelo OSI (camada 7). Fornece os mecanismos de comunicação de alto nível às aplicações e é responsável pela interface entre o protocolo de comunicação e a aplicação utilizada pela rede.
Os principais protocolos de aplicação são os seguintes:
DNS (Domain Name System:53) – usado para identificar máquinas através de nomes em vez de IP’s;
Telnet (Terminal Emulation:23) – usado para comunicar remotamente com uma maquina ou equipamente;
FTP (File Transport Protocol:21) – usado para transferência de ficheiros de/ou para uma maquina remota;
SMTP (Simple Mail Transfer Protocol:25) – usado no envio e recepção de email’s;
HTTP (Hyper Text Transfer Protocol: 80) – usado para o acesso a página na web.


DNS
A função do DNS é relacionar nomes com números (IP). A razão da sua utilização resulta de ser mais simples, para nós seres humanos, a aprendizagem de nomes em vez de números para identificar algo de concreto, como, por exemplo uma página de internet. O site www.google.pt é na verdade o IP 64.233.183.147. Cada um de nós consegue memorizar pelo menos uma dezena de sites. Contudo, se esses sites fossem representados por números em vez de letras seria mais difícil memorizá-los e também associá-los ao seu verdadeiro conteúdo.

Como funciona o DNS?
O DNS funciona de forma hierárquica.



Como pode verificar na fig. 1 o servidor DNS de raiz é responsável por cada um dos domínios imediatamente abaixo.
Por sua vez, estes são responsáveis pelos imediatamente abaixo deles e assim sucessivamente. Cada um destes níveis é separada por um ponto (ex: www.fe.up.pt).
Quando existe um pedido (aceder a uma página web), ele é direccionado para níveis superiores até que um deles saiba para onde o encaminhar.
Quando se digita um endereço (ex.: www.esan.edu.pt), o pedido é direccionado para o servidor root DNS, que começa por localizar o servidor (.pt), depois o subdomínio (.edu.) e, por último, a página corresponde (esan.), enviando depois a mensagem ao computador que solicitou o pedido.

NOÇÕES SOBRE AS CAMADAS DE SESSÃO E APRESENTAÇÃO DO MODELO OSI

Apesar de desempenharem um papel importante no modelo OSI, as funções destas camadas podem ser resumidas em poucas palavras.
Camada 5 Sessão – Responsável por sincronizar o diálogo entre emissor e receptor (simples, half-duplex, full-duplex) e pelo restabelecimento automático de ligações.
Camada 6 Apresentação – Esta camada é responsável pela interacção entre camada 5 e 7. Funciona com um tradutor ou intermediário. Converte os dados recebidos da camada 7 para o formato universal, antes de os passar à camada 5.
Quando recebe dados da camada 5, a conversão é realizada em sentido contrário antes de passar a informação à camada 7.

PROTOCOLOS TCP E UDP

Os dois principais protocolos de transporte utilizados na internet são o TCP (Transmission Control Protocol) e o UDP (User Datagrama Protocolo).
Como verificamos anteriormente, estes protocolos distinguem-se pela fiabilidade. Enquanto o TCP garante o transporte fiável entre estações, o UDP não o faz. Diz-se que o TCP disponibiliza um serviço orientado a ligação e o UDP um serviço não orientado à ligação.

OBJECTIVO DA CAMADA 4 DO MODELO OSI

A camada de transporte é responsável pela ligação lógica entre processos de aplicação de estações diferentes. Denomina-se de comunicação lógica, porque do ponto de vista das aplicações funciona como as estações estivessem lado a lado, ligadas directamente entre si. Contudo, as estações podem encontrar-se uma em cada lado do planeta.
A camada de transporte providencia a ligação lógica para os processos de aplicação, que por sua vez, não tem conhecimento da infra-estrutura física utilizada para o transporte das mensagens (transparência).
Durante o caminho, os routers não tem conhecimento do que se passa na camada de cima, limitando-se a analisar os campos dos datagramas que se referem à camada de rede.

Os protocolos da camada de transporte apenas são implementados nas estações terminais (ver figura seguinte).


Diz-se então que a camada de transporte é responsável pela transferência de informação extremo a extremo. Separa as camadas responsáveis pelo meio físico (camada 1,2 e 3) das que tratam da aplicação (camada 5,6,7).


domingo, 20 de junho de 2010

Protocolo de encaminhamento dinâmico RIP (Continuação)


Neste protocolo de 30 em 30 segundos cada router envia para os seus vizinhos actualizações. Um router que não receba informação do outro router (vizinho) durante 90 segundos marca essa rede com inacessível. Ao fim de 3 minutos sem dar notícias” os routers vizinhos apagam a linha da tabela

de routing que continha essa rede. Entretanto, durante esses períodos de espera o que acontece se existirem alterações na topologia da rede? Muito provavelmente loops. Este é outro dos problemas do RIP, a sua incapacidade de detectar loops na rede. A lentidão com que converge aliada à falta de sincronismo dos nós propicia a formação de loops que podem ser um problema grave.


Vejamos o exemplo:


Imaginem que o router A comunica com o C através do B.

Entretanto o link entre B e C cai (ver figura seguinte). O router B altera o valor do número de saltos para C, na sua tabela, para infinito (valor quando o destino não se encontra acessível)


Até aqui tudo bem. No entanto, imaginem que A ainda não recebeu nenhuma actualização por parte de B relativamente ao router C e envia a sua tabela para B (devido à comunicação ser assíncrona). O router B compara o número de salte que A lhe deu para chegar a C com o valor que tem na sua tabela, que neste caso é infinito. Como esse número é menor ele actualiza a sua tabela para chegar a C (2+1) porque acha que A encontrou outro caminho para lá chegar (ver figura seguinte).

Supondo que nesse momento o router A tenta enviar um pacote de dados para C, envia-o através de B, pensando que ainda pode fazer o trajecto A-B-C. Chegado o pacote B, ele reenvia-o para A, já que o caminho para C continua em baixo.

Quando esta informação chega de novo a A ele continua a ter na sua tabela que o caminho para C é por B. Assim, pensando que o router B teve de alterar o caminho para C por algum motivo, actualiza a sua tabela com a nova distância que recebeu de B (3) adicionando uma unidade (salto a dar entre A e B).


A próxima actualização será por parte de A (temporizador de 30 segundos) que irá actualizar a tabela de B (4+1) novamente e assim sucessivamente criando-se um loop infinito.

Como é possível solucionar este problema?

Para “tentar resolver” o problema da contagem para o infinito, introduziu-se um limite de números de saltos máximos possíveis. Estipulou-se 16 saltos (infinito). Assim, o loop somente se prolonga até aos 16 saltos onde o nó será removido da tabela de encaminhamento. Contudo, outro problema emergiu devido a esse limite. Se, por um lado, limitou-se a distância entre routers a 15 saltos deixa de ser atingível. Diz-se nesses casos que a rede não teve capacidade para convergir.


Todavia, a solução dos 16 saltos não evita que o loop se mantenha, por vezes, bastante tempo (pode demorar alguns minutos) sendo possível perder-se informação de encaminhamento relativa a outras redes. A resposta a este problema residia então no período de latência entre actualização periódica criou-se outra técnica chamada Triggered Updates. A implementação desta técnica permitia que, imediatamente após a alteração de uma métrica num router, a informação seguisse para os routers vizinhos. No entanto, tem de ser usada com cuidado pois em alguns casos existe a possibilidade de se criarem broadcast storms.


Broadcast storm


Quando uma mensagem enviada em broadcast gera mais resposta em broadcast e estas por sua ves ainda mais, levando a um efeito de bola de neve e consequente


Na tentativa de evitar as Broadcast Storm e os loops desenvolveu-se ainda outra técnica denominada de Split Horizom. O protocolo de RIP v.1 foi o primeiro a utilizá-lo. Este protocolo garante que os routers não anunciam as rotas através das interfaces por onde as aprenderam. Assim, no exemplo anterior, se A actualizasse B antes de B actualizar A não haveria problema pois este não mencionaria o custo para C a B já que aprendeu essa rota através do próprio. Na próxima actualização, B comunicaria a A que C estava inacessível. Assim, o router A teria de escolher outro caminho para chegar a C (caso existisse).

Está técnica é porém falível pois não evita loops quando eles são independentes e ocorrem em mais de duas máquinas em simultâneo.

Na versão 2 do protocolo RIP, usa-se outra técnica denominada de Split Horizon With Poisen Reverse que em vez de omitir as rotas.


Na versão 2 do protocolo RIP, usa-se outra técnica denominada de Split Horizon With Poisen Reverse que em vez de omitir as rotas aprendidas através de uma certa interface, inclui essa rota nas trocas de informação, mas colocando o seu valor em 16 (infinito). Desta forma, muito dificilmente há probabilidade de ocorrer um loop na rede.



RIP 1.0

Envio de mensagens por broadcast;
qInterrompem todas as maquinas (mesmo que não tenha RIP);
Não existe autenticação das mensagens;
Suporte muito imcompleto a máscaras de rede.



RIP 2.0


Envio em multicast 224.0.0.0;
Autenticação das mensagens (maior segurança);
Campo para indicar máscaras de rede com suporte para mascaras estáticas e variáveis (sub-redes).


mente ao bloqueio as comunicações numa rede.



Protocolo de encaminhamento dinâmico RIP


O RIP – Routing Information Protocol – foi usado pela primeira vez em 1969 (embora uma versão diferente das existentes hoje em dia) no projecto ARPANET. Existem dois tipos de RIP actualmente: RIP v.1 e RIP v.2.

Este protocolo (tanto RIP v.1 como RIP v.2) usa o algoritmo do vector das distâncias de Bellman-Ford. O RIP apenas deve ser usado em pequenas redes, devido ao seu problema de convergência (lenta) e limite de saltos.

Como vimos anteriormente, o algoritmo do vector das distâncias baseava-se em hop count (conta os saltos até ao destino). No RIP, a escolha dos caminhos é baseada apenas

no número de saltos até ao destino. Isto torna-o fácil de implementar e o router onde é implementado não tem de ter grande capacidade de processamento. Desta forma, quando um router recebe a tabela de um router vizinho a indica que é possível alcançar a rede X com um número de saltos N, significa que ele pode alcançar a mesma rede X com o números de saltos N+1, se for pelo router que lhe enviou a mensagem (iterativo).



No entanto, ao escolher as rotas apenas baseadas no número de saltos até ao destino (métrica utilizada) pode estar a pôr de parte alternativas melhores. Por exemplo, um destino pode encontrar-se a uma distância de 6 saltos através de uma linha de 10 Bbps e a 10 saltos através de uma linha de 1 Gbps. O RIP escolghia a primeira alternativa embora a segunda fosse melhor a nível de largura de banda. Este facto bem como o congestionamento, fiabilidade e outros não têm peso na decisão para a escolha dos melhores caminhos.








Algoritmos e respectivos protocolos de encaminhamento


Os algoritmos e protocolos de encaminhamento apenas se aplicam a endereços dinâmicos. Neste ponto abordam-se as formas como os routers de uma rede comunicam entre si e trocam informação, bem como conseguem, face a alterações na rede, permitir a convergência da mesma.

Na gíria de redes é usual ouvir-se dizer frequentemente que uma rede convergiu. Pode definir-se convergência como o intervalo de tempo necessário para que os routers tomem conhecimento de uma alteração na rede e recalculem as rotas para a nova topologia. Os factores que influenciam o t

empo de convergência são:


A distância em saltos do router ao ponto de mudança;
  1. O número de routers que usam protocolos dinâmicos de encaminhamento;
  2. Largura de banda e congestionamento nos links;
  3. Capacidade de processamento do router;
  4. Protocolo de encaminhamento utilizado.
  5. Neste ponto abordam-se dois algoritmos e os respectivos protocolos associados: Distance Vector (RIP) e Link.State (OSPF)

Distance Vector (DV) ou Algoritmo das Distâncias


Cada router tem uma tabela que contém as redes (routers) a ele ligadas directamente e as distâncias associadas. Todos os router da rede trocam as suas tabelas, constituídas por um vector (V,D) [onde V – identifica o destino e D – a distância até ao destino], com os seus routers vizinhos da seguinte forma:

1.Espera a mudança na distância até a um certo destino (geralmente hops) ou do final do temporizador;
2.Recalcula a tabela de encaminhamento;
3.Se a distância for menor para algum destino, notifica (apenas) os vizinhos.

Distance Vector (DV) ou Algoritmo das Distâncias (continuação)


A descoberta da rede é feita através do algoritmo do vector das distâncias ou de Bellman-Ford.

O algoritmo foi descoberto por dois matemáticos americanos Richard E. Bellman (1920-1984) e Lester Randolph Ford , Jr (1927 – presente) e consiste em calcular o caminho mais curto entre dois pontos. A sua aplicabilidade em redes foi deveras importante sendo ainda largamente utilizado em alguns protocolos.


Distance Vector (DV) ou Algoritmo das Distâncias (continuação)


O algoritmo apresenta a seguinte características:

Iterativo: através da informação recebida dos vizinhos consegue calcular a sua tabela:
Assíncrono: os routers não enviam a informação em simultâneo:
Distribuído: cada router comunica apenas com os seus vizinhos directos.




Rotas estáticas e dinâmicas (continuação) Rotas estáticas


Inseridas manualmente (implica pessoal especializado) através de comandos de administração para gerir a tabela de encaminhamento.


No caso de configurarem os routers da figura anterior com rotas estáticas, quando um computador da rede 172.16.3.0 quiser comunicar com um da rede 172.16.4.0 sabe que tem de encaminhar o pedido para a interface 172.16.1.2 para que o próximo router resolva. No entanto, se houvesse um outro caminho (melhor), que não o existente na figura, que ligasse o router 1 ao 2 ele continuaria a encaminhar os pacotes pela mesma interface visto este endereçamento ser estático. Resumidamente, este tipo de endereçamento apresenta vantagens e desvantagens.


Rotas estáticas

Vantagens

Maior segurança, uma vez que existe apenas um caminho de entrada/saída da rede;
Processamento da informação no router mais rápido.

Desvantagens

Sem redundância ou tolerância a falhas - no caso de um link falhar, perde-se a comunicação por completo, já que o router não irá tentar descobrir um caminho alternativo;
Em redes de grandes dimensões torna-se impraticável configurar todas as rotas manualmente.

Rotas dinâmicas

Em vez de inserção manual, a tabela de encaminhamento será preenchida dinamicamente com base em protocolos de encaminhamento. Usa-se essencialmente para redes mudanças frequentes de topologias ou de grande dimensões. O preenchimento será então baseado em Métricas que podem variar entre:

Números de saltos (hops)
Atrasos (delay);
Custo dos caminhos – valor atribuído arbitrariamente pelo administrador da rede;
Congestionamento;
Fiabilidade.

Rotas dinâmicas

Contudo, os routers não analisam todas estas métricas em simultâneo. Existem para isso algoritmos que suportam os protocolos de encaminhamento e podem usar apenas uma ou mais métricas com veremos no ponto seguinte. À semelhança das rotas estáticas existem vantagens e desvantagens na utilização das rotas dinâmicas que são apresentadas abaixo.

Vantagens

Garante redundância e tolerância a falhas;
Boa aplicabilidade para redes de grande dimensões.


Rotas dinâmicas

Desvantagens

Falta de controlo nas rotas escolhidas (tarefa do protocolo de encaminhamento);
Processamento da informação no router mais lento devido aos cálculos impostos pelo protocolo de encaminhamento.


Conceitos de ARP e tabelas de ARP

ARP – Address Resolution Protocol é a forma de associar um endereço físico (MAC Adress) num endereço virtual (IP).Quando apenas é conhecido o endereço virtual de uma estação e se pretende saber o endereço físico (MAC) da mesma é utilizado o protocolo ARP. Este, através do envio de uma mensagem em Broadcast - Quem é a estação com o IP xxx.xxx.xxx.xxx? – recebe a resposta da estação com o IP solicitado (em unicast) onde consta o MAC Address, permitindo assim a comunicação entre as duas máquinas.

Como vimos anteriormente, as mensagens em Broadcast podem baixar o rendimento de uma rede, já que causam um congestionamento ou broadcast storm. Para que as estações não necessitem de estar constantemente a enviar mensagens em Broadcast, guardam em forma de tabela os IP’s e respectivos MAC Adresses acedidos, bem como as das estações que lhe acederem recentemente. As linhas da tabela serão gradualmente apagadas ao fim de dois minutos, sempre que não se verificar comunicação entre os respectivos computadores. Assim, antes de transmitir a estação verifica se o computador como que pretende comunicar já se encontra na tabela. Se assim for retira o MAC respectivo da tabela e comunica em unicast, caso contrário, envia a mensagem em Broadcast (ARP Request).


O protocolo ARP é utilizado nas seguintes situações:

Quando duas estações estão na mesma rede e pretendem comunicar entre (sem aceder a routers) (PC-PC);
Quando duas estações estão em redes diferentes e têm de aceder a um Router/gateway para comunicar entre si (PC-Router);
Quando um Router tem de encaminhar um pacote de dados para um computador através de outro router (Router-Router);
Quando um Router tem de encaminhar um pacote de dados para uma estação na sua rede (Router-PC).