2017.12.26

「あけおめ」メールが送れない!これってどうにかならないの?

新年早々のご挨拶が、通信エラーに!?

大晦日の23時59分、某神社にて。

……3、2、1、あけましておめでとう!
早速、あけおめメール、送ろうぜ!おれ、早川さんに送っとくし!吉田さんにはお前から、よろしく!
OK!

(それぞれメールを送信……)

よし、これでOK!
先輩たちには、いつも世話になってるし正月くらい、ちゃんと挨拶せなな
あれ、なんだ、送れない。エラーだって
あ、おれもや……。混んでんのか?
こういう時に限って……。そうだ、早川さんと吉田さん、こういう研究してなかったっけ?『あけおめメール、送りましたよ!』って伝えがてら、何で送れなかったのか、聞きに行こう!
よっしゃ!

そして数日後、二人は研究室へ。論文の追い込みで忙しい吉田さん、早川さんは熱心に作業中。

▲情報理工学部3回生の北川さん(左)と有本さん(右)

早川さん~!吉田さん~!あけましておめでとうございます!じつは、年が替わってすぐに僕たち、お二人に「あけおめ」メールを出したんですが、エラーが出て送れなかったんです
で、なぜ送れなかったのか知りたくて、教えてもらいにきたんです

▲大学院でネットワークコーディングを研究する吉田さん

そういうことか。まさに僕たちは、その問題を解決できる方法について研究をしているんだよ。『ネットワークコーディング』っていうんだけど
ネットワークコーディング?!それ、なんすか?

▲吉田さんと同じ研究室の4回生 早川さん

メールが送れなかったのは、年明けにたくさんの人が一気にメールを送信したからだと考えられますね。ネットワークが一度に通信できる情報の量には限りがあるんです。その辺を理解してもらうために、まずは通信の仕組みから説明しましょうか

と、早川さんは、丁寧に説明を始めました。

一度に送れる情報は一つだけ!

図1のように、X、Yの二人が携帯電話によって互いにメールをやり取りする場合を考えてください。X、Yがそれぞれ相手に「あけおめ」とメールを送ると、それらが基地局に届きます(①、②)。そして基地局に届いたメールが、それぞれY、Xへと転送されて、相手に届くことになります(③、④)。

▲図1:通常の通信の流れ

ここでのポイントは、同時に送ったように見えても常に微妙な時間差があり、早く送られたものから順に一つずつ流れるという点です。ある時間に一つの通信路を流れる情報は常に一つで、同じ1秒の間でも、ある瞬間は①、次は②、そして、③、④、という具合になります。
情報一つが入る時間の区切りを「スロット」と呼びますが、ここで、1秒が12スロットに分けられ、1スロットに「あけおめ」一つ、つまり8バイト(全角4文字)の情報が入るとしましょう。

すると、①~④のやりとりで4つのスロットが埋まることになります。つまり、その1秒間のスロットの残りは8となり、この1秒間に通信できるのはあと2ペアだけとなります。それ以上の数の人が送ろうとすると、「通信エラー」となってしまうのです。

え、3組って……。そんな少ないんじゃ、送れるわけないよな
もちろん実際の回線の場合、それがもっと大きいんだよ。ざっくり言えば、たとえば64Mbpsの回線であれば、1秒間に64メガビット、つまり800万バイト(1バイト=8ビット)の情報が送れるということ。1スロットが同じく8バイトとすれば、100万人が1秒間に「あけおめ」と送ることができることになる。1秒がいくつのスロットに分けられて、一つのスロットにどれだけの情報量が入るかは、回線によって違うんだ

なるほど、それがLTE、3Gといった回線の違いなのか!
もっといろんな違いがあるのだけれど、それも重要な違いの一つ
いずれにしても、通信できる情報量には上限があり、それを越えた量の情報が送信されるとエラーが起きます。その問題を解決するのがネットワークコーディングなんです

複数の情報をまとめて送る「ネットワークコーディング」

簡単に言えば、ネットワークコーディングとは、使うスロットを節約して通信できる情報量を増やす技術です。たとえば、二人の「あけおめ」のやりとりに4スロット使ったのを3スロットにできれば、同じ1秒間に3ペアしか通信できなかったのが4ペアになりますよね

うん、なるほど。でも、どうやって…?
通常の通信では、基地局などネットワークの合流点から送信先に情報を送るとき、送信元から届いた情報をそのまま転送するため、先の図1で言えば、③、④の2スロットが必要になる。でもネットワークコーディングでは、基地局に集まってきた情報を符号化(=合成)して、一つの情報に変換してから転送する。すると、図2のように、送信先に送るのにスロット1つで済み、先と同じ通信が3スロットで可能になるってわけ

▲図2:ネットワークコーディングを使った通信の流れ

でも、そうなったら、二人に同じ情報が届いてしまわないんですか?
大丈夫。符号化された情報を読むには、読める形に復号する必要があって、各受信者は、符号化された情報から自分宛の情報だけを取り出して復号するような仕掛けになっているからね
なるほど~!
もっとよく理解してもらうために、通常の通信とネットワークコーディングを、糸電話を使ってシミュレーションしてみませんか?
いいですね!じゃあ早速、研究室の他の人たちも呼んで、準備しますね

糸電話で、通信を再現!

糸電話で、学生8人が基地局役を通じてつながって、それぞれ自分の正面の相手に「あけおめ」メールを送ります。以下に、通常の通信の場合とネットワークコーディングの場合の、1スロットごとの情報の流れを図解します。

<通常の通信>

3ペアで12スロットがいっぱいになり、4ペア目は通信ができない。

<ネットワークコーディングを使うと>

ここまでで12スロット。4ペアすべてが通信できた!

IoT時代のマストな技術に

ネットワークコーディングがあれば、僕らのメッセージはすぐ送れたはず……。実用化はまだなんですか?
まだなんだよね。そこについて詳しくは……、野口先生、お願いします!

実用化のためにはクリアすべき問題がまだいくつもあります。中でも現実的な面で壁となるのは、糸電話でシミュレーションしてもらったような形でネットワークコーディングを行うためには、すべての基地局に、符号化のための新たな設備導入が必要であることです。その点を考えると、また別の通信形態である『アドホックネットワーク』の方で、先にネットワークコーディングが実用化されるのではないかと考えています
アドホックネットワーク?
スマートフォンなりの端末が、基地局を介さずに互いに直接つながってネットワークを形成する方法です。ゲーム機が1対1で通信するのはこの方法の一種ですね。アドホックネットワークは、3台以上の端末ではまだ解決すべき技術課題が多くて研究開発途上ですが、いま話題のIoTが普及するためには必須です。というのは、IoT、すなわち、あらゆるモノが直接ネットワークにつながる社会は、モノ同士が直接通信できなければその良さは発揮されないからです。しかし、実際にモノとモノが直接通信するようになれば、行き来する情報量は今とは比べ物にならないほど莫大になり、従来の通信方法ではすぐにパンクしてしまうでしょう。そこで、ネットワークコーディングが必要になるのです。ね、吉田くん?

はい。ちょうど自分の修士論文に関わる話ですね。で、なぜ、アドホックネットワークの方がネットワークコーディングを実現しやすそうかといえば、技術さえできてしまえば、各端末にネットワークコーディングのアプリを入れるだけで実現可能で、大きな投資は必要ないためです。ただ、この場合、ネットワーク内の端末の一つが、先の基地局のような、符号化する役割を担う必要があります。その端末は、できるだけ多くの他の端末とやりとりしやすい位置にある必要がありますが、端末同士は常に動いているため、その役割を果たす端末が時々刻々変わるような仕組みが必要です。そのためにどう符号化、復号化を行うのがベストか、その方法も複雑で、そんな話を僕は修士論文で……。あ、もう論文に戻らないと!
吉田さん、ありがとうございました!
アドホックネットワークの早期実現のためにも、論文がんばってくださいね!
立命館大学 情報理工学部

おすすめ記事