390 likes | 468 Views
RDP No Ambiente MobiCS. Rachel de Paula rpaula@ime.usp.br. Objetivo. Apresentar o protocolo RDP Mostrar uma versão melhorada do protocolo Apresentar o simulador de protocolos MobiCS. Introdução. Numero de dispositivos móveis está aumentando.
E N D
RDP No Ambiente MobiCS • Rachel de Paula • rpaula@ime.usp.br
Objetivo • Apresentar o protocolo RDP • Mostrar uma versão melhorada do protocolo • Apresentar o simulador de protocolos MobiCS
Introdução • Numero de dispositivos móveis está aumentando. • Os protocolos de comunicação têm que prover suporte à mobilidade. • Esta é uma área muito ativa e em vários pontos ainda não existe um consenso sobre a melhorabordagem a ser escolhida.
Nomenclatura • Mh (Mobile Host): Unidade Móvel, comunicação sem fio. • Mss (Mobile Support Stations): Estação Base, ligada a rede fixa. • Proxy: representa o Mh. Tem como função receber mensagens do servidor ereenviá-las para o Mh. • Célula: Uma célula é uma área geográfica atendida por por uma estação base. • Handoff: Quando uma unidade móvel atravessa a região de fronteira entre estações base adjacentes.
RDP • M. Endler e D.M. da Silva. RDP: A Result Delivery Protocol for Mobile Computing. • O RDP é um protocolo que define regras para a entrega confiável de mensagens de servidores a clientes móveis.
RDP • Garantia de resposta. • O cliente móvel instancia proxies em várias estações base, cada uma correspondendo a uma das requisições pendentes.
RDP - Funcionamento • Para cada requisição é criado um proxy no Mss responsável pelo Mh no momento exato em que a requisição é enviada. • O proxy faz o recebimento, armazenamento e reenvio de respostas dos servidores para alocalização atual do Mh.
RDP - Funcionamento • Cada proxy guarda uma referência (currentLoc) para o Mss responsável do Mh depois do último hand-off. • Para cada Mh, guarda-se uma lista de proxys (pList).
RDP - Funcionamento • O proxy recebe a resposta do servidor e a reenvia para Mss atual do Mh (currentLoc). • Depois de recebida a confirmação de recebimento pelo Mh, o proxy providencia para que os registros de pendência dessa resposta sejam apagados.
RDP - Handoff • Mh migra da célula do Mss_o para a célula do Mss_n. • Mss_n envia mensagem do tipo dereg para Mss_o. • Mss_o envia pList, com a lista de todos os proxys do Mh. • Mss_o remove o Mh de sua lista de Mhs locais.
RDP - Handoff • Mss_n coloca Mh em sua lista de Mhs locais. • Mss_n envia o seu endereço, através de umamensagem updateCurrLoc, para cada proxy do Mh. • Cada proxy corrige a posição do Mh (currentLoc).
RDP - Conclusão • Mensagens para clientes móveisnão mais locais ou indisponíveis para comunicação sãoperdidas. • Tamanho da lista de proxies pode aumentar indiscriminadamente.
RDP - Conclusão • A maior vantagem deste protocolo é que apesar de a cada momento somente um Mss ser responsávelem retransmitir o resultado de uma requisição para um dado Mh, o protocolo provê balanceamentode carga global dinâmico entre o conjunto de Mss.
Nova Versão RDP • M. Endler, D.M. da Silva, K. Okuda. A Reliable Connectionless Protocol for Mobile Clients. • Nova versão do protocolo RDP, na qual um cliente móvel cria e mantém no máximo um proxy a cada cada instante.
Nova Versão - Funcionamento • Um proxy é criado para cada Mh que deseja fazer requisições para o servidor. Ele é criadono Mss responsável pelo Mh nomomento em que ele inicioua série de requisições. • O proxy existirá até que sejam recebidas as confirmações (Acks) para todas as requisições.
Nova Versão - Funcionamento • O mesmo Mh poderá causar a criaçãode um novo proxy no mesmo ou em outro Mss. • O proxy armazena o endereço do Mss responsável pelo Mh após o último hand-off (currentLoc). Ele também possui uma lista que contém todas as requisições pendentes do Mh (requestList) .
Nova Versão - Funcionamento • Para atualizar sua localização no proxy a cada migração, cada Mh possui umareferência para o proxy (pRef). • O Mh também armazena uma flag que indica quando um proxy já reenviouo resultado do sua última requisição pendente e pode ser deletado.
Nova Versão - Funcionamento • Mss recebe uma nova requisição de um Mh. • Se o Mh já possui um proxy ele reenvia a requisição. • Senão um novo proxy é criado localmente. • Quando um Mh migra de um Mss_o para um Mss_n. O Mss_n envia para o proxy a mensagem updateCurrentLoc. • Está mensagem tambémé enviada quando um Mss recebe uma mesagem de greet de um Mh, idicando que o Mh mudoudo estado inativo para ativo.
Nova Versão - Funcionamento • Quando esta mensagem chega ao proxy, a variável currentLocé atualizada e todas as requisições que ainda não receberam um Ack são reenviadas para a novalocalização. • Assim que o resultado de uma requisição chega no proxy, ele reenvia a mensagem para o Mss indicado na variável currentLoc.
Nova Versão - Funcionamento • O Mh envia um Ack desta mensagem. • O proxy marca a mensagem como concluída e a remove da lista requestList. • Se o Mss não conseguir localizar o Mh ele não reenvia a mensagem, o proxyirá fazer-lo assim que receber a nova localização do Mh.
Nova Versão - Funcionamento • Enquanto o proxy não receber um Ack confirmando que o resultado da mensagem foi recebido pelo Mh, ele irá reenviar o resultado toda vez qua a variável currentLoc for atualizada. • Isto garante que todo resultado de uma requisição será eventualmente recebido pelo Mh. Porém,este resultado poderá ser recebido pelo Mh mais de uma vez.
Nova Versão - Handoff • Mh migra da célula do Mss_o para a célula do Mss_n, • Mss_n envia uma mensagem dereg. • Mss_o envia uma mensagem deregAck para o Mss_n que contém a localização do proxy do Mh e o remove da sua lista de Mhs locais.
Nova Versão - Handoff • Ao receber a referência para o proxy do Mh, oMss_n coloca o Mh na sualista de Mhs locais, e envia seu endereço para o proxy. • Se um Mh se torna inativo logo apósreceber o resultado da mensagem (mas não envia um Ack), ele irá receber esta mensagem novamente quando se tornar ativo.
Nova Versão - Conclusão • O envio redundante de mensagens não é um problema grave, desde que o Mh seja capaz de identificar mensagens duplicadas. • Uma das vantagens deste protocolo é que, com exceção da referência para o proxy, nenhuma outrainformação precisa ser armazenada no Mss.O Mss pode descartar os resultados dasrequisições após tentar enviá-las para o Mh.
Nova Versão - Conclusão • A sobrecarga deste protocolo é limitada por duas mensagens extras: • O updateCurrLoc toda vez que um Mh migra ou se torna ativo. • Um Ack Extra enviado do Mss para o proxy toda vez que o Mh envia o Ack de uma mensagem.
Simuladores De Protocolos • Os sistemas para computação móvel devem levar em consideração vários aspectoscomo: • alta taxa de erros nacomunicação sem fio. • Mobilidade das estações. • Energia dos dispositivos. • Devido a esta complexidade, simuladores têm sidoutilizados com o objetivo de facilitar a prototipagem, testes e avaliação dosprotocolos.
Simulador MobiCS • Simulador de protocolos desenvolvido como trabalho de dissertação de mestrado de Ricardo Couto Antunes da Rocha. • "Uma arquitetura para simulação flexível de protocolos para Computação Móvel".Dissertação apresentada ao Instituto de Matemática e Estatísticada Universidade de São Paulo para obtenção do grau de mestre em Ciência daComputação.
Simulador MobiCS • Mobics (Mobile Computing Simulator), é um simulador de protocolos distribuídos para computação móvel, que integraem uma única ferramenta a prototipagem, teste, validação e avaliação de protocolos distribuídos. • O simulador facilitaa programação de protótipos de protocolos, tendo como base um modelo de programação modular e orientado a eventos,baseado no conceito de micro-protocolos.
Simulador MobiCS • O MobiCS possui dois modos de simulação. • O modo determinístico, nele o cenário de simulação é descrito detalhadamente pelo usuário através de um script. • O modo estocástico, nele os protocolos são testadosatravés de simulações exaustivas e randômicas.
MobiCS – Modo Determinístico • Uma simulação determinística deve estender a classe DetermSimulation, o script determinísticoque será seguido durante a simulação é implementado no método script, que deve ser especializadopelo usuário. • Para configurar a simulação são oferidas várias interfaces ao usuário, com elas o usuário podedeterminar os tipos de mensagens que serão exibidas, criar pontos de sincronização e controlaras máquinas simuladas.
MobiCS – Modo Determinístico • Exemplo: • O script deve descrever situações críticas nas quais o protocolo precisa ser testado. Mh1.moveTo(cell1);Mh1.send(Req);Mss3.send(server, new Ack(req));Mh2.unavailable();
MobiCS – Modo Estocástico • A simulação estocástica consiste em executar o protocolo de maneira exaustiva e randômica,possibilitando a avaliação do desempenho do protocolo em um cenário realístico e aleatório. • É impossível criar todos os possíveis cenários determinísticos, portanto a simulação estocásticacomplementa a avaliação da corretude do protocolo.
MobiCS - Simulação • A principal diferença entre o modo de simulação determinístico e estocástico é o modo comoo usuário implementa a simulação. • Na simulação determinística o usuário deve especificar oselementos de simulação e cada ação que será efetuada durante a execução do protocolo. • Na simulação estocástica o usuário apenas define os elementos de simulação, que são asmáquinas fixas, estações base, estações móveis, etc.
MobiCS - Simulação • Sequência de passos p/ implementar e simular • Declarar as interfaces e programar o protocolo • Escolher o modo de simulação (determ./ estocástico) • Programar um modelo de simulação adequado ao protocolo (script deterministico ou classes simulação) • Estender a classe DetermSimulation (ou StochSimulation) definindo o ambiente de rede (elementos simulados & topologia, outros conceitos) • Implementar um programa Java que cria e inicia um objeto Simulação e chamar o método Simulation.start
MobiCS - Simulação • Etapas de implementação de um protocolo. • Definir todas as mensagens trocadas entre elementos e seus respectivos micro-protocolos. • Declarar cada uma das mensagens na forma de uma subclasse de Message. • Declarar as interfaces dos micro-protocolos. • Declarar uma subclasse de Protocol que implementa todas as interfaces dos micro-protocolos. • Implementar os métodos.
Referências • Dissertação de mestrado de Ricardo Couto Antunes da Rocha, "Uma arquitetura para simulação flexível de protocolos para Computação Móvel". • Site com a versão atualizada do simulador MOBICS: http://www-di.inf.puc-rio.br/~endler/MobiCS/ • M. Endler, D.M. da Silva, K. Okuda. A Reliable Connectionless Protocol for Mobile Clients. Relatório Técnico RT-MAC-9911, IME-USP, September 1999. • M. Endler, D.M. da Silva, K. Okuda. RDP: A Result Delivery Protocol for Mobile Computing, Proc. of the Int. WNMC at the 20th Int. Conference on DistributedComputing Systems (ICDCS), IEEE, Taiwan, R.O.C., April 2000.