SCTP-CMT による複数経路伝送の実験
2008MI227

清水祐介

指導教員：後藤 邦夫

1

はじめにしたネットワークを経由して提供されている．SCTP は，この 2 つのパスを 1 つのアソシエーションとしてまとめることができる．

近年，インターネット上で音声や動画像配信が一般的になり，動画配信サービスが増え利用者も増加している．それに伴い一般的な回線速度は早くなったが，十分な帯域が 3.2 SCTP におけるイニシエーション確保できないことが問題となっている．特に単一経路によSCTP の接続の開始は，4way ハンドシェークによってるデータ転送では，インターネット利用が多い時間帯に遅行われる．TCP は通常 3way ハンドシェークであるが，延やパケット損失などの影響がでてしまう可能性がある．
SCTP は COOKIE を使用することで DoS(Denial of Serそこで OSI 参照モデルのトランスポート層プロトコルであvice) 攻撃を防ぐことができる．一方でトランスポート層る SCTP(Stream ControlTransmission Protocol)[4] を使の UDP プロトコルは明確なハンドシェークを省いたコ用することを提案する．また，SCTP に CMT(Concurrent
ネクションレスであり，送達確認を行わない極めて信頼Multipath Transfer)[3] という拡張機能を使用することで， 性の低いプロトコルである．以上のことから，本実験で複数経路でのデータ転送を可能にし，TCP よりも十分なは信頼性の高い SCTP を用いる．
帯域幅を得ることができる．
前述の SCTP-CMT を実装を実現している OS は 2012 3.3 SCTP-CMT
年 1 月現在 FreeBSD[2] のみである．よって本実験でのSCTP には，CMT という拡張機能が存在する．通常のOS は FreeBSD Ver9.0 を用いる．
SCTP では，複数経路を保持しても，一つのパスがプラ
これまでの研究は，UDP と TCP を用いた研究が主 イマリパスとなり同時に複数経路で転送することができであり，CMT-SCTP を用いた複数経路の実験は少ない． ない．しかし，CMT を使用することで，マルチホーミ
CMT-SCTP を用いることで，複数経路でのデータ転送 ングの機能を生かしデータを複数伝送することができる．
が可能となり，本来 TCP でのデータ転送よりも多くの CMT には，必要以上に再送してしまうという SCTP のデータ転送を可能にする．よって本研究では Goto’s IP 仕様によるデメリットも存在する．また，CMT には実Network Emulator(以下 GINE)[1] で仮想ネットワークを 装するために 5 つのポリシがあり，FreeBSD では RTX作成し，SCTP プロトコルでの複数経路実験を行う．そ SSTHRSH という再送ポリシに基づいて実装されている．
して，CMT を使用し SCTP を用いた場合 TCP よりもス SSTHRSH は再送パケットを，複数ある宛先の中で再送ループットが向上することを示す．
を行う際に最も大きな ssthresh (slow start threshold) の2

GINE の概要

本節では GINE の概要について説明する．GINE[1] とは南山大学の後藤邦夫教授が考案したネットワークエミュ
レータの一つである．GINE を使用することで，多数のルータやリンクから構築された様々なネットワークをエミュレートすることが可能である．各リンクに遅延やパケットロスなどの通信障害を設定することが可能で，バンド幅も自由に設定することができる．

3

SCTP について宛先へ送信するポリシである．

実験

4

この節では，本実験における実験環境について説明する．

4.1

FreeBSD，GINE ネットワーク構成についてPC を 3 台用意する．FreeBSD 9.0 をインストールした
PC を 2 台用意しそれぞれにクライアント，サーバの役割を持たせる．クライアント，サーバの間に GINE ネットワークを接続する（図 1 参照）．

SCTP は他のトランスポート層プロトコルより優れている機能がある．
3.1

SCTP におけるマルチホーミング

マルチホーミングとはサーバとクライアントとの通信路を多重化することで、いずれかの通信路が通信不能になった場合でも，ほかの通信路を介して通信を続行できる機能である．TCP コネクションは，クライアントとサーバーのそれぞれの 1 つのインターフェース間で作成される．確立されたコネクションは，各インターフェースにバインドされる．それに対して SCTP は，2 つのネットワーク・インターフェースが含まれる．2 つのパスが独立

図 1 FreeBSD，GINE ネットワーク構成

4.2

GINE 内ネットワーク構成

次に GINE 内のネットワーク構成とアドレス設定を図2 に示す．このネットワークは一台の PC で GINE ライ
ブラリを用いて構築する．

表 1 実験結果
実験結果

遅延なし

遅延あり

片道遅延

TCP
SCTP
SCTP-CMT

93.539Mbps
91.867Mbps
144.969Mbps

93.077Mbps
91.691Mbps
133.831Mbps

93.486Mbps
91.780Mbps
134.781Mbps

体についての情報と送信元および宛先のポートなどを伝える common header と，任意の数 chunk(パケットやウ
図 2 GINE ネットワーク構成
インドウの代わりとなるもの) からなる．また，SCTP は
1 つのパケットの中に複数の chunk が含まれることがある．TCP の header 長は 20byte であるのに対し，SCTP
4.3 socket 通信プログラムの header 長は common header の 12byte と，data chunk
FreeBSD に対応して複数経路にデータを送信するプログ を足した 28byte である．そのため，SCTP の方がペイラムを作成した．ソケットを作成するために使用したソケ ロードが短くなり，TCP が多くのデータ量を送信した
ット関数は sock = socket(AF INET, SOCK STREAM, と考えられる．また，すべての実験環境で SCTP-CMT
IPPROTO SCTP) である．
は 100Mbps 以上のデータ転送に成功した．単一経路では100Mbps しかデータ転送できないため，複数経路を通っ4.4 帯域，遅延の設定についてて 100Mbps 以上のデータを送信していることがわかる．
ping で普段使用している yahoo ページの遅延を測定し遅延を発生させた場合，片道遅延の場合も遅延なしの場た．測定結果によりネットワーク遅延は 11ms であった．
合よりはデータ送信量は劣るが 100Mbps 以上のデータ送
また普段使用している研究室 PC の帯域幅を iperf で測定信が出来，実験は成功といえる．SCTP-CMT を使用すする．測定結果により帯域幅は 113Mbps であった．以上ることにより，従来の TCP，SCTP よりも多くのデータより，帯域幅 113Mbps の経路を 2 経路用意し，その経路送信が可能となることがわかった．の往復遅延を 11ms とする．

4.5

スループット測定の実験手順

1. ネットワークエミュレータ GINE を起動する．
2. BSDhost1，BSDhost2 それぞれに GINE をネットワーク接続する．
3. FreeBSD-host2 サーバを起動し，ポート番号を設定する．
4. FreeBSD-host1 クライアントを起動する．IP アド
レス，ポート番号，送るデータ量をコマンドで設定する．
5. TCP，SCTP，SCTP-CMT それぞれのプロトコルでデータを流す． SCTP-CMT の場合 CMT 機能をコマンド入力で ON にする．

6

おわりに

本研究では単一経路でのデータ転送で通常 100Mbps しか送信できないデータを，複数経路で 100Mbps 以上のデータを送信した．当初ユーザ空間ライブラリを用いての実験を目的としていたが，実験環境が整わなかったた
め，FreeBSD を用いて SCTP-CMT の複数経路伝送の実験を行った．単一経路でのコネクションでは TCP の方がデータ転送速度は早かったが複数経路伝送でデータ転送した場合，一つの経路で障害が起きた場合は SCTP の方がデータ転送速度が早かった．DoS 攻撃にも強く安全かつデータを早く転送できる SCTP が今後トランスポート層の中でも重要なプロトコルになると考える．

参考文献

6. 遅延なしの場合，片道経路のみ遅延を発生する場合，[1] Goto, K.: Network Emulator with Virtual Host and
両方の経路で遅延を発生する場合の送れたデータ量
Packet Diversion, Cyber Journals: Multidisciplinaryを比較する．
Journals in Science and Technology, Journal of Selected Areas in Telecommunications (JSAT), Vol. 3,
5 実験結果・考察
No. 3 (2012).
この節では本実験における実験結果，考察を説明する．
[2] Iyengar,J.
R.:
CMT
Implementa5.1 実験結果
tioninBSD(accessedSep.
2012).
http://www.eecis.udel.edu/˜iyengar/dissertation/ch5実験の結果，表 1 のようになった．遅延なしの場合とimplementation.pdf.
遅延ありの場合を比較すると遅延ありの場合の方が送信データ量は少なく，遅延ありと片道遅延を比較すると片 [3] Iyengar, J. R., Shah, K. C. and Amer, P. D.: Concur道遅延の方がスループットが大きくなった．
rent Multipath Transfer Using SCTP Multihoming
5.2

考察

すべての実験環境の場合で SCTP より TCP が多くのデータ量を送信した．SCTP パケット構造は，パケット全(accessed Sep. 2012). http://citeseerx.ist.psu.edu.
[4] Stewart, R.: Stream Control Transmission Protocol(Sep. 2007). RFC4960.