特許第6435002号(P6435002)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許6435002-通信装置及びその制御方法、プログラム 図000002
  • 特許6435002-通信装置及びその制御方法、プログラム 図000003
  • 特許6435002-通信装置及びその制御方法、プログラム 図000004
  • 特許6435002-通信装置及びその制御方法、プログラム 図000005
  • 特許6435002-通信装置及びその制御方法、プログラム 図000006
  • 特許6435002-通信装置及びその制御方法、プログラム 図000007
  • 特許6435002-通信装置及びその制御方法、プログラム 図000008
  • 特許6435002-通信装置及びその制御方法、プログラム 図000009
  • 特許6435002-通信装置及びその制御方法、プログラム 図000010
  • 特許6435002-通信装置及びその制御方法、プログラム 図000011
  • 特許6435002-通信装置及びその制御方法、プログラム 図000012
  • 特許6435002-通信装置及びその制御方法、プログラム 図000013
  • 特許6435002-通信装置及びその制御方法、プログラム 図000014
  • 特許6435002-通信装置及びその制御方法、プログラム 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6435002
(24)【登録日】2018年11月16日
(45)【発行日】2018年12月5日
(54)【発明の名称】通信装置及びその制御方法、プログラム
(51)【国際特許分類】
   H04L 12/28 20060101AFI20181126BHJP
【FI】
   H04L12/28 200A
【請求項の数】9
【全頁数】14
(21)【出願番号】特願2017-59611(P2017-59611)
(22)【出願日】2017年3月24日
(62)【分割の表示】特願2013-23824(P2013-23824)の分割
【原出願日】2013年2月8日
(65)【公開番号】特開2017-108470(P2017-108470A)
(43)【公開日】2017年6月15日
【審査請求日】2017年3月24日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】井戸 哲男
【審査官】 大石 博見
(56)【参考文献】
【文献】 特開2007−274282(JP,A)
【文献】 特開2010−157875(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28
(57)【特許請求の範囲】
【請求項1】
通信装置であって、
他の通信装置とTCPコネクションを確立する際に、前記他の通信装置へ送信するパケットを中継する中継装置のIPアドレスを、当該中継装置のIPアドレスを経路情報として有するルーティングテーブルを利用して判別する判別手段と、
MACアドレスとIPアドレスとを対応付けたARPテーブルを利用して、前記判別手段により判別されたIPアドレスに対応するMACアドレスを特定する特定手段と、
前記他の通信装置とのTCPコネクションに付随する情報であるコネクション管理情報に、前記他の通信装置のIPアドレスと、前記特定手段により特定されたMACアドレスと、を付加して保持する保持手段と、
前記保持手段により保持された前記コネクション管理情報に含まれる前記他の通信装置のIPアドレスと前記特定手段により特定されたMACアドレスとを用いて、前記他の通信装置へ送信するパケットを生成する生成手段と、
を有することを特徴とする通信装置。
【請求項2】
前記生成手段により生成された前記パケットを送信する第1の送信手段を更に有することを特徴とする請求項1に記載の通信装置。
【請求項3】
前記特定手段が、前記判別手段により判別されたIPアドレスに対応するMACアドレスの特定に失敗した場合、ARP要求を送信する第2の送信手段を更に有することを特徴とする請求項1又は2に記載の通信装置。
【請求項4】
前記第2の送信手段により送信された前記ARP要求に対する応答に基づいて、前記ARPテーブルを更新する更新手段を更に有することを特徴とする請求項に記載の通信装置。
【請求項5】
前記更新手段により更新された前記ARPテーブルを利用して、前記特定手段は、前記判別手段により判別されたIPアドレスに対応するMACアドレスを特定することを特徴とする請求項に記載の通信装置。
【請求項6】
前記更新手段により更新された前記ARPテーブルを利用したにも拘らず、前記特定手段が、前記判別手段により判別されたIPアドレスに対応するMACアドレスの特定に失敗した場合、前記保持手段は、前記コネクション管理情報に含まれる前記特定手段により特定されたMACアドレスを無効に設定することを特徴とする請求項に記載の通信装置。
【請求項7】
前記生成手段は、TCPレイヤにおける処理の一部として、前記他の通信装置へ送信するパケットのIPヘッダの一部、または、MACヘッダの一部を生成することを特徴とする請求項1からのいずれか1項に記載の通信装置。
【請求項8】
通信装置の制御方法であって、
他の通信装置とTCPコネクションを確立する際に、前記他の通信装置へ送信するパケットを中継する中継装置のIPアドレスを、当該中継装置のIPアドレスを経路情報として有するルーティングテーブルを利用して判別する判別工程と、
MACアドレスとIPアドレスとを対応付けたARPテーブルを利用して、前記判別工程において判別されたIPアドレスに対応するMACアドレスを特定する特定工程と、
前記他の通信装置とのTCPコネクションに付随する情報であるコネクション管理情報に、前記他の通信装置のIPアドレスと、前記特定工程において特定されたMACアドレスと、を付加して保持する保持工程と、
前記コネクション管理情報に含まれる前記他の通信装置のIPアドレスと前記特定工程において特定されたMACアドレスとを用いて、前記他の通信装置へ送信するパケットを生成する生成工程と、
を有することを特徴とする制御方法。
【請求項9】
コンピュータを、請求項1からのいずれか1項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットの送信先となる端末との通信をネットワークを介して行う通信装置及びその制御方法、プログラムに関するものである。
【背景技術】
【0002】
インターネットで標準的に利用されているプロトコルの一つにTCP及びIPがある。IPはOSI参照モデルのネットワークレイヤに対応し、TCPはトランスポートレイヤにあたる。
【0003】
TCP通信処理の実装において、TCP通信の制御に関わる様々な情報が格納されている転送制御ブロックTCBを用いることが一般的である。TCBはソフトウェア実装において構造体で実現されるようなTCPコネクション毎の管理領域である。TCBには遷移状態、シーケンス番号、ACK番号、ウインドウサイズ等のTCP通信に必要な情報が格納される。TCBに格納された情報を参照したり、情報を更新したりすることで、TCP送受信処理が実現される。
【0004】
実際に、TCPを用いてネットワーク上の相手端末と通信する場合には、TCPの他に下位レイヤのプロトコルが必要となり、それらを使用しての通信となる。具体的な一例としては、TCPの通信単位であるTCPセグメントをIPパケット化し、さらにはそのIPパケットをイーサネットフレーム化することで、イーサネット(登録商標)を利用してネットワークへアクセスする。ここで、ネットワーク上の相手端末は、MACアドレスによる識別が可能である。送信したイーサネットフレームの宛先MACアドレスとして相手端末のMACアドレスを指定することで、相手端末でイーサネットフレームを受信することができる。相手端末では、受信したイーサネットフレームからIPパケットを取り出し、IPパケットからTCPセグメントを取り出すことができる。これにより、TCP通信が可能となる。
【0005】
同様に、イーサネットの代わりに無線LANを使うことも可能である。
【0006】
上述したように、イーサネットフレームの宛先MACアドレスに相手端末のMACアドレスを指定することで、ネットワーク上の相手端末まで正しく通信ができる。つまり、送信元では、相手端末のMACアドレスを知っておく必要がある。これを実現する方法がARP及びARPテーブルである。
【0007】
ARPテーブルは、ARPというアドレス解決プロトコルによって作成、更新及び削除される。時には、ユーザによっても操作される。ARPテーブルは、具体的には、ネットワーク上の端末のMACアドレスとIPアドレスを対にして記憶した情報エントリの集合である。IPパケットの送信毎に、宛先IPアドレスから対応するMACアドレスを検索する処理がARPテーブルに対して行われる。これにより、宛先MACアドレスが決定し、ネットワーク上の相手端末を識別して通信が可能となる。
【0008】
しかし、IPパケット送信毎に、ARPテーブルから宛先MACアドレスを決定することは処理負荷が大きい。具体的には、ARPテーブルから宛先IPアドレスに対応する情報エントリの検索を行い、対象の情報エントリが見つかると、そこから宛先MACアドレスが決定され、それによりイーサネットフレームのヘッダを作成することができる。つまり、ネットワーク上に端末が複数ある場合、その端末数が増加するとARPテーブルで管理する情報エントリ数も増加し、IPパケット送信毎に実施される情報エントリの検索処理負荷が増大する。
【0009】
そこで、検索処理を高速化するためにハッシュ技術を用いる方法が提案されている(特許文献1)。この方法をARPテーブルから情報エントリを検索する処理に利用することで、検索処理の負荷を軽減することが可能である。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特許第4888369号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、近年のイーサネットでは、より高速な通信が可能となる規格が出てきている。無線LANにおいても同様に高速化が進んでいる。このような高速なネットワークにおいて通信を行う場合には、ARPテーブル参照における検索処理の更なる高速化が望まれている。
【0012】
本発明は上記の課題を解決するためになされたものであり、テーブル参照処理の軽減を実現し、より高速なTCP/IP通信を提供することである。
【課題を解決するための手段】
【0013】
上記の目的を達成するための本発明による通信装置は以下の構成を備える。即ち、
通信装置であって、
他の通信装置とTCPコネクションを確立する際に、前記他の通信装置へ送信するパケットを中継する中継装置のIPアドレスを、当該中継装置のIPアドレスを経路情報として有するルーティングテーブルを利用して判別する判別手段と、
MACアドレスとIPアドレスとを対応付けたARPテーブルを利用して、前記判別手段により判別されたIPアドレスに対応するMACアドレスを特定する特定手段と、
前記他の通信装置とのTCPコネクションに付随する情報であるコネクション管理情報に、前記他の通信装置のIPアドレスと、前記特定手段により特定されたMACアドレスと、を付加して保持する保持手段と、
前記保持手段により保持された前記コネクション管理情報に含まれる前記他の通信装置のIPアドレスと前記特定手段により特定されたMACアドレスとを用いて、前記他の通信装置へ送信するパケットを生成する生成手段と、
を有する。
【発明の効果】
【0014】
本発明によれば、TCP送信時の処理においてARPテーブルが記憶されている主記憶へのアクセスが不要となり、またARPテーブルから対象のエントリを探す検索処理も不要になることで処理負荷が軽減され、より高速なTCP通信を実現することができる。
【図面の簡単な説明】
【0015】
図1】実施形態1の通信端末の機能構成を示すブロック図である。
図2】実施形態1の処理を示すフローチャートである。
図3】実施形態1のシステム構成を示す図である。
図4】実施形態1のルーティングテーブルの例を示す図である。
図5】実施形態1のARPテーブルの例を示す図である。
図6】実施形態1の相手端末のNIC変更時の例を占めず図である。
図7】実施形態1のパケット不達発生時のフローチャートである。
図8】実施形態1のARPテーブル更新の例を示す図である。
図9】実施形態2のシステム構成を示す図である。
図10】実施形態2のARPテーブルの例を示す図である。
図11】実施形態2のゲートウェイ変更時の例を示す図である。
図12】実施形態2のゲートウェイ変更時のフローチャートである。
図13】実施形態2のルーティングテーブル変更の例を示す図である。
図14】実施形態2のARPテーブルの例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【0017】
<実施形態1>
Ethernet(登録商標)(イーサネット)を使って、ネットワークへTCP送信を通信端末(通信装置)から行う場合の処理を説明する。
【0018】
図1は通信端末の機能構成を示すブロック図である。
【0019】
ルーティングテーブル101は、次の送信先IPアドレスを経路情報として保持する。ARPテーブル102は、ネットワーク上の通信端末のIPアドレスとMACアドレスを対応づけて管理する。コネクション管理テーブル103は、TCP通信の各コネクションに付随する情報であるコネクション管理情報(TCB)を保持する。
【0020】
データメモリ104は、画像データ等のユーザやアプリケーションが扱うデータを記憶する。アプリケーション処理部105は、アプリケーションを実行し、データメモリ104に記録されたデータを参照したり、そのデータをTCP処理部106へ渡したりする。また、アプリケーション処理部105は、TCP処理部106からデータを受け取り、それをデータメモリ104へ記録する。
【0021】
TCP処理部106は、コネクション管理テーブル103を使用してTCPのプロトコル処理を行う。IP処理部107は、IPのプロトコル処理を行う。MAC処理部108は、Ethernet−MACデバイスを制御してMACのプロトコル処理を行う。PHY処理部109は、Ethernet−PHYデバイスを制御してPHYのプロトコル処理を行う。尚、PHYは、ネットワークにおけるプロトコルの機能を表したOSI参照モデルにおいて、最も物理的な接続形式を規定している通信モデルであり、全7レイヤの内、第1レイヤ目に位置する物理レイヤを意味する。
【0022】
ルート決定部110は、ルーティングテーブル101を参照して、次の送信先IPアドレスを決定する。宛先MACアドレス決定部111は、ARPテーブル102を参照して次の送信先IPアドレスに対応づけられた次の送信先MACアドレスを決定する。
【0023】
制御部112は、通信処理全体を統制し、宛先IPアドレスと次の送信先MACアドレスをTCBとしてコネクション管理テーブル103に保存する。また、制御部112は、ARPテーブル102の更新が発生した場合、コネクション管理テーブル103の更新を実施するように制御する。更に、制御部112は、コネクション管理テーブル103に保存されているTCBを利用して、送信用のパケットを作成する。
【0024】
以下、図2のフローチャートに従って説明する。また、システム構成を図3に示す。通信端末(図1)である自端末1と相手端末2がローカルネットワーク3上に存在する構成である。
【0025】
自端末1のIPアドレスが192.168.1.10、MACアドレスがaa:aa:aa:aa:aa:aaであるとする。また、相手端末2のIPアドレスが192.168.1.11、MACアドレスがbb:bb:bb:bb:bb:bbであるとする。
【0026】
まず、ステップS101として、自端末1と相手端末2の間にTCPコネクションを確立するために、自端末1と相手端末2ではそれぞれTCPコネクションを管理するTCB(コネクション管理情報)をコネクション毎にコネクション管理テーブル103に作成する。コネクション確立を要求する側の自端末1では、TCBに相手端末2のポート番号とIPアドレスを保持する。コネクション確立の待ち受け側の相手端末2では、TCBに待ち受けのポート番号を保持する。
【0027】
次に、ステップS102として、自端末1から相手端末2に向けてTCPのSYNパケット送信処理を開始する。自端末1は、まず、SYNパケット送信要求を生成する。
【0028】
次に、SYNパケット送信処理としては、ステップS103として、自端末1は、最初に、ルーティングテーブル101の参照を行う。この時のルーティングテーブル101は、図4のようになっているとする。
【0029】
ここでは、ルーティングテーブル101を参照すると、TCBに保持している相手端末2のIPアドレスが192.168.1.11であるので、ローカルネットワーク3に属することがわかる。ローカルネットワーク3に属するという条件はデフォルトゲートウェイの条件よりも優先されるため、このような判定となる。よって、ステップS104として、自端末1は、ルートとして、次の送信先IPアドレスは相手端末2のIPアドレスであると確定する。
【0030】
次に、ステップS105として、自端末1は、ARPテーブル102を参照する。ステップS106として、自端末1は、ARPテーブル102の参照によって、送信先のアドレス解決ができたか否かを判定する。判定の結果、アドレス解決できた場合(ステップS106でYES)、ステップS110に進む。一方、アドレス解決できなかった場合(ステップS106でNO)、ステップS107に進む。
【0031】
ここでは、次の送信先IPアドレス192.168.1.11がARPテーブル102から見つからなかった場合(アドレス解決できなかった)について説明する。この場合、ステップS107として、自端末1は、アドレス解決のためのARP要求パケットをローカルネットワーク3に送信する(ARPを実施する)。
【0032】
次に、ステップS108として、自端末1は、ARP要求に対するARP応答を受信することにより、アドレス解決できたか否かを判定する。判定の結果、アドレス解決できた場合(ステップS108でYES)、ステップS110に進む。一方、アドレス解決できなかった場合(ステップS108でNO)、ステップS109に進む。
【0033】
ここで、ARP要求をローカルネットワーク3上の通信端末が受信すると、ARP応答を返信する。ARP応答には応答した通信端末のIPアドレスとMACアドレスが含まれている。このARP応答を自端末1で受信することにより、自端末1は、今回の相手端末2のIPアドレスとMACアドレスを知ることができ、これらを対にしてARPテーブル102に新規に追加(更新)することができる。この時のARPテーブル102を図5に示す。
【0034】
ARPテーブル102が更新されたことで、自端末1は、TCPレイヤにて、再度、ARPテーブル102を参照して、今回は次の送信先IPアドレス192.168.1.11を見つけることができる。そして、ステップS110として、自端末1は、次の送信先IPアドレスに対応付けられた次の送信先MACアドレスbb:bb:bb:bb:bb:bb(宛先MACアドレス)を確定する。
【0035】
尚、ステップS108において、アドレス解決できなかった場合とは、ARPテーブル102の更新に失敗したり、更新しても次の送信先IPアドレスが見つからない場合等である。そして、この場合は、ステップS109として、自端末1は、TCBに保存する次の送信先MACアドレスを無効に設定し、MACヘッダ作成時に無効を検出すると送信処理を破棄する。
【0036】
ステップS111として、自端末1は、次の送信先MACアドレス(宛先MACアドレス)をこのコネクション用のTCBに保存する。ステップS112として、自端末1は、TCPレイヤにてSYNパケットを作成する。このとき、SYNパケットのTCPヘッダの宛先ポート番号には、相手端末2で待ち受けしているポート番号を設定する。相手端末2のポート番号は、このコネクション用に保持しているTCBを参照することで知ることができる。
【0037】
次に、ステップS113として、自端末1は、IPレイヤにてSYNパケットをIPパケット化する。このとき、IPヘッダの宛先IPアドレスには相手端末2のIPアドレスを設定する。相手端末2のIPアドレスは、このコネクション用に保持しているTCBを参照することで知ることができる。
【0038】
次に、ステップS114として、自端末1は、MACレイヤにてIPパケットをMACフレーム化する。ここでは、例えば、イーサネットフレーム化する。このとき、イーサネットヘッダの宛先MACアドレスには次の送信先MACアドレスを設定する。次の送信先MACアドレスは、このコネクション用に保持しているTCBを参照することで知ることができる。
【0039】
以上のようにして、自端末1は、SYNパケットをイーサネットフレーム化し、ステップS115として、ローカルネットワーク3へ送信する。
【0040】
ここで、イーサネット(Ethernet)はMACレイヤの一例であり、イーサネットの代わりに無線LANを使うこともできる。無線LANを使った場合には、MACレイヤは802.11g規格や802.11n規格等に従うものとなるが、処理については同様のものとなる。
【0041】
また、TCPコネクション確立処理としては、ステップS116として、自端末1は、相手端末2から返信されるSYN−ACKパケットに対してACKを送信することで、いわゆる3ウェイハンドシェークと呼ばれるTCPコネクション確立処理が完了する。
【0042】
TCPコネクションが確立すると、ステップS117として、自端末1は、その後のTCPによるデータ送信やACK送信においては、そのコネクション用のTCBを参照することにより、イーサネットフレーム化して、TCP通信を実行することができる。その後、TCP通信が完了すると、ステップS118として、自端末1は、TCPコネクションを終了する。
【0043】
次に、相手端末2において、NICが切り替わった場合について説明する。例えば、NICが故障してしまって交換した場合や、より高性能なNICに交換した場合や、イーサネットから無線LANに切り替えた場合や、その逆の場合等が想定される(図6参照)。
【0044】
ここでは、図7のフローチャートに従って説明する。
【0045】
このような場合には、相手端末のMACアドレスが変更になる。そのため、例えば、TCPデータをイーサネットフレーム化して送信しても、宛先への到達不能(不達)となってしまう。このような場合、ネットワークから宛先への到達不能メッセージが出されたり、到達不能状態が継続されるようになる。
【0046】
このような状態になると、ステップS201として、自端末1は、再度、ARP要求パケットをローカルネットワーク3に送信する(ARPを実施する)。次に、ステップS202として、自端末1は、ARP要求に対するARP応答を受信することにより、アドレス解決できたか否かを判定する。判定の結果、アドレス解決できなかった場合(ステップS202でNO)、ステップS203に進む。ステップS203として、自端末1は、TCBに保持する次の送信先MACアドレスを無効に設定し、MACヘッダ作成時に無効を検出すると送信処理を破棄する。
【0047】
一方、アドレス解決できた場合(ステップ202でYES)、ステップS204に進む。ステップS204として、自端末1は、相手端末2から受信したARP応答を受信することで、相手端末2のIPアドレスと新しいMACアドレス(宛先MACアドレス)を知ることができ、これをARPテーブル102に登録(更新)することができる。この時のARPテーブル102を図8に示す。
【0048】
また、自端末1は、ルーティングテーブル101(図4)を再度参照し、宛先IPアドレス192.168.1.11がローカルネットワーク3内に属することを再度確認し、次の送信先IPアドレスを確定する。そして、次の送信先IPアドレス192.168.1.11がARPテーブル102(図8)にあるかどうかを確認する。さきほど、ARPテーブル102は更新されているので、自端末1は、次の送信先IPアドレス192.168.1.11を見つけることができる。これにより、自端末1は、対応する次の送信先MACアドレスcc:cc:cc:cc:cc:cc(宛先MACアドレス)を確定することができる。
【0049】
そして、ステップS205として、自端末1は、次の送信先MACアドレス(宛先MACアドレス)をこのコネクション用のTCBに保存する。
【0050】
ここで、ARPテーブル102が更新された場合に、自端末1は、現在確立されている全てのコネクションに対して、同様に、ルーティングテーブル101の参照とARPテーブル102の参照を行う。また、必要がある場合には、自端末1は、各TCBの次の送信先MACアドレスを更新(更新対象)するようにしても良い。
【0051】
例えば、次の送信先MACアドレスを用いて、送信用のパケットの作成の後、前記ARPテーブルの更新が発生した場合において、その更新時のコネクションにおける次の送信先MACアドレスと、コネクション管理テーブルに保存されているコネクション管理情報で管理される次の送信先MACアドレスが異なる場合には、次の送信先MACアドレスでコネクション管理テーブルで保存されるコネクション管理情報を更新しても良い。
【0052】
また、相手端末2のIPアドレスや次の送信先MACアドレスがTCBに保存されているので、IPヘッダの一部である宛先IPアドレスの設定や、MACヘッダの一部である宛先MACヘッダの設定をTCPレイヤにて行う構成としても良い。
【0053】
また、ARPテーブル102の更新に失敗したり、更新しても次の送信先IPアドレスが見つからない場合、TCBに保存する次の送信先MACアドレスを無効に設定し、MACヘッダ作成時に無効を検出すると送信処理を破棄するようにしても良い。
【0054】
以上のように、IPパケットの送信毎にルーティングテーブル101の参照やARPテーブル102の参照等の処理を行うことなく送信を行うことができる。
【0055】
以上説明したように、実施形態1によれば、コネクション管理テーブル103のTCBに相手端末のIPアドレスや次の送信先MACアドレスを保存管理し、このTCBを利用して送信パケットを作成する。これにより、TCP送信時の処理においてARPテーブルが記憶されている主記憶へのアクセスが不要となる。また、ARPテーブルから対象のエントリを探す検索処理も不要になることで処理負荷が軽減され、より高速なTCP通信を実現することができる。
【0056】
<実施形態2>
実施形態2では、無線LANを使ってネットワークへTCP送信を行い、途中でローミング(無線LANゲートウェイ端末の変更)を行う場合の処理を説明する。
【0057】
自端末1の構成は、実施形態1の図1の機能構成と同様である。ここで、MAC処理部108とPHY処理部109は無線LANに対応する。
【0058】
以下、図2のフローチャートに従って説明する。また、システム構成を図9に示す。通信端末である自端末1と無線LANゲートウェイ端末4(以下、GW1)はローカルネットワーク6(例えば、無線LANネットワーク)で接続され、GW1と相手端末2がローカルネットワーク3(例えば、イーサネット)で接続されている。同様に、自端末1と無線LANゲートウェイ端末5(以下、GW2)はローカルネットワーク6で接続可能であり、GW2と相手端末2がローカルネットワーク3で接続されている。また、無線LANによるローカルネットワーク6とイーサネットによるローカルネットワーク3は別ネットワークであり、GW1とGW2がゲートウェイとなっている。また、GW1がデフォルトゲートウェイ端末となっている。
【0059】
ここで、自端末1のIPアドレスが192.168.1.10、MACアドレスがaa:aa:aa:aa:aa:aaであるとする。また、相手端末2のIPアドレスが192.168.2.11、MACアドレスがbb:bb:bb:bb:bb:bbであるとする。さらに、GW1の無線LAN側のIPアドレスが192.168.1.1、MACアドレスがcc:cc:cc:cc:cc:11であるとする。また、GW1のイーサネット側のIPアドレスが192.168.2.1、MACアドレスがcc:cc:cc:cc:cc:22であるとする。さらに、GW2の無線LAN側のIPアドレスが192.168.1.2、MACアドレスがdd:dd:dd:dd:dd:11であるとする。また、GW2のイーサネット側のIPアドレスが192.168.2.2、MACアドレスがdd:dd:dd:dd:dd:22であるとする。
【0060】
まず、ステップS101として、自端末1と相手端末2の間にTCPコネクションを確立するため、自端末1と相手端末2ではそれぞれTCPコネクションを管理するTCBをコネクション毎にコネクション管理テーブル103に作成する。コネクション確立を要求する側の自端末1では、TCBに相手端末2のポート番号とIPアドレスを保持する。コネクション確立の待ち受け側の相手端末2では、TCBに待ち受けのポート番号を保持する。
【0061】
次に、ステップS102として、自端末1から相手端末2に向けてTCPのSYNパケット送信処理を開始する。自端末1は、まず、SYNパケット送信要求を生成する。
【0062】
次に、SYNパケット送信処理としては、ステップS103として、自端末1は、最初に、ルーティングテーブル101の参照を行う。この時のルーティングテーブル101は、図4のようになっているとする。
【0063】
ここでは、ルーティングテーブル101を参照すると、TCBに保持している相手端末2のIPアドレス192.168.2.11は、ローカルネットワーク6ではなく、その他どこにも属していなかったとする。つまり、ステップS104として、自端末1は、ルートとして、次の送信先IPアドレスはデフォルトゲートウェイのIPアドレス192.168.1.1と確定する。
【0064】
次に、ステップS105として、自端末1は、次の送信先IPアドレスを判定するために、ARPテーブル102を参照する。ステップS106として、自端末1は、ARPテーブル102の参照によって、送信先のアドレス解決ができたか否かを判定する。判定の結果、アドレス解決できなかった場合(ステップS106でNO)、実施形態1と同様に、ステップS107及びステップS108によって、次の送信先IPアドレスが解決されたものとする。そして、ステップS110として、自端末1は、次の送信先IPアドレスに対応付けられた次の送信先MACアドレスを確定する。このときのARPテーブルは図10のようであったとする。
【0065】
ステップS111として、自端末1は、次の送信先MACアドレスをこのコネクション用のTCBに保存する。
【0066】
この先、SYNパケットの送信処理は、実施形態1で説明した通り、ステップS112からステップS115として、TCBを参照することによりMACフレーム化してローカルネットワーク6へ送信することができる。そして、ステップS116として、自端末1は、TCPコネクション確立処理を完了する。また、ステップS117として、自端末1は、その後のTCPによるデータ送信やACK送信においては、そのコネクション用のTCBを参照することにより、MACフレーム化することができる。その後、通信が完了すると、ステップS118として、自端末1は、TCPコネクションを終了する。
【0067】
次に、図11に示すように、ゲートウェイの変更を行った場合について説明する。例えば、TCP通信処理中に、自端末1が無線通信エリアを移動した場合や、GWを交換した場合等が想定される。
【0068】
ここでは、図12のフローチャートに従って説明する。
【0069】
このような場合には、デフォルトゲートウェイが変更され、それにより次の送信先MACアドレスが変更になる。このような場合、ユーザによる設定変更や、DHCPの機能やその他の方法等により、自端末1のルーティングテーブル101で保持しているデフォルトゲートウェイ情報が更新される。このときのルーティングテーブル101を図13に示す。
【0070】
デフォルトゲートウェイが変更になると、ステップS301として、自端末1は、ルーティングテーブル101(図13)を参照する。ステップS302として、自端末1は、ルートとして、デフォルトゲートウェイのIPアドレスが192.168.1.2であることを確定する。次に、ステップS303として、自端末1は、デフォルトゲートウェイのIPアドレス192.168.1.2がARPテーブル102に登録があり、アドレス解決できた場合(ステップS304でYES)、ステップS308へ進む。ARPテーブル102に登録がなく、アドレス解決できなかった場合(ステップS304でNO)、ステップS305として、自端末1は、ARP要求パケットを送信する(ARPを実施する)。
【0071】
次に、ステップS306として、自端末1は、ARP要求に対するARP応答を受信することにより、アドレス解決できたか否かを判定する。判定の結果、アドレス解決できなかった場合(ステップS306でNO)、例えば、ARPテーブル102の更新に失敗したり、更新しても次の送信先IPアドレスが見つからない場合、ステップS307に進む。ステップS307として、自端末1は、TCBに保持する次の送信先MACアドレスを無効に設定し、MACヘッダ作成時に無効を検出すると送信処理を破棄する。
【0072】
一方、アドレス解決できた場合(ステップS306でYES)、自端末1は、ARPテーブル102を更新する。ここで、判定することなく、ARP要求パケットを送信して、ARPテーブル102を更新しても構わない。ここでは、GW2からのARP応答によりARPテーブル102が更新されたものとする(図14参照)。その後は、ステップS308として、ARPテーブル102から次の送信先MACアドレスを確定する。そして、ステップS309として、実施形態1で説明したように、自端末1は、次の送信先MACアドレスdd:dd:dd:dd:dd:11をこのコネクション用のTCBに保存する。
【0073】
以上のように、IPパケットの送信毎にルーティングテーブル101の参照やARPテーブル102の参照等の処理を行うことなく送信を行うことができる。
【0074】
以上説明したように、実施形態2によれば、無線LAN環境においても、実施形態1と同様の効果を達成することができる。
【0075】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0076】
1:通信端末、103:コネクション管理テーブル、106:TCP処理部、110:ルート決定部、111:宛先MACアドレス決定部、112:制御部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14