2001年度森吉郎記念研究振興資金研究者育成費(修士)活動報告書
研究題目 |
次世代インターネット環境における
マルチキャスト環境構築支援に関する研究 |
所属 |
慶應義塾大学政策・メディア研究科修士課程2年 |
氏名 |
長橋賢吾/Kengo NAGAHASHI |
研究の背景・目的
近年のインターネットとくにユーザーアクセスラインの
広帯域化により、ストリーミングメディアが日常的に
用いられるようになった。たとえば、アーティストによる
ライブの模様をインターネットで中継する、Video On Demand
でアーカイブされてある映像コンテンツを家庭で受信
するなどがその代表例である。現在、上記にあげた
ストリームメディアの多くは、ユニキャストと呼ばれる
1対1を対象にしたストリーム配信が一般的である。
つまり、一つのサーバに対して、一つのクライアント
がセッションを確立して、ストリームを配信する
方法である。この場合では、クライアントの数(N)
が増加すれば、するほどサーバ側で処理すべき
ストリームが増加してしまう。これを効率的に
行うものとして、マルチキャストが提案されて
いる。マルチキャストは、送信元をベースに
配送木を生成し、その配送木にそって、ストリームを
配送する。つまり、クライアントの数がNであろう
とも、効率的に配送木を形成できれば、送信者
の送信すべきストリームは1本で済む。
こうしたマルチキャストであるが、現在
一般的に普及しているとはいえない。
その原因の一つとしてあげることができるのが
マルチキャストの煩雑さである。
送信者と受信者との間には、マルチキャスト
の経路制御をおこなうルータが存在するが、
(1)どのグループが(2)どの経路をたどって
(3)どの受信者に配送されるのかを
一元的に把握することは難しい。そこで
本研究では、マルチキャスト経路制御を
一元的に把握する機構を提案する。
本研究のアプローチ
マルチキャスト経路制御を一元的に把握するためには、
(1)いつ送信者がストリームをながし
(2)そのストリームは、現在どの受信者が受信しており
(3)途中のルータの状態はどのようになっているのか
を把握することが必要である。そこで本研究では、
上記の要求を満たすAPIを以下のように設計した。
--
hknw_grp = {snd, R1, R2, R3, Rcv}
-> number of hosts which joins designated topology
#define MAX_HOST_LEN 256
struct _mem_info {
unsigned int count;
caddr_t name[MAX_HOST_LEN];
} *mem_info ;
--
time_sync (hknw_grp);
time sync messages from monitor to members
from monitor
ret = snd_time_sync (mem_info, TIME_SYNC_SND)
from members
invoke_time_sync ();
{
return ret;
}
return code:
#define TIME_SYNC_SND 0x0010 /* from monitor */
#define TIME_SYNC_ACK 0x0020 /* from each members */
#define TIME_SYNC_NO_PERMISSION 0x0030 /* permission err */
#define TIME_SYNC_NO_NTPD 0x0040 /* no time server */
#define TIME_SYNC_ERR 0x0050 /* other err */
#define TIME_SYNC_TIMEOUT 10 /* wait 10 seconds then timeout */
#define TIME_SYNC_PORT "8432" /* port that binds for time sync */
--
invoke_pim (R1, r1.conf)
from monitor
ret = snd_invoke_pim (Router,conf_file_path)
from members
--
kill_pim (R1)
--
snd_group (fxp0, Snd, ff02::1, 100, 10, 100, start);
--
rcv_group (fxp0, Snd, ff02::1, 100, 10, 100, start);
このAPIは、(1)どのルータ、ホストがマルチキャスト
グループに属するのか定義(hknw_grp)、
(2)そのグループに属しているルータ、ホスト同士
で時間がずれていないように時刻同期をおこなう
(time_sync)、(3)ルータにPIM(Protocol Independent Multicast)
と呼ばれるマルチキャスト経路制御プログラムを
実行させる(invoke_pim)、(4)そのプログラムを
終了させる(kill_pim)、(5)送信者がグループに
対してストリームを流す(snd_grp)、(6)受信者が
グループに対してjoinする(rcv_group)
を定義している。こうしたAPIを定義し、
ルータ、ホストの情報を把握することによって
一元的な管理が可能になる。
成果物
このAPIの実装は、ここ(tgz形式)
からダウンロードすることができる。また、この方式について
解説した研究論文を現在執筆中である。
Kengo Nagahashi
Last modified: Thu Feb 28 16:27:12 JST 2002