JP2014082624A - プロキシ装置及び中継装置 - Google Patents

プロキシ装置及び中継装置 Download PDF

Info

Publication number
JP2014082624A
JP2014082624A JP2012228935A JP2012228935A JP2014082624A JP 2014082624 A JP2014082624 A JP 2014082624A JP 2012228935 A JP2012228935 A JP 2012228935A JP 2012228935 A JP2012228935 A JP 2012228935A JP 2014082624 A JP2014082624 A JP 2014082624A
Authority
JP
Japan
Prior art keywords
session
server
wan
http
lan
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.)
Granted
Application number
JP2012228935A
Other languages
English (en)
Other versions
JP6096464B2 (ja
Inventor
Takuya Shibazaki
拓弥 芝崎
Takanobu Kawabe
隆伸 川邉
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.)
Nippon Telegraph and Telephone Corp
Nippon Telegraph and Telephone West Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Nippon Telegraph and Telephone West Corp
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 Nippon Telegraph and Telephone Corp, Nippon Telegraph and Telephone West Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012228935A priority Critical patent/JP6096464B2/ja
Publication of JP2014082624A publication Critical patent/JP2014082624A/ja
Application granted granted Critical
Publication of JP6096464B2 publication Critical patent/JP6096464B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】中継装置とサーバとの通信において、ポート番号の枠による限界を超えてセッションを構築できるようにする。
【解決手段】LAN側からのセッション確立要求件数が上限値を超えた場合、一のサーバと繋がるWAN側のセッションのうち、未使用状態のものに、そのLAN側セッションを割り当て、応答メッセージ受信後は、その紐付けを解除して、他のLAN側セッションがWAN側セッションを利用できるようにするプロキシ装置とする。
【選択図】図1

Description

この発明は、プロキシ装置に関し、具体的には、複数の中継装置が上位の巨大中継装置に集約されている際における、プロキシ装置の機能を有する下位の中継装置に関する。
IPv4のグローバルIPアドレスは枯渇状態にあり、中継装置が有する一つのグローバルIPアドレスを、複数の端末や装置で共有することが一般的になっている。グローバルIPアドレスに限らず、一つのIPアドレスを複数の装置や端末で共有する方法として、NAT(Network Address Translation)又はNAPT(Network Address Port Translation)(以下、まとめて「NAPT」と呼称する場合がある。)が用いられている。中継装置がNAPTを実行する際には、LAN(Local Area Network)側からWAN(Wide Area Network)側へのパケットを受信したときに、LAN側のどのアドレスから来たパケットをどのようにしてWAN側へ送出したかを記録するセッション管理テーブルを保持し、WAN側からパケットを受信した際には、そのパケット情報を元にLAN(Local Area Network)側のどのアドレスへ中継するかを判断する。NAPTとして一般的な5−tupleでは、WAN側から受信したパケットの「送信元IPアドレス」「送信元ポート番号」「宛先IPアドレス」「宛先ポート番号」「プロトコル」の5つの情報によって、LAN側のどのアドレスへ中継するかを判断する。
一方、個々の利用者の端末に繋がり、自身は閉域網に存在する複数の中継装置が、インターネットにアクセスするにあたっては、インターネットとの間に設けられたインターネットゲートウェイとなる上位中継装置が通信を集約し、インターネット上のサーバ等とは、その上位中継装置のグローバルIPアドレスによって通信するケースがある。前記の閉域網がIPv6で構築された環境である場合に、SAM(Stateless Address Mapping)により、外部データベースなどを参照した変換ではなく、IPv4とIPv6との自動的なアドレス変換を行う。言い換えれば、この変換を行う上位中継装置(Provider−Stateless Address Mapping装置:P−SAM装置)の配下に接続された複数の中継装置は、この上位中継装置のグローバルIPアドレスを共有しており、全ての中継装置が同じIPアドレスを用いてインターネットとの通信を行うことになる。このため、それぞれの中継装置が、インターネット上にある同一のサーバに対して通信を行った場合、それらの通信がどの中継装置から発信されたものであるのか、それらの通信に対する応答をどの中継装置に対して転送すべきなのかを、上位中継装置が判断する材料は、ポート番号のみとなってしまう。
ここで、上記したIPv4の枯渇状態のため、インターネットに接続したいインターネットゲートウェイ装置(上位中継装置)の数に対して、十分なP−SAM用IPv4アドレスを用意することができず、インターネットゲートウェイ装置の数が限られることになる。この状況を簡略化した例を図12に示す。一台のインターネットゲートウェイ装置に、限界に近い数の中継装置が接続されて、それらが一つのグローバルIPアドレス(図ではGWIP「100.1.1.1」)を共有することになる。具体的には、一台のインターネットゲートウェイ装置(P−SAM11)を、1024台の中継装置で共有するのが、実用的な限界の構成となる。
この場合、中継装置(HGW)一台あたりに割り当てられるポート番号の枠は、65535のポート番号を1024台で割ることになる。さらに、実際にはWellknownportは用いることができないので、中継装置一台あたり60ポート程度しか利用できなくなる(例では10001〜10060)。仮に一台あたり60ポートとすると、端末(PC1,2)から要求を受けた一の中継装置(HGW1:192.168.1.2)が一のサーバ(200.1.1.1)に対して61セッション以上のTCP接続を行おうとした場合、61セッション目以降は破棄される。
そして、インターネット上でリッチコンテンツを提供する機会が増えた近年では、端末上のアプリケーションがインターネットから大量の情報を高速にダウンロードする目的で、一つのサーバに対して複数のセッションを張り、同時並行で通信を行うという実装が増えてきている。このため、インターネットゲートウェイの配下に多数の中継装置が接続される構成で、中継装置が(すなわち、それに繋がるさらに複数の端末が)インターネット上のサーバにアクセスしようとしても、インターネットゲートウェイ装置のポート番号の空きが足りなくなって、並行して要求したセッションの一部又は全部が確立できずに一部コンテンツが取得できず、情報が不十分となってしまうおそれがある。
これに対して、特許文献1には、複数のアプリケーションで、同じポート番号を共有する手法が提示されている。
また、特許文献2には、端末が同一サーバへの要求を一つのセッションとしてまとめて送信することで、セッション資源を節約する手法が記載されている。また、端末とサーバとの間にProxyサーバを介在させる場合には、端末が複数サーバへの要求を一つのセッションとしてProxyサーバに送信し、Proxyサーバにて宛先サーバを振り分けて送信を行うことで、セッション資源を節約する手法が記載されている。
特開2010−154518号公報 特開2002−373149号公報
しかしながら、特許文献1に記載の手法は中継装置ではなく、中継装置に接続される端末やサーバにおいて、本来の実装から外れた処理を行わなければならず、一般化できる手法ではない。
また、特許文献2に記載の手法も、端末側で複数の要求を同一セッションにまとめる処理を行わなければならず、中継装置よりもさらに膨大な数に上る端末に手を加えなければならないため、実用に用いるのは容易ではなかった。
そこでこの発明は、端末側の対応が容易な手法で、インターネットゲートウェイ装置でのポート番号枠制限によるセッションの確立失敗を抑制することを目的とする。
この発明は、端末とインターネットゲートウェイ装置との間の通信を中継するプロキシ装置において、
上記インターネットゲートウェイを経由するインターネット上の一のサーバとの間のセッション数を、一定数以下でありかつ、上記一のサーバを宛先とする端末側とのセッション数以下に限定し、
端末側から上記一のサーバへの通信要求を新たに受信した際には、上記一のサーバとの間のセッションのうちその時点で通信を行っていないセッションを利用して、上記一のサーバとの通信を行うことで、上記の課題を解決したのである。
すなわち、サーバ側セッションと端末側セッションとを一対一対応させずに、それぞれを分離して扱い、端末側からの要求に応じて、空いているサーバ側へのセッションを適宜紐付け、応答が終わったらその紐付けを解消可能とする。ここで、単なる中継装置ではなくプロキシ装置であるのは、装置の端末側とサーバ側とでそれぞれセッションを別個に取り扱うためには、一旦この装置でセッションを終端させなければならないからである。プロキシ装置としてのHTTPサーバ及びHTTPクライアントとしての機能が、要求メッセージ及び応答メッセージを一旦終端して、メッセージを作成し直して端末とサーバとの間の通信を中継するので、必要に応じてそれらのセッションを使い分けて通信することができる。
例えば、HTTP1.1の通信ではKeep−Alive機能により、通信を行っていない間もTCPのセッションを張ったままにしている。しかし、このセッションは長時間維持されていても、実際には通信されていない時間帯が存在する。そこで、実際に送受信を必要とするセッションが、サーバ側とのセッション枠を一時的に利用し、通信が終わったら端末側のセッションは残しつつ、サーバ側のセッションは割り込み可能とすることで、サーバ側とのセッション枠を最大限に活用することが出来る。これにより、従来よりも少ないセッション枠で、サーバとのやり取りができるので、上位の中継装置であるインターネットゲートウェイ装置から、一台あたりのセッション枠(すなわち、ポート番号の割り当て数である)が限られている状況でも、割り当て枠が足りずに破棄されるセッションが生じることを抑制できる。
HTTPという観点では、トランスポート部分であるTCPレイヤの情報は特に区別する必要はない。そこで、HTTP通信を行っていないTCPのセッション上で、別のHTTP通信を行っても、HTTPの処理上は特に問題がないということを利用して本発明は成立する。また、HTTPに限らず、サーバ側と端末側とのそれぞれにセッションが存在し、それが継続的に張られる場合には、同様にそのセッションを必要に応じて繋ぎ変えることで、本発明の効果を得ることができる。
本発明にかかるプロキシ装置は、端末を配下に抱えるLANを、プロバイダ内ネットワークなどの閉域網と繋ぐ中継装置自体がその能力を持つものでもよいし、中継装置とは別に閉域網内に設けてあるものでもよい。また、上記のプロキシ装置の機能を、端末がローカルプロキシソフトウェアとして、パソコンなどの個人用端末上に実装する場合には、端末がIPv6のアドレスを有してIPv6で通信するにあたり、内部的に利用可能なポート(例えば10001〜10060)に変換する内部NAPTとして実装することになる。
ここでプロキシ装置、或いは中継装置が、同一の宛先IPアドレスに対して張ることが出来るセッションの数(すなわちポート番号の数)は、インターネットゲートウェイ装置が抱えるプロキシ装置や中継装置の数によって限定されるものであり、各プロキシ装置(中継装置)は、その限定された数の範囲で、一のサーバとのセッションを構築する。その一のサーバを宛先とする端末側のセッション数は、サーバ側のセッション数と同数又はそれ以上となり、より多数である端末側のセッションが、より少数であるサーバ側のセッションを共有することになる。ただし、端末側のセッションが減少したら、それを超える数のサーバ側のセッションを維持する必要はないので、サーバ側のセッションも適宜整理してよい。
この発明により、インターネットゲートウェイのIPアドレスを多数の端末や中継装置が共有する場合に、端末や中継装置一つあたりに割り当てられる限られた数のポート番号を、従来よりも効率よく運用することができ、インターネット上のサーバに対してセッションが張れなくなる障害の発生頻度を抑制することができる。
また、プロキシ装置が作業のほとんどを担うため、端末側での設定変更は必要ないか、必要だったとしても、プロキシ装置を指定する作業程度で済むため、個々の端末の利用者にかかる負荷は小さく、容易に導入することができる。
LANとWANとの間に設ける中継装置と兼用するだけでなく、閉域網上に独立して設けたプロキシ装置として、端末や中継装置からのアクセスを中継するプロキシとして動作させることもできる。この場合は、特に多数のセッションを張る傾向にある利用者が、適宜端末の設定を書き換えて、そのプロキシ装置を経由するようにすることで、必要な箇所に最小限の作業で導入することができる。
この発明にかかるプロキシ装置の基本的な運用の概念図 この発明の運用形態例を示す概念図 この発明にかかるプロキシ装置の機能ブロック図 (a)(b)図3のプロキシ装置で用いる応答管理テーブルの例図 図3のプロキシ装置で用いるセッション管理テーブルの例図 HTTP要求メッセージの送受信フロー 図6におけるセッション終端部選択部分のフロー 図6におけるセッション管理テーブルの更新部分のフロー HTTP応答メッセージの送受信フロー LAN側からのセッション削除手段実行フロー WAN側からのセッション削除手段実行フロー 従来のインターネットゲートウェイ利用時における問題点の概念図
以下、この発明にかかるプロキシ装置の実施形態について詳細に説明する。まず、この発明にかかるプロキシ装置の基本的な運用の概念を、図1を用いて説明する。この実施形態にかかるプロキシ装置13は、サーバ11と端末14との間に設けられ、図では省略されているが、プロキシ装置13とサーバ11との間にはインターネットゲートウェイ12が存在している。端末14と繋がる方がLAN側、サーバ11と繋がる側がWAN側である。プロキシ装置13の左右に繋がるパイプはそれぞれを繋ぐセッションを表したものである。
まず、端末14から発せられた要求メッセージを、LAN側のセッションから受信する(図1(a))。プロキシ装置13は、要求メッセージを受信したLAN側セッションと、無通信状態のWAN側セッションとを括り付け、そのWAN側セッションから要求メッセージを送信する(図1(b))。プロキシ装置13は、前記のWAN側セッションから応答メッセージを受け取ると、それを、当該WAN側セッションに括り付けられたLAN側セッションから送信する(図1(c))。応答メッセージを送信した後は、プロキシ装置13はLAN側セッションとWAN側セッションとの括り付けを解除する(図1(d))。これで元の状態に戻り、次に端末14から別のLAN側セッションを通じて要求メッセージを受信した場合には、先に用いたWAN側セッションを利用して要求メッセージと応答メッセージを送受信する。
次に、この発明にかかるプロキシ装置の実施形態例を挙げて説明する。その実施形態例を図2(a)に示す。プロキシ装置13(No.1〜1024)は、端末14(No.1,2……)を抱えるローカルエリアネットワーク(図中「LAN」と略記する。)3と、閉域網2との間のゲートウェイを兼ねた中継装置であり、閉域網2とインターネット1との間にはインターネットゲートウェイ(図中、「P−SAM」と略記する。)12が設けてある。端末14は、プロキシ装置13とインターネットゲートウェイ12を通じて、インターネット1上のサーバ11へアクセスする。
端末14とは、パソコンやスマートフォン、その他の、ネットワーク機能を有する端末であり、ブラウザなどにより多数のセッションを張りうるものである。
プロキシ装置13とは、プロキシサーバとしての機能を備えた装置であり、Ethernet(登録商標)端子のような物理的なネットワークインターフェースを少なくとも一つ有する。ネットワーク上にてそのアドレスを指定されて動作する独立したプロキシ装置でもよいし、ローカルエリアネットワーク3を抱えるゲートウェイとなる中継装置がプロキシサーバとしても動作する兼用の装置であってもよい。後者の場合、具体的には例えばルータとして機能するホームゲートウェイなどが挙げられ、LAN(ローカルエリアネットワーク3)側と、WAN側(インターネットゲートウェイ12に通じるネットワーク側)との両方に対して通信可能な物理的なネットワークインターフェースをそれぞれ一つ以上有する。
プロキシとしては、セッションを一旦終端させる一般のプロキシでもよいし、セッションを終端させない透過型プロキシでもよい。一般的なプロキシの場合は、端末14からの要求メッセージは一旦プロキシ装置13宛に送信されるように設定され、プロキシ装置13で一旦セッションが終端する。プロキシ装置13はその要求メッセージを解析して、端末14が通信しようとするサーバ11への要求メッセージを作成しなおしてサーバ11へ送信する。また、その要求メッセージに対するサーバ11からの応答メッセージを送信するセッションを一旦終端して、端末14への要求メッセージを作成し直して送信することとなる。プロキシ装置13の端末側のセッションとサーバ側のセッションとは独立しており、それぞれを分離して扱うことができ、必要に応じたサーバ側セッションへの割り当てが可能となる。この一般的なプロキシの場合は、プロキシ装置13はLANとWANとの間の中継装置であってもよいし、中継装置とは別の装置であって、インターネットゲートウェイ12までのWAN内に設けられた装置であってもよい。
一方、透過型プロキシの場合は、端末14においてはプロキシ装置13を宛先としては認識せず、サーバ11を直接に宛先として指定して運用される。この場合、プロキシ装置13は端末14からインターネットへ送られる通信を全て中継するLANとWANとの間の中継装置として設けられる。端末14がサーバ11宛に送信した要求メッセージについて、プロキシ装置13が強制的にセッションを終端させ、サーバ11に対して別途セッションを構築することで、端末側のセッションとサーバ側のセッションとを強制的に分離して扱うことで、必要に応じたサーバ側セッションへの割り当てが可能となる。ただし、端末14側のセッションを維持するにあたっては、端末14に対して、サーバ11との間で直接セッションが構築されているように動作する必要がある。
インターネットゲートウェイ12とは、NAT(NAPT)機能を有する上位の中継装置であり、閉域網2からインターネット1への通信を全て中継するゲートウェイである。従って、ここにはプロキシ装置13などの配下に接続しうるHGWを初めとした中継装置全て、ひいてはそれに繋がる端末14からインターネットへ繋がる通信の全てが集中する。
サーバ11とは、インターネット1において要求に対してコンテンツを提供するものであり、例えばWEBサーバが挙げられる。
インターネットゲートウェイ12に繋がるプロキシ装置13は1024台設置され、それぞれをNo.1〜1024とする。プロキシ装置13No.1のLAN3を構成する端末14のNo.1及び2……から要求をうけたこの発明にかかるプロキシ装置13は、10001から始まり、合計で60を超える数のセッションをサーバ11に対して構築しようとしたときに、61セッション目以降は既存の1〜60のセッションの中から、通信を行っていないセッションを適当に選択して通信を行う。図2(b)では、61番目のセッションを、サーバとの間の2番目のセッションを用いて送信し、62番目のセッションを、サーバとの間の60番目のセッションを用いて送信している。このとき、それぞれのセッションが、プロキシ装置13、インターネットゲートウェイ(P−SAM)12、サーバ11のそれぞれを、指定しているかを図2(c)に示す。閉域網2に対するプロキシ装置13のIPは192.168.1.2で、そこからインターネットゲートウェイ12を通じて、サーバ11に対して、ポート番号10001〜10060を送信元ポート番号とし、100.1.1.1を送信元IPアドレスとし、サーバ11のIPアドレスを宛先IPアドレス、HTTPのデフォルトである80番を宛先ポート番号としている。直接にサーバ11とセッションを張るインターネットゲートウェイ12は、プロキシ装置13からのセッションを中継し、自身のインターネット1におけるIPアドレス100.1.1.1を送信元IPアドレスとし、10001〜10060の番号でサーバ11に対してセッションを構築している。すなわち、プロキシ装置13は端末14との間で、サーバ11に対するセッションを61以上有しているが、インターネットゲートウェイ12とサーバ11との間で、プロキシ装置13に割り当てられたセッション数は60個のままで、それぞれのセッションを続けている。さらに端末14からサーバ11に対してセッションが張られたとしても、プロキシ装置13は、そのとき使っていないセッションをポート番号10001〜10060の間から探して、見つかればそのセッションを利用して通信するので、インターネットゲートウェイ12としては、予め割り当てられた枠内でのセッションのみを受け付けて処理する。すなわち、この発明においては、プロキシ装置13のみがこの発明に特有の機能を動作させればよく、端末14とインターネットゲートウェイ12とサーバ11は従来通りの動作でよい。
このプロキシ装置13と、端末14(No.1,No.2……を14a、14b……とする。)及びサーバ11(11a,11b)との間の機能ブロック図を図3に示し、その機能を説明する。ここでは、端末14に通じるLAN3を抱える中継装置でもあるプロキシ装置13が、透過型ではない、一般的なプロキシサーバとしても動作する例を示す。
プロキシ装置13は、プロキシとしての基本機能として、受信したTCPストリームからHTTPメッセージを取り出し、また、応答メッセージを送信するHTTPサーバ部62と、その取り出されたHTTPメッセージを、適切なIPヘッダを付与して送信し、またその応答を受信するHTTPクライアント部67とを有する。これらの機能部が果たす役割は、通常のプロキシサーバが果たすソフトウェア処理と同じである。すなわち、HTTPサーバ部62は取り出したHTTPメッセージから、当該要求メッセージの真の宛先であるサーバ名を求める。このサーバ名がIPv4やIPv6のアドレスではなくドメイン名で記載されている場合は、HTTPクライアント部67がDNSサーバに対して名前の解決を要求し、サーバ11のアドレスを求めた上で、そのサーバ11のアドレスをIPヘッダの宛先に割り当てて送信することになる。最初からHTTPメッセージ内にIPv4やIPv6のアドレスで指定されている場合はそのままそのアドレスをIPヘッダの宛先に割り当てるが、そのような場合は少ない。なお、必要に応じてヘッダだけでなくHTTPメッセージの内容を書き換えてもよい。こうして指定されたIPヘッダの宛先を見て、中継管理部63がセッションを張る先のサーバ11を決定する。また、サーバ11からの要求メッセージに対しては、HTTPクライアント部67がそれを受信して一旦セッションを終端し、HTTPサーバ部62が元々の要求元であった端末14宛のメッセージを作成して送信する。
端末14は、HTTP要求メッセージを送信するHTTPクライアント部52を有しており、サーバ11は、HTTP要求メッセージに対する応答を返すHTTPサーバ部72を有している。
また、端末14、プロキシ装置13、サーバ11は、それぞれとの間で構築するセッションの数だけ、セッション終端部を有する。端末14の端末側セッション終端部51a,b……はプロキシ装置13のLAN側セッション終端部61a、b……とセッションを構築しており、プロキシ装置13のWAN側セッション終端部66は、サーバ11のサーバ側セッション終端部71a,b……とセッションを構築している。これらのセッション終端部とは、具体的な例を挙げればTCPのソケットに相当し、自身と宛先のIPアドレス及びポート番号を有し、ネットワーク層での送受信を行う。
さらにプロキシ装置13は、この発明にかかる特徴として、応答管理テーブル64と、セッション管理テーブル65とを有し、これらのテーブルの中身を書き換え、参照し、指定された宛先への送受信の指示とを行う中継管理部63を有する。実質的には、中継管理部63により、どのセッションを割り当てて使用するかが指定されることとなる。
応答管理テーブル64は、いずれかのWAN側セッション終端部66(すなわち、サーバ側セッション終端部71)から受信した応答メッセージを、どのLAN側セッション終端部61(すなわち、端末側セッション終端部51)へ送信するかを管理しているテーブルである。図3の構成における、応答管理テーブル64のある時点における例を図4(a)に、また、LAN側が別の端末14からの要求によって書き換えられた別の時点における例を図4(b)に示す。このテーブルの主キーはWAN側の、サーバ及びクライアントのIPアドレス及びポート番号からなるセッション情報であり、LAN側のセッションは必要に応じて書き換え可能となっている。
応答管理テーブル64のそれぞれの項目は次の意味を有する。
WAN側サーバIPアドレスはサーバ側セッション終端部71のバインドされているIPアドレス(すなわち、サーバ11のIPアドレス)である。
WAN側サーバポート番号はサーバ側セッション終端部71のバインドされているポート番号(HTTPの場合、大抵は80番)である。
WAN側クライアントIPアドレスはWAN側セッション終端部66のバインドされているIPアドレス(すなわち、プロキシ装置13のWAN側IPアドレス)である。
WAN側クライアントポート番号はWAN側セッション終端部66のバインドされているポート番号であり、この番号は不定である。
ただし、クライアントポート番号を除く3つの項目が全て一致するレコードの数は、最大でも、インターネットゲートウェイ12によってプロキシ装置13に割り当てられたポートの数以下である。もちろん、異なるIPアドレスを有するサーバ11(例えば150.1.1.1のサーバ11b)を宛先とするレコードについては、また別個に割り当てられたポートの数だけ存在してよい。ただし、サーバ11側から見たセッションは、間にインターネットゲートウェイ12が入るため、宛先IPアドレスはインターネットゲートウェイ12のそれであり、ポート番号はインターネットゲートウェイ12のNAPT機能によって変換されたものとなる。
一方、LAN側サーバIPアドレスはLAN側セッション終端部61のバインドされているIPアドレス(すなわち、プロキシ装置13のLAN側IPアドレス)である。
LAN側サーバポート番号はLAN側セッション終端部61のバインドされているポート番号(Proxyの待受けポートとして設定されたものであり、8080などが一般的)である。
LAN側クライアントIPアドレスは端末側セッション終端部51のバインドされているIPアドレス(すなわち、端末14のIPアドレス)である。
LAN側クライアントポート番号は端末側セッション終端部51のバインドされているポート番号であり、このポート番号は1〜65535の中で個数制限は特にない。
中継管理部63は、WAN側のHTTPセッション(WAN側セッション終端部66−サーバ側セッション終端部71)を構築するWAN側セッション確立手段の実行とともに、応答管理テーブル64に対して新たにエントリを生成するエントリ生成手段を実行する。その実行にあたっては、WAN側サーバの情報を、LAN側セッション終端部61の受信したHTTP要求メッセージのヘッダ部である要求HTTPヘッダから取得する。このとき応答管理テーブル64に登録するエントリの主キーが決定される。一方、当該エントリの主キーではないLAN側の情報として、そのWAN側のHTTPセッションに対応するLAN側のHTTPセッションの情報を登録する。ただし、LAN側の情報は後述するエントリ空白化手段によりあとでクリアされる。
さらに、中継管理部63は、LAN側セッション終端部61が受信したHTTP要求メッセージについて、HTTPクライアント部67によりペイロードが書き換えられたHTTPメッセージ中で指定されるサーバ11へ、WAN側セッション終端部66から送信させる要求メッセージ中継手段を実行する。その送信の際、中継管理部63は、新たなWAN側のHTTPセッションを構築せずに、無通信状態にある既存のセッションを用いて送信する場合には、そのセッションに対応する応答管理テーブル64の既に生成されてWAN側の情報が記入されたエントリにLAN側の情報を記入するエントリ記入手段を実行する。その実行にあたっては、LAN側クライアントの情報を、LAN側セッション終端部61の受信したパケットの送信元IPアドレスと送信元ポート番号から取得する。
さらにまた、HTTPクライアント部67は、サーバ11へ送った要求メッセージに対するサーバ11からプロキシ装置13宛の応答メッセージを中継管理部63から受け取り、HTTPヘッダを解析して、自身が送った要求に対する応答であるかを確認する。また、さらに必要に応じてパケットの中身を解析する。またこのとき、中継管理部63がその直前にTCPレベルまで解析して検索した、当該応答メッセージの宛先であるLAN側セッション終端部61の情報も受け取る。HTTPサーバ部62は、この応答メッセージの内容を取り出し、大元の要求メッセージの送信元である端末14を宛先にしてヘッダに付与した応答メッセージを作成する応答メッセージを作成し、中継管理部63から指定されたLAN側セッション終端部61から端末側セッション終端部51へ送信させる応答メッセージ中継手段を実行する。
なお、図示しないが、上記の一連の応答メッセージ中継手段を実行する際に、HTTPクライアント部67がHTTPヘッダを解析して、パケットの変更が必要である場合は、変更を行う。その後中継管理部63にHTTPパケットを送る。これを受け取った中継管理部63は、HTTPパケットをペイロードとして、TCP以下のヘッダを印加した上で、それ以降の動作は上記と同様にLAN側セッション終端部61からパケットを送信する。
また、これら一連の要求及び応答メッセージのやりとりにおいて、HTTPセッションを司るのは、WAN側においてはHTTPクライアント部67であり、LAN側においてはHTTPサーバ部62である。また、TCPセッションを司るのは中継管理部63であり、WAN側セッション終端部66とLAN側セッション終端部61で終端する。なお、この発明においてHTTPセッションと記載せずに単にセッションという場合には、基本的にはTCPセッションを指す。
その送信の後、中継管理部63は、応答管理テーブル64における、当該エントリのLAN側の情報のみを削除するエントリ空白化手段を実行する。そのため、LAN側サーバIPアドレス、LAN側サーバポート番号、LAN側クライアントIPアドレス、LAN側クライアントポート番号の4項目は空白の場合もある。
さらにまた、中継管理部63は、後述するセッション整理手段により当該WAN側のHTTPセッションを切断する時に、併せて、当該セッションに対応するエントリを応答管理テーブル64から削除するエントリ削除手段を実行する。
次に、セッション管理テーブル65について説明する。一般的なNAPT装置や一般的なHTTPプロキシでは、WAN側とLAN側とで一対一に対応してアドレスとポート番号とを変換できるように、WAN側とLAN側とのどちらについても、送信元及び宛先のIPアドレス及びポート番号が固定値となるセッション管理テーブルが用いられる。この場合は、LAN側HTTPセッションが削除されれば、それに対応するWAN側HTTPセッションを、WAN側HTTPセッションが削除されれば、それに対応するLAN側HTTPセッションを単純に削除するだけでよい。しかし、本発明の場合、LAN側HTTPセッションとWAN側HTTPセッションは1対1対応していないため、既存のHTTP-Proxyのような単純な管理を行う事は出来ない。そのため、本発明のプロキシ装置で用いるセッション管理テーブル65は、WAN側の情報が宛先となるサーバのIPアドレスとサーバのポート番号のみで、プロキシ装置のWAN側の送信元ポート番号は登録されない。本発明において、どのWAN側ポート番号を用いるかは動的であり、上記応答管理テーブル64が一時的に記録する情報だからである。このセッション管理テーブル65の例を図5に示す。
このようなセッション管理テーブル65は、どのLAN側セッション終端部61(端末側セッション終端部51に通じる)が、どのサーバ11を宛先としているかを管理するテーブルとして、中継管理部63により参照される。すなわち、どのLAN側セッション終端部61を、いずれのWAN側セッション終端部66(サーバ側セッション終端部71に通じる)にくくりつけ可能かを、その宛先であるサーバによって絞り込むことができる。また、WAN側のHTTPセッション(WAN側セッション終端部66−サーバ側セッション終端部71)や、LAN側HTTPセッション(端末側セッション終端部51−LAN側セッション終端部61)を切断する際に、LAN側における残りセッション数を管理するために使用される。
中継管理部63は、新たな端末側セッション終端部51からLAN側セッション終端部61に「最初の」HTTP要求メッセージを受信したときに、セッション管理テーブル65にエントリを追加するエントリ追加手段を実行する。また、基本的には、LAN側HTTPセッション(LAN側セッション終端部61−端末側セッション終端部51)が削除されるタイミングで、中継管理部63がセッション管理テーブル65からエントリを抹消するエントリ抹消手段を実行する。また、WAN側HTTPセッションが削除されるタイミングで、そのサーバ11を宛先として、サーバ11のポート番号に該当するエントリが応答管理テーブル64から全て削除されていたら、セッション管理テーブル65から、該当するサーバ11を宛先とし、該当するポート番号を有するエントリを全て削除する総合エントリ抹消手段を実行してもよい。
また、中継管理部63は、LAN側及びWAN側のセッションのそれぞれについて、切断可能なものがあるか否かを検索し、切断可能なセッションを適宜削除するセッション整理手段を実行する。このセッション整理手段としては、次のようなケースでの削除手段が挙げられる。
端末側セッション終端部51からLAN側HTTPセッションの削除が実施された場合には、当該LAN側セッションを削除する、終了セッション削除手段を実行するとともに、当該端末側セッション終端部51が通信先としていたサーバ11(サーバ側セッション終端部71)に対応するエントリを応答管理テーブル64から検索し、当該サーバ側セッション終端部71とセッションを確立しているWAN側HTTPセッションの中から、通信に使用されていないHTTPセッションを適切に切断する単独セッション削除手段を実行する。ただし、WAN側HTTPセッションの数は、常に、LAN側HTTPセッションの数以下になるように調整する。LAN側HTTPセッションが削除されても、WAN側HTTPセッションの方が少なく、かつ、WAN側HTTPセッションの全てが使用されている場合には、WAN側HTTPセッションは削除しない。
逆に、サーバ側セッション終端部71からWAN側HTTPセッションが削除された場合、サーバ11側からの要求には従わなければならないので、当該セッションはLAN側の状況にかかわらず削除する強制セッション削除手段を実行する。ただしそれに引き続き、当該サーバ側セッション終端部71とHTTPセッションを確立しているWAN側セッション終端部66が少なくとも1つ以上残っている場合には、LAN側HTTPセッションは削除しない。当該サーバ側セッション終端部71とHTTPセッションを確立しているWAN側セッション終端部66が無くなったタイミングで、当該サーバ側セッション終端部71にくくりつけられたLAN側HTTPセッションをすべて削除する総合セッション削除手段を実行する。なおこのとき、中継管理部63は、セッション管理テーブル65に残されていた、当該サーバ側セッション終端部71に対応するエントリを全て削除する総合エントリ抹消手段を実行してもよい。エントリを残しておくと、キャッシュが利用可能であり、同一の通信が来た場合に毎回エントリを作成し削除するという手順を行わずに済むという利点がある一方で、エントリの数が多くなりすぎるとその分メモリの消費量が多くなるというデメリットを有する。プロキシ装置13がHGWなどのメモリが潤沢でない場合には、ここでエントリを削除することでメモリの消費量を抑えて動作を安定化させることができる。
このような構成からなるプロキシ装置13の実際の処理フローの例を説明する。
HTTP要求メッセージを受信した際のフローを図6の例を用いて説明する。
まず(S101)、LAN側セッション終端部61a、61b等(以下、まとめて「LAN側セッション終端部61x」とする)が、対応する端末の端末側セッション終端部51a,51b等(以下、まとめて「端末側セッション終端部51x」とする。添え字xは61と51とで対応する。)から送信されてきたTCPストリームを受信して、HTTP要求メッセージを取り出す(S102)。HTTPサーバ部62は、HTTP要求メッセージの内容を解析して、宛先などを判別して、HTTPクライアント部67に内容を渡す(S103)。一般的なプロキシ装置13では、受信したIPパケットそのものの宛先がプロキシ装置13自体となっている。本来の宛先であるサーバ11のアドレスは、この段階で、HTTP要求メッセージの中のHTTPヘッダを読むことでようやく判別できる。ただし、読み取ったサーバ11のアドレスはドメインネームで記載されていることがほとんどであるため、DNSの名前を解決してIPv4又はIPv6のアドレスを取得しなければならない。この名前の解決は一般的なDNSプロキシ機能(図示せず)によって行うとよい。
受け取った上記の要求メッセージの内容を渡されたHTTPクライアント部67は、プロキシの一般的動作と同様に、サーバ11宛のHTTP要求メッセージを作成し、解析されたHTTPヘッダのリクエストラインやHostヘッダフィールドから、サーバ11のサーバ側セッション終端部71a,71b等(以下、まとめて「サーバ側セッション終端部71y」とする)を包括的に指定することになる、宛先IPアドレス及びポート番号を決定する(S104)。
なお、当然に宛先IPアドレスはインターネット1上におけるサーバ11のグローバルIPアドレスであり、ポート番号はHTTPであれば一般的には80番を用いることが多い。
中継管理部63は、この決定された情報のうち、宛先IPアドレスから、HTTP要求メッセージを送信するためのWAN側セッション終端部66yを選択、決定する(S105)。このとき、WAN側セッション終端部66yが既に存在している場合とまだ存在していない場合とがあり、また、セッション数が上限値に達しているか否かといった状況に応じて動作が異なる。詳しくは後述する。その上で中継管理部63は、セッション管理テーブル65の情報を更新するエントリ追加手段を実行する(S106)。その内容も後述する。選択されたWAN側セッション終端部66yから、サーバ11のサーバ側セッション終端部71yに対して、ペイロードにHTTP要求メッセージを内包したTCPストリームを送信する(S107)。これで要求メッセージの処理は一旦終了し、応答メッセージの受信を待つことになる(S108)。
上記S105で行う、中継管理部63によるセッション終端部の選択フローについて、図7を用いて説明する。なお、この直前のS104で、宛先となるサーバ11のアドレスは確定している。
まず(S131)、中継管理部63は、応答管理テーブル64から、宛先のサーバ11に対して確立されているセッションのうち、HTTPの応答待ちではないセッションがあるか否かを検索する(S132)。すなわち、ここで、サーバ側セッション終端部71yのIPアドレスとはサーバ11のIPアドレスであり、主キーの一つであるWAN側サーバIPアドレスが宛先のサーバであって、LAN側が空白になっているエントリがあるか否かを検索する。そのような空きエントリが存在しておらず(S133→No)、かつ、サーバ11に対するWAN側セッション終端部66の数が、インターネットゲートウェイ12により制限されるポート番号の数の上限未満であれば(S134→No)、新たにセッションを構築する余地があるので、WAN側セッション終端部66y(すなわち、ポート番号を割り当てたソケット)を作成し、サーバ11のサーバ側セッション終端部71yとセッションを確立するWAN側セッション確立手段を実行する(S135)。なお、サーバ11との間に最初にセッションを張る場合もこの流れになる。その上で、この確立したセッションの情報を、応答管理テーブル64に新規エントリとして作成するエントリ作成手段を実行する(S136)。このときできたWAN側の設定は固定であるが、LAN側の設定として登録する、S102で受信した際の端末14との間のセッション情報は、後でクリアされることになる。応答管理テーブル64へのエントリ作成が終わったら、作成したWAN側セッション終端部66yを引数として、次のS106へ移る(S137)。
一方、S133で該当するエントリが存在した場合、すなわち、WAN側が該当し、LAN側が後述するエントリ抹消手段によりクリアされた空きエントリが存在している場合(S133→Yes)、そのエントリのLAN側カラムに、LAN側のTCPセッションの両端点の情報を登録するエントリ記入手段を実行する(S141)。LAN側セッション終端部61xと端末側セッション終端部51xとの両端点のIPアドレスとポート番号がわかれば、TCPセッションが唯一に決まる。これにより、主キーであるWAN側セッションに一時的に紐付けられるLAN側セッションが決定される。その上で、WAN側のクライアントIPアドレスとWAN側クライアントポート番号に合致するWAN側セッション終端部66yを選択し(S142)、これを引数として、次のS106に移る(S137)。すなわち、空いていたポート番号を選択し、そのポート番号に対応するセッションで送信する要求メッセージ中継手段の準備をする。
なお、WAN側の情報が一致してLAN側がクリアされたエントリが存在せず、(S133→No)、サーバ11(例えばサーバ11a)に対するWAN側セッション終端部66の数が上限に達していたら(S134→Yes)、この時点ではサーバ11宛のセッションを張ることができないので、待機状態となって、エントリが空くまで待つ(S132)。
次に、上記S106で行う、中継管理部63によるセッション管理テーブル65の更新フローについて、図8を用いて説明する。まず(S151)、セッション管理テーブル65の中に、宛先であるサーバ11のサーバ側セッション終端部71に対応するIPアドレス及びサーバポート番号が一致するとともに、LAN側のセッションの情報とも一致するエントリがあるか否かを検索する(S152)。エントリが存在したら(S153→Yes)、そのサーバへのセッションはその前から引き続き通信されるものであるので、そのまま次のS107へ移って、S105で引数として渡されたWAN側セッション終端部66yを通じて要求メッセージを送信する。エントリが存在しなかったら(S153→No)、そのサーバ11へは初めて通信されるものであるため、エントリ追加手段を実行し(S154)、S105で引数として渡されたWAN側セッション終端部66yを通じて要求メッセージを送信する。
上記のS107で送信された要求メッセージに対するサーバ11からの応答メッセージを受信し、中継して送信する際のフローを、図9を用いて説明する。まず(S201)、WAN側セッション終端部66yが、サーバ11のサーバ側セッション終端部71yからTCPストリームを受信し、ペイロードからHTTP応答メッセージを取得する(S202)。中継管理部63はこれを受けて、応答管理テーブル64を検索して、WAN側の情報が一致するエントリを検索し、そのエントリのLAN側情報を得る。これにより、今受信した応答メッセージに対応する要求メッセージを送信したLAN側のセッションを特定する。これにより、応答メッセージの返信先となる端末14のアドレスと、クライアントポート番号が特定でき、すなわち、送信に用いるソケットである端末側セッション終端部51xと、それに繋がるLAN側のLAN側セッション終端部61xを特定する(S203)。その上で、プロキシ装置13の基本的機能である、HTTPクライアント部67が、HTTP応答メッセージを解析し(S204)、同じくプロキシ装置13の基本的機能であるHTTPサーバ部62が、HTTP応答メッセージを作成する(S205)。これはすなわち、プロキシとしては、先に受信した要求メッセージに対する応答メッセージである。このHTTP応答メッセージを、先にS203で特定したLAN側セッション終端部61xから、セッションの先である端末14の端末側セッション終端部51xに対して、ペイロードにHTTP要求メッセージを内包したTCPストリームを送信する(S206)。これが完了したら、ひとまず要求に対する応答は終わったので、サーバ11とのセッションはアクティブなものではなくなる。そこで、応答管理テーブル64から、応答先の送信に用いたエントリのLAN側部分をクリアするエントリ空白化手段を実行する(S207)。これによりLAN側とWAN側とのセッションの括り付けは解除され、当該エントリに対応するWAN側のセッションは無通信状態となり、S132以降の処理で他のLAN側セッションが使用できるようになる。
上記のような工程で要求と応答がされるが、WAN側のセッションは応答終了後に応答管理テーブル64におけるLAN側の情報のみをクリアしておくだけでなく、不要になったらWAN側のセッションそのものを削除しておくことが好ましい。インターネットゲートウェイ12が、各々のプロキシ装置13に割り当てるポートの数を動的に変更する場合もあり、その場合には、どれかのプロキシ装置13が無用なセッションを削除することによって、他のプロキシ装置13が使えるセッションが増えることになるからである。また、ネットワーク処理自体の高速化のためにも、不要なセッションはWAN側、LAN側ともに削除しておくことが好ましい。
まず、LAN側HTTPセッション切断時のフローについて図10を用いて説明する。端末14の端末側セッション終端部51xと、プロキシ装置13のLAN側セッション終端部61xとの間で確立しているHTTTPセッションの切断契機が発生した場合に(S302)、次のフローを実施する。ここで、LAN側のセッションの切断契機とは、RFCの一般的な規定に従うものであり、具体的には、Keep−Aliveのタイムアウトや、端末側セッション終端部51xからのTCP−FINを受信した場合などが挙げられる。このとき、セッション管理テーブル65の中から、切断契機が発生したセッションのIPアドレス及びポート番号と、LAN側の情報が一致するエントリを取得する(S303)。そのエントリのWAN側情報を参照して、切断しようとしているLAN側セッションが通信していたサーバ11のアドレスを特定する(S304)。なお、基本的にサーバポート番号は80番である状況を想定しているが、サーバポート番号として様々な番号を用いることを許容するサーバ11であれば、このときにエントリに対応するポート番号も特定して、サーバ側セッション終端部71yを特定する。その上で、そのサーバ11と、同一サーバポート番号で通信しているLAN側セッションの数をセッション管理テーブル65内でカウントして、Xとする(S305)。次に、応答管理テーブル64において、同じサーバ11と通信しているWAN側のセッションの数をカウントして、Yとする(S306)。すなわち、応答管理テーブル64には、アクティブか非アクティブかに関わらず、WAN側のセッションが全て記載されており、セッション管理テーブル65には、WAN側のポート番号を考慮することなく、各サーバ(及びサーバポート番号)に繋がるLAN側のセッションが全て記載されているので、それぞれをカウントしてLAN側をX,WAN側をYとする。
ここで、XよりYが大きいか否かを判断する(S307)。すなわち、LAN側よりWAN側のセッションの方が多ければ(S307→Yes)、WAN側のセッションの数は、最大でもLAN側のセッション数あれば十分であるので、余分なセッションは削除する。このとき、応答管理テーブル64で検索するのは、LAN側のカラムが空白、すなわち、通信状態にはなく休止状態のセッションであり、該当するエントリを応答管理テーブル64から一つ削除するとともに、それに対応するWAN側セッション終端部66を一つ削除する単独セッション削除手段を実行する(S311)。このとき、該当するエントリ及びWAN側セッション終端部66が対応していれば、どのエントリ(WAN側セッション終端部66)を削除してもよいが、例えば、セッションの生成が古いものから削除していくなどの一定の基準によって削除するとよい。一つ削除した後、Yをカウントし直して(S312→S313→S306)、再びXとYとを比較し(S307)、まだ該当するようであれば、さらにエントリとWAN側セッション終端部66を削除する(S311)。
一方、XがYより大きいか、あるいは同じ(S311によって同数になった場合を含む)である場合には(S307→No)、セッション管理テーブル65から、S303で取得したエントリを削除し(S308)、それに対応するLAN側セッション終端部61xを削除する終了セッション削除手段を実行して(S309)フローを終わる(S310)。
次に、WAN側HTTPセッション切断時のフローについて図11を用いて説明する。
サーバ11のサーバ側セッション終端部71yと、プロキシ装置13のWAN側セッション終端部66yとの間で確立しているHTTPセッションの切断契機が発生した場合に(S332)、次のフローを実施する。ここで、WAN側のセッションの切断契機とは、RFCの一般的な規定に従うものであり、具体的には、Keep−Aliveのタイムアウトや、サーバ側セッション終端部71yからのTCP−FINを受信した場合などが挙げられる。サーバ11側から切断の要求があった場合は、インターネットゲートウェイ12側(すなわちプロキシ装置13側)の事情にかかわらず、そのセッションは削除しなければならないためである。
まず、応答管理テーブル64の中から、切断契機が発生したセッションのIPアドレス及びポート番号と、WAN側の情報が一致するエントリを削除し(S333)、対応するWAN側セッション終端部66yを削除する強制セッション削除手段を実行する(S334)。
さらにその上で、当該サーバ11のIPアドレスと、先に削除したセッションのポート番号とが一致するエントリが、応答管理テーブル64の中にあるか否かを検索する(S335)。すなわち、削除契機が発生したのと同じサーバ11と、同じサーバポートで通信しているWAN側のTCPセッションが存在するか否かを検索する。このエントリが存在しているならば(S336→Yes)、サーバ11との間でのセッションは他にもまだ存在していて通信が継続される可能性があるので、LAN側のセッションはひとまず削除せずにそのままとする。LAN側セッションはそのまま通信が再開されることなく放置されたとしても、上記の通り、LAN側セッション自体のタイムアウトなどによって、単独セッション削除手段により削除される。一方、エントリが存在していないならば(S336→No)、サーバ11との間で通信することはひとまず無くなったことになるので、当該サーバ11を宛先IPアドレスとして指定するセッション管理テーブル65のエントリを削除する総合エントリ抹消手段を実行するとともに、当該エントリに合致する端末側セッション終端部51に接続しているLAN側セッション終端部61を全て削除する、総合セッション削除手段を実行する(S337)。ただし、上記の通り、プロキシ装置13のメモリが潤沢にある場合には、エントリを残していてもよいので、総合エントリ抹消手段は実行しなくてもよい。
なお、この図11のフローのうち、実際の実装に当たって必須なのは、S334までであり、その他の部分(S337等)は実装しなくても運用が可能である。その場合、サーバ11とのWAN側のセッションが全て切断されているにもかかわらず、LAN側の端末はそれを検知していないという、WANとLANとの状態不整合が発生する。しかし、WAN側のセッションが全て削除されている状態で、LAN側から要求メッセージを受信すれば、図6のS105(すなわち図7)のフローに従って、新しいWAN側セッションが確立されるため、状態の不整合が理由で通信が不可能になる危険はない。
なお、この発明はHTTPプロトコルに限らず、他のプロトコルであっても、送信した要求の順番に対して応答の順番が保証されている、すなわち、応答の順番が入れ替わることがないことが保証されており、端末側(すなわちLAN側)からの通信しか発生しないことが保証されているプロトコルであれば、同様に利用が可能である。
1 インターネット
2 閉域網
3 ローカルエリアネットワーク
11,11a,11b サーバ
12 インターネットゲートウェイ
13 プロキシ装置
14 端末
51,51a,51b、51x 端末側セッション終端部
52 HTTPクライアント部
61、61a、61b、61x LAN側セッション終端部
62 HTTPサーバ部
63 中継管理部
64 応答管理テーブル
65 セッション管理テーブル
66、66a、66b、66y WAN側セッション終端部
67 HTTPクライアント部
71、71a、71b、71y サーバ側セッション終端部
72 HTTPサーバ部

Claims (6)

  1. インターネットゲートウェイと端末との間の通信を中継するプロキシ装置であって、
    上記インターネットゲートウェイを経由するインターネット上の一のサーバとの間のセッション数を、一定数以下でありかつ、上記一のサーバを宛先とする端末側とのセッション数以下に限定し、
    端末側から上記一のサーバへの通信要求を新たに受信した際には、上記一のサーバとの間のセッションのうちその時点で通信を行っていないセッションを利用して、上記一のサーバとの通信を行う、プロキシ装置。
  2. 上記端末との間でTCPストリームを送受信し、受信したTCPストリームからHTTP要求メッセージを取り出す、ポート番号ごとに存在する複数のLAN側セッション終端部と、
    上記サーバとの間でTCPストリームを送受信し、受信したTCPストリームからHTTP応答メッセージを取り出す、ポート番号ごとに存在する複数のWAN側セッション終端部と、
    上記HTTP要求メッセージを解析して要求HTTPヘッダを読み取り、かつ、上記HTTP応答メッセージの応答HTTPヘッダから転送先となるLAN側セッション終端部を決定するHTTPサーバ部と、
    上記要求HTTPヘッダから送信先となるWAN側セッション終端部のIPアドレスとポート番号とを決定して要求メッセージを作成し、かつ、受信したHTTP応答メッセージを解析して上記応答HTTPヘッダを読み取るHTTPクライアント部とを有し、
    上記LAN側セッション終端部についての送信元及び宛先のアドレス及びポート番号と、そのセッションの宛先であるサーバのアドレス及びサーバポート番号とを対応させて記録するセッション管理テーブルと、
    上記要求メッセージを中継する上記WAN側セッション終端部についての送信元及び宛先についてのアドレス及びポート番号を主キーとしてエントリを登録され、そのサーバ側セッションに一時的に結びつける端末側のセッション情報をエントリに一時的に登録され、上記LAN側セッション終端部から上記HTTP応答メッセージを送信完了した際には、当該エントリから端末側のセッション情報のみを削除可能とした応答管理テーブルと、
    上記セッション管理テーブル及び上記応答管理テーブルの上記エントリを更新させ、かつそれらを参照して通信を中継させる中継管理部と
    を有する
    請求項1に記載のプロキシ装置。
  3. 上記の中継管理部が、LAN側及びWAN側のセッションのそれぞれについて、切断可能なものがあるか否かを検索し、切断可能な上記LAN側セッション終端部、上記WAN側セッション終端部又はその両方を削除するセッション整理手段を実行する、請求項2に記載のプロキシ装置。
  4. 上記セッション整理手段として、
    上記中継管理部が、上記サーバとの間でHTTPの切断契機が発生した場合に、それに対応する上記WAN側セッション終端部を削除する強制セッション削除手段を実行しうる、請求項3に記載のプロキシ装置。
  5. 上記セッション整理手段として、
    上記中継管理部が、上記強制セッション削除手段を実行した後、応答管理テーブルから、WAN側IPアドレス及びWAN側サーバポート番号が上記強制セッション削除手段により削除された上記WAN側セッション終端部における当該情報と一致するエントリが存在するか否かを検索し、存在しなければ、上記セッション管理テーブルから、当該WAN側IPアドレス及びWAN側サーバポート番号に該当するエントリを検索し、そのエントリに該当する上記LAN側セッション終端部を全て削除する総合セッション削除手段を実行しうる、
    請求項4に記載のプロキシ装置。
  6. 上記セッション整理手段として、
    上記中継管理部が、同一のサーバを宛先としかつサーバポート番号が一致するLAN側のセッションの数とWAN側のセッションの数を比較し、WAN側のセッションの数の方が多い場合に、上記WAN側セッション終端部を少なくとも一つ削除する単独セッション削除手段を実行しうる、
    請求項3乃至5のいずれかに記載のプロキシ装置。
JP2012228935A 2012-10-16 2012-10-16 プロキシ装置及び中継装置 Active JP6096464B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012228935A JP6096464B2 (ja) 2012-10-16 2012-10-16 プロキシ装置及び中継装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012228935A JP6096464B2 (ja) 2012-10-16 2012-10-16 プロキシ装置及び中継装置

Publications (2)

Publication Number Publication Date
JP2014082624A true JP2014082624A (ja) 2014-05-08
JP6096464B2 JP6096464B2 (ja) 2017-03-15

Family

ID=50786434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012228935A Active JP6096464B2 (ja) 2012-10-16 2012-10-16 プロキシ装置及び中継装置

Country Status (1)

Country Link
JP (1) JP6096464B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020503784A (ja) * 2016-12-30 2020-01-30 インテル・コーポレーション モノのインターネット
US11212250B2 (en) 2017-03-31 2021-12-28 Nec Corporation Relay device, network system, and network control method
JP2022010633A (ja) * 2020-06-29 2022-01-17 サイレックス・テクノロジー株式会社 中継装置、中継方法、および、プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012090071A (ja) * 2010-10-20 2012-05-10 Nec Corp 中継装置、通信システム及びそれらに用いるフロー制御方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012090071A (ja) * 2010-10-20 2012-05-10 Nec Corp 中継装置、通信システム及びそれらに用いるフロー制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020503784A (ja) * 2016-12-30 2020-01-30 インテル・コーポレーション モノのインターネット
US11431561B2 (en) 2016-12-30 2022-08-30 Intel Corporation Internet of things
JP7205994B2 (ja) 2016-12-30 2023-01-17 インテル・コーポレーション モノのインターネット
US11916730B2 (en) 2016-12-30 2024-02-27 Intel Corporation Service provision to IoT devices
US11212250B2 (en) 2017-03-31 2021-12-28 Nec Corporation Relay device, network system, and network control method
JP2022010633A (ja) * 2020-06-29 2022-01-17 サイレックス・テクノロジー株式会社 中継装置、中継方法、および、プログラム

Also Published As

Publication number Publication date
JP6096464B2 (ja) 2017-03-15

Similar Documents

Publication Publication Date Title
US7554992B2 (en) Mobile device communications system and method
KR100803273B1 (ko) 패킷 터널링하는 isatap 라우터 및 그 방법
JP5621778B2 (ja) コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
US8954603B2 (en) Communication device and communication method of the same
US8009670B2 (en) Communication system, information processor, intervening server, identification information transmitting server, communication method and program
US20060067342A1 (en) Method and system in an IP network for using a network address translation (NAT) with any type of application
CN102035900B (zh) 用于通过中继方式进行nat穿越的方法、系统和中继服务器
KR20080050973A (ko) IPv4 네트워크 기반 IPv6 서비스 제공시스템에서의 제어 터널 및 다이렉트 터널 설정 방법
JP2004364141A (ja) Ipアドレス変換装置およびパケット転送装置
US20050074000A1 (en) Packet relay device/method, network connection device, storage medium and program
JPH11508753A (ja) インターネット・プロトコル・フィルタ
CA2884683C (en) Split network address translation
US9137271B2 (en) System for switching between communication devices, switching method, and switching program
US9654540B2 (en) Load balancing among network servers
US8934489B2 (en) Routing device and method for processing network packet thereof
JP6096464B2 (ja) プロキシ装置及び中継装置
JP4683345B2 (ja) ネットワーク負荷分散装置、ネットワーク負荷分散方法及びプログラム
KR100854681B1 (ko) 인터넷 프로토콜 유비쿼터스 센서 네트워크와 단순네트워크 관리 프로토콜 망을 상호 연동하기 위한게이트웨이 및 인터넷 프로토콜 유비쿼터스 센서네트워크와 단순 네트워크 관리 프로토콜 망과의 상호 연동방법.
US10129145B2 (en) Routing IPv6 packets between autonomous systems
US20110185084A1 (en) Information communication system, relay node device, information communication method, and computer readable recording medium
JP2010062757A (ja) Dnsプロキシ装置及びdns中継方法
CN101237401B (zh) 数据连接建立方法及路由器
CN114598532A (zh) 连接建立方法、装置、电子设备和存储介质
CN102724233A (zh) 信息家电系统中用IPv4协议栈实现与IPv6进程的通信方法
JP2013126219A (ja) 転送サーバおよび転送プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150623

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20160325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160407

RD15 Notification of revocation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7435

Effective date: 20160407

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161021

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170216

R150 Certificate of patent or registration of utility model

Ref document number: 6096464

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250