

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# backoffAlgorithm ライブラリ
<a name="backoffalgorithm-library"></a>

**注記**  <a name="out-of-date-message"></a>
このページのコンテンツは最新ではない可能性があります。最新の更新については、[FreeRTOS.org ライブラリのページ](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries)を参照してください。

## 序章
<a name="freertos-boa-introduction"></a>

[backoffAlgorithm](https://github.com/FreeRTOS/backoffAlgorithm) ライブラリは、同じデータブロックを繰り返し再送信するためのスペースを確保して、ネットワークの混雑を回避するためのユーティリティライブラリです。このライブラリは、[ジッターを伴うエクスポネンシャルバックオフ](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)アルゴリズムを使ってネットワークオペレーション (サーバーとのネットワーク接続の失敗など) を再試行するためのバックオフ時間を算出します。

通常、ジッターを伴うエクスポネンシャルバックオフは、ネットワークの混雑またはサーバーの高負荷によって引き起こされるサーバー接続の失敗やネットワーク要求を再試行するときに使用されます。ネットワーク接続を同時に試行する複数のデバイスによって作成される再試行要求のタイミングを分散する目的で使用されます。接続の状態が悪い環境では、クライアントが切断される可能性が常につきまといます。そのため、バックオフ戦略は、接続できる可能性が低いときに繰り返し再接続を試みないことで、バッテリーを節約するのに役立ちます。

ライブラリは C 言語で記述されており、[ISO C90](https://en.wikipedia.org/wiki/ANSI_C#C90) と [MISRA C:2012](https://misra.org.uk/product/misra-c2012-third-edition-first-revision/) に準拠するように設計されています。ライブラリは標準 C ライブラリ以外のライブラリに依存せず、ヒープ割り当てもありません。そのため、IoT マイクロコントローラに適しているだけでなく、他のプラットフォームに完全に移植することもできます。

このライブラリは無償で使用でき、[MIT オープンソースライセンス](https://freertos.org/a00114.html)に基づいて配布されます。


****  

| backoffAlgorithm のコードサイズ (ARM Cortex-M 向けの GCC で生成された例) | ファイル | -O1 最適化を使用 | -Os 最適化を使用 | 
| --- | --- | --- | --- | 
| backoff\$1algorithm.c | 0.1 K | 0.1 K | 
| 合計 (概算 | 0.1 K | 0.1 K | 