ITエンジニア/デザイナ向けにオープンソースを毎日紹介

Babelwebはディスタンスベクタ型ルーティングプロトコルの一つBabelをWeb上で再現するソフトウェア。

Babelwebはnode.js/JavaScript製のオープンソース・ソフトウェア。インターネットは各端末とハブが無数に接続されてできている。そのため、一つの場所に向かうためのルートは一つではなく、多少の回り道をすることで幾通りものルートが存在する。


ルーティングを可視化したグラフ

もちろん速度や負荷的にも最適なルーティングは存在する。それを計算するルーティングプロコトルであるディスタンスベクタ型ルーティングプロトコルをWebで体感できるのがBabelwebだ。

Babelwebは複数のポイントにおいて、出発点から到着点までたどり着くためのルートを計算し、それを立体的に展開する。実際、ディスタンスベクタ型ルーティングプロトコルでは距離や方向が重要になるので、三次元空間でしか描けないのだろう。


ルーティング一覧

実行するとルーティングも一覧で表示され、それをクリックするとどのルートだったかハイライト表示される。ネットワークの到達時間も刻々と変わるようで、その結果がBabelweb上に反映されていくのが面白い。まるで生き物のようだ。

Babelwebの元になるBabelはループを回避するように考えられたプロトコルなので、様々な経路を作りつつもループはしないようになっている。複雑化するネットワークを考える際や、距離や空間をベースにした経路計算などでも使えそうな面白そうな考え方だ。そのやり方を学ぶ上でBabelwebはとても参考になるだろう。


MOONGIFTはこう見る

BabelwebはBabelをWeb版実装と言える。Babel自体はIPv6やIPv4における高速なルーティングを考える上で重要な考え方になる。確かにIPv6になれば、さらにネットワークが複雑になるであろうことは予想される。その時に役立つ考え方だ。

ディスタンスベクタ型ルーティングプロトコルでは隣接ルータの学習を元にルートを計算する、というのを繰り返してルーティングを見つける仕組みになっている。メリットは各ルータの情報が少なくて済むことにある。こういうネットワークの考え方も、Webサービスを開発する際に役立つことがありそうだ。

Babelweb — Gabriel Kerneis

デモ:BabelWeb

kerneis/babelweb - GitHub

 

MOONGIFTの関連記事

コメント

  • DevRel
  • Com2