JP4345751B2 - 情報処理装置、及びバブルパケット送信方法 - Google Patents

情報処理装置、及びバブルパケット送信方法 Download PDF

Info

Publication number
JP4345751B2
JP4345751B2 JP2006024358A JP2006024358A JP4345751B2 JP 4345751 B2 JP4345751 B2 JP 4345751B2 JP 2006024358 A JP2006024358 A JP 2006024358A JP 2006024358 A JP2006024358 A JP 2006024358A JP 4345751 B2 JP4345751 B2 JP 4345751B2
Authority
JP
Japan
Prior art keywords
communication
information processing
communication control
bubble packet
processing apparatus
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.)
Expired - Lifetime
Application number
JP2006024358A
Other languages
English (en)
Other versions
JP2006121762A (ja
JP2006121762A5 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006024358A priority Critical patent/JP4345751B2/ja
Publication of JP2006121762A publication Critical patent/JP2006121762A/ja
Publication of JP2006121762A5 publication Critical patent/JP2006121762A5/ja
Application granted granted Critical
Publication of JP4345751B2 publication Critical patent/JP4345751B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、他の情報処理装置と通信を行う情報処理装置等に関する。
従来、サーバを介することなく、情報処理装置間で直接、Peer to Peer等の通信を行う技術が開発されている。その通信において、図9で示すように、情報処理装置PC1,PC2が、それぞれNAT1,NAT2を介して通信を行う場合もある。ここで、NAT1、NAT2は、ローカル側(情報処理装置側)のプライベートIPアドレスと、通信回線側のグローバルIPアドレスとの変換を行う。そのNAT1、NAT2等には、ポート割り当てルールと、受信フィルタルールとがあり、その組み合わせによってNATの分類がなされる。具体的には、送信ポート割り当てルールには、パケットの宛先(IPアドレス、ポート)に依存せず、NATのローカル側(たとえば、LAN側)の情報処理装置のポートとIPアドレスが同じであれば、NATに割り当てられるグローバル側(たとえば、インターネットなどのWAN側)のポートが同一となるConeタイプと、パケットの宛先アドレスごとに新しいポートが割り当てられるAddress Sensitiveタイプと、パケットの宛先ポートごとに新しいポートが割り当てられるPort Sensitiveタイプがある。NATのローカル側からパケットが送信されたポートに対してグローバル側からのパケットの受信可能性を判断する受信フィルタルールには、そのポートからパケットを送信したアドレスからのみしかパケットを受信しないAddress Sensitiveフィルタと、そのポートからパケットを送信したポートからのみしかパケットを受信しないPort Sensitiveフィルタと、フィルタが存在しないNoフィルタがある。
そのようなNATを介した通信において、NATのLAN側からWAN側に対してパケットの送信がなされていないと、WAN側の他の情報処理装置からのパケットを受け付けることができない。特に、NATの受信フィルタルールがAddress SensitiveフィルタやPort Sensitiveフィルタである場合には、WAN側の情報処理装置や、その情報処理装置における所定のポートにパケットを送信していないと、そのWAN側の情報処理装置から送信されたパケットを受け付けることができない。したがって、NATを介した情報処理装置間の通信を確立するために、NATに送信履歴を残すためのパケット(バブルパケット)の送信等を行っていた(例えば、非特許文献1、2参照)。
J.Rosenberg、J.Weinberger、C.Huitema、R.Mahy、「STUN−Simple Traversal of User Datagram Protocol(UDP) Through Network Address Translators(NATs)」、[Online]、2003年3月、[2004年3月17日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc3489.txt> 及川卓也、「Advanced Networking Pack for Windows(登録商標) XP大解剖 第1回 IPv6接続をさらに透過的にするTeredo」、[Online]、2003年9月29日、[2004年3月17日検索]、インターネット<URL:http://www.ipv6style.jp/jp/tryout/20030929/2.shtml>
しかしながら、NATの種類によっては、セキュリティーを向上させるために、受信フィルタルールによって受信することができないパケットを攻撃であるとみなし、そのパケットの通信元のIPアドレスから送信されたパケットを受け付けないものもある。そのような場合に、バブルパケットを通信先のNATに対して送信すると、そのバブルパケットが攻撃であるとみなされる。その結果、バブルパケットを受信したNATが、バブルパケットを送信した情報処理装置からのパケットを一切受け付けなくなり、バブルパケットを送信した情報処理装置と、バブルパケットが送信された側の情報処理装置との間での通信を適切に確立することができなくなる場合もある。
また、バブルパケットは、通信元のNATが通信先から送信されたパケットを適切に受信することができるように、通信元のNATに送信履歴を残すことを目的として送信されるものである。したがって、通常、バブルパケットは情報を伝達するために送信されるものではない。そのような情報を伝達する役割を持たないパケットによって、インターネットなどの通信回線におけるトラフィックが増大することは、好ましいことではない。
本発明は上記問題点を解決するためになされたものであり、その一つの目的は、セキュリティーレベルの高い通信制御装置(例えば、NAT)を介した通信を適切に確立することができる情報処理装置等を提供することである。
また、本発明の他の目的は、通信回線におけるトラフィックの増大を抑えながら、バブルパケットを送信する情報処理装置等を提供することである。
上記目的を達成するために、本発明による情報処理装置は、通信先の情報処理装置と、通信元の1以上の通信制御装置を介して通信を行う通信元の情報処理装置であって、入力された通信元の通信制御装置の段数に基づいて、通信元の通信制御装置に送信履歴を残すために、算出した段数の中継ノードに前記通信元の情報処理装置から送信されるバブルパケットが到する寿命を設定する寿命設定部と、前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の1以上の通信制御装置を介して送信するバブルパケット送信部と、を備えたものである。
このような構成により、バブルパケットが通信先の情報処理装置に到達する前に、そのバブルパケットを消滅させることができる。その結果、通信回線のトラフィックを減少させることができ得る。具体的には、バブルパケットに寿命を設けることによって、バブルパケットが通信先の情報処理装置に到達する場合に比べて、通信回線においてバブルパケットの通過する経路を短くすることができる。このようにして、通信回線のトラフィックを、全体として減少させることができ得る。
また、本発明による情報処理装置では、前記通信先の情報処理装置と、前記通信元の情報処理装置との通信が、通信先の1以上の通信制御装置を介して行われるものであり、前記寿命設定部が、バブルパケットが前記通信先の1以上の通信制御装置に到達しない範囲の寿命を設定してもよい。
このような構成により、通信先の通信制御装置のいずれにも到達しないようにバブルパケットを送信することができる。その結果、通信先の通信制御装置がセキュリティーレベルの高いものであり、受信フィルタルールによって受け付けることのできなかったパケットを攻撃とみなし、そのパケットの通信元から送信されたパケットを一切受け付けなくなる通信制御装置であったとしても、通信先の通信制御装置にバブルパケットが到達しないことによって、通信元と通信先の情報処理装置間における通信を適切に確立することができ得る。
また、本発明による情報処理装置では、前記寿命設定部が、前記バブルパケットがグローバルアドレスからグローバルアドレスにパケットを中継する中継ノードに到達することができるように寿命を設定してもよい。
このような構成により、バブルパケットが、少なくとも通信元の通信制御装置(多段である場合には、そのすべての通信制御装置)を超えることができるように寿命を設定することができ、通信元の通信制御装置において、通信先の情報処理装置からの返信パケットを適切に受信することができるための送信履歴を残すことができ得る。
また、本発明による情報処理装置では、前記寿命設定部が、前記バブルパケットがグローバルアドレスからグローバルアドレスにパケットを中継する中継ノードのうち、直近の中継ノードに到達することができる寿命を設定してもよい。
このような構成により、必要最低限の範囲の寿命をバブルパケットに設定することができ、通信回線のトラフィックの増大を防止することができ得る。
また、本発明による情報処理装置では、前記寿命設定部が、前記通信元の情報処理装置と、前記通信先の情報処理装置との通信が確立されるまで、前記バブルパケット送信部がバブルパケットを送信するごとに、前記バブルパケットが到達することができる中継ノードを1ずつ増やして寿命を設定してもよい。
このような構成により、例えば、通信元の通信制御装置の段数などを適切にカウントできなかったために、バブルパケットの寿命が適切に設定できなかったような場合にも、バブルパケットの寿命を順番に増やすことにより、適切なバブルパケットの寿命とすることができ、通信元と通信先の情報処理装置間での通信を適切に確立することができ得る。
また、本発明による情報処理装置では、前記寿命設定部が、前記バブルパケットが通信先の1以上の通信制御装置の1個以上手前の中継ノードに到達することができる寿命を設定してもよい。
このような構成により、バブルパケットが通信元の通信制御装置(多段である場合には、そのすべての通信制御装置)を確実に超えることができるようにバブルパケットの寿命を設定することができる。その結果、通信先の通信制御装置にバブルパケットを到達させることなく、通信元と通信先の情報処理装置間での通信を適切に確立することができ得る。
また、本発明による情報処理装置では、前記通信元の情報処理装置からの中継ノードの数を計数する中継ノード計数部をさらに備え、前記寿命設定部が、前記中継ノード計数部が計数した中継ノードの数に基づいて、前記バブルパケットの寿命の設定を行ってもよい。
このような構成により、通信元の通信制御装置の段数などを手入力などで入力することなく、中継ノード計数部による計数結果に基づいて、バブルパケットの寿命を適切に設定することができる。
また、本発明による情報処理装置では、前記通信元の情報処理装置からの中継ノードの数を、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードのうち直近の中継ノードまで計数する中継ノード計数部をさらに備え、前記寿命設定部が、前記中継ノード計数部が計数した中継ノードの数に基づいて、前記バブルパケットの寿命の設定を行ってもよい。
このような構成により、中継ノード計数部が中継ノードを計数するために送信するチェックパケットを通信先の通信制御装置に到達しないようにすることができる。ここで、通信先の通信制御装置は、チェックパケット(例えば、ICMPのパケットなど)を受け付けたとしても、一般にそれを攻撃とはみなさないが、仮に、通信先の通信制御装置がそのチェックパケットを攻撃とみなすものであったとしても、通信先の通信制御装置にチェックパケットが到達しないため、通信元の情報処理装置から送信されたパケットが通信先の通信制御装置において一切受け付けられなくなる事態を回避し得ることとなる。
本発明による情報処理装置等によれば、バブルパケットに所定の寿命を設定することにより、セキュリティーレベルの高い通信制御装置を介した通信を適切に確立することができ得る。また、バブルパケットに寿命を設けることにより、通信回線におけるトラフィックの増大を防止でき得る。
(実施の形態1)
本発明の実施の形態1による通信システムについて、図面を参照しながら説明する。
図1は、本実施の形態による通信システムの構成を示す図である。図1において、本実施の形態による通信システムは、第1の情報処理装置1と、第2の情報処理装置2と、第1の通信制御装置3と、第2の通信制御装置4と、サーバ5とを備える。第1の通信制御装置3、第2の通信制御装置4、サーバ5は、有線または無線の通信回線6を介して接続されている。この通信回線6は、例えば、インターネットである。
なお、図1では、第1の通信制御装置3、第2の通信制御装置4にそれぞれ、第1の情報処理装置1、第2の情報処理装置2のみが接続されている場合について示しているが、これ以外の装置が、第1の通信制御装置3、第2の通信制御装置4に接続されていてもよい。
また、図1では、第1の情報処理装置1、及び第2の情報処理装置2にそれぞれ第1の通信制御装置3、第2の通信制御装置4が1個ずつ接続されている場合について示しているが、各情報処理装置において接続される通信制御装置は、多段であってもよい。すなわち、第1の情報処理装置1及び第2の情報処理装置2から通信回線6までの間に、2以上の通信制御装置が存在してもよい。
また、本実施の形態では、第1の情報処理装置1が通信元の情報処理装置として動作し、第2の情報処理装置2が通信先の情報処理装置として動作する場合について説明する。ここで、通信元の情報処理装置とは、第1の情報処理装置1と第2の情報処理装置2との間の通信を確立する際における、通信(コネクション)の要求を出す側(言い換えれば、バブルパケットを送信する側)のことである。一方、通信先の情報処理装置とは、その反対側の情報処理装置、すなわち通信の要求を受け取る側(言い換えれば、バブルパケットに対する返信パケットを送信する側)の情報処理装置のことである。なお、通信を確立するとは、第1の情報処理装置1と第2の情報処理装置2との間において、サーバ5を介さないPeer to Peerの通信を開始することをいう。また、バブルパケット、返信パケットについては後述する。
図2は、第1の情報処理装置1の構成を示すブロック図である。図2において、第1の情報処理装置1は、通信制御部11と、中継ノード計数部12、寿命設定部13と、バブルパケット送信部14とを備える。
通信制御部11は、第1の情報処理装置1と、通信先の第2の情報処理装置2との間での通信を確立させるための処理を行う。その処理の詳細については後述する。
中継ノード計数部12は、第1の情報処理装置1からの中継ノードの数を計数する。ここで、中継ノードとは、ルーティング機能を有するいわゆるルータのことであり、アドレス変換機能(例えば、プライベートアドレスからグローバルアドレスへの変換を行う機能)を有してもよく、有していなくてもよい。また、中継ノードは、グローバルアドレスからグローバルアドレスにパケットを中継(例えば、インターネットにおいて行われる)してもよく、プライベートアドレスからプライベートアドレスにパケットを中継(例えば、LANにおいて行われる)してもよく、プライベートアドレスとグローバルアドレスとの間でパケットを中継(例えば、LANとインターネットとの間で行われる)してもよい。この中継ノードの数の計数は、例えば、トレースルートによって行ってもよく、TTL(Time To Live)を設定したUDPパケットを、そのTTLを1から順番にインクリメントしながら送信することによって行ってもよい。本実施の形態では、トレースルートによって中継ノードの数の計数を行うものとする。この計数の処理の詳細については、後述する。
寿命設定部13は、バブルパケット送信部14が送信するバブルパケットに対して、そのバブルパケットが通信先の第2の通信制御装置4に到達しない範囲の寿命を設定する。寿命設定部13は、中継ノード計数部12が計数した中継ノードの数に基づいて、その寿命の設定を行う。この寿命の設定は、例えば、バブルパケットに関するTTLを設定することによって行う。なお、寿命設定部13によって設定されるバブルパケットの寿命は、バブルパケットが通信元の通信制御装置(多段の通信制御装置である場合にはそのすべて)を超えることができるものでなくてはならない。バブルパケットは、通信先の返信パケットを受信することができるように、通信元の通信制御装置に対して送信履歴を残す役割を有するため、バブルパケットが通信元の通信制御装置を超えなかった場合には、通信元の通信制御装置が通信先からの返信パケットを受信できないからである。
寿命設定部13は、例えば、バブルパケットがグローバルアドレスからグローバルアドレスにパケットを中継する中継ノードに到達することができるようにバブルパケットの寿命を設定してもよく、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードのうち、通信元の第1の情報処理装置1に対して直近の中継ノードにバブルパケットが到達することができるようにバブルパケットの寿命を設定してもよく、バブルパケットが通信先の第2の通信制御装置4の1個以上手前の中継ノードに到達することができるようにバブルパケットの寿命を設定してもよい。なお、通信先の通信制御装置が多段である場合には、通信元に一番近い側の通信制御装置の1個以上手前の中継ノードに到達するように(すなわち、通信先のいずれの通信制御装置にも到達しないように)バブルパケットの寿命を設定してもよい。
バブルパケット送信部14は、寿命設定部13が設定した寿命を有するバブルパケットを、通信元の第1の通信制御装置3を介して送信する。ここで、バブルパケットとは、通信先の第2の情報処理装置2から送信される返信パケットを第1の通信制御装置3が受け付けることができるように、通信元の第1の通信制御装置3に送信履歴を残すために通信元の第1の情報処理装置1から送信されるパケットのことである。送信履歴を残すとは、返信パケットを受け付けることができるためのポートを割り当てる(ポートを開く)ことをいう。このバブルパケットには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい(ダミーであってもよい)が、本実施の形態によるバブルパケットは通信先に到達しないため、一般的に、このバブルパケットには有意な情報は含まれていない。バブルパケット送信部14は、例えば、所定のメモリで記憶されているバブルパケットを送信する。このバブルパケットは、例えば、UDPのようなコネクションレス型のプロトコルによって送信される。
第2の情報処理装置2は、第1の情報処理装置1から送信されたバブルパケットに対して返信パケットを送信する。そのようにして、第1の情報処理装置1と、第2の情報処理装置2との間での第1の通信制御装置3,第2の通信制御装置4を介した通信が確立することになる。ここで、返信パケットとは、バブルパケットの通過した第1の通信制御装置3のポートに対して送信される。あらかじめバブルパケットが送信されていることにより、第1の情報処理装置1は、この返信パケットを、第1の通信制御装置3を介して受信することができる。この返信パケットには、何らかの情報が含まれていてもよく、何も情報が含まれていなくてもよい。
第1の通信制御装置3は、第1の情報処理装置1から送信されたパケット、あるいは、第1の情報処理装置1に送信されたパケットのアドレス変換を行うNAT(Network Address Translation)の機能を有する装置である。なお、第1の通信制御装置3は、アドレス変換以外の他の機能を有していてもよい。具体的には、第1の情報処理装置1側で使用されているローカルなアドレスと、通信回線6側で使用されているグローバルなアドレスとの変換を行う。この第1の通信制御装置3は、ルーティング機能を有するものであり、中継ノード計数部12が計数する中継ノードに含まれる。
第2の通信制御装置4も、アドレス変換を行うNATの機能を有する、第1の通信制御装置3と同様の装置である。
なお、第1の通信制御装置3,第2の通信制御装置4で使用される送信ポート割り当てルールと受信フィルタルールとは、第1の情報処理装置1と第2の情報処理装置2との間での通信を確立するためにバブルパケットの送信が必要である範囲において、限定されるものではない。ただし、本実施の形態では、第1の通信制御装置3,第2の通信制御装置4の送信ポート割り当てルールがConeタイプであり、受信フィルタルールがAddress Sensitiveフィルタである場合について説明する。すなわち、第1の通信制御装置3,第2の通信制御装置4は、いわゆるRestricted Cone NATの機能を有するものであるとする。
サーバ5は、第1の情報処理装置1と第2の情報処理装置2との間でのサーバ5を介さない通信を確立するために必要な処理等を行う。例えば、第1の情報処理装置1に対して第2の情報処理装置2(厳密には、第2の通信制御装置4)の通信回線6側のIPアドレスを通知したり、第1の情報処理装置1から送信されたバブルパケットの通過した第1の通信制御装置3のポートの番号を第2の情報処理装置2に通知したりする。
次に、中継ノード計数部12がトレースルートによって中継ノードの数を計数する方法について説明する。ここでは、トレースルートを用いて中継ノードの数を計数する方法について説明する。トレースルートでは、IPのルートをトレースすることにより、通信先までの各中継ノードのIPアドレスを知ることができ得る。
図3、図4は、トレースルートについて説明するための図である。これらの図において、中継ノードは、丸で示されている。図3で示されるように、まず、第1の情報処理装置1の中継ノード計数部12は、第2の通信制御装置4に向けてTTL=1のチェックパケットを送信する。ここで、チェックパケットとは、トレースルートにおいて、送信先に向けて送信されるパケットのことである。このチェックパケットには、TTLが設定されている。チェックパケットのTTLは、中継ノードを通過するごとに1だけ減少されるため、TTL=1のチェックパケットは、第1の通信制御装置3に到達したときにTTL=0となり、第1の通信制御装置3からICMP Time Exceededによって第1の情報処理装置1に返される。次に、図4で示されるように、中継ノード計数部12は、第2の通信制御装置4に向けてTTL=2のチェックパケットを送信する。すると、そのチェックパケットは中継ノード51においてTTL=0となり、ICMP Time Exceededによって中継ノード51から第1の情報処理装置1に返される。これによって、中継ノード計数部12は、中継ノード51のIPアドレスを知ることができる。このように、チェックパケットが第2の通信制御装置4に到達するまで、TTLを1ずつインクリメントしながらチェックパケットの送信と、ICMP Time Exceededの受信とを繰り返すことにより、第2の通信制御装置4に到達するまでに経由した各中継ノードのIPアドレスを知ることができる。なお、ICMP Time Exceededを返さない中継ノードの場合には、中継ノード計数部12は、タイムアウトとなった後に、次のチェックパケットを送信する。チェックパケットが第2の通信制御装置4に到達すると、ICMP Port Unreachableが返され、トレースルートは終了となる。なお、場合によっては、ICMP Port Unreachableの代わりに、ICMP Echo Replyが返されることもある。中継ノード計数部12は、このトレースルートを行うことにより、第2の通信制御装置4に到達するまでに経由する中継ノードの数と、各中継ノードのIPアドレスとを知ることができる。
なお、ここではトレースルートを第2の通信制御装置4に対して行う場合について説明したが、中継ノード計数部12は、トレースルート以外の方法によって中継ノードの数を計数してもよく、また、チェックパケットの送信先は、第2の通信制御装置4以外の例えばサーバ5などであってもよい。
次に、本実施の形態による通信システムにおける第1の情報処理装置1と第2の情報処理装置2とが通信を確立する動作について、図5を用いて説明する。なお、この説明において、第1の情報処理装置1及び第2の情報処理装置2は、あらかじめ、サーバ5の仲介によって第1の通信制御装置3、第2の通信制御装置4の通信回線6側のIPアドレスを知っているものとする。
(ステップS101)中継ノード計数部12は、第2の通信制御装置4までの中継ノードの数を計数する。
(ステップS102)寿命設定部13は、中継ノード計数部12による中継ノードの数の計数結果に基づいて、バブルパケット送信部14が送信するバブルパケットの寿命を設定する。
(ステップS103)通信制御部11は、ポート検出用パケットをサーバ5に送信する。このポート検出用パケットは、バブルパケットが送信される第1の通信制御装置3におけるポート(以下、「バブルパケット送信ポート」とする)の位置(例えば、ポート番号によって特定される)を検出するために、バブルパケットの送信の前に送信されるものである。そのポート検出用パケットはサーバ5で受信される。
(ステップS104)バブルパケット送信部14は、寿命設定部13によって設定された寿命を有するバブルパケットを第2の通信制御装置4に送信する。このバブルパケットは、設定された寿命で消滅するため、第2の通信制御装置4には到達しない。なお、このバブルパケットは、サーバ5を介さないで、直接、第2の通信制御装置4に送信される。
(ステップS105)サーバ5は、ステップS103で送信されたポート検出用パケットによって、バブルパケット送信ポートの位置を検出する。
(ステップS106)サーバ5は、ステップS105で検出したバブルパケット送信ポートの位置を第2の情報処理装置2に通知する。
(ステップS107)第2の情報処理装置2は、第1の通信制御装置3のバブルパケット送信ポートに対して、返信パケットを送信する。この返信パケットが第1の情報処理装置1で受信されることによって、第1の情報処理装置1と、第2の情報処理装置2との間で、サーバ5を介さない通信が確立されることになる。
次に、この通信システムの動作について、具体例を用いて説明する。この具体例では、前述のように、第1の通信制御装置3、第2の通信制御装置4がRestricted Cone NATの機能を有するものであるとする。また、中継ノード計数部12は、トレースルートによって中継ノードの数を計数するものとする。また、寿命設定部13は、バブルパケットのTTLを設定することによって寿命を設定するものとする。また、第1の通信制御装置3、第2の通信制御装置4、サーバ5の通信回線6側の各IPアドレスは、以下のとおりであるとする。
第1の通信制御装置3:202.132.10.6
第2の通信制御装置4:131.206.10.240
サーバ5:155.32.10.10
図6、図7は、この具体例を説明するための図である。この具体例では、第1の情報処理装置1から接続要求が行われるものとする。図6において、第1の情報処理装置1は、サーバ5のIPアドレス「155.32.10.10」をあらかじめ知っており、そのサーバ5に対して、第1の情報処理装置1の機器ID「1234567890」を送信する。ここで、この機器IDとしては、例えば、MACアドレス等のGUID(Global
Unique ID)を用いることができる。この機器IDの送信は、第1の情報処理装置1のポートP1から、第1の通信制御装置3で割り当てられたポートP2を介して、サーバ5のポートP3に対して行われる。この送信によって、サーバ5は、第1の情報処理装置1の機器IDと、第1の通信制御装置3のIPアドレス「202.132.10.6」と、第1の通信制御装置3におけるポートP2のポート番号「10034」とを知ることができる。これらの情報は、サーバ5において保持される。
第2の情報処理装置2も、第1の情報処理装置1と同様にして、第2の情報処理装置2の機器ID「9876543210」を送信する。その結果、第2の通信制御装置4のIPアドレス「131.206.10.240」と、第2の情報処理装置2の機器IDと、第2の通信制御装置4におけるポートP5のポート番号「23495」とがサーバ5において保持される。
次に、第1の情報処理装置1が、接続を要求する第2の情報処理装置2の機器ID「9876543210」をサーバ5に送信することにより、第2の情報処理装置2への接続要求を行う。すると、サーバ5は、その接続要求を受け取り、ポートP2を介して第1の情報処理装置1に第2の通信制御装置4のIPアドレス「131.206.10.240」と、ポートP5のポート番号「23495」とを通知する。
第1の情報処理装置1の中継ノード計数部12は、第2の通信制御装置4のIPアドレス「131.206.10.240」に対してトレースルートを実行することにより、第2の通信制御装置4までの中継ノードの数を計数する(ステップS101)。この計数は、図3、図4を用いた説明と同様にして行われる。そして、中継ノード計数部12は、第2の通信制御装置4までの中継ノードの数、及び第2の通信制御装置4までに経過した各中継ノードまでのTTLの値と、その中継ノードから返ってきたIPアドレスとの対応を計数結果として寿命設定部13に渡す。
寿命設定部13は、中継ノード計数部12による中継ノードの数の計数結果を受け取ると、ICMP Time Exceededによって中継ノードから返ってきたIPアドレスがグローバルアドレスである直近の(第1の通信制御装置3に一番近い)中継ノードにまでバブルパケットが到達するようにバブルパケットのTTLを設定する(ステップS102)。具体的には、中継ノードから返ってきたグローバルアドレスに対応するTTLのうち、一番小さい値のTTLをバブルパケットのTTLとして設定する。このように寿命を設定することにより、バブルパケットは、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードのうち、直近の中継ノードに到達するように寿命が設定されたことになる。ここでは、第1の情報処理装置1から2個目の中継ノードがグローバルアドレスからグローバルアドレスにパケットを中継する中継ノードであり、TTL=2に設定されたとする。
通信制御部11は、第1の情報処理装置1のポートP7からサーバ5のポートP9にバブルパケット送信ポートを検出するためのポート検出用パケットを送信する(ステップS103)。ポートP9は、サーバ5から指示されたポートであるとする。なお、このポートP9は、ポートP3と同一であってもよい。このポート検出用パケットは、第1の通信制御装置3において、新たに割り当てられたポートP8(ポート番号「10040」)を用いて送信される。このポート検出用パケットはサーバ5で受信され、第1の通信制御装置3のポートP8のポート番号「10040」が検出されて、保持される(ステップS105)。
バブルパケット送信部14は、TTL=2のバブルパケットを第2の通信制御装置4のポートP5に向けて送信する(ステップS104)。このバブルパケットのTTLは、第1の通信制御装置3において1だけ減少されTTL=1となり、第1の通信制御装置3の次の中継ノードにおいてTTL=0となって消滅する。したがって、バブルパケットは第2の通信制御装置4には到達しない。
サーバ5は、保持しているバブルパケット送信ポートP8のポート番号「10040」と、第1の通信制御装置3のIPアドレス「202.132.10.6」を、ポートP5を介して第2の情報処理装置2に通知する(ステップS106)。
第2の情報処理装置2は、第1の通信制御装置3のIPアドレスと、ポートP8のポート番号とを受け取ると、ポートP10から、そのIPアドレス、ポート番号に向けて、返信パケットを送信する(図7参照)。その返信パケットは、第1の通信制御装置3のポートP8で受け付けられ、第1の情報処理装置1のポートP7に渡される。このようにして、第1の情報処理装置1と、第2の情報処理装置2との間での通信が確立し、その後、第1の情報処理装置1と、第2の情報処理装置2とは所望のデータの送信、受信等を行うことができる。
なお、この具体例では、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードのうち、通信元の第1の情報処理装置1に対して直近の中継ノード(すなわち、第1の通信制御装置3の次の中継ノード)にバブルパケットが到達することができるように、寿命設定部13が寿命を設定する場合について説明したが、これは一例であって、前述のように、寿命設定部13は、バブルパケットがグローバルアドレスからグローバルアドレスにパケットを中継する中継ノードに到達することができるように寿命を設定してもよく、バブルパケットが通信先の第2の通信制御装置4に到達する1個以上手前の中継ノードに到達するように寿命を設定してもよい。
例えば、中継ノードの中には、ICMPに従わないものもあり得る。具体的には、トレースルートにおいてはTTLを減少させないにもかかわらず、UDPのバブルパケットのTTLを減少させる中継ノードもあり得る。そのような中継ノードが通信元の通信制御装置に含まれている場合に、中継ノード計数部12による計数結果に基づいて、グローバルアドレスからグローバルアドレスにパケットを中継する直近の中継ノードまでの寿命を有するバブルパケットを送信したとしても、実際には、バブルパケットが通信元の通信制御装置のすべてを超えないこととなってしまう。その結果、通信元の通信制御装置のうち、一番送信先に近い側の通信制御装置に送信履歴を残すことができず、第2の情報処理装置2から送信された返信パケットを受け付けることができなくなる。そのような事態を避けるためには、グローバルアドレスからグローバルアドレスにパケットを中継する直近の中継ノードから、1個以上先の中継ノードにバブルパケットが到達するように寿命を設定してもよく、あるいは、通信先の通信制御装置の1個手前の中継ノードまでのいずれかの中継ノードにバブルパケットが到達するように寿命を設定してもよい。
また、寿命設定部13は、通信元の第1の情報処理装置1と、通信先の第2の情報処理装置2との通信が確立されるまで、バブルパケット送信部14がバブルパケットを送信するごとに、バブルパケットが到達することができる中継ノードを増やして寿命を設定してもよい。具体的には、まず、グローバルアドレスからグローバルアドレスにパケットを中継する直近の中継ノードに到達するようにバブルパケットの寿命を設定しておき、そのバブルパケットの送信によって情報処理装置間の通信を確立することができなかった場合に、次にバブルパケットの寿命(TTL)を1だけインクリメントしてバブルパケットを送信し、それでも情報処理装置間の通信を確立することができなかった場合には、さらにバブルパケットの寿命を1だけインクリメントして通信の確立を試みるということを繰り返して行ってもよい。なお、通信が確立できなかった場合に、バブルパケットが到達することができる中継ノードを1ずつ増やして寿命を設定してもよく、あるいは、バブルパケットが到達することができる中継ノードを所定の数ずつ(何回目の増加であるかによって異なっていてもよい)増やして寿命を設定してもよい。
以上のように、本実施の形態による通信システムによれば、第1の情報処理装置1が送信するバブルパケットに寿命を設け、第2の通信制御装置4に到達しないようにしたことで、受信フィルタルールによって受け付けることができないパケットを受信した場合に、そのパケットの通信元から一切のパケットを受け付けなくなるような第2の通信制御装置4が用いられていたとしても、バブルパケットが第2の通信制御装置4に到達することがないため、バブルパケットを送信した後の、第1の情報処理装置1と第2の情報処理装置2との間での通信の確立を適切に行うことができ得る。
また、グローバルアドレスからグローバルアドレスへのパケットの中継を行う中継ノードのうち、通信元に直近の中継ノードにバブルパケットが到達した時点で消滅するようにバブルパケットの寿命を設定しておくことによって、通信元の第1の通信制御装置3に送信履歴を残す役割のみを有するバブルパケットによって通信トラフィックが増大される事態を回避することができ得る。
なお、本実施の形態では、中継ノード計数部12が中継ノードの数を計数し、その計数結果に基づいて寿命設定部13がバブルパケットの寿命を設定する場合について説明したが、第1の情報処理装置1が中継ノード計数部12を備えず、外部から入力された通信元の通信制御装置の段数に基づいて、寿命設定部13がバブルパケットの寿命を設定するようにしてもよい。例えば、図1で示されるように、通信元の第1の通信制御装置3が1段しかない場合には、寿命設定部13がその通信制御装置の段数「1」に「1」を加算した「2」をTTLとして設定することによってバブルパケットの寿命の設定を行ってもよい。
また、本実施の形態では、通信先の第2の情報処理装置2の側にも、通信制御装置を有する場合について説明したが、図8で示されるように、通信先は通信制御装置を有しない構成であってもよい。この場合には、寿命設定部13は、通信先の第2の情報処理装置2に到達しない範囲の寿命をバブルパケットの寿命として設定する。このようにすることで、通信のトラフィックを増大させる事態を回避することができ得る。このことは、特に、寿命設定部13がバブルパケットの寿命を、グローバルアドレスからグローバルアドレスにパケットを中継する直近の中継ノードにバブルパケットが到達できるように設定した場合に顕著である。
また、本実施の形態では、通信制御装置がRestricted Cone NATの機能を有するものである場合について説明したが、通信制御装置は、それ以外の種類のNATであってもよい。すなわち、バブルパケットに寿命を設定することは、任意の種類のNATを介してバブルパケットを送信する情報処理装置において用いることができ得る。なお、異なる種類のNATを用いた場合には、そのNATの種類に応じて、通信を確立するための処理が異なっていてもよい。
また、中継ノード計数部12による中継ノードの数の計数において、本実施の形態では、通信先のNATである第2の通信制御装置4までの中継ノードの数を計数する場合について説明したが、例えば、寿命設定部13がグローバルアドレスからグローバルアドレスへのパケットの中継を行う直近の中継ノードにバブルパケットが到達できるように寿命を設定するような場合には、サーバ5や、その他のサーバにまでの中継ノードの数の計数を行ってもよい。
また、中継ノード計数部12による中継ノードの数の計数において、本実施の形態では、トレースルートによって所定の通信先のノード(例えば、第2の通信制御装置4など)までの中継ノードの数をすべて計数する場合について説明したが、例えば、寿命設定部13がグローバルアドレスからグローバルアドレスへのパケットの中継を行う直近の中継ノードにバブルパケットが到達できるように寿命を設定するような場合には、中継ノードの数の計数は、通信元の通信制御装置(通信制御装置が多段である場合には、その多段のすべての通信制御装置)を超える範囲において、中継ノードの数の計数を行ってもよい。例えば、寿命設定部13がグローバルアドレスからグローバルアドレスへのパケットの中継を行う直近の中継ノードにバブルパケットが到達できるように寿命を設定するような場合には、中継ノードの数の計数は、グローバルアドレスからグローバルアドレスへのパケットの中継を行う直近の中継ノードにおいて終了してもよい。具体的には、UDPのパケットにTTLを順番にインクリメントしながら設定して送信している場合には、ICMP Time Exceededを返してきた中継ノードのIPアドレスがグローバルアドレスを有するようになった時点で、中継ノードの数の計数を終了してもよい。そして、そのグローバルアドレスを返してきた時点のUDPパケットに設定されていたTTLの値を、寿命設定部13がバブルパケットの寿命として設定してもよい。
また、本実施の形態では、バブルパケットの寿命の設定をTTLの設定によって行う場合について説明したが、それ以外の方法によって寿命の設定を行ってもよい。例えば、送信時の時刻と、寿命を示す時間との設定により、バブルパケットに寿命を設定してもよい。この場合には、中継ノードにおいて、送信時の時刻から寿命を示す時間だけ経過したことが確認されると、そのバブルパケットが廃棄されることになる。
また、本実施の形態では、第1の通信制御装置3、及び第2の通信制御装置4がNATの機能を有するものであると説明したが、第1の通信制御装置3、及び第2の通信制御装置4は、NATの機能に代えて、あるいはNATの機能と共にパケットフィルタリングのファイアウォール(Firewall)の機能を有するものであってもよい。ここで、パケットフィルタリングとは、例えば、前述の受信フィルタルールに基づいた受信パケットの選択を行うものである。第1の通信制御装置3が、そのような受信フィルタルールに基づいたファイアウォール機能を有する場合、ローカル側(第1の情報処理装置1側)からグローバル側(通信回線6)へのバブルパケットの送信によって第1の通信制御装置3に送信履歴を残すことで、バブルパケット送信ポートに送信された返信パケットを受け付けることができるようになる。また、第2の通信制御装置4が受信フィルタルールによって受け付けることができないパケットを受信した場合に、そのパケットの通信元から一切のパケットを受け付けなくなるようなファイアウォールの機能を有する場合であっても、通信先の第2の通信制御装置4に到達しない範囲の寿命がバブルパケットに設定されることによって、第1の情報処理装置1と第2の情報処理装置2との通信を適切に確立することができ得る。
なお、第1の通信制御装置3、及び第2の通信制御装置4がハードウェアとして情報処理装置と別途構成されており、また、NATの機能を有しないで、ファイアウォールの機能を有する場合には、それらの通信制御装置は、ルーティング機能を有することになり、一般にTTLを1だけ減少させる中継ノードとなり得る。この場合には、例えば、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードにバブルパケットが到達することができるようにバブルパケットの寿命が設定されることにより、そのファイアウォール(通信制御装置)に対しても送信履歴を残すことができ、第1の情報処理装置1は、第2の情報処理装置2から送信された返信パケットを受け付けることができる。
一方、第1の情報処理装置1、及び第2の情報処理装置2においてアプリケーションとしてファイアウォール機能を実装した場合には、バブルパケットがファイアウォール(通信制御装置)を通過することによって、TTLが1だけ減少されることはない(この場合には、情報処理装置と通信制御装置とが一体として構成されていることとなり、そのうち通信制御装置(ファイアウォール)の機能のみを別途明記したものが図1で示されることになる)。この場合には、TTLが1以上のバブルパケットが送信されることにより、ファイアウォールに送信履歴を残すことができる。また、このファイアウォールのグローバル側(通信回線6側)にさらにNATの機能を有する1以上の通信制御装置があったとしても、グローバルアドレスからグローバルアドレスにパケットを中継する中継ノードにバブルパケットが到達することができるようにバブルパケットの寿命が設定されることにより、そのNATの機能を有する通信制御装置に対しても送信履歴を残すことができ、第1の情報処理装置1は、第2の情報処理装置2から送信された返信パケットを受け付けることができる。
なお、図8で示されるように第2の通信制御装置4を備えなくてもよい旨、通信元の通信制御装置の段数を外部から入力してもよい旨などについては、通信制御装置がNATの機能に代えて、あるいはNATの機能と共にファイアウォール機能を有する場合であっても、上記説明と同様である。
また、本実施の形態では、サーバ5をIPアドレスによって特定する場合について説明したが、サーバ5をドメイン名(例えば、server.pana.netなど)によって特定してもよい。この場合には、そのドメイン名がDNSサーバを用いて、IPアドレスに変換されることにより、サーバ5を特定することができる。
また、本実施の形態における通信プロトコルは、例えば、IPv4(Internet
Protocol version 4)であってもよく、あるいは、IPv6(Internet Protocol version 6)であってもよい。
また、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。なお、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータに、通信先の情報処理装置と、通信元の1以上の通信制御装置を介して通信を行う通信元の情報処理装置におけるバブルパケットを送信させるためのプログラムであって、通信元の通信制御装置に送信履歴を残すために前記通信元の情報処理装置から送信されるバブルパケットに対して、当該バブルパケットが前記通信先の情報処理装置に到達しない範囲の寿命を設定する寿命設定ステップと、前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の1以上の通信制御装置を介して送信するバブルパケット送信ステップと、を実行させるためのものである。
なお、上記プログラムにおいて、パケットを送信する送信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、このプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、CD−ROMなどの光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
以上のように、本発明による情報処理装置等は、バブルパケットが通信先の情報処理装置、あるいは通信先の通信制御装置に到達しない範囲の寿命をバブルパケットに設定するものであり、情報処理装置間の通信の確立においてバブルパケットを送信する情報処理装置等に有用である。
本発明の実施の形態1による通信システムの構成を示す図 同実施の形態による第1の情報処理装置の構成を示すブロック図 同実施の形態におけるトレースルートを説明するための図 同実施の形態におけるトレースルートを説明するための図 同実施の形態による通信システムの動作を説明するための図 同実施の形態による通信システムの具体例を説明するための図 同実施の形態による通信システムの具体例を説明するための図 同実施の形態による通信システムの構成の他の一例を示す図 通信システムの一例を示す図
符号の説明
1 第1の情報処理装置
2 第2の情報処理装置
3 第1の通信制御装置
4 第2の通信制御装置
5 サーバ
11 通信制御部
12 中継ノード計数部
13 寿命設定部
14 バブルパケット送信部

Claims (6)

  1. 通信先の情報処理装置と、通信元の1以上の通信制御装置を介して通信を行う通信元の情報処理装置であって、
    入力された通信元の通信制御装置の段数に基づいて、通信元の通信制御装置に送信履歴を残すために、算出した段数の中継ノードに前記通信元の情報処理装置から送信されるバブルパケットが到する寿命を設定する寿命設定部と、
    前記寿命設定部が設定した寿命を有するバブルパケットを、通信元の1以上の通信制御装置を介して送信するバブルパケット送信部と、を備えた情報処理装置。
  2. 前記寿命設定部は、前記入力された通信元の通信制御装置の段数に1を加算した段数の中継ノードに前記バブルパケットが到達する寿命を設定する、請求項記載の情報処理装置。
  3. 前記寿命設定部は、前記通信元の情報処理装置と、前記通信先の情報処理装置との通信が確立されるまで、前記バブルパケット送信部がバブルパケットを送信するごとに、前記バブルパケットが到達することができる中継ノードを1ずつ増やして寿命を設定する、請求項1または請求項のいずれか記載の情報処理装置。
  4. 前記寿命の設定は、バブルパケットに関するTTL(Time To Live)の設定である、請求項1から請求項のいずれか記載の情報処理装置。
  5. 通信先の情報処理装置と、通信元の1以上の通信制御装置を介して通信を行う通信元の情報処理装置におけるバブルパケット送信方法であって、
    入力された通信元の通信制御装置の段数に基づいて、通信元の通信制御装置に送信履歴を残すために、算出した段数の中継ノードに前記通信元の情報処理装置から送信されるバブルパケットが到達する寿命を設定する寿命設定ステップと、
    前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の1以上の通信制御装置を介して送信するバブルパケット送信ステップと、を備えたバブルパケット送信方法。
  6. コンピュータに、
    通信先の情報処理装置と、通信元の1以上の通信制御装置を介して通信を行う通信元の情報処理装置におけるバブルパケットを送信させるためのプログラムであって、
    入力された通信元の通信制御装置の段数に基づいて、通信元の通信制御装置に送信履歴を残すために、算出した段数の中継ノードに前記通信元の情報処理装置から送信されるバブルパケットが到達する寿命を設定する寿命設定ステップと、
    前記寿命設定ステップで設定した寿命を有するバブルパケットを、通信元の1以上の通信制御装置を介して送信するバブルパケット送信ステップと、を実行させるためのプログラム。
JP2006024358A 2006-02-01 2006-02-01 情報処理装置、及びバブルパケット送信方法 Expired - Lifetime JP4345751B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006024358A JP4345751B2 (ja) 2006-02-01 2006-02-01 情報処理装置、及びバブルパケット送信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006024358A JP4345751B2 (ja) 2006-02-01 2006-02-01 情報処理装置、及びバブルパケット送信方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004138222A Division JP3835462B2 (ja) 2004-05-07 2004-05-07 情報処理装置、及びバブルパケット送信方法

Publications (3)

Publication Number Publication Date
JP2006121762A JP2006121762A (ja) 2006-05-11
JP2006121762A5 JP2006121762A5 (ja) 2007-08-23
JP4345751B2 true JP4345751B2 (ja) 2009-10-14

Family

ID=36539128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006024358A Expired - Lifetime JP4345751B2 (ja) 2006-02-01 2006-02-01 情報処理装置、及びバブルパケット送信方法

Country Status (1)

Country Link
JP (1) JP4345751B2 (ja)

Also Published As

Publication number Publication date
JP2006121762A (ja) 2006-05-11

Similar Documents

Publication Publication Date Title
JP3835462B2 (ja) 情報処理装置、及びバブルパケット送信方法
Hagino et al. An IPv6-to-IPv4 transport relay translator
EP2890092B1 (en) Cooperative nat behavior discovery
JP4327142B2 (ja) 情報処理システム、トンネル通信装置、トンネル通信方法、代理応答装置、及び代理応答方法
JP4708036B2 (ja) 通信システム、情報処理装置、サーバ、及び情報処理方法
EP3342127A1 (en) Network packet flow controller with extended session management
US20070076729A1 (en) Peer-to-peer communication traversing symmetric network address translators
EP2051451A1 (en) Communication apparatus, communication method and communication system
US20080304419A1 (en) Determining connectivity between endpoints in a network
Muller et al. Autonomous nat traversal
WO2017204969A1 (en) Apparatus and method of securing network communications
WO2011035528A1 (zh) 用于通过中继方式进行nat穿越的方法、系统和中继服务器
US10079802B2 (en) Network transmission method and network transmission system for a multi-layer network address translator structure
JP4712481B2 (ja) 通信方法および装置
US7356031B1 (en) Inter-v4 realm routing
US9860157B2 (en) Zero configuration approach for port forwarding cascaded routers
JP2008147738A (ja) 通信方法、通信システム、機器、並びに端末
EP1809000A1 (en) Information processing device, information processing system, information processing method, and program
JP2005117587A (ja) 通信方法
WO2005046143A1 (ja) 通信システム、情報処理装置、サーバ、および通信方法
JP4345751B2 (ja) 情報処理装置、及びバブルパケット送信方法
Punithavathani et al. Performance analysis for wireless networks: An analytical approach by multifarious sym teredo
JP5084716B2 (ja) Vpn接続装置、dnsパケット制御方法、及びプログラム
WO2013035309A1 (ja) エージェント装置及び通信中継方法
Silvennoinen Legacy network address translator traversal using the host identity protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070425

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090604

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: 20090623

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090706

R151 Written notification of patent or utility model registration

Ref document number: 4345751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4