[go: up one dir, main page]

JP6470640B2 - 通信装置及びその制御方法、コンピュータプログラム - Google Patents

通信装置及びその制御方法、コンピュータプログラム Download PDF

Info

Publication number
JP6470640B2
JP6470640B2 JP2015117778A JP2015117778A JP6470640B2 JP 6470640 B2 JP6470640 B2 JP 6470640B2 JP 2015117778 A JP2015117778 A JP 2015117778A JP 2015117778 A JP2015117778 A JP 2015117778A JP 6470640 B2 JP6470640 B2 JP 6470640B2
Authority
JP
Japan
Prior art keywords
communication
network
packet
communication device
communication interface
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.)
Active
Application number
JP2015117778A
Other languages
English (en)
Other versions
JP2017005516A (ja
Inventor
佐々木 章友
章友 佐々木
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 JP2015117778A priority Critical patent/JP6470640B2/ja
Publication of JP2017005516A publication Critical patent/JP2017005516A/ja
Application granted granted Critical
Publication of JP6470640B2 publication Critical patent/JP6470640B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワークを介して所定のプロトコルにて通信を行う、通信装置及びその制御方法、コンピュータプログラムに関する。
複数の通信インタフェースを備えた通信機器が、通信に使用する通信インタフェースを選択する構成が知られている。例えば、特許文献1には、機器が複数の通信インタフェースを持つ場合、通信インタフェースの使用頻度を管理し、使用頻度の低い通信インタフェースを選択する構成が記載されている。
特許文献2には、機器が複数の通信インタフェースを持つ場合、通信インタフェースに対応付けられた誘引力に応じて、通信インタフェースの選択を行う構成が記載されている。ここで、誘因力とは、伝送経路における通信トラフィック量を反映したパラメータであり、トラフィック量が大きいほど大きな値をとる。
特開平7−202943号公報 特開2010-206467号公報
しかし、上記従来の構成においては、通信機器が同一のネットワークアドレスが割り当てられた複数のネットワークに接続されている場合、この通信機器は、ネットワークを適切に選択して通信することができなかった。
例えば、通信機器が2つのネットワークに接続しており、これらのネットワークのネットワークマスク長が24で、ネットワークアドレスが192.168.1.0である場合を考える。この場合、通信機器が192.168.1.154へパケットを送信するときは、宛先に対応するルーティングエントリが複数存在することになるため、どちらが選択されるかは実装に依存することとなる。そのため、一方のネットワーク上の端末から送信された要求パケットに通信機器が応答する場合に、この端末が存在しないルーティングエントリが選択されたときは、この機器にパケットを返信することができない。
このように、従来の構成においては、通信機器が同一のネットワークアドレスを有する複数のネットワークに接続している場合、通信機器は、一方のネットワークからの要求パケットに対して応答できない可能性があった。
本発明は上記課題に鑑みなされたものであり、複数の通信インタフェースを備えた装置が、通信インタフェースを適切に選択可能とする技術を提供することを目的とする。
また、本発明の別の側面の通信装置は、複数の通信インタフェースを有する通信装置であって、通信インタフェースとネットワークを識別するネットワーク識別子とを対応付けて記憶部に保持させる保持手段と、他の通信装置から第1の通信インタフェースを介してパケットを受信した場合に、前記他の通信装置が属するネットワーク識別子と前記第1の通信インタフェースとは異なる第2の通信インタフェースとが対応付けられている場合、前記第1の通信インタフェースと前記他の通信装置を識別する識別情報とを対応付けて前記記憶部に登録する登録手段と、前記登録手段により登録された前記対応付けに基づいて、前記第1の通信インタフェースを介して前記他の通信装置にパケットを送信する送信手段と、を有する。
本発明によれば、複数の通信インタフェースを備えた装置が、通信インタフェースを適切に選択可能とする技術を提供することができる。
通信システムのネットワーク構成例を示すネットワークトポロジ図 通信装置が保持するルーティングテーブルの一例を示す図 通信システムのネットワーク構成例を示すネットワークトポロジ図 通信装置が保持するルーティングテーブルの一例を示す図 通信システムのネットワーク構成例を示すネットワークトポロジ図 通信装置が保持するルーティングテーブルの一例を示す図 通信装置の構成例を示すブロック図 通信装置が保持するルーティングテーブルの一例を示す図 通信装置が実行する処理の処理手順を示すフローチャート 通信装置が保持するルーティングテーブルの一例を示す図 通信システムのネットワーク構成例を示すネットワークトポロジ図 通信装置が保持するルーティングテーブルの一例を示す図 通信装置が実行する処理の処理手順を示すフローチャート 通信装置が実行する処理の処理手順を示すフローチャート 通信装置が保持するルーティングテーブルの一例を示す図 コネクション切断の際の処理の処理手順を示すフローチャート
以下、添付図面を参照して本発明の実施の形態を詳細に説明する。
<<実施形態1>>
(ルーティング)
インターネット通信では、一般に、IP(Internet Protocol、インターネットプロトコル)プロトコルが使用されている。また、インターネット通信では、パケットを送信する際、送信する通信インタフェース(ネットワークI/F)を決定するために、ルーティングテーブルが使用されている。ルーティングテーブルとは、機器から送信するパケットの経路を示すテーブルである。送信するパケットをどの通信インタフェースから送信するか、直接相手に送信するのか、ルータを経由するのかなどを検索するために使用する。
ルーティングテーブルのエントリには、IPアドレス(宛先IPアドレス)、ゲートウェイIPアドレス(ゲートウェイアドレス)、ネットワークマスク長(サブネットマスク)、通信インタフェースなどの情報が含まれる。ルーティングを行う際は、まず、送信するパケットの宛先IPアドレスとルーティングテーブルのエントリのネットワークマスク長を用いて、ネットワークIPアドレスを求める。すなわち、宛先のIPアドレスの最上位ビットからマスク長のビットを切り出し、この切り出したビットに0を連結したものをネットワークIPアドレスとする。そして、このネットワークIPアドレスとルーティングテーブルのエントリのIPアドレスのネットワークアドレスとを比較する。一致したものが存在した場合、そのIPアドレスをルーティングの転送先として決定する。一致したものが複数存在した場合は、ネットワークマスク長が最も長いIPアドレスを転送先として決定する。
なお、ルーティングテーブルのエントリにデフォルトエントリがある場合がある。これは、ルーティングテーブルの他のエントリのどれにも一致しなかった場合に転送先として決定されるエントリである。また、ルーティングテーブルにおいて、ルーティングの優先順位を示すメトリックが規定されている場合、ルーティングテーブルのエントリのIPアドレスと一致するものが複数存在したときは、その優先順位に従って転送先を決定する。
一例として、図1の通信装置(機器)1001がPC−A1003に送信する場合について説明する。通信装置1001には、図2のようなルーティングテーブル108が設定されているとする。PC−A1003のIPアドレスは192.168.1.30であり、ルーティングエントリ2012のネットワークマスク長が24ビットなので、そのマスクを適用したネットワークアドレスは192.168.1.0となる。192.168.1.0のネットワークアドレスは、ルーティングエントリ2012の宛先IPアドレスと一致する。ルーティングエントリ2012の通信インタフェースはネットワークAであり、また、ゲートウェイのIPアドレスが設定されていないので、送信する通信インタフェースはネットワークAである。したがって、通信装置1001は、ネットワークAを介して、PC−A1003へ直接送信することが分かる。
次に、図1の通信装置1001が、PC−B1002へ送信する場合について説明する。PC−BのIPアドレスは192.168.25.64であり、ルーティングエントリ2012のネットワークマスク長が24ビットなので、そのマスクを適用した宛先のネットワークアドレスは192.168.25.0となる。192.168.25.0のネットワークアドレスは、ルーティングエントリ2012の宛先IPアドレスと一致しない。そして、ルーティングテーブル108はデフォルトエントリ2013以外に他のエントリを持たないので、デフォルトエントリ2013が転送先として採用される。
ルーティングエントリ2013の通信インタフェースはネットワークAであり、ゲートウェイのIPアドレスが設定されている。このため、送信したいパケットをネットワークAからルータ1004に送信し、ルータ1004により中継されることになる。
(複数の通信インタフェースを有する場合)
図3のように、モバイル端末1005が一時的に通信装置1001と直接ネットワーク接続し、通信する場合がある。この場合、通信装置1001は2つの通信インタフェースでネットワークAとネットワークCの2つのネットワークに同時に接続されることになる。このような場合、通信装置1001において、図4のようなルーティングテーブルが生成される。この場合も同様に、PC−A1003に送信する場合はPC−A1003のIPアドレス192.168.1.30から図4のルーティングエントリ2012が選択され、通信インタフェースはネットワークAが選択される。
図3のPC−B1002に送信する場合には、PC−BのIPアドレス192.168.25.64から図4のルーティングエントリ2013が選択され、通信インタフェースはネットワークAが選択される。モバイル端末1005に送信する場合には、モバイル端末1005のIPアドレス172.23.43.154から図4のルーティングエントリ2017が選択され、通信インタフェースはネットワークCが選択される。
図5のように通信装置1001が複数の通信インタフェースに接続されているとする。この場合、通信装置1001に対して、ネットワークAとネットワークCで同じネットワークアドレスが割り当てられると、ルーティングテーブル108に同じ宛先アドレスのルーティングエントリが設定されてしまう(図6の2012、2014)。
例えば、192.168.1.154へパケットを送信する場合、図6のルーティングテーブル108のルーティングエントリのうち、ルーティングエントリ2012とルーティングエントリ2014とが一致する。ネットワークマスク長も24と同じであるので、どちらが選択されるかは実装依存となる。そのため、モバイル端末1005から送信された要求パケットに通信装置1001が応答する場合、ルーティングエントリ2014が選択されたときは、正しくモバイル端末1005に応答を送信できる。しかし、ルーティングエントリ2012が選択された場合は、モバイル端末1005宛の応答パケットがネットワークAから送信されてしまうことになる。このように、従来の構成においては、複数のネットワークに接続する通信装置1001は、パケットを送出すべきネットワークを適切に選択することができない可能性があった。
本実施形態に係る通信装置は、ネットワークを通じて要求データを受信した場合、その要求データの送信元アドレス(送信元の通信装置の識別情報)と要求データを受信した通信インタフェースとを対応付けてルーティングテーブルに登録する。これにより要求データに対して応答を行う際に、ルーティングテーブルを参照して、要求データを受信した通信インタフェースを選択して応答データを送信することができ、応答データを要求データの送信元へ到達させることが可能となる。
(ネットワークトポロジ)
図5は、本発明の一実施形態(実施形態1)に係る通信システムのネットワーク構成を示すネットワークトポロジ図である。本実施形態では、通信装置(機器)1001が、PC−A1003、PC−B1002、ないし、モバイル端末1005と通信する場合を一例として説明する。
通信装置1001は複数の通信インタフェースを備えた通信機器である。通信装置1001は、ルーティングテーブルに従い通信インタフェースを選択してパケットを送出する。本実施形態では、通信装置1001は、ネットワークAとネットワークCとに接続している。PC−A1003は、ネットワークAに接続されたパーソナルコンピュータ(PC)である。1004はルータであり、ネットワークAとネットワークBとの間で必要に応じてパケットを中継する。PC−B1002はネットワークBに接続されたPCである。モバイル端末1005は、通信装置1001に一時的に接続されうる。
図5の例では、ネットワークAとネットワークBは、Ethernet(登録商標)などの有線ネットワークで構成されている。ネットワークCは、通信装置1001とモバイル端末1005が接続された時のネットワークであり、無線LAN等の無線ネットワークにより実現される。
図5のように、通信装置1001は、ネットワークAにおいてはIPアドレス192.168.1.2が割り当てられ、ネットワークCにおいてはIPアドレス192.168.1.5が割り当てられている。モバイル端末1005は、ネットワークCにおいて、IPアドレス192.168.1.154が割り当てられている。PC−A1003は、ネットワークAにおいて、IPアドレス192.168.1.30が割り当てられている。ルータ1004は、ネットワークAにおいてはIPアドレス192.168.1.1が割り当てられ、ネットワークBにおいてはIPアドレス192.168.25.1が割り当てられている。PC−B1002は、ネットワークBにおいて、IPアドレス192.168.25.64が割り当てられている。
図1は、モバイル端末1005が接続されていない場合のネットワークトポロジ図である。図1では、図5と異なり、モバイル端末1005及びネットワークCが存在しない。
(通信装置の構成)
図7は本実施形態に係る通信装置1001の構成例を示すブロック図である。通信装置1001は、例えば、パーソナルコンピュータ(PC)やタブレット端末、スマートフォン等の情報処理装置により実現される。
102はCPU(Central Processing Unit、中央演算処理装置)である。CPU102は、オペレーティングシステム(OS)やアプリケーションプログラム等のコンピュータプログラムに基づいて他の構成要素と協働し、通信装置1001全体の動作を制御する。103はDRAM(書込み可能メモリ)であり、ワークメモリ(記憶部)として機能する。
104は有線LANモジュールであり、Ethernet(登録商標)110などの有線ネットワークを介した通信を行う通信部として機能する。有線LANモジュール104は、インタフェース(インタフェースAという)を介してEthernet(登録商標)110と接続されている。105は無線LANモジュールであり、無線ネットワークを介した無線通信を行う通信部として機能する。無線LANモジュール105は、インタフェース(インタフェースBという)を介してアンテナ111と接続されている。
106は検索部(ルーティングテーブル検索部)であり、所定の条件に従い後述するルーティングテーブル108を検索(探索)する。107は設定部(ルーティングテーブル設定部)であり、ルーティングテーブル108に対して値を設定する。
108はルーティングテーブルであり、通信インタフェースとネットワークを識別するネットワークアドレス(ネットワーク識別子)との対応関係を少なくとも示すルーティングエントリを複数有する。ルーティングテーブル108は、図7の例では、DRAM103に配置・保持されている。ルーティングテーブルの具体例については後述する。なお、本ブロック図では、説明の容易のため、検索部106、設定部107が独立したブロックとして書かれているが、CPU102で実行されるプログラムにより実現してもよい。
109はROM(読出し専用メモリ)であり、CPU102が実行するプログラムなどを格納する。111は無線LANのアンテナである。
なお、本実施形態では、一例として、通信装置1001が、有線LANと無線LANの2つの通信方式により通信可能な場合を説明するが、通信装置1001が備える通信インタフェースはこれらに限られない。例えば、有線LANと無線LANのいずれか一方の通信インタフェースを複数設けるようにしてもよい。また、通信方式は、有線LANや無線LANに限られない。例えば、無線通信方式として、Bluetooth(登録商標)や、NFC(Near Field Communication)を用いるようにしてもよい。また、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。
(ルーティングテーブル)
図8は、本実施形態の説明で使用するルーティングテーブル108の一例を示す図である。図8において、2012、2013、2015はルーティングテーブルのルーティングエントリである。ルーティングエントリ2012には、宛先IPアドレス192.168.1.0、マスク長 24、MTU(Maximum Transmission Unit) 1500、ネットワークAの通信インタフェースが設定されている。ルーティングエントリ2013には、宛先IPアドレスとしてデフォルト、ゲートウェイアドレス192.168.1.1、MTU 1500、ネットワークAの通信インタフェースが設定されている。ルーティングエントリ2015には、宛先IPアドレス192.168.1.154、マスク長 32、MTU 1500、ネットワークCの通信インタフェースが設定されている。
図2は、モバイル端末1005が接続されていない場合のルーティングテーブルの図である。図2のルーティングテーブル108では、図8と異なり、ネットワークCに対応するルーティングエントリ2015が存在しない。
(通信装置の動作)
通信装置1001の動作について、図1、図2、図5、図7、図8、図9を用いて説明する。図9は、本実施形態に係る通信装置1001の動作手順を表すフローチャートである。図9の各ステップは、通信装置1001のCPU102の制御に基づき実行される。
まず、図1のように、通信装置1001がネットワークAにのみ接続されているとする。この状態におけるルーティングテーブル108の構成は、図2のようになる。次に、モバイル端末1005が通信装置1001に接続し、通信装置1001とモバイル端末1005にIPアドレスが割り当てられ、図5に示すようにネットワークCが構成されたとする。これにより、通信装置1001は、ネットワークAとネットワークCに同時に接続される。図5に示すように、ネットワークAとネットワークCが同じネットワークアドレスで構成されたとする。この状態において、モバイル端末1005が通信装置1001にパケットを送信した場合の通信装置1001の動作について、図9のフローチャートに従い説明する。
通信装置1001は、パケットを受信すると(S201)、パケットの送信元アドレスをキーにルーティングテーブルを検索する(S202)。すなわち、S201、S202では、複数の通信インタフェースのいずれかを介してパケットを受信したことに応じて、当該パケットの送信元アドレスが属するネットワークに係るルーティングエントリを、ルーティングテーブルにおいて検索する。検索の結果、デフォルトエントリを除くルーティングエントリが発見されたか否かを判定する(S203)。発見された場合(S203でYES)はS204へ進み、発見されなかった場合(S203でNO)はS206へ進む。図5の例では、送信元アドレスは192.168.1.154であるから、図2のルーティングテーブル108においては、ルーティングエントリ2012がこの送信元アドレスに対応するエントリとして発見される。送信元アドレスの最上位ビットからマスク長の24ビットを切り出した192.168.1.0は、ルーティングエントリ2012の宛先IPアドレスに一致するためである。
S204では、パケットを受信した通信インタフェースと、S203で発見したルーティングテーブルエントリの通信インタフェースとを比較する。これらが同一である場合(S205でYES)はS207へ進み、異なる場合(S205でNO)はS206へ進む。上記の例では、図2のルーティングエントリ2012の通信インタフェースはネットワークAであるのに対し、受信したパケットの通信インタフェースはネットワークCであり、両者は異なる。そこで、S206へ進む。
S206では、受信したパケットの送信元アドレスに対応するルーティングエントリをルーティングテーブル108に登録する。上記の例では、図8のように、ルーティングエントリ2015を登録する。なお、パケットの受信に応じてルーティングエントリを登録する場合、ネットワークアドレスでなく機器のIPアドレスそのもので比較できるように、ネットワークマスク長を32ビットとして登録する。このように、送信元が属するネットワークに係るルーティングエントリがルーティングテーブルにおいて発見されたものの、そのネットワークI/Fとパケットを受信したネットワークI/Fとが一致しない場合は新たなルーティングエントリを追加する。すなわち、パケットを受信した通信インタフェースと送信元アドレスとを対応付けたルーティングエントリを前記ルーティングテーブルに登録する。これにより、ルーティングテーブルを参照して、パケットを受信した通信インタフェースから、当該パケットに対する応答パケットを送出することが可能となる。
次に、図8のようにルーティングエントリ2015が登録された後に、さらに、通信装置1001がモバイル端末1005のパケットを受信したの動作について、図9に従い説明する。
S201でモバイル端末1005のパケットを受信すると、通信装置1001は、パケットの送信元アドレスをキーにルーティングテーブルを検索する(S202)。この例では、図8に示すルーティングエントリ2015が発見される(S203でYES)。
そこで、S204へ進み、パケットを受信した通信インタフェースとルーティングエントリ2015の通信インタフェースを比較する。この例では通信インタフェースが同じなので(S205でYES)、ルーティングエントリを登録せずに、S207へ進んで受信処理を継続する。
次に、図8のようにルーティングエントリ2015が登録された後に、通信装置1001がパケットをモバイル端末1005へ送信する際の通信インタフェースの選択について、図5と図8を用いて説明する。
前述のように、モバイル端末1005のIPアドレスは、192.168.1.154である。そして、図8のルーティングテーブル108は、2012、2013、2015と3つのルーティングエントリがある。ルーティングエントリ2012のネットワークマスク長は24ビットなので、ルーティングエントリ2012におけるモバイル端末1005が接続しているネットワークCのネットワークアドレスは、192.168.1.0である。アドレス192.168.1.0は、ルーティングエントリ2012の宛先IPアドレスの上位24ビットと一致する。続いてルーティングエントリ2015とも比較すると、このエントリのネットワークマスク長は32ビットなので、ルーティングエントリ2015におけるモバイル端末1005についてのネットワークアドレスは、192.168.1.154となる。このネットワークアドレスは、ルーティングエントリ2015の宛先IPアドレスと一致する。そして、ルーティングエントリ2012のネットワークマスク長が24ビット、ルーティングエントリ2015のネットワークマスク長が32ビットであるので、より長いビット長でビットが一致しているルーティングエントリ2015が選択される。ルーティングエントリ2015の通信インタフェースはネットワークCであり、ゲートウェイのIPアドレスが設定されていない。そのため、送信する通信インタフェースはネットワークCであり、モバイル端末1005に直接送信することが分かる。
次に、図8のようにルーティングエントリ2015が登録された後に、通信装置1001がPC−A1003へパケットを送信する場合の通信インタフェースの選択について説明する。
PC−A1003のIPアドレスは、192.168.1.30である。ルーティングエントリ2012との比較では、PC−A1003が接続しているネットワークAのネットワークアドレスが192.168.1.0であるから、ルーティングエントリ2012の宛先アドレスは192.168.1.0で一致する。ルーティングエントリ2015との比較では、PC−A1003についてのネットワークアドレスが192.168.1.30であるから、これはルーティングエントリ2015の宛先アドレス192.168.1.154と一致しない。そのため、ルーティングエントリ2012が選択され、通信インタフェースはネットワークAが選択される。
上記のように、通信装置1001は、パケットを受信した際に、パケットの送信元IPアドレスからルーティングテーブルを検索する。該当するルーティングエントリが存在した場合は、そのルーティングエントリの通信インタフェースとパケットを受信した通信インタフェースとを比較する。比較した結果、これらの通信インタフェースが異なる場合、受信したパケットの送信元IPアドレスをルーティングテーブルのエントリとして登録する。このように通信装置1001において、送信元IPアドレスと通信インタフェースとが関連付けられてルーティングテーブルに登録されるため、パケットを受信した通信インタフェースから、応答パケットを送信できるようになる。
また、パケットを受信した際に、パケットの送信元IPアドレスからルーティングテーブルを検索し、該当するルーティングエントリが見つからなかった場合は、送信元IPアドレス宛のルーティングテーブルのエントリを登録する。このように、パケットの送信元IPアドレスに対応するルーティングエントリがルーティングテーブルに登録されていない場合においても、送信元IPアドレスと通信インタフェースとが関連付けられてルーティングテーブルに登録される。したがって、送信相手が送信したパケットを受信した通信インタフェースから、送信できるようになる。
次に、図3に示すように、ネットワークA、ネットワークB、ネットワークCのネットワークアドレスが全てが異なる場合の動作例について、図2、図3、図9、図10を用いて説明する。この状態において、通信装置1001のルーティングテーブル108は、図2のように、ネットワークCについてのルーティングエントリが登録されておらず、モバイル端末1005が通信装置1001にパケットを送信したとする。通信装置1001は、パケットを受信すると(図9のS201)、パケットの送信元アドレスをキーにルーティングテーブルを検索する(S202)。図2のルーティングテーブル108ではデフォルトエントリを除くルーティングエントリが発見されないので(S203でNO)、図10のルーティングエントリ2020を登録する(S206)。すなわち、検索の結果、送信元が属するネットワークに係るルーティングエントリが発見されなかったときは、パケットを受信した通信インタフェースと送信元アドレスとを対応付けたルーティングエントリをルーティングテーブルに登録する。これにより、以後、ネットワークCを経由して、モバイル端末1005に対してパケットを送信することが可能となる。
次に、図11のように、ネットワークBとネットワークCのネットワークアドレスが同一の場合に、通信装置1001が、モバイル端末1005へパケットを送信する際の通信インタフェースの選択について、図11と図12を用いて説明する。図11の例では、モバイル端末1005のIPアドレスは、192.168.25.154である。また、この例では、通信装置1001は、図12に示されるルーティングテーブル108を保持している。この場合、ルーティングエントリ2012との比較では、モバイル端末1005が接続しているネットワークCのネットワークアドレス192.168.25.0は、このエントリの宛先アドレス192.168.1.0と一致しない。ルーティングエントリ2016との比較では、モバイル端末1005についてのネットワークアドレス192.168.25.154は、このエントリの宛先アドレス192.168.25.154と一致する。そのため、ルーティングエントリ2016が選択され、通信インタフェースはネットワークCが選択される。よって、図11のように、ネットワークBとネットワークCのネットワークアドレスが同一の場合であっても、ネットワークCを経由して、モバイル端末1005に対してパケットを送信することが可能となる。
次に、図11のように、ネットワークBとネットワークCのネットワークアドレスが同一の場合に、通信装置1001がPC−B1002へパケットを送信する際の通信インタフェースの選択について、図11と図12を用いて説明する。図11の例では、PC−B1002のIPアドレスは、192.168.25.64である。ルーティングエントリ2012との比較では、PC−B1002のネットワークアドレス192.168.25.0は、このエントリの宛先アドレス192.168.1.0と一致しない。ルーティングエントリ2016との比較でも、PC−B1002のネットワークアドレスは、このエントリの宛先アドレス192.168.25.154と一致しない。そして、他に一致するルーティングエントリもないため、デフォルトルーティングエントリ2013が選択され、送信するパケットをネットワークAに接続されているルータ1004へ送信し、ルータ1004がパケットを中継することになる。したがって、PC−B1002へパケットを到達することが可能である。
以上のように、通信装置1001は、パケットを受信した際に、パケットの送信元IPアドレスからルーティングテーブルを検索する。該当するルーティングエントリが存在する場合、そのルーティングエントリの通信インタフェースとパケットを受信した通信インタフェースを比較する。比較の結果、通信インタフェースが異なる場合は、通信装置1001は、送信元IPアドレス宛のルーティングテーブルのエントリを登録する。これにより、ルータを越えた先のネットワークと、受信したパケットの送信元IPアドレスのネットワークアドレスが同一になる場合でも、通信装置1001は、パケットを受信した通信インタフェースから、応答パケットを送信することができる。
<<実施形態2>>
本実施形態では、受信したパケットに対する応答の要否を判別し、応答が必要な場合にのみルーティングエントリの登録を行うことで、不必要なルーティングテーブルの更新を行わない構成を説明する。本実施形態に係る通信装置1001の動作について、図1、図2、図5、図8、図13を用いて説明する。図13は、本実施形態に係る通信装置1001の動作手順を表すフローチャートである。図13の各ステップは、通信装置1001のCPU102の制御に基づき実行される。
まず、図1のように、通信装置1001がネットワークAにのみ接続されているとする。この状態におけるルーティングテーブル108の構成は、図2のようになっている。次に、モバイル端末1005が接続し、モバイル端末1005にIPアドレスが割り当てられ、図5に示すようにネットワークCが構成されたとする。これにより、通信装置1001は、ネットワークAとネットワークCに同時に接続される。
そして、図5に示すように、ネットワークAとネットワークCが同じネットワークアドレス(192.168.1.0)で構成されたとする。機器1001がパケットを受信すると(図13のS1601)、S1602において要求パケットかどうか調べる。ここでいう要求パケットとは、要求パケットの送信側が受信側に対して応答を要求するパケットである。要求パケットの例としては、TCPの接続要求であるTCP SYNパケット、ICMP Echoパケットなどがある。TCPのSYNパケットを受信した場合、TCP SYN ACKパケットを応答することで接続の受け付けることを通知する。ICMP Echoパケットの受信した場合は、ICMP Echo Replyパケットを送信する。このようにして、S1602では、受信したパケットに対して応答をする必要があるか否かを判定する。応答が必要な場合、すなわち、受信したパケットが要求パケットである場合(S1602でYES)はS1603へ進む。必要でない場合、すなわち、要求パケットでない場合(S1602でNO)はS1608へ進み、ルーティングテーブルの登録・更新を行わずに、受信処理を継続する。
S1603以降の処理は、図9の各ステップと同様である。すなわち、S1603では、パケットの送信元アドレスをキーにルーティングテーブルを検索する。検索の結果、デフォルトエントリを除くルーティングエントリが発見されたか否かを判定する(S1604)。発見された場合(S1604でYES)はS1605へ進み、発見されなかった場合(S1604でNO)はS1607へ進む。上記の例では、送信元アドレスは192.168.1.154であるから、図2のルーティングテーブル108においては、ルーティングエントリ2012がこの送信元アドレスに対応するエントリとして発見される。
S1605では、パケットを受信した通信インタフェースと、検索により発見されたルーティングテーブルエントリ(上記の例では2012)の通信インタフェースとを比較する。これらが同一の場合(S1605でYES)はS1608へ進み、異なる場合(S1605でNO)はS1607へ進む。上記の例では、図2のルーティングエントリ2012では通信インタフェースはネットワークAであり、受信したパケットの通信インタフェースはネットワークCであるから、両者は異なる。そこでS1607へ進むことになる。
S1607では、パケットの送信元アドレスと通信インタフェースを対応付けたルーティングエントリをルーティングテーブル108に登録する。上記の例では、図8のルーティングエントリ2015を登録することになる。
以上のように、本実施形態では、通信装置が受信したパケットに応答する必要があるか否かを判定し、必要な場合のみ、ルーティングテーブルにルーティングエントリを追加する。このため、送信する必要のない受信パケットに対して、ルーティングエントリを追加することがなくなり、誤動作や不要な処理を防ぐことが可能となる。
<<実施形態3>>
本実施形態では、パケットの受信に応じて登録したルーティングエントリを、パケットの送信元とのコネクション終了等に応じて、ルーティングテーブルから削除する構成を説明する。本実施形態に係る通信装置1001の動作について、図14、図15、図16を用いて説明する。図14は、パケットを受信した場合のフローチャート、図15は本実施形態におけるルーティングテーブル108の例、図16はコネクション切断時のフローチャートである。図14、図16の各ステップは、通信装置1001のCPU102の制御に基づき実行される。
(ルーティングテーブル)
図15は、本実施形態におけるルーティングテーブル108の例を示す図である。本実施形態では、ルーティングエントリにフラグと参照カウンタの項目が追加されている。フラグは、TCP SYNパケットを受信したことにより追加されたエントリかどうかを判定するために使用される。参照カウンタは、TCP SYNパケットを受信し、ルーティングエントリを使用する場合にインクリメントするカウンタである。
(パケット受信の際の動作)
図14のS701においてパケットを受信すると、通信装置1001は、受信したパケットの送信元IPアドレスでルーティングテーブル108を検索する(S702)。
ルーティングエントリが発見されなかった場合(S703でNO)は、S706へ進み、受信したパケットが接続要求(TCP SYN)パケットかどうかを判定する。ルーティングエントリが発見された場合(S703でYES)は、受信したパケットの通信インタフェースとルーティングエントリの通信インタフェースを比較する(S704)。両者が異なる場合(S705でNO)はS706へ進み、同一である場合(S705でYES)はS708へ進む。
S706では、S701で受信したパケットが接続要求(TCP SYN)パケットかどうか判断する。これにより、受信したパケットが接続要求(TCP SYN)パケットであると判定された場合(S706でYES)は、S707へ進む。S707では、参照カウンタを1に、フラグにSYNを設定し、ルーティングエントリを登録する。そして、S712へ進んで受信処理を継続する。
S706において、受信したパケットが接続要求(TCP SYN)パケットではないと判定された場合(S706でNO)は、S711へ進む。S711では、参照カウンタとフラグを設定せずにルーティングエントリを登録する。そして、S712へ進んで受信処理を継続する。
S708では、S701で受信したパケットが接続要求パケット(TCP SYN)かどうか判定する。接続要求パケット(TCP SYN)でない場合(S708でNO)は、S712へ進んで受信処理を継続する。接続要求パケット(TCP SYN)である場合(S708でYES)は、ルーティングエントリのフラグにSYNマークがあるかどうかを判定する(S709)。SYNマークがない場合(S709でNO)は、S712へ進んで受信処理を継続する。SYNマークがあった場合(S709でYES)は、ルーティングエントリの参照カウンタをインクリメントする(S710)。そして、S712へ進み、受信処理を継続する。
(コネクション切断の動作)
次に、TCP通信を終え、TCPのコネクションを切断し、TCPのコネクション情報を削除する場合の動作について、図16を用いて説明する。コネクションが削除されると(S901)、S902へ進む。TCPのコネクション情報は、宛先IPアドレス、送信元IPアドレス、宛先ポート番号、送信元ポート番号の組み合わせを含んでいる。S902では、TCPのコネクション情報の中の宛先IPアドレスをキーとして、ルーティングテーブル108を検索する。発見されなかった場合(S903でNO)は、S908へ進んで、コネクション情報削除処理を継続する。発見された場合(S903でYES)は、S904へ進む。
S904では、発見されたルーティングエントリのフラグにSYNのマークがあるかどうかを判定する。SYNマークが存在しない場合(S904でNO)は、S908へ進んで、コネクション情報削除処理を継続する。SYNマークが存在した場合(S904でYES)は、S905へ進む。
S905では、ルーティングエントリの参照カウンタをデクリメントする。そして、S906において、ルーティングエントリの参照カウンタが0かどうかを判定する。0でない場合(S906でNO)は、S908へ進んで、コネクション情報削除処理を継続する。0である場合(S906でYES)は、S907へ進む。S907では、参照カウンタが0のルーティングエントリを削除し(S907)、S908へ進んでコネクション情報削除処理を継続する。
以上のように、本実施形態では、コネクション切断後、コネクション情報を削除する場合に、接続要求パケットによって追加されたルーティングエントリを削除する。このため、不要なルーティングエントリを削除して誤作動を防ぎ、必要なルーティングエントリのみをルーティングテーブルに保持することが可能となる。
なお、ルーティングエントリをルーティングテーブルから削除するのは、受信したパケットの送信元とのコネクションが終了した場合に限られない。例えば、ルーティングテーブルにルーティングエントリを登録してから所定時間が経過したことに応じて、当該ルーティングエントリをルーティングテーブルから削除するようにしてもよい。具体的には、例えば、UDPやICMPなど接続を持たないプロトコルにおいて、ルーティングエントリを削除するためのタイマを設け、当該タイマが一定時間を計時したことに応じて切断処理を行ってもよい。
以上の各実施形態では、複数の通信インタフェースを備えた通信装置において、通信インタフェースのいずれかを介してデータを受信した場合、データを受信した通信インタフェースから、データに対する応答データを送出する。具体的には、受信したパケットの送信元IPアドレスからルーティングテーブルを検索し、検索したルーティングエントリの通信インタフェースがパケットを受信したインタフェースと異なる場合は、送信元のルーティングエントリを登録する。これにより、ルーティングテーブルを用いて、通信インタフェースを適切に選択し、送信するパケットの宛先IPアドレスに応じた適切な通信インタフェースからパケットを送信することが可能となる。
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1001:通信装置、102:CPU、103:DRAM、104:有線LANモジュール、105:無線LANモジュール、106:検索部、107:設定部、108:ルーティングテーブル、109:ROM、110:LAN、111:アンテナ

Claims (9)

  1. 複数の通信インタフェースを有する通信装置であって、
    通信インタフェースとネットワークを識別するネットワーク識別子とを対応付けて記憶部に保持させる保持手段と、
    他の通信装置から第1の通信インタフェースを介してパケットを受信した場合に、前記他の通信装置が属するネットワーク識別子と前記第1の通信インタフェースとは異なる第2の通信インタフェースとが対応付けられている場合、前記第1の通信インタフェースと前記他の通信装置を識別する識別情報とを対応付けて前記記憶部に登録する登録手段と、
    前記登録手段により登録された前記対応付けに基づいて、前記第1の通信インタフェースを介して前記他の通信装置にパケットを送信する送信手段と、
    を有することを特徴とする通信装置。
  2. 前記ネットワーク識別子はIP(Internet Protocol)層におけるネットワークアドレスであることを特徴とする請求項1記載の通信装置。
  3. 前記送信手段は、前記登録手段により登録された対応付けに基づいて、前記他の通信装置から受信したパケットに対する応答パケットを前記第1の通信インタフェースを介して送信することを特徴とする請求項1または2に記載の通信装置。
  4. 前記他の通信装置から受信したパケットに対する応答パケットを送信するか否かを判別する判別手段を更に有し、
    前記送信手段は、前記判別手段により前記応答パケットを送信すると判別された場合に、当該応答パケットを送信することを特徴とする請求項に記載の通信装置。
  5. 前記他の通信装置と切断した場合、前記登録手段により登録された対応付けを前記記憶部から削除する削除手段を更に有することを特徴とする請求項1からのいずれか1項に記載の通信装置。
  6. 前記登録手段により登録されてから所定時間が経過すると、前記登録手段により登録された対応付けを前記記憶部から削除する削除手段を更に有することを特徴とする請求項1からのいずれか1項に記載の通信装置。
  7. 前記他の通信装置と所定時間、通信が無かった場合、前記登録手段により登録された対応付けを前記記憶部から削除する削除手段を更に有することを特徴とする請求項1からのいずれか1項に記載の通信装置。
  8. 複数の通信インタフェースを有する通信装置の制御方法であって、
    通信インタフェースとネットワークを識別するネットワーク識別子とを対応付けて記憶部に保持させる保持工程と、
    他の通信装置から第1の通信インタフェースを介してパケットを受信した場合に、前記他の通信装置が属するネットワーク識別子と前記第1の通信インタフェースとは異なる第2の通信インタフェースとが対応付けられている場合、前記第1の通信インタフェースと前記他の通信装置を識別する識別情報とを対応付けて前記記憶部に登録する登録工程と、
    登録された前記対応付けに基づいて、前記第1の通信インタフェースを介して前記他の通信装置にパケットを送信する送信工程と、
    を有することを特徴とする制御方法。
  9. コンピュータを請求項1からのいずれか1項に記載の通信装置が有する各手段として機能させるためのコンピュータプログラム。
JP2015117778A 2015-06-10 2015-06-10 通信装置及びその制御方法、コンピュータプログラム Active JP6470640B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015117778A JP6470640B2 (ja) 2015-06-10 2015-06-10 通信装置及びその制御方法、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015117778A JP6470640B2 (ja) 2015-06-10 2015-06-10 通信装置及びその制御方法、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2017005516A JP2017005516A (ja) 2017-01-05
JP6470640B2 true JP6470640B2 (ja) 2019-02-13

Family

ID=57754481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015117778A Active JP6470640B2 (ja) 2015-06-10 2015-06-10 通信装置及びその制御方法、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP6470640B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7067442B2 (ja) * 2018-11-29 2022-05-16 沖電気工業株式会社 画像形成装置
JP7402613B2 (ja) * 2019-03-27 2023-12-21 キヤノン株式会社 情報処理装置、通信制御方法とプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099319B2 (en) * 2002-01-23 2006-08-29 International Business Machines Corporation Virtual private network and tunnel gateway with multiple overlapping, remote subnets
JP2003348228A (ja) * 2002-05-27 2003-12-05 Yozan Inc ネットワーク通信管理装置、通信装置及び通信装置ネットワーク通信管理システム
JP2005033351A (ja) * 2003-07-09 2005-02-03 Hitachi Information Technology Co Ltd パケット中継装置
JP4723368B2 (ja) * 2005-12-19 2011-07-13 富士通株式会社 中継装置
JP4899664B2 (ja) * 2006-06-28 2012-03-21 富士通株式会社 通信装置、アドレス学習方法およびアドレス学習プログラム
JP5659826B2 (ja) * 2011-01-31 2015-01-28 株式会社リコー 通信装置、通信方法及び通信プログラム

Also Published As

Publication number Publication date
JP2017005516A (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
US9712485B2 (en) Dynamic DNS-based service discovery
US10715482B2 (en) Wide area service discovery for internet of things
US10574570B2 (en) Communication processing method and apparatus
JP6195014B2 (ja) 通信システム、通信方法、中継装置、および、通信プログラム
JP2004336208A (ja) ルータ、アドレス識別情報管理サーバ
US9979643B2 (en) Communication apparatus, communication method, and computer-readable recording medium
US10904202B2 (en) Packet routing using a network device
EP3026872A1 (en) Packet forwarding method, apparatus, and system
JP6118122B2 (ja) 通信装置及びその制御方法、プログラム
US11178101B1 (en) Method and apparatus of establishing a connection between devices using cached connection information
US20220286381A1 (en) Method for creating data transmission entry and related device
TWI513239B (zh) 網路設備及其進行路由轉發的方法
CN105812495A (zh) 报文转发方法及设备
US7940760B2 (en) Method and apparatus for discovering component in at least one sub-network
US7539192B2 (en) Gateway and control method thereof
JP6470640B2 (ja) 通信装置及びその制御方法、コンピュータプログラム
JP2003258859A (ja) 通信システム、通信方法、転送装置及びネットワーク管理装置
CN105429880A (zh) 网络设备及其进行路由转发的方法
US20170078196A1 (en) Communication system, control apparatus, and control method
WO2015184979A1 (zh) 处理报文、发送信息、接收信息的方法及装置
JP2016178530A (ja) 通信システム、通信端末、通信方法、プログラム
JP6435002B2 (ja) 通信装置及びその制御方法、プログラム
JP2013031113A (ja) パケット転送方法およびパケット転送装置
JP2009231986A (ja) 通信装置
KR101311864B1 (ko) 분산형 구조를 이용한 데이터 통신 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181015

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190118

R151 Written notification of patent or utility model registration

Ref document number: 6470640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151