From Pastry to CrossROAD: CROSS-layer Ring Overlay for AD hoc networks

sábado, 24 de novembro de 2007
Postado por Carlos Souza 0 comentários

Abstract
P2p systems for mobile ad hoc networks are currently an open research area. Most of the existent solutions were thought for the wired networks, where thousands of nodes participate to the same service, while ad hoc networks are generally characterized by limited dimensions and scarce resources. In this paper, a performance evaluation of a structured p2p system (Pastry), running on a real ad hoc network, will be presented, and a new optimized solution, called CrossROAD, will be defined. CrossROAD exploits a cross-layer architecture to reduce the communication overhead introduced by Pastry and, at the same time, maintains all the basic principles of structured overlay networks.
by Franca Delmastro
Analisa o Pastry numa rede ad hoc e mostra que ele não possui bom deseempenho neste cenário. Propõe uma solução cross-layer para contornar esse problema, o CrossROAD.

  • Utiliza um protocolo de roteamento pró-ativo
    • Conhece a topologia da rede inteira
  • Uma rede sobreposta para cada serviço
    • Tabela de roteamento informa também os serviços que cada nó possui
  • Endereço lógico é um hash do IP
    • Cada nós consegue construir a rede sobreposta individualmente
    • Não há necessidade de realizar roteamento
  • Nenhuma conexão remota é necessária para entrar na rede e nem no caso de deixarem a rede
  • Não precisa ficar verificando se os nós estão vivos, protocolo de roteamento já faz isso

Blogged with Flock

Cross-layer design optimizations in wireless protocol stacks

Postado por Carlos Souza 0 comentários

Abstract
The performance of applications on mobile devices is affected by the device constraints of memory, processing power, battery life and the variations in the wireless network. The variations in the wireless network will be compounded in the next generation networks—3G and beyond—when the devices move across heterogeneous networks. To allow interoperability with the Internet, existing standard protocol stacks would be deployed in the new networks and mobile devices. However, these protocol stacks which are architected and implemented in a layered manner do not function efficiently in mobile wireless environments. Cross-layer feedback in the protocol stack would be useful to improve the efficiency of these protocol stacks. In this paper, we discuss the benefits of cross-layer feedback on the mobile device and present a representative survey.
by Vijay T. Raisinghani and Sridhar Iyer
Mostra a informação que pode ser extraída de cada camada da pilha TCP/IP. Tem informações faltando. O artigo é muito simples, não precisa ser lido, basta dar uma olhada na resenha.

Trechos
  • The standard protocol stacks are architected [4] and implemented in a layered manner and function inefficiently in mobile wireless environments [5]. This is due to the highly variable nature of wireless links and the resource-poor nature of mobile devices.
Interações
  • Física:
    • A camada de rede pode selecionar uma interface diferente dependendo da taxa de erros;
    • MAC pode fazer controle de potência (estudos mostram que o tamanho do frame é importante no controle de potência);
    • A camada física pode ajustar a codificação e potência do sinal de acordo com a energia do dispositivo.
  • MAC:
    • Trata classes de tráfego diferentemente de acordo com os requerimentos de cada uma;
    • Pode aplicar técnicas de modulação e codificação mais confiáveis para aplicações críticas (esses esquemas não são aplicados sempre pois aumentam consumo de energia e overhead);
    • Mobile-IP detecta uma mudança de subrede na camada de rede, porém a camada MAC consegue detectar isso mais rapidamente através do monitoramento da força do sinal. Utilizar essa informação pode diminuir o tempo de handoff;
    • Dá para ajustar o tamanho dos quadros baseado na qualidade do canal. Quadros grandes aumentam a taxa de transferência, mas se o canal estiver ruidoso as perdas são muito grandes

  • Transporte
    • A aplicação pode configurar diferentes classes de prioridade configurando parâmetros do TCP (janela de recepção por exemplo);
    • TCP pode informar a taxa de perda para que a aplicaçao ajuste a taxa de transmissão
  • Aplicação
    • A aplicação pode usar a informação sobre a qualidade do canal ou da rede para mudar o seu comportamento. Transmissões de mídia podem mudar a qualidade da codificação e clientes de e-mail podem evitar baixar arquivos.

CROSS-LAYER SELF-HEALING MECHANISMS IN WIRELESS NETWORKS

sexta-feira, 23 de novembro de 2007
Postado por Carlos Souza 0 comentários

Abstract
The use of wireless mobile ad-hoc networks (MANETs) has gained rapid momentum, both in the commercial and non-commercial sectors. In the commercial sector, sensor networks are being considered for deployment for a wide variety of purposes including to sense robustness of elevators, bridges, and other structures and to explore the earth (e.g., oil, soil type, etc.). Examples in the non-commercial (military) sector include the use of MANETs in the battlefield. Regardless of the particular sector in which MANETs are being employed, one thing is common: MANETs are being used to collect, process, and relay vital information. As a result, it is critical that nodes in these networks be equipped to make decisions to ensure the integrity of information in an inherently unreliable environment. In this paper, we propose a Cross-layer Approach To Self-healing (CATS), in which nodes use information from each layer of the protocol stack to help the routing protocol maintain network reliability in the presence of failures. These actions serve both to provide uninterrupted communications amidst unforeseen failures and also to reduce packet latency and energy consumption.
by Christopher M Sadler, Latha Kant and Wai Chen

O artigo descreve uma plataforma cross-layer para tornar um nó móvel resistente a falhas. A informação para fazer isso está espalahada ao longo das camadas e por isso ele propõe uma arquitetura Cross-Layer. Ele mostra que informação ele usa de cada camada:
  1. Física: Monitora bateria, memória e CPU. Quando um desses recursos se tornar escasso, ele pára as tarefas não críticas das camadas acima para garantir que tarefas críticas consigam ser executadas
  2. MAC: Gera estatísticas sobre a taxa de colisões e taxa de congestionamento (local). A partir daí ele faz controle de potência.
    ...
  3. Rede: Encontra nós não alcançáveis e muda rotas. Entrega essa informação para a aplicação que pode passar a se comunicar com outro nó.
  4. Transporte: À medida que recebe pacotes duplicados, ele extrai alguma informação sobre a latência da rota pois pacotes recebidos duas vezes indicam que a rota tá demorando tanto para entregar o pacote que o remetente acha que a mensagem se perdeu e envia uma duplicata. Ele usa essa informação na camada de rede para tentar achar uma nova rota.
  5. Aplicação: Cria uma lista de nós intercambeáveis. Se ele se comunica com o nó N1 ele cria uma lista de outros nós com a mesma capacidade de N1. No caso de N1 falhar, ele passa a se comunicar com um da lista.

MobileMAN: Design, Integration, and Experimentation of Cross-Layer Mobile Multihop Ad Hoc Networks

segunda-feira, 19 de novembro de 2007
Postado por Carlos Souza 0 comentários

Abstract
In the previous article [1], via experimental studies, we have analyzed the performance of a TCP/IP layered architecture in multihop ad hoc networks. The experimental results point out that a legacy protocol stack does not operate efficiently in ad hoc networks, and cross layering is a promising approach to improve the performance. Cross layering opens a second phase in the ad hoc network design. In this article we present the cross-layer architecture and related protocols, developed in the MobileMAN project. By implementing a full prototype of this architecture, we show that it significantly outperforms a legacy TCP/IP layered architecture.
A idéia do artigo é introduzir uma camada vertical (NeSt - Network Status) que server como um respositório de informação. Cada camada programa uma interface do modelo convencional de camadas e uma interface com a NeSt, assim mantem-se a modularidade das camadas e é possível usar informação cross-layer. Protocolos que não usam a NeSt funcionam da maneira convencional.

Trechos interessantes
  • The basic idea behind this technique is to make information produced/collected by a protocol available to the whole protocol stack, so as to enable optimizations and improve network performance.
  • At one end, solutions based on layer triggers implement interdependencies between protocols maintaining compatibility with strict layering. In this case the information exchange is limited to adjacent protocols. A full cross-layer design represents the other extreme; it introduces stackwide layers’ interdependencies that enable the optimization of each protocol’s performance by exploiting the full knowledge of the network status collected at different layers of the protocol stack.

Robust Broadcast: Improving the reliability of broadcast transmissions on CSMA/CA

quinta-feira, 1 de novembro de 2007
Postado por Carlos Souza 0 comentários

This paper presents a scheme to improve the efficiency of radio MAC protocols in the case of broadcast and multicast transmissions, like TCP/IP multicasting. First, the reliability problems with broadcast packets and their consequences are analysed. Then the Robust Broadcast scheme is presented, which decreases the probability of loss of broadcast packets over MAC protocols based on CSMA/CA. Finally, the new protocol is simulated against other simple solutions to show how it performs.

by Jean Tourrilhes


Este artigo mostra o problema de confiabilidade em transmissões via broadcast em redes sem fio. O inconveniente destas redes é que o transmissor não sabe quantos nós vão ouvir o broadcast, então ele não sabe com quem negociar a transmissão. Além disso, é impossível usar esquemas como RTS/CTS pois vários nós enviando o CTS ao mesmo tempo levaria a colisões.

Kademlia: A Peer-to-peer Information System Based on the XOR Metric

terça-feira, 16 de outubro de 2007
Postado por Carlos Souza 0 comentários

Abstract
We describe a peer-to-peer distributed hash table with provable consistency and performance in a fault-prone environment. Our system routes queries and locates nodes using a novel XOR-based metric topology that simplifies the algorithm and facilitates our proof. The topology has the property that every message exchanged conveys or reinforces useful contact information. The system exploits this information to send parallel, asynchronous query messages that tolerate node failures without imposing timeout delays on users.
by Petar Maymounkov and David Mazi`eres
Artigo dos autores do Kademilia.
  • A folha mais próxima é aquela que compartilha o maior prefixo
  • Xor é unidirecional. Para uma determinada distância e um ponto X te, apenas um ponto a essa distância. Unidirecionalidade garante que buscas pela mesma chave convergem pelo mesmo caminho. Assim, rola de cachear coisas no meio do caminho afim de aliviar hot spots
  • Um nó guarda o endereço de k nós situados a [2^i:2^i+1], 0 <= i <= 160. Ou seja, k nós de cada subárvore. Esta lista de nós é chamada k-bucket. Nós antigos ficam mais tempo no balde pois são mais prováveis de ficar.

Incentives Build Robustness in BitTorrent

Postado por Carlos Souza 0 comentários

Abstract
The BitTorrent file distribution system uses tit-for-tat as a method of seeking pareto efficiency. It achieves a higher level of robustness and resource utilization than any currently known cooperative technique. We explain what BitTorrent does, and how economic methods are used to achieve that goal.

by Bram Cohen

Escrito pelo autor do BitTorrent, descreve em alto nível o funcoinamento do BitTorrent.


Características legais do BT:
Piece download
  • Utiliza pipeline de requisições para evitar ficar esperando pela confirmação de envio de cada subpiece
  • Utiliza a política de rarest first para escolha de pieces pois:
    • Faz com que todo mundo se interesse pelos mesmos pieces, então o peer acaba obtendo um piece desejado
    • Piecees mais comuns são deixados para o final do download já que eles são mais provãveis de serem encontrados então
    • Distribui melhor o arquivo pela primeira vez pois baixa do seed os pedaços ainda não baixados por ninguém
    • No caso do seed não querer mais fazer upload, reduz as chances de um pedaço ficar indisponível, pois distribui mais rapidamente os mais raros
  • No início do download, rarest first não é utilizado. O que interessa para o peer é conseguir um piece o mais rápido possível, assim ele pode participar da rede logo. Como os pieces mais raros estão distribuídos em menos nós, a taxa de transferência pode ser menor e demoraria mais para conseguir este piece. Então os peer pedem um piece aleatório.
Resource alocation
  • Optimistic unchoke: Simply uploading to the peers which provide the best download rate would suffer from having no method of discovering if currently unused connections are better than the ones being used. To fix this, at all times a BitTorrent peer has a single ‘optimistic unchoke’, which is unchoked regardless of the current download rate from it.

Making Gnutella-like P2P Systems Scalable

segunda-feira, 15 de outubro de 2007
Postado por Carlos Souza 0 comentários

Abstract
Napster pioneered the idea of peer-to-peer file sharing, and supported it with a centralized file search facility. Subsequent P2P systems like Gnutella adopted decentralized search algorithms. However, Gnutella’s notoriously poor scaling led some to propose distributed hash table solutions to the wide-area file search problem. Contrary to that trend, we advocate retaining Gnutella’s simplicity while proposing new mechanisms that greatly improve its scalability. Building upon prior research [1, 12, 22], we propose several modifications to Gnutella’s design that dynamically adapt the overlay topology and the search algorithms in order to accommodate the natural heterogeneity present in most peer-to-peer systems. We test our design through simulations and the results show three to five orders of magnitude improvement in total system capacity. We also report on a prototype implementation and its deployment on a testbed.
Mostra alguns problemas de escalabilidade do Gnutella e propões as seguintes soluções:
  • Adaptação da topologia: Ensures that high-capacity nodes are the high degree nodes
  • Controle de fluxo: Forward queries if can't answer them
  • Cria ponteiros para o conteúdo nos vizinhos
  • Biased walk: Não realiza flooding, encaminha para alguns poucos nós. Em geral encaminha para os nós mais conectados. Como o conteúdo é replicado nos vizinhos, nós muito conectados conhecem muito da rede.
Ele ainda argumenta porquê utilizar Gnutella ao invés de DHTs, uma vez que DHTs não sofrem tanto com escalabilidade:
  • P2P clients are extremely transient
  • Keyword searches are more prevalent, and more important, than exact-match queries.
  • Most queries are for hay, not needles.

A Cross-layer Decentralized BitTorrent for Mobile Ad hoc Networks

quinta-feira, 20 de setembro de 2007
Postado por Carlos Souza 0 comentários

Abstract
In recent years, a number of P2P systems, for instance, Gnutella, KaZaA, Napster, and BitTorrent, have been proposed for the wired Internet. However, these protocols are not immediately applicable to the mobile ad hoc networks (MANETs) owing to the extreme conditions MANETs operate under. Of the above protocols, although BitTorrent has several features which make it an ideal candidate for adapting to MANETs, the current specification of BitTorrent has several drawbacks which make a straightforward implementation of BitTorrent for MANETs an undesirable solution. In this paper, we investigate a straightforward implementation of BitTorrent [6, 3] in MANETs, termed BTI, and compare its performance with a cross-layer adaptation of BitTorrent for MANETs, termed BTM. We resolve the issues of centralized control and single point of failure in BTI by proposing mechanisms to decentralize the BitTorrent model for MANETs and provide resource/data redundancy to improve the protocol performance. In addition, the cross-layer model of BTM is more suited for use in a MANET. Our performance comparison studies show that BTM is able to outperform BTI in terms of goodput, and the number of pieces delivered, in the context of amortizing the client download expenses over more connections (that is, BTM has a higher average peer degree).
Mudanças no BitTorrent
  • Pesquisa por peers(elimina necessidade do tracker) e torrents através de inundação. Utiliza o protocolo de roteamento, ANSI
  • Resource replication para aumentar o número de seeds

Observações
- A.1 é desnecessária e foge do problema que o BitTorrent resolve (transferências de arquivos e não buscas). Além disso, ele força o sistema a utilizar um protocolo de roteamento pró-ativo.
- Este protocolo utiliza inundação para encontrar peers e torrents. Além de sobrecarregar a rede, ele não dá garantias de encontrar o que está procurando. Esta técnica não pode ser empregada desse jeito em redes críticas onde um arquivo deve possuir garantias de entrega, porém é uma boa idéia utilizar inundação na vizinhança de um nó (alguns poucos hops) para encontrar outros peers próximos e aumentar a localidade da rede overlay. As duas técnicas devem ser utilizadas em conjunto.
- A replicação de conteúdo da seção 4.1.3 é idéia furada. Primeiro ele diz que o BTI começa com apenas uma única semente, o que não é uma exigência do BitTorrent, mas do BTI. Se for o caso de resiliência ser muito importante, o administrador pode colocar mais seeds. Nos outros casos, replicação de conteúdo levaria a disperdício. Além disso é pedir demais que os participantes da rede baixem arquivos que não lhes interessam.
- Uma consulta é broadcasted com um TTL de 2. Se der pau, ele incrementa de 1 em 1 e vai assim até 10. Isso é muito tosco, gera muita mensagem repetida. Rolava dele aumentar o TTL exponenciamente. APM.
* Ele não falou no artigo, mas usou tamanhos menores de blocos no experimento que o BitTorrent normal. Essa é uma boa idéia para nós móveis uma vez que a conectividade pode mudar muito já que os nós são móveis.
- Meio picareta o BTM mostrar um node degree mais alto que o BTI simplesmente pelo fato de haver proxy seeds. Na conclusão ele diz que assim ele consegue armotizar mais o custo de download, mas isso é uma bobagem pq ele só aumentou o custo de download do seed original que teve que repassar os arquivos inteiros para os proxy seeds. Além disso, isso não serve para casos em que o arquivo não é popular pq ele vai ser replicado e dificilmente vai ser reutilizado em outro nó.

Trechos relevantes
BTM is a cross-layer P2P system which takes advantage of the routing layer activities in the MANET for collecting key/peer information for the smooth functioning of BTM at the application layer.
Of all of the above proposed P2P systems for the wired Internet, BitTorrent has certain distinctive features which are advantageous in the context of MANETs.
*The overlay construction in BitTorrent is on-demand—the peer overlay is not constructed until a client enters the P2P system, at which time a tracker node (whose ID is known) is contacted by the client for a list of peers which are currently downloading the file or hold a full copy of the file (and are willing to share with other peers). Thus, peer discovery essentially involves a constant overhead in BitTorrent, and does not depend on how far from the client the peers are located.
*Moreover, the peer overlay changes during the duration of file download, because clients are in contact with the tracker node through the duration of the download (and request a peer list periodically), and this directly affects the file download at the BitTorrent client because the BitTorrent client simultaneously downloads pieces of the file from all members of the overlay. In contrast, clients in Gnutella and Napster download their file from one peer over an overlay that may change, but has no effect on the file download at a client.
*In addition, BitTorrent is concerned with amortizing the cost of download of the file across the network. That is, in BitTorrent, the cost of the download of a particular file at a client is not fully borne by one peer, but instead borne by multiple peers in the system. In BitTorrent, because the file is downloaded piece-by-piece, and because these pieces are of a pre-determined order, size and number, a BitTorrent client can resume download easily after long periods of disconnection from the network. One obvious advantage of this mechanism is that a BitTorrent client can start serving the file it is downloading to other peers as soon as the BitTorrent client downloads the first piece of the file.
*All of the above properties allow BitTorrent to circumvent a number of issues which typical P2P system designs for MANETs face, thus making BitTorrent an attractive P2P system to adapt for MANETs.

Despite the above advantages, BitTorrent is not immediately usable in the MANET context owing to some obvious disadvantages.
*The BitTorrent model is inherently centralized with respect to the tracker node operations—the presence of a single tracker node, which provides each client with the list of peers currently downloading a file, makes peer overlay construction simple, but also raises the issue of single point of failure of the tracker. -Likewise, when all nodes with a full copy of a file (seed nodes) leave the network, BitTorrent clients are no longer able to download the full file, if the undownloaded pieces are not available at other clients in the P2P system.
*Lastly, network partitions make accessing the tracker/seed difficult, and potentially stall the client download process indefinitely.

Unlike the wired Internet in which not all the nodes are routers, any node in a MANET may perform routing activities and is thus aware of topological information. Using a cross-layer interface in the protocol stack, the network layer topology information can be used to make effective decisions for key and peer lookup at the BitTorrent (application) layer.

In the MANET context, the effect of changing peer overlay on piece download at the client is greater, given node mobility and other issues such as partitions.