2019年12月19日木曜日

AIによるCSMA/CDの改良


CSMA/CDは、ネットでよく使われるプロトコルの一つで、TCP/IPの下、物理層で使われる。この基本的機能を向上することは、その上で動く全てのプログラムの向上に繋がる。これを考えてみる。

CSMA/CDの基本的な動作とは、多数のノードが繋がっているネットワーク、いわゆるバス接続において、PtoPでデータを送るためのネゴシエーションを行うことだ。つまり、バス接続においては誰が誰にデータを送りたいか分からないが、バスなので通信回線を一時的に占有する必要がある。つまり、「今からバスを占有しますよ」と宣言しておいて、それが通れば今度はデータを実際に送り、最後にバスを開放する。

このために、まず最初に通信回線が今空いている(静かである)ことを確認し、次にバス占有要求を出す。この時、ほぼ同時にバス占有要求を出す他のノードがいると、電気的に合成されてしまうので、まともなプロトコルとして認識されるような波形にならない。すると両者はバス占有要求が同時に出たということが分かる。これを双方とも認識することは可能なので、そうしたら両者はランダムな時間だけ待って、再度要求を出す。ランダムであることが肝心で、そうすると先に出した方が勝つので、後の方は回線が空くまで再度待つわけだ。

CSMA/CDの欠点は、回線が混んでくるに従ってこの再送が増え、再送が再送を呼んで輻輳してしまう可能性があることだ。このため、ハブやルーターで細かく切ってやる必要がある。

ここで提案するのは、ランダムに待つのではなく、その通信回線の混雑度に応じて最適な時間を選択することで、スムーズに通信が流れるようにする、というものだ。

その最適な時間の検索は、公平であり、且つ効率的であれば、AIでやっても良いし、何かしらのアルゴリズムがあっても良い。例えば混んでいる時は長めにするとかいう単純なモノでも良いし、高度に考慮したものであるかもしれない。何れにせよ、衝突による再送の可能性をできるだけ低くなるようにするものである。

アルゴリズムが裏目に出る可能性もあるから、必ずしもうまくいくとは限らない。しかしそれは改良すれば良い話だ。本質的には検討の価値がある施策だと考える。

0 件のコメント:

コメントを投稿

注目の投稿:

砂の船

  免震構造については過去いくつか提案しているが、これの新しい版である。 以前、難燃性の油の上に浮かべた船の構造を提案したことがある。あれの砂版である。つまり、砂のプールを作っておいて、その上に浮かべるというものだ。砂が抵抗となって振動を軽減する。 ただし、油や水と違って砂の...

人気の投稿: