JP2024078801A - 通信装置、通信システム、通信制御方法およびプログラム - Google Patents

通信装置、通信システム、通信制御方法およびプログラム Download PDF

Info

Publication number
JP2024078801A
JP2024078801A JP2022191364A JP2022191364A JP2024078801A JP 2024078801 A JP2024078801 A JP 2024078801A JP 2022191364 A JP2022191364 A JP 2022191364A JP 2022191364 A JP2022191364 A JP 2022191364A JP 2024078801 A JP2024078801 A JP 2024078801A
Authority
JP
Japan
Prior art keywords
communication
interface
interfaces
category
backup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022191364A
Other languages
English (en)
Inventor
駿 杉本
Shun Sugimoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2022191364A priority Critical patent/JP2024078801A/ja
Publication of JP2024078801A publication Critical patent/JP2024078801A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】アクティブ状態の通信インタフェースに対する通信負荷の集中を抑制すること。【解決手段】通信制御機は、第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該第2区分の通信パケットの通信で当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認手段と、上記第1区分の通信パケットについて、上記バックアップであると確認されたいずれかのインタフェースで通信させる制御手段と、を備える。【選択図】図6

Description

本発明は、通信装置、通信システム、通信制御方法およびプログラムに関する。
従来、通信装置において、複数の物理的な通信インタフェースを束ね、論理的な一つの通信インタフェースとして扱うことで、冗長化や通信スループットの向上を図るボンディングやネットワークチーミングと呼ばれる技術が知られている。ボンディングは例えばLinux(登録商標)カーネルにて採用されている。ボンディングには複数種類のモードが存在し、特に通信障害に対する耐障害性の向上という目的においては、アクティブバックアップモードが利用されることが多い。
アクティブバックアップモードとは、複数の通信インタフェースをアクティブ状態とバックアップ状態とに分け、アクティブ側の通信インタフェースで通信を行うモードである。そして、アクティブバックアップモードは、アクティブ側に通信障害が発生した場合に、バックアップ側をアクティブ状態に切り替えることで通信を継続する。例えば特許文献1では、ボンディングをアクティブバックアップモードで使用したシステムにおいて、通信経路における障害発生時に通信インタフェースを切り替える方法が提案されている。
特開2013-162308号公報
通信装置においては、例えばLinuxカーネルと、Linuxカーネル外でデータ伝送を行うハードウェアやソフトウェア等とが共存する場合がある。この場合にLinux側でアクティブバックアップモードが用いられると、アクティブ状態の通信インタフェースに通信負荷が集中する虞がある。一部の通信インタフェースに対する通信負荷の集中は、パケットの遅延時間の増大や通信エラー等の影響を及ぼす可能性を高める。
本発明が解決しようとする課題は、アクティブ状態の通信インタフェースに対する通信負荷の集中を抑制することである。
上記の課題を解決するため、本発明の1つの態様にかかる通信制御機は、第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該第2区分の通信パケットの通信で当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認手段と、上記第1区分の通信パケットについて、上記バックアップであると確認されたいずれかのインタフェースで通信させる制御手段と、を備える。
本発明によれば、アクティブ状態の通信インタフェースに対する通信負荷の集中が抑制される。
第1実施形態の通信装置のハードウェア構成図。 第1実施形態の通信装置のソフトウェア構成図。 初期化処理のフローチャート。 通信インタフェースで生じるイベントに対するイベントハンドラ処理のフローチャート。 タイマで生じるイベントに対するイベントハンドラ処理のフローチャート。 データ伝送インタフェースの設定処理のフローチャート。 リンク状態の変化に伴うデータ伝送インタフェースの推移を示す図。 第2実施形態の通信装置のハードウェア構成図。 第2実施形態における通信可否判定処理のフローチャート。 第2実施形態におけるデータ伝送インタフェースの設定例を示す図。
以下、添付図面を参照して本発明の実施形態を詳細に説明する。なお、以下の実施形態は本発明を限定するものではなく、また、実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。実施形態の構成は、本発明が適用されるシステムおよび装置の仕様および各種条件(使用条件、使用環境等)によって適宜修正又は変更され得る。本発明の技術的範囲は、特許請求の範囲によって画定されるのであって、以下の個別の実施形態によって画定されない。
<第1実施形態>
図1は、第1実施形態の通信装置100のハードウェア構成図である。
通信装置100は、一例として、通信インタフェースを2つ備え(通信インタフェース105、106)、カメラ等の撮像部108で撮像して得た画像データをネットワーク経由で受信装置(図示せず)に伝送する装置である。
通信装置100では、画像データを伝送するハードウェアと、オペレーティングシステムのプロトコルスタックを介して画像データ以外の通信を行うソフトウェアとが並列に動作する。なお、本実施形態では、オペレーティングシステムはLinuxとして説明するが、本発明はこれに限定されない。
通信装置100は、ハードウェア構成部として、CPU(Central Processing Unit)102、ROM(Read Only Memory)103、RAM(Random Access Memory)104を備えている。
また、通信装置100は、ハードウェア構成部として、第1通信インタフェース105、第2通信インタフェース106、データ伝送部107、撮像部108、記憶部109も備えている。
システムバス101には各ハードウェア構成部が接続されていて、システムバス101は各種データの転送経路となる。CPU102は各ハードウェア構成部を統括的に制御して通信装置100を制御する。ROM103は、CPU102で実行される制御プログラム等を格納している。RAM104は、CPU102の主メモリやワークエリア等として機能し、プログラムやデータを一時記憶する。
第1通信インタフェース105および第2通信インタフェース106は、ネットワーク(図示せず)を介して通信パケットの送受信を行うインタフェースである。本実施形態では、一例として、第1通信インタフェース105および第2通信インタフェース106を有線LANインタフェースとして説明する。但し、第1通信インタフェース105および第2通信インタフェース106は無線LANインタフェースや公衆移動体通信インタフェース等でもよい。
第1通信インタフェース105および第2通信インタフェース106は、物理的に異なる通信経路でネットワークに接続される。以下の説明では、第1通信インタフェース105の通信経路を0系通信経路(eth0)と称し、第2通信インタフェース106の通信経路を1系通信経路(eth1)と称する場合がある。
データ伝送部107は、一例として、撮像部108で撮像されて得られた画像データを伝送するためのハードウェアであり、画像データの分割、パケット化機能を備えている。データ伝送部107は、第1通信インタフェース105および第2通信インタフェース106のうち、自装置内で設定された通信インタフェースを介してパケット化されたデータを伝送する。データ伝送部107は、画像データ以外のデータ伝送を行ってもよい。
撮像部108は、カメラ等で撮像を行って画像データを生成する。
記憶部109は、画像データがファイル化されたファイル等を記憶する。記憶部109としては、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等のストレージ装置が用いられる。
また、記憶部109としては、例えば、USB(Universal Serial Bus)やSD(登録商標:SecureDigital)等の補助記憶装置が用いられてもよい。
図2は、第1実施形態の通信装置100のソフトウェア構成図である。
通信装置100は、ソフトウェア構成部として、通信アプリケーション200と、プロトコルスタック201と、通信インタフェース制御202と、ボンディング制御203と、データ伝送制御204とを備えている。
本実施形態では、データ伝送部107が伝送する画像データ以外の通信をする通信アプリケーション200がデータ伝送部107と並列に動作する。通信アプリケーション200としては、例えば、ファイル転送を行うFTP(File Transfer Protocol)アプリケーションが挙げられる。また、別の通信アプリケーション200としては、例えば、他装置との時刻同期を行うPTP(Precision Time Protocol)アプリケーションが挙げられる。
データ伝送部107が伝送する画像データの通信パケットは、第1区分の通信パケットの一例であり、通信アプリケーション200が通信する通信パケットは、第2区分の通信パケットの一例である。そして、複数の通信インタフェース105、106は、第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる。
なお、本実施形態では、データ伝送部107と通信アプリケーション200とで通信の対象が異なる。言い換えると、本実施形態では、上記第1区分の通信パケットは、データ伝送用の通信パケットであり、上記第2区分の通信パケットは、データ伝送用以外の通信パケットである。このため、後述するように、データ伝送用の通信パケットとデータ伝送用以外の通信パケットとが異なる通信インタフェース105、106に振り分けられ、通信インタフェース105、106間で通信負荷が分散される。
但し、上記第1区分の通信パケットと上記第2区分の通信パケットは、同種のデータの通信パケットであってもよく、その場合は例えば通信パケットの出所が通信アプリケーション200であるかデータ伝送部107であるかで区別される。即ち、第1区分の通信パケットはデータ伝送部107からの通信パケットであり、第2区分の通信パケットは通信アプリケーション200からの通信パケットである。
通信アプリケーション200が伝送するパケットは、プロトコルスタック201においてプロトコル処理され、ヘッダが付与され、パケット生成される。通信アプリケーション200では、例えば、TCPやUDPやIP等の通信プロトコルに従ってパケットが処理される。TCPはTransmission Control Protocolの略であり、UDPはUser Datagram Protocolの略であり、IPはInternet Protocolの略である。
通信アプリケーション200で生成されたパケットは通信インタフェース制御202において、通信インタフェース105、106のデータリンク層、物理層に従いフレーム生成され、ネットワークに送出される。Linuxでは、通信アプリケーション200が通信インタフェース105、106を指定しない限り、通信に使用される通信インタフェース105、106はLinuxカーネル内で自動選択される。本実施形態では通信アプリケーション200は通信インタフェース105、106を指定しない。
また、本実施形態では、Linuxカーネルでボンディング機能が有効である。そして、ボンディングモードがアクティブバックアップモードである場合、アクティブ状態の通信インタフェース105、106が通信に使用される。
ボンディング制御203は、通信インタフェース105、106のリンク状態やユーザの設定に応じて通信インタフェース105、106毎にアクティブ状態若しくはバックアップ状態を設定する。
データ伝送制御204は、データ伝送部107を制御する。データ伝送制御204は、例えばLinuxでは、LKM(Loadable Kernel Module)として実現され、カーネル空間で動作する。データ伝送制御204による制御には、データ伝送部107がデータ伝送で使用する通信インタフェース105、106の設定も含まれる。
図2に示された構成は一例であり、複数の機能ブロックが1つの機能ブロックを構成してもよいし、何れかの機能ブロックが複数の機能を行うブロックに分かれてもよい。また、機能ブロックの少なくとも1つがハードウェアとして実装されてもよい。
ハードウェアにより実装される場合、例えば、所定のコンパイラが用いられることで、各ステップを実現するためのプログラムからFPGA上に自動的に専用回路が生成されてもよい。FPGAとは、Field Programmable Gate Arrayの略である。また、FPGAと同様にしてGate Array回路が形成されて、ハードウェアとして実現されてもよいし、ASIC(Application Specific Integrated Circuit)により実現されてもよい。
<データ伝送制御の処理動作>
以下、データ伝送制御204の処理動作について、フローチャートを参照して説明する。
図3は、初期化処理のフローチャートである。
図4は、通信インタフェース105、106で生じるイベントに対するイベントハンドラ処理のフローチャートである。
図5は、タイマで生じるイベントに対するイベントハンドラ処理のフローチャートである。
図6は、データ伝送インタフェースの設定処理のフローチャートである。
データ伝送制御204は、図3~図5に示す各処理がトリガーとなって図6に示す設定処理を開始する。
図3に示す初期化処理は、データ伝送制御204がロードされた直後に一度実行される。
S301では、2つの通信インタフェース105、106の一方が高優先度インタフェースとして設定される。高優先度インタフェースは、2つの通信インタフェース105、106が共に通信可の場合にデータ伝送で優先的に使用される。本実施形態においては、一例として、第1通信インタフェース105が高優先度インタフェースとして設定される。なお、通信インタフェースが3つ以上備えられる場合、S301では、各通信インタフェースの優先順が設定される。
S302では、2つの通信インタフェース105、106のうちデータ伝送部107がデータ伝送で使用するデータ伝送インタフェースの設定処理(図6の処理)が実行される。
S303では、通信インタフェース105、106にイベントが発生した際に、イベントの通知と共に実行されるイベントハンドラ処理として、図4に示す処理が登録される。イベントハンドラ処理は例えばコールバック関数などによって定義される。通信インタフェース105、106に発生するイベントとは、例えば通信インタフェースにおける通信リンク状態の変化である。具体的な通信リンク状態の変化としては、例えば、リンクアップからリンクダウンへの変化やリンクダウンからリンクアップへの変化が有り得る。
S304では、タイマの初期化として、タイマのイベントが発生するまでの時間情報の登録とイベントが発生した際に実行されるイベントハンドラ処理(図5に示す処理)の登録が行われる。また、S304では、タイマの初期化と併せてタイマがスタートされ、図3の初期化処理が終了する。
なお、S303およびS304におけるイベントハンドラ処理の登録方法としては、例えば、Linuxカーネルが提供するNotification Chainメカニズムを用いる方法が利用可能である。Notification Chainに処理が登録されることで、イベント発生時には、登録された処理がイベント通知とともに実行される。
図4に示すイベントハンドラ処理について以下説明する。
図4に示すイベントハンドラ処理は図3のS303で登録された処理であり、通信インタフェースに状態変化等のイベントが発生した場合に実行される。
S401では、通知されたイベントがリンクダウンか否かが判定される。そして、通知されたイベントがリンクダウンである場合、S403に進んでデータ伝送インタフェースの設定処理(図6の処理)が実行される。その後、図4のイベントハンドラ処理が終了する。
一方、S401で、イベントがリンクダウンでないと判定された場合、S402に進み、通知されたイベントがリンクアップか否かが判定される。通知されたイベントがリンクアップである場合、S403に進んで図6の設定処理が実行され、その後、図4のイベントハンドラ処理が終了する。
通知されたイベントがリンクダウンでもリンクアップでもなかった場合(S401:No、S402:No)、図4のイベントハンドラ処理が終了する。
図5に示すイベントハンドラ処理について以下説明する。
図5に示すイベントハンドラ処理は図3のS304で登録された処理であり、S304で登録された時間情報が示すイベント発生までの時間が経過した場合に実行される。
S501では、データ伝送インタフェースの設定処理(図6の処理)が実行される。
S502では、タイマが再スタートされ、図5に示すイベントハンドラ処理が終了する。これにより、登録されたイベント発生時間が経過する毎に、図5に示すイベントハンドラ処理が実行されることになる。
図6に示すデータ伝送インタフェースの設定処理について以下説明する。
S601は、全て(ここでは一例として2つ)の通信インタフェース105、106の状態を確認するためのループ判定処理であり、S602~S604の処理が通信インタフェース105、106毎に繰り返し実行される。
S602では、通信インタフェース105、106の通信可否が判定される。つまり、本実施形態では、複数の通信インタフェース105、106それぞれについて通信可否を判定する判定手段としての機能が備えられている。
また、本実施形態の場合、通信インタフェース105、106がリンクダウン状態なら通信不可と判定され、通信インタフェース105、106がリンクアップ状態なら通信可と判定される。
S603では、S602での判定結果に従って分岐し、判定結果が通信可の場合(S603:Yes)、S604に進み、通信インタフェース105、106についてボンディング状態が取得される。一方、判定結果が通信不可の場合(S603:No)、S604はスキップされる。
つまり、本実施形態の場合、複数の通信インタフェース105、106のうち通信可と判定された通信インタフェース105、106についてアクティブであるかバックアップであるかが確認される。これにより、確認の処理が効率化する。
S604で取得されるボンディング状態の情報には、アクティブバックアップモードであるか否かの情報、および、アクティブバックアップモードである場合においてアクティブ状態かバックアップ状態かの情報が含まれる。アクティブ状態の通信インタフェース105、106は、上記第2区分の通信パケットの通信で優先される通信インタフェース105、106である。また、バックアップ状態の通信インタフェース105、106は、アクティブ状態の通信インタフェース105、106に対する予備として用いられる。
例えばLinuxでは、“/proc/net/bonding/<ボンディングインタフェース名>”が確認されることで上記情報が取得される。
S604の処理は、各通信インタフェース105、106が、アクティブの通信インタフェース105、106であるか、バックアップの通信インタフェース105、106であるかを確認する確認手段としての処理に相当する。
また、本実施形態では、複数の通信インタフェース105、106に対するボンディングモードがアクティブバックアップモードである場合に、各通信インタフェース105、106がアクティブであるかバックアップであるかが確認される。
S601のループ判定処理が全ての通信インタフェース105、106について実行されると、S605で、通信可の通信インタフェース105、106の有無が判定される。通信可の通信インタフェースが存在しない場合(S605:No)、図6の設定処理が終了する。なお、この場合、データ伝送を停止する設定が行われてもよい。
S605で、通信可の通信インタフェース105、106が存在する場合(S605:Yes)、S606に進み、通信可の通信インタフェース105、106が1つか否かが判定される。通信可の通信インタフェース105、106が1つの場合(S606:Yes)、S607で当該通信インタフェース105、106が、データ伝送で使用されるデータ伝送インタフェースとして設定される。その後、図6の設定処理が終了する。
一方、通信可の通信インタフェース105、106が2つ以上存在する場合(S606:Yes)、S608に進み、ボンディングモードがアクティブバックアップモードか否かが判定される。ボンディングモードがアクティブバックアップモードの場合(S608:Yes)、S609に進み、バックアップ状態の通信インタフェース105、106がデータ伝送インタフェースとして設定される。その後、図6の設定処理が終了する。
S609の処理は、上記第1区分の通信パケットについて、バックアップであると確認されたいずれかのインタフェースで通信させる制御手段としての処理に相当する。
本実施形態では通信インタフェース105、106が2つであるためバックアップ状態の通信インタフェース105、106は1つであるが、3つ以上の通信インタフェースが備えられるとバックアップ状態の通信インタフェースが複数存在する場合がある。この場合、S609では、図3のS301で設定された優先度の高い通信インタフェースがデータ伝送インタフェースとして設定される。
つまり、上記第1区分の通信パケットの通信に用いられる通信インタフェースの候補が複数存在する場合には、当該候補の通信インタフェースのうち、予め設定された優先度の高い通信インタフェースで通信されることになる。
また、S609では、バックアップ状態であると確認された通信インタフェース105、106が存在しない場合がある。この場合、通信可と判定されたいずれかの通信インタフェース105、106がデータ伝送インタフェースとして設定される。
上記S608で、ボンディングモードがアクティブバックアップモード以外の場合(S608:No)、S610に進む。そして、通信可の通信インタフェース105、106のうち、図3のS301で設定された優先度の高い通信インタフェース105、106がデータ伝送インタフェースとして設定される。その後、図6の設定処理が終了する。
図6に示す設定処理によってデータ伝送インタフェースが設定されることで、以下説明するように、一部の通信インタフェース105、106に対する通信負荷の集中が抑制される。
<データ伝送インタフェースの推移の例>
図7は、リンク状態の変化に伴うデータ伝送インタフェースの推移を示す図である。
図7には、通信装置100のハードウェア構成部のうち、CPU102と、データ伝送部107と、第1通信インタフェース105と、第2通信インタフェース106が示されている。CPU102にはLinuxがロードされており、Linuxにはボンディングインタフェース(bond)700が含まれている。
ボンディングインタフェース(bond)700はLinux内で使用される仮想的なインタフェースであり、第1通信インタフェース105と第2通信インタフェース106のボンディングを担う。図7に示す例ではボンディングモードがアクティブバックアップモードとなっていて、bond700は、アクティブ状態の通信インタフェース105、106を用いて通信を行う。
図7(A)には、0系通信経路eth0に接続された第1通信インタフェース105と、1系通信経路eth1に接続された第2通信インタフェース106とが共にリンクアップ状態である場合が示されている。また、図7(A)では、第1通信インタフェース105がアクティブ状態で、第2通信インタフェース106がバックアップ状態となっている。
図7(A)の場合、図6に示す設定処理はS609に進み、1系通信経路eth1に接続されたバックアップ状態の第2通信インタフェース106がデータ伝送インタフェースとして設定される。従って、bond700からの通信パケットは第1通信インタフェース105から送信され、データ伝送部107からの通信パケットは第2通信インタフェース106から送信される。
図7(B)には、図7(A)に示す状態から、0系通信経路eth0に接続された第1通信インタフェース105がリンクダウン状態となった場合が示されている。この場合、bond700は、リンクダウン状態の第1通信インタフェース105をバックアップ状態に変更する。そして、bond700は、図7(A)でバックアップ状態であった第2通信インタフェース106をアクティブ状態に変更する。
図7(B)の場合、通信インタフェース105、106のイベントとしてリンクダウンイベントが通知され、図4で示したイベントハンドラ処理をトリガーとして、図6に示すデータ伝送インタフェースの設定処理が実行される。そして、図6に示す設定処理はS607に進み、通信可の第2通信インタフェース106がデータ伝送インタフェースとして設定される。
つまり、本実施形態では、複数の通信インタフェース105、106のいずれかが、リンクアップおよびリンクダウンの一方から他方へ変化した場合に、各通信インタフェース105、106がアクティブであるかバックアップであるかが再確認される。
そして、上記第1区分の通信パケットについては、再確認でバックアップであると確認されたいずれかの通信インタフェース105、106で通信される。
この結果、図7(B)の場合、bond700からの通信パケットも、データ伝送部107からの通信パケットも、第2通信インタフェース106から送信される。
図7(C)には、図7(B)に示す状態から、0系通信経路eth0に接続された第1通信インタフェース105が再度リンクアップ状態となった場合が示されている。この場合、両方の通信インタフェース105、106リンクアップ状態となるが、bond700はボンディング状態を変更しない。即ち、1系通信経路eth1に接続された第2通信インタフェース106がアクティブ状態で、0系通信経路eth0に接続された第1通信インタフェース105がバックアップ状態となっている。
図7(C)の場合、通信インタフェース105、106のイベントとしてリンクアップイベントが通知され、図4で示したイベントハンドラ処理をトリガーとして、図6に示すデータ伝送インタフェースの設定処理が実行される。そして、図6に示す設定処理はS609に進み、0系通信経路eth0に接続された第1通信インタフェース105がデータ伝送インタフェースとして設定される。従って、bond700からの通信パケットは第2通信インタフェース106から送信され、データ伝送部107からの通信パケットは第1通信インタフェース105から送信される。
このように、図6に示す設定処理の結果、データ伝送の通信パケットとそれ以外の通信パケットとが互いに異なる通信インタフェース105、106へと振り分けられて、通信インタフェース105、106間の負荷が分散される。従って、通信インタフェース105、106の一部に対する通信負荷の集中が抑制され、パケットの遅延時間の増大や通信エラー等の影響が低減される。
なお、図7ではリンク状態が変化した場合について説明したが、上述したように図5に示すイベントハンドラ処理は、一定時間が経過する度に実行されるので、図6に示す設定処理も一定時間が経過する度に実行される。従って、本実施形態では、前回の確認から予め決められた時間が経過した場合に、各通信インタフェース105、106がアクティブであるかバックアップであるかが再確認される。そして、上記第1区分の通信パケットについては、再確認でバックアップであると確認されたいずれかの通信インタフェース105、106で通信される。
<第2実施形態>
次に、通信インタフェースを4つ備えた第2実施形態について説明する。なお、第1実施形態と同様の構成要素については同一の符号を付すことで重複説明を省略する。
図8は、第2実施形態の通信装置800のハードウェア構成図である。
第2実施形態の通信装置800は、0系通信経路eth0に接続された第1通信インタフェース105および1系通信経路eth1に接続された第2通信インタフェース106を備えている。更に、通信装置800は、第3通信インタフェース801および第4通信インタフェース802を備えている。第3通信インタフェース801および第4通信インタフェース802はシステムバス101に接続されている。また、第3通信インタフェース801は2系通信経路eth2に接続され、第4通信インタフェース802は3系通信経路eth3に接続されている。
第2実施形態の通信装置800においても、図3~図6に示す各処理が実行される。但し、第2実施形態の通信装置800では、データ受信装置へのパケット到達可否を検査する手段が備えられ、図6のS602における通信可否判定の詳細が第1実施形態とは異なっている。
図9は、第2実施形態における通信可否判定処理のフローチャートである。
S901では、通信インタフェース105、106、801、802のリンク状態が確認される。通信インタフェース105、106、801、802がリンクダウン状態である場合(S901:down)、S902に進み、判定結果は通信不可となる。その後、通信可否判定処理が終了する。
一方、通信インタフェース105、106、801、802がリンクアップ状態である場合(S901:up)、S903に進み、パケットがデータ受信装置に到達可能か否かが検査される。到達可否の具体的な検査方法については、従来周知の任意の検査方法が採用可能である。
例えば、ICMP(Internet Control Message Protocol)やARP(Address Resolution Protocol)等のプロトコルでデータ受信装置にパケットを送ってみることで検査する方法等がある。また、データ伝送制御204内でパケット到達可否の検査を行わず、他のソフトウェアやハードウェア等で検査を行った結果を参照してもよい。
S904では、パケット到達可否の検査結果が確認され、検査結果が到達不可である場合(S904:No)、S902に進み、判定結果は通信不可となる。その後、通信可否判定処理が終了する。
一方、パケット到達可否の検査結果が到達可である場合(S904:Yes)、S905に進み、判定結果は通信可となる。
つまり第2実施形態では、通信インタフェース105、106、801、802がリンクアップしていて、かつ、当該通信インタフェース105、106、801、802から送信された通信パケットが相手側で受信された場合に通信可と判定される。
以下、第2実施形態におけるリンク状態およびボンディング状態の例とデータ伝送インタフェースの設定例について説明する。
図10は、第2実施形態におけるデータ伝送インタフェースの設定例を示す図である。
図10には、通信装置800と同様に4つの通信インタフェースを備えたデータ受信装置1000と、通信装置800とデータ受信装置1000の間でパケットを転送するスイッチ1001と、通信装置800とからなるシステムが示されている。データ受信装置1000の4つの通信インタフェースは、4つの通信経路(4系通信経路eth4~7系通信経路eth7)にそれぞれ接続されている。スイッチ1001は、通信装置800側に4つのポート(P0~P3)を有し、データ受信装置1000側にも4つのポート(P4~P7)を有する。
図10に示すシステムでは、通信装置800からデータ受信装置1000へ向けて通信パケットが送信され、データ受信装置1000が通信パケットを受信する。即ち、図10に示すシステムは、通信装置800として機能する送信装置と、当該送信装置と通信する受信装置と、を備えている。
図10に示す例では、図3のS301で初期設定される優先度は、第1通信インタフェース105>第2通信インタフェース106>第3通信インタフェース801>第4通信インタフェース802、となっている。そして、ボンディングモードはアクティブバックアップモードとなっている。
また、図10に示す例では、通信装置800の4つの通信インタフェース105、106、801、802とスイッチ1001との間は正常に通信可能でリンクアップ状態となっている。そして、ボンディング状態は、1系通信経路eth1に接続された第2通信インタフェース106がアクティブ状態で、残りの通信インタフェース105、801、802はバックアップ状態である。
更に、図10に示す例では、0系通信経路eth0に繋がる通信経路において、スイッチ1001のポート(P4)と、データ受信装置1000の4系通信経路eth4の通信インタフェースとの間がリンクダウン状態となっている。
図10に示す例では、第1通信インタフェース105については、図9のS903においてデータ受信装置1000へのパケット到達の可否検査が行われると、検査結果は到達不可となる。そのため、第1通信インタフェース105については、S902で判定結果が通信不可となる。この場合、図6に示すデータ伝送インタフェースの設定処理はS609に進む。そして、通信可でバックアップ状態の2つの通信インタフェース801、802が、データ伝送インタフェースとして設定可能な候補となる。
ここで、2つの通信インタフェース801、802の優先度が比較され、第3通信インタフェース801>第4通信インタフェース802であるため、第3通信インタフェース801がデータ伝送インタフェースとして設定される。
このようにデータ伝送インタフェースが設定される場合も、通信パケットがデータ伝送の通信パケットとそれ以外の通信パケットとが互いに異なる通信インタフェース106、801へと振り分けられる。このため、通信インタフェース105、106、801、802間の一部に対する通信負荷の集中が抑制される。
なお、図10では、説明の簡略化のため、スイッチ1001が通信装置800とデータ受信装置1000との間で各通信経路を、個別に、かつ固定で接続している例が示されている。つまり、0系通信経路eth0は、スイッチ1001の0番ポートP0から4番ポートP4を通り、データ受信装置1000の4系通信経路eth4の通信インタフェースに繋がっている。
同様に、1系通信経路eth1は、1番ポートP1から5番ポートP5を通り、5系通信経路eth5の通信インタフェースに繋がっている。2系通信経路eth2は、2番ポートP2から6番ポートP6を通り、6系通信経路eth6の通信インタフェースに繋がっている。3系通信経路eth3は、3番ポートP3から7番ポートP7を通り、7系通信経路eth7の通信インタフェースに繋がっている。
但し、第2実施形態の通信装置800は、中継するスイッチ1001内で動的に経路が切り替わるシステムでも、中継するスイッチ1001が2台以上あるシステムでもそのまま適用可能である。また、データ受信装置1000の通信インタフェースが通信装置800の通信インタフェースと同数でないシステムでもそのまま適用可能である。
<その他の実施形態>
本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)などとしての実施形態をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、Webアプリケーションなど)から構成されるシステムに適用されてもよいし、また、1つの機器からなる装置に適用されてもよい。
また本発明は、上述した実施形態の1以上の機能を実現するプログラム(コンピュータプログラム)を、ネットワークまたは記録媒体(記憶媒体)を介して、システムまたは装置に供給することによっても実現可能である。そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する。この場合、記録媒体から読み出されたプログラム(プログラムコード)自体が実施形態の機能を実現することになる。また、当該プログラムを記録した記録媒体は本発明を構成することができる。
また、コンピュータが読み出したプログラムを実行することにより、実施形態の機能が実現されるだけでなく、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されてもよい。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムが格納されることになる。
なお、上記実施形態の開示は、以下の構成および方法を含む。
(構成1)
第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該第2区分の通信パケットの通信で当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認手段と、
前記第1区分の通信パケットについて、前記バックアップであると確認されたいずれかのインタフェースで通信させる制御手段と、
を備えたことを特徴とする通信制御機。
(構成2)
前記第1区分の通信パケットは、データ伝送用の通信パケットであり、
前記第2区分の通信パケットは、データ伝送用以外の通信パケットであることを特徴とする構成1に記載の通信制御機。
(構成3)
前記複数のインタフェースそれぞれについて通信可否を判定する判定手段を更に備え、
前記確認手段は、前記複数のインタフェースのうち通信可と判定されたインタフェースについてアクティブであるかバックアップであるかを確認することを特徴とする構成1または2に記載の通信制御機。
(構成4)
前記制御手段は、バックアップであると確認されたインタフェースが存在しない場合には、前記第1区分の通信パケットについて、通信可と判定されたいずれかのインタフェースで通信させることを特徴とする構成3に記載の通信制御機。
(構成5)
前記判定手段は、前記インタフェースがリンクダウンしている場合に通信不可と判定することを特徴とする構成3または4に記載の通信制御機。
(構成6)
前記判定手段は、前記インタフェースがリンクアップしている場合に通信可と判定することを特徴とする構成3から5のいずれかに記載の通信制御機。
(構成7)
前記判定手段は、前記インタフェースがリンクアップしていて、かつ、当該インタフェースから送信されたパケットが相手側で受信された場合に通信可と判定することを特徴とする構成3から5のいずれかに記載の通信制御機。
(構成8)
前記制御手段は、前記第1区分の通信パケットの通信に用いらせるインタフェースの候補が複数存在する場合に、当該候補のインタフェースのうち、予め設定された優先度の高いインタフェースで通信させることを特徴とする構成1から7のいずれかに記載の通信制御機。
(構成9)
前記確認手段は、前記複数のインタフェースのいずれかが、リンクアップおよびリンクダウンの一方から他方へ変化した場合に、各インタフェースがアクティブであるかバックアップであるかを再確認し、
前記制御手段は、前記第1区分の通信パケットについて、再確認でバックアップであると確認されたいずれかのインタフェースで通信させることを特徴とする構成1から8のいずれかに記載の通信制御機。
(構成10)
前記確認手段は、前回の確認から予め決められた時間が経過した場合に、各インタフェースがアクティブであるかバックアップであるかを再確認し、
前記制御手段は、前記第1区分の通信パケットについて、再確認でバックアップであると確認されたいずれかのインタフェースで通信させることを特徴とする構成1から9のいずれかに記載の通信制御機。
(構成11)
前記確認手段は、前記第2の通信手段による前記複数のインタフェースに対するボンディングモードがアクティブバックアップモードである場合に、各インタフェースがアクティブであるかバックアップであるかを確認することを特徴とする構成1から10のいずれかに記載の通信制御機。
(構成12)
構成1から11のいずれかに記載の通信制御機と、
前記第1区分の通信パケットの通信を行う第1通信手段と、
を備えたことを特徴とする通信機。
(構成13)
構成1から11のいずれかに記載の通信制御機と、
前記第1区分の通信パケットの通信を行う第1通信手段と、
前記複数のインタフェースと、
を備えたことを特徴とする通信装置。
(構成14)
前記第2区分の通信パケットの通信を行う第2通信手段を更に備えたことを特徴とする構成13に記載の通信装置。
(構成15)
構成13または14に記載の通信装置として機能する送信装置と、
前記送信装置と通信する受信装置と、
を備えたことを特徴とする通信システム。
(方法1)
第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該第2区分の通信パケットの通信で当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認ステップと、
前記第1区分の通信パケットについて、前記バックアップであると確認されたいずれかのインタフェースで通信させる制御ステップと、
を備えたことを特徴とする通信制御方法。
(構成16)
コンピュータを、構成1から11のいずれかに記載の通信制御機の各手段として機能させるためのプログラム。
100、800…通信装置、101…システムバス、102…CPU、103…ROM、
104…RAM、105…第1通信インタフェース、106…第2通信インタフェース、
107…データ伝送部、108…撮像部、109…記憶部、
200…通信アプリケーション、201…プロトコルスタック、
202…通信インタフェース制御、203…ボンディング制御、
204…データ伝送制御、801…第3通信インタフェース、
802…第4通信インタフェース、1000…受信装置、1001…スイッチ

Claims (17)

  1. 第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認手段と、
    前記第1区分の通信パケットについて、前記バックアップであると確認されたいずれかのインタフェースで通信させる制御手段と、
    を備えたことを特徴とする通信制御機。
  2. 前記第1区分の通信パケットは、データ伝送用の通信パケットであり、
    前記第2区分の通信パケットは、データ伝送用以外の通信パケットであることを特徴とする請求項1に記載の通信制御機。
  3. 前記複数のインタフェースそれぞれについて通信可否を判定する判定手段を更に備え、
    前記確認手段は、前記複数のインタフェースのうち通信可と判定されたインタフェースについてアクティブであるかバックアップであるかを確認することを特徴とする請求項1に記載の通信制御機。
  4. 前記制御手段は、バックアップであると確認されたインタフェースが存在しない場合には、前記第1区分の通信パケットについて、通信可と判定されたいずれかのインタフェースで通信させることを特徴とする請求項3に記載の通信制御機。
  5. 前記判定手段は、前記インタフェースがリンクダウンしている場合に通信不可と判定することを特徴とする請求項3に記載の通信制御機。
  6. 前記判定手段は、前記インタフェースがリンクアップしている場合に通信可と判定することを特徴とする請求項3に記載の通信制御機。
  7. 前記判定手段は、前記インタフェースがリンクアップしていて、かつ、当該インタフェースから送信された通信パケットが相手側で受信された場合に通信可と判定することを特徴とする請求項3に記載の通信制御機。
  8. 前記制御手段は、前記第1区分の通信パケットの通信に用いらせるインタフェースの候補が複数存在する場合に、当該候補のインタフェースのうち、予め設定された優先度の高いインタフェースで通信させることを特徴とする請求項1に記載の通信制御機。
  9. 前記確認手段は、前記複数のインタフェースのいずれかが、リンクアップおよびリンクダウンの一方から他方へ変化した場合に、各インタフェースがアクティブであるかバックアップであるかを再確認し、
    前記制御手段は、前記第1区分の通信パケットについて、再確認でバックアップであると確認されたいずれかのインタフェースで通信させることを特徴とする請求項1に記載の通信制御機。
  10. 前記確認手段は、前回の確認から予め決められた時間が経過した場合に、各インタフェースがアクティブであるかバックアップであるかを再確認し、
    前記制御手段は、前記第1区分の通信パケットについて、再確認でバックアップであると確認されたいずれかのインタフェースで通信させることを特徴とする請求項1に記載の通信制御機。
  11. 前記確認手段は、前記複数のインタフェースに対するボンディングモードがアクティブバックアップモードである場合に、各インタフェースがアクティブであるかバックアップであるかを確認することを特徴とする請求項1に記載の通信制御機。
  12. 請求項1に記載の通信制御機と、
    前記第1区分の通信パケットの通信を行う第1通信手段と、
    を備えたことを特徴とする通信機。
  13. 請求項1に記載の通信制御機と、
    前記第1区分の通信パケットの通信を行う第1通信手段と、
    前記複数のインタフェースと、
    を備えたことを特徴とする通信装置。
  14. 前記第2区分の通信パケットの通信を行う第2通信手段を更に備えたことを特徴とする請求項13に記載の通信装置。
  15. 請求項13に記載の通信装置として機能する送信装置と、
    前記送信装置と通信する受信装置と、
    を備えたことを特徴とする通信システム。
  16. 第1区分の通信パケットおよび第2区分の通信パケットの通信に用いられる複数のインタフェースについて、各インタフェースが、当該第2区分の通信パケットの通信で優先されるアクティブのインタフェースであるか、当該第2区分の通信パケットの通信で当該アクティブのインタフェースに対する予備として用いられるバックアップのインタフェースであるかを確認する確認ステップと、
    前記第1区分の通信パケットについて、前記バックアップであると確認されたいずれかのインタフェースで通信させる制御ステップと、
    を備えたことを特徴とする通信制御方法。
  17. コンピュータを、請求項1から11のいずれか1項に記載の通信制御機の各手段として機能させるためのプログラム。
JP2022191364A 2022-11-30 2022-11-30 通信装置、通信システム、通信制御方法およびプログラム Pending JP2024078801A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022191364A JP2024078801A (ja) 2022-11-30 2022-11-30 通信装置、通信システム、通信制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022191364A JP2024078801A (ja) 2022-11-30 2022-11-30 通信装置、通信システム、通信制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2024078801A true JP2024078801A (ja) 2024-06-11

Family

ID=91391413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022191364A Pending JP2024078801A (ja) 2022-11-30 2022-11-30 通信装置、通信システム、通信制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2024078801A (ja)

Similar Documents

Publication Publication Date Title
US11929919B2 (en) System and method for facilitating self-managing reduction engines
CN107533496B (zh) 本地恢复加速部件处的功能
EP1543422B1 (en) Remote direct memory access enabled network interface controller switchover and switchback support
US8880935B2 (en) Redundancy and load balancing in remote direct memory access communications
EP1499984B1 (en) System, method, and product for managing data transfers in a network
US20220131768A1 (en) Communication of a message using a network interface controller on a subnet
JP2004531175A (ja) ローカル識別子を使ったエンド・ノード区分
EP3283954B1 (en) Restoring service acceleration
US11349706B2 (en) Two-channel-based high-availability
CN111835685B (zh) 一种监控Nginx网络隔离空间的运行状态的方法和服务器
JP4964666B2 (ja) 冗長化された通信経路を切り替える計算機、プログラム及び方法
WO2016135919A1 (ja) ストレージ装置
US11349702B2 (en) Communication apparatus, system, rollback method, and non-transitory medium
JP2005527898A (ja) チャネル・アダプタ障害に対する冗長性を提供する方法
CN112564983A (zh) 数据传输方法、装置、计算机系统和介质
JP2024078801A (ja) 通信装置、通信システム、通信制御方法およびプログラム
JP2011203941A (ja) 情報処理装置、監視方法、および監視プログラム
CN104702693B (zh) 两节点系统分区的处理方法和节点
JP2003348128A (ja) コールサーバおよびそのポート切替え方法
JP6740683B2 (ja) 並列処理装置及び通信制御方法
JPWO2007096987A1 (ja) エラー制御装置
US9584444B2 (en) Routing communication between computing platforms
JP2019176366A (ja) 情報処理装置、情報処理方法、及びプログラム
JP6653250B2 (ja) 計算機システム
JP2021118369A (ja) パケット送受信方法、通信装置、及びパケット送受信プログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20240614