質問: イーサネットで用いられる二進指数バックオフアルゴリズムで、フレームの衝突が発生した場合に、衝突回数に比例して乱数の最大値Zを動的に変化させる目的を教えてください。
回答: 大概のフレーム衝突は、1回・2回、多くても数回以内に解消し、通信できます。 しかしその数回でもおさまらないほど通信が混雑したらどうなるでしょうか。 コリジョンが解消しないうちに他のクライアントも通信を始め、さらにコリジョンが発生し、ほとんどのフレームが再送上限を超えて破棄されてしまうようになってしまうかもしれません。 なので、一度衝突したら、より長く待って渋滞を解消しようとします。 そのための簡潔かつ有効な処置が「待ち時間のための乱数最大値を増加させる」ということです。 1つ増えるごとに最大値は2のn乗で増加しますので、幾何級数的に待ち時間は増えることとなります。 乱数ですから必ず長く待つとは限りませんが、確率的に長く待つ通信機器が増えた結果、いくらかの通信は通るようになって、渋滞が解消されていきます。 しかし逆に、コリジョン1回目から、そんな長い間待つ必要も、無いでしょう。 なので、初めのうちは待つといってもちょっとだけ、コリジョンが発生し始めたなら速やかに長く待つようにと考えられたのが、「truncated binary exponential backoff」方式ということになります。 >イーサネットの規格とCSMA/CDアクセス制御方式 (4/5) > ※最下部に待ち時間の表あり