A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Fiabilidade de Sistemas Informáticos Trabalho elaborado por: Nelson de Sousa, n.º 20825 Reliable Message Delivery.

Apresentações semelhantes


Apresentação em tema: "Fiabilidade de Sistemas Informáticos Trabalho elaborado por: Nelson de Sousa, n.º 20825 Reliable Message Delivery."— Transcrição da apresentação:

1 Fiabilidade de Sistemas Informáticos Trabalho elaborado por: Nelson de Sousa, n.º Reliable Message Delivery

2 Objectivos : Numa rede de computadores conectados, para todos os pares de nós i e j, existe um caminho entre eles no grafo. Uma sequência de mensagem m 1... m n enviada do emissor ao receptor deve chegar : Não corrompida (i.e modificada ou alterada) Com a mesma ordem de origem Introdução

3 Problematica : Como satisfazer essas duas propriedades quando há falhas na rede, sabendo que perdas de mensagens e erros de comunicação são factos em meios de comunicação reais? Essas falhas podem ter varias origens (software,hardware,fisicas...) podem ser pontuais, temporárias o definitivas, e o que resulte na desaparição de nós do grafo da rede Limitações : Consideramos que quando há uma falha, o grafo da rede fica único, i.e, não há partição na rede (o grafo é conexo) Existe sempre um caminho entre dois nós O emissor e o receptor ficam sempre activos Introdução

4 Detecção de erros : Detectado pelo receptor Codificação da informação de maneira que qualquer alteração da mensagem pode ser verificada Métodos como bits de paridade e CRC são muito usados Se a mensagem foi corrompida, é rejeitada. Supõe-se que os erros são detectados por mecanismos de detecção e falhas permanentes de um nó são detectadas por outros nós. Soluções

5 Ordem e Entrega Garantida : Um protocolo de comunicação oferece dois diferentes tipos de comunicação entre dois nós: connection-oriented (TCP) : Estabelece primeiramente uma conexão Depois transfere a informação usando essa a conexão connection-less (UDP) : Cada mensagem contem o endereço de destino e é roteada independentemente das outras É possível que alguma mensagem se perca, ou chegue fora de ordem no destino Para suportar as propriedades desejadas, um serviço orientado à conexão é necessário Soluções

6 Protocolos de entrega : Muitos protocolos permitem a entrega de mensagem fiável Uma família de protocolos conhecida é o RDT (Reliable Data Transfert) de 1.0 a 3.0 Outra família de protocolos é o de Sliding Windows Go-Back-N e o Selective Repeat Soluções

7 Rdt 1.0 : Implemente a transferência fiável sobre um canal fiável Considera-se que não há erros e perda de pacotes O remetente envia os dados no canal fiável Exige-se a criação do pacote e o envia no canal não fiável O destinatário recebe na saída desse canal e recupera os dados O destinatário não envia informações ao remetente. rdt_send() : os dados são transmitidos ã camada superior do receptor. udt_send() : chamado por o protocolo rdt para a transferência dos pacotes sobre o canal não fiável rdt_rcv() : chamado a chegada dos pacotes sobre o canal do lado do receptor deliver_data() : chamado por o protocolo rdt para emitir os dados a camada superior Protocolos de entrega

8 Rdt 2.0 : Protocolo com um canal com erros mas sem perdas O destinatario que recebeu correctamente um pacote envia um ACK (acknowledge), ou em caso contrario um NAK (negative ACK). O remetente implementa o protocolo stop and wait, o seja, fica a espera da recepção de um pacote ACK do destinatário antes de enviar os outros Mas se o receptor recebe um NAK, ele ré-envia o pacote que foi alterado Vantagem : assegura uma transferência num canal com erros mas sem perdas Defeito : se os ACK/NAK são alterados, o remetente pode retransmitir pacote já enviados, então, como é que o emissor e o receptor gerar esses casos Protocolos de entrega

9 Rdt 2.1 : Protocolo com ACK e NAK alternados Gera a duplicação dos pacotes O emissor adiciona um numero de sequência nos pacotes O receptor recebe um pacote que tem o mesmo numero que o precedente é que esse pacote é duplicado, então ele rejeita-o, senão envia um ACK O receptor recebe um pacote corrompido ou um NAK, ele re-envia o ultimo pacote Rdt 2.2 : Protocolo sem NAK Mesmas funcionalidades que o rdt 2.1 mas só usa o ACK Em vezes do NAK, o receptor envia o ACK do ultimo pacote bem recebido O receptor inclua o numero de sequência do ultimo pacote bem recebido O emissor recebe um ACK duplicado significa que o ultimo pacote não foi bem recebido, e então a sua retransmissão é efectuada. Protocolos de entrega

10 Rdt 3.0 : Protocolo com canal com erros e perdas O mais proximo da realidade As soluções descritas precedentemente não são suficiente para gerar todos os casos O emissor deve esperar um tempo razoável a chegada do ACK O timeout deve no mínimo corresponder o tempo de ida e volta de um pacote entre os dois nó de uma rede Se o timeout acabou-se e que não foi recebido o ACK, o pacote é retransmitido Se o pacote chega, mas depois do timeout, a duplicação de dados pode ser resolvida com o uso de numero de sequência Problema do rdt 3.0 é escolher um timeout correcto : não acaba sempre antes da recepção não fica a espera muito tempo senão o desempenho protocolo é medíocre Protocolos de entrega

11 RDT 3.0 em acção

12

13 Características : Melhoramento do rdt 3.0 Satisfaz as duas propriedades e executa o controle de fluxo sending-windows : o remetente possui uma lista de números sequenciais que correspondem às mensagens que ele é autorizado a enviar e contem as mensagens enviadas mas ainda não confirmadas, as quais uma retransmissão pode ser necessária. Uma nova mensagem transmitida recebe o próximo maior número sequencial, e a parte superior da janela avança Quando alguma ACK chega, a parte inferior da janela avança Se o timeout acaba supõe-se que a mensagem foi perdida, e esta é retransmitida. receiving-windows : o receptor mantém uma lista de números sequenciais das mensagens que ele está autorizado a receber Uma mensagem recebida com número sequencial diferente é rejeitada Uma mensagem com um número sequencial igual ao menor número da janela é recebido, então a parte inferior da janela avança, e um ACK desta mensagem é enviada ao emissor Sliding-Windows

14 « Go-Back-N » : O janela tem um tamanho máximo de N pacotes ainda não ACKados O receptor pode enviar uma confirmação por vários pacotes ACK(M) : confirma a recepção dos pacotes com um número de sequência inferior o igual a M O emissor usa um timeout por os pacotes não ACKados Timeout(M) : permite a retransmissão de todos os pacotes que são superior a M e na sending-windows Problemas : O receptor pode enviar ACK varias vez por um mesmo pacote O receptor não tem buffer, e sabe unicamente o numero do pacote a seguir, então se ele recebe um pacote com um numero maior que o que ele pretende ele envia um ACK. Sliding-Windows

15 « Selective Repeat » : O emissor ré-envia unicamente os pacotes por quais ele não recebeu confirmação dentro do timeout Se o emissor recebe o ACK por o mais pequeno pacote ainda não confirmado então a base da janela muda para o próximo pacote com um numero de sequência ainda não ACKado O receptor confirma individualmente os pacotes correctamente recebidos, e se foram recebidos na ordem, mete os pacotes num buffer para mais tarde ser transmitidos a camada aplicativa. Sliding-Windows

16 Selective Repeat em acção

17 Características : Decide qual é o caminho percorrido por uma mensagem para atingir seu destino com a maior eficácia Um algoritmo de roteamento é usado numa rede para rotear mensagens do nó « i » para o nó « j » através do nó « k » Se o nó « k » falha o algoritmo rotea as mensagens através de outro caminho Para tratar falhas é necessário rotear de acordo com as mudanças na topologia da rede Dois tipos de algoritmo : conhecimento global da rede (Djikstra) informação distribuída (Distance Vector) Routing Algorithms

18 Principios : A topologia completa da rede e os custos de todos as ligações entre os nós são conhecidos. O principio de este algoritmo é de calcular os caminhos mais curtos desde de uma fonte até todos os outros nos. Parâmetros : c(x, y) : custo do ligação do nó x o no y, + se não é vizinho direito D(v) : valor corrente do caminho do fonte ao destino v p(v) : nó precedente de v no caminho da fonte a v N : conjunto de nó por os quais o caminho mais surto é definitivamente conhecido Iniciação : Algoritmo : : não pertence a Repetir N = {u} Procurar w ε N' tal que D(w) seja minimal Para todos os nos v Acrescentar w ao N' Se v é vizinho de u Actualizar D(v) para todos vizinho v de w e N então D(v) = c(u, v) D(v) = min(D(v),D(w) + c(w, v)) Senão D(v) = até que todos os nós sejam em N' /* O novo custo por v é o antigo custo de v ou o custo do caminho mais curto para w mais o custo de w a v */ Algoritmo de Dijkstra

19 Algoritmo de Djikstra em acção :

20 Principios : Ao principio, um nó só conhece o seus vizinhos direitos e o custo para eles. As informações são trocadas graças a comunicação entre os nós do seus conhecimentos Ao final o nó tem o conhecimento global da topologia da rede e do melhor caminho para todos o outros nós A vantagem principal é que quando um no falha os vizinhos estão avisados e podem procurar outro caminho para o destinatário Parâmetros : Dx(y) : estimação do custo menor de x a y Vector de distancia : Dx = [Dx (y) : y Є N] O nó x conhece o custo para cada um dos seus vizinhos v : c(x, v) O nó x mantém Dx = [Dx (y) : y Є N] O nó x mantém também os vectores de distancias dos seus vizinhos Para cada vizinho v, x mantém Dv = [Dv (y) : y Є N] Distance Vector

21 Explicações Algoritmo : Cada nó envia periodicamente a sua própria estimação do vector de distancia ao seus vizinhos Quando um nó detecta uma mudança nó custo local, actualiza as informação e calcula novamente o vector de distancia Quando um nó x recebe um novo vector de um vizinho, ele actualiza o seu próprio vector usando a equação de Bellman-Ford : Dx(y) : minv{c(x, v) + Dv (y)}, V y Є N e se necessário avisa os seus outros vizinhos Problema : As boas novidades repercutem-se depressa mas as más demoram muito tempo Distance Vector

22

23 Conclusões : A entrega fiável e segura de mensagens é assegurada por vários protocolos e algoritmos Protocolos de roteamento garante a entrega (rede) Protocolos de janela deslizante garante a ordem correta (transporte) Para mais eficácia tem de se combinar soluções das vários camadas da topologia de redes. Bibliografia : www2.rad.com/networks/2004/sliding-windows Reliable Data Delivery

24


Carregar ppt "Fiabilidade de Sistemas Informáticos Trabalho elaborado por: Nelson de Sousa, n.º 20825 Reliable Message Delivery."

Apresentações semelhantes


Anúncios Google