JP5350524B1 - セッション割当装置 - Google Patents

セッション割当装置 Download PDF

Info

Publication number
JP5350524B1
JP5350524B1 JP2012190573A JP2012190573A JP5350524B1 JP 5350524 B1 JP5350524 B1 JP 5350524B1 JP 2012190573 A JP2012190573 A JP 2012190573A JP 2012190573 A JP2012190573 A JP 2012190573A JP 5350524 B1 JP5350524 B1 JP 5350524B1
Authority
JP
Japan
Prior art keywords
session
source terminal
packet
time stamp
transmission source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012190573A
Other languages
English (en)
Other versions
JP2014049901A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012190573A priority Critical patent/JP5350524B1/ja
Application granted granted Critical
Publication of JP5350524B1 publication Critical patent/JP5350524B1/ja
Publication of JP2014049901A publication Critical patent/JP2014049901A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】効率的にセッションを割り当てることを目的とする。
【解決手段】送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置は、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当部とを有する。前記セッション割当部は、送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値又はシーケンス番号を変換する。
【選択図】図3

Description

本発明は、セッション割当装置及びセッション割当方法に関する。
プライベートネットワークとグローバルネットワークとを接続し、プライベートアドレスとグローバルアドレスとの変換を実施する装置をネットワークアドレス変換(NAT:Network Address Translation)装置と呼ぶ。ネットワークアドレス変換装置を介して送信元端末と通信先端末でTCP(Transmission Control Protocol)により通信を実施する場合、送信元端末と通信先端末との間にセッションが張られる。具体的には、送信元端末は、接続要求パケット(SYNパケット)を通信先端末に送信してセッションをオープンする。情報の取得が終了した場合、終了パケット(FINパケット)によりセッションがクローズされる。ネットワークアドレス変換装置は、TCPステートを管理する実装の場合は、FINパケットに対して最後にACKを送ってから一定の時間が経過する間は、セッションをTIME_WAIT状態にし、新たにSYNパケットを送信した送信元端末に対してTIME_WAIT状態のセッションを割り当てることはできない。
RFC793, "Transmission Control Protocol", September 1981, URL: http://tools.ietf.org/html/rfc793 RFC6191, "Reducing the TIME-WAIT State Using TCP Timestamps", April 2011, URL: http://tools.ietf.org/html/rfc6191 RFC1323 "TCP Extensions for High Performance", May 1992, URL: http://tools.ietf.org/html/rfc1323
送信元端末のタイムスタンプ値(以下、「タイムスタンプ値」と呼ぶ)及び送信元端末のシーケンス番号(以下、「シーケンス番号」と呼ぶ)を解析することで、セッションの管理を向上させることがRFC6191及びRFC1323で提案されている。ここで、タイムスタンプ値及びシーケンス番号は、RFC793に記載されている(非特許文献1参照)。
RFC6191では、SYNパケットを受信した装置は、SYNパケットのタイムスタンプ値及びシーケンス番号を取得し、SYNパケットのタイムスタンプ値及びシーケンス番号がこれまでに装置を通過したパケットより新しいタイムスタンプ値及びシーケンス番号を持つ場合にTIME_WAIT状態のセッションを解放し、新規セッションを開始する(以下、「RFC6191の動作」と呼ぶ)。このようにして、セッション再利用のための改善が提案されている(非特許文献2,"2. Improved Processing of Incoming Connection Requests"参照)。
RFC1323では、パケットを受信した装置は、パケットのタイムスタンプ値及びシーケンス番号を取得し、装置が保持しているタイムスタンプ値及びシーケンス番号の最大値よりも小さい場合、そのパケットを破棄する(以下、「RFC1323 PAWSの動作」と呼ぶ)。このようにして、旧セッションで発生した古いパケットが新セッションに混入する可能性を回避している(非特許文献3,"4.2.1 Basic PAWS Algorithm"参照)。
しかし、RFC6191の動作及びRFC1323 PAWSの動作は、パケットのタイムスタンプ値及びシーケンス番号を解析しない現状のネットワークアドレス変換装置には実装できない。また、RFC6191の動作を実現するためには、「受信するパケットのタイムスタンプ値及びシーケンス番号が単調増加している必要がある」という制約がある。よって、配下にタイムスタンプ値及びシーケンス番号の同期がとれていない複数の端末を接続するネットワークアドレス変換装置にRFC6191の動作を適用し、複数の端末間でセッションを再利用することはできない。
仮に、現状のネットワークアドレス変換装置にRFC6191の動作を実現したとしても、送信されるパケットのタイムスタンプ値及びシーケンス番号が大きい端末(端末Aとする)のみがセッションを再利用できることになる。この場合、端末A以外の端末からのパケットのタイムスタンプ値及びシーケンス番号が小さい場合、端末Aがセッションを占有している限り、通信が実施できない。
また、RFC1323 PAWSの動作についても、動作にはタイムスタンプ値及びシーケンス番号の解析が必要となるので、現状のネットワークアドレス変換装置に実装することはできない。
本発明は、ネットワークアドレス変換装置のように複数の端末を収容する装置において、効率的にセッションを割り当てることを目的とする。
本発明の一形態に係るセッション割当装置は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当部と、
を有し、
前記セッション割当部は、送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値又はシーケンス番号を変換することを特徴とする。
本発明の一形態に係るセッション割当装置は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当部と、
を有し、
前記セッション割当部は、使用可能なポートに空きが存在するまで、セッションを割り当てた送信元端末とは異なる送信元端末からの接続要求パケットを拒否することを特徴とする。
本発明の一形態に係るセッション割当装置は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
送信元端末に使用可能なポートを割り当てるポート割当部と、
送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、前記ポート割当部で割り当てられたポートの範囲で、送信元端末にセッションを割り当てるセッション割当部と、
を有することを特徴とする。
本発明の一形態に係るセッション割当方法は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置におけるセッション割当方法であって、
当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を最大値保持部に保持する最大値保持ステップと、
接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当ステップと、
を有し、
前記セッション割当ステップは、送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値又はシーケンス番号を変換することを特徴とする。
本発明の一形態に係るセッション割当方法は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置におけるセッション割当方法であって、
送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を最大値保持部に保持する最大値保持ステップと、
送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当ステップと、
を有し、
前記セッション割当ステップは、使用可能なポートに空きが存在するまで、セッションを割り当てた送信元端末とは異なる送信元端末からの接続要求パケットを拒否することを特徴とする。
本発明の一形態に係るセッション割当方法は、
送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置におけるセッション割当方法であって、
送信元端末に使用可能なポートを割り当てるポート割当ステップと、
送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を最大値保持部に保持する最大値保持ステップと、
送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、送信元端末に割り当てられたポートの範囲で、送信元端末にセッションを割り当てるセッション割当ステップと、
を有することを特徴とする。
本発明によれば、ネットワークアドレス変換装置のように複数の端末を収容する装置において、効率的にセッションを割り当てることが可能になる。
本発明の実施例に係るネットワークアドレス変換装置の概要図 本発明の実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図 本発明の第1実施例に係るネットワークアドレス変換装置の概要図 本発明の第1実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図 本発明の第1実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャート 本発明の第2実施例に係るネットワークアドレス変換装置の概要図 本発明の第2実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図 本発明の第2実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャート 本発明の第3実施例に係るネットワークアドレス変換装置の概要図 本発明の第3実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図 本発明の第3実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャート
以下、本発明の実施例について、図面を参照して説明する。
本発明の実施例では、送信元端末からの接続要求パケット(SYNパケット)に対して送信元端末にセッションを割り当てるために、ネットワークアドレス変換装置が用いられる。まず、本発明の実施例に係るネットワークアドレス変換装置200の概要について説明する。
図1に、本発明の実施例に係るネットワークアドレス変換装置200の概要図を示す。なお、図1に示すネットワーク構成は単なる一例であり、本発明の実施例はここに記載した構成に限られるものではない。
ネットワークアドレス変換装置200は、送信元端末101又は102と、ネットワークを介して通信先端末300とに接続されており、送信元端末101又は102のアドレスと通信先端末300のアドレスとを変換する。例えば、送信元端末101又は102には、プライベートアドレス/ポートが割り当てられており、通信先端末300には、グローバルアドレス/ポートが割り当てられている。また、ネットワークアドレス変換装置200には、使用可能なポート数に制限があるものとし、例えば、通信先端末300との通信に100ポートのセッションが必要である場合に、ネットワークアドレス変換装置200は、グローバル側に50ポートのセッションまで許容できるものとする。
ネットワークアドレス変換装置200は、グローバルネットワーク送受信部201と、プライベートネットワーク送受信部203と、セッション割当部205と、アドレス変換部207と、セッション表209とを有する。
グローバルネットワーク送受信部201は、グローバルアドレス/ポートが付与された通信先端末300に対してパケットを送受信する。
プライベートネットワーク送受信部203は、プライベートアドレス/ポートが付与された送信元端末101又は102に対してパケットを送受信する。
セッション割当部205は、送信元端末101又は102からのSYNパケットに対して、送信元端末101又は102にセッションを割り当て、各セッションのTCPステートを保持する。セッション割当部205は、ネットワークアドレス変換装置200で使用されているセッションの数をカウントし、グローバル側に使用可能なポートが存在するかを判定する。グローバル側に使用可能なポートが存在する場合、セッション割当部205は、送信元端末101又は102からのSYNパケットに対して、送信元端末101又は102にセッションを割り当てる。
グローバル側に使用可能なポートが存在しない場合、セッション割当部205は、セッション終了時に、新たにSYNパケットを送信した送信元端末に対してセッションを割り当てる必要がある。セッション終了時は、FIN+ACKパケットに対するACKの通過後に、セッションをTIME_WAIT状態にし、TIME_WAIT状態が解放されるまで、SYNパケットを送信した送信元端末に対してTIME_WAIT状態のセッションを割り当てない。このため、セッション毎に、ネットワークアドレス変換装置200を通過したパケットのタイムスタンプ値及びシーケンス番号の最大値(最初のパケットの場合は最初のパケットのタイムスタンプ値及びシーケンス番号)がネットワークアドレス変換装置200内に保持される。例えば、セッション毎のタイムスタンプ値及びシーケンス番号の最大値は、セッション毎のアドレス変換内容を保持するセッション表209に格納されてもよい。この最大値は、パケットがネットワークアドレス変換装置200を通過する毎に更新される。セッション割当部205は、SYNパケットを受信した場合、SYNパケットのタイムスタンプ値及びシーケンス番号がネットワークアドレス変換装置200に保持されたタイムスタンプ値及びシーケンス番号の最大値より大きいか否かを判断し、大きい場合、TIME_WAIT状態のセッションを解放して、SYNパケットを送信した送信元端末に対してそのセッションを割り当てる。これにより、RFC6191の動作を実現する。
アドレス変換部207は、送信元端末101又は102から通信先端末300への通信を受信すると、プライベートアドレス/ポートとグローバルアドレス/ポートとを変換する。また、ネットワークアドレス変換装置200は、この変換が発生したときに変換内容をセッション表209に記憶する。更に、上り通信と下り通信との双方で、セッション表209に従ってアドレス/ポートを変換する。
アドレス変換部207は、セッション毎に、受信したパケットのタイムスタンプ値及びシーケンス番号と、ネットワークアドレス変換装置200に保持されたタイムスタンプ値及びシーケンス番号の最大値とを比較し、受信したパケットのタイムスタンプ値及びシーケンス番号が小さい場合、受信したパケットを破棄する。これにより、RFC1323 PAWSの動作を実現する。
セッション表209には、セッション毎に、送信元端末の変換前後のアドレスが格納されており、例えば、送信元端末101又は102の変換前アドレス、変換前ポート、変換後アドレス、変換後ポート、通信先端末300の通信先アドレス、通信先ポート及びプロトコル種別が格納される。また、セッション毎のタイムスタンプ値及びシーケンス番号の最大値を保持するため、セッション毎に、送信元端末のタイムスタンプ値及びシーケンス番号が格納されてもよい(図示せず)。
図2に、本発明の実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図を示す。図2において、タイムスタンプ値をTSで示す。
例えば、ネットワークアドレス変換装置200において、使用可能なポート数が50に制限されているものとする。更に、送信元端末101又は102がリモートホスト(通信先端末)300から情報を取得するために100のポートが必要であるものとする。このような前提で、送信元端末101がリモートホスト300と通信を実施し、ネットワークアドレス変換装置200の50ポートを使いつくしたとする。
ネットワークアドレス変換装置200は、セッション終了時にリモートホスト300からFIN+ACKパケットを受信すると(S101)、アドレス変換部207においてアドレスを変換し、送信元端末101にFIN+ACKパケットを送信する(S103)。ネットワークアドレス変換装置200は、FIN+ACKパケットに対して送信元端末101からACKパケットを受信すると(S105)、アドレス変換部207においてアドレスを変換し、リモートホスト300にACKパケットを送信する(S107)。このとき、ネットワークアドレス変換装置200は、ACKパケットのタイムスタンプ値(TS:500)を保持すると共に、セッション割当部205において、セッションをTIME_WAIT状態にする。
ネットワークアドレス変換装置200は、グローバル側に使用可能なポートが存在しない状況で送信元端末101から新たにSYNパケットを受信すると(S109)、受信したSYNパケットのタイムスタンプ値(TS:600)と、ネットワークアドレス変換装置200において保持されたタイムスタンプ値(TS:500)とを比較する。受信したSYNパケットのタイムスタンプ値(TS:600)が保持されたタイムスタンプ値(TS:500)より大きいため、ネットワークアドレス変換装置200は、セッション割当部205において、TIME_WAIT状態のセッションを終了し、送信元端末101に新たなセッションを割り当てる。そして、ネットワークアドレス変換装置200は、アドレス変換部207においてアドレスを変換し、リモートホスト300にSYNパケットを送信する(S111)。なお、受信したSYNパケットのタイムスタンプ値が保持されたタイムスタンプ値(TS:500)より小さい場合、新たなセッションは割り当てられない。
図2ではタイムスタンプ値のみが考慮されているが、シーケンス番号を考慮した場合も同様に動作する。また、ネットワークアドレス変換装置200はリモートホスト300からFIN+ACKパケットを受信しているが、送信元端末101からFIN+ACKパケットを受信する場合も同様に動作する。
このように、ネットワークアドレス変換装置200を通過したパケットのタイムスタンプ値及びシーケンス番号を解析できるようにすることで、ネットワークアドレス変換装置200においてRFC6191の動作及びRFC1323 PAWSの動作を実現する。ネットワークアドレス変換装置200は、タイムスタンプ値のみを解析してもよく、シーケンス番号のみを解析してもよく、これらの双方を解析してもよい。ただし、RFC6191の動作及びRFC1323 PAWSの動作を実現するためには、ネットワークアドレス変換装置200を通過するパケットのタイムスタンプ値及びシーケンス番号が単調増加する必要があるため、ネットワークアドレス変換装置200において、以下の3つの実施例のいずれかを実装する。これらの実施例は独立しており、ネットワークアドレス変換装置200は、これらの実施例のいずれか1つを実現すればよい。
第1実施例:送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値及びシーケンス番号がネットワークアドレス変換装置に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値及びシーケンス番号を変換する。また、変換後のタイムスタンプ値及びシーケンス番号をネットワークアドレス変換装置に保持する。更に、ネットワークアドレス変換装置は、タイムスタンプ値及びシーケンス番号の変換のためのセッション表を有する。
第2実施例:使用可能なポートに空きが存在するまで、セッションを割り当てた送信元端末とは異なる送信元端末からのSYNパケットを拒否する。このようにして、ネットワークアドレス変換装置に最初にアクセスした送信元端末からのタイムスタンプ値及びシーケンス番号のみを解析する。最初にアクセスした送信元端末の通信終了後に、別の送信元端末からのSYNパケットを受け付ける。
第3実施例:ネットワークアドレス変換装置の配下の送信元端末に使用可能なポートを割り当てる。ネットワークアドレス変換装置は、割り当てられたポートの範囲で、タイムスタンプ値及びシーケンス番号を解析し、送信元端末にセッションを割り当てる。
以下、各実施例について詳細に説明する。
<第1実施例:装置の構成>
図3に、本発明の第1実施例に係るネットワークアドレス変換装置220の概要図を示す。ネットワークアドレス変換装置220は、グローバルネットワーク送受信部221と、プライベートネットワーク送受信部223と、セッション割当部225と、アドレス変換部227と、セッション表229と、最大値保持部231とを有する。図3の各機能部は、図1の各機能部と対応しているため、以下では、異なる部分について説明する。
最大値保持部231は、ネットワークアドレス変換装置220を通過したパケットのタイムスタンプ値及びシーケンス番号の最大値を保持する。この最大値は、全てのセッションの最大値に相当する。
セッション割当部225は、SYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部231に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てる。上記のように、セッション割当部225は、グローバル側に使用可能なポートが存在しない状況でSYNパケットを受信した場合、SYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部231に保持されたタイムスタンプ及びシーケンス番号の最大値より大きいか否かを判断し、大きい場合、TIME_WAIT状態のセッションを解放して、SYNパケットを送信した送信元端末に対してそのセッションを割り当てる。
ネットワークアドレス変換装置220を通過するパケットのタイムスタンプ値及びシーケンス番号が単調増加する必要があるため、セッション割当部225は、送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値及びシーケンス番号が最大値保持部231に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値及びシーケンス番号を変換する。例えば、タイムスタンプ値及びシーケンス番号を1だけインクリメントする。タイムスタンプ値及びシーケンス番号が変換されたパケットがネットワークアドレス変換装置220を通過した場合、そのタイムスタンプ値及びシーケンス番号が最大値保持部231に保持される。
アドレス変換部227は、アドレス変換内容と共に、タイムスタンプ値及びシーケンス番号の変換内容をセッション表229に記憶する。更に、上り通信と下り通信との双方で、セッション表229に従ってアドレス/ポートを変換するすると共に、タイムスタンプ値及びシーケンス番号を変換する。すなわち、戻りパケットについては、セッション表229を参照し、変換前のタイムスタンプ値及びシーケンス番号に戻して送信元端末にパケットを送信する。変換前のタイムスタンプ値及びシーケンス番号に戻すために、例えば、パケットのアドレス及びポートと、セッション表229の変換後アドレス及び変換後ポートとが照合される。
セッション表229には、セッション毎に、送信元端末の変換前後のアドレスと、変換前後のタイムスタンプ値及びシーケンス番号が格納されており、例えば、送信元端末101又は102の変換前アドレス、変換前ポート、変換前タイムスタンプ値、変換前シーケンス番号、変換後アドレス、変換後ポート、変換後タイムスタンプ値、変換後シーケンス番号、通信先端末300の通信先アドレス、通信先ポート及びプロトコル種別が格納される。なお、RFC1323 PAWSの動作を実現するためのセッション毎のタイムスタンプ値及びシーケンス番号の最大値には、セッション表229の変換前タイムスタンプ値が用いられてもよい。
<第1実施例:装置の動作>
図4に、本発明の第1実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図を示す。図4において、タイムスタンプ値をTSで示す。
例えば、ネットワークアドレス変換装置220において、使用可能なポート数が50に制限されているものとする。更に、送信元端末101又は102がリモートホスト(通信先端末)300から情報を取得するために100のポートが必要であるものとする。このような前提で、送信元端末101がリモートホスト300と通信を実施し、ネットワークアドレス変換装置220の50ポートを使いつくしたとする。
ネットワークアドレス変換装置220は、セッション終了時にリモートホスト300からFIN+ACKパケットを受信すると(S121)、アドレス変換部227においてアドレスを変換し、送信元端末101にFIN+ACKパケットを送信する(S123)。ネットワークアドレス変換装置220は、FIN+ACKパケットに対して送信元端末101からACKパケットを受信すると(S125)、アドレス変換部227においてアドレスを変換し、リモートホスト300にACKパケットを送信する(S127)。このとき、ネットワークアドレス変換装置220は、ACKパケットのタイムスタンプ値(TS:500)を最大値保持部231に保持すると共に、セッション割当部225において、セッションをTIME_WAIT状態にする。
ネットワークアドレス変換装置220は、グローバル側に使用可能なポートが存在しない状況で送信元端末102から新たにSYNパケットを受信すると(S129)、セッション割当部225において、受信したSYNパケットのタイムスタンプ値(TS:100)が、最大値保持部231に保持されたタイムスタンプ値(TS:500)より大きくなるように、SYNパケットのタイムスタンプ値を変換する(TS:501)。変換前後のタイムスタンプ値(TS:100及びTS:501)は、セッション表229に格納される。その結果、受信したSYNパケットのタイムスタンプ値(TS:501)が最大値保持部231に保持されたタイムスタンプ値(TS:500)より大きくなるため、ネットワークアドレス変換装置200は、セッション割当部225において、TIME_WAIT状態のセッションを終了し、送信元端末102に新たなセッションを割り当てる。そして、ネットワークアドレス変換装置220は、アドレス変換部227においてアドレスを変換し、リモートホスト300にSYNパケットを送信する(S131)。このSYNパケットのタイムスタンプ値(SYN:501)は、最大値保持部231に保持される。
図4ではタイムスタンプ値のみが考慮されているが、シーケンス番号を考慮した場合も同様に動作する。また、ネットワークアドレス変換装置220はリモートホスト300からFIN+ACKパケットを受信しているが、送信元端末101からFIN+ACKパケットを受信する場合も同様に動作する。
図5に、本発明の第1実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャートを示す。
まず、ネットワークアドレス変換装置220配下の端末が通信を実施した場合(S221)、ネットワークアドレス変換装置220のグローバル側に使用可能なポートが使いつくされたかが判断される(S223)。使用可能なポートが存在する場合、SYNパケットを送信した端末に新たなセッションが割り当てられる(S225)。
使用可能なポートが存在しない場合、ネットワークアドレス変換装置220配下に複数の端末が存在するかが判断される(S227)。複数の端末が存在しない場合、タイムスタンプ値及びシーケンス番号は単調増加すると考えられるため、同じ端末のTIME_WAIT状態のセッションを終了し、同じ端末に新たなセッションを割り当てる(S229)。複数の端末が存在する場合、図4を参照して説明した通り、タイムスタンプ値及びシーケンス番号を変換し(S231)、TIME_WAIT状態のセッションを終了し、新たなセッションを割り当てる(S233)。ただし、特定のセッションについてタイムスタンプ値及びシーケンス番号が減少している場合、旧セッションで発生した古いパケットが新セッションに混入する可能性があるため、パケットを破棄する。
<第2実施例:装置の構成>
図6に、本発明の第2実施例に係るネットワークアドレス変換装置240の概要図を示す。ネットワークアドレス変換装置240は、グローバルネットワーク送受信部241と、プライベートネットワーク送受信部243と、セッション割当部245と、アドレス変換部247と、セッション表249と、最大値保持部251とを有する。図6の各機能部は、図1の各機能部と対応しているため、以下では、異なる部分について説明する。
最大値保持部251は、送信元端末毎に、ネットワークアドレス変換装置240を通過したパケットのタイムスタンプ値及びシーケンス番号の最大値を保持する。
セッション割当部245は、送信元端末からSYNパケットを受信した場合、使用可能なポートに空きが存在するまで、セッションを割り当てた送信元端末とは異なる送信元端末からのSYNパケットを拒否する。このように、ネットワークアドレス変換装置240は、最初にアクセスした送信元端末からのタイムスタンプ値及びシーケンス番号のみを解析する。例えば、アクセスしている送信元端末は、送信元のアドレス(例えば、IP(Internet Protocol)アドレス又はMAC(Medium Access Control)アドレス)によって識別できる。セッション割当部245は、最初にアクセスした送信元端末の通信終了後に、別の送信元端末からのSYNパケットを受け付ける。
具体的には、セッション割当部245は、セッションを割り当てた送信元端末に着目して、送信元端末からのSYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部251に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てる。上記のように、セッション割当部245は、グローバル側に使用可能なポートが存在しない状況でセッションを割り当てた送信元端末からSYNパケットを受信した場合、SYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部251に保持されたタイムスタンプ値及びシーケンス番号の最大値より大きいか否かを判断し、大きい場合、TIME_WAIT状態のセッションを解放して、SYNパケットを送信した同じ送信元端末に対してそのセッションを割り当てる。
セッション割当部245は、セッションを割り当てた送信元端末からのパケット受信が終了し、使用可能なポートに空きがあることを判断すると、ネットワークアドレス変換装置240は、新たなセッションを受け付けることができる。この状態で異なる送信元端末からSYNパケットを受信した場合、セッション割当部245は、異なる送信元端末にセッションを割り当てる。その後、セッション割当部245は、セッションを割り当てた異なる送信元端末に着目して、SYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部251に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てる。
<第2実施例:装置の動作>
図7に、本発明の第2実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図を示す。図7において、タイムスタンプ値をTSで示す。
例えば、ネットワークアドレス変換装置240において、使用可能なポート数が50に制限されているものとする。更に、送信元端末101又は102がリモートホスト(通信先端末)300から情報を取得するために100のポートが必要であるものとする。このような前提で、送信元端末101がリモートホスト300と通信を実施し、ネットワークアドレス変換装置240の50ポートを使いつくしたとする。
ネットワークアドレス変換装置240は、セッション終了時にリモートホスト300からFIN+ACKパケットを受信すると(S141)、アドレス変換部247においてアドレスを変換し、送信元端末101にFIN+ACKパケットを送信する(S143)。ネットワークアドレス変換装置240は、FIN+ACKパケットに対して送信元端末101からACKパケットを受信すると(S145)、アドレス変換部247においてアドレスを変換し、リモートホスト300にACKパケットを送信する(S147)。このとき、ネットワークアドレス変換装置240は、ACKパケットのタイムスタンプ値(TS:500)を最大値保持部251に保持すると共に、セッション割当部245において、セッションをTIME_WAIT状態にする。
ネットワークアドレス変換装置240は、グローバル側に使用可能なポートが存在しない状況で送信元端末101から新たにSYNパケットを受信すると(S149)、同じ送信元端末101からのSYNパケットであるため、セッション割当部245において、TIME_WAIT状態のセッションを終了し、送信元端末101に新たなセッションを割り当てる。そして、ネットワークアドレス変換装置240は、SYNパケットのタイムスタンプ値(TS:600)を最大値保持部251に保持すると共に、アドレス変換部247においてアドレスを変換し、リモートホスト300にSYNパケットを送信する(S151)。
一方、ネットワークアドレス変換装置240は、グローバル側に使用可能なポートが存在しない状況で異なる送信元端末102から新たにSYNパケットを受信すると(S153)、セッションを割り当てた送信元端末101とは異なる送信元端末102からのSYNパケットであるため、SYNパケットを拒否する。送信元端末102からのSYNパケットは、送信元端末101の通信が終了し、使用可能なポートに空きが存在する場合に受け付けられる。
図7ではタイムスタンプ値のみが考慮されているが、シーケンス番号を考慮した場合も同様に動作する。また、ネットワークアドレス変換装置240はリモートホスト300からFIN+ACKパケットを受信しているが、送信元端末101からFIN+ACKパケットを受信する場合も同様に動作する。
図8に、本発明の第2実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャートを示す。
まず、ネットワークアドレス変換装置240配下の端末が通信を実施した場合(S241)、ネットワークアドレス変換装置240のグローバル側に使用可能なポートが使いつくされたかが判断される(S243)。使用可能なポートが存在する場合、SYNパケットを送信した端末に新たなセッションが割り当てられる(S245)。
使用可能なポートが存在しない場合、ネットワークアドレス変換装置240配下にアクセスしている端末であるかが判断される(S247)。異なる端末からSYNパケットが送信された場合、セッションは割り当てられない(S249)。同じ端末からSYNパケットが送信された場合、同じ端末のTIME_WAIT状態のセッションを終了し、同じ端末に新たなセッションを割り当てる(S251)。ただし、特定のセッションについてタイムスタンプ値及びシーケンス番号が減少している場合、旧セッションで発生した古いパケットが新セッションに混入する可能性があるため、パケットを破棄する。
<第3実施例:装置の構成>
図9に、本発明の第3実施例に係るネットワークアドレス変換装置260の概要図を示す。ネットワークアドレス変換装置260は、グローバルネットワーク送受信部261と、プライベートネットワーク送受信部263と、セッション割当部265と、アドレス変換部267と、セッション表269と、最大値保持部271と、ポート割当部273とを有する。図9の各機能部は、図1の各機能部と対応しているため、以下では、異なる部分について説明する。
最大値保持部271は、送信元端末毎に、ネットワークアドレス変換装置260を通過したパケットのタイムスタンプ値及びシーケンス番号の最大値を保持する。
ポート割当部273は、送信元端末に使用可能なポートを割り当てる。ポート割当部273は、例えば、送信元端末に均等にポートを割り当てるルール、トラヒック量に応じてポートを割り当てるルール、優先度を使用してポートを割り当てるルール等の割当ルールを生成し、割当ルールに従ってポートを割り当てる。ポートは、手動で割り当てられてもよい。
セッション割当部265は、ポート割当部273で割り当てられた範囲で、送信元端末にセッションを割り当てる。具体的には、セッション割当部265は、送信元端末からのSYNパケットのタイムスタンプ値又はシーケンス番号が最大値保持部271に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、ポート割当部273で割り当てられたポートの範囲で、送信元端末にセッションを割り当てる。上記のように、セッション割当部265は、送信元端末に割り当てられたポートの範囲内に使用可能なポートが存在しない状況でSYNパケットを受信した場合、SYNパケットのタイムスタンプ値及びシーケンス番号が最大値保持部271に保持されたタイムスタンプ値及びシーケンス番号の最大値より大きいか否かを判断し、大きい場合、同じ送信元端末のTIME_WAIT状態のセッションを解放して、同じ送信元端末に対してそのセッションを割り当てる。
<第3実施例:装置の動作>
図10に、本発明の第3実施例に係る通信ネットワークにおけるセッション割当方法のシーケンス図を示す。図10において、タイムスタンプ値をTSで示す。
例えば、ネットワークアドレス変換装置260において、使用可能なポート数が50に制限されているものとする。更に、送信元端末101又は102がリモートホスト(通信先端末)300から情報を取得するために100のポートが必要であるものとする。
ネットワークアドレス変換装置260は、端末101と端末102とが配下に存在することを手動設定又はUPnP(Universal Plug and Play)を用いて認識する。ネットワークアドレス変換装置260は、ポート割当部273において、例えば端末101にポート100〜119を割り当て、端末102にポート120〜150を割り当てる。
ネットワークアドレス変換装置260は、セッション終了時にリモートホスト300からFIN+ACKパケットを受信すると(S161)、アドレス変換部267においてアドレスを変換し、送信元端末101にFIN+ACKパケットを送信する(S163)。ネットワークアドレス変換装置260は、FIN+ACKパケットに対して送信元端末101からACKパケットを受信すると(S165)、アドレス変換部267においてアドレスを変換し、リモートホスト300にACKパケットを送信する(S167)。このとき、ネットワークアドレス変換装置260は、ACKパケットのタイムスタンプ値(TS:500)を最大値保持部271に保持すると共に、セッション割当部265において、セッションをTIME_WAIT状態にする。
ネットワークアドレス変換装置260は、送信元端末101に割り当てられたポートの範囲内に使用可能なポートが存在しない状況で送信元端末101から新たにSYNパケットを受信すると(S169)、セッション割当部245において、送信元端末101に割り当てられたポートの範囲内でTIME_WAIT状態のセッションを終了し、送信元端末101に新たなセッションを割り当てる。そして、ネットワークアドレス変換装置260は、SYNパケットのタイムスタンプ値(TS:600)を最大値保持部271に保持すると共に、アドレス変換部267においてアドレスを変換し、リモートホスト300にSYNパケットを送信する(S171)。
一方、ネットワークアドレス変換装置260は、異なる送信元端末102から新たにSYNパケットを受信すると(S173)、異なる送信元端末102に割り当てられたポートの範囲内で、上記の通り、セッションを割り当てる(S173、S175)。
図10ではタイムスタンプ値のみが考慮されているが、シーケンス番号を考慮した場合も同様に動作する。また、ネットワークアドレス変換装置260はリモートホスト300からFIN+ACKパケットを受信しているが、送信元端末101からFIN+ACKパケットを受信する場合も同様に動作する。
図11に、本発明の第3実施例に係るネットワークアドレス変換装置におけるセッション割当方法のフローチャートを示す。
まず、ネットワークアドレス変換装置240配下の端末が通信を実施した場合(S261)、端末に割り当てられたポートの範囲内で使用可能なポートが使いつくされたかが判断される(S263)。使用可能なポートが存在する場合、端末に割り当てられたポートの範囲内でSYNパケットを送信した端末に新たなセッションが割り当てられる(S265)。
端末に割り当てられたポートの範囲内で使用可能なポートが存在しない場合、同じ端末のTIME_WAIT状態のセッションを終了し、端末に割り当てられたポートの範囲内で端末に新たなセッションを割り当てる(S267)。ただし、特定のセッションについてタイムスタンプ値及びシーケンス番号が減少している場合、旧セッションで発生した古いパケットが新セッションに混入する可能性があるため、パケットを破棄する。
上記の実施例では、タイムスタンプ値及びシーケンス番号を用いて説明しているが、本発明は、タイムスタンプ値及びシーケンス番号の一方が用いられる場合にも適用可能である。
説明の便宜上、本発明の実施例に係る装置は機能的なブロック図を用いて説明しているが、本発明の実施例に係る装置は、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。
説明の便宜上、本発明の実施例に係る方法は処理の流れを示すシーケンス図を用いて説明しているが、本発明の方法は、実施例に示す順序と異なる順序で実施されてもよい。
<実施例の効果>
本発明の実施例によれば、ネットワークアドレス変換装置のように複数の端末を収容する装置において、効率的にセッションを割り当てることが可能になる。特に、ネットワークアドレス変換装置は複数の端末を収容し、各々の端末がタイムスタンプ値及びシーケンス番号を用いることから、ネットワークアドレス変換装置においてタイムスタンプ値及びシーケンス番号を用いて効率的にセッションを割り当てることができる。
例えば、グローバルアドレスを共有するため使用可能なセッション数が制限され、通信速度や通信内容が制限されるネットワークにおいても、ネットワークアドレス変換装置においてRFC6191の動作を実現することにより、セッションの効率的な再利用が可能となる。また、通信の制約を軽減することができる。更に、旧セッションで発生した古いパケットが新セッションに混入する危険性についても、ネットワークアドレス変換装置においてRFC1323 PAWSの動作を実現することにより、対応可能となる。
本発明は、アドレス共有技術を利用するISP(Internet Service Provider)や企業へのネットワーク環境へ適用できる。
以上、効率的にセッションを割り当てるためのセッション割当装置及びセッション割当方法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
101 送信元端末
102 送信元端末
200 ネットワークアドレス変換装置
201 グローバルネットワーク送受信部
203 プライベートネットワーク送受信部
205 セッション割当部
207 アドレス変換部
209 セッション表
300 通信先端末

Claims (4)

  1. 送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
    当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
    接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当部と、
    を有し、
    前記セッション割当部は、送信元端末からパケットを受信した場合、受信したパケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された最大値より大きい値となるように、受信したパケットのタイムスタンプ値又はシーケンス番号を変換するセッション割当装置。
  2. セッション毎に、送信元端末の変換前後のアドレスと、送信元端末の変換前後のタイムスタンプ値又はシーケンス番号とを格納するセッション記憶部と、
    セッション毎に、送信元端末から受信したパケットのタイムスタンプ値又はシーケンス番号と、前記セッション記憶部に格納された変換前のタイムスタンプ値又はシーケンス番号とを比較し、送信元端末から受信したパケットのタイムスタンプ値又はシーケンス番号が小さい場合、送信元端末から受信したパケットを破棄し、大きい場合、前記セッション記憶部を参照して、送信元端末のアドレスを変換すると共に、送信元端末のタイムスタンプ値又はシーケンス番号を変換するアドレス変換部と、
    を更に有する、請求項1に記載のセッション割当装置。
  3. 送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
    送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
    送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、送信元端末にセッションを割り当てるセッション割当部と、
    を有し、
    前記セッション割当部は、使用可能なポートに空きが存在するまで、セッションを割り当てた送信元端末とは異なる送信元端末からの接続要求パケットを拒否するセッション割当装置。
  4. 送信元端末からの接続要求パケットに対して送信元端末にセッションを割り当てるセッション割当装置であって、
    送信元端末に使用可能なポートを割り当てるポート割当部と、
    送信元端末毎に、当該セッション割当装置を通過したパケットのタイムスタンプ値又はシーケンス番号の最大値を保持する最大値保持部と、
    送信元端末からの接続要求パケットのタイムスタンプ値又はシーケンス番号が前記最大値保持部に保持された当該送信元端末に関する最大値より大きいか否かに基づいて、前記ポート割当部で割り当てられたポートの範囲で、送信元端末にセッションを割り当てるセッション割当部と、
    を有するセッション割当装置。
JP2012190573A 2012-08-30 2012-08-30 セッション割当装置 Active JP5350524B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012190573A JP5350524B1 (ja) 2012-08-30 2012-08-30 セッション割当装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012190573A JP5350524B1 (ja) 2012-08-30 2012-08-30 セッション割当装置

Publications (2)

Publication Number Publication Date
JP5350524B1 true JP5350524B1 (ja) 2013-11-27
JP2014049901A JP2014049901A (ja) 2014-03-17

Family

ID=49764946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012190573A Active JP5350524B1 (ja) 2012-08-30 2012-08-30 セッション割当装置

Country Status (1)

Country Link
JP (1) JP5350524B1 (ja)

Also Published As

Publication number Publication date
JP2014049901A (ja) 2014-03-17

Similar Documents

Publication Publication Date Title
US9160707B2 (en) Differentiated handling of network traffic using network address translation
US8228848B2 (en) Method and apparatus for facilitating push communication across a network boundary
JP5753172B2 (ja) ネットワークアドレス変換のための管理方法および管理デバイス
WO2011147353A1 (zh) 一种报文发送方法及装置
US7522617B2 (en) Inter-node connection method and apparatus
JP2010050547A (ja) アドレス変換装置、方法及びプログラム、名前解決システム、方法及びプログラム、並びにノード
JP2010103709A (ja) パケット転送装置、パケット転送方法、パケット転送プログラム及び通信装置
WO2011157126A2 (zh) 一种报文转发方法和网间路由装置
US9602333B2 (en) DNS server, gateways and methods for managing an identifier of a port range in the transmission of data
JP2017022693A (ja) インターネットワークアドレスを割り当てる装置および方法
CN111711705B (zh) 基于代理节点作双向nat实现网络连接的方法和装置
JP4712481B2 (ja) 通信方法および装置
Chauhan et al. A survey on next generation Internet Protocol: IPv6
KR20120055694A (ko) 사용자 액세스 방법, 시스템, 및 액세스 서버, 액세스 장치
US11595304B2 (en) Communication device, communication control system, communication control method, and communication control program
CN110557462B (zh) 一种基于公共代理的分布式接入系统
JP6243859B2 (ja) フロー制御システムおよびフロー制御方法
US20140189793A1 (en) Virtual file system for interworking between content server and information-centric network server and operating method thereof
JP5350524B1 (ja) セッション割当装置
US9954767B2 (en) Internet control message protocol for completing a secondary protocol transaction
JP5921991B2 (ja) 中継装置及びその運用方法
EP3029913A1 (en) Method for processing raw ip packet, and corresponding apparatus
US20120047271A1 (en) Network address translation device and method of passing data packets through the network address translation device
EP3264724B1 (en) Method and apparatus for sending, transferring and acquiring capability
CN111510511A (zh) 数据上报网络的创建方法、数据上报方法及相关设备

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 5350524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350