O que é o protocolo MACA

Nas redes sem fio os protocolos CSMA e WDMA demonstram-se inúteis, tendo em vista trabalharem com meios físicos de transmissão diferentes (fios de cobre no primeiro e fibras óticas no segundo). Por isso, foi necessária a criação de uma nova classe de protocolos, capazes de lidar com transmissões feitas através de ondas de rádio ou infravermelhas.

O protocolo MACA (Multiple Access with Collision Avoidance) foi um dos primeiros a serem criados com este propósito. Para entender melhor o que ele faz, é preciso conhecer, antes, dois problemas comuns em redes sem fio.

***


A Estação Oculta


Imagine que há em um ambiente três notebooks que se comunicam sem fios, mas dispostos de tal forma que dois deles não consigam ouvir as transmissões um do outro. Tal qual no desenho abaixo:



Veja que A consegue ouvir as transmissões de B mas não de C, e vice versa. Enquanto isso, B consegue ouvir as transmissões dos dois. Nesta arrumação, se B estiver transmitindo alguma coisa e os outros dois tentarem transmitir algo, logo verão que uma comunicação está ocorrendo e deixarão a sua para fazê-la depois.

Mas se A estiver transmitindo algo para B, e C quiser transmitir algo também para B, ele não vai ter como saber da transmissão de A, pois está fora do seu campo de alcance. Dizemos, então, que a estação A está oculta. Quando isso acontece, C inicia a transmissão para B como se nada estivesse acontecendo. B, coitado, se confunde com as duas transmissões, uma colisão ocorre e ambas se desfazem.

***


A Estação Exposta


Deve ficar fácil pra a leitora o que é, então, o problema da estação exposta. Imagine neste caso que temos quatro estações, dispostas como no desenho a seguir:



Imagine então que B já está transmitindo alguma coisa para A, e C queira transmitir algo para D. Não há nenhum problema nisso, pois não haverá colisão de transmissões, só que C não a executa, pois ao ver que B já está transmitindo, ele conclui erradamente que sua própria transmissão gerará um erro. Daí diz-se que B está exposta.

***


Uma das principais tarefas do protocolo MACA é evitar que estes dois problemas ocorram, e a solução adotada é bem simples.

Primeiramente, quando uma estação quer transmitir para outra, ela envia um pequeno pacote RTS (Request to Send - Pedido Para Enviar), indicando quem é o destinatário e qual o tamanho do pacote a ser enviado. Tome por base a figura abaixo (sim, eu sei que está uma bagunça, mas é assim que a coisa funciona. Sorte nossa não enxergarmos as ondas eletromagnéticas):



Imagine que A queira transmitir algo para C. Ela envia então um pacote RTS para C, pacote este que também é recebido por B e E. A estação B não tem conhecimento da estação C, mas já sabe que não poderá enviar nada para A durante um certo período de tempo, assim como a estação E, que tem conhecimento de A e B, sabe que não poderá enviar nada para nenhuma das duas. Nesta situação, B e E podem se comunicar sem grandes problemas.

Dribla-se, assim, o problema da estação exposta.

***


A leitora do Vovó Viu a Rede, perspicaz, já deve estar com a pergunta na ponta da língua: mas e a estação D? Por estar fora do alcance da estação A, ela não sabe que a estação C estará ocupada, e pode mandar alguma coisa para ela, causando uma colisão!

O protocolo MACA resolve isso também. Assim que recebe um pacote RTS da estação A, a estação C manda de volta um pacote CTS (Clear to Send - Livre Para o Envio), que também contém o tamanho da informação a ser recebida e quem vai enviá-la. Mesmo estando endereçado à estação A, todas as estações que estejam dentro do alcance de C receberão o pacote, e verão que ela está a ponto de receber dados. Logo, se outras estações tiverem que mandar algo para C, irão esperar o tempo necessário para que a outra transmissão seja bem sucedida.

Veja então que a estação D também recebe o pacote CTS que C enviou para A e, mesmo sem ter conhecimento desta última, D sabe que C estará ocupada durante um certo tempo. Ainda assim, se D tiver algo para transmitir para E, poderá fazê-lo sem problemas.

Fica sanado, então, o problema da estação oculta.

***


Mesmo com estas artimanhas, podem ainda houver colisões, como no caso de duas estações enviarem pacotes RTS para uma mesma estação ao mesmo tempo. Quando isso acontece, ocorre uma colisão de pacote e as duas estações esperam então um tempo aleatório para novamente enviar novos pacotes RTS.

***


Alguns anos depois do desenvolvimento do protocolo MACA, alguns pesquisadores desenvolveram uma versão mais aprimorada dela, o protocolo MACAW (MACA for Wireless). Este novo protocolo trazia melhorias em relação à confirmação de recebimento de pacotes e controles de congestionamentos, ente outras, o que aumentou o desempenho do protocolo.

Só não me perguntem o motivo do nome, MACA for Wireless. Se o protocolo original já era para redes sem fio, pra que o pleonasmo?

***


Artigo do Vovó Viu a Rede: Entenda como funciona a escolha de tempo aleatório de espera

Um comentário:

Unknown disse...

Muito bem explicado. Ótimo trabalho, obrigado!