(57)【要約】【課題】  通信の柔軟な最適制御を実現し、通信機能の性能を最大化させることができる装置および方法を提供する。【解決手段】  この装置は、他の通信装置と通信を行う通信装置であり、各々が異なる通信経路を使用して通信を行う複数の通信インタフェース２１と、通信装置および他の通信装置が利用可能な通信経路に関する情報を取得する情報取得部３０と、情報取得部３０により取得された通信経路に関する情報に基づき、他の通信装置との通信に使用する通信インタフェース２１を、複数の通信インタフェース２１から選択する制御部３１と、通信装置が通信に使用する通信インタフェース２１を、制御部３１により選択された通信インタフェース２１へ切り替える切替部とを含む。【選択図】  図３
2015122556.tif 000002
【特許請求の範囲】
【請求項１】
他の通信装置と通信を行う通信装置であって、
各々が異なる通信経路を使用して通信を行う複数の通信インタフェースと、
前記通信装置および前記他の通信装置が利用可能な通信経路に関する情報を取得する情報取得部と、
前記情報取得部により取得された前記通信経路に関する情報に基づき、前記他の通信装置との通信に使用する通信インタフェースを、前記複数の通信インタフェースから選択する制御部と、
前記通信装置が通信に使用する通信インタフェースを、前記制御部により選択された通信インタフェースへ切り替える切替部とを含む、通信装置。
【請求項２】
前記情報取得部は、前記通信経路に関する情報として、前記通信装置および前記他の通信装置が利用可能な周波数チャネル、もしくは前記通信経路の通信状況、またはその両方の情報を取得する、請求項１に記載の通信装置。
【請求項３】
前記制御部は、選択した前記通信インタフェースを前記他の通信装置に通知する、請求項１または２に記載の通信装置。
【請求項４】
前記複数の通信インタフェースの一部が、仮想インタフェースである、請求項１〜３のいずれか１項に記載の通信装置。
【請求項５】
前記制御部は、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇ技術において使用されるＯｐｅｎＦｌｏｗコントローラである、請求項１〜４のいずれか１項に記載の通信装置。
【請求項６】
前記制御部は、前記通信インタフェースを選択する処理を実行しないように動作を無効にすることが可能とされている、請求項１〜５のいずれか１項に記載の通信装置。
【請求項７】
前記他の通信装置へ送信する送信情報を出力し、前記他の通信装置から受信した受信情報を受け付ける情報処理部と、前記切替部に接続され、前記情報処理部から前記選択された通信インタフェースへ前記送信情報を、前記選択された通信インタフェースから前記情報処理部へ前記受信情報を転送する内部インタフェースとをさらに含む、請求項１〜６のいずれか１項に記載の通信装置。
【請求項８】
前記切替部は、物理スイッチまたは仮想スイッチである、請求項７に記載の通信装置。
【請求項９】
前記切替部は、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇ技術において使用されるＯｐｅｎＦｌｏｗスイッチである、請求項７に記載の通信装置。
【請求項１０】
他の通信装置と通信を行う通信装置により実行される通信方法であって、
前記通信装置および前記他の通信装置が利用可能な通信経路に関する情報を取得するステップと、
取得された前記通信経路に関する情報に基づき、各々が異なる通信経路を使用して通信を行う複数の通信インタフェースから、前記他の通信装置との通信に使用する通信インタフェースを選択するステップと、
前記通信装置が通信に使用する通信インタフェースを、選択された通信インタフェースへ切り替えるステップとを含む、通信方法。
【請求項１１】
第１の通信装置と第２の通信装置が通信を行う通信システムであって、
前記第１の通信装置および第２の通信装置は、
各々が異なる通信経路を使用して通信を行う複数の通信インタフェースを有し、
前記第１の通信装置は、
前記第１の通信装置および前記第２の通信装置が利用可能な通信経路に関する情報を取得する情報取得部と、
前記情報取得部により取得された前記通信経路に関する情報に基づき、前記第２の通信装置との通信に使用する通信インタフェースを、前記複数の通信インタフェースから選択する制御部と、
前記第１の通信装置が通信に使用する通信インタフェースを、前記制御部により選択された通信インタフェースへ切り替える切替部とを含む、通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信インタフェースを備え、少なくとも１つの通信インタフェースを選択して通信を行う通信装置、その通信方法およびその通信装置を含む通信システムに関する。
【背景技術】
【０００２】
通信装置間の通信は、有線で行う場合はＥｔｈｅｒｎｅｔ（登録商標）を使用し、無線で行う場合は３Ｇ／ＬＴＥ(Long Term Evolution)やＷｉ−Ｆｉで知られる無線ＬＡＮを使用して行われている。近年の技術進歩により、データサイズの大きい動画データ等の送受信が頻繁に行われ、また、通信装置の普及に伴い、多量のデータが送受信されるようになってきており、通信ネットワークの混雑や輻輳等の問題が顕著になってきている。
【０００３】
携帯型の通信装置やワイヤレス技術の普及により、無線通信が一般的になってきているが、ＬＴＥとＷｉ−Ｆｉの２．４ＧＨｚ／５ＧＨｚ帯両方の通信能力を有する通信装置において、その通信装置が非効率な通信動作をする場合がある。例えば、近距離で無線通信を行えるＷｉ−Ｆｉ通信環境があるのに、遠距離での無線通信を行うＬＴＥを使用する場合や、通信装置間において５ＧＨｚ帯を使用して通信できるのに、わざわざ混雑している２．４ＧＨｚ帯を使用して通信する場合等である。これらの通信動作は、パフォーマンス面、電波利用効率面において非効率である。
【０００４】
ところで、近年、ＳＤＮ(Software-Defined Network)と呼ばれる概念が注目を集めている。これは、ソフトウェアによる記述でネットワークの動作を定義しようというもので、その技術要素として、ネットワーク仮想化とＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇがある。ネットワーク仮想化は、物理ネットワーク機器、仮想ネットワーク部品、プロトコル技術の組み合わせによって物理的なネットワーク構成から論理的なネットワーク構成を仮想的に分離し、物理構成に縛られない柔軟なネットワーク構成を実現する技術である。
【０００５】
ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇは、通信をエンド・ツー・エンドのフローと捉え、データの解析、転送先判断、決定制御の部分であるコントロールプレーンと、パケットの物理的な伝送を担う部分であるデータプレーンとを分離する技術である。この技術では、コントロールプレーンの処理をつかさどるＯｐｅｎＦｌｏｗコントローラ(OFC)が転送ルールを指示し、データプレーンの処理を担うＯｐｅｎＦｌｏｗスイッチ(OFS)がＯＦＣからの指示に従ってパケットの転送を行う。より具体的には、ＯＦＣが追加、書き換えを行うＯＦＳがもつフローテーブルに従ってパケットの転送を行う。この仕組みを採用することにより、ネットワーク仮想化を制御するためのツールとして活用することが可能となる。
【０００６】
ＳＤＮ関連技術は、通信負荷が集中するＷｅｂ／クラウドデータセンタや通信キャリアバックボーン（大容量の通信回線網）等での活用が急拡大している。この技術の柔軟な最適化制御により、通信トラフィックの効率化、コストやエネルギーの低減等が実現されている。
【０００７】
上記のＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇという技術を採用したものとして、それぞれ異なる物理ネットワークインタフェース(NIC)装置と接続された複数の仮想スイッチの中から選択し、それをパケット送信に用いる技術が提案されている（特許文献１参照）。この技術では、ユーザが経路制御情報を設定しなくても、不具合の生じない物理ネットワークインタフェース装置を選択することができるようになっている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＳＤＮによる通信の最適化は、Ｗｅｂ／クラウドデータセンタ等の通信負荷が集中する側では進んでいるが、それと通信を行う端末側では、同様の仮想ネットワーク部品等を活用できる状況であるにもかかわらず、進んでいない。ワイヤレス化が進む端末の通信において、高解像度の動画データの伝送等、パケット通信量の急速な拡大が見込まれる中で、各端末の通信の最適化が行われないと、周波数共用型である無線通信の特性上、周辺の他の端末の通信にも悪影響を与えてしまう。これでは、各端末の通信性能を損なうことになる。
【０００９】
上記の特許文献１に記載の技術は、単に送信先に応じて送出先の物理ＮＩＣを切り替えるという動作のみを行い、端末双方の利用可能な周波数チャネルや通信路のキャパシティに応じて柔軟に最適制御を行うようになってはいない。このため、上記の各端末の通信性能を損なう可能性があるという問題を解消することはできない。
【００１０】
そこで、上記センタや他の端末等の他の通信装置との間の通信において、双方が利用可能な周波数チャネルや通信路のキャパシティに応じて柔軟に最適制御を実現し、通信機能の性能を最大化させることができる通信装置や方法等の提供が望まれていた。
【課題を解決するための手段】
【００１１】
本発明は、上記課題に鑑み、他の通信装置と通信を行う通信装置であって、各々が異なる通信経路を使用して通信を行う複数の通信インタフェースと、通信装置および他の通信装置が利用可能な通信経路に関する情報を取得する情報取得部と、情報取得部により取得された通信経路に関する情報に基づき、他の通信装置との通信に使用する通信インタフェースを、複数の通信インタフェースから選択する制御部と、通信装置が通信に使用する通信インタフェースを、制御部により選択された通信インタフェースへ切り替える切替部とを含む、通信装置が提供される。
【発明の効果】
【００１２】
本発明によれば、通信の柔軟な最適制御を実現し、通信機能の性能を最大化させることができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態の通信装置を含む通信システムの構成例を示した図。
【図２】図１に示す通信装置のハードウェア構成を示した図。
【図３】図１に示す通信装置の機能ブロック図。
【図４】通信装置に実装される通信機能を、階層構造に分割したモデルで例示した図。
【図５】通信装置に実装可能なＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇの概念について説明する図。
【図６】通信装置に実装可能なＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇの概念について説明する図。
【図７】通信装置の具体的な実装例を示した図。
【図８】通信システムにおける通信装置と他の通信装置の動作の例を示した図。
【図９】図７に示す通信装置により実行される処理の流れを例示したフローチャート。
【発明を実施するための形態】
【００１４】
図１は、互いに通信を行う２つの通信装置を含む通信システムの構成例を示した図である。２つの通信装置を区別するために、１つを通信装置１０とし、もう１つを通信相手となる他の通信装置１１として参照する。なお、この通信システムは、２つの通信装置に限らず、３つ以上の通信装置を含んで構成されていてもよい。通信装置１０と他の通信装置１１は、無線通信により接続を確立し、その通信において情報の送受信を行うことができるように構成されている。無線通信は、直接および無線ＬＡＮアクセスポイント(AP)１２を介して行うことができる。また、スマートフォン等で利用される基地局を介して行うことも可能である。
【００１５】
ＡＰ１２は、ＬＡＮ(Local Area Network)等のローカルネットワーク１３に接続されている。ローカルネットワーク１３は、インターネット等のグローバルネットワーク１４に接続され、グローバルネットワーク１４にサーバ１５等の他の機器が接続されている。このため、通信装置１０や他の通信装置１１は、ＡＰ１２、ローカルネットワーク１３、グローバルネットワーク１４を介してサーバ１５にアクセスすることができる。これにより、サーバ１５が保持するデータをダウンロードしたり、サーバ１５へデータをアップロードしたり、サーバ１５に何らかの処理を実行させ、その結果を取得することができる。また、サーバ１５は、通信装置１０と他の通信装置１１との間の通信を制御するために用いることもできる。
【００１６】
通信装置１０と他の通信装置１１は、デスクトップＰＣ、ノートＰＣ、タブレットＰＣ、プリンタ、ＭＦＰ(Multi Function Peripheral)、デジタルカメラ、ゲーム機、スマートフォン等とすることができる。ただし、通信機能を備えるものであれば、いかなる機器であってもよい。したがって、通信装置１０と他の通信装置１１とは、同じノートＰＣ等の同じ機器であってもよいし、ノートＰＣとＭＦＰ等の異なる機器であってもよい。なお、図１では、通信装置１０および他の通信装置１１として、タブレット端末が使用されている。
【００１７】
通信装置１０と他の通信装置１１は、それらが備える通信機能を使用し、特定の周波数帯を利用して直接通信を行い、また、別の周波数帯を利用し、ＡＰ１２を介して通信を行うことができる。このように、通信装置１０と他の通信装置１１との間の通信では、複数の通信経路を使用して通信を行うことができるようになっている。
【００１８】
直接情報を送信する場合は、例えば、６０ＧＨｚという周波数帯のミリ波を使用し、通信装置１０が備える送信機から他の通信装置１１が備える受信機へ情報を送信することができる。ＡＰ１２を介して情報を送信する場合は、例えば、２．４ＧＨｚの周波数帯や５ＧＨｚの周波数帯を使用することができる。通信装置１０は、受信機を備え、他の通信装置１１は、送信機を備えており、他の通信装置１１が備える送信機から送信された情報を、直接またはＡＰ１２を介して通信装置１０が備える受信機により受信することができる。
【００１９】
ここで、送信機は、高周波信号を発生させる発信回路、その信号を増幅させる増幅回路、情報を高周波信号に乗せる変調回路、情報を乗せた高周波信号を電波として放射するアンテナとを備えることができる。また、受信機は、電波を受信するアンテナと、電波としてアンテナに入力された変調された高周波信号に同調してその信号を受信する同調回路、受信した信号を復調し、情報を取り出す変調回路とを備えることができる。
【００２０】
通信装置１０は、他の通信装置１１へ送信する送信情報および他の通信装置１１から受信する受信情報として、通信の転送単位であるパケットを送受信し、そのパケットの送受信により通信を行う。パケットには、このパケットの発信元と送信先のアドレス、このパケットの種類やユーザ情報等が含まれる。アドレスは、ＴＣＰ／ＩＰを使用した通信で機器を識別するために使用されるＩＰアドレス、機器に一意に割り当てられる物理アドレスであるＭＡＣアドレス等である。パケットの種類には、トークンパケット、データパケット、ハンドシェイクパケット等がある。トークンパケットは、コマンドとして発行したり、リード／ライトを要求したりするときに使用されるパケットである。データパケットは、データを送受信するためのパケットである。ハンドシェイクパケットは、データを受け取ったかどうかを示すためのパケットである。具体的には、受信成功を示すＡＣＫパケット、受信失敗を示すＮＡＫパケットがある。ユーザ情報は、ユーザ名やユーザＩＤ等である。
【００２１】
通信装置１０は、ポートスキャンを行う等して、自機の各ポートの能力やステータス等の情報を取得することができる。また、通信装置１０は、他の通信装置１１との通信において、他の通信装置１１の各ポートの能力やステータス等の情報も取得することができる。この情報の取得は、他の通信装置１１からの通知により取得してもよいし、他の通信装置１１へ要求して取得することも可能である。この情報は、通信装置１０および他の通信装置１１が利用可能な通信経路に関する情報であり、例えば、２．４ＧＨｚ帯等の周波数帯域に割り当てられた周波数チャネルや、その周波数帯域を使用した通信経路の通信状況等の情報を含むことができる。
【００２２】
通信装置１０は、取得した通信経路に関する情報に基づき、他の通信装置１１との通信において、パケットを、どの通信経路を使用して送受信するのが最適かを判断し、その最適な通信経路を使用して送受信を行うように通信インタフェースを切り替える。例えば、２．４ＧＨｚ帯より５ＧＨｚ帯の方が最適であれば、２．４ＧＨｚ帯を使用して通信を行う通信インタフェースから５ＧＨｚ帯を使用して通信を行う通信インタフェースへ切り替える。このとき、通信装置１０は、他の通信装置１１へも通知し、同じ通信経路を使用する通信インタフェースに切り替えさせる。
【００２３】
このように自動で切り替えることにより、近距離で無線通信を行えるＷｉ−Ｆｉ通信環境があれば、２．４ＧＨｚ帯や５ＧＨｚ帯を使用して、また、２．４ＧＨｚ帯が混雑していれば、５ＧＨｚ帯を使用して通信を行うことができる。このため、柔軟な最適制御を実現し、通信装置１０が備える通信機能の性能を最大化させることができる。
【００２４】
通信装置１０と他の通信装置１１は、主要なハードウェア構成および機能がほぼ同じであるため、ここでは、通信装置１０についてのみ、そのハードウェア構成および機能について説明する。図２は、通信装置１０のハードウェア構成の一例を示した図である。通信装置１０は、通信装置１０全体を制御するためのＣＰＵ２０と、ＣＰＵ２０により読み出されるプログラムが記憶される記憶装置と、他の通信装置１１等と有線や無線により通信を行う複数の通信インタフェース２１とを含んで構成される。複数の通信インタフェース２１の各々は、上述した送信機および受信機を備える送受信モジュール等とされる。
【００２５】
記憶装置は、読み出し専用のＲＯＭ２２と、ＣＰＵ２０が各種処理を行う際の作業領域を提供するＲＡＭ２３と、アプリケーションや各種データ等を記憶するためのＨＤＤ２４とを備える。ここではＨＤＤ２４を使用しているが、ＳＳＤ(Solid State Drive)を用いてもよい。また、通信装置１０は、入力ボタンや操作パネルといった入力装置２５および表示装置２６を備えることができる。通信装置１０は、これらの装置を互いに接続するバス２７と、バス２７と複数の通信インタフェース２１との間に設けられる切替手段としてのスイッチ２８とをさらに備えている。
【００２６】
通信装置１０は、ＣＰＵ２０によりそのパケットを送信するために使用する通信インタフェース２１を選択し、それをスイッチ２８に通知し、スイッチ２８がその選択した通信インタフェース２１へ切り替える。このとき、通信相手である他の通信装置１１へも通知し、同じ通信経路を提供する通信インタフェースへ切り替えさせる。その後、通信装置１０は、ＨＤＤ２４に記憶されたプログラムをＣＰＵ２０が読み出し実行することにより、所定の処理を行い、他の通信装置１１へ送信するパケットを生成する。パケットは、ユーザからの送信要求を受けて、そのプログラムを実行するＣＰＵ２０がスイッチ２８によってバス２７と接続されている１つの通信インタフェース２１へ送り、その通信インタフェース２１が他の通信装置１１へ送信する。
【００２７】
図３に示す機能ブロックを参照し、通信装置１０が備える機能について詳細に説明する。通信装置１０は、複数の通信インタフェース２１と、上記の通信経路に関する情報を取得する情報取得部３０と、通信に使用する通信インタフェース２１を選択する制御部３１と、選択された通信インタフェース２１へ切り替えるスイッチ２８とを含む。図３では、それらに加えて、各機能を実現するためのアプリケーションを実行する複数の情報処理部３２と、複数の情報処理部３２に接続される情報転送部としての内部インタフェース３３とを備えている。
【００２８】
複数の通信インタフェース２１は、通信相手の機器と各々が異なる通信経路を使用して通信を行う。通信経路は、例えば２．４ＧＨｚ帯、５ＧＨｚ帯、６０ＧＨｚ帯等の異なる周波数帯域の通信路等である。ここでは、無線通信における通信路のみを例示しているが、有線通信における通信路を含むことも可能である。
【００２９】
情報取得部３０は、通信装置１０および他の通信装置１１が利用可能な通信経路に関する情報を取得する。他の通信装置１１が利用可能な通信経路に関する情報は、専用の外部インタフェースまたは上記複数の通信インタフェースの１つを使用して他の通信装置１１との間で通信を確立し、その通信において他の通信装置１１からの通知等により取得することができる。通信インタフェースの１つを使用する場合は、デフォルト等により予め決められた通信インタフェースを使用することができる。これに限られるものではなく、その通信を開始する直前まで使用していた通信インタフェースを使用してもよい。
【００３０】
制御部３１は、情報取得部３０により取得された通信経路に関する情報に基づき、他の通信装置１１との通信に使用する通信インタフェース２１を選択する。近距離で無線通信を行えるＷｉ−Ｆｉ通信環境があれば、２．４ＧＨｚ帯や５ＧＨｚ帯を使用して通信を行う通信インタフェースを、２．４ＧＨｚ帯が混雑していれば、５ＧＨｚ帯を使用して通信を行う通信インタフェースを選択する。制御部３１は、通信において送受信するパケットの種類等も考慮して、通信インタフェース２１を選択することができる。例えば、ストリーミング用の映像や音声のデータを送信する場合、ストリーミング用インタフェースを選択することができる。
【００３１】
制御部３１は、取得された情報に基づき、まず、通信装置１０と通信相手である他の通信装置１１が通信を行う際に利用できる通信インタフェースを探す。探した通信インタフェースが１つだけである場合は、その通信インタフェースを選択する。一方、２以上の通信インタフェースが利用可能である場合、効率的に通信を行うために、通信状況が良好であるもの、もしくはより近距離通信が行えるもの、またはその両方を満たすものを選択する。これらの基準は、予め設定しておくことができ、制御部３１は、この基準に基づき判断することができる。この基準には、上記のようなパケットの種類等も含めておいてもよい。
【００３２】
情報取得部３０が取得する通信経路に関する情報としては、例えば、近距離で無線通信が行える環境があるかどうかを判断するために、周波数チャネルの情報を含むことができる。また、混雑しているかどうかを判断するために、通信経路の通信状況の情報を含むことができる。これらの情報は一例であり、最適な通信制御を実現できるのであれば、その他の情報を含むことも可能である。
【００３３】
情報処理部３２は、他の通信装置１１へ送信するパケットを生成し、内部インタフェース３３へ出力する。また、情報処理部３２は、他の通信装置１１からパケットを受信し、必要に応じて所定の処理を実行する。パケットが、任意の情報の表示要求であれば、情報処理部３２は、そのパケットを受信すると、当該任意の情報を表示する処理を実行する。内部インタフェース３３は、複数の情報処理部３２とスイッチ２８とに接続され、複数の情報処理部３２が出力したパケットをスイッチ２８へ転送し、通信インタフェース２１が受信したパケットを、所定の情報処理部３２へ転送する。
【００３４】
スイッチ２８は、それまで通信に使用している通信インタフェース２１を、制御部３１により選択された通信インタフェース２１へ切り替える。これにより、スイッチ２８は、内部インタフェース３３が転送するパケットを、その選択された通信インタフェース２１へ、また、その選択された通信インタフェース２１が受信したパケットを内部インタフェース３３へ転送することができる。
【００３５】
複数の通信インタフェース２１および内部インタフェース３３は、その全部がコネクタとソフトウェアドライバとから構成される物理インタフェースであってもよい。また、その一部が、１つの物理インタフェースを複数に見せ掛ける、または複数の物理インタフェースを１つに見せ掛ける仮想インタフェースであってもよい。スイッチ２８は、物理的にパケットの転送先や受信元を切り替える物理スイッチを用いることもできるし、１つの物理スイッチを複数のスイッチとして、また、複数の物理スイッチを１つのスイッチとして扱う仮想スイッチを用いることもできる。
【００３６】
図４を参照して、通信装置１０に実装される通信機能について説明する。図４は、その通信機能を階層構造に分割したモデルで例示した図である。このモデルは、ＯＳＩ(Open System Interconnection)参照モデルであり、第１層の物理層から第７層のアプリケーション層の７つの階層からなるモデルである。ＩＰパケットを交換する現状の通信方式の主流は、第３層のＩＰを共通資産とし、各階層で各インタフェースが定義され、個別に実装し、また、入れ替えを行うことができる水平分業モデルとなっている。ＩＰパケットベースのアプリケーションは、第４層のトランスポート層が規定するポートの概念で通信ピア同士のセッションを作り、各サービスのデータ通信を行っている。
【００３７】
サービスとしては、図４の第５層から第７層にかけて示されている、Ｗｅｂ、ＸＭＬ  Ｗｅｂサービス、メール、メッセージング、ファイル共有、ファイル転送等がある。これらのサービスを提供するアプリケーションは、第３層および第４層に示される、ＴＣＰ／ＩＰやＵＤＰ／ＩＰを使用している限り、それ以下の第１層や第２層の通信層を意識する必要はない。このため、Ｗｅｂやクラウドのサービス開発は、従来の電話交換網のような垂直統合モデルに比して加速することができている。通信装置１０も、基本的には、図４に示したＩＰパケットベースの通信アプリケーションを開発するための一般的なハードウェア／ソフトウェア構成とすることができる。
【００３８】
通信装置１０は、図２および図３に示したような複数の通信インタフェース２１を備えるだけではなく、それらを切り替えて使用する切替部としてのスイッチ２８を備える。そのスイッチ２８の一例として、ＯｐｅｎＦｌｏｗスイッチ（OFS）を用いることができる。また、ＩＰパケット通信アプリケーションもインタフェースを経由してＯＦＳのポートに接続し、必要に応じてＯｐｅｎＦｌｏｗコントローラ（OFC）も動作させることができる。
【００３９】
ＯＦＣは、ＯＦＳに対してＯｐｅｎＦｌｏｗプロトコルを使用して通信を行う。このＯｐｅｎＦｌｏｗプロトコルがもつポート状態通知やスイッチ制御機能等を活用することで、ＩＰパケット通信アプリケーションから独立した形で機器内部の仮想的な経路制御を柔軟に行うことができる。このため、通信装置１０にＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇ技術で使用されるＯＦＳ、ＯＰＣを実装することにより、通信インタフェースを柔軟かつ最適に選択し、通信装置１０の通信機能の性能を最大化させることができる。
【００４０】
ここで、図５および図６を参照して、通信装置１０に実装可能なＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇの概念について説明しておく。通信装置１０、他の通信装置１１やサーバ１５から送出されたＩＰパケットは、有線または無線通信における各中継装置を経由して目的の相手まで到達する。従来の方式では、図５（ａ）に示すように、各中継装置が経路制御を自立分散的に行い、パケットの転送先を決定している。すなわち、各スイッチ５０が経路制御とパケット転送機能の両方を備え、各スイッチ５０がパケットの転送先を決定する。このため、経路制御に関する情報は、各スイッチ５０が自己学習し、他のスイッチへ通知されないので固定的なものとなる。また、各スイッチ５０の機能については、機器ベンダーが開発した各種機能を利用しなければならず、カスタマイズすることはできない。
【００４１】
これに対し、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇでは、図５（ｂ）に示すように、スイッチ５０における経路制御機能が分離され、ＯＦＣ５１にその機能が実装される。このため、各スイッチ５０としての各ＯＦＳ５２は、パケット転送機能のみを備えることになる。経路制御に関する情報は、ＯＦＣ５１がすべて管理し、このＯＦＣ５１が、各ＯＦＳ５２の振る舞いを中央制御するので、より柔軟な制御が可能となっている。
【００４２】
このことは、図４に示したＯＳＩ参照モデルで言うと、第４層までの各種条件で自由に制御することが可能であることを示す。したがって、例えば、ＨＴＴＰ(HyperText Transfer Protocol)で一般的に使用されているＴＣＰポート８０番の通信であれば、経路を変えるという制御も可能となる。
【００４３】
図６に示す概念図を参照して、ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇの具体的な仕組み等について説明する。この技術では、図６（ａ）に示すように、ＯＦＣ５１と複数のＯＦＳ５２、５３を用いる。ＯＦＣ５１は、経路制御等の複雑な処理を担当し、ＯＦＳ５２、５３は、データを送る単位であるフレームの転送等の単純な処理のみを担当する。
【００４４】
ＯＦＣ５１は、ＯＦＳ５２、５３がもつフローテーブルの情報の追加、削除、変更を指示する。ＯＦＳ５２、５３は、このフローテーブルの情報に従って、フレームを転送する等の処理を行う。
【００４５】
フローテーブルは、図６（ｂ）に示すように、フレームの制御ルールを表すフローエントリーを含む。そのフローエントリーを識別するための構成要素と、それに対応する条件、統計情報、処理という３種類の情報とが含まれる。構成要素は、互いに識別できるように「フローエントリー１」、「フローエントリー２」等が入力されるフィールドである。条件は、ヘッダフィールドであり、通信を識別し、特定するために、図６（ｃ）に示すような情報が入力されるフィールドである。
【００４６】
統計情報は、条件に適合した通信がどのくらい発生し、どの程度処理したかを管理するフィールドである。処理は、フレームに対する処理を定義するフィールドである。処理としては、例えば、転送(Forward)、指定したキューに入れる(Enqueue)、廃棄(Drop)、指定したフィールドの値を書き換える(Modify-Field)等を挙げることができる。また、特別なグループ向けに予め指定した処理を実行(Group)、タグの追加や取り外し(Push-Tag、Pop-Tag)等も挙げることができる。さらに詳細に指定することもでき、上記の転送では、すべての物理ポートに転送、カプセル化してコントローラに送る、等を指定することができる。
【００４７】
条件は、図６（ｃ）に示す４つの階層（レイヤ１〜４）の情報およびメタデータを挙げることができる。レイヤ１の情報としては、スイッチの物理ポート、レイヤ２の情報としては、宛先のＭＡＣアドレス、送信元のＭＡＣアドレス、イーサネット（登録商標）の種別、仮想ＬＡＮ(VLAN)のＩＤ、仮想ＬＡＮの優先度がある。レイヤ３の情報としては、宛先のＩＰアドレス、送信元のＩＰアドレス、プロトコル番号、ＩＰパケットの優先度(ToS)があり、レイヤ４の情報としては、送信元ＴＣＰ／ＵＤＰポート番号、宛先ＴＣＰ／ＵＤＰポート番号がある。また、レイヤ２、３には、次のルーティング先を識別するためのＭＰＬＳ(Multi-protocol Label Switching)ラベルやＭＰＬＳトラフィッククラスも含むことができる。
【００４８】
実際に、このＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈｉｎｇを用いた通信装置１０の具体的な実装例を、図７に示す。通信装置１０において主機能を提供するアプリケーションは、ＩＰパケット通信アプリケーションプログラム７０〜７２であり、図４に示したＯＳＩ参照モデルでは、第３層以上で実現されるものである。ここでは、３つのＩＰパケット通信アプリケーションプログラム７０〜７２が示されているが、サービスに応じて、１つもしくは２つであってもよいし、４つ以上のプログラムを実装していてもよい。
【００４９】
ＩＰパケット通信アプリケーションプログラム７０〜７２は、外部通信向けのＩＰアドレスを保持しており、他の通信装置１１と通信を行う際は、このＩＰアドレスが使用される。ＩＰパケット通信アプリケーションプログラム７０〜７２は、図示しないＣＰＵにより実行されることで、図３に示した情報処理部３２として機能する。ＩＰパケット通信アプリケーションプログラム７０〜７２は、第２層以下を担うＩＰパケット通信内部インタフェース７３に接続され、このＩＰパケット通信内部インタフェース７３を使用してデータ通信を行う。このＩＰパケット通信内部インタフェース７３は、図３に示した内部インタフェース３３に相当するものである。
【００５０】
ＩＰパケット通信内部インタフェース７３は、図３に示したスイッチ２８として機能するＯＦＳ７４のポートＰ０に接続されている。ＯＦＳ７４の他のポートＰ１、Ｐ２には、ＩＰパケット通信外部インタフェース７５、７６が接続されている。
【００５１】
通信装置１０は、ＯＦＣプログラム７７と、ＯＦＣプログラム７７と通信するための専用のＯｐｅｎＦｌｏｗ外部インタフェース７８とを備えている。ＯＦＣプログラム７７は、ＣＰＵ２０により実行されて、図３に示した情報取得部３０や制御部３１として機能する。
【００５２】
ＯＦＳ７４および他の通信装置１１が備えるＯＦＳとＯＦＣプログラム７７との間で通信を行う場合、外部とのデータ通信とは分離されたＴＣＰ／ＩＰでの通信を必要とする。このため、この通信では、外部とのデータ通信で使用するＩＰアドレスとは異なるＯｐｅｎＦｌｏｗチャネル用のＩＰアドレスが一般に使用される。ＯＦＳ７４および他の通信装置１１が備えるＯＦＳとＯＦＣプログラム７７とが近傍にある場合、ＤＨＣＰ等により適宜アサインした「192.168.0.1」のようなローカルアドレスを使用することができる。この場合、ＩＰｖ６のローカルアドレスを使用することもできる。通信装置１０内で動作するＯＦＳ７４とＯＦＣプログラム７７とは、「127.0.0.1」のような内部Ｌｏｏｐｂａｃｋアドレスを使用して通信を行うことができる。
【００５３】
通信装置１０は、通信経路に関する情報を取得する際、ＯＦＣプログラム７７を実行し、ＯｐｅｎＦｌｏｗチャネル用のＩＰアドレス、ＯｐｅｎＦｌｏｗ外部インタフェース７８等を使用して通信を行い、その情報を取得することができる。
【００５４】
これらインタフェースやスイッチは、上記のように、すべてが物理インタフェースや物理スイッチであってもよいし、その一部が仮想インタフェースや仮想スイッチであってもよい。コストを考慮した場合、安価な一部を仮想インタフェースや仮想スイッチにすることが好ましい。また、通信パフォーマンスを向上させるために、データプレーン部分がハードウェアアクセラレーションされている構成であってもよい。スイッチは、ＮＡＴ(Network Address Translation)ルータのような、ローカルＩＰアドレスをグローバルＩＰアドレスに変換する機能をもつ構成とされていてもよい。
【００５５】
図８を参照して、通信システムにおいて実際に通信装置１０と他の通信装置１１がどのように動作するかについて説明する。通信システムは、図１に示したように、通信装置１０と、他の通信装置１１と、ＡＰ１２と、ローカルネットワーク１３と、グローバルネットワーク１４と、サーバ１５とを含んで構成されている。通信装置１０と他の通信装置１１は、ほぼ同じハードウェアおよびソフトウェア構成とされていて、図７に示した実装例とほぼ同様の構成とされている。
【００５６】
通信装置１０は、ＩＰパケット通信アプリケーションプログラム８０〜８２、ＯＦＣ８３、ＯＦＳ８４、仮想インタフェース８５〜８７、物理インタフェース８８、８９を備えている。ＩＰパケット通信アプリケーションプログラム８０〜８２は、ＯＦＳ８４に接続され、ＯＦＳ８４には、仮想インタフェース８６、８７が接続されている。ＯＦＳ８４は、内部Ｌｏｏｐｂａｃｋアドレスを使用してＯＦＣ８３と通信を行うことができるようになっている。また、ＯＦＣ８３は、仮想インタフェース８５と接続され、仮想インタフェース８５は、仮想インタフェース８６が接続される物理インタフェース８８に接続されている。仮想インタフェース８７は、物理インタフェース８９に接続されている。
【００５７】
物理インタフェース８８は、５ＧＨｚ帯を使用して通信を行う無線通信インタフェースであり、ＡＰ１２を介して他の通信装置１１やサーバ１５と通信を行うものとされている。物理インタフェース８９は、６０ＧＨｚ帯を使用して至近距離の直接通信を行う無線通信インタフェースであり、至近距離にある他の通信装置１１と直接通信を行うものとされている。
【００５８】
他の通信装置１１は、ＯＦＣを備えていないことを除き、通信装置１０と同様の、ＩＰパケット通信アプリケーションプログラム９０〜９２、ＯＦＳ９３、仮想インタフェース９４〜９６、物理インタフェース９７、９８を備える構成とされている。各要素の詳細については、通信装置１０の各要素と同様であるので、ここではその説明を省略する。
【００５９】
図８では、物理インタフェース８８、９７は、インターネット等の通常ＩＰパケット通信用に使用する無線物理インタフェースとされ、物理インタフェース８９、９８は、映像、音声広帯域ストリーミング通信用の無線物理インタフェースとされている。仮想インタフェース８５、９４は、ローカルＩＰをアサインし、ＯｐｅｎＦｌｏｗチャネル通信を行うインタフェースとされている。仮想インタフェース８６、９５は、グローバルＩＰアドレスをアサインし、企業内ＬＡＮといったローカルネットワーク１３や、インターネットサーバ等のサーバ１５にアクセスすることができるインタフェースとされている。
【００６０】
通信装置１０がストリーミングのためのコンテンツサーバとして動作し、他の通信装置１１がクライアント端末として動作する場合、通信装置１０のＯＦＳ８４が内部Ｌｏｏｐｂａｃｋアドレスを使用してＯＦＣ８３と接続を確立する。また、他の通信装置１１のＯＦＳ９３がＯｐｅｎＦｌｏｗチャネル用のＩＰアドレスを使用し、仮想インタフェース９４、ＡＰ１２、仮想インタフェース８５を介してＯＦＣ８３と接続を確立する。そして、ＯＦＳ８４およびＯＦＳ９３から各ポートの能力やステータス等の通信経路に関する情報を取得する。このときの通信経路が、図８において破線で示されている。
【００６１】
通信装置１０のＯＦＣ８３は、取得した情報に基づき、どの通信インタフェースを使用するかを選択する。この選択は、通信装置１０と他の通信装置１１の両方について行う。ＯＦＣ８３は、選択した通信インタフェースの情報を、ＯＦＳ８４およびＯＦＳ９３に対して通知し、その通信インタフェースへ切り替えさせる。図８では、通信装置１０から他の通信装置１１へ映像等のストリーミング配信を行うので、通信装置１０に対しては、仮想インタフェース８７、物理インタフェース８９へ切り替える。また、他の通信装置１１に対しては、仮想インタフェース９６、物理インタフェース９８へ切り替えさせる。これにより、一点鎖線で示されるような通信経路でストリーミング配信を行うことができる。
【００６２】
図８では、通信装置１０に実装されたＯＦＣ８３により通信経路の制御を行っているが、このＯＦＣ８３は、他の通信装置１１にも実装され、他の通信装置１１により制御を行ってもよい。また、この制御は、ＡＰ１２を介して通信可能なネットワークに接続されたサーバ１５やその他の機器の１つの機能として実装され、これらの機器により実行されてもよい。ただし、この場合、通信装置１０に実装されたＯＦＣ８３は、その動作が無効になるように、動作ＯＦＦに設定される。
【００６３】
サーバ１５やその他の機器が制御を行う場合、通信装置１０へのＯＦＣ８３の実装が不要と思われる。しかしながら、直接接続してストリーミングするＰＡＮ(Personal Area Network)のような接続形態では、通信装置１０と他の通信装置１１以外の第三の機器による制御を導入することは現実的ではない。このため、通信装置１０または他の通信装置１１のいずれか一方にＯＦＣに相当する機能モジュールを実装することが必要である。
【００６４】
図９は、通信装置１０により実行される処理の流れを例示したフローチャートである。ステップ９００からこの処理を開始し、ステップ９０５では、ＯＦＣ８３が、ＯＦＳ８４および他の通信装置１１が備えるＯＦＳ９３からの接続要求を待ち、接続要求を受信し、ＯＦＳ８４、９３との接続が確立したかどうかを判断する。ＯＦＳ８４は、内部Ｌｏｏｐｂａｃｋアドレスを使用して、ＯＦＳ９３は、ＯｐｅｎＦｌｏｗチャネル用のＩＰアドレスを使用して接続要求をＯＦＣ８３へ送信する。ステップ９０５の判断は、その接続が確立するまで繰り返される。
【００６５】
ステップ９１０では、その接続が確立すると、ＯＦＳ８４、９３が各ポートの能力やステータス等の通信経路に関する情報を、ＯｐｅｎＦｌｏｗの規定に沿ってＯＦＣ８３に通知する。これにより、ＯＦＣ８３は、その情報を取得する。この例では、映像等のストリーミング通信を行うことから、ステップ９１５では、取得した情報に、ストリーミング用インタフェースが存在するかどうかを判断する。
【００６６】
ステップ９１５でストリーミング用インタフェースが、通信装置１０と他の通信装置１１の双方にある場合、ステップ９２０へ進み、いずれか一方のみにある場合やいずれにもない場合は、ステップ９３５へ進む。ステップ９２０では、ストリーミング用インタフェースが無線リンクできるかどうかをスキャンするように要求する。すなわち、そのインタフェースが無線通信を行うことができるかどうかを調べるように要求する。この要求を受けて、任意のパケットを送受信し、実際に無線通信を行うことができるかどうかを確認することができる。
【００６７】
ステップ９２５では、そのスキャンにより充分な電波強度が確認されたかどうかを判断する。例えば、電波強度に対して任意の閾値を設け、その閾値より電波強度が大きいか否かにより判断することができる。確認された場合は、ステップ９３０へ進み、確認されない場合は、ステップ９３５へ進む。ステップ９３０では、ストリーミング用インタフェースの使用準備が整ったことを示すＲｅａｄｙフラグを有効にする。
【００６８】
ステップ９３５では、ストリーミング通信を実行させるための要求を発生させる。ステップ９４０では、ストリーミング用インタフェースのＲｅａｄｙフラグが有効かどうかを判断する。有効である場合、使用準備が整っているので、ステップ９４５へ進み、ＯＦＳ８４、９３に対してそれらが保持するフローテーブルに、ストリーミングデータを他の通信装置１１へ転送するフローエントリーを書き込む。そして、ＯＦＳ８４、９３の双方にストリーミング用インタフェースへ切り替えるように要求する。ステップ９５０では、その要求を受けて、ＯＦＳ８４、９３がストリーミング用インタフェースに切り替える。
【００６９】
ステップ９４０でＲｅａｄｙフラグが有効でない場合、またはステップ９５０でストリーミング用インタフェースに切り替えた後、ステップ９５５へ進み、ストリーミング通信を実行する。このストリーミング通信では、映像データをパケットとして逐次送信し、他の通信装置１１において再生させる。ステップ９６０では、ストリーミングが終了したかどうかを判断する。終了していない場合は、ステップ９５５へ戻り、ストリーミングを継続する。一方、終了した場合は、ステップ９６５へ進み、この処理を終了する。
【００７０】
ステップ９４０でストリーミング用インタフェースのＲｅａｄｙフラグが有効でない場合、ストリーミング用インタフェースへ切り替えられないため、通常のＩＰパケット通信用インタフェースを使用してストリーミングを行うことになる。図９では、ステップ９６０からステップ９５５へ戻るようになっているが、これに限られるものではなく、ステップ９２０へ戻るようになっていてもよい。この場合、充分な電波強度が確認されると、ストリーミング用インタフェースへ切り替え、また、確認されなくなると、元のＩＰ通信用インタフェースに戻すことができる。
【００７１】
現在のＯｐｅｎＦｌｏｗ仕様では、無線通信のポートステータス等が、取得するポートステータスに含まれていない。また、無線インタフェースの制御等も標準メッセージに定義されていない。このため、シンメトリックメッセージのベンダー拡張領域を使用し、もしくはＯｐｅｎＦｌｏｗ仕様外の制御で行う必要がある。図９に示した処理フローは、ＯＦＣ８３が行う処理の一例を示したものであり、スイッチ制御や無線接続の確立の順番等については、ハードウェア制御の制約等により入れ替わる可能性がある。
【００７２】
本発明の通信装置およびその通信装置を使用した通信方法を提供することにより、通信装置双方のポートの状態や能力に応じて、ＩＰ通信アプリケーションとは独立して双方の通信装置内部の仮想的な通信経路を制御し、通信効率を最大化させることができる。その際、ストリーミング用のＴＣＰポート番号等を、フローテーブルにおける条件（マッチング条件）にしたり、有線−無線ブリッジ動作のためにＭＡＣアドレスの書き換えを行う等、ＯｐｅｎＦｌｏｗで制御しうる通信制御を最大限に活用することができる。これにより、想定する通信を実現することができる。
【００７３】
これまで本発明の通信装置および通信方法について図面に示した実施形態を参照しながら詳細に説明してきた。本発明は、上述した実施形態に限定されるものではなく、他の実施形態や、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００７４】
１０…通信装置、１１…他の通信装置、１２…ＡＰ、１３…ローカルネットワーク、１４…グローバルネットワーク、１５…サーバ、２０…ＣＰＵ、２１…通信インタフェース、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＨＤＤ、２５…入力装置、２６…表示装置、２７…バス、２８…スイッチ、３０…情報取得部、３１…制御部、３２…情報処理部、３３…内部インタフェース、５０…スイッチ、５１…ＯＦＣ、５２、５３…ＯＦＳ、７０〜７２…ＩＰパケット通信アプリケーションプログラム、７３…ＩＰパケット通信内部インタフェース、７４…ＯＦＳ、７５、７６…ＩＰパケット通信外部インタフェース、７７…ＯＦＣプログラム、８０〜８２…ＩＰパケット通信アプリケーションプログラム、８３…ＯＦＣ、８４…ＯＦＳ、８５〜８７…仮想インタフェース、８８、８９…物理インタフェース、９０〜９２…ＩＰパケット通信アプリケーションプログラム、９３…ＯＦＳ、９４〜９６…仮想インタフェース、９７、９８…物理インタフェース
【先行技術文献】
【特許文献】
【００７５】
【特許文献１】再表２０１１／０８７０８５号公報
【図１】
2015122556.tif 000003
【図２】
2015122556.tif 000004
【図３】
2015122556.tif 000005
【図４】
2015122556.tif 000006
【図５】
2015122556.tif 000007
【図６】
2015122556.tif 000008
【図７】
2015122556.tif 000009
【図８】
2015122556.tif 000010
【図９】
2015122556.tif 000011