650 likes | 789 Views
Departamento de Ciência da Computação Instituto de Computação Universidade Federal Fluminense. Computação Móvel 2012/1. XORs in the Air: Practical Wireless Network Coding. Saching Katti , Hariharan Rahul , Wenjun Hu, Dina Katabi , Muriel Médard , Jon Crowcroft
E N D
Departamento de Ciência da Computação Instituto de Computação Universidade Federal Fluminense Computação Móvel 2012/1 XORs in the Air: Practical Wireless Network Coding SachingKatti, HariharanRahul, Wenjun Hu, Dina Katabi, Muriel Médard, Jon Crowcroft Em IEEE/ACM Transactions on Networking, VOL. 16, NO. 3, Junho 2008 Apresentador: Igor C. G. Ribeiro
Introdução • O artigo introduz o COPE; • Nova arquitetura de encaminhamento de pacotes; • Utiliza codificação de redes; • Aumenta o throughput em redes em malha sem fio estacionárias.
Motivação Como enviar mais informações utilizando menos transmissões?
Motivação Seria interessante combinarmos mais pacotes para reduzir ainda mais o número de transmissões. Pode-se aproveitar a transmissão extra para enviar mais dados. Redução de 4 transmissões para 3.
Ideia Resultado: Cada nó conhece um número maior de pacotes, favorecendo assim a codificação. Pacotes capturados são armazenados por um determinado intervalo de tempo. Nós em modo promíscuo podem capturar otráfego dentro de sua área de cobertura.
COPE – Visão Geral Aplicação Aplicação Transporte Transporte Rede Rede Codificação Enlace Enlace Física Física
COPE – Visão Geral • Audição Oportunista • Escuta o tráfego nos nós sem fio; • Guarda os pacotes monitorados por um intervalo de tempo T; • Cada nó envia em broadcast mensagens de recepção.
COPE – Visão Geral Codificação Oportunista Como combinar os pacotes de modo a obter O maior ganho possível?
COPE – Visão Geral Codificação Oportunista Regra:
COPE – Visão Geral • Aprendendo o estado dos vizinhos • Através das mensagens de recepção; • Através da tentativa de adivinhação
Entemdendo os Ganhos do COPE • O quão benéfico é o COPE? • Seu ganho de throughput depende das oportunidades de codificação, que por sua depende dos padrões de tráfego.
Ganho com a codificação Definição Razão entre o número de transmissões requeridas pela abordagem sem codificação e o número mínimo de transmissões requeridas pela abordagem com codificação Exemplo: Alice e Bob Sem codificação: 4 transmissões Com codificação: 3 transmissões Ganho com a codificação:
Ganho com a codificação • Qual é a capacidade teórica de uma rede wireless que implementa o COPE? • A capacidade de network coding genérico para tráfego unicast é ainda um problema em aberto. • Entretanto é possível analisar algumas topologias básicas que revelam alguns fatores que afetam o COPE.
Ganho com a codificação • Premissas: • Nós identicos; • Rádios omni-direcionais; • Sinal perfeitamente audível dentro de um raio; • O sinal não é ouvido de forma alguma fora do raio; • Se dois nós podem ouvir um ao outro, o algoritmo de roteamento escolherá o link direto.
Ganho com a codificação Na ausência de audição oportunista o ganho Máximo devido a codificação tende a 2 conforme o Número de nós intermediários aumenta.
Ganho com a codificação Na ausência de audição oportunista não é possível obter nenhum ganho pela codificação. Porém, com a audição oportunista o ganho é igual a 1,33.
Ganho com a codificação n5 n1 n2 n3 n4 n1,n3 podem escutar n4,n5 e vice-versa. Transmissões sem codificação: 8 Transmissões com codificação: 5 • Ganho com a codificação: :
Ganho com a codificação + MAC O MAC tenta ser justo e divide igualmente a largura de banda entre todos os nós. Para topologias com um único gargalo, o ganho de codificação + MAC é calculado como a razão entre a taxa de drenagem com COPE e a taxa de drenagem sem o COPE. Assume-se que todos os nós tem continuamente tráfego para enviar, mas está limitado pela largura de banda alocada pela camada MAC. O nó intermediário tem que enviar o dobro de transmissões que os nós da ponta. O nó intermediário se torna o gargalo Com o uso do COPE, o nó intermediária faz o XOR entre pares de pacotes, permitindo que tais pacotes sejam drenados duas vezes mais rápido. Dessa maneira, o ganho pela junção entre Codificação e MAC para o exemplo de Alice e Bob é 2. Metade dos pacotes na fila do nó Intermediário são descartados.
Implementação – Algoritmo deCodificação • Não atrasar o envio de pacotes; • Dar preferência a fazer XOR com pacotes de mesmo tamanho • XOR com pacotes de tamanhos diferentes reduz a economia de largura de banda; • Separa os pacotes nas categorias grande e pequeno; • No XOR de pacotes de tamanhos diferentes, o menor sofre padding com 0s.
Implementação – Algoritmo deCodificação • Não fazer XOR de pacotes destinados ao mesmo próximo salto; • Não fazer XOR de pacotes gerados no próprio nó que está codificando; • Nos dois casos anteriores o próximo salto não seria capaz de decodificar os pacotes; • COPE mantêm duas filas virtuais por vizinho, uma para pacotes grandes e outra para pequenos;
Implementação – Algoritmo deCodificação • Nó codifica n pacotes • é a probabilidade do próximo salto ter o pacote i • A probabilidade do próximo salto conseguir decodificar o pacote é: = xx...x
Implementação – Algoritmo deCodificação • Resumo: • Cada nó tem uma fila FIFO – Fila de Saída; • Cada nó tem duas filas virtuais por vizinho, uma para pacotes pequenos (< 100 bytes) e uma para pacotes grandes; • As filas para um vizinho A contêm ponteiros para pacotes na file da saída cujo próximo salto é A
Implementação – Algoritmo deCodificação • Resumo: • Cada nó mantém um Hashtable, indexado pelo ID do pacote, que contém o packetinfo. Essa informação fornece a probabilidade de cada vizinho ter esse pacote.
Implementação – Algoritmo deCodificação Estrutura dos Nós Fila de Saída Pacotes Grandes Pacotes Pequenos . . . HashTable
Implementação – Algoritmo deDecodificação • Cada nó mantém um hashtable, indexado pelo ID do pacote, onde os pacotes enviados, recebidos e monitorados pelo nó são guardados; • De tempos em tempos esse hashtable é limpo; • Quando um pacote tem que ser decodificado, o nó verifica os IDs dos pacotes que compõem o pacote codificado e recupera os mesmos do hashtable.
Implementação – Pseudo-Broadcast • Problema: usar 802.11 em modo broadcast ou unicast? • Broadcast não fornece confiabilidade; • Broadcast não permite backoff, reduzindo o throughput em virtude do excesso de colisões.
Implementação – Pseudo-Broadcast • Solução: Pseudo-broadcasts • Pacotes codificados são enviados em modo unicast; • O endereço MAC de destino é setado para um dos destinatários; • Após o cabeçalho de camada 2, é inserido o cabeçalho XOR que contém todos os destinatários daquele pacote;
Implementação – Pseudo-Broadcast • Solução: Pseudo-broadcasts • Todos os Nós operam em modo promíscuo e podem receber o pacote enviado; • Se o endereço MAC do pacote recebido não bate com o do nó que o recebeu, esse checa o cabeçalho XOR; • Se o nó for um dos destinatários, o pacote é processado. Caso contrário o pacote é armazenado.
Implementação – Pseudo-Broadcast • Solução: Pseudo-broadcasts • Assim, o pacote é entregue a todos os destinatários utilizando o modo unicast. Problema de confiabilidade e backoff resolvidos? Não!
Implementação – Pseudo-Broadcast • Somente a camada MAC do real destinatário do pacote enviará ACK; • Os pacotes enviados para os outros destinatários também podem ser perdidos. • Um determinado nó que recebe um pacote codificado pode não ter informações suficientes para decodificar o mesmo e assim esse pacote é perdido. O COPE precisa então prover por conta própria um sistema de ACKs e Retransmissões!
Implementação – ACKs Assíncronos e Retransmissões • Pacotes nativos utilizam o esquema de ACKs e retransmissões do 802.11; • Utilizar o mesmo esquema para pacotes codificados acarreta em um overhead excessivo; • A solução proposta pelo COPE é utilizar ACKs assíncronos.
Implementação – ACKs Assíncronos e Retransmissões • A utilização de ACKs assíncronos pode acarretar em reordenação dos pacotes; • A reordenação é para o TCP um sinal de congestionamento; • Dessa maneira, se muitos pacotes forem reordenados o TCP irá reduzir a taxa, reduzindo assim o throughput. Solução Ordenar os pacotes antes de envia-los Para a camada de transporte!
Implementação – Prevenção de Reordenação de Pacotes TCP • Cada nó mantém um agente que intercepta os pacotes antes de serem enviados para a camada de transporte; • Caso o pacote pertença a um fluxo TCP e o IP de destino seja o IP do nó em questão: • O agente verifica se o pacote recebido não causará uma lacuna na sequência de pacotes. • Caso contrário o pacote é encaminhado normalmente.
Resultados Experimentais – Topologias Simples Objetivo Comparar os ganhos reais com os ganhos teóricos já analisados.
Resultados Experimentais – Topologias Simples • Fluxos TCP: executado em três topologias diferentes (Alice e Bob, “X” e a topologia em curz) • O ganho de throughput foi medido através de 40 execuções diferentes do experimento;
Resultados Experimentais – Topologias Simples Alice e Bob
Resultados Experimentais – Topologias Simples Conclusão dos Experimentos com TCP Quando o tráfego realiza controle de Congestionamento, o ganho de throughput Obtido corresponde ao ganho por codificação e Não ao ganho por MAC + codificação
Resultados Experimentais – Topologias Simples • O mesmo experimento foi realizado nas mesmas topologias, mas agora utilizando fluxos UDP
Resultados Experimentais – Topologias Simples Alice e Bob
Resultados Experimentais – Rede AD HOC Real Objetivo Verificar como o COPE se comporta em uma rede ad hoc real.
Resultados Experimentais – Rede AD HOC Real • Fluxos TCP • Os fluxos chegam de acordo com a distribuição de Poisson; • A origem e o destino dos pacotes são escolhidos aleatoriamente dentre os 20 nós possíveis;
Resultados Experimentais – Rede AD HOC Real • Fluxos TCP • Foi notado um ganho insignificante (2-3%) Terminais Ocultos Grande n• De Colisões TCP Reduz A Taxa Poucas Oportunidades de Codificação Mau Uso do Meio