WirelessBR

WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade  comercial,  feito por voluntários, para divulgação de tecnologia em telecomunicações 

Série de artigos sobre VoIP (2)
VoIP

TCP/IP for not-so dummies
   - Parte 04

José de Ribamar Smolka Ramos


Série de artigos sobre VoIP
Segundo artigo - Parte 04

Camada internetwork  (Continuação 1)

Cada pacote que é recebido pela camada internetwork, vindo da camada de transporte do mesmo host, já vem com a informação de qual o endereço IP de destino final (destination address) que foi definido já na camada de aplicação, lembra? A socket interface mantém esta informação durante toda a duração da sessão. Este endereço, mais o endereço IP da interface do host por onde o pacote será enviado (source address) fazem parte do header do pacote IP. 

A primeira coisa que o algoritmo IP neste host faz é perguntar: eu tenho adjacência física com o host identificado pelo destination address? Isto é respondido obtendo o network address associado ao destination address em todas as interfaces deste host (via AND com as respectivas subnet masks ou prefixos CIDR, o que dá na mesma). Se houver coincidência, então o host de destino é adjacente a este host através da interface onde a coincidência ocorreu. 

Aqui está uma grande oportunidade para um administrador distraído “melecar” todo o processo de entrega de pacotes IP. Basta não coincidir as configurações das subnets com as redes físicas associadas às interfaces. Supondo que isto está ok, então o próximo passo é entregar o pacote IP à camada física associada à interface selecionada, e o pacote segue para o seu destino final diretamente. 

Mas, se não ocorrer nenhuma coincidência do network address de destino com os network addresses das interfaces deste host? Então a entrega do pacote terá de ser feita de forma indireta, usando outro host como “ponte” para fazer o pacote chegar mais perto do seu destino final. 

A decisão que este host tem de tomar, então, é: qual dos hosts (com os quais eu tenha adjacência física) é a melhor opção para encaminhar o pacote adiante, e fazê-lo chegar mais perto do destino pelo melhor caminho possível? Esta decisão é tomada com base em uma tabela de rotas (routing table), que todo host TCP/IP tem. 

Para os hosts menos complicados, que tem apenas uma interface física de aceso à rede, esta tabela assume, geralmente, uma forma muito simples: apenas a declaração do endereço IP do host que deve ser usado para encaminhar pacotes IP para qualquer outra subnet, diferente desta onde este host está diretamente conectado. Este é o last resort gateway, também conhecido como default gateway

Mas existem hosts com múltiplas interfaces, e/ou com múltiplas opções de quais poderiam ser os hosts usados para passar adiante os pacotes IP cujos destination addresses estão em subnets onde ele não tem conectividade física. Nestes casos a tabela de rotas terá múltiplas entradas, uma para cada subnet de destino (identificada pelo seu network address mais a subnet mask ou prefixo CIDR associados), e com a designação do endereço IP de um host (com conectividade física direta) que será usado para rotear os pacotes destinados àquela subnet

Resumindo, se eu tenho conectividade física, entrego o pacote diretamente. E se eu não tenho conectividade física, entrego o pacote indiretamente, remetendo o pacote para o host identificado como gateway de acesso para a subnet de destino na minha tabela de rotas. 

E se eu for um destes gateways intermediários? O que eu faço? Simples: recebo os pacotes físicos que foram endereçados a mim pelos outros hosts. Examino, então, o destination address para ver se ele coincide com algum dos meus próprios endereços IP (se eu tiver várias interfaces, então também terei vários endereços IP pelos quais eu posso ser conhecido). Se coincidir, então o pacote é para mim, e encaminho isto para cima, para a minha camada de transporte. Se não coincidir, eu também faço o processo de examinar minha tabela de rotas e passo o pacote adiante para o próximo gateway na rota. 

Fatos importantes sobre este método de roteamento: 

 

Figura 4 - Roteamento hop-by-hop


 
[11] As mais comuns são: port unreachable (não tem ninguém esperando por este pacote na camada de transporte do host que emitiu a mensagem); host unreachable (emitida pelo último gateway na rota, quando ele não consegue estabelecer conectividade física com o host de destino); network unreachable (emitida por um gateway na rota para indicar que ele não tem entrada para a subnet de destino na sua tabela de rotas); e redirect (emitida por um gateway na rota, para indicar que há uma opção melhor que ele para encaminhar o pacote). Além disso, o ICMP tem duas primitivas: ECHO e ECHO-REPLY, que são a base de funcionamento dos programas ping e traceroute, usados para testar a conectividade entre hosts e qual a rota que está sendo seguida pelos pacotes IP.

 

Home WirelessBR                    Anterior                     Próxima