2019年12月19日木曜日

AIによるCSMA/CDの改良


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

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

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

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

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

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

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

0 件のコメント:

コメントを投稿

注目の投稿:

超音波モーターの原理によるVR用トレッドミル

  VRにおけるリアリティ問題の一つに、その場で動くのではなく移動する場合、つまり歩いたり走ったりすることが挙げられる。実際にはその場にいるので、歩いたかのように足場を調節してやる必要がある。 これを実現する方法として、すり鉢状の滑りやすい足場を作っておく方法と、トレッドミルを使...

人気の投稿: