(57)【特許請求の範囲】
【請求項１】
１以上のコンピューティングデバイスにより実施される方法であって、
ユーザＩＰアドレスとしてインターネットプロトコル（ＩＰ）アドレスを用いてサーバとの伝送制御プロトコル（ＴＣＰ）接続を確立するターミナルと前記サーバとの間の第一ネットワーク遅延を判断し、
前記ユーザＩＰアドレスの１ホップ手前にあるルータと前記サーバとの間の第二ネットワーク遅延を判断し、
前記第一ネットワーク遅延と前記第二ネットワーク遅延の比が閾値より大きいかどうかを判断し、
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値より大きいかどうかの前記判断の結果に基づき、前記ユーザＩＰアドレスをプロキシＩＰアドレスまたは非プロキシＩＰアドレスとして識別することを含み、
前記第二ネットワーク遅延の判断は、前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する時間と、前記ＩＣＭＰエラーパケットに対応する検出パケットを送信する時間との時間差を、前記第二ネットワーク遅延として判断することを含む、前記方法。
【請求項２】
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値より大きいとの判断に応じ、前記ユーザＩＰアドレスを前記プロキシＩＰアドレスとして識別することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値以下であるとの判断に応じ、前記ユーザＩＰアドレスを前記非プロキシＩＰアドレスとして識別することをさらに含む、請求項１に記載の方法。
【請求項４】
前記第一ネットワーク遅延の判断が、ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する時間とＡＣＫパケットを前記ターミナルから受信する時間の時間差を前記第一ネットワーク遅延として判断することを含む、請求項１に記載の方法。
【請求項５】
前記第一ネットワーク遅延の判断が、
ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する第一時間点を記録し、
ＡＣＫパケットを前記ターミナルから受信する第二時間点を記録し、
前記第二時間点と前記第一時間点の時間差を前記第一ネットワーク遅延として判断することを含む、請求項１に記載の方法。
【請求項６】
一連の検出パケットは、インクリメンタル型生存期間（ＴＴＬ）を有し、前記一連の検出パケットの対象アドレスは、前記ユーザＩＰアドレスである、請求項１に記載の方法。
【請求項７】
前記第二ネットワーク遅延の判断が、
インクリメンタル型生存期間（ＴＴＬ）を有し、対象アドレスが前記ユーザＩＰアドレスである一連の検出パケット内の各検出パケットを送信する時間を記録し、
前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する第四時間点を記録し、
前記ＩＣＭＰエラーパケットに対応する検出パケットを送信する前記時間を第三時間点として定義し、
前記第四時間点と前記第三時間点の時間差を前記第二ネットワーク遅延として判断することを含む、請求項１に記載の方法。
【請求項８】
プロキシＩＰアドレスを識別する装置であって、
１以上のプロセッサ、
メモリ、
ユーザＩＰアドレスとしてインターネットプロトコル（ＩＰ）アドレスを使いサーバとの伝送制御プロトコル（ＴＣＰ）接続を確立するターミナルと前記サーバとの間の第一ネットワーク遅延を判断する前記１以上のプロセッサにより実行可能で、前記メモリに記録される第一判断モジュール、
前記ユーザＩＰアドレスの１ホップ手前にあるルータと前記サーバとの間の第二ネットワーク遅延を判断する前記１以上のプロセッサにより実行可能で、前記メモリに記録される第二判断モジュール、
前記第一ネットワーク遅延と前記第二ネットワーク遅延の比が閾値より大きいかどうかを判断する前記１以上のプロセッサにより実行可能で、前記メモリに記録される決定モジュール、及び
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値より大きいかどうかの前記判断の結果に基づき、前記ユーザＩＰアドレスをプロキシＩＰアドレスまたは非プロキシＩＰアドレスとして識別する前記１以上のプロセッサにより実行可能で、前記メモリに記録される識別モジュールを備え、
前記第二判断モジュールは、前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する時間と、一連の検出パケット内の前記ＩＣＭＰエラーパケットに対応する検出パケットを送信する時間との時間差を、前記サーバと、前記ユーザＩＰアドレスの１ホップ手前にある前記ルータとの間の前記第二ネットワーク遅延として判断する、前記装置。
【請求項９】
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値より大きいとの判断に応じ、前記識別モジュールが前記ユーザＩＰアドレスを前記プロキシＩＰアドレスとして識別する、請求項８に記載の装置。
【請求項１０】
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値以下であるとの判断に応じ、前記識別モジュールが前記ユーザＩＰアドレスを前記非プロキシＩＰアドレスとして識別する、請求項８に記載の装置。
【請求項１１】
前記第一判断モジュールがさらに、ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する時間とＡＣＫパケットを前記ターミナルから受信する時間の時間差を前記第一ネットワーク遅延として判断する、請求項８に記載の装置。
【請求項１２】
前記第一判断モジュールがさらに、
ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する第一時間点を記録する第一記録サブモジュール、
ＡＣＫパケットを前記ターミナルから受信する第二時間点を記録する第二記録サブモジュール、及び
前記第二時間点と前記第一時間点の時間差を前記第一ネットワーク遅延として判断する第一判断サブモジュールを備える、請求項８に記載の装置。
【請求項１３】
前記一連の検出パケットがインクリメンタル型生存期間（ＴＴＬ）を有し、前記一連の検出パケットの対象アドレスが前記ユーザＩＰアドレスである、請求項８に記載の装置。
【請求項１４】
前記第二判断モジュールがさらに、
一連の検出パケット内の各検出パケットを送信する時間を記録する第三記録サブモジュール、
前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する第四時間点を記録する第四記録サブモジュール、
前記一連の検出パケット内の前記ＩＣＭＰエラーパケットに対応する前記検出パケットを送信する前記時間を第三時間点として定義する第一定義サブモジュール、及び、
前記第四時間点と前記第三時間点の時間差を前記第二ネットワーク遅延として判断する第二判断サブモジュールを備える、請求項８に記載の装置。
【請求項１５】
１以上のプロセッサにより実行される際、前記１以上のプロセッサに動作を実施させる実行可能な命令を記録する１以上のコンピュータ読取可能媒体であって、前記動作は、
ユーザＩＰアドレスとしてインターネットプロトコル（ＩＰ）アドレスを使いサーバとの伝送制御プロトコル（ＴＣＰ）接続を確立するターミナルと前記サーバとの間の第一ネットワーク遅延を判断し、
前記ユーザＩＰアドレスの１ホップ手前にあるルータと前記サーバとの間の第二ネットワーク遅延を判断し、
前記第一ネットワーク遅延と前記第二ネットワーク遅延の比が閾値より大きいかどうかを判断し、
前記第一ネットワーク遅延と前記第二ネットワーク遅延の前記比が前記閾値より大きいとの判断に応じ、前記ユーザＩＰアドレスをプロキシＩＰアドレスとして識別することを含み、
前記第二ネットワーク遅延の判断は、前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する時間と、前記ＩＣＭＰエラーパケットに対応する検出パケットを送信する時間との時間差を、前記第二ネットワーク遅延として判断することを含む、前記１以上のコンピュータ読取可能媒体。
【請求項１６】
前記第一ネットワーク遅延の判断が、ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する時間とＡＣＫパケットを前記ターミナルから受信する時間の時間差を前記第一ネットワーク遅延として判断することを含む、請求項１５に記載の１以上のコンピュータ読取可能媒体。
【請求項１７】
前記第一ネットワーク遅延の判断が、
ＳＹＮ−ＡＣＫパケットを前記ターミナルに送信する第一時間点を記録し、
ＡＣＫパケットを前記ターミナルから受信する第二時間点を記録し、
前記第二時間点と前記第一時間点の時間差を前記第一ネットワーク遅延として判断することを含む、請求項１５に記載の１以上のコンピュータ読取可能媒体。
【請求項１８】
一連の検出パケットは、インクリメンタル型生存期間（ＴＴＬ）を有し、前記一連の検出パケットの対象アドレスは、前記ユーザＩＰアドレスである、請求項１５に記載の１以上のコンピュータ読取可能媒体。
【請求項１９】
前記第二ネットワーク遅延の判断が、
インクリメンタル型生存期間（ＴＴＬ）を有し、対象アドレスが前記ユーザＩＰアドレスである一連の検出パケット内の各検出パケットを送信する時間を記録し、
前記ユーザＩＰアドレスの１ホップ手前にある前記ルータからインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを受信する第四時間点を記録し、
前記ＩＣＭＰエラーパケットに対応する検出パケットを送信する前記時間を第三時間点として定義し、
前記第四時間点と前記第三時間点の時間差を前記第二ネットワーク遅延として判断することを含む、請求項１５に記載の１以上のコンピュータ読取可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年１月８日に出願された「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＩＤＥＮＴＩＦＹＩＮＧ  ＰＲＯＸＹ  ＩＰ  ＡＤＤＲＥＳＳ（プロキシＩＰアドレスの識別方法及び装置）」と題するＣｈｉｎｅｓｅ  Ｐａｔｅｎｔ  Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．２０１４１０００８８４４．０の外国の優先権を主張し、その全体が参照により本開示に組み込まれる。
【０００２】
本開示は、インターネット技術分野に関し、特に、プロキシＩＰアドレスの識別方法及び装置に関する。
【背景技術】
【０００３】
近年、インターネット上で広く普及している、ＩＰ（すなわちインターネットプロトコル）アドレス及び地理的位置を相互にクエリするアプリケーションすなわち技術が存在する。当該技術は、インターネットの様々な分野で広く利用され、特にリスク制御の分野で強力なリスクファクタとして使用される。つまり、リスク制御分野の解決法で相互クエリ技術により使われる原理では、ユーザが短期間に別の地理的位置でログインしたかを判断し、そうであればリスクが高い操作であると捉えることを含む。この判断は、ユーザのＩＰが真のＩＰである場合にのみ有効である。しかし、プロキシサーバ技術は、この適用の前提に沿わない。つまり、北京のユーザが杭州でプロキシサーバを通してインターネットにアクセスすることもあり、サーバが見るユーザＩＰアドレスは杭州のプロキシサーバのアドレスである。本開示では、主にこういった場面での識別を行い、ユーザがプロキシサーバを使っているかどうかを識別する。つまり、ＩＰアドレスがある地理的位置に置かれたターミナルの真のＩＰアドレスであるか、あるいは、例えば、ＶＰＮ（すなわち、仮想専用ネットワーク）プロキシサーバのＩＰアドレスといったプロキシサーバのＩＰアドレスであるか、について判断する。
【０００４】
この課題は、インターネット分野において常に議論されてきており、当該分野ではこの課題に対する解決法が既にいくつかある。しかし、そういった解決法は、主に次の二点に注力している。第一点は、インターネットにおいてクローラによる抽出に基づくか、プロキシサーバのアクティヴスキャンに基づくプロキシサーバリストの収集にあり、第二点は、既知のプロキシポートがオープンであるかどうかを判断するためにインターネット上で実行中のホスト全てを逆スキャンする逆検出にある。第一の思想での解決法では、クローラによりインターネット上のプロキシサーバを抽出することでプロキシサーバリストを収集する。しかし、インターネット上ではそれほど多くのプロキシサーバが公開されておらず、ハッカーにコントロールされ悪用されるために、そういった情報は極めて不正確である。第二の思想での解決法では、いくつかの一般的なプロキシポートがオープンであるかどうかを判断するために全てのＩＰを逆スキャンするという原理での逆検出を基準にしている。しかし、インターネット上のアクティブホストは無数にあり、プロキシサーバのサービスポートは固定でないため、この解決法ではスキャンサイクルが非常に長くなってしまう。
【０００５】
そこで、ＩＰアドレスがプロキシＩＰアドレスであるかどうかを迅速かつ正確に識別できる方法が今や期待されている。
【発明の概要】
【０００６】
本概要では選択して簡略化した概念を紹介し、下記の「発明を実施するための形態」で詳述する。本概要は、請求する主題の主要特徴または本質的特徴を全て特定しようとするものではなく、また請求する主題の範囲を決定するのを助けるものとして単独で用いられるものでもない。用語「技術」は、本開示を通して文脈に従い、例えばデバイス、システム、方法、及び／または、コンピュータ読取可能命令を意味することがある。
【０００７】
本開示の主要目的は、現行技術における上記の課題を解決するためにＩＰアドレスの識別方法を提供することである。
【０００８】
本開示では、プロキシＩＰアドレスの識別方法を提供する。当該識別方法は、ユーザＩＰアドレスとしてＩＰアドレスを使いサーバとのＴＣＰ（すなわち、伝送制御プロトコル）接続を確立するターミナルとサーバとの間の第一ネットワーク遅延を判断し、ＩＰアドレスの１ホップ手前にあるルータとサーバとの間の第二ネットワーク遅延を判断し、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きいかどうかを判断し、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、ＩＰアドレスをプロキシＩＰアドレスとして識別することを含む。
【０００９】
本開示の別の態様では、プロキシＩＰアドレスの識別装置を提供する。当該識別装置は、ユーザＩＰアドレスとしてＩＰアドレスを使いサーバとのＴＣＰ接続を確立するターミナルとサーバとの間の第一ネットワーク遅延の判断に使用する第一判断モジュール、ＩＰアドレスの１ホップ手前にあるルータとサーバとの間の第二ネットワーク遅延の判断に使用する第二判断モジュール、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きいかどうかの判断に使用する決定モジュール、及び、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、ＩＰアドレスをプロキシＩＰアドレスとする識別に使用する識別モジュールを備える。
【００１０】
本開示の技術的解決法により、現行技術と比較すれば、第一ネットワーク遅延（ユーザＩＰアドレスとしてＩＰアドレスを使いサーバとのＴＣＰ接続を確立するターミナルとサーバとの間における）と第二ネットワーク遅延（ＩＰアドレスの１ホップ手前にあるルータとサーバとの間における）の比が閾値より大きいと判断することで、ＩＰアドレスをプロキシＩＰアドレスとして識別するものであり、迅速かつ正確にプロキシＩＰアドレスを識別できる。
【図面の簡単な説明】
【００１１】
本開示で記載する添付図を、本開示の理解が深まるよう使用し本開示の一部とする。例示的な実施形態及び実施形態の記述は、本開示を説明するためのものであり、本開示を限定するものとして解釈されるべきではない。添付図は以下の通りである。
【図１】本開示の一つの実施形態によるプロキシＩＰアドレスの識別方法を示すフローチャートである。
【図２】本開示の一つの実施形態によるプロキシＩＰアドレスの識別方法において、第一ネットワーク遅延を判断するフローチャートである。
【図３】本開示の一つの実施形態によるプロキシＩＰアドレスの識別方法において、第二ネットワーク遅延を判断するフローチャートである。
【図４Ａ】本開示の一つの実施形態による、ネットワークを介してサーバに直接接続するターミナルを示す概略図である。
【図４Ｂ】本開示の一つの実施形態による、プロキシを介してサーバに間接的に接続するターミナルを示す概略図である。
【図５】本開示の一つの実施形態による、プロキシＩＰアドレスの識別装置を示す構造図である。
【図６】図５に示した装置をさらに詳しく示す構造図である。
【発明を実施するための形態】
【００１２】
本開示の着想では主に、ユーザＩＰアドレスとしてＩＰアドレスを使いサーバとのＴＣＰ接続を確立するターミナルとサーバとの間の第一ネットワーク遅延を判断し、ＩＰアドレスの１ホップ手前にあるルータとサーバとの間の第二ネットワーク遅延を判断し、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きいかどうかを判断する。第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、ＩＰアドレスはプロキシＩＰアドレスとして識別される。
【００１３】
本開示の目的、技術的解決法及び優位性を明確にするため、本開示の例示的な実施形態及び対応する添付図面を用いて明確かつ総合的に、本開示の技術的解決法を説明する。説明する実施形態は、本開示の実施形態の単に一部であり全てを表すものではないことは明らかである。本開示の実施形態に基づき、当業者であれば工夫せずとも導き出せるその他の実施形態は全て本開示の保護の範囲に入るものである。
【００１４】
本開示の一つの実施形態による、プロキシＩＰアドレスの識別方法を提供する。
【００１５】
図１を参照して、図１は、本開示の一つの実施形態におけるプロキシＩＰアドレスの識別方法を示すフローチャートである。図１に示すように、ブロックＳ１０１において、ＩＰアドレスをユーザＩＰアドレスとして用いてサーバとのＴＣＰ接続を確立するターミナルとサーバとの間の第一ネットワーク遅延が判断される。
【００１６】
一つの実施形態において、ＩＰアドレスがプロキシＩＰアドレスであるかを識別するためには、まず、ＩＰアドレスをターミナルのユーザＩＰアドレスとして用いてサーバとのＴＣＰ接続を確立しようとする真のターミナルとサーバとの間の第一ネットワーク遅延を求める必要がある。
【００１７】
図２を参照して、第一ネットワーク遅延の求め方の実施例を示すフローチャートを以下に詳述する。
【００１８】
第一ネットワーク遅延が意味するものをより明確に理解するために、まず、ＴＣＰ接続を確立するためにターミナルとサーバとの間で実行されるスリーウェイハンドシェイクのプロセスを紹介する。スリーウェイハンドシェイクは、ＴＣＰ接続を確立する際クライアントとサーバとの間で合計３パケットの送信が必要であるというものである。スリーウェイハンドシェイクの目的は、サーバの指定ポートに接続しＴＣＰ接続を確立することである。第一ハンドシェイクにおいて、ターミナルはＳＹＮ（同期シーケンス番号）フラグを含んだＴＣＰパケットをサーバに送信する。これがスリーウェイハンドシェイクプロセスにおける第一パケットであり、本開示ではＳＹＮパケットと呼ぶ。第二ハンドシェイクにおいて、サーバ側はターミナルに応答し、ＳＹＮ−ＡＣＫパケットをターミナルに送信する。これがスリーウェイハンドシェイクのプロセスにおける第二パケットである。このパケットは、ＡＣＫフラグ及びＳＹＮフラグを同時に含んでおり、それによってクライアントのＳＹＮパケットに対する応答を示し、クライアントがデータ通信を実行する準備ができているかを調べるためにクライアントのＳＹＮをマークするものである。第三ハンドシェイクにおいて、ターミナルは、応答してＡＣＫパケット（すなわち、スリーウェイハンドシェイクの確認パケット）をサーバに送信する必要がある。これが第三パケットであり、ターミナルがデータ通信を実行する準備ができていることを示している。このスリーウェイハンドシェイクによって、ＴＣＰ接続が確立される。本開示では、サーバによるＳＹＮ−ＡＣＫパケットの送信とターミナルから返されるＡＣＫパケットの受信との間の第一ネットワーク遅延を求めるために、ターミナルとサーバとの間でＴＣＰ接続を確立するスリーウェイハンドシェイクプロセスを利用する。第一ネットワーク遅延の求め方を以下に詳述する。
【００１９】
サーバはＩＰアドレスをユーザＩＰアドレスとして使用するターミナルからＳＹＮパケットを受信し、ターミナルはＴＣＰ接続の確立を要求する。サーバは、ＳＹＮパケットを受信した後、ターミナルにＳＹＮ−ＡＣＫパケットを送信する。図２に示すように、ブロックＳ２０１において、サーバはしたがってＳＹＮ−ＡＣＫパケットをターミナルに送信した時間を記録する。この時間を、例えば、第一時間点と定義してもよい。
【００２０】
その後、サーバはＡＣＫパケットをターミナルから受信する。ブロックＳ２０２において、サーバはしたがってＡＣＫパケットをターミナルから受信した時間を記録する。この時間を、例えば、第二時間点と定義してもよい。
【００２１】
最後に、ブロックＳ２０３において、ＳＹＮ−ＡＣＫパケットをターミナルに送信した時間とＡＣＫパケットをターミナルから受信した時間の時間差を、第一ネットワーク遅延として判断する。つまり、第二時間点と第一時間点の時間差を第一ネットワーク遅延として定義する。
【００２２】
上記の方法ブロックを通して、サーバとターミナルとの間の第一ネットワーク遅延を求めることができる。
【００２３】
図１に戻るが、第一ネットワーク遅延を判断すると、ブロックＳ１０２において、ＩＰアドレスの１ホップ手前にあるルータとサーバとの間の第二ネットワーク遅延を判断する。
【００２４】
次の原理に基づき、第二ネットワーク遅延を求める。
【００２５】
サーバ側はユーザＩＰアドレスをｉｐ１として記録してもよく、サーバ側は一連の検出パケット（例えば、２５５個）を構成することができ、当該検出パケットは、それぞれ対象ＩＰをｉｐ１として使用し１から２５５の生存期間（ｔｔｌ）を有する。ＴＣＰ／ＩＰプロトコルに従い、当該一連の検出パケットがルータを通過する毎に、ｔｔｌは１減少する。ｔｔｌが減少しゼロになってもまだ対象アドレスに到達していなければ、当該ルータはエラーを報告しインターネットコントロールメッセージプロトコル（ＩＣＭＰ）エラーパケットを送信側に送信する。このように、ＩＰアドレスの１ホップ手前のルータにより送信された最終のＩＣＭＰエラーパケットを認識できる。したがって、分析によってユーザ関連の手前ホップルータのアドレス及びネットワーク遅延を求めるために、当該一連の検出パケットを使用できる。
【００２６】
図３を参照して、第二ネットワーク遅延の求め方の実施例を示すフローチャートを詳述する。
【００２７】
上記のように、サーバは、ユーザＩＰアドレスとして対象アドレスを使いインクリメンタル型生存期間（ＴＴＬ）を有する一連の検出パケットを構成し送信する。例えば、ユーザＩＰアドレスとして対象ＩＰを有するインクリメンタル型生存期間（ＴＴＬ）が１から２５５である一連の２５５個の検出パケットは、上記のように構成され送信されてもよい。したがって、図３に示すように、ブロックＳ３０１において一連の検出パケット内の各検出パケットを送信する各時間を記録してもよい。
【００２８】
次に、ＩＰアドレスの１ホップ手前にあるルータによりサーバに送信されたＩＣＭＰエラーパケットは、一連の検出パケットに基づき取得される。上記のように、例えば、当該一連の検出パケット内の生存期間が１である検出パケットが第一ルータに到達した場合、ＩＰアドレスに達していないので第一ＩＣＭＰエラーパケットが生成され送信される。第一ＩＣＭＰエラーパケットはサーバにより受信され、第一エラーパケットの受信時間が記録される。同一トークンにより、例えば、当該一連の検出パケット内の生存期間がｎであるパケットが第ｎ番ルータに到達した場合、ＩＰアドレスに達していないので第ｎ番ＩＣＭＰエラーパケットが生成され送信される。第ｎ番ＩＣＭＰエラーパケットはサーバにより受信され、第ｎ番エラーパケットの受信時間が記録される。当該一連の検出パケット内の生存期間がｎ＋１であるパケットがＩＰアドレスに達すると、ＩＣＭＰエラーパケットは生成されない。そのため、サーバは、第ｎ番ルータがＩＰアドレスの１ホップ手前にあるルータであることを認識し、それにより第ｎ番エラーパケットの受信時間を、ＩＰアドレスの１ホップ手前にあるルータからサーバに送信されたＩＣＭＰエラーパケットの受信時間として記録する。つまり、ブロックＳ３０２において、ＩＰアドレスの１ホップ手前にあるルータからサーバに送信されたＩＣＭＰエラーパケットの受信時間が記録される。例えば、この時間を第四時間点と定義する。
【００２９】
ブロックＳ３０３において、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットの送信時間を第三時間点として記録する。一つの実施形態において、ＩＣＭＰエラーパケットに対応する検出パケットが見つけられて当該対応検出パケットの送信時間が認識されるようにしてもよく、当該検出パケットの送信時間を第三時間点として定義する。
【００３０】
ブロック３０４において、ＩＰアドレスの１ホップ手前にあるルータからのＩＣＭＰエラーパケットの受信時間と、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットの送信時間との時間差を、ＩＰアドレスの１ホップ手前にあるルータとサーバとの間の第二ネットワーク遅延として判断する。
【００３１】
つまり、第四時間点と第三時間点との時間差は、第二ネットワーク遅延として設定される。
【００３２】
図１に戻るが、ブロックＳ１０３において、第一ネットワーク遅延及び第二ネットワーク遅延の判断に応じ、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きいかどうかを判断する。
【００３３】
通常、ターミナルがプロキシＩＰアドレスを使わずターミナルのユーザＩＰアドレスを使いサーバに直接接続する場合、ターミナルとサーバとの間の第一ネットワーク遅延値Ｔ１は、ユーザＩＰアドレス（つまり、ターミナルのＩＰアドレス）の手前ホップルータＲ１とサーバとの間の第二ネットワーク遅延値Ｔ２に略等しい。したがって、Ｔ１とＴ２の比は略１に等しい。
【００３４】
しかし、ユーザがいずれかのプロキシサーバを使う場合、サーバにより検出されたいわゆる「ユーザＩＰアドレス」はプロキシサーバのプロキシＩＰアドレスである。したがって、判断された第二ネットワーク遅延は、いわゆる「ユーザＩＰアドレス」（実際にはプロキシサーバのプロキシＩＰアドレス）の手前ホップルータとサーバとの間の遅延時間Ｔ２’である。Ｔ２’とＴ１の差は大きく、Ｔ１とＴ２’の比は閾値（例えば、２に設定された閾値）より一般的に大きい。適切な閾値は実際の必要量に応じて設定可能であることに注意が必要である。
【００３５】
ブロックＳ１０４において、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、ＩＰアドレスをプロキシＩＰアドレスとして識別する。
【００３６】
つまり、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、両者の遅延差が大きいので、ＩＰアドレスはターミナルのＩＰアドレスであると判断できる。ターミナルはプロキシサーバのプロキシＩＰアドレスを使いサーバにアクセスしたため、ＩＰアドレスはプロキシＩＰアドレスとして識別される。任意に、本開示において、プロキシサーバはＶＰＮプロキシサーバであってもよく、プロキシＩＰアドレスはＶＰＮプロキシＩＰアドレスであってもよい。
【００３７】
ブロック１０５において、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値以下であれば、ＩＰアドレスを非プロキシＩＰアドレスとして識別する。
【００３８】
つまり、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値以下であれば、両者の遅延差が小さいので、ＩＰアドレスはターミナルのＩＰアドレスであり、ターミナルがプロキシＩＰアドレスを使わずにサーバにアクセスしたと判断できる。したがって、ＩＰアドレスを非プロキシＩＰアドレスとして識別する。
【００３９】
本開示の実施形態の技術的解決法を明確に説明するために、図４Ａ及び図４Ｂを参照して以下に詳述する。
【００４０】
例えば、図４Ａに示すように、ある所定位置Ａにあるユーザのターミナル４０１（第一ターミナル）がＳＹＮパケットを送信する。ＳＹＮパケットは、例えばユーザターミナルのセルを通ってルータＲ１ ４０２に送信され、例えばルータＲ２ ４０３などの位置Ａのバックボーンネットワークエクスポートを通過し、例えばルータＲ３ ４０４などの位置Ｂのバックボーンネットワークエクスポートを通過し、最終的にサーバ４０５に到達して、サーバがＳＹＮパケットを受信する。つまり、サーバは、ユーザＩＰアドレスとして第一ＩＰアドレスを使用しサーバとのＴＣＰ接続を確立しようとする第一ターミナルからＳＹＮパケットを受信する。サーバはＳＹＮ−ＡＣＫパケットを第一ターミナルに送信し、第一ターミナルにＳＹＮ−ＡＣＫパケットを送信した第一時間点Ｔｉｍｅ１を記録する。その後、サーバは第一ターミナルからＡＣＫパケットを受信し、サーバは第一ターミナルからＡＣＫパケットを受信した第二時間点Ｔｉｍｅ２を記録する。したがって、第一ネットワーク遅延は、Ｔ１＝Ｔｉｍｅ２−Ｔｉｍｅ１であると判断される。図４Ａからわかるように、ネットワーク遅延Ｔ１は、サーバとルータＲ３との間の遅延、ルータＲ３とＲ２との間の遅延、ルータＲ２とＲ１との間の遅延、及びルータＲ１と第一ターミナルとの間の遅延を含む。
【００４１】
さらに、サーバは、例えば、それぞれ生存期間ｔｔｌが１から２５５で、第一ＩＰアドレスとして対象ＩＰアドレスを有する一連の２５５個の検出パケットを構成し送信してもよい。したがって、サーバは、一連の検出パケット内の各検出パケットの送信時間を記録してもよい。上記のように、サーバはさらに、第一ＩＰアドレス（第一ターミナルのＩＰアドレス）の手前ホップルータにより送信されたＩＣＭＰエラーパケットを受信した第四時間点Ｔｉｍｅ４を記録してもよい。さらに、当該ＩＣＭＰエラーパケットに基づき、対応する検出パケットを見つけ、対応検出パケットの送信時間がわかるようにしてもよい。つまり、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットの送信時間を、例えば第三時間点Ｔｉｍｅ３として定義する。したがって、第二ネットワーク遅延は、Ｔ２＝Ｔｉｍｅ４−Ｔｉｍｅ３であると判断される。図４Ａからわかるように、ネットワーク遅延Ｔ２は、サーバとルータＲ３との間の遅延、ルータＲ３とＲ２との間の遅延、及びルータＲ２とＲ１との間の遅延を含む。つまり、Ｔ１とＴ２の差は単にルータと第一ターミナルとの間の遅延であり、その差は比較的小さい。
【００４２】
図からわかるように、第一ＩＰアドレスは第一ターミナルの真のアドレスであるため、求められたＴ１及びＴ２の判断値は互いに近似しており、Ｔ１とＴ２の比は閾値より大きくない。よって、第一ＩＰアドレスは非プロキシＩＰアドレスであると判断できる。本開示の技術的解決法からわかるように、識別結果は実状に即している。
【００４３】
同様に、図４Ｂに示すように、第一ターミナルがプロキシを用いサーバに接続する場合、ある所定位置Ａにあるユーザターミナル４０６（第一ターミナル）がＳＹＮパケットを送信する。ＳＹＮパケットは、例えばユーザターミナル４０６のセルを通ってルータＲ１ ４０７に送信され、例えばルータＲ２ ４０８などの位置Ａのバックボーンネットワークエクスポートを通過し、例えばルータＲ３ ４０９などの所定位置Ｂのバックボーンネットワークエクスポートを通過し、プロキシ４１０を通過し、例えばプロキシ４１０のセルを通ってルータＲ４ ４１１に送信され、その後、例えばルータＲ５ ４１２などのある所定位置Ｃのバックボーンネットワークエクスポートを通過し、例えばルータＲ６ ４１３などのある所定位置Ｄのバックボーンネットワークエクスポートを通過し、最終的にサーバ４１４に達して、サーバがＳＹＮパケットを受信する。つまり、サーバは、ユーザＩＰアドレスとして第二ＩＰアドレス（プロキシＩＰアドレス）を使いサーバとのＴＣＰ接続を確立しようとする第一ターミナルからＳＹＮパケットを受信する。サーバはＳＹＮ−ＡＣＫパケットを第一ターミナルに送信し、第一ターミナルにＳＹＮ−ＡＣＫパケットを送信した第一時間点Ｔｉｍｅ１’を記録する。その後、サーバは第一ターミナルからＡＣＫパケットを受信する。サーバは、第一ターミナルからＡＣＫパケットを受信した第二時間点Ｔｉｍｅ２’を記録する。したがって、第一ネットワーク遅延は、Ｔ１’＝Ｔｉｍｅ２’−Ｔｉｍｅ１’であると判断される。図４Ｂからわかるように、プロキシを使用しているために、ネットワーク遅延Ｔ１’は、サーバとルータＲ６との間の遅延、ルータＲ６とＲ５との間の遅延、ルータＲ５とＲ４との間の遅延、ルータＲ４とプロキシとの間の遅延、プロキシとルータＲ３との間の遅延、ルータＲ３とＲ２との間の遅延、ルータＲ２とＲ１との間の遅延、及びルータＲ１と第一ターミナルとの間の遅延を含む。
【００４４】
さらに、サーバは、例えば、それぞれ生存期間ｔｔｌが１から２５５で、第二ＩＰアドレスとして対象ＩＰアドレスを有する一連の２５５個の検出パケットを構成し送信し、サーバが一連の検出パケット内の各検出パケットの送信時間を記録するようしてもよい。上記のように、サーバはさらに、第二ＩＰアドレス（第二ターミナルではなく、プロキシサーバのＩＰアドレス）の手前ホップルータから送信されたＩＣＭＰエラーパケットを受信した第四時間点Ｔｉｍｅ４’を記録してもよい。さらに、ＩＣＭＰエラーパケットに基づき、対応する検出パケットを見つけ、対応する検出パケットの送信時間がわかるようにする。つまり、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットの送信時間を、例えば第三時間点Ｔｉｍｅ３’として定義する。そうして、第二ネットワーク遅延は、Ｔ２’＝Ｔｉｍｅ４’−Ｔｉｍｅ３’であると判断される。図４Ｂからわかるように、プロキシを使うため、第二ＩＰアドレス（プロキシＩＰアドレス）の手前ホップルータはもはやルータＲ１ではなく、ルータＲ４となっている。したがって、ネットワーク遅延Ｔ２’は、サーバとルータＲ６との間の遅延、ルータＲ６とＲ５との間の遅延、及びルータＲ５とＲ４との間の遅延を含む。つまり、Ｔ１’とＴ２’の差は、ルータＲ４とプロキシとの間の遅延、プロキシとルータＲ３との間の遅延、ルータＲ３とＲ２との間の遅延、ルータＲ２とＲ１との間の遅延、及びルータＲ１と第一ターミナルとの間の遅延を含み、その差は大きい。
【００４５】
図４Ｂからわかるように、第二ＩＰアドレスは第一ターミナルの真のアドレスではないので、第一ネットワーク遅延Ｔ１’はＴ２’よりはるかに大きい。したがって、Ｔ１’とＴ２’の比は閾値より大きい。そのため、第二ＩＰアドレスはプロキシＩＰアドレスであり、第一ターミナルのＩＰアドレスではないと判断できる。本開示の技術的解決法を使えば、識別結果が実状に即しているとわかる。
【００４６】
本開示の実施形態によるプロキシＩＰアドレスの識別方法を、図１から図４Ｂで上記のように説明してきた。
【００４７】
本開示はさらに、プロキシＩＰアドレスの識別装置を提供する。
【００４８】
図５は、本開示の実施形態によるプロキシＩＰアドレスの識別装置５００の概略構造図を示す。本開示の実施形態により、装置５００は、第一判断モジュール５０１、第二判断モジュール５０２、決定モジュール５０３及び識別モジュール５０４を備えてもよい。
【００４９】
本開示の実施形態に従い、第一判断モジュール５０１は、ユーザＩＰアドレスとしてＩＰアドレスを用いてサーバとのＴＣＰ接続を確立するターミナルとサーバとの間の第一ネットワーク遅延を判断するよう構成されてもよい。
【００５０】
第二判断モジュール５０２は、ＩＰアドレスの手前ホップルータとサーバとの間の第二ネットワーク遅延を判断するよう構成されてもよい。
【００５１】
決定モジュール５０３は、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きいかどうかを判断するよう構成されてもよい。
【００５２】
判断モジュール５０４は、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値より大きい場合、ＩＰアドレスがプロキシＩＰアドレスであると識別するよう構成されてもよい。
【００５３】
判断モジュール５０４はさらに、第一ネットワーク遅延と第二ネットワーク遅延の比が閾値以下である場合、ＩＰアドレスが非プロキシＩＰアドレスであると識別するよう構成されてもよい。
【００５４】
本開示の実施形態に従い、第一判断モジュール５０１はさらに、ＳＹＮ−ＡＣＫパケットをターミナルに送信した時間とＡＣＫパケットをターミナルから受信した時間の時間差を、第一ネットワーク遅延として判断するよう構成されてもよい。
【００５５】
一つの実施形態において、第一判断モジュール５０１はさらに、ＳＹＮ−ＡＣＫパケットがターミナルに送信された第一時間点を記録するよう構成された第一記録サブモジュール、ＡＣＫパケットをターミナルから受信した第二時間点を記録するよう構成された第二記録サブモジュール、及び、第一時間点と第二時間点の時間差を第一ネットワーク遅延として判断するよう構成された第一判断サブモジュールを備えてもよい。
【００５６】
本開示の実施形態に従い、第二判断モジュール５０２はさらに、ＩＰアドレスの手前ホップルータからＩＣＭＰエラーパケットを受信した時間と、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットを送信した時間との時間差を、ＩＰアドレスの手前ホップルータとサーバとの間の第二ネットワーク遅延として判断するよう構成されてもよい。その際、一連の検出パケットはインクリメンタル型生存期間を有し、検出パケットの対象アドレスはユーザＩＰアドレスである。
【００５７】
一つの実施形態において、第二判断モジュールはさらに、一連の検出パケット内の各検出パケットの送信時間を記録するよう構成された第三記録サブモジュール、ＩＰアドレスの手前ホップルータからＩＣＭＰエラーパケットを受信した第四時間点を記録するよう構成された第四記録サブモジュール、一連の検出パケット内のＩＣＭＰエラーパケットに対応する検出パケットの送信時間を第三時間点として定義するよう構成された第一定義サブモジュール、及び、第四時間点と第三時間点の時間差を第二ネットワーク遅延として判断するよう構成された第二判断サブモジュールを備えてもよい。
【００５８】
本実施形態の装置により実施される機能は、図１から図４Ｂに示す方法実施形態に対応している。そのため、本実施形態において詳述されていない部分については、上記の実施形態での関連記述を参照し、以下では重複して記述しない。
【００５９】
典型的な構成において、コンピューティングデバイスは、１以上のプロセッサ（ＣＰＵ）、入力／出力インタフェース、ネットワークインタフェース、及びメモリを備える。
【００６０】
例えば、図６は、上述した装置などの例示的な装置６００をより詳細に示している。一つの実施形態において、装置６００は、１以上のプロセッサ６０１、ネットワークインタフェース６０２、メモリ６０３、及び、入力／出力インタフェース６０４を備えてもよいが、これらに限定されない。
【００６１】
メモリ６０３は、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／または、例えば、読み出し専用メモリ（ＲＯＭ）またはフラッシュＲＡＭなどの不揮発性メモリ、といったコンピュータ読取可能媒体の形式を含んでもよい。
【００６２】
コンピュータ読取可能媒体は、いずれの方法または技術を用いて情報を保存してもよく、揮発性または不揮発性タイプ、取外し可能または取外し不可媒体を含んでもよい。情報は、コンピュータ読取可能コマンド、データ構造、プログラムモジュールなどを含んでもよい。コンピュータ記録媒体は実施例として、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、その他のランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、クイックフラッシュメモリまたはその他内部記録技術、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）またはその他光学記録装置、磁気カセットテープ、磁気ディスク記録装置またはその他磁気記録デバイス、あるいは、その他非伝送媒体を含んでもよいが、これらに限定されない。その際、コンピュータ記録媒体は、コンピューティングデバイスによりアクセスされ得る情報を保存するよう使用され得る。本開示に定義されるように、コンピュータ読取可能媒体は、変調データ信号や搬送波など、一時的媒体を含まない。
【００６３】
メモリ６０３は、プログラムモジュール６０５及びプログラムデータ６０６を備えてもよい。一つの実施形態において、プログラムモジュール６０５は、第一判断モジュール６０７、第二判断モジュール６０８、決定モジュール６０９、及び、識別モジュール６１０を備えてもよい。いくつかの実施形態において、第一判断モジュール６０７は、第一記録サブモジュール６１１、第二記録サブモジュール６１２、及び／または、第一判断サブモジュール６１３を備えてもよい。さらに、一つの実施形態において、第二判断モジュール６０８は、第三記録サブモジュール６１４、第四記録サブモジュール６１５、第一定義サブモジュール６１６、及び／または、第二判断サブモジュール６１７を備えてもよい。これらのモジュール及びサブモジュールの詳細はここまでの記載にあり、本開示において重複して記載しない。
【００６４】
本明細における用語「備える」、「含む」、またはそれらの変形は、非排他的に包含することをいうことに注意すべきである。一連の要素を備えるプロセス、方法、製品、または装置は、それらの要素だけを備えるものではなく、明示して挙げていないその他要素も含み、さらに、そのようなプロセス、方法、製品、または装置に既にある要素を備える。追加して限定しない状態において、「１つを含む」といった言い回しで定義された要素は、プロセス、方法、製品、または装置に既にある要素とは別のいかなる類似要素も排除しない。
【００６５】
当業者であれば、本開示の実施形態を、コンピュータプログラムの方法、システム、または製品として提供可能であると考えるであろう。したがって、本開示は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、または、ハードウェア及びソフトウェアを組み合せた実施形態として実施可能であるとする。さらに、本開示は、コンピュータ実行可能命令を記録する１以上のコンピュータ読取可能記録媒体（磁気ディスク、ＣＤ−ＲＯＭまたは光学ディスクなどを含むがそれらに限定されない）に記録され得るコンピュータプログラムの製品として実施可能である。
【００６６】
これまでの説明は、本開示における実施形態を単に説明したものであり、本開示の範囲を限定することを意図するものではない。当業者であれば、本開示に対し様々な変更および改変を行うことが可能であろう。本開示の趣旨及び原理の範囲にあるいかなる変更、置き換え及び改良も、本開示の請求の範囲に該当するものである。
【図１】
0006517819.tif 000002
【図２】
0006517819.tif 000003
【図３】
0006517819.tif 000004
【図４Ａ】
0006517819.tif 000005
【図４Ｂ】
0006517819.tif 000006
【図５】
0006517819.tif 000007
【図６】
0006517819.tif 000008