工学院大学 (1 部) での「インターネット論」の講義は 2 年めになった.その内容は以前担当していた 2 部の「コンピュータネットワーク」の内容を基本にしつつ,昨年も今年もすこしずつ変えてきた. これまで変えてきた内容については別に書くとして,ここではイーサネット演習でのあたらしいこころみについて書く. それは,これまでつかってきたシミュレータをやめて,安価なスイッチや Arduino Uno 互換ボードなどをつかったハードウェアを使用した演習 (実験) だ.
この講義は「インターネット論」なのだが,近年は広域でもイーサネットが重要になっているから,それにフォーカスした演習をおこなっている. 昨年まで演習でつかってきたイーサネット・シミュレータは,イーサネット・パケットを出力するコンビュータのシミュレータと,スイッチのシミュレータとで構成されていた. これを,イーサネット・パケットを出力する Arduino Uno 互換くみこみボードと,安価なスイッチでおきかえた.
シミュレータにももちろん利点もあったが,仮想化されているところがよわみだとかんがえてきた. 利点はシミュレータではスイッチのアドレス・テーブルの内容が常に表示される,コンピュータが入出力するパケットの内容が比較的わかりやすく表示されるなどの点だ. ハードウェアにおきかえると,このわかりやすさを保持することはむずかしい. また,シミュレータとちがって人数分用意することはむずかしい. しかし,実ハードウェアを使用することによるリアルさ,とくにリアルにケーブルを接続・切断できることはハードウェアを使用する利点だとおもう.
今回は Arduino Uno 互換ハードウェアを使用した 3 個のコンピュータ (2 台は "クライアント",1 台は擬似的なサーバ) と 2 個の超小型スイッチ (写真参照) からなるセットを 5 組 (予備をさらにもう 1 組) 用意して,各組に 4〜6 人をわりあてた. 受講者は 60 人ちかくいるので,それを 2 グループにわけて,日時をかえて実験してもらった. PC をつかわずに Arduino を使用したのは,そのほうが安価なこと,PC よりはるかに小型軽量なので多数の機材を容易にはこべることが理由だ. 私は非常勤講師だから大学のリソースはつかいにくいし,つかえるとしても手続きが煩雑になる. 実際,ふだんの場所・時間から変更したため教室だけはあらたに手続きして確保する必要があったが,それだけでもけっこうな時間がかかった. 教室以外のものつまりハードウェアは電源やその配線もふくめて私のポケット・マネーで購入し,自分でくみたてプログラムしたものだ. そうすることでむしろ比較的短時間でセットアップできる.
ディスプレイはないので,パケットがながれたことをしめすは LED の点滅だけだ. Arduino に接続されたイーサネット・インタフェースはパケットがながれたときに点灯し,スイッチはパケットがながれたときに消灯する. 2 台の "クライアント" は "サーバ" にむけて周期的にパケットを送出するが,それらの周期はことなる. こうしたほうが,LED の点滅のしかたをみてどちらのクライアントからきたパケットが通過したのか判定しやすいだろうとかんがえたからだ. これらのプログラムはこの圧縮ファイル (etherSend181126.zip) にはいっている.
実験でたしかめてもらいたかったのは,フラディングとスイッチングの動作だ. これらを LED の点灯からよみとってもらう. "クライアント" は "サーバ" にむけて周期的にパケットを送出する一方,"サーバ" は 2 台の "クライアント" にパケットをおくる. そのため,3 台全部をスイッチにつなげばそれらすべてのアドレスがスイッチに学習され,スイッチングされる. "サーバ" をつながなければ,パケットはフラディングされる. つまり,リピータと同様に動作する.
これらのハードウェアはいずれも AliExpress という中国の Web サイトで買ったものだ. 中国からの輸入にはまだトラブルがつきものだが,このサイトはトラブルシューティングにくふうしていて,比較的安心して買うことができる.
Arduino Uno 互換ボードとイーサネット・インタフェースはそれぞれ 300 円強だ. これらをジャンパ線でつないで,ダンボールに黒いビニル被覆つきの針金で固定している (右上の写真参照). CPU ボードとイーサネット・インタフェースが緊結されていないとあつかいづらいので,このようにしている. ダンボールをつかうのはもちろんそれを安価に実現するためだ. ジャンパ線の複数のコネクタをすきまなくならべて,グラグラしないようにテープでまとめている. 実験中にイカレることがないようにするためだ. それでも,ジャンパ線を不用意にさわると接触不良が生じるではないかということが心配だ. ボードをおおっていないことも心配のタネだが,実際,実験中に 1 個のボードでレギュレータがやけこげた. 学生はなにもしていないというが,ショートさせたうたがいがある.
スイッチは 600 円くらいだ. もっと高級なスイッチはループをつくってもパケットがながれないようにするというようなインテリジェントな処理をしたりするが,このスイッチは基本に忠実なようにみえる. だから,ループさせるとどうなるかというような実験もできる. ただし,アップリンク,ダウンリンクの区別はなく,かつ 2 台のスイッチをストレート・ケーブルで接続することができる.
実験はまだ半分おわったところだし,成果は学生のレボートをみるまで十分にはわからない. しかし,学生はそれなりにたのしんで実験していたようにみえる. 後半の実験とレポート提出がおわったら,この項目をかきかえるか,追記することにしよう.
12 月 7 日追記:
前半の実験の際にはクライアントのパケット送出周期を 2 台のあいだでかえていたが,後半の実験ではそれを同一の
1.4 秒にした.周期をかえることで,かえってわかりにくくなっていたようだからだ.
しかし,まだわかりやすいとはいえない.
1.4 秒では周期がみじかすぎるようだ.
あらかじめ,不可解な現象もレポートで報告するようにもとめた.
不可解な現象は実際に観察されていたが,はたして,レポートでなにかでてくるだろうか.
来年もこの方法をとるなら,周期はながくしたほうがよさそうだ.
しかし,この方法をつづけるかどうかは学生のレポートをみてからきめるつもりだ.
12 月 15 日追記:
ひとつ書きわすれたのは,確保した教室のひろさだ.
前半の実験は 100 人以上はいる,ひろい教室をつかった.
もっとせまい教室があいていなかったからだ.
後半は 40 人の教室をつかった.
そのほうが配線などがうまくいくとかんがえたからだ.
しかし,実際にはここはせますぎた.
人数は 30 人くらいなのだが,机をうごかして島をつくると,あいだに通路を確保するのがむずかしくなる.
うまく机をならべけば場所はたりるはずだが,学生にまかせるとそうはしてくれない.
通路がせまいから配線にも支障をきたす.
来年も実験をするなら,100 人の教室のほうがよい.
コメントする