O que é RTS/CTS em Redes Sem Fio

Nós Ocultos e RTS/CTS em Redes Wireless

Para que uma estação cliente possa se conectar a uma rede WLAN BSS (como uma rede Wi-Fi), ela deve ser capaz de se comunicar com um Access Point (Ponto de Acesso). Porém, é possível que a estação consiga se comunicar com o AP, mas que não consiga ouvir e nem ser ouvida (detectada) por outros clientes na mesma rede. Isso pode ser um problema, pois as estações realizam um processo de prevenção de colisões quando ela percebe outra estação transmitindo, por exemplo.

Se a estação não for capaz de ouvir as demais, ou não puder ser ouvida, muito provavelmente haverá colisões na rede, pois ela transmitirá pacotes sem esperar que o meio esteja livre.

Imagine uma rede sem fios (wireless) contendo diversas estações conectadas – smartphones, tablets, e outros dispositivos espalhados por uma determinada área. Se esta área for relativamente grande, dispositivos distantes entre si podem não se enxergar, apesar de enxergarem o access point e conseguirem, assim, conectar-se à rede.

Porém, pelo fato de algumas estações não enxergarem as demais, elas podem tentar enviar quadros de dados enquanto o meio está sendo usado para transmissão por outra estação. Isso pode ocasionar a ocorrência de colisões na rede, diminuindo drasticamente sua performance. Este problema possui um nome técnico: Problema do Nó Oculto (ou Estação Oculta).

Se a rede Wi-Fi estiver com problemas devido ao alto número de colisões ocasionado por este problema, uma das soluções possíveis consiste em empregar um mecanismo denominado RTS/CTS, que pode diminuir o impacto dos nós ocultos, forçando uma espera para a transmissão de dados, reservando o meio de transmissão antes que um quadro de dados seja transmitido – isso se tanto o access point quanto as interfaces de rede das estações possuírem esse recurso, o que não costuma ocorrer em dispositivos de baixo custo.

Assim, a função RTS/CTS tem por objetivo principal minimizar as colisões entre estações ocultas, que ocorre quando um AP e os usuários da rede estão em um local onde há muitas retransmissões de quadros na rede wireless.

Nó Oculto em Redes Wireless

As estações A e B enxergam o Access Point central, porém não se enxergam mutuamente – são nós ocultos uma para a outra.

O que é RTS/CTS (Request to Send / Clear to Send)

Muitos roteadores wireless e access points de melhor qualidade possuem funções avançadas de configuração, e entre elas há uma função opcional para gerenciar como os pacotes de dados são manipulados na rede. O padrão 802.11 define a função RTS (Request to Send), um processo simples que controla o acesso das estações ao meio de transmissão, usada em conjunto com a função CTS (Clear to Send), formando assim o mecanismo RTS/CTS.

Basicamente, esse mecanismo funciona com uma estação anunciando ao access point que deseja transmitir dados, com o AP avisando a todos na rede que devem esperar essa transmissão ocorrer, e com a estação realizando sua transmissão de quadros. Note que esse mecanismo, por padrão, é desabilitado nos equipamentos, pois pode causar overhead e lentidão na rede se não for usado na situação adequada.

Tecnicamente, isso ocorre da seguinte forma:

  • Uma estação com o RTS/CTS habilitado deseja transmitir dados para algum outro host na rede (ou na Internet).
  • Essa estação envia um quadro RTS ao Access Point (ou a outra estação diretamente).
  • Esse quadro RTS é usado para a distribuição de NAV*, notificando todas as outras estações que elas devem esperar até que quadros CTS, de dados e ACK tenham sido transmitidos.
  • O AP então envia um quadro CTS, também usado para distribuição de NAV. Se alguma estação não tiver escutado o quadro RTS, escutará o quadro CTS, pois todas as estações são membros do mesmo BSS (Basic Service Set).
  • As estações que recebem os quadros RTS ou CTS ajustam seu NAV para o valor fornecido.
  • Os dados da estação transmissora são enviados até a transmissão se completar.
  • AP envia quadro ACK para confirmar fim da transmissão e liberar as demais estações.

*NAV (Network Allocation Vector / Vetor de Alocação de Rede) se refere a um mecanismo de temporização (timer) que mantém uma espécie de “previsão” do tráfego no meio de transmissão, baseado na informação de duração vista em uma transmissão de quadro prévia. Este valor é empregado para determinar a disponibilidade do meio.

Com estas funções é possível otimizar a performance da rede sem fio local. Ao ativar o mecanismo RTS/CTS em uma estação, ela deixa de enviar quadros de dados até que uma conexão RTS/CTS seja estabelecida com outra estação. Então, a estação inicia o processo enviando um quadro RTS. O AP (Access Point) irá transmitir um quadro para a rede CTS após receber o RTS da estação, e esse quadro CTS possui um valor de tempo que é empregado para alertar as outras estações na rede que devem esperar a liberação do meio, enquanto a estação que enviou o quadro RTS transmite seus dados.

Também é comum ativar o mecanismo RTS/CTS em uma rede Wi-Fi para ajudar a realizar diagnósticos de problemas na rede, ou ainda quando pacotes de tamanho muito grande devem trafegar em uma rede sem fio que está congestionada.

Quadros RTS e CTS

Um quadro RTS (20 bytes) é formado por cinco campos:

  1. Frame Control: Tipo do quadro, entre outras coisas. 1011 para quadro RTS
  2. Duration: Tempo estimado para a transmissão do quadro de dados, incluindo tempo para os quadros CTS e ACK e SIFS (Short Interframe Space, em ms)
  3. RA (Receiver Address): Endereço MAC do AP (BSSID)
  4. TA (Transmitter Address): MAC Address da estação transmissora
  5. FCS: Frame Check Sequence – Verificação de erros.
Quadro RTS em redes sem fio

Formato do Quadro RTS

Já um quadro CTS (14 bytes) possui quatro campos:

  1. Frame Control: Tipo do quadro, entre outras coisas. 1100 para quadro CTS
  2. Duration: Duração do RTS, menos o SIFS e tempo de transmissão do quadro CTS.
  3. RA (Receiver Address): TA do quadro RTS se torna o RA aqui.
  4. FCS: Frame Check Sequence – Verificação de erros.
Quadro CTS em redes wireless

Formato do Quadro CTS

E um quadro ACK (14 bytes) contém quatro campos, de forma análoga ao quadro CTS:

  1. Frame Control: Tipo do quadro, entre outras coisas
  2. Duration: Duração sempre ajustada em 0 segundos.
  3. RA (Receiver Address): Igual ao do quadro CTS.
  4. FCS: Frame Check Sequence – Verificação de erros.

Transmitido pelo AP para o cliente, confirmando a recepção do quadro de dados

Quadro CTS em redes wireless

Formato do Quadro ACK

Configuração do RTS/CTS

Existem, basicamente, três modos possíveis de configuração do mecanismo RTS/CTS:

  1. Desligado (é o padrão)
  2. Ligado
  3. Ligado, com Threshold (limite)

No modo Ligado com Threshold (RTS Threshold), é possível controlar quais pacotes, acima de um certo tamanho determinado por um limite (threshold), são anunciados pelo mecanismo para envio pelas estações. Como as colisões costumam afetar mais pacotes de tamanho grande do que pequenos, podemos ajustar um limite para que o RTS/CTS opere apenas quando uma estação quer enviar pacotes acima de um certo tamanho. Desta forma, é possível otimizar o throughput da rede WLAN ao mesmo tempo em que diminuem os problemas com nós ocultos.

Dicas

  • Se você acredita que uma rede sem fio apresenta uma performance muito baixa por conta de excesso de usuários conectados, por interferência eletromagnética ou colisões de pacotes, você pode diminuir o limite RTS até conseguir uma melhora na performance da rede.
  • Monitore a rede para verificar se ocorrem colisões. Caso haja muitas colisões, e se os usuários estiverem fisicamente distantes (vários metros), ative o mecanismo RTS/CTS.
  • Porém, se a rede estiver com baixa performance por outro motivo que não o dos nós ocultos, ativar o mecanismo RTS/CTS provavelmente irá diminuir ainda mais essa performance, pois está sendo adicionada mais uma etapa para a transmissão de dados na LAN.
  • O valor padrão recomendado para o limite RTS (RTS Threshold) é de cerca de 500. Valores mais baixos significam que os pacotes RTS são transmitidos com mais frequência, o que pode ser útil para melhorar a performance da rede quando ocorrem muitas colisões, sobrecarga de tráfego ou interferência eletromagnética. Porém maior latência pode ser introduzida na rede.
  • Sempre ajuste o RTS em pequenos valores, e teste para ver se obteve o efeito desejado.

Problemas com RTS/CTS

O emprego do RTS/CTS pode acarretar um problema, denominado Problema do Nó Exposto, no qual uma estação wireless nas proximidades, porém conectada a um outro access point, escuta a transmissão de quadros RTS e CTS e para de transmitir quadros pelo tempo especificado no RTS – mesmo não fazendo parte da rede em questão.

Isso pode ocorrer quando ambas as redes em questão estão usando o mesmo canal de transmissão wireless, causando assim o que chamamos de Interferência Co-Canal (ou interferência de canal), que é uma forma de crosstalk.

Problema do nó exposto em redes wireless

As estações A e B enxergam ambos os access points, pertencentes a duas redes distintas. Se em uma das redes forem enviados quadros RTS ou CTS, a estação da outra rede pode parar de transmitir.

Ajuste relacionado

Fragmentation Threshold: Nível de Fragmentação, usado para especificar o tamanho máximo de um quadro de dados antes que ele deva ser fragmentado em múltiplo pacotes. O valor padrão do nível de fragmentação é de 2346 bytes. Estudaremos essa configuração em nosso próximo artigo.

Referências

  • Coleman, D. D.; Westcott, D. A. CWNA Study Guide. Ed. Wiley, 2006
  • Akin, D.; Nicholas, R. CWNA Self Study Guide. Ed. McGraw-Hill Publishing, 2003
  • Labiod, H.; Afifi, H.; De Santis, C. Wi-Fi™, Bluetooth™, ZigBee™ and WiMax™. Ed. Springer. 1ª Edição. 2007

 

Sobre Fábio dos Reis (1223 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*