オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

上下非対称通信の実験

»

ネットワークの少しマニアックな話題です。

一般的に、イーサーネットでは1本の線で双方向の通信を行います。PCから伸びているネットワークケーブルは普通、1本ですよね。それで送信も受信も行います。

ところが、特殊なケースで送信と受信が分かれることがあります。もちろん、規格としてはイーサーネットなので、1本の線の中で双方向の通信が行われているのですが、送信時と受信時で違う線(というか、経路)を通したい、という感じです。

回線事業者(ISP)は、上位ISPから接続回線を買ってインターネット接続を提供しています。上位ISPとの回線をトランジットと呼ぶようですが、トランジットは流量とピークで料金を支払うケースが多いようです。他にピアリングと呼ぶISP同士の相互接続もあり、こちらは基本的に無料だとか。帯域制限などとともに、複数のトランジットやピアリングを使い、経路を工夫して、経費が少しでも抑えられるようにすることを行うのだそうで、そのために、送信と受信で違う経路を通るということは、ごく普通にあるのだそうです。

私のところでは、ISP向けの製品や特注品をいろいろ開発することも多く、今回はある製品を、上下非対称に対応させようということで、ソースの改良は、多少頭がこんがらがるものの、まあ、それほど苦労せずにできるのですが、動作確認が結構面倒です。。

C1
結局、旧タイプですが、スイッチを2台借りて、上り下りを別経路にするような設定にして実験しました。下の2つがスイッチです。100Mbpsまでの製品なので今となっては性能的に厳しいのですが、当時は高かったそうです(車と同じくらい?)。この確認をするためだけで、ケーブルが6本必要です。頭がこんがらがります。。

上の方にある2台のサーバのうち、下の方が送信・受信用のテストVMマシン。ここから下のスイッチに通信が行き、下のスイッチ内でルーティングして別のポートから送出。それが上のサーバに行き、ある処理を行って、上のスイッチに流れ、内部でルーティングして別のポートから出て、受信用のVMに行きます。逆方向も同じように流れますが、非対称をシミュレートするために、わざとスイッチで別のルートを通るようにしてあります。

C2
サーバ機の裏の様子です。上のサーバはこの確認のために4本のネットワークをつないでいます。さらに3本つながっていますが、それは別の用途で使うためです。

見事に確認は成功し、ホッと一息。。

しかし、久しぶりに100Mbpsの状態でスループットを測定して、「こんなに遅かったっけ!?」とビックリしました。最近は1Gbpsは当たり前で、ISP内では10Gbpsも結構使われています。ちょっと前(?)まで、ぶっといイエローケーブルで10Mbpsだったのに・・・

Comment(0)