17.04.2013 Views

plataforma piloto de ipv6 sobre atm para ambientes multicastin

plataforma piloto de ipv6 sobre atm para ambientes multicastin

plataforma piloto de ipv6 sobre atm para ambientes multicastin

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Sumário<br />

PLATAFORMA PILOTO DE IPV6 SOBRE ATM PARA AMBIENTES MULTICASTING<br />

Nuno Veiga 1 , Jorge Sá Silva 2 , Sérgio Duarte 3 e Fernando Boavida 4<br />

Grupo <strong>de</strong> Comunicações e Serviços Telemáticos<br />

Departamento <strong>de</strong> Engenharia Informática, Universida<strong>de</strong> <strong>de</strong> Coimbra - Pólo II<br />

3030 COIMBRA<br />

Tel: +351-39-790000, Fax: +351-39-701266, E-mail: sasilva@<strong>de</strong>i.uc.pt<br />

Este artigo apresenta a concepção e o <strong>de</strong>senvolvimento <strong>de</strong> uma<br />

<strong>plataforma</strong> experimental <strong>para</strong> o estudo do Internet Protocol<br />

version 6 (IPv6) <strong>sobre</strong> Asynchronous Transfer Mo<strong>de</strong> (ATM)<br />

no âmbito do projecto MEDIA – MARS Extensions Developed<br />

for IPv6 over ATM. Neste trabalho é dada especial atenção à<br />

criação <strong>de</strong> <strong>ambientes</strong> <strong>de</strong> <strong>multicastin</strong>g.<br />

1. INTRODUÇÃO<br />

A Internet terá <strong>de</strong> conseguir satisfazer o elevado número <strong>de</strong><br />

requisitos impostos quer pelos serviços actuais, quer pelos<br />

serviços futuros. O rápido crescimento verificado no número<br />

<strong>de</strong> utilizadores e a necessida<strong>de</strong> <strong>de</strong> suportar serviços sensíveis<br />

ao atraso e serviços multimedia evi<strong>de</strong>nciaram a presente<br />

inadaptação do Internet Protocol version 4 (IPv4). O IPv6 foi<br />

<strong>de</strong>senhado <strong>para</strong> ultrapassar as limitações impostas pelo IPv4 e<br />

acomodar as necessida<strong>de</strong>s sentidas pelos actuais utilizadores.<br />

Aliás, o maior objectivo que se apresenta ao IPv6 é estar<br />

concluído antes da ruptura do IPv4.<br />

O IPv6 teve por base o Simple Internet Protocol Plus<br />

[DEE94], e não está <strong>de</strong>finido numa simples especificação mas<br />

num conjunto <strong>de</strong> RFCs [DEE95], [HIE95], [CON95],<br />

[ATK95A] e [ATK95E].<br />

Enquanto o IPv4 <strong>de</strong>legava <strong>para</strong> um outro módulo a resolução<br />

<strong>de</strong> en<strong>de</strong>reços da camada 3 <strong>para</strong> a camada 2, e assim<br />

apareceram diferentes soluções como o Address Resolution<br />

Protocol (ARP) ou o ATMARP, o IPv6 assume ele próprio<br />

essa função. No entanto o IPv6 requer da camada inferior um<br />

meio do tipo multicast connectionless. Ora, como o ATM não<br />

oferece esta funcionalida<strong>de</strong> <strong>de</strong> forma directa, é necessário<br />

introduzir uma subcamada entre a camada 3 e a camada 2 que<br />

ofereça este ambiente ao IPv6 <strong>para</strong> assim po<strong>de</strong>r executar o<br />

Neighbor Discovery, o Router Discovery, e o Address<br />

Configuration.<br />

Não existia originalmente suporte multicast no Classical IP<br />

[LAU98]. Posteriormente introduziu-se o Multicast Address<br />

Resolution Server (MARS) [ARM96] que agrega um grupo <strong>de</strong><br />

nós (cluster). O MARS permite o mapeamento entre o<br />

en<strong>de</strong>reço multicast da camada 3 e os correspon<strong>de</strong>ntes<br />

en<strong>de</strong>reços ATM. Assim, quando o emissor preten<strong>de</strong>r enviar<br />

uma mensagem <strong>para</strong> um en<strong>de</strong>reço IP multicast e <strong>de</strong>sconhecer<br />

quais os vários en<strong>de</strong>reços ATM correspon<strong>de</strong>ntes terá <strong>de</strong><br />

solicitar ao servidor MARS a resolução.<br />

A especificação do MARS oferece duas opções. Na primeira<br />

opção, cada nó que preten<strong>de</strong> enviar uma mensagem multicast<br />

estabelece uma ligação ponto-multiponto <strong>para</strong> todos os nós<br />

terminais <strong>de</strong>sse grupo ("VC-mesh"). Na segunda opção, o nó<br />

estabelece ligação com um ou mais servidores multicast<br />

(MCS) que por sua vez mantêm ligações com os nós<br />

terminais.<br />

Alguns sistemas po<strong>de</strong>rão beneficiar do método MCS, e.g.<br />

1 Instituto Politécnico <strong>de</strong> Leiria<br />

2 Grupo <strong>de</strong> Comunicações e Multimedia – Universida<strong>de</strong> <strong>de</strong><br />

Trás-os-Montes e Alto Douro<br />

3 Instituto Politécnico da Guarda<br />

4 Departamento <strong>de</strong> Engenharia Informática - Universida<strong>de</strong> <strong>de</strong><br />

Coimbra<br />

quando o grupo muda frequentemente e apresenta um elevado<br />

número <strong>de</strong> elementos. Uma estrutura do tipo VC-mesh po<strong>de</strong>rá<br />

ser preferível quando o grupo é pequeno e estável ou o atraso<br />

<strong>de</strong> re-assembly e retransmissão dos pacotes AAL5 é<br />

inaceitável.<br />

O domínio do MARS, <strong>de</strong>nominado como Cluster MARS, é na<br />

prática um conjunto <strong>de</strong> pontos terminais que escolhem usar o<br />

mesmo MARS <strong>para</strong> registarem a sua participação em grupos e<br />

receber daquele as suas actualizações.<br />

Em geral, o Cluster MARS vai-se <strong>sobre</strong>por totalmente a uma<br />

Logical IP Subnet (LIS) a qual é <strong>de</strong>finida pelo conjunto <strong>de</strong> nós<br />

que usam o mesmo servidor ATMARP.<br />

O IETF, nomeadamente o grupo ION, parece optar por utilizar<br />

o MARS como a estrutura que possibilita oferecer à camada<br />

IPv6, através da subcamada IPv6-ATM, o meio broadcast. No<br />

entanto o MARS apresenta um conjunto significativo <strong>de</strong><br />

restrições.<br />

Praticamente todos os estudos elaborados na integração do IP<br />

<strong>sobre</strong> o ATM não tiram proveito das melhorias introduzidas<br />

pelo IPv6, nomeadamente a introdução dos cabeçalhos<br />

opcionais, e utilizam versões antigas do User Network<br />

Interface (UNI). De facto, com o <strong>de</strong>senvolvimento do UNIv4<br />

[ATM96] introduziram-se os en<strong>de</strong>reços <strong>de</strong> grupo, geridos pelo<br />

Interim Local Management Interface (ILMI), e o Leaf<br />

Initiated Join (LIJ). Enquanto os en<strong>de</strong>reços <strong>de</strong> grupo<br />

oferecerão uma maior simplificação nas tabelas <strong>de</strong><br />

mapeamento dado possibilitarem relações <strong>de</strong> um-<strong>para</strong>-um, o<br />

LIJ possibilita aos nós ATM po<strong>de</strong>rem-se eles próprios ligar a<br />

um grupo multicast.<br />

Este artigo apresenta a construção <strong>de</strong> uma <strong>plataforma</strong><br />

experimental IPv6-ATM que permite o estudo <strong>de</strong> mecanismos<br />

inovadores em IPv6 <strong>sobre</strong> ATM.<br />

2. PLATAFORMA PRÁTICA<br />

A <strong>plataforma</strong> prática <strong>de</strong>scrita neste trabalho consiste numa<br />

re<strong>de</strong> ATM ligada através <strong>de</strong> dois routers a re<strong>de</strong>s IPv6-Ethernet<br />

(Figura 1).<br />

IPv6 ATM<br />

IPv6<br />

Figura 1 – Plataforma prática<br />

A re<strong>de</strong> ATM é constituída por dois switches ATM e seis<br />

computadores pessoais (PCs) equipados com placas ATM<br />

Fore PCA-200EPC (Figura 2). Dois dos PCs funcionam como<br />

IP routers, estando <strong>para</strong> tal equipados também com placas<br />

Ethernet. Um dos PCs funciona como servidor MARS e dois<br />

outros funcionam como servidores multicast (MCS).<br />

1


IPv6<br />

Host<br />

IP Router Switch<br />

MCS / Host<br />

Figura 2 – Re<strong>de</strong> ATM<br />

IP Router<br />

Switch<br />

MARS / Host<br />

MCS / Host<br />

Cada host utiliza o Sistema Operativo FreeBSD. Na Figura 3<br />

está representada a pilha protocolar inicial <strong>de</strong> um router,<br />

nomeadamente a componente ATM e a componente Ethernet.<br />

O <strong>de</strong>vice driver <strong>para</strong> a placa ATM, no sistema operativo<br />

FreeBSD, foi <strong>de</strong>senvolvido no âmbito <strong>de</strong> um projecto do<br />

Grupo <strong>de</strong> Comunicações e Serviços Telemáticos [ARA96].<br />

Foram estabelecidos contactos com o fabricante da placa que,<br />

mediante a assinatura <strong>de</strong> um contrato, forneceu o código fonte<br />

<strong>para</strong> o sistema operativo SunOS 4.1.x. A disponibilida<strong>de</strong> do<br />

código possibilitou a sua reutilização já que muitos dos<br />

mecanismos internos dos sistemas operativos em causa são<br />

semelhantes.<br />

IPv6<br />

Aplicação<br />

IPv4<br />

ATMARP/CLIP ARP<br />

SNAP-Encap LL-Encap<br />

Driver ATM Driver Ethernet<br />

Figura 3 - Pilha protocolar inicial <strong>de</strong> um router<br />

Na camada CLIP [LAU98], a função arp_ifconnect() é usada<br />

<strong>para</strong> estabelecer ligações ATM. Se o en<strong>de</strong>reço IP <strong>de</strong>stino é do<br />

tipo unicast e ainda não foi traduzido <strong>para</strong> um en<strong>de</strong>reço ATM<br />

(não se encontra na tabela ATMARP) então o protocolo<br />

ATMARP é utilizado <strong>para</strong> traduzir o en<strong>de</strong>reço. Para tal, a<br />

função <strong>atm</strong>_arpwhohas() estabelece uma ligação ao servidor<br />

ATMARP e envia-lhe um pedido ATMARP_REQUEST. A<br />

ligação ATM é estabelecida com o <strong>de</strong>stino assim que o<br />

en<strong>de</strong>reço tenha sido traduzido.<br />

A função do_output() é então chamada <strong>para</strong> transmitir a<br />

mensagem através do VC estabelecido pela função anterior.<br />

O tratamento <strong>de</strong> mensagens to tipo ATMARP processa-se da<br />

seguinte forma. Ao receber uma mensagem <strong>de</strong>ste tipo (Figura<br />

5), o módulo SAR (Segmentation And Reassembly) da camada<br />

AAL 5 do driver ATM (função sar_reassembly()), chama o<br />

código <strong>de</strong> tratamento <strong>de</strong> mensagens ATMARP (função<br />

arpinput()) fornecendo-lhe a mensagem e o VCI on<strong>de</strong> ela foi<br />

recebida. As mensagens possíveis são [LAU98]:<br />

ARPOP_REQUEST, ARPOP_REPLY, ARPOP_NAK <strong>para</strong> o<br />

protocolo ATMARP (tratadas pela função<br />

in_<strong>atm</strong>forum_arpinput()) e InARP_REQUEST,<br />

InARP_REPLY <strong>para</strong> o protocolo InATMARP (tratadas pela<br />

função in_<strong>atm</strong>_inarpinput()).<br />

3. NOVOS MÓDULOS<br />

Nesta secção <strong>de</strong>screvem-se os novos módulos em<br />

<strong>de</strong>senvolvimento e as adaptações no ambiente <strong>de</strong><br />

implementação FreeBSD - Fore ATM necessárias à integração<br />

dos novos módulos.<br />

Aplicação<br />

RSVP<br />

IPv6<br />

Driver IPv6-ATM<br />

ATMARP /<br />

LL-Encap<br />

CLIP MARS<br />

SNAP-Encap<br />

Driver ATM Driv. Ethernet<br />

Figura 4 - Pilha protocolar final <strong>de</strong> um router<br />

Preten<strong>de</strong>ndo-se disponibilizar uma <strong>plataforma</strong> com a nova<br />

versão do IP (IPv6), a camada IPv4 na pilha protocolar inicial<br />

terá <strong>de</strong> ser substituída. O IPv6 vai interagir com uma nova<br />

subcamada IPv6-ATM. Esta subcamada oferece ao IPv6 o<br />

meio multicast connectionless utilizando os serviços MARS.<br />

Todos estes módulos permitirão, mais tar<strong>de</strong>, fornecer<br />

<strong>ambientes</strong> <strong>multicastin</strong>g à camada das aplicações.<br />

No interface Ethernet, a camada ARP <strong>de</strong>saparece, uma vez<br />

que a resolução <strong>de</strong> en<strong>de</strong>reços passa a ser feita pelo próprio<br />

IPv6.<br />

Surge assim a nova pilha protocolar (Figura 4) que constitui o<br />

objectivo <strong>de</strong>ste trabalho.<br />

Módulo SAR<br />

FORE_sar_reassembly<br />

(unit, au)<br />

ARP m<br />

m<br />

FORE_arpinput<br />

(m,vci,...)<br />

m.ARPOeration<br />

ARPOP_REQUEST<br />

_REPLY<br />

_NAK<br />

in_<strong>atm</strong>forum_arpinput<br />

(m, vci, ...);<br />

MARS m<br />

InARP_REQUEST<br />

_REPLY<br />

MARS_input<br />

(m,vci,...)<br />

Figura 5 - Tratamento <strong>de</strong> mensagens ARP e MARS<br />

in_<strong>atm</strong>_inarpinput<br />

(m, vci, ...);<br />

Presentemente está-se a <strong>de</strong>senvolver o código dos módulos<br />

MARS: módulo emissor, módulo receptor e módulo servidor<br />

MARS.<br />

Um cliente MARS situa-se entre a camada IP e a camada<br />

ATM (Figura 4) e po<strong>de</strong> existir num host ou num router.<br />

Inicialmente, o cliente MARS estabelece um VC ponto a<br />

ponto bidireccional com o servidor que posteriormente vai<br />

utilizar <strong>para</strong> enviar pedidos e receber respostas. O servidor<br />

(MARS) estabelece um VC <strong>de</strong> controlo ponto-multiponto<br />

(ClusterControlVC) ao qual vai adicionando como folhas os<br />

vários clientes que o contactam.<br />

O tratamento das mensagens utilizadas no protocolo, é<br />

efectuado da seguinte forma. Ao receber uma mensagem to<br />

tipo multicast (Figura 5), o módulo SAR do servidor da<br />

camada AAL 5 do driver ATM, chama o código <strong>de</strong> tratamento<br />

<strong>de</strong> mensagens MARS (função MARS_Input() ) fornecendo-lhe<br />

a mensagem e o VCI on<strong>de</strong> ela foi recebida.<br />

2


3.1. CLIENTE MARS<br />

O cliente divi<strong>de</strong>-se em duas subsecções: origem (a parte que<br />

<strong>de</strong>seja enviar mensagens multicast) e <strong>de</strong>stino (a parte que<br />

<strong>de</strong>seja receber mensagens multicast).<br />

S<br />

IP<br />

m.IP_dst<br />

in ARPTAB<br />

N<br />

<strong>atm</strong>_arpresolve<br />

(IP_dst,...)<br />

do_output<br />

(m,vci,...)<br />

m<br />

unicast<br />

Figura 6 – Resolução <strong>de</strong> en<strong>de</strong>reços<br />

S<br />

if_output<br />

(m,IP_dst,...)<br />

m.classe<br />

multicast<br />

m.IP_dst<br />

in ARPTAB<br />

N<br />

MARS_resolve<br />

(IP_dst,...)<br />

Quando a entida<strong>de</strong> IP local fornece uma mensagem <strong>para</strong><br />

transmissão (função if_output() ) e a mensagem é <strong>de</strong>stinada a<br />

um grupo é chamada a função MARS_resolve() (Figura 6).<br />

Esta função verifica se já existe uma ligação <strong>para</strong> o grupo<br />

multicast <strong>de</strong>stino. Esta verificação é efectuada na tabela<br />

ATMARP modificada <strong>de</strong> modo a suportar relações <strong>de</strong> 1<br />

en<strong>de</strong>reço IP multicast <strong>para</strong> vários en<strong>de</strong>reços ATM. Se não<br />

existe a ligação, envia-se ao servidor uma mensagem<br />

MARS_REQUEST com o en<strong>de</strong>reço multicast através do VC<br />

ponto a ponto preestabelecido. A resposta do MARS é uma<br />

sequência <strong>de</strong> mensagens MARS_MULTI com os en<strong>de</strong>reços<br />

ATM dos elementos do grupo. O cliente estabelece então o<br />

VC ponto–multiponto com os elementos do grupo (Figura 7,<br />

passos 1 a 3). Quando o grupo não tem membros ou é<br />

<strong>de</strong>sconhecido pelo servidor, este envia uma mensagem<br />

MARS_NAK ao cliente. Neste caso, o cliente ignora a<br />

mensagem IP <strong>de</strong>stinada ao grupo.<br />

Estabelecido o VC ponto-multiponto <strong>para</strong> o grupo, o cliente<br />

origem fica atento a futuras alterações no grupo, adicionando<br />

ou eliminando nós folha. Essas alterações são anunciadas ao<br />

cliente pelo servidor através do ClusterControlVC na forma <strong>de</strong><br />

mensagens MARS_JOIN e MARS_LEAVE (secção 3.2.) que<br />

contêm o en<strong>de</strong>reço ATM do membro que se junta ou sai do<br />

grupo e o en<strong>de</strong>reço IP multicast do(s) grupo(s) em causa.<br />

Po<strong>de</strong> acontecer que um membro do cluster perca alguma das<br />

mensagens <strong>de</strong> actualização da informação <strong>de</strong> grupo enviada<br />

pelo MARS através do ClusterControlVC. O cliente <strong>de</strong>tecta<br />

estas falhas analisando o Cluster Sequence Number (CSN) que<br />

é transportado nas mensagens MARS (campo mar$msn)<br />

difundidas através do ClusterControlVC. O CSN é<br />

incrementado pelo MARS <strong>de</strong> um a cada nova transmissão que<br />

faz através do ClusterControlVC. Quando o membro do<br />

cluster <strong>de</strong>tecta um salto no CSN (perda <strong>de</strong> uma possível<br />

actualização <strong>de</strong> informação <strong>de</strong> grupo), inicia um mecanismo<br />

<strong>de</strong> revalidação da informação dos grupos <strong>para</strong> os quais o<br />

cliente tem actualmente VCs multicast abertos.<br />

Se ocorrer um erro num VC associado com um grupo, o<br />

cliente origem inicia um processo <strong>de</strong> revalidação apenas <strong>para</strong><br />

o grupo <strong>de</strong>sse VC.<br />

Para revalidar um grupo, o cliente origem começa com o<br />

reenvio ao servidor <strong>de</strong> uma mensagem MARS_REQUEST com<br />

o grupo em causa. O conjunto <strong>de</strong> membros <strong>de</strong>volvido é<br />

com<strong>para</strong>do com o conjunto já existente localmente (na tabela<br />

ATMARP). L_MULTI_DROPs são efectuados no VC do grupo<br />

<strong>para</strong> cada nó que <strong>de</strong>ixou <strong>de</strong> pertencer ao grupo.<br />

L_MULTI_ADDs são efectuados no VC do grupo <strong>para</strong> cada nó<br />

que passou a pertencer ao grupo.<br />

Um cliente (<strong>de</strong>stino) po<strong>de</strong> querer adicionar-se (<strong>de</strong>ixar <strong>de</strong><br />

pertencer) a um grupo em resposta a um pedido local da<br />

camada IP.<br />

Para se adicionar, o cliente envia uma mensagem MARS_JOIN<br />

ao servidor MARS com o en<strong>de</strong>reço IP multicast do grupo<br />

através do VC ponto a ponto preestabelecido. Para abandonar<br />

o grupo envia uma mensagem MARS_LEAVE.<br />

Estas mensagens são propagadas pelo servidor através do<br />

ClusterControlVC <strong>para</strong> informar outros clientes (origem) da<br />

alteração da constituição do grupo.<br />

Os IP multicast routers são anunciados pelo servidor como<br />

membros <strong>de</strong> todos os grupos <strong>de</strong> modo a receberem mensagens<br />

dirigidas a todo e qualquer grupo <strong>de</strong> uma forma promíscua<br />

possibilitando o encaminhamento <strong>de</strong> uma mensagem multicast<br />

<strong>para</strong> elementos do grupo que se encontrem noutra re<strong>de</strong>.<br />

Host 4<br />

MARS<br />

Cluster<br />

Host 3<br />

Host 2<br />

IP Router<br />

6<br />

MCS<br />

IP<br />

7<br />

5 4<br />

3<br />

MARS<br />

Cluster 2<br />

MARS<br />

1 2<br />

Host 1<br />

Figura 7 - Exemplo <strong>de</strong> transmissão multicast na presença <strong>de</strong><br />

um MCS (O host 1 envia <strong>para</strong> o grupo a cinza)<br />

Cada cliente (origem ou <strong>de</strong>stino) regista-se inicialmente no<br />

servidor estabelecendo com ele um VC ponto a ponto por<br />

on<strong>de</strong> envia uma mensagem MARS_JOIN <strong>de</strong> registo (diferente<br />

<strong>de</strong> um MARS_JOIN <strong>de</strong> junção a um grupo) com o seu<br />

en<strong>de</strong>reço ATM. O servidor adiciona o cliente como nó folha<br />

do ClusterControlVC e atribui-lhe um i<strong>de</strong>ntificador <strong>de</strong> 16 bits<br />

(CMI) que o i<strong>de</strong>ntifica no cluster.<br />

O cliente espera então por uma confirmação do servidor (uma<br />

cópia da mensagem original) pelo mesmo VC. Se a resposta<br />

não chegar num intervalo <strong>de</strong> tempo pre<strong>de</strong>finido (cerca <strong>de</strong> 10<br />

segundos), a mensagem é retransmitida.<br />

Quando o cliente preten<strong>de</strong> abandonar o cluster, anula o<br />

registo, enviando uma mensagem MARS_LEAVE ao<br />

servidor. Isto leva a que o servidor elimine o cliente do<br />

ClusterControlVC e liberte o seu CMI.<br />

3.2. SERVIDOR MARS<br />

Como foi já referido, o tratamento das mensagens MARS no<br />

servidor (Figura 5) é efectuado pela função MARS_Input() que<br />

recebe, além da mensagem, o VCI on<strong>de</strong> ela foi recebida.<br />

Quando chega uma mensagem MARS_JOIN <strong>de</strong> registo, o<br />

servidor MARS adiciona o nó ao ClusterControlVC e atribuilhe<br />

um novo CMI que insere no campo mar$cmi da<br />

mensagem. Esta é então retransmitida apenas ao cliente que a<br />

enviou. Quando chega uma mensagem MARS_LEAVE <strong>de</strong><br />

anulação <strong>de</strong> registo, o servidor MARS retira o nó do<br />

ClusterControlVC e liberta o respectivo CMI. A mensagem é<br />

também retransmitida apenas ao cliente que a enviou. O<br />

3


servidor ignora mensagens MARS_JOIN ou MARS_LEAVE<br />

que não sejam <strong>de</strong> registo e que sejam provenientes <strong>de</strong> um nó<br />

que não está registado como membro do cluster.<br />

Se a mensagem MARS_JOIN não é <strong>de</strong> registo mas <strong>de</strong> junção a<br />

um grupo, a mensagem é retransmitida pelo ClusterControlVC<br />

<strong>para</strong> todos os membros do cluster. Se o nó já pertencia ao<br />

grupo, a mensagem é retransmitida apenas ao nó em causa<br />

através do VC ponto a ponto preestabelecido. O mesmo se<br />

passa com as mensagens MARS_LEAVE que não são <strong>de</strong><br />

anulação <strong>de</strong> registo.<br />

Se o servidor MARS recebe um MARS_LEAVE <strong>de</strong> anulação<br />

<strong>de</strong> registo, o en<strong>de</strong>reço ATM <strong>de</strong>sse membro é removido <strong>de</strong><br />

todos os grupos, eliminado do ClusterControlVC, e o seu CMI<br />

libertado. O mesmo acontece quando o MARS recebe um<br />

ERR_L_RELEASE indicando que o membro do cluster foi<br />

<strong>de</strong>sligado.<br />

Todas as mensagens MARS_JOIN ou MARS_LEAVE enviadas<br />

pelo servidor MARS através do ClusterControlVC levam o<br />

campo mar$msn com o valor corrente do CSN permitindo aos<br />

clientes a <strong>de</strong>tecção da perda <strong>de</strong> alguma <strong>de</strong>stas mensagens.<br />

Se existe algum MCS (Figura 7 - passos 3 a 6) registado no<br />

MARS, o servidor MARS modifica a sua distribuição <strong>de</strong><br />

actualizações join/leave aos membros do cluster. O MARS<br />

utiliza duas novas mensagens - MARS_SJOIN e<br />

MARS_SLEAVE - <strong>para</strong> comunicação <strong>de</strong> alterações <strong>de</strong> grupo<br />

aos MCSs através do ServerControlVC ( um VC <strong>de</strong> controlo<br />

ponto-multiponto mantido pelo MARS <strong>para</strong> todos os MCSs<br />

nele registados).<br />

4. CONCLUSÃO E TRABALHO FUTURO<br />

Neste trabalho é <strong>de</strong>scrita a criação <strong>de</strong> um ambiente<br />

experimental <strong>para</strong> o estudo do IPv6 <strong>sobre</strong> ATM.<br />

Estão a ser <strong>de</strong>senvolvidos os módulos MARS, e a subcamada<br />

IPv6-ATM, fornecendo à <strong>plataforma</strong> suporte <strong>para</strong> multicast.<br />

O MCS (servidor multicast) não está ainda implementado.<br />

Será esse o próximo passo no <strong>de</strong>senvolvimento da <strong>plataforma</strong>.<br />

Assim, a implementação baseia-se numa estrutura do tipo<br />

"VC-mesh". A implementação do MCS só obriga à alteração<br />

da parte servidor do MARS, sendo transparente <strong>para</strong> o Cliente<br />

MARS.<br />

Em [ARM96] está prevista a existência <strong>de</strong> servidores MARS<br />

<strong>de</strong> backup. No entanto a sua especificação é vaga, ficando<br />

como um ponto em aberto.<br />

Depois do ambiente experimental estar concluído espera-se<br />

estudar extensões aos <strong>ambientes</strong> MARS e tirar proveito <strong>de</strong><br />

algumas funcionalida<strong>de</strong>s introduzidas no IPv6. A <strong>plataforma</strong><br />

<strong>piloto</strong> apresentada neste artigo constitui um sistema <strong>para</strong> o<br />

estudo <strong>de</strong> duas recentes tecnologias <strong>de</strong> elevado potencial.<br />

Paralelamente, no projecto MEDIA, estão a ser <strong>de</strong>senvolvidos<br />

estudos que tiram partido <strong>de</strong> um cabeçalho opcional do IPv6 e<br />

possibilitam as relações <strong>de</strong> um <strong>para</strong> um entre o en<strong>de</strong>reço IP<br />

multicast e o en<strong>de</strong>reço ATM multicast introduzido pelo<br />

UNIv4 e suportado pelo ILMI.<br />

5. REFERÊNCIAS<br />

[ARA96] Araújo, F., “QoS – Qualida<strong>de</strong> <strong>de</strong> Serviço em<br />

Re<strong>de</strong>s <strong>de</strong> Alto Débito – Parte A”, Relatório da Ca<strong>de</strong>ira<br />

<strong>de</strong> Projecto e Dissertação, DEI, Universida<strong>de</strong> <strong>de</strong> Coimbra,<br />

Novembro <strong>de</strong> 1996<br />

[ARM96] Armitage, G., “Support for Multicast over UNI<br />

3.0/3.1 based ATM networks”, RFC 2022, November<br />

1996<br />

[ATK95A] Atkinson, R., "IP Authentication Hea<strong>de</strong>r", RFC<br />

1826, August 1995<br />

[ATK95E] Atkinson, R., "IPng Encapsulation Security<br />

Payload", RFC 1827, August 1995<br />

[ATM96] ATM Forum, "ATM User-Network Interface (UNI)<br />

Specification version 4.0", ATM Forum Specification afsig-0061.000,<br />

Jully 1996<br />

[CON95] Conta, A. And Deering, S., "Internet Control<br />

Message Protocol (ICMPv6) for the Internet Protocol<br />

version 6 (IPv6) Specification", RFC 1885, Digital<br />

Equipment Corporation, December 1995<br />

[DEE94] Deering, S., "SIMPLE Internet Protocol Plus (SIPP)<br />

Specification (128 address version)", Internet Draft, July<br />

1994<br />

[DEE95] S. Deering, S. And Hin<strong>de</strong>n., "Internet Protocol,<br />

Version 6 (IPv6) Specification.", RFC 1883, December<br />

1995<br />

[HIE95] Hin<strong>de</strong>n, Robert M., "IP Version 6 Addressing<br />

Architecture", RFC 1884, December 1995<br />

[LAU98] Laubach, M. and Halpern J., "Classical IP and ARP<br />

over ATM", RFC 2225, Com21, Inc., Newbridge<br />

Networks, Inc., April 1998<br />

4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!