(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-08-09
(45)【発行日】2022-08-18
(54)【発明の名称】通信システム、通信装置、プログラム、及び処理方法
(51)【国際特許分類】
H04W 40/28 20090101AFI20220810BHJP
H04W 84/18 20090101ALI20220810BHJP
【FI】
H04W40/28
H04W84/18
(21)【出願番号】P 2021035762
(22)【出願日】2021-03-05
【審査請求日】2021-03-16
(73)【特許権者】
【識別番号】501440684
【氏名又は名称】ソフトバンク株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】前迫 敬介
(72)【発明者】
【氏名】張 亮
(72)【発明者】
【氏名】熊倉 顕
【審査官】永井 啓司
(56)【参考文献】
【文献】中国特許出願公開第106304229(CN,A)
【文献】特表2007-528619(JP,A)
【文献】米国特許出願公開第2019/0312784(US,A1)
【文献】中国特許出願公開第106330536(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04B 7/24- 7/26
H04W 4/00-99/00
(57)【特許請求の範囲】
【請求項1】
コントローラと、
複数の通信装置と
を備え、
前記複数の通信装置のそれぞれは、
リンクを確立している他の通信装置である隣接ノード
に、自装置の隣接ノードの隣接ノード情報を含むアドホックルーティングにおける
Helloパケットを
送信する送信部と、
前記隣接ノードから前記Helloパケットを受信した場合に、自装置の
前記隣接ノード情報の管理処理を実行し、前記隣接ノードに関する情報を含む通知情報を前記コントローラに送信する処理機能部
であって、前記隣接ノードから受信した、前記隣接ノードの隣接ノード情報を含む前記Helloパケットに含まれる前記隣接ノードの前記隣接ノード情報に自装置が含まれない場合、前記通知情報を前記コントローラに送信し、含まれる場合、前記通知情報を前記コントローラに送信しない処理機能部と
を有する、通信システム。
【請求項2】
前記アドホックルーティングは、リアクティブ型のアドホックルーティングである、請求項1に記載の通信システム。
【請求項3】
前記コントローラは、集中経路制御のための通信プロトコルに準拠している、請求項1
又は2に記載の通信システム。
【請求項4】
前記コントローラは、OpenFlowに準拠しており、前記複数の通信装置に対するトポロジ情報収集のための制御パケットの送信を行わない、請求項1から
3のいずれか一項に記載の通信システム。
【請求項5】
前記コントローラは、
前記複数の通信装置のそれぞれから受信した前記通知情報に基づいて、前記複数の通信装置によって構成されているネットワークのトポロジを特定するトポロジ特定部
を有する、請求項1から
4のいずれか一項に記載の通信システム。
【請求項6】
通信装置であって、
リンクを確立している他の通信装置である隣接ノード
に、自装置の隣接ノードの隣接ノード情報を含むアドホックルーティングにおける
Helloパケットを
送信する送信部と、
前記隣接ノードから前記Helloパケットを受信した場合に、自装置の
前記隣接ノード情報の管理処理を実行し、前記隣接ノードに関する情報を含む通知情報をコントローラに送信する処理機能部
であって、前記隣接ノードから受信した、前記隣接ノードの隣接ノード情報を含む前記Helloパケットに含まれる前記隣接ノードの前記隣接ノード情報に自装置が含まれない場合、前記通知情報を前記コントローラに送信し、含まれる場合、前記通知情報を前記コントローラに送信しない処理機能部と
を備える、通信装置。
【請求項7】
コンピュータを、請求項
6に記載の通信装置として機能させるためのプログラム。
【請求項8】
通信装置によって実行される処理方法であって、
前記通信装置がリンクを確立している他の通信装置である隣接ノード
に、自装置の隣接ノードの隣接ノード情報を含むアドホックルーティングにおける
Helloパケットを
送信する送信ステップと、
前記隣接ノードから前記Helloパケットを受信した場合に、前記通信装置の
前記隣接ノード情報の管理処理を実行し、前記隣接ノードに関する情報を含む通知情報をコントローラに送信する送信ステップ
であって、前記隣接ノードから受信した、前記隣接ノードの隣接ノード情報を含む前記Helloパケットに含まれる前記隣接ノードの前記隣接ノード情報に自装置が含まれない場合、前記通知情報を前記コントローラに送信し、含まれる場合、前記通知情報を前記コントローラに送信しない送信ステップと
を備える、処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、通信装置、プログラム、及び処理方法に関する。
【背景技術】
【0002】
特許文献1には、コントローラとスイッチとの間の通信に用いられるプロトコルとして、OpenFlowを用いたSDN(Software Defined Networking)コントローラが記載されている。
[先行技術文献]
[特許文献]
[特許文献1]特開2017-163383号公報
【発明の概要】
【0003】
本発明の一実施の態様によれば、通信システムが提供される。通信システムは、コントローラと、複数の通信装置とを備えてよい。複数の通信装置のそれぞれは、リンクを確立している他の通信装置である隣接ノードからアドホックルーティングにおける制御パケットを受信した場合に、自装置の隣接ノード情報の管理処理を実行し、隣接ノードに関する情報を含む通知情報を前記コントローラに送信する処理機能部を有してよい。
【0004】
上記制御パケットは、Helloパケットであってよい。上記アドホックルーティングは、リアクティブ型のアドホックルーティングであってよい。上記処理機能部は、上記隣接ノードから受信した、上記隣接ノードの隣接ノード情報を含む上記制御パケットに基づいて、上記通知情報を上記コントローラに送信するか否かを判定してよい。上記処理機能部は、上記隣接ノードから受信した上記制御パケットに含まれる上記隣接ノードの上記隣接ノード情報に自装置が含まれない場合、上記通知情報を上記コントローラに送信し、含まれる場合、上記通知情報を上記コントローラに送信しなくてよい。上記複数の通信装置のそれぞれは、隣接ノードに、上記制御パケットを送信する送信部を有してよい。上記送信部は、自装置の上記隣接ノード情報を含む上記制御パケットを隣接ノードに送信してよい。上記コントローラは、集中経路制御のための通信プロトコルに準拠していてよい。上記コントローラは、OpenFlowに準拠しており、上記複数の通信装置に対するトポロジ情報収集のための制御パケットの送信を行わなくてよい。上記コントローラは、上記複数の通信装置のそれぞれから受信した上記通知情報に基づいて、上記複数の通信装置によって構成されているネットワークのトポロジを特定するトポロジ特定部を有してよい。
【0005】
本発明の一実施態様によれば、通信装置が提供される。通信装置は、リンクを確立している他の通信装置である隣接ノードからアドホックルーティングにおける制御パケットを受信した場合に、自装置の隣接ノード情報の管理処理を実行し、隣接ノードに関する情報を含む通知情報をコントローラに送信する処理機能部を備えてよい。
【0006】
本発明の一実施態様によれば、コンピュータを、上記通信装置として機能させるためのプログラムが提供される。
【0007】
本発明の一実施態様によれば、通信装置によって実行される処理方法が提供される。処理方法は、通信装置がリンクを確立している他の通信装置である隣接ノードからアドホックルーティングにおける制御パケットを受信した場合に、通信装置の隣接ノード情報の管理処理を実行し、隣接ノードに関する情報を含む通知情報をコントローラに送信する送信ステップを備えてよい。
【0008】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0009】
【
図2】本実施形態に係る通信システム10における処理について説明するための概念図である。
【
図3】本実施形態に係る通信システム10における処理について説明するための概念図である。
【
図4】SDNコントローラ100の構成の一例を概略的に示す。
【
図5】SDNスイッチ200の構成の一例を概略的に示す。
【
図6】SDNスイッチ200による処理の流れの一例を概略的に示す。
【
図7】SDNコントローラ100の機能構成の一例を概略的に示す。
【
図8】SDNスイッチ200の機能構成の一例を概略的に示す。
【
図9】SDNコントローラ100又はSDNスイッチ200として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。
【発明を実施するための形態】
【0010】
複数のSDNスイッチによる無線メッシュネットワークをSDNコントローラによって集中制御(経路制御等)する無線メッシュSDNが知られている。SDNを実現するプロトコルとして、OpenFlowが知られている。OpenFlowにおいて、各SDNスイッチは、ノード・リンク情報をSDNコントローラへ送信する。SDNコントローラは、複数のSDNスイッチから受信した情報を用いて、ネットワークトポロジを把握し、経路制御に利用する(SDNコントローラからSDNスイッチに経路を配布したりする)。SDNスイッチは、SDNコントローラへの接続経路を常に(起動時やトポロジ変更時も)知っておく必要がある。SDNコントローラ障害時にもSDNスイッチ間疎通を実現する必要がある。そのような課題に対して、アドホックルーティング(例えば、AODV(Ad hoc On-Demand Distance Vector)等)の併用が考えられる。アドホックルーティングによって、自律分散処理により各SDNスイッチにてバックアップ経路を保持することができる。このような併用時の課題として、制御パケットによるオーバヘッドの増加が想定される。本実施形態に係る通信システム10は、このような課題の解決に貢献可能な技術を提供する。通信システム10は、コントローラと、コントローラの制御対象である複数の通信装置とを備える。コントローラは、集中経路制御のための通信プロトコルに準拠していてよい。
【0011】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
図1は、通信システム10の一例を概略的に示す。
図1に示す例において、通信システム10は、SDNコントローラ100と、複数のSDNスイッチ200とを備える。SDNコントローラ100は、コントローラの一例であり、SDNスイッチ200は、通信装置の一例である。
【0013】
SDNスイッチ200は、他のSDNスイッチ200と無線リンクを確立可能であれば、どのような装置であってもよい。SDNスイッチ200は、例えば、HAPS(High Altitude Platform Station)に搭載される通信装置であってよく、例えば、ハードウェア型のスイッチやソフトウェア型のスイッチであってよい。SDNスイッチ200は、例えば、ドローン等の無人航空機に搭載される通信装置であってよく、例えば、ハードウェア型のスイッチやソフトウェア型のスイッチであってよい。SDNスイッチ200は、スマートフォン等の携帯電話、タブレット端末、及びPC(Personal Compuer)等であってもよい。SDNスイッチ200は、通信装置の一例であってよい。
【0014】
ここでは、通信システム10が、OpenFlowに準拠し、アドホックルーティングを併用する場合について説明する。通信システム10が用いるアドホックルーティングは、リアクティブ型のアドホックルーティングであってよい。ここでは、通信システム10がAODVを用いる場合を主に例に挙げて説明するが、通信システム10は、DSR(Dynamic Source Routing)等の他のリアクティブ型のアドホックルーティングを用いてもよい。
【0015】
通常、このような併用によって、SDNスイッチ200は、SDNコントローラ100が経路探索アルゴリズム(ex.ダイクストラ法)に従って計算し、OpenFlowに従って配信した経路表と、アドホックルーティングにより定義された経路表とを用いることができる。SDNコントローラ100が経路探索アルゴリズム(ex.ダイクストラ法)に従って計算し、OpenFlowに従って配信した経路表は、トポロジ変更やコントローラ障害時には無効となる可能性があるが、アドホックルーティングにより定義された経路表をバックアップ経路として利用することができる。しかし、何も工夫することなくOpenFlowとアドホックルーティングとを併用すると、制御パケットによるオーバヘッドの増加が問題となり得る。
【0016】
図2は、本実施形態に係る通信システム10における処理について説明するための概念図である。既知のOpenFlowでは、例えば、複数のSDNスイッチ200のそれぞれが、SDNコントローラ100からのLLDP(Link Layer Discovery Protocol)パケット送信命令によって、リンクを確立している他のSDNスイッチ200である隣接ノードに、LLDPパケットを定期的に送信し、LLDPパケットを受信したSDNスイッチ200はその情報をSDNコントローラ100に報告する。また、既知のAODVでは、複数のSDNスイッチ200のそれぞれが、隣接ノードにHelloパケットを定期的に送信し、複数のSDNスイッチ200のそれぞれは、受信したHelloパケットによって自身の隣接ノードを把握する。OpenFlowとAODVを単に併用すると、LLDPパケットの転送と、Helloパケットの送信との両方が実施されることになり、2種の制御パケット利用によってオーバヘッドが大きくなる。
【0017】
本実施形態に係る通信システム10は、LLDPパケットのような、OpenFlowにおけるトポロジ情報収集のための制御パケットを利用せずに、SDNスイッチ200がHelloパケットを受信したときにSDNコントローラ100に通知情報を送信するように構成することによって、SDNコントローラ100がトポロジを把握できるようにする。これにより、オーバヘッドを削減することができる。
【0018】
図3は、本実施形態に係る通信システム10における処理について説明するための概念図である。ここでは、通信システム10が、
図2で説明した構成に対して、更なるオーバヘッド削減を実現する構成を有する場合について説明する。
【0019】
図2に示す構成を採用することによって、例えば、SDNスイッチ200のb(スイッチbと記載する場合がある。)からSDNスイッチ200のa(スイッチaと記載する場合がある。)へのHelloパケット(についての通知情報をSDNコントローラ100に送信すること)によって、SDNコントローラ100は、スイッチaとスイッチbとの間のリンクを認識する。ここで、何も工夫しないとスイッチaからスイッチbへもHelloパケットが送信されることになるが、SDNコントローラ100は、スイッチaとスイッチbとの間のリンクを認識済みであるため、Helloパケット(についての通知情報をSDNコントローラ100へ送信する処理)が無駄になり得る。すなわちこの場合、スイッチbからSDNコントローラ100への通知情報の送信は必要ないことになる。
【0020】
本実施形態に係る通信システム10では、Helloパケットを拡張し、SDNスイッチ200が、自身の隣接ノードの情報を含むHelloパケットを隣接ノードに送信するようにする。そして、Helloパケットを受信したSDNスイッチ200が、Helloパケットに含まれる隣接ノード情報に自装置が含まれる場合には、SDNコントローラ100への通知情報の送信を行わないようする。これにより、更なるオーバヘッド削減を実現することができる。
【0021】
図4は、SDNコントローラ100の構成の一例を概略的に示す。SDNコントローラ100は、通信部102、OpenFlow処理部104、トポロジ特定部106、トポロジ格納部108、及び転送ルール格納部110を備える。
【0022】
通信部102は、複数のSDNスイッチ200のそれぞれと通信する。通信部102は、複数のSDNスイッチ200によって構成されているメッシュネットワークを介して、複数のSDNスイッチ200のそれぞれと通信してよい。
【0023】
OpenFlow処理部104は、OpenFlowに関する処理を実行する。OpenFlow処理部104は、SDNスイッチ200によって送信された通知情報を通信部102が受信した場合に、通知情報をトポロジ特定部106に送信する。
【0024】
トポロジ特定部106は、複数のSDNスイッチ200によって送信された通知情報を用いて、複数のSDNスイッチ200によって構成されているネットワークのトポロジを特定する。トポロジ格納部108は、トポロジ特定部106によって特定されたトポロジを格納する。OpenFlow処理部104は、トポロジ特定部106によって特定されたトポロジに基づいて経路制御を実行してよい。OpenFlow処理部104は、トポロジ特定部106によって特定されたトポロジに基づいて転送ルールを生成してよい。転送ルール格納部110は、OpenFlow処理部104によって生成された転送ルールを格納する。OpenFlow処理部104は、転送ルールを複数のSDNスイッチ200のそれぞれに送信してよい。
【0025】
図5は、SDNスイッチ200の構成の一例を概略的に示す。SDNスイッチ200は、通信部202、アドホックルーティング処理部206、隣接ノード情報格納部208、OpenFlow処理部210、及び転送ルール格納部212を備える。
【0026】
通信部202は、SDNコントローラ100と通信する。通信部202は、他のSDNスイッチ200と通信する。
【0027】
アドホックルーティング処理部206は、アドホックルーティングに関する処理を実行する。アドホックルーティング処理部206は、隣接ノードに対して、アドホックルーティングにおける制御パケットを送信してよい。アドホックルーティング処理部206は、例えば、予め定められた条件に従って、隣接ノードにHelloパケットを送信する。アドホックルーティング処理部206は、例えば、予め定められた周期に従って、定期的にHelloパケットを隣接ノードに送信する。
【0028】
アドホックルーティング処理部206は、隣接ノード情報格納部208が格納している隣接ノード情報を管理する。隣接ノード情報は、隣接ノードとして登録したSDNスイッチ200を識別可能な識別情報を含む。識別情報は、SDNスイッチ200を識別可能であればどのような情報であってもよい。例えば、識別情報は、MACアドレスや、MACアドレスに基づいて生成されたスイッチID等である。
【0029】
アドホックルーティング処理部206は、例えば、他のSDNスイッチ200からHelloパケットを受信した場合であって、隣接ノード情報格納部208に格納されている隣接ノード情報に、送信元のSDNスイッチ200が登録されていない場合、当該SDNスイッチ200を隣接ノード情報に登録する。また、アドホックルーティング処理部206は、例えば、隣接ノード情報に登録されているSDNスイッチ200のそれぞれについて、Helloパケットを定期的に受信しているか否かを確認する。アドホックルーティング処理部206は、例えば、隣接ノード情報に登録されているSDNスイッチ200から、予め定められた期間の間、Helloパケットを受信しなかった場合に、当該SDNスイッチ200の登録を解除する。
【0030】
OpenFlow処理部210は、OpenFlowに関連する処理を実行する。OpenFlow処理部210は、SDNコントローラ100から転送ルールを受信した場合に、転送ルール格納部212に格納したり、転送ルール格納部212にすでに転送ルールが格納されている場合には、転送ルールを更新したりする。OpenFlow処理部210は、転送ルール格納部212に格納されている転送ルールに従って、データの送信先やデータの中継先を判断し、データ転送を行う。
【0031】
図6は、SDNスイッチ200による処理の流れの一例を概略的に示す。SDNスイッチ200は、少なくとも1つの他のSDNスイッチ200とリンクを確立している場合に、当該処理を実行してよい。
【0032】
ステップ(ステップをSと省略して記載する場合がある。)102では、SDNスイッチ200が、自身の隣接ノード情報を含むHelloパケットを他のSDNスイッチ200に送信する。S104では、SDNスイッチ200が、他のSDNスイッチ200から、当該他のSDNスイッチ200の隣接ノード情報を含むHelloパケットを受信する。
【0033】
S106では、SDNスイッチ200が、S104において受信したHelloパケットの送信元を隣接ノードとして登録する。S108では、SDNスイッチ200が、S104において受信したHelloパケットの送信元が自身を隣接ノードとして登録済であるか否かを判定する。SDNスイッチ200は、Helloパケットに含まれる隣接ノード情報に自身が含まれる場合、登録済みであると判定し、含まれない場合、登録済みでないと判定する。登録済みであると判定した場合、S102に戻り、登録済みでないと判定した場合、S110に進む。
【0034】
S110では、SDNスイッチ200が、S104において受信したHelloパケットをSDNコントローラ100に転送する。SDNコントローラ100は、受信したHelloパケットからトポロジ情報を計算する。
【0035】
図7は、SDNコントローラ100の機能構成の一例を概略的に示す。SDNコントローラ100は、通信部112、通知情報取得部114、トポロジ特定部116、トポロジ格納部118、転送ルール生成部120、及び転送ルール格納部122を備える。
【0036】
通信部112は、複数のSDNスイッチ200のそれぞれと通信する。通信部112は、複数のSDNスイッチ200によって構成されているメッシュネットワークを介して、複数のSDNスイッチ200のそれぞれと通信してよい。通信部112は、通信部102によって実現されてよい。
【0037】
通知情報取得部114は、通信部112がSDNスイッチ200から受信した通知情報を取得する。通知情報取得部114は、取得した通知情報をトポロジ特定部106に送信する。通知情報取得部114は、OpenFlow処理部104によって実現されてよい。
【0038】
トポロジ特定部116は、複数のSDNスイッチ200のそれぞれから受信した通知情報に基づいて、複数のSDNスイッチ200によって構成されているネットワークのトポロジを特定する。トポロジ特定部116は、トポロジ特定部106によって実現されてよい。
【0039】
トポロジ格納部118は、トポロジ特定部116によって特定されたトポロジを格納する。トポロジ格納部118は、トポロジ格納部108によって実現されてよい。
【0040】
転送ルール生成部120は、トポロジ格納部118に格納されているトポロジに基づいて、転送ルールを生成する。転送ルール生成部120は、OpenFlow処理部104によって実現されてよい。転送ルール格納部122は、転送ルール生成部120によって生成された転送ルールを格納する。通信部112は、転送ルール生成部120によって生成された転送ルールを、複数のSDNスイッチ200のそれぞれに送信してよい。
【0041】
図8は、SDNスイッチ200の機能構成の一例を概略的に示す。SDNスイッチ200は、格納部220、通信部230、及び処理機能部240を備える。
【0042】
格納部220は、各種情報を格納する。格納部220は、例えば、隣接ノード情報を格納する。格納部220は、例えば、転送ルールを格納する。
【0043】
通信部230は、リンク確立部232、Helloパケット送信部234、及び転送ルール受信部236を有する。リンク確立部232は、他のSDNスイッチ200とリンクを確立する。
【0044】
Helloパケット送信部234は、リンク確立部232が無線リンクを確立した他のSDNスイッチ200に対して、予め定められた条件に従ってHelloパケットを送信する。Helloパケット送信部234は、例えば、予め定められた周期で定期的にHelloパケットを他のSDNスイッチ200に対して送信する。Helloパケット送信部234は、格納部220に格納されている隣接ノード情報を含むHelloパケットを他のSDNスイッチ200に対して送信してもよい。Helloパケット送信部234は、アドホックルーティング処理部206によって実現されてよい。
【0045】
転送ルール受信部236は、SDNコントローラ100から転送ルールを受信する。転送ルール受信部236は、受信した転送ルールを格納部220に格納する。転送ルール受信部236は、OpenFlow処理部210によって実現されてよい。通信部230は、格納部220に格納した転送ルールに従って、データの送信先や、データの中継先を判断し、データ転送を行う。
【0046】
処理機能部240は、管理処理実行部242及び通知情報送信部244を有する。管理処理実行部242は、リンクを確立している他のSDNスイッチ200である隣接ノードからアドホックルーティングにおける制御パケットを受信した場合に、自装置の隣接ノード情報の管理処理を実行する。当該制御パケットは、隣接関係を確認するためのものであれば、どのようなものであってもよい。当該制御パケットは、例えば、Helloパケットである。
【0047】
管理処理実行部242は、例えば、制御パケットの送信元のSDNスイッチ200が隣接ノード情報に登録されていない場合、当該SDNスイッチ200を隣接ノード情報に登録する。また、管理処理実行部242は、例えば、隣接ノード情報に登録されているSDNスイッチ200について、制御パケットを定期的に受信しているか否かを確認する。管理処理実行部242は、例えば、隣接ノード情報に登録されているSDNスイッチ200から、予め定められた期間の間、制御パケットを受信しなかった場合に、当該SDNスイッチ200の登録を解除する。管理処理実行部242は、アドホックルーティング処理部206によって実現されてよい。
【0048】
通知情報送信部244は、通知情報をSDNコントローラ100に送信する。通知情報送信部244は、例えば、管理処理実行部242によって、SDNスイッチ200が隣接ノード情報に登録された場合に、当該SDNスイッチ200が隣接ノードになったことを通知する通知情報をSDNコントローラ100に送信する。また、通知情報送信部244は、例えば、管理処理実行部242によって、SDNスイッチ200の登録が解除された場合に、当該SDNスイッチ200が隣接ノードでなくなったことを通知する通知情報をSDNコントローラ100に送信する。通知情報送信部244は、アドホックルーティング処理部206又はOpenFlow処理部210によって実現されてよい。
【0049】
通知情報送信部244は、隣接ノードから受信した、隣接ノードの隣接ノード情報を含む制御パケットに基づいて、通知情報をSDNコントローラ100に送信するか否かを判定してもよい。例えば、通知情報送信部244は、隣接ノードから受信した制御パケットに含まれる隣接ノードの隣接ノード情報に、自装置が含まれない場合、通知情報をSDNコントローラ100に送信し、含まれる場合、通知情報をSDNコントローラ100に送信しない。これにより、制御パケットを送信した隣接ノードが、自装置との隣接関係を既にSDNコントローラ100に通知しているにも関わらず、通知情報をSDNコントローラ100に送信してしまうことを防止できる。
【0050】
図9は、SDNコントローラ100又はSDNスイッチ200として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0051】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブは、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0052】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0053】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブは、プログラム又はデータをDVD-ROM等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0054】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0055】
プログラムは、DVD-ROM又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0056】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0057】
また、CPU1212は、記憶装置1224、DVDドライブ(DVD-ROM)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0058】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0059】
上で説明したプログラム又はソフトウエアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0060】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0061】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0062】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk(登録商標)、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0063】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0064】
上記実施形態では、SDNスイッチ200同士が無線リンクを確立して無線通信する場合を例に挙げて説明したが、これに限らない。通信システム10は、有線ネットワークを構築する複数の通信装置と、複数の通信装置を制御するコントローラとを備えてもよい。
【0065】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0066】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0067】
10 通信システム、100 SDNコントローラ、102 通信部、104 OpenFlow処理部、106 トポロジ特定部、108 トポロジ格納部、110 転送ルール格納部、112 通信部、114 通知情報取得部、116 トポロジ特定部、118 トポロジ格納部、120 転送ルール生成部、122 転送ルール格納部、200 SDNスイッチ、202 通信部、206 アドホックルーティング処理部、208 隣接ノード情報格納部、210 OpenFlow処理部、212 転送ルール格納部、220 格納部、230 通信部、232 リンク確立部、234 Helloパケット送信部、236 転送ルール受信部、240 処理機能部、242 管理処理実行部、244 通知情報送信部、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1230 ROM、1240 入出力チップ
【要約】 (修正有)
【課題】コントローラと、複数の通信装置とを備える通信システムにおいて、コントローラがトポロジ情報収集のための制御パケットの送信を行わず、複数の通信装置からコントローラへの通知に基づき、ネットワークのトポロジを特定する方法を提供する。
【解決手段】複数の通信装置200のそれぞれは、リンクを確立している他の通信装置である隣接ノードからアドホックルーティングにおける制御パケットを受信した場合に、自装置の隣接ノード情報の管理処理を実行し、隣接ノードに関する情報を含む通知情報をコントローラ100に送信する。コントローラは、複数の通信装置から受信した通知情報に基づきネットワークのトポロジを特定する。
【選択図】
図1