JP2005065204A - パーソナルipシステム - Google Patents

パーソナルipシステム Download PDF

Info

Publication number
JP2005065204A
JP2005065204A JP2003323742A JP2003323742A JP2005065204A JP 2005065204 A JP2005065204 A JP 2005065204A JP 2003323742 A JP2003323742 A JP 2003323742A JP 2003323742 A JP2003323742 A JP 2003323742A JP 2005065204 A JP2005065204 A JP 2005065204A
Authority
JP
Japan
Prior art keywords
client
communication
server
address
network
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
JP2003323742A
Other languages
English (en)
Inventor
Takeshi Saikai
剛 西海
Yoichi Kono
陽一 河野
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.)
SPINNAKER KK
Original Assignee
SPINNAKER KK
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 SPINNAKER KK filed Critical SPINNAKER KK
Priority to JP2003323742A priority Critical patent/JP2005065204A/ja
Publication of JP2005065204A publication Critical patent/JP2005065204A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 イントラネットやLAN等のローカルネットワーク内においてローカルIPアドレスを使用して運営している環境では、インターネット等から前記ネットワーク上のノードに直接アクセスする手段がなかった。
この解決のためにNAPT等の技術があるが、ISPが対応していない限り利用できないのが一般的である。
また、インターネット等からアクセス可能な前記ローカルネットワーク上のノード各々に対してひとつづつグローバルIPアドレスが必要であるなど、貴重な資源であるグローバルIP アドレスを節約する用をなさない課題があった。
【解決手段】 前記課題の解決のために、現在充分に普及しているIPマスカレードを利用してグローバルIPアドレスを持つノードに仮想回線を構築し、該仮想回線を利用してインターネット等から前記ローカルネットワーク上のノードにアクセスし、このときの通信内容を解析することによって単一のグローバルIPアドレスで複数の前記ローカルネットワーク上のノードを識別する手段を提供する。
【選択図】 図1

Description

発明の詳細な説明
本発明は、ネットワーク通信を行うシステムに係わり、異なるプロトコルないしノード識別子空間の識別子が使用されている2以上のネットワーク間における通信を容易に行うことを可能にしたシステムに関する。
インターネットでは、IP(Internet Protocol)(非特許文献1)に基づき、IPパケット(Internet Protocol Packet)を送受信することで通信を行う。
IPではノード識別子として、IPアドレス(Internet Protocol Address)と呼ばれるノード識別子をIPパケットを送受信する各々のコンピューターに割り当てる。IPアドレスは、それぞれのコンピューターを識別する識別子としての役割を持つとともに、通信を行う通信路を特定するためにも使用される。
また、TCP(Transmission Control Protocol)(非特許文献2)やUDP(User Datagram Protocol)(非特許文献3)をIPとともに使う場合には、IPアドレスとともに、ポート番号(Port Number)と呼ばれる多重化識別子を用いることで、一つのコンピューターが同時に複数の通信が行えるようになっている。
IPアドレスは、IANA(Internet Assigned Numbers Authority)を頂点とする複数の組織によって管理されている。IANAは、全IPアドレスの一部を各地域の関連組織に割り当て、該関連組織は、割り当てられたIPアドレスの一部を下部組織やISP(Internet Service Provider)に割り当て、と繰り返し、最終的にIPアドレスを各コンピューターに割り当てる。
このようにして、IPアドレスは世界中で一意の識別子となるように管理されている。
しかし運営上の便宜のために、各ローカル・ネットワーク内でのみ自由に利用してもよいように、いかなる組織にも割り当てないようにIANAが予約してあるIPアドレスがあり、ローカルIPアドレス(Local Internet Protocol Address)、あるいはプライベートIPアドレス(Private Internet Procotol Address)と呼ばれている。
なお、通常のIPアドレスは、ローカルIPアドレスでないことを特に示す場合にはグローバルIPアドレス(Global Internet Protocol Address)と呼ばれる。
前記ローカルIPアドレスは、申請等の手続きを必要とせずに使用できるがわりに、ローカルIPアドレスを持ったコンピューターは、インターネットに存在しないかのように扱われるように定められている。(非特許文献4)
これは、ルーター(Router)やゲートウェイ(Gateway)が、IPパケットの送信元IPアドレスないしは送信先IPアドレスがローカルIPアドレスであるIPパケットを通過させないことによって実現されている。
このことは、ローカル・ネットワーク内のあるコンピューターが重複してグローバルIPアドレスを割り当てられているのでない場合、インターネットなどのローカル・ネットワークの外部にあるコンピューターとIPパケットの送受信を行うことができないことを示している。
このため、グローバルIPアドレスを割り当てられていないコンピューターは、インターネットなどの、ローカル・ネットワークの外部のネットワークのコンピューターと通信を行うことができない。
これを解消するために、IPマスカレード(Internet Protocol Masquerade)やNAT(Network Address Translation)、NAPT(Network Address Port Translation)、高機能ゲートウェイ(特許文献1)などの技術が利用されている。
なお、IPマスカレードは元々プログラム名であり、それが一般に定着したものである。このため、IPマスカレードのことを動的NAPTと呼んだり、逆にNAPTを静的IPマスカレードと呼ぶ場合もある。
また、NAPTは、ENAT(Enhanced Network Address Translation)、ANAT(Advanced Network Address Translation)などと呼ばれることがある。
これら用語の混乱を避ける意味でも、以下にIPマスカレードとNAPTという従来の技術を使用した場合の説明を行う。
図2は、グローバルIPアドレスを持つコンピューターとローカルIPアドレスを持つコンピューターが通信を行う場合を示す図である。
同図において、201はインターネット、202はローカル・ネットワーク、221はインターネット201とローカル・ネットワーク202をつなぐ、ローカル・ネットワーク202のデフォルト・ゲートウェイであるゲートウェイ、211はローカル・ネットワーク202のローカルIPアドレスを割り当てられたコンピューター、216はインターネット202のグローバルIPアドレスを割り当てられたコンピューターである。
図3は、ゲートウェイ221にIPマスカレードが実施されている場合に、IPマスカレードが使用する変換テーブルである。
図4は、ゲートウェイ221にNAPTが実施されている場合に、NAPTが使用する変換テーブルである。
これらの図を用いて、IPマスカレード、NAPTの技術によってコンピューター211とコンピューター216が通信を行う場合を説明する。
ここで、コンピューター211にはローカルIPアドレス、10.0.1.2が割り当てられ、コンピューター216にはグローバルIPアドレス、192.0.2.6が割り当てられているものとする。また、ゲートウェイ221にはローカルIPアドレス、10.0.0.1とグローバルIPアドレス、192.0.2.1が割り当てられているものとする。
第一に、ゲートウェイ221にIPマスカレードが実施されている場合に、コンピューター211のポート番号5001からコンピューター216のポート番号80への通信としてIPパケットを送受信する場合について説明する。
このとき、ゲートウェイ221は図3の変換テーブルを使用し、この変換テーブルの内容は、最初は空である。
コンピューター211は、IPパケットを作成する。
該IPパケットは、送信元IPアドレスが10.0.1.2、送信元ポート番号が5001、送信先IPアドレスが192.0.2.6、送信先ポート番号が80となっている。
コンピューター211は、デフォルト・ゲートウェイであるゲートウェイ221に該IPパケットを送信する。
ゲートウェイ221は、受信したIPパケットの送信元IPアドレスがローカルIPアドレスであるので、変換テーブルから、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号がそれぞれLA、LP、GA、GPである行を検索する。
見つからなかった場合、該IPパケットがTCPパケットを含んでいて且つコネクションの確立要求パケットである場合、あるいは、該IPパケットがUDPパケットを含んでいる場合は、未使用のポート番号を一つ、代理ポート番号として選択し、該IPパケットの送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号と、該代理ポート番号をそれぞれLA,LP、GA、GP、PPとして変換テーブルに追加して、見つかった場合の処理を行う。
ここで、ゲートウェイ221は代理ポート番号として9001を選択したものとし、変換テーブルの内容は図3のようになる。
見つかった場合は、PPの内容を代理ポート番号とし、該IPパケットの送信元IPアドレス、10.0.1.2をゲートウェイ221のグローバルIPアドレス、192.0.2.1に置き換え、さらに、送信元ポート番号、5001を見つかった代理ポート番号、9001に置き換えた後、コンピューター216に送信する。
コンピューター216は、受信した内容に対して返信する場合、受信したIPパケットの送信元IPアドレス192.0.2.1と送信元ポート番号9001から、新しいIPパケットを作る。
該IPパケットは、送信元IPアドレスが192.0.2.6、送信元ポート番号が80、送信先IPアドレスが192.0.2.1、送信先ポート番号が9001になっている。
コンピューター216は該IPパケットを送信し、ゲートウェイ221がこれを受信する。
ゲートウェイ221は、受信したIPパケットの送信先IPアドレスがゲートウェイ221のグローバルIPアドレス192.0.2.1であるかどうかを調べ、そうである場合には、該IPパケットの送信元IPアドレス、送信元ポート番号、送信先ポート番号がそれぞれGA、GP、PPである行を変換テーブルから検索する。
一致する行があるので、該IPパケットの送信先IPアドレス、192.0.2.6をLAである10.0.1.2に置き換え、また、送信先ポート番号9001をLPである5001に置き換えた後、コンピューター211に送信する。
以降、同様にして、コンピューター211とコンピューター216はIPパケットを送受信することができる。
このように、IPマスカレードでは、事前に登録を行わなくても通信が可能であるが、最初にローカル・ネットワークのコンピューターからインターネットのコンピューターに通信を開始する必要があるため、インターネットのコンピューターからローカル・ネットワークのコンピューターを指定して通信を行うことはできない。
第二に、ゲートウェイ221にNAPTが実施されている場合に、コンピューター216のポート番号5001からコンピューター211のポート番号80へ通信を行うためにIPパケットを送受信する場合について説明する。
このとき、ゲートウェイ221は図4の変換テーブルを使用し、この変換テーブルの内容は、図に示されたとおりである。
コンピューター216は、送信元IPアドレスが192.0.2.6、送信元ポート番号が5001、送信先IPアドレスが192.0.2.1、送信先ポート番号が80となっているIPパケットを作成し、デフォルト・ゲートウェイであるゲートウェイ221へ送信する。
ゲートウェイ221は、変換テーブルから、受信したIPパケットの送信先IPアドレスと送信先ポート番号の組がGA、GPの組と一致する行を検索する。
一致する行が見つかったならば、該IPパケットの送信先IPアドレスと送信先ポート番号をそれぞれ、見つかった行のLA、LPに置き換え、コンピューター211に送信する。
この場合は、送信先IPアドレス192.0.2.1は10.0.1.2に置き換えられ、送信先ポート番号80は8080に置き換えられる。
逆に、コンピューター211からコンピューター216にIPパケットを送信する場合には、コンピューター211はゲートウェイ221にIPパケットを送信する。
ゲートウェイ221は、受信したIPパケットの送信元IPアドレスと送信元ポート番号の組がLA、LPの組と一致する行を検索する。
一致する行が見つかったならば、該IPパケットの送信元IPアドレスと送信元ポート番号をそれぞれ、見つかった行のGA、GPに置き換え、コンピューター216に送信する。
この場合は、送信元IPアドレス10.0.1.2は192.0.2.1に置き換えられ、送信元ポート番号8080は80に置き換えられる。
同様にして、コンピューター216とコンピューター211はIPパケットを送受信する。
このように、NAPTでは、あらかじめローカルIPアドレスとそのポート番号、グローバルIPアドレスとそのポート番号の組が登録されていれば、インターネットのコンピューターからローカル・ネットワークのコンピューターを指定して通信を行うことが可能である。
NATはNAPTと同様の技術であるが、ポート番号を考慮せずに、グローバルIPアドレスとローカルIPアドレスを対応付ける。
また、高機能ゲートウェイは、グローバルIPアドレスとポート番号の組ではなく、アプリケーション層のプロトコル(例えばHTTP)を解析し、ローカルIPアドレスとポート番号の組を決定するものである。
IPマスカレードによって、ローカル・ネットワーク上のコンピューターからインターネット上のコンピューターに通信を開始することが可能となった。
また、NAPTやNAT、高機能ゲートウェイによって、その逆も可能となっている。
しかしながら、NAPT,NAT、高機能ゲートウェイは、いずれもインターネットとローカル・ネットワークとをつなぐゲートウェイに実施される技術であるため、これらの技術によってローカル・ネットワーク上のコンピューターをインターネットに公開する(即ち、外部のネットワークからローカル・ネットワークにコネクションの確立要求を行うなど通信を開始するようにする)ためには、該ゲートウェイにおいてこれらの技術を実施し、事前に登録する必要がある。
そして多くの場合、前記ゲートウェイにおいてIPマスカレードは実施されていても、NAPTやNAT、高機能ゲートウェイへの登録はされていないというのが一般的である。
特願2002−53668
RFC791 Internet Protocol
RFC793 Transmission Control Protocol
RFC768 User Datagram Protocol
RFC1597 Address Allocation for Private Internets
発明が解決しようとする課題
一般に、前記ゲートウェイはISP(Internet Service Provider)が管理するものであり、ISPの顧客は該ゲートウェイに前記技術を実施したり登録を行ったりする権利は与えられていない。
またIPマスカレードは実施されていて、前記ISPの顧客はこの技術によってインターネットに接続できるが、NAPTやNAT、高機能ゲートウェイへの登録はされてないというのが一般的である。
このため、顧客のコンピューターにグローバルIPアドレスを割り当てないISPの顧客は、ISPから特にサービスを受けることで登録をされない限り、インターネット上にコンピューターを公開することはできないのが現状である。
これらから、以下の課題が存在する。
課題1として、IPマスカレード等の技術によって外部のネットワークに接続できるローカル・ネットワーク上にあるコンピューターへ向けて該外部のネットワーク上にある任意のコンピューターから通信を開始するための、該ローカル・ネットワークと該外部のネットワークとの間にあって該外部のネットワークに接続されているゲートウェイに対する変更や登録等を行う必要のない手段を提供する。
課題2として、課題1の手段における通信の開始ののち、前記外部のネットワーク上にある任意のコンピューターと前記ローカル・ネットワーク上にあるコンピューターとが通信を行う手段を提供する。
課題3として、課題1、2の手段を、可能な限り既存の手段を利用することで実施を容易とする手段を提供する。
課題4として、課題1、2、3の手段を、前記外部のネットワークにおける一つのノード識別子を複数の前記ローカル・ネットワーク上にあるコンピューターで共用できる手段を提供する。
課題5として、課題4の手段を、前記外部のネットワークにおいて使用されているプロトコルによってノード識別子以外に多重化識別子(TCP/IPやUDP/IPにおけるポート番号)が必要とされる場合に該多重化識別子を共用できる手段を提供する。
課題6として、課題1、2、3、4、5を解決するにあたって、既存のハードウェアやソフトウェアへの変更が少なくて済む手段を提供する。
課題7として、課題6を解決するにあたって、ローカル・ネットワーク上のコンピューターに関する情報をローカル・ネットワークの外部に提供する必要がない手段を提供する。
課題8として、課題6、7を解決するにあたって、ローカル・ネットワーク上のコンピューターが通信相手に関する情報を取得する場合でも変更が少なくて済む手段を提供する。
本発明の目的は、課題1、2、3、4、5、6、7、8を解決するパーソナルIPシステムを提供することにある。
課題を解決するための手段
本発明は、上記の課題を解決するために、次のような手段を採用した。
第一の手段は、外部のネットワークにある任意のコンピューターがアクセスできるサーバーに該任意のコンピューターがコネクションの確立要求などを送信すると、ローカル・ネットワークにあるクライアントに対して通知するシステムであり、該通知がIPマスカレード等の技術を利用して前記サーバーに前記クライアントがアクセスすることで構築した仮想回線を使用すること、及び、該通知にともなって、あらたな通信チャネルを構築し、該通信チャネルによって通信内容を転送することを特徴とする。
第二の手段は、第一の手段における通信チャネルの構築を、前記仮想回線上に論理的な複数の通信チャネルを構築することによって行うことを特徴とする。
第三の手段は、第一の手段における通信チャネルの構築を、前記サーバーと前記クライアントの間に新たに仮想回線を構築し、該仮想回線を通信チャネルとして使用することによって行うことを特徴とする。
第四の手段は、前記サーバーが複数の前記クライアントに対して個別に第一の手段における仮想回線を構築することを特徴とする。
第五の手段は、第四の手段における複数の仮想回線の一つを特定するために、前記外部のネットワークにある任意のコンピューターから前記サーバーに送信を行う際に使用されるアプリケーション層のプロトコルに基づいてその内容を解析することを特徴とする。
第六の手段は、前記クライアントが前記通信チャネルの通信内容を前記ローカル・ネットワーク内で使用しているプロトコルに変換し、転送することを特徴とする。
第七の手段は、前記クライアントが前記通信チャネルによって通信されている内容をローカル・ネットワーク内の複数のコンピューターのいずれに送信するがを特定するために、該通信を行う際に使用されるアプリケーション層のプロトコルに基づいて内容を解析することを特徴とする。
第八の手段は、前記クライアントを、前記ローカル・ネットワークのデフォルト・ゲートウェイとすることで、実際に通信を行う前記外部のネットワークのコンピューターを識別するノード識別子や多重化識別子を該ローカル・ネットワークにおいて使用されているプロトコルにおける送信元や送信先とすることを特徴とする。
本発明の一実施形態を、図1及び図5ないし図23を用いて説明する。
図1は、インターネットに接続されたゲートウェイによってLAN(Local Area Network)をインターネットに接続しているプロバイダーと、自宅にある三台のコンピューターを接続しているLANを該プロバイダーのLANに接続された本発明にかかるクライアントであるゲートウェイによって該プロバイダーのLANに接続している該プロバイダーの顧客と、インターネットに接続された本発明にかかるサーバーの図である。
同図において、133はインターネット、132はISPのLAN、131は前記ISPの顧客の家庭にあるLAN、101はLAN131に接続されているローカルIPアドレス192.168.131.101を割り振られたコンピューター、102はLAN131に接続されているローカルIPアドレス192.168.131.102を割り振られたコンピューター、103はLAN131に接続されているローカルIPアドレス192.168.131.103を割り振られたコンピューター、107はインターネット133に接続されたグローバルIPアドレス192.0.2.107を割り振られたコンピューター、108はインターネット133に接続されたグローバルIPアドレス192.0.2.108を割り振られたコンピューター、111はインターネット133に接続された本発明に係るサーバー、122はLAN132とインターネット133をつなぐインターネット133に対してグローバルIPアドレス192.0.2.122をLAN132に対してローカルIPアドレス172.16.132.122を割り当てられたIPマスカレードを実施されたゲートウェイ、121はLAN131とLAN132をつなぐLAN132に対してローカルIPアドレス172.16.132.121をLAN131に対してローカルIPアドレス192.168.131.121を割り当てられた本発明に係るクライアントであるIPマスカレードを実施されたゲートウェイでありLAN131におけるデフォルト・ゲートウェイである。
図5は、サーバー111の概念図である。
同図において、511はHTTP(HyperText Transfer Protocol)用デバイダー・モジュール、512はSMTP(Simple Mail Transfer Protocol)用デバイダー・モジュール、520はスイッチャー・モジュール、521、522、523はフォワーダー・モジュール、531、532、533はそれぞれフォワーダー521、522、523に異なったクライアントから接続されている仮想回線、541はフォワーダーマスター・モジュールである。107、111は図1と同じなので省略する。
図6は、クライアント121の概念図である。
同図において、611はレシーバー・モジュール、621はHTTP用セレクター・モジュール、622はFTP用セレクター・モジュール、623はSMTP用セレクター・モジュール、631はプレマスカレード・モジュール、1011はコンピューター101のポート番号80において稼動しているHTTPサーバー・アプリケーション、1012はコンピューター101のポート番号21において稼動しているFTPサーバー・アプリケーション、1013はコンピューター101のポート番号25において稼動しているSMTPサーバー・アプリケーション、1021はコンピューター102のポート番号80において稼動しているHTTPサーバー・アプリケーション、1022はコンピューター102のポート番号21において稼動しているFTPサーバー・アプリケーション、1023はコンピューター102のポート番号25において稼動しているSMTPサーバー・アプリケーション、1031はコンピューター103のポート番号80において稼動しているHTTPサーバー・アプリケーション、1032はコンピューター103のポート番号21において稼動しているFTPサーバー・アプリケーション、1033はコンピューター103のポート番号25において稼動しているSMTPサーバー・アプリケーションである。101、102、103、121は図1と、531は図5と同じなので省略する。
図7は、スイッチャー520が具備するフォワーダー一覧である。
図8は、レシーバー611が具備するセレクター一覧である。
図9は、セレクター621が具備する選択表である。セレクターは類似の選択表を具備する。
図10は、ゲートウェイ121のプロトコル・スタックが受信したIPパケットを該ゲートウェイに実施されているIPマスカレードに処理させる際にプレマスカレード631が使用するプレマスカレード対応表である。
図11は、仮想回線531、532、533において通信を行う際に使用されるチャンクのフォーマットである。
ここで、請求項1ないし8に記載の各特徴は以下のとおりである。
サーバーは、サーバー111である。
クライアントは、ゲートウェイ121である。
請求項1の(1−1)に記載のネットワークは、LAN131である。また、LAN131で使用されているプロトコルはIPであり、そのノード識別子空間は192.168.0.0〜192.168.255.255(192.168.0.0/16)のローカルIPアドレスである。
請求項1の(1−2)に記載のネットワークは、インターネット133である。インターネット133で使用されているプロトコルはIPであり、そのノード識別子空間はグローバルIPアドレスである。
請求項1の(1−3)に記載の仮想回線は、仮想回線531、532、533である。
請求項1の(1−4)に記載の手段は、請求項2の(2−1)に記載の手段と請求項3の(3−4)に記載の手段である。
請求項1の(1−5)に記載のチャンクは、図11のフォーマットを持つ。
請求項1の(1−6)に記載の通信は、デバイダーがTCP/IPないしはUDP/IPによって行う。
請求項1の(1−7)に記載の情報は、図11における外部IPアドレスと外部ポート番号である。
請求項1の(1−8)に記載の送信は、デバイダーがフォワーダーに送信後、それを該フォワーダーがレシーバーに送信することで行う。
請求項1の(1−9)に記載の情報は、図11におけるフラグのCビットであり、該ビットが1か否かによって識別する。
請求項1の(1−10)に記載の転送は、TCP/IP通信においては請求項3の(3−4)に記載の通信チャネルによってデバイダーが行い、UDP/IP通信においてはデバイダーがフォワーダーに転送後、該フォワーダーが請求項2の(2−1)に記載の通信チャネルによって行う。
請求項1の(1−11)に記載の転送は、請求項3の(3−4)に記載の通信チャネルによってデバイダーが受信した場合には該デバイダーがTCP/IP通信によって行い、請求項2の(2−1)に記載の通信チャネルによってフォワーダーが受信した場合には該フォワーダーがデバイダーに転送後、該デバイダーがUDP/IP通信によって行う。
請求項2の(2−1)に記載の通信チャネルは、フォワーダーとレシーバーが管理する。この通信チャネルは請求項1の(1−6)に記載の通信がUDP/IPの際に使用される。
請求項2の(2−2)に記載の情報は、図10におけるフラグのSビットであり、該ビットが1か否かによって識別する。
請求項2の(2−3)に記載の特徴は、フォワーダーとレシーバーが具備する。
請求項2の(2−4)に記載の情報は、図10におけるフラグのEビットであり、該ビットが1か否かによって識別する。
請求項2の(2−5)に記載の特徴は、フォワーダーとレシーバーが具備する。
請求項3の(3−1)に記載の準備は、請求項1の(1−6)に記載の通信がTCP/IPの場合にデバイダーが行う。これはUNIX等のOSにおいては、デバイダーがTCP/IPソケットを作成し、bind()、listen()、等の関数を呼ぶことである。
請求項3の(3−2)に記載の送信は、デバイダーが請求項3の(3−1)に記載の準備を行うことで取得された識別子であるIPアドレスとポート番号をフォワーダーに転送後、該フォワーダーが行う。UNIX等のOSにおいては、デバイダーはこの送信の後、accept()関数によってセレクターから接続されるのを待ち受ける。
請求項3の(3−3)に記載の構築は、請求項3の(3−2)に記載の送信によって受信した識別子であるIPアドレスとポート番号に、セレクターがTCP/IPによって仮想回線を構築することで行う。これはUNIX等のOSにおいては、セレクターが受信されたIPアドレスとポート番号に対してconnect()関数を呼ぶことで仮想回線を構築することである。
請求項3の(3−4)に記載の通信チャネルは、請求項3の(3−3)に記載の構築によって構築された、デバイダーとセレクターとを接続するTCP/IPによる仮想回線である。
請求項4の(4−1)に記載のプロトコルはIPであり、仮想回線の構築にはTCP/IPを用いる。
請求項4の(4−2)に記載の特徴は、クライアントからの要求に対して各々一つづつに対応するフォワーダーを構築することに相当する。図5においては、三つのクライアント(内一つはゲートウェイ121)から要求を受けたことを示している。
請求項4の(4−3)に記載の選択手段は、デバイダーである。これは該デバイダーがフォワーダーを選択することである。
請求項4の(4−4)に記載の送信は、前記デバイダーが前記選択によって選択されたフォワーダーに対して送信を行ったものを、該フォワーダーがレシーバーへ転送する。
請求項5の(5−1)に記載の選択は、デバイダーが行う。デバイダーは、アプリケーション層のプロトコルにおけるクライアントを特定する情報、例えば、HTTP用のデバイダーであればHTTPにおけるサーバー名を指定する情報、SMTP用のデバイダーであればSMTPにおける送信先メールアドレスを指定する情報、によって特定されたクライアント、に対応する仮想回線、に対応するフォワーダーを選択する。
請求項5の(5−2)に記載の送信の保留は、デバイダーが行う。デバイダーは、選択を行うに充分な情報を受信するまではフォワーダーの選択を行わない。それまでの間にアプリケーション層のプロトコルに基づいて返答を必要とするならば仮に返答を行う。
請求項6の(6−1)に記載の記録手段は、図9の選択表である。
請求項6の(6−2)に記載の通信は、セレクターがTCP/IPないしはUDP/IPによって行う。
請求項6の(6−3)に記載の選択手段は、セレクターである。これは該セレクターが図9の選択表に示されるローカル・サーバー・アドレスとプロトコルを選択することで、(1−1)に記載のネットワークに存在するサーバー・アプリケーションを選択することである。
請求項6の(6−4)に記載の転送は、UDP/IP通信であれば、レシーバーがフォワーダーから請求項2の(2−1)に記載の通信チャネルによって受信した内容をセレクターに転送し、該転送内容をセレクターが選択されたサーバー・アプリケーションに転送する。TCP/IP通信であれば、請求項3の(3−4)に記載の通信チャネルによってデバイダーから受信した内容をセレクターが選択されたサーバー・アプリケーションに転送する。
請求項6の(6−5)に記載の選択手段は、プレマスカレードである。プレマスカレードは受信したIPパケットをいずれのセレクターに送信するか、あるいは送信しないでIPマスカレードに処理させるかを選択する。
請求項6の(6−6)に記載の転送は、プレマスカレードによって選択されたセレクターに転送されたあと、該セレクターからサーバーとの通信チャネルによって行われる。
請求項7の(7−1)に記載の選択はセレクターが行う。セレクターは、アプリケーション層のプロトコルにおけるサーバー・アプリケーションを特定する情報、例えば、HTTP用のデバイダーであればHTTPにおけるURI(Universal Resource Identifier)を指定する情報ないしはサーバー名を指定する情報、SMTP用のデバイダーであればSMTPにおける送信先メールアドレスを指定する情報、によって特定されたサーバー・アプリケーション、に対応するローカル・サーバー・アドレスとプロトコルを図9の選択表をもちいて選択する。
請求項7の(7−2)に記載の保留はセレクターが行う。セレクターは、前記サーバー・アプリケーションを特定する情報を受信するまではローカル・サーバー・アドレスとプロトコルの選択を行わない。それまでの間にアプリケーション層のプロトコルに基づいて返答を必要とするならば仮に返答を行う。
請求項8の(8−1)に記載の特徴は、LAN131とインターネット133が共にIPを使用し、インターネット133において使用されているノード識別子空間がグローバルIPアドレスであることである。これによって、インターネット133からはLAN131のノード識別子では一意にノードを識別できないが、LAN131からはインターネット133のノード識別子によって一意にノードを識別できる。
請求項8の(8−2)に記載の識別子は、図11における外部IPアドレスと外部ポート番号である。
請求項8の(8−3)に記載の特徴は、クライアント121がLAN131のデフォルト・ゲートウェイであることである。
請求項8の(8−4)に記載の転送における変換は、セレクターがサーバー・アプリケーションに送信する際に、プレマスカレードによって、送信するTCP/IPパケットないしはUDP/IPパケットの送信元IPアドレスと送信元ポート番号を、図10における発信アドレスの内容に変換することで行われる。
請求項8の(8−5)に記載の変換は、プレマスカレードが行う。
図12ないし図17は、本発明にかかるサーバー及びそのモジュールにおけるフローチャートである。
図12は、本発明にかかるサーバーにおけるフローチャートである。
サーバーは、スイッチャー・モジュール、デバイダー・モジュール、フォワーダーマスター・モジュールをプロセスとして起動する。
ここでデバイダー・モジュールは、該サーバーがサポートするアプリケーション層のプロトコルによって通信する際に使用する下位のプロトコルがTCP/IPであるかUDP/IPであるかによって異なり、また、前記アプリケーション層のプロトコルによっても異なる。
図13は、スイッチャーのフローチャートである。
スイッチャーは、他のモジュールと通信するためのUDP/IPのスイッチャーポートを開設する。
また、図7に示されるフォワーダー一覧を作成し、空に初期化する。このフォワーダー一覧は、本発明に係るクライアントが接続してきたときに、該クライアントを識別するキーワードと該クライアントとの通信のためのフォワーダーポートへのアドレスが追加されていく。
こののち、スイッチャーポートに送信されたパケットを読み込み、フォワーダー一覧に追加/削除、あるいはその内容への問合せに返答を行うことを繰り返す。
読み込んだパケットがフォワーダー生成を示すパケットである場合は、該パケットに含まれるデバイダー識別子とキーワード、プロトコル、フォワーダーポートへのアドレスを含む行を、生成されたフォワーダーに対応する行としてフォワーダー一覧に追加する。
読み込んだパケットがフォワーダー消滅を示すパケットである場合は、フォワーダー一覧から対応する行を削除する。
読み込んだパケットが問合せを示すパケットである場合は、該パケットに含まれるデバイダー識別子とキーワードを含む行をフォワーダー一覧から検索し、見つかったならその行のフォワーダーポートへのアドレスを返送する。
見つからなかったならば、見つからなかったことを返送する。
図14は、TCP/IPを使用するデバイダーのフローチャートの前半である。
TCP/IPを使用するデバイダーは、請求項1の(1−6)に記載の特徴である他のコンピューターないしはクライアント・アプリケーションからコネクションを確立することを要求されて仮想回線を構築して通信を行うために、TCP/IPのデバイダーポートを開設する。
スイッチャーポートに、デバイダー生成パケットとしてデバイダー識別子を送信する。
デバイダーポートへの接続を待ち、接続があれば子プロセスを生成することを繰り返す。
前記子プロセスのフローチャートは、図15に示される、TCP/IPを使用するデバイダーのフローチャートの後半に記述される。
図15は、TCP/IPを使用するデバイダーのフローチャートの後半である。
図14において生成された子プロセスは、接続してきたポートからデーターを読み込み、キーワードを探す。キーワードが見つかるまでは順次読み込んだデーターをバッファーに保存していく。このときに返信する必要があれば、返信を行う。
見つかったキーワードとデバイダー識別子を、問合せパケットとしてスイッチャーポートに送信し、フォワーダーポートへのアドレスを取得する。
そののち、本発明に係るクライアントからコネクションを確立することを要求されるために、転送ポートを開設する。
図11において示されるチャンクを作成し、該チャンクの内容として、転送ポートのアドレスとポート番号を与える。
前記チャンクをフォワーダーポートに送信する。
転送ポートへの接続を待つ。
転送ポートへ接続してきたら、バッファーに保存されているデバイダーポートから読み込んだ内容を転送ポートへ送信する。
デバイダーポートと転送ポートからの受信を待ち、受信した内容を他方に送信することを繰り返す。
図16は、UDP/IPを使用するデバイダーのフローチャートである。
UDP/IPを使用するデバイダーは、請求項1の(1−6)に記載の特徴である他のコンピューターないしはクライアント・アプリケーションからコネクションレスの通信を行うために、UDP/IPのデバイダーポートを開設する。
またフォワーダーから図11において示されるチャンクを転送されるための、UDP/IPの転送ポートを開設する。
そして、デバイダーポートと転送ポートのそれぞれから受信を待つ。
デバイダーポートから受信した場合、受信したUDPパケットの内容からキーワードを探す。
見つかったキーワードとデバイダー識別子を、問合せパケットとしてスイッチャーポートに送信し、フォワーダーポートへのアドレスを取得する。
図11において示されるチャンクを作成し、該チャンクの内容として、前記受信したUDPパケットの内容を与える。
また、該UDPパケットの送信元IPアドレスとポート番号を、外部IPアドレスと外部ポート番号として与える。
さらに、転送ポートのIPアドレスとポート番号を内部IPアドレスと内部ポート番号として与える。
そして前記チャンクをフォワーダーポートに送信する。
転送ポートから受信した場合、受信したUDPパケットの内容を図11において示されるチャンクであると見做して、その外部IPアドレスと外部ポート番号を取得する。
そして、前記チャンクの内容を取得した外部IPアドレスと外部ポート番号へ向けて送信する。
図17は、フォワーダーマスターのフローチャートである。
フォワーダーマスターは、本発明に係るクライアントからの接続を待つためのサーバーポートを開設する。
サーバーポートへの接続を待ち、接続があれば子プロセスを作成することを繰り返す。
作成された子プロセスは、接続してきた本発明に係るクライアント用のフォワーダーとなる。以下、サーバーポートに接続してきたポートをクライアントポートとする。
フォワーダーはクライアントポートから、クライアントが要求するデバイダー識別子とキーワードを読み込む。
デバイダーから受信するために、UDP/IPのフォワーダーポートを開設する。
スイッチャーポートに、前記フォワーダーポートのIPアドレスとポート番号をフォワーダーポートのアドレスとして、デバイダー識別子とキーワードと共に送信する。
フォワーダーポートとクライアントポートからの受信を待ち、転送することを繰り返す。
フォワーダーポートから受信した場合、受信したUDPパケットの内容を図11において示されるチャンクと見做し、該チャンクをクライアントポートに送信する。
クライアントポートから受信した場合、受信した図11において示されるチャンクの内部IPアドレスと内部ポート番号からIPアドレスとポート番号を取得する。
取得したIPアドレスとポート番号へ、前記チャンクを送信する。
図18ないし図23は、本発明にかかるクライアント及びそのモジュールにおけるフローチャートである。
図18は、本発明にかかるクライアントのフローチャートである。
クライアントは、プレマスカレード、セレクター、レシーバーを起動する。
クライアントがレシーバーを起動せずに、かわりに、セレクター起動後にレシーバーとなってレシーバーのフローチャートにそって動作しても同じ効果が得られる。
図19は、レシーバーのフローチャートである。
レシーバーは、セレクターから受信するために、UDP/IPのレシーバーポートを開設する。
レシーバーは、本発明にかかるサーバーに開設されたサーバーポートにTCP/IPによって接続する。その後、デバイダー識別子とキーワードを送信する。
レシーバーポートとサーバーポートとからの受信を待ち、転送することを繰り返す。
レシーバーポートから受信した場合は、その内容を図11において示されるチャンクと見做し、該チャンクをサーバーポートに送信する。
サーバーポートから受信した場合は、受信した図11において示されるチャンクのデバイダー識別子を取得する。
前記デバイダー識別子に対応するセレクターのセレクターポートに、前記受信したチャンクを送信する。
図20は、TCP/IPを使用するセレクターのフローチャートである。
セレクターは、レシーバーから受信するために、UDP/IPのセレクターポートを開設する。
セレクターポートからの受信を待ち、子プロセスを生成することを繰り返す。
子プロセスは、受信したUDPパケットの内容を図11において示されるチャンクと見做し、該チャンクの外部IPアドレスと外部ポート番号を取得し、発信アドレスのIPアドレスとポート番号とする。また、内部IPアドレスと内部ポート番号を取得し、内部アドレスのIPアドレスとポート番号とする。さらに、前記チャンクの内容から、転送ポートのIPアドレスとポート番号を取得する。
前記転送ポートへ接続する。
転送ポートから受信した内容からキーワードを検索し、図9において示される選択表から、前記キーワードと、セレクターに対応するデバイダー識別子と、プロトコルと、が一致する行の、ローカル・サーバーのIPアドレスとポート番号を取得する。
図10において示されるプレマスカレード対応表に、発信アドレスとして発信アドレスのIPアドレスとポート番号を、ローカルアドレスとしてローカル・サーバーのIPアドレスとポート番号を、外部アドレスとして内部アドレスのIPアドレスとポート番号を、内部アドレスとしてローカル・サーバーに接続しようとしているポートのIPアドレスとポート番号を、プロトコルとしてTCPを、最終使用時刻に現在時刻を持った行を登録する。
ローカル・サーバーに接続する。なお、このときに発信されるIPパケットはプレマスカレードによって処理され、発信アドレスから接続されているように見える。
転送ポートから受信した内容をローカル・サーバーに送信する。
転送ポートとローカル・サーバーとからの受信を待ち、転送することを繰り返す。
転送ポートから受信した場合は、受信した内容をローカル・サーバーへ送信する。
ローカル・サーバーから受信した場合は、受信した内容を転送ポートへ送信する。
図21は、UDP/IPを使用するセレクターのフローチャートの前半である。
セレクターは、レシーバーから受信するために、UDP/IPのセレクターポートを開設する。
セレクターポートからの受信を待つ。
受信したUDPパケットの内容を図11において示されるチャンクと見做し、該チャンクの外部IPアドレスと外部ポート番号を取得し、発信アドレスのIPアドレスとポート番号とする。また、内部IPアドレスと内部ポート番号を取得し、内部アドレスのIPアドレスとポート番号とする。
前記チャンクの内容からキーワードを検索し、図9において示される選択表から、前記キーワードと、セレクターに対応するデバイダー識別子と、プロトコルと、が一致する行の、ローカル・サーバーのIPアドレスとポート番号を取得する。
図10において示されるプレマスカレード対応表から、発信アドレスとして発信アドレスのIPアドレスとポート番号を、ローカルアドレスとしてローカル・サーバーのIPアドレスとポート番号を、外部アドレスとして内部アドレスのIPアドレスとポート番号を、プロトコルとしてUDPを持つ行を探す。
見つかった場合は、UDP/IPパケットを作成し、送信先のIPアドレスとポート番号に見つかった行のローカルアドレスを、送信元のIPアドレスとポート番号に内部アドレスを指定し、内容として前記チャンクの内容を与え、送信する。
見つかった行の最終使用時刻を現在時刻に更新する。
セレクターポートの受信を待つところから繰り返す。
見つからなかった場合は、子プロセスを生成し、セレクターポートの受信を待つところから繰り返す。
前記子プロセスのフローチャートは、図22に示されるUDP/IPを使用するセレクターのフローチャートの後半に記述される。
図22は、UDP/IPを使用するセレクターのフローチャートの後半である。
セレクターの子プロセスは、ローカル・サーバーと通信するために、UDP/IPの新規ポートを開設する。
図10において示されるプレマスカレード対応表に、発信アドレスとして発信アドレスのIPアドレスとポート番号を、ローカルアドレスとしてローカル・サーバーのIPアドレスとポート番号を、外部アドレスとして内部アドレスのIPアドレスとポート番号を、内部アドレスとして新規ポートのIPアドレスとポート番号を、プロトコルとしてUDPを、最終使用時刻に現在時刻を持った行を登録する。
前記チャンクの内容を、ローカル・サーバーに送信する。
新規UDPポートからの受信を待つ。このとき、あらかじめ指定された時間受信がなければタイムアウトする。
受信した場合は図11において示されるチャンクを作成し、該チャンクの内容として受信した内容を、発信IPアドレスと発信ポート番号、内部IPアドレスと内部ポート番号、外部IPアドレスと外部ポート番号、デバイダー識別子を与え、レシーバーポートに送信する。
前記図10において示されるプレマスカレード対応表に登録された行の最終使用時刻を現在時刻に更新する。
新規UDPポートからの受信を待つところから繰り返す。
タイムアウトした場合は、前記図10において示されるプレマスカレード対応表に登録された行の最終使用時刻を取得する。
最終使用時刻が現在時刻から、あらかじめ指定された時間以上の差がないならば、新規UDPポートからの受信を待つところから繰り返す。
あらかじめ指定された時間以上の差があるならば、前記図10において示されるプレマスカレード対応表に登録された行を削除し、新規ポートを閉鎖する。
子プロセスを終了する。
図23は、プレマスカレードのフローチャートである。
図10において示されるプレマスカレード対応表を初期化し、行数を零にすることで内容を空にする。
IPパケットが受信されるのを待つ。
受信されたらIPマスカレードに処理させる前に、前記受信したIPパケットのプロトコルを取得する。
前記取得したプロトコルがTCPかUDPでないならば、IPマスカレードに処理をさせ、IPパケットが受信されるのを待つところから繰り返す。
前記取得したプロトコルがTCPかUDPであるならば、前記受信したIPパケットの送信元IPアドレスと送信元ポート番号と、送信先IPアドレスと送信先ポート番号と、を取得する。
図10において示されるプレマスカレード対応表から、外部アドレスとして送信元IPアドレスと送信元ポート番号を、内部アドレスとして送信先IPアドレスと送信先ポート番号を、プロトコルとして前記取得したプロトコルを持つ行を探す。
見つかった場合は、前記受信したIPパケットの、送信元IPアドレスと送信元ポート番号を発信アドレスに、送信先IPアドレスと送信先ポート番号をローカル・サーバー・アドレスに、置き換え、IPマスカレードに処理をさせ、IPパケットが受信されるのを待つところから繰り返す。
見つからなかった場合は、 図10において示されるプレマスカレード対応表から、発信アドレスとして送信先IPアドレスと送信先ポート番号を、ローカル・サーバー・アドレスとして送信元IPアドレスと送信元ポート番号を、プロトコルとして前記取得したプロトコルを持つ行を探す。
見つかった場合は、前記受信したIPパケットの、送信先IPアドレスと送信先ポート番号を外部アドレスに、送信元IPアドレスと送信元ポート番号を内部アドレスに、置き換え、IPマスカレードに処理をさせ、IPパケットが受信されるのを待つところから繰り返す。
見つからなかった場合は、IPマスカレードに処理をさせ、IPパケットが受信されるのを待つところから繰り返す。
「他の実施形態」
図1の実施形態では、LAN131はIPをプロトコルとしローカルIPアドレスをノード識別子空間として使用し、グローバルIPアドレスをそのまま対応方法としている。他の実施形態では、LAN131で使用するプロトコルをIPv6にし、IPv4組み込みIPv6アドレスを請求項8の(8−1)に記載の対応手段としてもよい。
こうすることで、各地のLANが将来のIPv6化に対応するための事前準備を行うための環境を構築することができ、将来IPv6に対応する際にスムーズに対応することができる。
また図1の実施形態では、本発明にかかるクライアントはゲートウェイ121であるが、本発明にかかるクライアントをデフォルト・ゲートウェイではなく、LAN131に接続されているコンピューターとしてもよい。
こうすることで、既存のゲートウェイに対する変更無しに実施することが可能となる。
発明の効果
請求項1に記載の発明によれば、コネクションの確立要求がローカル・ネットワーク上のコンピューターから送信されるため、IPマスカレードによってインターネットに接続できるコンピューターであれば利用が可能となる。
また、仮想回線が確保されているため、ローカル・ネットワーク上にあるコンピューターに対して、インターネット上にあるサーバーから随時送信が行える。
そして、複数の通信チャネルを用いることから、複数のインターネット上にあるコンピューターがサーバーに通信を行うことができる。
これによって、インターネット上にあるコンピューターから、サーバーを代理としてアクセスすることで、ローカル・ネットワーク上にあるコンピューターに対してコネクションの確立要求を送信することが可能となり、課題1が解決される。
請求項2に記載の発明によれば、一つの仮想回線上に複数の通信チャネルを作ることが可能となる。
この通信チャネルをつかって、クライアントとサーバーがインターネット上にある複数のコンピューターに対応する通信を行うことが可能となり、課題2が解決される。
請求項3に記載の発明によれば、新しく仮想回線を構築することで通信チャネルとすることができる。
これによって、通信チャネルの状態や構築、破棄の管理を既存のOSやプロトコル・スタックに行わせることができる。
このため、前記管理が最小限で済むようになるため、実施が容易となり、課題3が解決される。
請求項4に記載の発明によれば、一つのサーバーを複数のクライアントが共用することが可能となる。
このため、複数のクライアントが一つのノード識別子を共用することができ、課題4が解決される。
請求項5に記載の発明によれば、一つの多重化識別子で複数の仮想回線を区別することが可能となる。
このため、ウェルノウン・ポート番号など、使用可能な多重化識別子に制限がある場合でも、それを複数のクライアントが共用することができるので、課題5が解決される。
請求項6に記載の発明によれば、通信チャネルによる送受信をローカル・ネットワーク内にて使用されている通信方法によって、転送することが可能となる。
これによって、該ローカル・ネットワーク上の公開したいコンピューターやプログラムを、クライアントとしてサーバーと仮想回線を構築するように変更しなくともよくなる。すなわち、課題6が解決される。
請求項7に記載の発明によれば、クライアントは、特別にローカル・ネットワーク上のコンピューターを指定するための情報が無くとも、複数のローカル・ネットワーク上のコンピューターやプログラムのうちのいずれに転送するべきかを選択できる。
これによって、あらかじめサーバーにローカル・ネットワーク上のコンピューターやプログラムに関する情報を提供せずとも、クライアントが通信を行うべきローカル・ネットワーク上のコンピューターやプログラムを選択することができるので、課題7が解決される。
請求項8に記載の発明によれば、ローカル・ネットワークの外部への通信を取りまとめるデフォルト・ゲートウェイによって、仮想回線による送受信を該ローカル・ネットワーク内にて使用されている通信方法に変換する際に、通信相手のノード識別子や多重化識別子を実際の通信相手のノード識別子や多重化識別子とすることが可能となる。
これによって、ローカル・ネットワーク内の各コンピューターやプログラムは、通信相手として実際の通信相手のノード識別子や多重化識別子を既存の手段によって取得することが可能となる。
このことは、前記コンピューターやプログラムが、仮想回線経由で通信が行われていることを認識できないほどに透過的であるため、セキュリティーや情報収集のために接続相手に関する情報を必要とする場合であっても、コンピューターやプログラムの変更が必要なくなる。すなわち、課題8が解決される。
本発明にかかるサーバーとクライアントの接続図 従来のIPマスカレード、NAPT、高機能ゲートウェイの接続図 IPマスカレードが使用する変換テーブル NAPTが使用する変換テーブル 本発明にかかるサーバーの概念図 本発明にかかるクライアントの概念図 スイッチャーが具備するフォワーダー一覧 レシーバーが具備するセレクター一覧 セレクターが具備する選択表 プレマスカレードが具備するプレマスカレード対応表 仮想回線にて使用されるチャンクのフォーマット 本発明にかかるサーバーのフローチャート スイッチャーのフローチャート TCP/IPを使用するデバイダーのフローチャートの前半 TCP/IPを使用するデバイダーのフローチャートの後半 UDP/IPを使用するデバイダーのフローチャート フォワーダーマスターのフローチャート 本発明にかかるクライアントのフローチャート レシーバーのフローチャート TCP/IPを使用するセレクターのフローチャート UDP/IPを使用するセレクターのフローチャートの前半 UDP/IPを使用するセレクターのフローチャートの後半 プレマスカレードのフローチャート
符号の説明
101 LAN131に接続されているコンピューター
102 LAN131に接続されているコンピューター
103 LAN131に接続されているコンピューター
107 インターネット133に接続されているコンピューター
108 インターネット133に接続されているコンピューター
111 本発明にかかるサーバー
121 本発明にかかるクライアントであり、IPマスカレードを実施されたゲートウェイ
122 IPマスカレードを実施されたゲートウェイ
131 ISPの顧客の家庭にあるLAN
132 ISPのLAN
133 インターネット
201 インターネット
202 ローカル・ネットワーク
211 ローカルIPアドレスを割り当てられたコンピューター
216 グローバルIPアドレスを割り当てられたコンピューター
221 ローカル・ネットワーク202のデフォルト・ゲートウェイ
511 HTTP用のデバイダー
512 SMTP用のデバイダー
520 スイッチャー
521 フォワーダー
522 フォワーダー
523 フォワーダー
531 仮想回線
532 仮想回線
533 仮想回線
541 フォワーダーマスター
611 レシーバー
621 HTTP用セレクター
622 FTP用セレクター
623 SMTP用セレクター
631 プレマスカレード
1011 HTTPサーバー・アプリケーション
1012 FTPサーバー・アプリケーション
1013 SMTPサーバー・アプリケーション
1021 HTTPサーバー・アプリケーション
1022 FTPサーバー・アプリケーション
1023 SMTPサーバー・アプリケーション
1031 HTTPサーバー・アプリケーション
1032 FTPサーバー・アプリケーション
1033 SMTPサーバー・アプリケーション

Claims (8)

  1. 一方から他方へコネクションを確立することを要求して仮想回線を構築することが可能な、異なるプロトコルあるいはノード識別子空間の識別子が使用されている2以上のネットワークそれぞれにあるサーバーとクライアントからなるシステムであって、以下の(1−1)ないし(1−11)の特徴を持つ。
    (1−1)クライアントは、サーバーの存在するネットワークへコネクションを確立することを要求して仮想回線を構築することが可能な方のネットワークに存在する。
    (1−2)サーバーは、クライアントの存在するネットワークとは異なる方のネットワークに存在する。
    (1−3)サーバーは、クライアントからコネクションを確立することを要求され、クライアントとの間に仮想回線を構築する。
    (1−4)サーバーとクライアントの間に、(1−3)に記載の仮想回線以外に一つ以上の通信チャネルを構築する手段を持つ。
    (1−5)サーバーおよびクライアントは、(1−3)に記載の仮想回線においてチャンク(chunk)によって通信を行う。
    (1−6)サーバーは、該サーバーの存在するネットワークに存在する一つ以上の他のコンピューターないしはクライアント・アプリケーションと、コネクションレスの通信、あるいは該他のコンピューターないしはクライアント・アプリケーションからコネクションを確立することを要求されて仮想回線を構築して通信、あるいはその両方の通信を行う。
    (1−7)(1−5)に記載のチャンクは、(1−6)に記載の通信をサーバーが識別する情報を具備する。
    (1−8)サーバーは(1−3)に記載の仮想回線によって、(1−6)に記載のコネクションを確立することを要求されていることをクライアントに送信する。
    (1−9)(1−5)に記載のチャンクは、(1−8)に記載のコネクションを確立することを要求されていることをクライアントに送信するチャンクであるか否かを識別する情報を具備する。
    (1−10)サーバーは、(1−6)に記載の通信の内容を(1−4)に記載の通信チャネルに、必要なら変更を行って、転送する。
    (1−11)サーバーは、(1−4)に記載の通信チャネルから受信した内容を、必要なら変更を行って、(1−6)に記載の通信内容として転送する。
  2. 請求項1に記載のシステムであって、以下の(2−1)ないし(2−5)の特徴を持つ。
    (2−1)(1−3)に記載の仮想回線によって送受信される(1−5)に記載のチャンクが具備する(1−7)に記載の情報を識別子として多重化することで、(1−4)に記載の通信チャネルとする。
    (2−2)(1−5)に記載のチャンクは、(2−1)に記載の通信チャネルが送信を開始することを送信するチャンクであるか否かを識別する情報を具備する。
    (2−3)(2−1)に記載の通信チャネルは、(2−2)に記載の情報によって該通信チャネルが送信を開始することを送信するチャンクであるチャンクを送信ないしは受信することで通信チャネルとして利用可能となる。
    (2−4)(1−5)に記載のチャンクは、(2−1)に記載の通信チャネルが送信を終了することを送信するチャンクであるか否かを識別する情報を具備する。
    (2−5)(2−1)に記載の通信チャネルは、(2−4)に記載の情報によって該通信チャネルが送信を終了することを送信するチャンクであるチャンクを送信ないしは受信することで該通信チャネルにおける送信ないしは受信が行われなくなることを識別する。
  3. 請求項1ないし2に記載のシステムであって、以下の(3−1)ないし(3−4)の特徴を持つ。
    (3−1)サーバーは(1−8)に記載の送信に先立って、新たな仮想回線を構築するためにクライアントからコネクションを確立することを要求されるための準備を行う。
    (3−2)サーバーは(1−8)に記載の送信における(1−5)に記載のチャンクによって、クライアントが(3−1)に記載の準備をされたコネクションを確立することを要求するために必要な識別子をクライアントに送信する。
    (3−3)クライアントは(3−2)に記載の識別子によって、サーバーとの間に新しい仮想回線を構築する。
    (3−4)(3−3)に記載の新しい仮想回線を(1−4)に記載の通信チャネルとする。
  4. 請求項1ないし2ないし3に記載のシステムであって、以下の(4−1)ないし(4−4)の特徴を持つ。
    (4−1)(1−2)に記載のネットワークは、(1−3)に記載の仮想回線を同時に複数構築できるプロトコルを使用する。
    (4−2)サーバーは、複数のクライアントからの(1−3)に記載の要求に対して、それぞれに(1−3)に記載の仮想回線を構築する。
    (4−3)サーバーは、(1−6)に記載の通信を(4−2)に記載の複数のクライアントのいずれに転送するかを選択する選択手段を持つ。
    (4−4)サーバーは、(1−8)に記載の送信を(4−3)に記載の選択手段によって選択されたクライアントの仮想回線に送信する。
  5. 請求項4に記載のシステムであって、以下の(5−1)ないし(5−2)の特徴を持つ。
    (5−1)サーバーは、(1−6)に記載の通信において受信した内容を、該通信において使用されているアプリケーション層のプロトコルに基づいて解析し、その解析結果によって(4−3)に記載の選択を行う。
    (5−2)(5−1)に記載の選択を行うに充分な内容が受信されるまで、(1−8)に記載の送信を行わない。
  6. 請求項1ないし2ないし3ないし4ないし5に記載のシステムであって、以下の(6−1)ないし(6−6)の特徴を持つ。
    (6−1)クライアントは、(1−1)に記載のネットワークにおいて使用されているプロトコルによって使用される通信相手を識別する情報を一つ以上記録する記録手段を持つ。
    (6−2)(1−1)に記載のネットワークにおいて、クライアントと(6−1)に記載の記録手段によって記録されている情報によって識別される通信相手が、コネクションレスの通信、あるいはクライアントからコネクションを確立することを要求することで仮想回線を構築して通信、あるいはその両方を行う。
    (6−3)クライアントは、(6−2)に記載の通信を行う通信相手を、(6−1)に記載の記録手段によって記録された情報によって識別される通信相手のいずれかから選択する選択手段を持つ。
    (6−4)クライアントは、(1−4)に記載の通信チャネルによって送信されて来た内容を、必要なら変更を行ったあとで、(6−3)に記載の選択手段で選択した(6−1)に記載の記録手段によって記録されている情報によって識別される通信相手に(1−1)に記載のネットワークで使用されているプロトコルによって転送する。
    (6−5)クライアントは、(1−1)に記載のネットワークにおいて使用されているプロトコルによって受信した内容を、(1−4)に記載の通信チャネルのいずれによってサーバーに送信するか、ないしは、送信しないかを選択する選択手段を持つ。
    (6−6)クライアントは、(1−1)に記載のネットワークにおいて使用されているプロトコルによって受信した内容を、(6−5)に記載の手段によって選択された通信チャネルに、必要なら変更を行ったあとで、該通信チャネルに転送する。
  7. 請求項6に記載のシステムであって、以下の(7−1)ないし(7−2)の特徴を持つ。
    (7−1)クライアントは(6−3)に記載の選択手段として、(6−4)に記載の送信されてきた内容を(1−4)に記載の通信チャネルにおける通信ないしは(1−6)に記載の通信において使用されているアプリケーション層のプロトコルに基づいて解析し、その解析結果によって(6−1)に記載の記録手段によって記録された情報によって識別される通信相手のいずれかから選択する。
    (7−2)クライアントは、(7−1)に記載の選択を行うに充分な内容が受信されるまで(6−4)に記載の転送を行わない。
  8. 請求項6ないし7に記載のシステムであって、以下の(8−1)ないし(8−5)までの特徴を持つ。
    (8−1)(1−1)に記載のネットワークにおいて、(1−2)に記載のネットワークにおけるノード識別子によって一意にノードを識別できる対応手段が存在する。
    (8−2)(1−7)に記載の情報が、(1−6)に記載の通信における通信相手を識別する(1−2)に記載のネットワークにおいて使用されているプロトコルにおける識別子を具備する。
    (8−3)クライアントは、(1−1)に記載のネットワークにおけるデフォルト・ゲートウェイ(Default Gateway)である。
    (8−4)クライアントは、(6−4)に記載の転送を行う際に、(8−2)に記載の識別子を(8−1)に記載の対応手段によって対応する(1−1)に記載のネットワークにおいて使用されているプロトコルにおける通信相手を識別する識別子に変換し、該変換された識別子によって識別される通信相手を該転送の送信元として転送する。
    (8−5)クライアントは、(6−6)に記載の転送を行う際に、受信した内容の送信先を示す(1−1)に記載のネットワークにおいて使用されているプロトコルにおける通信相手を識別する識別子を、(8−1)に記載の対応手段によって対応する(8−2)に記載の識別子に変換する。
JP2003323742A 2003-08-12 2003-08-12 パーソナルipシステム Pending JP2005065204A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003323742A JP2005065204A (ja) 2003-08-12 2003-08-12 パーソナルipシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003323742A JP2005065204A (ja) 2003-08-12 2003-08-12 パーソナルipシステム

Publications (1)

Publication Number Publication Date
JP2005065204A true JP2005065204A (ja) 2005-03-10

Family

ID=34372726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003323742A Pending JP2005065204A (ja) 2003-08-12 2003-08-12 パーソナルipシステム

Country Status (1)

Country Link
JP (1) JP2005065204A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018022963A (ja) * 2016-08-01 2018-02-08 日本電信電話株式会社 通信装置、設計方法及び通信プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018022963A (ja) * 2016-08-01 2018-02-08 日本電信電話株式会社 通信装置、設計方法及び通信プログラム

Similar Documents

Publication Publication Date Title
CA2479581C (en) System for selecting a connectivity mechanism
US7382778B2 (en) Link layer emulation
US7450585B2 (en) Method and system in an IP network for using a network address translation (NAT) with any type of application
US20030154306A1 (en) System and method to proxy inbound connections to privately addressed hosts
US20070081530A1 (en) Packet relay apparatus
US20020138596A1 (en) Method to proxy IP services
JP2007531166A (ja) ピアツーピアネットワークにおいてファイアウォールを介してwebブラウジングを提供するための方法及びシステム
JP2003087336A (ja) アドレス変換方法
US7522617B2 (en) Inter-node connection method and apparatus
JP2007096826A (ja) 情報処理システム、トンネル通信装置、及びトンネル通信方法
TW200924462A (en) System and method for connection of hosts behind NATs
WO2011035528A1 (zh) 用于通过中继方式进行nat穿越的方法、系统和中继服务器
US11621917B2 (en) Transparent multiplexing of IP endpoints
JP2004120534A (ja) ルータと中継装置、フォワーディング方法
KR100429902B1 (ko) 공중망에서 사설망 내의 디바이스를 제어하기 위한 장치및 방법
JP3858884B2 (ja) ネットワークアクセスゲートウェイ及びネットワークアクセスゲートウェイの制御方法並びにプログラム
EP3395049B1 (en) Router and method for connecting an ipv4 network and an ipv6 network
US20150032898A1 (en) Method for establishing a virtual community network connection and a system for implementing said method
JP4191180B2 (ja) 通信支援装置、システム、通信方法及びコンピュータプログラム
KR100562390B1 (ko) 호스트 라우팅과 IP Aliasing 기법을 이용한 네트워크 데이터 플로우 식별 방법 및 시스템
JP2005065204A (ja) パーソナルipシステム
KR101124635B1 (ko) IPv4/IPv6 연동 게이트웨이
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
CN115150312B (zh) 一种路由方法及设备
JP5987832B2 (ja) エージェント装置及び通信中継方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20051025