

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Biblioteca backoffAlgorithm
<a name="backoffalgorithm-library"></a>

**nota**  <a name="out-of-date-message"></a>
O conteúdo desta página pode não estar atualizado. Consulte a [página da biblioteca do FreeRTOS.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) para obter a atualização mais recente.

## Introdução
<a name="freertos-boa-introduction"></a>

A biblioteca [backoffAlgorithm](https://github.com/FreeRTOS/backoffAlgorithm) é uma biblioteca utilitária usada para espaçar retransmissões repetidas do mesmo bloco de dados, para evitar o congestionamento da rede. Essa biblioteca calcula o período de recuo para repetir as operações de rede (como uma falha na conexão de rede com o servidor) usando um [recuo exponencial com jitter algoritmo](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/). 

O recuo exponencial com jitter é normalmente usado ao tentar novamente uma falha na conexão ou solicitação de rede em um servidor causada pelo congestionamento da rede ou devido à cargas altas no servidor. Ele é usado para distribuir o tempo das solicitações de repetição criadas por vários dispositivos que tentam se conectar à rede ao mesmo tempo. Em um ambiente com pouca conectividade, um cliente pode se desconectar a qualquer momento; portanto, uma estratégia de recuo também ajuda o cliente a economizar bateria ao não tentar reconexões repetidamente quando é improvável que elas tenham êxito. 

A biblioteca é escrita em C e criada para ser compatível com [ISO C90](https://en.wikipedia.org/wiki/ANSI_C#C90) e [MISRA C:2012](https://misra.org.uk/product/misra-c2012-third-edition-first-revision/). A biblioteca não depende de nenhuma biblioteca adicional além da biblioteca C padrão e não tem alocação de heap, o que a torna adequada para microcontroladores do IoT, mas também totalmente portável para outras plataformas.

Essa biblioteca pode ser usada gratuitamente e é distribuída sob a [ licença de código aberto do MIT](https://freertos.org/a00114.html).


****  

| Tamanho de código de backoffAlgorithm (exemplo gerado com GCC para ARM Cortex-M) | Arquivo | Com otimização -O1 | Com otimização -Os | 
| --- | --- | --- | --- | 
| backoff\$1algorithm.c | 0,1 K | 0,1 K | 
| Estimativas totais | 0,1 K | 0,1 K | 