JP2007201564A - 推定システム、端末、推定方法、およびプログラム - Google Patents

推定システム、端末、推定方法、およびプログラム Download PDF

Info

Publication number
JP2007201564A
JP2007201564A JP2006014472A JP2006014472A JP2007201564A JP 2007201564 A JP2007201564 A JP 2007201564A JP 2006014472 A JP2006014472 A JP 2006014472A JP 2006014472 A JP2006014472 A JP 2006014472A JP 2007201564 A JP2007201564 A JP 2007201564A
Authority
JP
Japan
Prior art keywords
estimation
packet
information
network
address
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
JP2006014472A
Other languages
English (en)
Inventor
Hideaki Yoshimi
英朗 吉見
Atsushi Enomoto
敦之 榎本
Zhenlong Cui
珍龍 崔
Kazuo Takagi
和男 高木
Atsushi Iwata
淳 岩田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006014472A priority Critical patent/JP2007201564A/ja
Priority to US11/625,687 priority patent/US20070171836A1/en
Publication of JP2007201564A publication Critical patent/JP2007201564A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】ネットワーク上でのヘッダ変換を推定するための専用サーバを設置することなく、推定に必要な情報を収集してネットワーク上でのヘッダ変換を推定できる技術を提供することにある。
【解決手段】ネットワーク上の装置に関する情報を推定するシステムであって、送信したパケットに応答して送られてくる通信用のプロトコルで定められているエラーメッセージ又は制御メッセージを用いてネットワーク上の装置に関する情報を推定するシステム。
【選択図】図5

Description

本発明は、ICMPメッセージを利用したネットワークの環境を推定する技術に関し、特に、ネットワークに接続されている通信装置に関する情報を推定するための技術に関する。
ローカルエリアネットワーク(LAN)やインターネットといった情報通信ネットワークは、様々な通信装置を組み合わせることにより構成されている。
まず、ネットワークの構成例として、図1のようなネットワークを考える。
図1には、インターネットのようなネットワーク4と、アドレス変換を行うNATルータ2、NATルータ6と、ユーザが操作するPC1、PC7と、インターネット上に設置されている任意のPC5と、パケットの経路を行うルータ3が含まれる。また、ネットワーク4は、パケットの経路制御を行うルータ8〜11を含んでいる。
以下において、図1の構成要素の機能について述べる。
まず、NATルータ2の機能について説明する(以下の説明は、NATルータ6にも当てはまる)。
NATルータ2の主な機能としては、アドレス変換(NAT:Network Address Translation)機能が挙げられる。LANのPC1には、プライベートIPアドレスが割り当てられているのが一般的であるが、LANのPC1をネットワーク4と接続するには、グローバルIPアドレスを割り当てる必要がある。この問題を解決するために、NATルータ2では、PC1がネットワーク4と接続できるように、プライベートIPアドレスとグローバルIPアドレスのアドレス変換を行う。具体的な処理としては、LANのPC1から送信されたパケットの送信元IPアドレスをグローバルIPアドレスに書き換えた後、ルータ3に転送する。図2には、参考のため、IPヘッダとUDPヘッダのフォーマットを示している。
また、NATルータ2は、上記のようにPC1から送信されたパケットの送信元IPアドレスの変換だけでなく、送信元ポート番号までも変換するNAPT(NAPT:Network Address Port Translation)機能を搭載していることもある。NAPTはNATと同様の技術であるが、NATではIPアドレスしか変換しないのに対して、NAPTではさらにTCPやUDPのポート番号も変換するという特徴がある。これにより、1つのグローバルIPアドレスで、プライベートIPアドレスを持つ複数のPCを収容することができる。例えば、ダイヤルアップ接続では、インターネットサービスプロバイダ(ISP)から割り当てられるグローバルIPアドレスは1つしかないが、NAPTを使えば、LAN上の複数のPCが同時にネットワーク4へ接続できるようになる。
次に、ルータ3の機能について説明する(以下の説明は、ルータ8〜11にも当てはまる)。
ルータ3の主な機能として、パケットの経路制御機能が挙げられるが、この機能に加えて、ルータ3には優先制御機能も搭載されている。優先制御機能とは、トラフィックの集中によりネットワーク内でパケット破棄が発生することが明白な場合には、重要なパケットを優先的に処理し、パケットが破棄されないようにする技術である。例えば、図1ではトラフィックの集中によりネットワーク4内でパケットが破棄される可能性がある。パケットが破棄されると、重要な通信サービスまでも応答が遅くなってしまったり、サービスが異常終了してしまったりするという現象が発生してしまう。優先制御機能は、これらの問題を解決し、重要なサービスの安定稼動を実現するために利用されるものである。
優先制御の実現方法としては、図1にその例を示しているが、ルータ3において、ネットワークの輻輳状態を監視するとともに、流入してくるパケットのToS値を書き換える。ここで、ToS値にはパケットの優先度など、パケットの品質を決める情報が書き込まれる。ネットワーク4内のルータでは,このToS値に従ったパケットの優先制御を行うことにより、特定のフローにのみ高品質の通信サービスが提供される。
また、ルータには、この優先制御機能に加えて、パケットのフラグメント機能も搭載されている。IPパケットを送信するPC1は、接続しているネットワーク4の最大転送単位(MTU: Maximum Transfer Unit)を最大サイズとするパケットを送信することが理想的である。このような理想的な環境下では、PC1から送信されたIPパケットは生成されたサイズそのままで宛先ホストに到達することになるが、図1のルータ8とルータ9の間のように、通信経路上に小さなMTUを持つネットワークが存在する場合、IPパケットはその境界のルータで細分化して送られる。これがルータのフラグメント機能である。フラグメントを行ったルータ8は、パケットのフラグフィールドの第3ビットを1に設定するとともに、最終パケットのフラグフィールドに0を設定する。また、フラグメントオフセットフィールドにはデータのオフセット値を設定する。
フラグメント化されたIPパケットを元の形に戻すのは、最終的な宛先ホストの役割である。宛先ホストでは、フラグフィールドとフラグメントオフセットフィールドの情報を基にして、フラグメント化されたIPパケットを再構成する。
以上のように、NATルータやルータはパケットヘッダに様々な変換処理を施すが、このような変換処理が発生したという事象は送信元PC1には隠蔽されている。このため、送信元PC1では、ネットワークがどのように構成されており、どんな制御機能が働いているのかを把握することは出来ない。このようにネットワークがブラックボックス化され、ヘッダ変換を送信元PC側で検出できなくなると、様々な問題が出てくる。以下において、これらの問題点について述べる。
まず、NATルータ2で実行されたヘッダ変換の内容をPC1が検出できない場合の問題について述べる。
NATルータ2の内側にあるPC1と、NATルータ6の内側にあるPC7との間でパケットをやり取りするには、双方に設置されたNATルータのグローバルIPアドレスとポート番号を宛先としたパケットを送信する必要がある。つまり、あらかじめ通信相手のNATルータの情報を取得しておく必要があり、例えば、PC7からPC1にパケットを送信するには、NATルータ2の情報が必要になる。NATルータ2の情報を取得する方法として、NATルータ2に繋がれているPC1から教えてもらうという方法が考えられるが、上述したように、NATルータ2のアドレス変換内容はPC1に隠蔽されているので、この方法は破綻してしまう。
以上のことから、NATルータのアドレス変換処理を検出できなければ、NATルータに繋がれたPC間でパケットをやり取りすることは出来ない。
次に、ルータで行われたToS値の変換処理をPC側で検出できない場合の問題について述べる。
ネットワークでToS値による優先制御機能が働いていなければ、IP電話やIPテレビなど高度な優先制御機能が必要されるリアルタイム型アプリケーションを利用することは難しい。この優先制御が働いているかどうかを判別する方法として、ToS値の変化を検出することは効果的であるが、上述のようにToS値の変換処理はPC側には隠蔽されているので、この方法は破綻してしまう。
以上のことから、ルータのToS値の変換処理を検出できなければ、アプリケーションを利用できるかどうか事前に認識することは出来ない。
次に、ルータで行われたフラグメント処理を、PC側で検出できない場合の問題について述べる。
パケットのフラグメントが発生しても通信自体に支障はないが、転送効率が落とされてしまう。例えば、図1のように、ネットワーク4のルータ8とルータ9の間のMTUが1000バイトである環境において、PC1から1500バイトのパケットが送信された場合、ルータ8において、1500バイトのデータは1000バイトと残りの500バイトの2つのデータにフラグメントされる。このようにフラグメントされると、ルータ8でフラグメント処理が発生するだけでなく、ルータ9では1つでなく2つのパケットを処理する必要となる。この結果、各ルータの負荷が増えるだけでなく、2つに分割されたパケットのうち、どちらかが壊れると、両方のパケットを廃棄しなければならなくなるため、ネットワーク4の負荷も増えてしまう。このようなフラグメントの発生を防ぐ方法として、PC1においてフラグメントが起こらないパケットサイズを調べ、そのサイズに合わせたパケットを送信するということが考えられるが、上述したように、フラグメントの発生はPC1に隠蔽されているので、この方法は破綻してしまう。
以上のことから、ルータのフラグメント処理を検出できなければ、パケットの転送効率の低下を防ぐことが出来ない。
以上述べたように、通信経路上で行われたヘッダ変換を送信元PCで検出できないと、様々な問題が生じてしまう。
この課題を解決する方法の一例が、非特許文献1や特許文献1に記載されている。
非特許文献1に記載の方法は、図3に示すように、ネットワーク304のようなインターネット上に専用サーバ312を設置する。図3のPC301は、この専用サーバ312にパケットを送信する。専用サーバ312では、このPC301から受信したパケットのヘッダ情報を拾い上げ、PC301に折り返し通知してやる。ここで、専用サーバ312からPC301に折り返し通知する情報としては、IPアドレスやポート番号、そしてToS値やフラグフィールドなどが挙げられる。
一方、PC301では、上記のように折り返し通知されたヘッダ情報から、通信経路上でヘッダ変換が行われたか否かを検出するとともに、そのヘッダ変換の内容を把握することができる。さらに、このヘッダ変換の情報を利用することにより、上述の各課題に対して対処することができる。
例えば、NATルータのアドレス変換処理について言えば、非特許文献1の方法により、PC301は、専用サーバ312からNATルータ302のIPアドレスとポート番号を通知してもらった後、このNATルータ302の情報をPC307に通知してやれば、PC307からPC301にパケットを送信することができる。
また、ルータのToS値の変換処理について言えば、非特許文献1の方法により、PC301は、専用サーバ312からパケットのToS値を通知してもらえば、ネットワーク内で優先制御機能が働いているかどうか認識できる。
また、ルータのフラグメント処理について言えば、非特許文献1の方法により、PC301は、専用サーバ312からパケットのフラグメントフィールドを通知してもらえば、フラグメントが起こらないようなパケットサイズを検出することができ、パケットの転送効率を最大化できる。
J・ローゼンバーグ(J. Rosenberg)、他3名、"RFC3489:STUN技術" [online]、[平成16年9月1日検索]、インターネット http://www.faqs.org/rfcs/rfc3489.html 特開2005−102196
以下において、非特許文献1に記載の方法の問題点を述べる。
非特許文献1に記載の方法は、専用サーバ312をインターネット上に設置しなければならないため、専用サーバ312の保守/運用作業が必要であり、手間がかかる。
また、専用サーバ312へのインターネット上の悪意のある第3者からの攻撃を防ぐために、専用サーバ312のセキュリティレベルを維持する作業が必要であり、手間がかかる。
さらに、専用サーバ312の処理負荷の急増を防ぐために、専用サーバ312の負荷分散作業が必要であり、手間がかかる。
本特許は、これら全ての問題を解決するためになされたものであり、その目的とするところは、専用サーバ312を設置することなく、通信経路上でのヘッダ変換を推定できる方法を提供することにある。
上記課題を解決するための第1の発明は、
ネットワーク上の装置に関する情報を推定する推定システムであって、
送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信手段と、
前記返信手段からの制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段と
を備えたことを特徴とする。
上記課題を解決するための第2の発明は、上記第1の発明において、
前記返信手段は、待ち受け状態となっていないポート番号を宛先とした情報収集用のパケットに応答して、到達不能を示す制御用のメッセージを返信する手段であることを特徴とする。
上記課題を解決するための第3の発明は、上記第1又は第2の発明において、
前記返信手段は、前記情報収集用のパケットをヘッダのデータ部に格納した制御用のメッセージを返信する手段であることを特徴とする。
上記課題を解決するための第4の発明は、上記第1から第3のいずれかの発明において、
前記返信手段は、前記情報収集用のパケットが通過できる装置の個数を示す情報が0である情報収集用のパケットに応答して、前記情報収集用のパケットを破棄したことを示す制御用のメッセージを返信する手段であることを特徴とする。
上記課題を解決するための第5の発明は、上記第1から第4のいずれかの発明において、
前記推定手段は、品質を示す情報に基づいて推定する手段であることを特徴とする。
上記課題を解決するための第6の発明は、上記第1から第4のいずれかの発明において、
前記推定手段は、前記情報収集用のパケットが分割されたことを示す情報に基づいて推定する手段であることを特徴とする。
上記課題を解決するための第7の発明は、上記第1から第4のいずれかの発明において、
前記推定手段は、チェックサム値に基づいて推定する手段であることを特徴とする。
上記課題を解決するための第8の発明は、上記第7の発明において、
前記推定手段は、IPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定し、UDPチェックサム値またはTCPチェックサム値に基づいて前記制御用のメッセージのデータ部の送信元ポート番号を変更した装置に関する情報を推定する手段であることを特徴とする。
上記課題を解決するための第9の発明は、上記第8の発明において、
前記推定手段は、UDPチェックサム値またはTCPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定する手段であることを特徴とする。
上記課題を快活するための第10の発明は、上記第7から第8のいずれかの発明において、
前記推定手段は、ネットワークの経路調査試験の結果を加味して、推定する手段であることを特徴とする。
上記課題を解決するための第11の発明は、上記第10の発明において、
前記経路調査試験は、通過できる装置の個数を示す情報の数値が互いに異なる複数の情報収集用のパケットを送信することによって行われる調査試験であることを特徴とする。
上記課題を解決するための第11の発明は、上記第10又は第11の発明において、
前記経路調査試験は、以前推定された端末までに通過する装置の個数を調査する試験であることを特徴とする。
上記課題を解決するための第13の発明は、上記第10から第12のいずれかの発明において、
前記経路調査試験は、プライベートIPアドレスとグローバルIPアドレスとが切り替わる位置に設置されている装置までに通過した装置の個数を調査する試験であることを特徴とする。
上記課題を解決するための第14の発明は、上記第1から第13のいずれかの発明において、
前記推定手段は、推定結果を前記ネットワーク上の端末に通知する手段であることを特徴とする。
上記課題を解決するための第15の発明は、上記第14の発明において、
前記推定手段は、前記ネットワーク上の他の端末から推定結果を受け取ると、その推定結果を記憶するように構成されていることを特徴とする。
上記課題を解決するための第14又は第15の発明において、
前記推定手段は、複数の推定結果に基づいて前記ネットワーク上のコンピュータのポート番号の割り当て処理の規則性を推定する手段であることを特徴とする。
上記課題を解決するための第17の発明は、上記第14から第16のいずれかの発明において、
前記推定手段は、前記推定結果をメールまたは電話を用いて通信相手に通知するように構成されていることを特徴とする。
上記課題を解決するための第18の発明は、上記第1から第17のいずれかの発明において
前記推定手段は、前記情報収集用のパケットが通過できる装置の個数を示す情報を前記推定結果に基づいて取得した宛先に届かない値に設定して、この宛先にSYNパケットを送信し、このSYNパケットのシーケンス番号を前記宛先に通知する手段であることを特徴とする。
上記課題を解決するための第19の発明は、上記第18の発明において、
前記推定手段は、前記送信されたSYNパケットのシーケンス番号を受け取ると、このシーケンス番号を考慮した応答確認パケットを送信する手段であることを特徴とする。
上記課題を解決するための第20の発明は、
ネットワーク上の装置に関する情報を推定するシステムであって、
通信用のプロトコルで定められているエラーメッセージ又は制御メッセージを用いて前記ネットワーク上の装置に関する情報を推定することを特徴とする。
上記課題を解決するための第21の発明は、
端末であって、
情報収集用のパケットを送信する手段と、
前記情報収集用のパケットに応答して送信された制御用のメッセージに基づいて、ネットワーク上の装置に関する情報を推定する推定手段と
を有することを特徴とする。
上記課題を解決するための第22の発明は、
ネットワーク上の装置に関する情報を推定する推定方法であって、
送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信ステップと、
受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであるかを判断する判断ステップと、
前記判断の結果、受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであると判断された場合、この制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定ステップと
を備えたことを特徴とする。
上記課題を解決するための第23の発明は、上記第22の発明において、
前記返信ステップは、待ち受け状態となっていないポート番号を宛先とした情報収集用のパケットに応答して、到達不能を示す制御用のメッセージを返信するステップであることを特徴とする。
上記課題を解決するための第24の発明は、上記第22又は第23の発明において、
前記返信ステップは、前記情報収集用のパケットをヘッダのデータ部に格納した制御用のメッセージを返信するステップであることを特徴とする。
上記課題を解決するための第25の発明は、上記第22から第24のいずれかの発明において、
前記返信ステップは、前記情報収集用のパケットが通過できる装置の個数を示す情報が0である情報収集用のパケットに応答して、前記情報収集用のパケットを破棄したことを示す制御用のメッセージを返信するステップであることを特徴とする。
上記課題を解決するための第26の発明は、上記第22から第25のいずれかの発明において、
前記推定ステップは、品質を示す情報に基づいて推定するステップであることを特徴とする。
上記課題を解決するための第27の発明は、上記第22から第25のいずれかの発明において、
前記推定ステップは、前記情報収集用のパケットが分割されたことを示す情報に基づいて推定するステップであることを特徴とする。
上記課題を解決するための第28の発明は、上記第22から第25のいずれかの発明において、
前記推定ステップは、チェックサム値に基づいて推定するステップであることを特徴とする。
上記課題を解決するための第29の発明は、上記第28の発明において、
前記推定ステップは、
IPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定するステップと、
UDPチェックサム値またはTCPチェックサム値に基づいて前記制御用のメッセージのデータ部の送信元ポート番号、若しくはIPアドレスを変更した装置に関する情報を推定するステップと
を有することを特徴とする。
上記課題を解決するための第30の発明は、上記第28又は第29の発明において、
前記推定ステップは、
ネットワークの経路調査試験を実行する経路調査実行ステップと、
前記実行結果を加味して装置に関する情報を推定する詳細情報推定ステップと
を有することを特徴とする。
上記課題を解決するための第31の発明は、上記第30の発明において、
前記経路調査実行ステップは、通過できる装置の個数を示す情報の数値が互いに異なる複数の情報収集用のパケットを送信するステップであることを特徴とする。
上記課題を解決するための第32の発明は、上記第30又は上記第31の発明において、
前記経路調査実行ステップは、以前推定された装置までに通過する装置の個数を調査するステップであることを特徴とする。
上記課題を解決するための第33の発明は、上記第30から第32のいずれかの発明において、
前記経路調査実行ステップは、プライベートIPアドレスとグローバルIPアドレスとが切り替わる位置に設置されている装置までに通過した装置の個数を調査するステップであることを特徴とする。
上記課題を解決するための第34の発明は、上記第22から第33のいずれかの発明において、
前記推定ステップは、推定結果を前記ネットワーク上の端末に通知するステップを有することを特徴とする。
上記課題を解決するための第35の発明は、上記第34の発明において、
前記推定ステップは、前記ネットワーク上の他の端末から推定結果を受け取ると、その推定結果を記憶するステップを有することを特徴とする。
上記課題を解決するための第36の発明は、上記第34又は第35の発明において、
前記推定ステップは、複数の推定結果に基づいて前記ネットワーク上のコンピュータのポート番号の割り当て処理の規則性を推定するステップであることを特徴とする。
上記課題を解決するための第37の発明は、上記第34から第36のいずれかの発明において、
前記推定ステップは、前記推定結果をメールまたは電話を用いて通信相手である端末に通知する推定ステップを有することを特徴とする。
上記課題を解決するための第38の発明は、上記第22から第37のいずれかの発明において、
前記推定ステップは、前記情報収集用のパケットが通過できる装置の個数を示す情報を、前記推定結果に基づいて取得した宛先に届かない値に設定して、この宛先にSYNパケットを送信し、このSYNパケットのシーケンス番号を前記宛先に通知するステップを有することを特徴とする。
上記課題を解決するための第39の発明は、上記第38の発明において、
前記推定ステップは、
前記送信されたSYNパケットのシーケンス番号を受け取る受取ステップと、
前記受け取ったシーケンス番号を考慮した応答確認パケットを送信するステップと
を有することを特徴とする。
上記課題を解決するための第40の発明は、
ネットワーク上の装置に関する情報を推定する推定システムのプログラムであって、前記プログラムは前記システムを、
送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信手段と、
前記返信手段からの制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段と
して機能させることを特徴とする。
上記課題を解決するための第41の発明は、
端末のプログラムであって、前記プログラムは前記端末を、
受信したメッセージが情報収集用のパケットに応答して返信された制御用のメッセージであるかを判断する判断手段と、
前記判断の結果、受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであると判断された場合、この制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段
として機能させることを特徴とする。
上記課題を解決するための第42の発明は、
ネットワーク上の装置に関する情報を推定するシステムのプログラムであって、前記プログラムは前記システムを、
通信用のプロトコルで定められているエラーメッセージ又は制御メッセージを用いて前記ネットワーク上の装置に関する情報を推定する手段として機能させることを特徴とする。
本発明の第1の推定システムは、ネットワーク上のPCの待ち受け状態となっていないポート番号宛にパケットを送信するパケット送信部と、ネットワーク上のPCから送り返されてきたICMPポート到達不能メッセージを受信するパケット受信部と、受信したICMPポート到達不能メッセージのチェックサムからネットワークで行われたヘッダ変換を検出する解析部とを有する。本発明の第1の推定システムは、このような構成を採用し、ネットワーク上のPCから送り返されてきたICMPポート到達不能メッセージのチェックサムを元にして、ヘッダ変換を推定することにより、専用サーバを設置することなく、NATルータによるヘッダ変換の内容を把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明の第2の推定システムは、本発明の第1の推定システムの解析部において実行する処理を変更している。そして、本発明の第2の推定システムの解析部は、本発明の第1の推定システムの解析部の処理に加えて、ネットワークの経路調査試験を行い、ヘッダ変換の推定精度を高めている。本発明の第2の推定システムは、このような構成を採用し、ネットワークの経路調査試験の結果を加味して、ヘッダ変換を推定することにより、本発明の第1の推定システムで完全に絞り込めていない場合でも、ヘッダ変換の内容を正確に把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明の第3の推定システムは、本発明の第1の推定システムの解析部、パケット送信部、およびパケット受信部において実行する処理を変更している。本発明の第3の推定システムは、ネットワーク上のPC宛にTTLの値を小さく設定したパケットを送信するパケット送信部と、ネットワーク上のルータから送り返されてきたICMP Time Exceededメッセージを受信するパケット受信部と、受信したICMP Time Exceededメッセージのチェックサムからネットワークで行われたヘッダ変換を検出する解析部とを有する。本発明の第3の推定システムは、このような構成を採用し、ネットワーク上のルータから送り返されてくるICMP Time Exceededメッセージのチェックサムを元にして、ヘッダ変換を推定することにより、ICMPポート到達不能メッセージがネットワーク内で破棄されてしまった場合でも、専用サーバを設置することなく、NATルータによるヘッダ変換の内容を把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明の第4の推定システムは、本発明の第3の推定システムの解析部、パケット送信部、およびパケット受信部において実行する処理を変更している。本発明の第4の推定システムは、ネットワーク上のPC宛にTTLの値を小さく設定したパケットを送信するパケット送信部と、ネットワーク上のルータから送り返されてきたICMP Time Exceededメッセージを受信するパケット受信部と、受信したICMP Time Exceededメッセージのチェックサムからネットワークで行われたヘッダ変換を検出する解析部とを有する。本発明の第4の推定システムは、このような構成を採用し、NATルータにおいて、ICMP Time ExceededメッセージのIPチェックサムが正しい値に変換されてしまう場合でも、専用サーバを設置することなく、ICMP Time ExceededメッセージのUDPチェックサムを元にして、NATルータによるヘッダ変換の内容を把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明の第5の推定システムは、本発明の第3の推定システムの解析部、パケット送信部、およびパケット受信部において実行する処理を変更するとともに、アプリケーション部を含んでいる。本発明の第5の推定システムは、ネットワーク上のPC宛にTTLの値を小さく設定したパケットを送信するパケット送信部と、ネットワーク上のルータから送り返されてきたICMP Time Exceededメッセージを受信するパケット受信部と、受信したICMP Time Exceededメッセージのチェックサムからネットワークで行われたヘッダ変換を検出するとともに、その検出結果を通信相手となるPCに通知する解析部と、通信相手となるPCとパケットのやり取りを行うアプリケーション部とを有する。本発明の第5の推定システムは、このような構成を採用し、お互いのPCがNATルータの配下に設置されている場合でも、ICMP Time ExceededメッセージのチェックサムからNATルータによるヘッダ変換の内容を把握するとともに、PC間でその情報を通知しあうことにより、専用サーバを設置することなく、PC間でパケットをやり取りするために必要な情報を把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明の第6の推定システムは、本発明の第3の推定システムの解析部において実行する処理を変更している。本発明の第6の推定システムの解析部は
受信したICMP Time Exceededメッセージからネットワークで行われたToSフィールドの変化を検出している。本発明の第6の推定システムは、このような構成を採用し、ネットワーク上のルータから送り返されてくるICMP Time Exceededメッセージを元にして、ToSフィールドの変化を推定することにより、専用サーバを設置することなく、ネットワーク内で優先制御機能が働いているかどうかを把握できる。以上の理由により、本発明の目的を達成することができる。
本発明の第7の推定システムは、本発明の第3の推定システムの解析部において実行する処理を変更している。本発明の第7の推定システムは、受信したICMP Time Exceededメッセージからネットワークで行われたフラグメントフィールドの変化を検出している。本発明の第7の推定システムは、このような構成を採用し、ネットワーク上のルータから送り返されてくるICMP Time Exceededメッセージを元にして、フラグメントフィールドの変化を推定することにより、専用サーバを設置することなく、ネットワーク内でフラグメントが発生したかどうかを把握できる。以上の理由により、本発明の目的を達成することができる。
本発明の第8の推定システムは、本発明の第5の推定システムの解析部、パケット送信部、パケット受信部において実行する処理を変更するとともに、TCP部4008を追加している。本発明の第8の推定システムは、このような構成を採用し、通信相手と3way handshake処理を行うことにより、専用サーバを設置することなく、PC間でTCPパケットをやり取りするのに必要な情報を把握することができる。以上の理由により、本発明の目的を達成することができる。
本発明によると、専用サーバをインターネット上に設置することなく、既存の標準的な通信プロトコルでICMPを巧みに利用することにより、ICMPヘッダのチェックサムの値から、ネットワーク内におけるヘッダ変換を推定できるので、本発明の目的を達成することができる。
このため、専用サーバの保守/運用コストが不要になるとともに、専用サーバが外部の不正なユーザから攻撃されるといったこともないので安全である。さらに、LANのPCの数が増加した場合でも、各PCごとにUDPパケットの宛先を変えれば、ICMPパケットを送り返すPC405の負荷も大きくならないので、スケーラビリティの面でも優れている。
本発明の上述の特徴と優位点を得ることができる形態を説明するために、以下において、図面を参照して具体的な実施例を述べるものとする。しかしながら、これらの図面および説明は、本発明の典型的な実施形態のみを示しており、その範囲を限定するものではないことを理解すれば、本発明は、以下に添付する図面を用いて、さらに明確および詳細に記載され、説明されるであろう。
本発明を実施するための第1の実施の形態について図面を参照して詳細に説明する。
<構成>
図4を参照すると、本発明の第1の実施の形態は、インターネットのようなネットワーク404と、アドレス変換を行うNATルータ402、NATルータ406と、ユーザが操作するPC401、PC407と、インターネット上に設置されている任意のPC405と、パケットの経路制御を行うルータ403とを含む。
また、ネットワーク4は、パケットの経路制御を行うルータ408〜411を含む。
ここで、PC405には非特許文献1に記載の専用サーバ312のような特別な機能は搭載されておらず、PC405は標準的な任意の端末であるとする。
PC401の内部構成を図5に示す。
図5に示されるように、PC401は、解析部506と、パケット受信部504と、パケット送信部505と、オペレーティングシステム500とを含んでいる。ここで、オペレーティングシステム500は、UDP部503と、IP部502と、MAC部501とを含んでいる。
解析部506は、ネットワーク内で行われたヘッダ変換の内容を検出するために必要な情報を収集するためのUDPパケットを、設定されたIPアドレス及びポート番号宛に送信するようにパケット送信部505に命令する。また、解析部506は、パケット受信部504から渡されるICMPパケットのヘッダ情報から、ネットワーク内で行われたヘッダ変換の内容を検出する。尚、UDPパケットはダミーパケットであってもよい。
パケット送信部505は、解析部506からUDPパケットの送信命令を受け取ると、解析部506によって指定された宛先に向けてUDPパケットの送信処理を行うために、データをUDP部503に渡す。
パケット受信部504は、IP部502からICMPパケットを受け取り、そのデータを解析部504に渡す。
UDP部503は、パケット送信部505から渡されたデータにUDPヘッダを追加した後、IP部506に渡す。
IP部502は、UDP部503から渡されたデータにIPヘッダを追加した後、MAC部501に渡す。
また、IP部502は、MAC部501からデータを受け取ると、そのデータがUDPパケットに応答して送信されたICMPパケットのデータ部分であるかを判断し、判断の結果、UDPパケットに応答して送信されたICMPパケットである場合には、パケット受信部504に渡す。
MAC部501は、IP部502から渡されたデータにMACヘッダを追加した後、伝送路に送信する。また、MAC部501は、伝送路からデータを受け取ると、MACヘッダを外した後、IP部502に渡す。
ここで、UDP部503、IP部502、およびMAC部501には、オペレーティングシステム500が標準的に搭載しているTCP/IP機能を流用するのが一般的である。
<動作>
続いて、図4〜図18を参照しながら、本発明を実施するための実施の形態の動作について詳細に説明する。
まず、図5の解析部506は、何らかのタイミングを契機に、UDPパケットを送信する(図6のステップS602)。
このUDPパケットを送信するタイミングとしては、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから命令された時
・解析部のサービス起動時
・PCの電源投入時
・一定の時間間隔毎
・PCのIPアドレスの更新時
ただし、前述の送信タイミングは単なる例であることが理解されるべきである。本説明を再検討すれば、送信タイミングとして多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
また、UDPパケットの宛先としては、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから指定された、IPアドレスとポート番号に向けて送信する
・設定ファイルなどに予め設定されているIPアドレスとポート番号に向けて送信する
・ランダムに選んだIPアドレスとポート番号に向けて送信する
ただし、前述のパケットの宛先は単なる例であることが理解されるべきである。本説明を再検討すれば、パケットの宛先として多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
以下の動作説明では、解析部506のサービス起動時に、PC401からUDPパケットを予め設定ファイルに登録されているIPアドレス及びポート番号に向けて送信する方法を採用した場合を例に説明する。
ここで、設定ファイルには、IPアドレスとして図4のPC405の200.20.1.1、ポート番号として9999が登録されているものとする。このポート番号9999は、PC405で待ち受け状態になっていないポート番号であるとする。このようなポート番号を宛先に設定している理由は、PC405からICMPポート到達不能メッセージを返してもらうためである。
図5の解析部506は、パケット送信部505に上記のIPアドレスとポート番号を通知し、ネットワーク内で行われたヘッダ変換の内容を検出するためのパケットであるUDPパケットの送信を依頼する(図6のステップS603)。
パケット送信部505は、解析部506からUDPパケットの送信依頼を受けると(図7のステップS701)、指定されたIPアドレスとポート番号宛のUDPソケットをオープンし、UDP部503にデータを渡す(図7のステップS702)。
UDP部503は、パケット送信部505からデータ送信の依頼を受けると(図8のステップS801)、データにUDPヘッダを付加してUDPパケットを生成し(図8のステップS802)、IP部502に転送する(図8のステップS803)。
IP部502は、UDP部503からUDPパケットを受け取ると、IPパケットを付加してIPパケットを生成し、MAC部501に転送する(図9のステップS903)。
MAC部501は、IP部502からIPパケットを受け取ると(図10のステップS1001)、MACヘッダを付加してMACフレームを生成し(図10のステップS1002)、伝送路に送信する(図10のステップS1003)。
図11(a)には、上記の処理により、PC401から送信されるパケットを示している。
このように送信されたデータは、まず、図4のNATルータ402において、送信元IPアドレスと送信元ポート番号が変換される。この例では、送信元IPアドレスが192.168.0.2から200.10.1.1へ、送信元ポート番号が65000から65001に変更される。また、これらの変更に伴い、IPヘッダのチェックサムとUDPヘッダのチェックサムも再計算される。この例では、IPヘッダのチェックサムが0x10から0x20に、UDPヘッダのチェックサムが0x100から0x200に変更されたとする。
図11(b)には、上記の処理により、NATルータ402から送信されるパケットを示している。
このように変更されたパケットは、幾つものルータを経由しながら、PC405に届けられる。説明を簡単にするために、この例では、NATルータ以外の通信装置はヘッダを変換しないものとする。
PC405は、このパケットを受信するが、宛先ポート番号である9999は待ち受け状態になっていない。このため、パケットの送信元であるNATルータ402に、ICMPポート到達不能メッセージを送り返す。
このICMPポート到達不能メッセージは、図11(c)のように、ICMPパケットとして送られるが、ICMPパケットのデータ部には、先程受信した図11(b)のパケットがそのまま付加される。
図11(c)には、上記の処理により、PC405から送信されるパケットを示している。
NATルータ402は、このICMPパケットを受信すると、ICMPパケットをPC401に転送するために、そのIPヘッダの宛先IPアドレスを200.10.1.1から192.168.0.2に変更する。また、この変更に伴い、IPヘッダのチェックサムも再計算し、0x30から0x40に変更している。
また、NATルータ402は、ICMPヘッダのデータ部も変更する。具体的には、送信元IPアドレスを200.10.1.1から192.168.0.2へ、送信元ポート番号を65001から65000に変更する。このようにICMPヘッダのデータ部も変更してやることにより、あくまでPC401へのICMPポート到達不能メッセージであるかのように見せかけることができる。
ここで、NATルータ402では、図11(d)に示されるように、ICMPヘッダのデータ部のチェックサムまでは変更されないため、チェックサムは誤った値となっている。
PC401は、このICMPパケットをNATルータ402から受け取ると(図12のステップS1201)、まずMAC部501でMACヘッダを外した後(図12のステップS1202)、IP部502に転送する(図12のステップS1203)。
IP部502は、MAC部501からICMPパケットを受け取ると(図13のステップS1301)、IPヘッダを外した後(図13のステップS1302)、そのデータがUDPパケットに応答して送信されたICMPパケットのデータ部分であるかを判断する。判断の結果、UDPパケットに応答して送信されたICMPパケットである場合には、パケット受信部504に転送する(図13のステップS1303)。
パケット受信部504は、IP部502からICMPデータを受け取ると(図14のステップS1401)、そのICMPヘッダのデータ部を解析部506に転送する(図14のステップS1402)。
解析部506は、パケット受信部504からデータ部を受け取ると(図15のステップS1501)、そのチェックサムの状態から、ネットワークでヘッダ変換が行われたのかどうか検出する。以下において、その方法について述べる。
まず、解析部506では、受け取ったデータのIPヘッダから、IPチェックサムを計算する(図15のステップS1502)。
続いて、この計算されたIPチェックサムが、受け取ったデータのIPチェックサムと一致するかどうか確認する(図15のステップS1503)。
ここで、NATルータ402においてIPアドレスの変換が行われた場合には、IPチェックサムが一致しないので、IPアドレス変換の発生を検出することができる。
一致しなかった場合には、IPアドレスの変換が起こったと考え、NATルータ402のIPアドレスを推定するために、図15のステップS1504に進む。
一致した場合には、IPアドレスの変換が起こらなかったものとして、ステップS1505に進み、受け取ったデータのUDPヘッダから、UDPチェックサムを計算する。
そして、この計算されたUDPチェックサムが、受け取ったデータのUDPチェックサムと一致するかどうかを確認する(図15のステップS1506)。
ここで、NATルータ402においてポート番号の変換が行われた場合には、UDPチェックサムが一致しないので、ポート番号変換の発生を検出することができる。
一致しなかった場合には、ポート番号の変換が起こったと考え、NATルータ402のポート番号を推定するために、図15のステップS1507に進む。
一致した場合には、ポート番号の変換が起こらなかったものとして、処理を終了する。
以下では、IPチェックサムとUDPチェックサムの両方が誤っている場合の推定処理について説明する。
図16には、図15のステップS1504で実行されるIPアドレスの推定処理を示している。
IPアドレスは32ビットで構成されるが、解析部506では、まずIPアドレスの上位16ビットをXとし、下位16ビットがYであると仮定する。送信元IPアドレスをこのように仮定して、受け取ったデータのIPチェックサムの方程式を立てる(図16のステップS1602)。
ここでIPチェックサムの計算方法について補足すると、IPチェックサムは、IPヘッダを16ビットごとに分割して、それぞれの「1の補数」の総和を求めた後、その総和の「1の補数」がIPチェックサムとなる。
解析部506では、IPアドレスを推定するために、ステップS1602で求められた方程式を満足するXとYを総当り計算する(図16のステップS1604〜ステップS1607)。
この方程式を満足するIPアドレスには、NATのIPアドレスと一致するものが存在するが、上記方程式を満足するXとYの組み合わせは32768通り存在する。第1の実施の形態では、これらの組み合わせ候補を絞り込む方法については言及しない。
一方、図17には、図15のステップS1507で実行されるポート番号の推定処理を示している。
ポート番号は16ビットで構成されるが、解析部506では、答えとなるポート番号がWであると仮定する。送信元ポート番号をこのように仮定して、受け取ったデータのUDPチェックサムの方程式を立てる(図17のステップS1702)。
ここでUDPチェックサムの計算方法について補足すると、UDPチェックサムは、「UDPヘッダ」と「ペイロードデータ」、そして図18に示される「UDP擬似ヘッダ」の3つの部分が計算の対象となる。
ここで、「UDP擬似ヘッダ」とは、チェックサムの計算時だけに使われる仮想的なヘッダであり、実際のUDPパケット中には含まれていない。UDPチェックサムは、この「UDP擬似ヘッダ」を含んだヘッダ全体を16ビットごとに分割して、それぞれの「1の補数」の総和を求めた後、その総和の「1の補数」がUDPチェックサムとなる。
解析部506では、ポート番号を推定するために、ステップS1702で求められた方程式を満足するWを計算する(図17のステップS1703)。ここで、擬似ヘッダ中の送信元IPアドレスには、上述の図16の処理によって求められたIPアドレスが代入されることになる。
この方程式を満足するポート番号には、NATのポート番号と一致するものが存在する。
以上の処理により、ICMPヘッダのチェックサムから、NATの送信元IPアドレスとポート番号を推定できることが示された。
尚、上記実施の形態では、待ち受け状態になっていないポート番号を宛先に設定してパケットを送信し、ICMPポート到達不能メッセージ(エラーメッセージ)を返してもらう構成について説明したが、この限りではない。即ち、PC401がPC405宛にパケットを送信し、PC401がこのパケットに応答して制御メッセージをPC401に返信する構成であればよい。また、本明細書では、エラー(到達不能)メッセージや制御メッセージ等のように、通信のプロトコルで定められている通信の手続上のメッセージ(パケット)を総称して制御用のメッセージ(パケット)とする。
<効果>
続いて、本発明を実施するための第1の実施の形態の効果について説明する。
本発明を実施するための第1の実施の形態では、専用サーバをインターネット上に設置することなく、既存の標準的な通信プロトコルでICMPを巧みに利用することにより、ICMPヘッダのチェックサムの値から、ネットワーク内におけるヘッダ変換を推定できるので、本発明の目的を達成することができる。
このため、専用サーバの保守/運用コストが不要になるとともに、専用サーバが外部の不正なユーザから攻撃されるといったこともないので安全である。さらに、LANのPCの数が増加した場合でも、各PCにUDPパケットの宛先を変えれば、ICMPパケットを送り返すPC405の負荷も大きくならないので、スケーラビリティの面でも優れている。
次に、本発明を実施するための第2の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第1の実施の形態では、ICMPポート到達不能メッセージのチェックサムから、NATルータのIPアドレスとポート番号を推定していた。しかしながら、IPチェックサムとIPアドレスの情報量に差が存在するため、IPチェックサムからIPアドレスを推定しようとしても、IPアドレスを一意に絞り込むことができない可能性がある。
この理由は、IPチェックサムが16ビット、つまり32768通りの組み合わせしか持たないのに対して、IPアドレスは32ビット、つまり32768×32768通りもの組み合わせを持っており、同じIPチェックサムを計算結果とするIPアドレスが32768通りも存在してしまうからである。
以上のことから、本発明の第1の実施の形態では、チェックサムからNATルータのIPアドレスとポート番号を絞り込むことができず、推定精度が悪かった。
本発明の第2の実施の形態では、図5の解析部506とパケット送信部505、およびパケット受信部504で実行する処理を変更する。本発明の第2の実施の形態の構成を図19に示す。
解析部1906は、図5の解析部506の処理に加えて、IPアドレスの推定精度を高めるために、ネットワークの経路調査用パケットを送信するようにパケット送信部1905に命令する。また、解析部1906は、パケット受信部1904から渡されるネットワークの経路調査結果から、IPアドレスの絞込み処理を行う。
パケット送信部1905は、図5のパケット送信部505の処理に加えて、解析部1906から経路調査用パケットの送信命令を受け取ると、経路調査用パケットを送信する。ここで行う経路調査方法は、あるPCから別のPCまでの経路上にどのようなルータが位置しているかを調べることである。
パケット受信部1904は、図5のパケット受信部504の処理に加えて、経路調査結果をネットワークから受け取ると、その結果を解析部1906に渡す。
その他の構成は、第1の実施の形態の図5と同じであるため、説明を省略する。
<動作>
続いて、図19を参照して本発明を実施するための第2の実施の形態の動作について詳細に説明する。
まず、本発明の第1の実施の形態と同じ処理を実行することにより、NATルータのIPアドレスとポート番号とを推定する。ただし、この時点では、上述したように、まだIPアドレスとポート番号を一意に値に絞り込めておらず、32768通りの組み合わせが存在する。
続いて、解析部1906は、ネットワークの経路調査試験を行う。この経路調査試験では、経路上に存在する各ルータを割り出すために、IPパケットにおけるTTL(Time To Live)の仕組みを利用する。TTLとは、IPパケットヘッダに指定可能な「生存時間」である。ただし、実際には時間ではなく、「ホップ数」を意味している。つまり、そのパケットが「生存」できるホップ数を指定するのがTTLである。
TTLには最大255が設定可能で、ルータをホップするごとに必ずTTLが1ずつ減らされる。そして、TTLが0に達するとパケットがルータで破棄されるとともに、パケットを破棄したルータはICMP Time Exceededエラーを送信元PCに送り返す。このICMPTime Exceededエラーには、破棄したルータのIPアドレスが含まれる。送信元PCはこのICMP Time Exceededエラーを受け取ることで、その送信元IPアドレスから、破棄したルータのIPアドレスを検出することができる。
上記のネットワークの経路調査試験では、TTLを1から順に増やしながら試行を重ねることにより、経路上に存在する各ルータの情報を得ている。例えば、PC401から、まず最初にTTLを1としたIPパケットをPC405に送出すると、1番目のNATルータ402(1ホップ目)が受け取った時点でTTLを減算した結果、0となってしまうので、NATルータ402からICMP Time Exceededエラーが送り返される。これが1台目のルータの結果となる。ただし、ここで得られるIPアドレスは、NATルータ402の内側(LAN側)IPアドレス(192.168.0.1)である。次にTTLを2にして送出すれば、2台目のルーター403のIPアドレス(200.10.1.2)が得られる。
上記の処理を実行するために、解析部1906は、まず、設定ファイルに登録されている宛先IPアドレスを取得し(図20のステップS2001)、PC405のIPアドレスとTTL値1をパケット送信部1905に通知する(図20のステップS2003)。
パケット送信部1905は、解析部1906から宛先IPアドレスを受け取り(図21のステップS2101)、この受け取った宛先IPアドレスとTTL値から、ICMP Echoリクエストパケットを生成し、MAC部1901に渡す(図21のステップS2102)。
MAC部1901は、パケット送信部1905からICMP Echoリクエストパケットを受け取ると(図22のステップS2201)、MACヘッダを追加し(図22のステップS2202)、ネットワークに転送する(図22のステップS2203)。
ネットワークに送出されたパケットは、各ルータにおいてTTLが1ずつ減算されていき、TTLが0となった時点でルータからICMP Time ExceededパケットがPC401に返される。
MAC部1901は、ネットワークからICMP Time Exceededパケットを受け取ると(図23のステップS2301)、MACヘッダを削除し(図23のステップS2302)、パケット受信部1904に転送する(図23のステップS2303)。
パケット受信部1904は、MAC部1901からICMP Time Exceededパケットを受け取ると(図24のステップS2401)、パケットの送信元IPアドレスGを解析部1906に通知する(図24のステップS2402)。
解析部1906は、パケット受信部1904からIPアドレスGを受け取とると(図25のステップS2501)、そのIPアドレスGがグローバルIPアドレスとなっているかどうかをチェックする(図25のステップS2502)。ここで、IPアドレスGがグローバルIPアドレスとなっていない場合には、次ホップのルータのIPアドレスを取得することを試みる。具体的な処理としては、PC405のIPアドレスとTTL値2をパケット送信部1905に通知する(図25のステップS2504)。
一方、上述の図25のステップS2502において、受け取ったIPアドレスGがグローバルIPアドレスとなっている場合には、このときのTTL値(ここではXとする)とIPアドレスGを記憶する。
そして、解析部1906は、まずこのIPアドレスGを元にして、第1の実施の形態で推定されたIPアドレスの絞込みを行う。
絞込み方法としては、図16のステップS1606で求められたIPアドレスのうち、IPアドレスGと近いものを抽出し、この抽出されたIPアドレスをNATルータのIPアドレスであると推定する(図25のステップS2507)。
この絞込み方法の正当性を以下に述べる。
解析部1906では、上記のネットワークの経路情報の取得処理により、ルータ403のIPアドレスG(200.10.1.2)を検出できる。ここで、ルータ403はNATルータ402と同じサブネットワークに入っているため、サブネットマスクで決められたネットワークアドレスは、ルータ403とNATルータ402は同じ値となっている。例えば、図4の例では、ルータ403のIPアドレスとNATルータ402のIPアドレスは、200.10.1.までは同じ値となっている。
解析部1906では、この特徴を利用し、本発明の第1の実施の形態において推定されたIPアドレスのうち、ルータ403のIPアドレスG(200.10.1.2)と近いものを検索することにより、NATルータ402のIPアドレスとして確からしいものを選択することができる。
ただし、このとき、ルータ403のIPアドレスG(200.10.1.2)を検出できても、そのサブネットマスクが何ビットであるかまでは検出できない。このため、サブネットマスクを想定する必要があるが、サブネットマスクの想定値によって、本発明の第1の実施の形態において推定されたIPアドレスのうち、ルータ403のIPアドレスG(200.10.1.2)と近いと判定されるものが複数でてきてしまう。
たとえば、サブネットマスクを8ビットと想定した場合、本発明の第1の実施の形態において推定されたIPアドレスのうち、ルータ403のIPアドレスG(200.10.1.2)と近いと判定されるものは、256通りほど出てくる可能性がある。
また、サブネットマスクを16ビットと想定した場合には、本発明の第1の実施の形態において推定されたIPアドレスのうち、ルータ403のIPアドレスG(200.10.1.2)と近いと判定されるものは、1つに絞りこめる。
このように、IPアドレスを絞り込めるか否かは、サブネットマスクの想定値に依存する。
以下では、サブネットマスクを8ビットと想定した場合の、さらなる絞込み方式について述べる。
ここで、サブネットマスクを8ビットとしているのは、サブネットマスクは8ビット以下に設定されることがなく、このような想定を行うことにより、本絞込み方式をあらゆるネットワークに適用できるためである。
上述したように、サブネットマスクを8ビットと想定すると、本発明の第1の実施の形態において推定されたIPアドレスは256通り程度に絞り込める。
このように絞り込まれたIPアドレスを、さらに絞り込んで一意に特定するために、解析部1906は以下のような処理を行う。
解析部1906では、まず、上記のように256通りに絞り込まれた各IPアドレスに対して、そのIPアドレスを持つ端末に到達するのに必要なホップ数を調査する。
ここで、端末までのホップ数は、LinuxやWindows(登録商標)などのOSに標準的に搭載されている traceroute(tracert)などのコマンドを使って調べることができる。
次に、プライベートIPアドレスとグローバルIPアドレスが切り替わるルータまでのホップ数を調査する。
このルータまでのホップ数の調査方法としては、PC405のようなグローバルIPアドレスをもつ端末に向けてtraceroute(tracert)コマンドを使用して、PC401とPC405の間のルータを調査することによって調査することができる。
例えば、PC401からPC405に向けて、traceroute(tracert)コマンドを使用した場合、以下のような結果が返される。
ホップ数 端末
1 NATルータ402(192.168.0.1)
2 ルータ403 (200.10.1.2 )
3 ルータ408
4 ルータ411
5 ルータ410
6 PC405 (200.20.1.1)
この場合、ホップ数1と2の間で、端末のIPアドレスがプライベートIPアドレスからグローバルIPアドレスに切り替わっている。この結果から、プライベートIPアドレスとグローバルIPアドレスが切り替わるルータまでのホップ数は1であると判定する。
解析部1906では、256通りに絞り込まれた各IPアドレスを一意に絞り込むために、上述のルータまでのホップ数を用いる。具体的には、256通りに絞り込まれた各IPアドレスのうち、上述のルータまでのホップ数(この場合1であるが)と一致するものを検索し、そのIPアドレスをNATルータ402の外部IPアドレスと判定する。
以上の処理により、ネットワークの経路調査結果から、NATルータのIPアドレスを絞り込めることが示された。
また、このIPアドレスに対応するポート番号は一意に定まるので、ポート番号も絞り込める。
<効果>
続いて、本発明を実施するための第2の実施の形態の効果について説明する。
本発明を実施するための第2の実施の形態では、専用サーバをインターネット上に設置することなく、ICMPヘッダのチェックサムの値とネットワークの経路調査結果からヘッダ変換を推定することにより、ヘッダ変換の内容を高精度に検出できるので、本発明の目的を達成することができる。
次に、本発明を実施するための第3の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第1および第2の実施の形態では、PC405から送り返されるICMPポート到達不能メッセージのチェックサムを元にして、NATルータのIPアドレスとポート番号を推定していた。しかしながら、ICMPポート到達不能メッセージは特殊なパケットであるので、NATルータによっては破棄してしまう可能性がある。
このように、NATルータにおいてICMPポート到達不能メッセージが破棄されてしまった場合、第1および第2の実施の形態では、ヘッダ変換の有無を検出することはできない。
以上のことから、本発明の第1および第2の実施の形態では、NATルータの種類によっては、ヘッダ変換の内容を推定できない可能性があり、使い勝手が悪い。
本発明の第3の実施の形態では、上記の問題を解決するために、図5の解析部506、パケット送信部505、およびパケット受信部504で実行する処理を変更する。本発明の第3の実施の形態の構成を図26に示す。
解析部は、図5の解析部506の処理に加えて、ネットワークのヘッダ変換を検出できるNATルータの種類を増やすために、ICMPポート到達不能メッセージの代わりに、より標準的なメッセージであるICMP Time Exceededエラーを利用する。このICMP Time Exceededエラーをルータから送り返してもらうために、解析部2606は、TTLの値を小さく設定したUDPパケットを送信するようにパケット送信部2605に命令する。また、解析部2606は、パケット受信部2604から渡されるICMPTime Exceededメッセージのヘッダ情報から、ネットワーク内で行われたヘッダ変換の内容を推定する。
パケット送信部2605は、解析部2606からUDPパケットの送信命令を受け取ると、指定された宛先に向けてUDPパケットの送信処理を行うために、データをMAC部2601に渡す。
パケット受信部2604は、ルータから送られてきたICMP Time Exceededメッセージを受信し、そのヘッダ情報を解析部2606に渡す。
その他の構成は、第2の実施の形態の図19と同じであるため、説明を省略する。
<動作>
続いて、図26を参照して本発明を実施するための第3の実施の形態の動作について詳細に説明する。
まず、解析部2606は、何らかのタイミングを契機に、UDPパケットまたはTCPパケットを送信する。
UDPパケット、またはTCPパケットを送信するタイミングとしては、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから命令された時
・解析部のサービス起動時
・PCの電源投入時
・一定の時間間隔毎
・PCのIPアドレスの更新時
ただし、前述の送信タイミングは単なる例であることが理解されるべきである。本説明を再検討すれば、送信タイミングとして多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
また、UDPパケット、またはTCPパケットの宛先としては、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから指定された、IPアドレスとポート番号に向けて送信する
・設定ファイルなどに予め設定されているIPアドレスとポート番号に向けて送信する
・ランダムに選んだIPアドレスとポート番号に向けて送信する
ただし、前述のパケットの宛先は単なる例であることが理解されるべきである。本説明を再検討すれば、パケットの宛先として多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
以下の動作説明では、解析部のサービス起動時に、UDPパケットを予め設定ファイルに登録されているIPアドレスとポート番号に向けて送信する方法を採用した場合を例に説明する。
ここで、設定ファイルには、IPアドレスとしてPC405の200.20.1.1、ポート番号として9999が登録されているものとする。
ただし、ポート番号として9999番を想定しているが、第3の実施の形態は、第1の実施の形態と異なり、ICMPポート到達不能メッセージを送り返してもらう必要がないので、ポート番号として任意のものを選択することができることは、本技術分野の当業者にとって明らかであろう。
さらに、ここで送信するUDPパケットのTTLには、2や3といった非常に小さな値が設定される。
TTLに小さな値を設定している理由は、ネットワーク内のルータからICMP TTL Exceededメッセージを返してもらうためである。
解析部2606は、パケット送信部2605に上記のIPアドレスとポート番号、およびTTL値を通知し、UDPパケットの送信を依頼する(図27のステップS2703)。
パケット送信部2605は、解析部2606から受け取った宛先IPアドレスとポート番号、およびTTL値から、UDPベースのIPパケットを生成し、MAC部2601に渡す(図28のステップS2802)。
MAC部2601は、パケット送信部2605からIPパケットを受け取ると、MACヘッダを付加してMACフレームを生成し、伝送路に送信する(図11(a))。
このように送信されたデータは、まず、図4のNATルータ402において、送信元IPアドレスと送信元ポート番号が変換される。この例では、送信元IPアドレスが192.168.0.2から200.10.1.1へ、送信元ポート番号が65000から65001に変更されたとする。また、これらの変更に伴い、IPヘッダのチェックサムとUDPヘッダのチェックサムも再計算される。この例では、IPヘッダのチェックサムが0x10から0x20に、UDPヘッダのチェックサムが0x100から0x200に変更されたとする。さらに、NATルータでは、TTLを2から1に書き換える。(図11(b))
このように変更されたパケットは、つぎにルータ403に届けられる。ルータ403では、TTLを1から0に書き換えるが、TTLが0になったので、このパケットを破棄する。そして、ルータ403はパケットの送信元であるNATルータ402にICMP Time Exceededメッセージを送り返す。
このICMP Time Exceededメッセージは、図11(c)ののようなパケットして送られるが、そのデータ部には先程ルータ403が受信したパケットがそのまま付加される。
NATルータ402は、このICMP Time Exceededメッセージを受信すると、PC401に転送するために、そのIPヘッダの宛先IPアドレスを200.10.1.1から192.168.0.2に変更する。また、この変更に伴い、IPヘッダのチェックサムも再計算し、0x30から0x40に変更している。
また、NATルータ402では、ICMP Time Exceededメッセージのデータ部も変更している。具体的には、送信元IPアドレスと200.10.1.1から192.168.0.2へ、送信元ポート番号を65001から65000に変更する。このようにICMPヘッダのデータ部も変更してやることにより、このICMP Time ExceededメッセージをあくまでPC401へのICMP Time Exceededメッセージであるかのようにできる。
ただし、NATルータ402では、ICMPヘッダのデータ部のチェックサムまでは変更されないため、チェックサムは誤った値となっている(図11(d))。
PC402は、このICMPパケットをNATルータ402から受け取ると、まずMAC部2601でMACヘッダを外した後、IP部2602に転送する。
IP部2602は、MAC部2601からICMPパケットを受け取ると、IPヘッダを外した後、そのデータがUDPパケットに応答して送信されたICMPパケットのデータ部分であるかを判断する。判断の結果、UDPパケットに応答して送信されたICMPパケットである場合には、パケット受信部2604に転送する。
パケット受信部2604は、IP部2602からICMPパケットを受け取ると、そのICMPヘッダのデータ部を解析部2606に転送する。
解析部2606は、パケット受信部からデータ部を受け取ると、そのチェックサムの状態から、ネットワークでヘッダ変換が行われたのかどうかを検出する。
具体的には、IPアドレスの変換が行われた場合には、データ部のIPチェックサムが誤った値となるので、検出することができる。また、ポート番号の変換が行われた場合には、データ部のUDPチェックサムが誤った値となるので、同様に検出することができる。
解析部2606は、ヘッダ変換の発生を検出すると、ヘッダの変更内容の推定処理を開始する。この解析部で行われる推定処理は、第1の実施の形態の解析部506で行われる推定処理と同じであるため、説明を省略する。
また、本発明の第3の実施の形態だけでは、本発明の第1の実施の形態と同じ理由により、IPアドレスとポート番号を一意に絞り込むことはできないが、本発明の第2の実施の形態と組み合わせることにより、推定精度を高めることができる。
以上の処理により、ICMPポート到達不能メッセージがNATルータで破棄されてしまう場合でも、より標準的なメッセージであるICMP Time Exceededエラーを利用することにより、NATの送信元IPアドレスとポート番号を推定できることが示された。
<効果>
続いて、本発明を実施するための第3の実施の形態の効果について説明する。
本発明を実施するための第3の実施の形態では、ルータから送り返されてくるICMPTime Exceededメッセージの情報を元にして、ネットワーク内におけるヘッダ変換を推定することにより、ICMPポート到達不能メッセージがネットワーク内で破棄されてしまった場合でも、専用サーバをインターネット上に設置することなく、ネットワークのヘッダ変換を検出することができ、本発明の目的を達成することができる。
次に、本発明を実施するための第4の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第1、第2、および第3の実施の形態では、図11(b)のように、NATルータ402において、IPアドレスだけでなく、ポート番号も変換されることを仮定していた。すなわち、NATルータ402において、NAPTの処理が実行されることを想定していた。また、図11(d)のように、NATルータ402において、ネットワークから送り返されるICMPパケットのチェックサムのうち、IPチェックサムとUDPチェックサムの両方が誤った値のまま転送されることを仮定していた。
しかしながら、NATルータによっては、そのヘッダ変換の動作が、図11(b)とは異なり、IPアドレスのみを変換し、ポート番号は変換しないという単純なNAT動作であるものも多い。また、NATルータによっては、そのヘッダ変換の動作が、図11(d)とは異なり、ネットワークから送り返されるICMPパケットのチェックサムのうち、IPチェックサムについては正しい値に変換してから転送するものも多い。
本発明の第4の実施の形態では、NATルータ402の動作として上記のように、NAT処理を行うとともに、IPチェックサムは正しく訂正するようなものを想定し、このような状況においても、ICMPパケットのチェックサムの値から、NATルータのIPアドレスを推定する方法について述べる。
本発明の第4の実施の形態では、上記の問題を解決するために、図26の解析部2606、パケット送信部2605、およびパケット受信部2604で実行する処理を変更する。本発明の第4の実施の形態の構成を図29に示す。
解析部2906は、図26の解析部の処理に加えて、NATルータ402がNATの動作を実行しているかどうかを確かめるために、ある宛先に向けてパケットを送信するようにパケット送信部2905に命令する。また、解析部2906は、パケット受信部2904から渡されるICMP Time Exceededメッセージのヘッダ情報から、ネットワーク内で行われたヘッダ変換の内容を検出する。
パケット送信部2905は、解析部2906からパケットの送信命令を受け取ると、指定された宛先に向けてパケットの送信処理を行うために、データをMAC部2601に渡す。
パケット受信部2904は、ルータから送り返されてきたICMP Time Exceededメッセージを受信し、そのヘッダ情報を解析部2906に渡す。
<動作>
続いて、図29を参照して本発明を実施するための第4の実施の形態の動作について詳細に説明する。
解析部2906からパケットをPC405に向けて送信する処理は、第3の実施の形態と同じであるため、説明を省略する。
以降の動作説明では、第3の実施の形態と同様に、UDPパケットをPC401から送信することを想定しているが、UDPパケットの代わりにTCPパケットを送信しても支障がないことは、本技術分野の当業者にとって明らかであろう。
このように送信されたデータは、まず、図4のNATルータ402において、送信元IPアドレスが変換される。この例では、図30(b)のように、送信元IPアドレスが192.168.0.2から200.10.1.1に変換される。ここで、送信元ポート番号は65000番から変更されないものとする。また、この変更に伴い、IPヘッダのチェックサムとUDPヘッダのチェックサムも再計算される。
この例では、IPヘッダのチェックサムが0x10から0x20に、UDPヘッダのチェックサムが0x100から0x200に変更されたとする。さらに、NATルータ402では、TTLを2から1に書き換える。
このように変更されたパケットは、つぎにルータ403に届けられる。ルータ403では、TTLを1から0に書き換えるが、TTLが0になったので、このパケットを破棄する。そして、ルータ403はパケットの送信元であるNATルータ402にICMP Time Exceededメッセージを送り返す。
このICMP Time Exceededメッセージは、図30(c)のようなパケットして送られるが、そのデータ部には先程ルータ403が受信したパケットがそのまま付加される。
NATルータ402は、このICMP Time Exceededメッセージを受信すると、PC401に転送するために、そのIPヘッダの宛先IPアドレスを200.10.1.1から192.168.0.2に変更する。また、この変更に伴い、IPヘッダのチェックサムも再計算し、0x30から0x40に変更している。
また、NATルータ402では、ICMP Time Exceededメッセージのデータ部も変更している。具体的には、送信元IPアドレスと200.20.1.1から192.168.0.2に変更する。このようにICMPヘッダのデータ部も変更してやることにより、このICMP Time ExceededメッセージをあくまでPC401へのICMP Time Exceededメッセージであるかのようにできる。また、この変更に伴い、図30(d)に示されるように、ICMPヘッダのチェックサムのうち、IPチェックサムを再計算し、0x20から0x50に変更している。
ただし、NATルータ402では、UDPチェックサムまでは変更しないため、UDPチェックサムは誤った値となっている。
PC401は、このICMPパケットをNATルータ402から受け取ると、第3の実施の形態で述べた処理により、ICMPヘッダのデータ部が解析部2906に転送される。
解析部2906は、パケット受信部2904からICMPヘッダのデータ部を受け取ると、そのチェックサムの状態から、ネットワークでヘッダ変換が行われたのかどうかを検出する。
ここで、データ部のIPチェックサムは正しい値となっているので、IPチェックサムから、NATルータ402でIPアドレスの変換が行われたかどうかを検出することはできない。
しかしながら、UDPチェックサムは誤った値となっているので、NATルータ402において、IPアドレスまたはポート番号の変換が行われたことを検出することができる。
このように、UDPチェックサムが誤っている原因がIPアドレスの変換にあると考えられる理由としては、UDPチェックサムが図18のように、IPアドレスを含む擬似ヘッダを加味した形で計算されるからである。
よって、解析部2906では、NATルータ402でIPアドレスの変換が行われたと想定して、UDPチェックサムからNATルータ402のIPアドレスを推定する。この推定処理は、本発明の第1の実施の形態と同様であるため、説明を省略する。また、この推定処理だけでは、NATルータ402のIPアドレスを一意に絞り込むことはできないため、第2の実施の形態のように、さらにネットワークの経路調査試験を行うことにより、推定精度を上げることが望ましい。
以上の処理により、NATルータ402において、IPチェックサムが正しい値に変換されてしまう場合でも、UDPチェックサムの値から、NATルータ402のIPアドレスを推定できることが示された。
<効果>
続いて、本発明を実施するための第4の実施の形態の効果について説明する。
本発明を実施するための第4の実施の形態では、NATルータにおいて、IPチェックサムが正しい値に変換されてしまう場合でも、ICMPパケットのUDPチェックサムの値からNATルータのIPアドレスを推定できるため、専用サーバをインターネット上に設置することなく、ヘッダ変換を検出するという本発明の目的を達成することができる。
次に、本発明を実施するための第5の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第1から第4の実施の形態では、NATルータのIPアドレスとポート番号の推定方法について述べた。本発明の第5の実施の形態では、このようにNATルータの情報を推定するのに加えて、NATルータの配下に繋がれているPC間でパケットを送受信するのに必要な情報の推定方法について述べる。
具体的には、図4のPC401とPC407の間でパケットをやり取りするのに必要な情報の推定方法について述べる。
本発明の第5の実施の形態の構成を図31に示す。本発明の第5の実施の形態では、上記の問題を解決するために、図26の解析部2606、パケット送信部2605、およびパケット受信部2604で実行する処理を変更するとともに、アプリケーション部3107を含む。
図31の解析部3106は、図26の解析部2606の処理に加えて、自ノードが繋がれているNATルータのIPアドレスとポート番号を通信相手となるPCに通知する。また、解析部3106は、通信相手となるPCから、そのPCが繋がれているNATルータのIPアドレスとポート番号を受け取り、そのIPアドレスとポート番号宛にUDPパケットを送信するようにパケット送信部3105に命令する。
アプリケーション部3107は、通信相手となるPCにデータを送信する場合、解析部3106にデータ送信要求を発行する。また、アプリケーション部3107は、通信相手となるPCからデータを受信する場合、解析部3106からデータを受け取る。
その他の構成は、第1から第4の実施の形態と同じであるため、説明を省略する。
<動作>
続いて、図31を参照して本発明を実施するための第5の実施の形態の動作について詳細に説明する。
まず、解析部3106は、何らかのタイミングを契機に、UDPパケットまたはTCPパケットを送信する。
UDPパケット、またはTCPパケットを送信するタイミングとして、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから命令された時
・解析部のサービス起動時
・PCの電源投入時
・一定の時間間隔毎
・PCのIPアドレスの更新時
ただし、前述の送信タイミングは単なる例であることが理解されるべきである。本説明を再検討すれば、送信タイミングとして多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
また、UDPパケット、またはTCPパケットの宛先として、下記のうちのいずれか、および組み合わせが考えられる。
・ユーザインターフェースや他のアプリケーションから指定された、IPアドレスとポート番号に向けて送信する
・設定ファイルなどに予め設定されているIPアドレスとポート番号に向けて送信する
・ランダムに選んだIPアドレスとポート番号に向けて送信する
ただし、前述のパケットの宛先は単なる例であることが理解されるべきである。本説明を再検討すれば、パケットの宛先として多種多様なものが存在することは、本技術分野の当業者にとって明らかであろう。
以下の動作説明では、アプリケーション部3107からの命令を契機に、UDPパケットを予め設定ファイルに登録されているIPアドレスとポート番号に向けて送信する方法を採用した場合を例に説明する。
以降の動作説明では、第3の実施の形態と同様に、UDPパケットをPC401から送信することを想定しているが、UDPパケットの代わりにTCPパケットを送信しても支障がないことは、本技術分野の当業者にとって明らかであろう。
ここで、解析部3106からUDPベースのIPパケットが送信される処理は、第3の実施の形態と同じであるため、説明を省略する。
また、NATルータ402でのヘッダ変換処理、およびルータ403でのICMP Time Exceededパケットの返信処理についても、第3の実施の形態と同じであるため、説明を省略する。
PC401は、ルータ403から送り返されたICMP Time Exceededパケットを受け取る。
このICMP Time Exceededパケットのヘッダのデータ部が解析部3106に渡される処理は、第3の実施の形態と同じであるため、説明を省略する。
解析部3106は、パケット受信部3104からICMP Time Exceededパケットのヘッダのデータ部を受け取ると、そのチェックサムの状態から、ネットワークでヘッダ変換が行われたのかどうかを検出する。
解析部3106は、ヘッダ変換の発生を検出すると、ヘッダの変更内容の推定処理を開始するが、ここで行われる推定処理は、第3の実施の形態の解析部で行われる推定処理と同じであるため、説明を省略する。
解析部3106では、このように推定されたNATルータ402のIPアドレスとポート番号を通信相手となるPC407に通知する。
この通知手段としては、通信相手となるPC407のユーザに向けてメールを送信したり、そのユーザに電話をかけたり、FAXを送信して伝える等といったことが考えられる。この通知の様子が、図33に経路1として示されている。
次に、通信相手となるPC407側の動作について述べる。
PC407では、前記通知手段により、PC401からNATルータ402のIPアドレスとポート番号を受け取ると、PC407の解析部3106はそのIPアドレスとポート番号をパケット送信部3105に通知し、UDPパケットの送信を依頼する(図32のステップS3203)。
以降のパケット送信処理は、第1の実施の形態の図7〜図10と同じであるため、説明を省略する。
このようにPC407から送信されたデータは、図4のNATルータ406において、送信元IPアドレスと送信元ポート番号が変換される。この例では、送信元IPアドレスが192.168.1.2から200.30.1.1へ、送信元ポート番号が65000から65001に変更されたとする。
このように変更されたパケットは、通信相手側のNATルータ402に届けられる。
NATルータ402の動作モードが非特許文献1に示されるような「Full Cone NAT」と呼ばれるタイプであれば、このように届けられたパケットは、NATルータ402で破棄されることなく、NATルータ402からPC401に転送される。
PC401は、このパケットをNATルータ402から受け取ると、このパケットをMAC部3101からパケット受信部3104に吸い上げる。
解析部3106は、パケット受信部3104からパケットを受け取ると、そのヘッダから通信相手のNATルータ406のIPアドレスとポート番号を取得できる。
以上の処理により、NATルータに繋がれたPC401とPC407の間でパケットをやり取りするために必要な情報を推定することができた。
この後、PC401とPC407のアプリケーション間で通信する際には、アプリケーション部3107は解析部3106を介してデータをやり取りする。例えば、解析部3106は、アプリケーション部3107からデータを受け取ると、通信相手となるNATルータのIPアドレスとポート番号をパケット送信部3105に通知し、UDPパケットの送信を依頼する。以降の送信処理は、第1の実施の形態の図7〜図10と同じであるため、説明を省略する。
一方、PC407では、PC401から送信されたパケットを、第1の実施の形態の図12〜図14の処理により、MAC部3101から解析部3106に吸い上げる。この後、解析部3106からからアプリケーション部3107にデータを転送する。
以上、NATルータの動作モードが「Full Cone NAT」と呼ばれるタイプの場合の動作について説明した。
一方、NATルータの動作モードが非特許文献1に示されるような「Restricted Cone NAT」、または「Port Restricted Cone NAT」と呼ばれるタイプの場合、図32のステップS3203で、PC407からNATルータ402宛に送信されたパケットはNATルータ402において破棄されてしまう。
このように破棄されてしまう理由は、これらのNATルータでは、非特許文献1に示されるように、一度パケットを送信したことのあるIPアドレス/ポート番号からのパケットしか受け付けないためである。
本発明の第5の実施の形態では、NATルータがこのようなタイプの場合でも、パケットをやり取りするのに必要な情報を推定するために、以下のような処理を行う。
まず、前述の通知手段により、PC407は、PC401からNATルータ402のIPアドレスとポート番号を受け取ると、NATルータ406のIPアドレスとポート番号を取得することを試みる。NATルータ406の情報の取得方法としては、第3の実施の形態と同様に、TTL値を小さくしたUDPパケットを送信する。ただし、ここで送信するUDPパケットの宛先としては、PC401から通知されたNATルータ402のIPアドレスとポート番号を指定するものとする。
ここで行われるパケット送信処理は、第3の実施の形態の図27〜図28と同じであるため、説明を省略する。
このようにPC407から送信されたパケットは、まず、図4のNATルータ407において、送信元IPアドレスと送信元ポート番号が変換される。変換処理の内容は、図11と同じであるため、説明を省略する。
このように変更されたパケットは、つぎにルータ411に届けられる。ルータ411では、TTLを1から0に書き換えるが、TTLが0になったので、このパケットを破棄する。そして、ルータ411はパケットの送信元であるNATルータ406にICMP Time Exceededメッセージを送り返す。
PC407は、このICMP Time ExceededメッセージをNATルータ406から受け取ると、第3の実施の形態と同様にして、そのチェックサムからNATルータ406のIPアドレスとポート番号を取得することができる。
ここで行われるパケット受信処理とヘッダの変更内容の推定処理は、第3の実施の形態と同じであるため、説明を省略する。
PC407の解析部3106では、このように推定されたNATルータ406のIPアドレスとポート番号を通信相手となるPC401に通知する。
この通知手段としては、通信相手のPC401のユーザに向けてメールを送信したり、そのユーザに電話をかけたり、FAXを送信して伝える等といったことが考えられる。この通知の様子が、図33に経路2として示されている。
PC401では、前記通知手段により、PC407からNATルータ406のIPアドレスとポート番号を受け取ると、PC401の解析部3106はそのIPアドレスとポート番号をパケット送信部3105に通知し、UDPパケットを送信を依頼する(図32のステップS3203)。
ここで行われるパケット送信処理は、第1の実施の形態の図7〜図10と同じであるため、説明を省略する。
このように送信されたデータは、図4のNATルータ402において、送信元IPアドレスと送信元ポート番号が変換された後、通信相手側のNATルータ406に届けられる。
NATルータ406は、先程の通信処理において、このパケットの送信元であるNATルータ402にパケットを送信したことがあるので、パケットを破棄することなく、PC407に転送する。
PC407は、このパケットをNATルータ402から受け取ると、このパケットをMAC部3101から解析部3106に吸い上げるが、この処理は第1の実施の形態の図12〜図14と同じであるため、説明を省略する。
解析部3106は、パケット受信部3104からパケットを受け取ると、そのヘッダから通信相手のNATルータ406のIPアドレスとポート番号を取得できる。
以上の処理により、NATルータに繋がれたPC401とPC407の間でパケットをやり取りするために必要な情報を推定することができた。
この後、PC401とPC407のアプリケーション間で通信する際には、アプリケーション部3107は解析部3106を介してデータをやり取りする。
以上のように、PCがNATルータに繋がれている場合でも、ICMPパケットのチェックサムから推定されたNATルータのIPアドレスとポート番号を通信相手に通知し合うことにより、PC間でパケットをやり取りするのに必要な情報を推定できることが示された。
以上、NATルータの動作モードが「Restricted Cone NAT」、または「Port Restricted Cone NAT」と呼ばれるタイプの場合の動作について説明した。
一方、NATルータの動作モードが非特許文献1に示されるような「Symmetric NAT」と呼ばれるタイプの場合、上述のような処理を行っても、PC401からNATルータ406に送信されたパケットはNATルータ406において破棄されてしまう。
破棄されてしまう理由は、このようなNATルータでは、非特許文献1に示されるように、NATルータにおける送信元ポート番号が宛先IPアドレス/宛先ポート番号に応じて変化してしまうためである。例えば、図33の経路1で、PC401からPC407にNATルータ402のPC405との通信用ポート番号を通知しているが、PC407では受け取ったポート番号を宛先としたパケットを送信する。また、PC407は、図33の経路2において、このときの送信パケットにNATルータ406から割り当てられる送信元ポート番号をPC401に通知する。PC401では、受け取ったポート番号を宛先としたパケットを送信する。ここで注意すべきことは、このときPC401から送信されたパケットの送信元ポート番号には、「Symmetric NAT」の特性から、PC405との通信用ポート番号と異なる値が付与されていることである。このようなパケットをNATルータ406が受信すると、その送信元ポート番号とのマッピングテーブルはまだ作成されていないので、パケットを破棄してしまう。以上のことから、上述の方法では「Symmetric NAT」の場合には対応できない。
本発明の第5の実施の形態では、NATルータがこのような「Symmetric NAT」の場合でも、パケットをやり取りするのに必要な情報を推定するために、以下のような処理を行う。
まず、前述の通知手段により、PC407は、PC401からNATルータ402のIPアドレスとポート番号を受け取ると、NATルータ406のIPアドレスとNATルータ402との通信用ポート番号を推定する。
ここで行われる推定処理は、NATルータが「Restricted Cone NAT」、または「Port Restricted Cone NAT」の場合の動作と同じであり、既に説明しているため、説明を省略する。
ただし、このとき推定できるポート番号は、あくまで、NATルータ406において、NATルータ402のPC405との通信用ポート番号に対して割り当てられたポート番号である。
PC407では、このようにNATルータ406のIPアドレスとNATルータ402との通信用ポート番号を取得すると、次に、NATルータ406のポート番号の割り当て処理の規則性を調査する。非特許文献1には、「Symmetric NAT」の規則性について示されている。非特許文献1によると、「Symmetric NAT」の特性を持つNATルータは、その送信元ポート番号として、1ずつ増えるような値を割り当てることが多い。
本発明の第5の実施の形態では、この規則性を調査するために、PC407からグローバルIPアドレスの端末を宛先としたパケットを複数送信するとともに、第3の実施の形態に従って、NATルータ406において、その宛先毎に割り当てられた送信元ポート番号を推定する。以上のように推定された送信元ポート番号を元にして、PC407は、「Symmetric NAT」の規則性を把握し、NATルータ402との通信用に設定される「真」のポート番号を推定する。
PC407は、このように推測されたポート番号と、NATルータ406のIPアドレスをPC401に通知する。
一方、PC401では、このとき、PC407から受け取ったIPアドレスとポート番号を宛先としたパケットを送信するとともに、NATルータ402からそのパケットに割り当てられた送信元ポート番号を推定する。この推定処理は、第3の実施の形態と同じであるため、説明を省略する。PC401は、このように推定されたポート番号を、再度、PC407に通知する。
PC407は、このようにPC401から受け取ったポート番号を宛先としたパケットを送信する(宛先IPアドレスもPC401とする)。ここで、NATルータ406では、パケットの送信元ポート番号を、前述の「Symmetric NAT」の規則性から推定されているポート番号に変換するものとする。このように変換されたパケットが、NATルータ402に到達すると、NATルータ402では、前述のパケット送信処理によって既にマッピングテーブルが作成されているので、このパケットを破棄せずにPC401に転送する。
以上のように、PCがNATルータに繋がれている場合でも、ICMPパケットのチェックサムから推定されたNATルータのIPアドレスとポート番号を通信相手に通知し合うことにより、PC間でパケットをやり取りするのに必要な情報を推定できることが示された。
以上、NATルータの動作モードが「Symmetric NAT」と呼ばれるタイプの場合の動作について説明した。
一方、上記の説明では、本発明の第1〜第4の実施の形態の方法を用いることにより、NATルータのIPアドレスやポート番号を一意に絞り込めることを前提としていた。これに対して、上記の方法で、IPアドレスやポート番号を一意に絞り込むことができず、複数の候補が残っている場合には、間違った通信相手から接続要求を受けてしまう可能性がある。
このような問題を回避するために、第5の実施の形態では、パケットの中にメールアドレスや識別子など、通信相手を特定する情報を付加しておくことにより、所望の相手以外からの接続要求を防止できる。
<効果>
続いて、本発明を実施するための第5の実施の形態の効果について説明する。
本発明を実施するための第5の実施の形態では、通信相手となるPCがNATルータの配下に設置されている場合でも、ICMPパケットのチェックサムからNATルータのIPアドレスとポート番号を推定するとともに、お互いにその情報を通知しあうことにより、専用サーバをインターネット上に設置することなく、PC間でパケットをやり取りするのに必要な情報を推定でき、本発明の目的を達成することができる。
次に、本発明を実施するための第6の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第1から第5の実施の形態では、NATルータのIPアドレスとポート番号の推定方法について述べたが、本発明の第6の実施の形態では、ToSフィールドの変化を推定する方法について述べる。
図34を参照すると、本発明の第6の実施の形態は、インターネットのようなネットワーク3404と、ユーザが操作するPC3401と、インターネット上に設置されている任意のPC3405と、パケットの経路制御を行うルータ3403とを含む。また、ネットワーク3404は、パケットの経路制御を行うルータ3408〜3411を含む。
ここで、ルータ3403では、特定のフローを優先的に取り扱うために、パケットのToSフィールドが変更されるものとする。
PC3401の内部構成を図35に示す。
図35に示されるように、PC3401の内部構成は、図26のPC401の内部構成と同じである。ただし、本発明の第6の実施の形態では、上記の問題を解決するために、図26の解析部2606で実行する処理を変更している。
本発明の第5の実施の形態の解析部3506では、図26の解析部2606の処理に加えて、パケット受信部2604から渡されるICMP Time Exceededメッセージから、ネットワーク内で行われたToSフィールドの変化を検出する処理を行う。
他の処理は、第3の実施の形態の図26と同じであるため、説明を省略する。
<動作>
PC3401から、TTL値の小さなパケットを送信する処理については、第3の実施の形態と同じであるため、説明を省略する(図36(a))。
以降の動作説明では、第3の実施の形態と同様に、UDPパケットをPC3401から送信することを想定しているが、UDPパケットの代わりにTCPパケットを送信しても支障がないことは、本技術分野の当業者にとって明らかであろう。
PC3401から送信されたデータは、まず、図34のルータ3403において、IPヘッダのToSフィールドが変更される。この例では、ToSフィールドが0x00から0xc0に変更されたとする。また、これらの変更に伴い、IPヘッダのチェックサムも再計算される。この例では、IPヘッダのチェックサムが0x10から0x20に変更されたとする(図36(b))。さらに、ルータ3403はTTLを2から1に書き換える。
このように変更されたパケットは、つぎにルータ3408に届けられる。ルータ3408では、TTLを1から0に書き換えるが、TTLが0になったので、このパケットを破棄する。そして、ルータ3408はパケットの送信元であるPC3401にICMP Time Exceededメッセージを送り返す。このICMP Time Exceededメッセージは、図36(c)のようなパケットして送られるが、そのデータ部には先程ルータ3408が受信したパケットがそのまま付加される。
PC3401は、このICMPパケットをルータ3408から受け取ると、第3の実施の形態と同じように、MAC部3501から解析部3506まで吸い上げられる。
解析部3506は、パケット受信部3504からICMP Time Exceededメッセージのヘッダのデータ部を受け取ると、そのデータの状態から、ネットワークでToSフィールドが変換されかどうか検出できる。
具体的には、ICMP Time ExceededメッセージのToSフィールドをチェックし、ToSフィールドが0となっていない場合にはToSフィールドの書き換えが発生したと判断することにより、ネットワーク内における優先制御機能の稼動状況を検出できる(図36(c))。
以上の処理により、ICMP Time Exceededメッセージを利用することにより、ネットワーク内におけるToSフィールドの変化を推定できることが示された。
<効果>
続いて、本発明を実施するための第6の実施の形態の効果について説明する。
本発明を実施するための第6の実施の形態では、ルータから送り返されてくるICMPTime Exceededメッセージの情報を元にして、ネットワーク内におけるToSフィールドの変化を推定することにより、専用サーバをインターネット上に設置することなく、ネットワーク内で優先制御機能が働いていることを検出することができ、本発明の目的を達成することができる。
次に、本発明を実施するための第7の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第6の実施の形態では、ToSフィールドの推定方法について述べたが、本発明の第7の実施の形態では、フラグメントが発生したかどうかを推定する方法について述べる。
図37を参照すると、本発明の第7の実施の形態は、インターネットのようなネットワーク3704と、ユーザが操作するPC3701と、インターネット上に設置されている任意のPC3705と、パケットの経路制御を行うルータ3703とを含む。また、ネットワーク3704は、パケットの経路制御を行うルータ3708〜3711を含む。
ここで、ルータ3708では、データサイズが回線のMTUを越えないように、パケットのフラグメントが行われるものとする。
PC3701の内部構成を図38に示す。
図38に示されるように、PC3701の内部構成は、図35に示される本発明の第6の実施の形態のPC3401の内部構成と同じである。ただし、本発明の第7の実施の形態では、上記の問題を解決するために、図35の解析部3506で実行する処理を変更している。
本発明の第7の実施の形態の解析部3806では、図35の解析部3506の処理に加えて、パケット受信部3804から渡されるICMP Time Exceededメッセージから、ネットワーク内で行われたフラグメントの発生を検出する。
他の内部構成は、第6の実施の形態の図35と同じであるため、説明を省略する。
<動作>
PC3701から、TTL値の小さなパケットを送信する処理については、第6の実施の形態と同じであるため、説明を省略する(図39(a))。
以降の動作説明では、第3の実施の形態と同様に、UDPパケットをPC3701から送信することを想定しているが、UDPパケットの代わりにTCPパケットを送信しても支障がないことは、本技術分野の当業者にとって明らかであろう。
PC3701から送信されたパケットサイズが1300byteであると仮定する(図39(a))。
PC3701から送信されたデータは、まず、図37のルータ3708において、IPパケットのフラグメントが行われる。この例では、パケットサイズが800byteと500byteの2つのパケットに分割されるものとする。フラグメントを行ったルータ3708は、パケットのフラグフィールドの第3ビットを1に設定するとともに、最終パケットのフラグフィールドに0を設定する。また、フラグメントオフセットフィールドにはデータのオフセット値を設定する。
また、これらの変更に伴い、IPヘッダのチェックサムも再計算される(図39(b)、図39(c))。さらに、ルータ3708では、TTLを2から1に書き換える。
このように変更されたパケットは、つぎにルータ3709に届けられる。ルータ3709では、TTLを1から0に書き換えるが、TTLが0になったので、このパケットを破棄する。そして、ルータ3709はパケットの送信元であるPC3701にICMP Time Exceededメッセージを送り返す。このICMP Time Exceededメッセージは、図39(d)、図39(e)ののようなパケットして送られるが、そのデータ部には先程ルータ3709が受信したパケットがそのまま付加される。
PC3701は、このICMPパケットをルータ3709から受け取ると、第6の実施の形態と同じように、MAC部3801から解析部3806まで吸い上げられる。
解析部3806は、パケット受信部3804からICMP Time Exceededメッセージのヘッダのデータ部を受け取ると、そのデータの状態から、ネットワークでフラグメントが発生したかどうか検出できる。
具体的には、ICMP Time Exceededメッセージのフラグメントフィールドとオフセットフィールドをチェックし、両方のフィールドが0となっていない場合にはフラグメントが発生したものと判断することにより、ネットワーク内におけるフラグメントの発生状況を検出できる(図39(d)、図39(e))。
以上の処理により、ICMP Time Exceededメッセージを利用することにより、ネットワーク内におけるフラグメントの発生を検出できることが示された。
<効果>
続いて、本発明を実施するための第7の実施の形態の効果について説明する。
本発明を実施するための第7の実施の形態では、ルータから送り返されてくるICMPTime Exceededメッセージの情報を元にして、ネットワーク内におけるフラグメントの発生状況を推定することにより、専用サーバをインターネット上に設置することなく、ネットワーク内でフラグメントが発生したかどうかを検出することができ、本発明の目的を達成することができる。
続いて、本発明を実施するための第8の実施の形態について図面を参照して詳細に説明する。
<構成>
本発明の第5の実施の形態では、PC間でUDPパケットをやり取りするために必要な情報を把握する方法について述べたが、本発明の第8の実施の形態では、PC間でTCPパケットをやり取りするために必要な情報を把握するための方法について述べる。
具体的には、図4のPC401とPC407との間でTCPパケットをやり取りするのに必要な情報の推定方法について述べる。
本発明の第8の実施の形態の構成を図40に示す。本発明の第8の実施の形態では、上記の問題を解決するために、図31の解析部3106、パケット送信部3105、およびパケット受信部3104で実行する処理を変更するとともに、TCP部4008を含む。
図40の解析部4006は、図31の解析部3106の処理に加えて、TCPパケットのシーケンス番号を通信相手に通知する。また、相手からNATルータのIPアドレスとポート番号、およびシーケンス番号を受け取り、これらの情報を元にしたTCPパケットを送信するようにパケット送信部4105に命令する。
TCP部4008は、パケット送信部から渡されたデータにTCPヘッダを追加した後、IP部4002に渡す。また、IP部4002から渡されたデータからTCPヘッダを外した後、パケット受信部4004に渡す。
その他の構成は、第5の実施の形態と同じであるため、説明を省略する。
<動作>
続いて、図40を参照して本発明を実施するための第8の実施の形態の動作について詳細に説明する。
第8の実施の形態では、まず、NATルータのIPアドレスとUDPパケット用のポート番号を推定するとともに、それらの情報を通信相手に通知することを行うが、これらの処理は第5の実施の形態とまったく同じであるため、説明を省略する。よって、以下の説明では、図4のPC401とPC407の間において、通信相手のNATルータのIPアドレスとUDPパケット用のポート番号を既に取得していることを前提にして話を進める。
次に、PC401とPC407の解析部4006は、TTL値を小さく設定したTCPのSYNパケットを通信相手のNATルータに向けて送信するようにパケット送信部4005に命令する。尚、このTTL値はネットワークの輻輳を考慮すると小さい値の方が良いが、PC407に届かない値にすれば良い。
パケット送信部4005は、解析部4006からSYNパケットの送信命令を受け取ると、指定された宛先に向けてSYNパケットの送信処理を行うために、データをTCP部4008に渡す。
TCP部4008は、このデータを受け取ると、宛先ポート番号が既に取得しているNATルータのポート番号となっているTCPヘッダを付与して、SYNパケットを生成する。このように、PC401とPC407の双方からSYNパケットを送信するが、この際、SYNパケットに付与されるTCPシーケンス番号を記録しておく。ここで、PC401が送信したSYNパケットのTCPシーケンス番号をXとし、PC407が送信したSYNパケットのTCPシーケンス番号をYとする。TCP部4008は、このSYNパケットをIP部4002に渡す。
IP部4002は、TCP部4008からSYNパケットを受け取ると、宛先IPアドレスがNATルータのIPアドレスとなっているIPヘッダを付与し、MAC部4001に渡す。
MAC部4001は、IP部4002からパケットを受け取ると、MACヘッダを付与し、伝送路に送信する。
ただし、このように送信されたSYNパケットは、TTL値が小さいので、途中経路のルータにおいてパケットが破棄される。
次に、PC401とPC407の解析部4006は、先ほど記録したTCPシーケンス番号を通信相手にメールで通知する。
PC401とPC407の解析部4006は、通信相手からTCPシーケンス番号をメールで受け取ると、このTCPシーケンス番号を考慮したSYN+ACKパケットを送信するように、パケット送信部4005に命令する。
パケット送信部4005は、解析部4006からSYN+ACKパケットの送信命令を受け取ると、指定された宛先に向けてSYN+ACKパケットの送信処理を行うために、データをTCP部4008に渡す。
TCP部4008は、このデータを受け取ると、宛先ポート番号がNATルータのポート番号、TCPシーケンス番号とTCP確認応答番号に適切な値が設定されているTCPヘッダを付与して、SYN+ACKパケットを生成する。ここで、PC401から送信するSYN+ACKパケットについて考えると、その宛先ポート番号にNATルータ406のポート番号、TCPシーケンス番号にX、TCP確認応答番号にY+1が設定される。一方、PC407から送信するSYN+ACKパケットについて考えると、その宛先ポート番号にNATルータ402のポート番号、TCPシーケンス番号にY、TCP確認応答番号にX+1が設定される。PC401とPC407のTCP部4008は、このようなSYN+ACKパケットをIP部4002に渡す。
IP部4002は、TCP部4008からSYN+ACKパケットを受け取ると、宛先IPアドレスが通信相手のNATルータのIPアドレスとなっているIPヘッダを付与し、MAC部4001に渡す。
MAC部4001は、IP部4002からパケットを受け取ると、MACヘッダを付与し、伝送路に送信する。
ここで注目すべき点として、SYN+ACKパケットを送信する前にあらかじめSYNパケットを送信しておくことにより、各NATルータにマッピングテーブルが作成されていることが挙げられる。これにより、PC401およびPC407から送信されたSYN+ACKパケットは、通信相手のNATルータで破棄されることなく、通信相手まで届けられる。
ここで、注意すべき点として、NATルータの種類によっては、NATルータがUDPパケット用に開けるポート番号とTCPパケット用に開けるポート番号が異なる可能性が挙げられる。たとえば、UDPパケット用のポート番号とTCPパケット用のポート番号に1程度のズレが生じることがある。このような場合に、上述のように、SYNパケットやSYN+ACKパケットの宛先TCPポート番号にUDPパケット用のポート番号を設定していると、マッピングテーブルのポート番号と一致しないため、SYN+ACKパケットがNATルータで破棄されてしまう。このような事態にも対応できるように、SYNパケットやSYN+ACKパケットの宛先TCPポート番号にUDPパケット用のポート番号に1を足した値を設定するように変更することも可能である。
ただし、前述の宛先ポート番号の設定方法例は単なる例であることが理解されるべきである。本説明を再検討すれば、宛先ポート番号の設定方法が多種多様な方法で実施されることは、本技術分野の当業者にとって明らかであろう。
次に、PC401とPC407の解析部4006は、通信相手からSYN+ACKパケットを受け取ると、ACKパケットを送信するように、パケット解析部4005に命令する。
パケット送信部4005は、解析部4006からACKパケットの送信命令を受け取ると、指定された宛先に向けてACKパケットの送信処理を行うために、データをTCP部4008に渡す。
TCP部4008は、このデータを受け取ると、宛先ポート番号がNATルータのポート番号、TCP確認応答番号に適切な値が設定されているTCPヘッダを付与して、ACKパケットを生成する。ここで、PC401から送信するACKパケットについて考えると、その宛先ポート番号にNATルータ406のポート番号、TCP確認応答番号にY+1が設定される。一方、PC407から送信するACKパケットについて考えると、その宛先ポート番号にNATルータ402のポート番号、TCP確認応答番号にX+1が設定される。PC401とPC407のTCP部4008は、このようなACKパケットをIP部4002に渡す。
IP部4002は、TCP部4008からACKパケットを受け取ると、宛先IPアドレスが通信相手のNATルータのIPアドレスとなっているIPヘッダを付与し、MAC部4001に渡す。
MAC部4001は、IP部4002からパケットを受け取ると、MACヘッダを付与し、伝送路に送信する。
これらのACKパケットは、通信相手のNATルータで破棄されることなく、通信相手まで届けられる。以上の処理により、TCPセッションの確立に必要な3 way handshake処理が完了した。
<効果>
続いて、本発明を実施するための第8の実施の形態の効果について説明する。
本発明を実施するための第8の実施の形態では、通信相手となるPCがNATルータの配下に設置されている場合でも、専用サーバをインターネット上に設置することなく、TCPパケットをやり取りするのに必要な情報を推定でき、本発明の目的を達成することができる。
ネットワークを説明するための図である。 パケットの各ヘッダを説明するための図である。 従来技術のネットワーク構成図である。 本発明の第1の実施の形態を説明するためのネットワーク構成図である。 本発明の第1の実施の形態の端末のブロック図である。 本発明の第1の実施の形態における解析部の送信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるパケット送信部の送信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるUDP部の送信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるIP部の送信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるMAC部の送信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるパケットヘッダの変更を説明するための図である。 本発明の第1の実施の形態におけるMAC部の受信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるIP部の受信動作を説明するためのフロー図である。 本発明の第1の実施の形態におけるパケット受信部の受信動作を説明するためのフロー図である。 本発明の第1の実施の形態における解析部の受信動作を説明するためのフロー図である。 本発明の第1の実施の形態における解析部のIP推定処理の動作を説明するためのフロー図である。 本発明の第1の実施の形態における解析部のポート推定処理の動作を説明するためのフロー図である。 UDPの擬似ヘッダを説明するための動作である。 本発明の第2の実施の形態の端末のブロック図である。 本発明の第2の実施の形態における解析部の送信動作を説明するためのフロー図である。 本発明の第2の実施の形態におけるパケット送信部の送信動作を説明するためのフロー図である。 本発明の第2の実施の形態におけるMAC部の送信動作を説明するためのフロー図である。 本発明の第2の実施の形態におけるMAC部の受信動作を説明するためのフロー図である。 本発明の第2の実施の形態におけるパケット受信部の受信動作を説明するためのフロー図である。 本発明の第2の実施の形態における解析部の受信動作を説明するためのフロー図である。 本発明の第3の実施の形態の端末のブロック図である。 本発明の第3の実施の形態における解析部の送信動作を説明するためのフロー図である。 本発明の第3の実施の形態におけるパケット送信部の送信動作を説明するためのフロー図である。 本発明の第4の実施の形態の端末のブロック図である。 本発明の第4の実施の形態におけるパケットヘッダの変更を説明するための図である。 本発明の第5の実施の形態の端末のブロック図である。 本発明の第5の実施の形態におけるパケット送信部の送信動作を説明するためのフロー図である。 本発明の第5の実施の形態におけるヘッダ変換情報の交換を説明するためのフロー図である。 本発明の第6の実施の形態のネットワーク構成を説明するための図である。 本発明の第6の実施の形態の端末のブロック図である。 本発明の第6の実施の形態におけるパケットヘッダの変更を説明するための図である。 本発明の第7の実施の形態のネットワーク構成を説明するための図である。 本発明の第7の実施の形態におけるパケットヘッダの変更を説明するための図である。 本発明の第7の実施の形態におけるパケットヘッダの変更を説明するための図である。 本発明の第8の実施の形態の端末のブロック図である。
符号の説明
401,407 PC
402,406 NATルータ

Claims (42)

  1. ネットワーク上の装置に関する情報を推定する推定システムであって、
    送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信手段と、
    前記返信手段からの制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段と
    を備えたことを特徴とする推定システム。
  2. 前記返信手段は、待ち受け状態となっていないポート番号を宛先とした情報収集用のパケットに応答して、到達不能を示す制御用のメッセージを返信する手段であることを特徴とする請求項1に記載の推定システム。
  3. 前記返信手段は、前記情報収集用のパケットをヘッダのデータ部に格納した制御用のメッセージを返信する手段であることを特徴とする請求項1又は請求項2に記載の推定システム。
  4. 前記返信手段は、前記情報収集用のパケットが通過できる装置の個数を示す情報が0である情報収集用のパケットに応答して、前記情報収集用のパケットを破棄したことを示す制御用のメッセージを返信する手段であることを特徴とする請求項1から請求項3のいずれかに記載の推定システム。
  5. 前記推定手段は、品質を示す情報に基づいて推定する手段であることを特徴とする請求項1から請求項4のいずれかに記載の推定システム。
  6. 前記推定手段は、前記情報収集用のパケットが分割されたことを示す情報に基づいて推定する手段であることを特徴とする請求項1から請求項4のいずれかに記載の推定システム。
  7. 前記推定手段は、チェックサム値に基づいて推定する手段であることを特徴とする請求項1から請求項4のいずれかに記載の推定システム。
  8. 前記推定手段は、IPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定し、UDPチェックサム値またはTCPチェックサム値に基づいて前記制御用のメッセージのデータ部の送信元ポート番号を変更した装置に関する情報を推定する手段であることを特徴とする請求項7に記載の推定システム。
  9. 前記推定手段は、UDPチェックサム値またはTCPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定する手段であることを特徴とする請求項8に記載の推定システム
  10. 前記推定手段は、ネットワークの経路調査試験の結果を加味して、推定する手段であることを特徴とする請求項7から請求項9のいずれかに記載の推定システム。
  11. 前記経路調査試験は、通過できる装置の個数を示す情報の数値が互いに異なる複数の情報収集用のパケットを送信することによって行われる調査試験であることを特徴とする請求項10に記載の推定システム。
  12. 前記経路調査試験は、以前推定された端末までに通過する装置の個数を調査する試験であることを特徴とする請求項10又は請求項11に記載の推定システム。
  13. 前記経路調査試験は、プライベートIPアドレスとグローバルIPアドレスとが切り替わる位置に設置されている装置までに通過した装置の個数を調査する試験であることを特徴とする請求項10〜請求項12に記載の推定システム。
  14. 前記推定手段は、推定結果を前記ネットワーク上の端末に通知する手段であることを特徴とする請求項1から請求項13にいずれかに記載の推定システム。
  15. 前記推定手段は、前記ネットワーク上の他の端末から推定結果を受け取ると、その推定結果を記憶するように構成されていることを特徴とする請求項14に記載の推定システム。
  16. 前記推定手段は、複数の推定結果に基づいて前記ネットワーク上のコンピュータのポート番号の割り当て処理の規則性を推定する手段であることを特徴とする請求項14又は請求項15に記載の推定システム。
  17. 前記推定手段は、前記推定結果をメールまたは電話を用いて通信相手に通知するように構成されていることを特徴とする請求項14から請求項16にいずれかに記載の推定システム。
  18. 前記推定手段は、前記情報収集用のパケットが通過できる装置の個数を示す情報を前記推定結果に基づいて取得した宛先に届かない値に設定して、この宛先にSYNパケットを送信し、このSYNパケットのシーケンス番号を前記宛先に通知する手段であることを特徴とする請求項1から請求項17のいずれかに記載の推定システム。
  19. 前記推定手段は、前記送信されたSYNパケットのシーケンス番号を受け取ると、このシーケンス番号を考慮した応答確認パケットを送信する手段であることを特徴とする請求項18に記載の推定システム。
  20. ネットワーク上の装置に関する情報を推定するシステムであって、
    通信用のプロトコルで定められているエラーメッセージ又は制御メッセージを用いて前記ネットワーク上の装置に関する情報を推定することを特徴とする推定システム。
  21. 端末であって、
    情報収集用のパケットを送信する手段と、
    前記情報収集用のパケットに応答して送信された制御用のメッセージに基づいて、ネットワーク上の装置に関する情報を推定する推定手段と、
    を有することを特徴とする端末。
  22. ネットワーク上の装置に関する情報を推定する推定方法であって、
    送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信ステップと、
    受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであるかを判断する判断ステップと、
    前記判断の結果、受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであると判断された場合、この制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定ステップと
    を備えたことを特徴とする推定方法。
  23. 前記返信ステップは、待ち受け状態となっていないポート番号を宛先とした情報収集用のパケットに応答して、到達不能を示す制御用のメッセージを返信するステップであることを特徴とする請求項22に記載の推定方法。
  24. 前記返信ステップは、前記情報収集用のパケットをヘッダのデータ部に格納した制御用のメッセージを返信するステップであることを特徴とする請求項22又は請求項23に記載の推定方法。
  25. 前記返信ステップは、前記情報収集用のパケットが通過できる装置の個数を示す情報が0である情報収集用のパケットに応答して、前記情報収集用のパケットを破棄したことを示す制御用のメッセージを返信するステップであることを特徴とする請求項22から請求項24のいずれかに記載の推定方法。
  26. 前記推定ステップは、品質を示す情報に基づいて推定するステップであることを特徴とする請求項22から請求項25のいずれかに記載の推定方法。
  27. 前記推定ステップは、前記情報収集用のパケットが分割されたことを示す情報に基づいて推定するステップであることを特徴とする請求項22から請求項25のいずれかに記載の推定方法。
  28. 前記推定ステップは、チェックサム値に基づいて推定するステップであることを特徴とする請求項22から請求項25のいずれかに記載の推定方法。
  29. 前記推定ステップは、
    IPチェックサム値に基づいて、前記制御用のメッセージのデータ部の送信元IPアドレスを変更した装置に関する情報を推定するステップと、
    UDPチェックサム値またはTCPチェックサム値に基づいて前記制御用のメッセージのデータ部の送信元ポート番号、若しくはIPアドレスを変更した装置に関する情報を推定するステップと
    を有することを特徴とする請求項28に記載の推定方法。
  30. 前記推定ステップは、
    ネットワークの経路調査試験を実行する経路調査実行ステップと、
    前記実行結果を加味して装置に関する情報を推定する詳細情報推定ステップと
    を有することを特徴とする請求項28又は請求項29に記載の推定方法。
  31. 前記経路調査実行ステップは、通過できる装置の個数を示す情報の数値が互いに異なる複数の情報収集用のパケットを送信するステップであることを特徴とする請求項30に記載の推定方法。
  32. 前記経路調査実行ステップは、以前推定された装置までに通過する装置の個数を調査するステップであることを特徴とする請求項30又は請求項31に記載の推定方法。
  33. 前記経路調査実行ステップは、プライベートIPアドレスとグローバルIPアドレスとが切り替わる位置に設置されている装置までに通過した装置の個数を調査するステップであることを特徴とする請求項30〜請求項32に記載の推定方法。
  34. 前記推定ステップは、推定結果を前記ネットワーク上の端末に通知するステップを有することを特徴とする請求項22から請求項33のいずれかに記載の推定方法。
  35. 前記推定ステップは、前記ネットワーク上の他の端末から推定結果を受け取ると、その推定結果を記憶するステップを有することを特徴とする請求項34に記載の推定方法。
  36. 前記推定ステップは、複数の推定結果に基づいて前記ネットワーク上のコンピュータのポート番号の割り当て処理の規則性を推定するステップであることを特徴とする請求項34又は請求項35に記載の推定方法。
  37. 前記推定ステップは、前記推定結果をメールまたは電話を用いて通信相手である端末に通知する推定ステップを有することを特徴とする請求項34から請求項36にいずれかに記載の推定方法。
  38. 前記推定ステップは、前記情報収集用のパケットが通過できる装置の個数を示す情報を前記推定結果に基づいて取得した宛先に届かない値に設定して、この宛先にSYNパケットを送信し、このSYNパケットのシーケンス番号を前記宛先に通知するステップを有することを特徴とする請求項22から請求項37のいずれかに記載の推定方法。
  39. 前記推定ステップは、
    前記送信されたSYNパケットのシーケンス番号を受け取る受取ステップと、
    前記受け取ったシーケンス番号を考慮した応答確認パケットを送信するステップと
    を有することを特徴とする請求項38に記載の推定方法。
  40. ネットワーク上の装置に関する情報を推定する推定システムのプログラムであって、前記プログラムは前記システムを、
    送信されて来た情報収集用のパケットに応答して制御用のメッセージを返信する返信手段と、
    前記返信手段からの制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段と
    して機能させることを特徴とするプログラム。
  41. 端末のプログラムであって、前記プログラムは前記端末を、
    受信したメッセージが情報収集用のパケットに応答して返信された制御用のメッセージであるかを判断する判断手段と、
    前記判断の結果、受信したメッセージが前記情報収集用のパケットに応答して返信された制御用のメッセージであると判断された場合、この制御用のメッセージに基づいて、前記ネットワーク上の装置に関する情報を推定する推定手段
    として機能させることを特徴とするプログラム。
  42. ネットワーク上の装置に関する情報を推定するシステムのプログラムであって、前記プログラムは前記システムを、
    通信用のプロトコルで定められているエラーメッセージ又は制御メッセージを用いて前記ネットワーク上の装置に関する情報を推定する手段として機能させることを特徴とするプログラム。
JP2006014472A 2006-01-23 2006-01-23 推定システム、端末、推定方法、およびプログラム Pending JP2007201564A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006014472A JP2007201564A (ja) 2006-01-23 2006-01-23 推定システム、端末、推定方法、およびプログラム
US11/625,687 US20070171836A1 (en) 2006-01-23 2007-01-22 Estimating system, terminal, estimating method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006014472A JP2007201564A (ja) 2006-01-23 2006-01-23 推定システム、端末、推定方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2007201564A true JP2007201564A (ja) 2007-08-09

Family

ID=38285459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006014472A Pending JP2007201564A (ja) 2006-01-23 2006-01-23 推定システム、端末、推定方法、およびプログラム

Country Status (2)

Country Link
US (1) US20070171836A1 (ja)
JP (1) JP2007201564A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011176383A (ja) * 2010-02-23 2011-09-08 Brother Industries Ltd 通信装置、通信システム、通信方法、及び通信プログラム。
JP2018110392A (ja) * 2017-01-02 2018-07-12 株式会社パイオリンクPiolink, Inc. Nat装置を探知するための方法及び装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI343732B (en) * 2007-07-09 2011-06-11 Arcadyan Technology Corp Testing method for network device
US8107388B2 (en) * 2008-04-24 2012-01-31 Avaya Inc. Route tracing program configured to detect particular network element making type of service modification
US8228861B1 (en) * 2008-09-12 2012-07-24 Nix John A Efficient handover of media communications in heterogeneous IP networks using handover procedure rules and media handover relays
WO2012138971A2 (en) * 2011-04-06 2012-10-11 Sejent Corporation Measuring instantaneous bit rate in a network connection
TW201328387A (zh) * 2011-12-20 2013-07-01 Acer Inc 網際協定分割之方法及相關無線網路系統
CN106301832B (zh) * 2015-05-21 2020-04-03 中兴通讯股份有限公司 一种处理系统日志报文的方法和装置
KR101779327B1 (ko) * 2016-11-22 2017-10-10 한국인터넷진흥원 룰 기반 핑거프린트 생성 방법 및 그 장치
CN108259261B (zh) * 2017-03-31 2020-02-11 新华三技术有限公司 路径探测方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501332A (ja) * 1997-12-31 2002-01-15 アスアスホー コミュニケーションズ セキュリティ オサケユイチア ネットワーク・アドレス変換とプロトコル変換が存在する場合のパケット認証の方法
JP2005102196A (ja) * 2004-09-03 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理システム
JP2005525751A (ja) * 2002-05-13 2005-08-25 ソニー・コンピュータ・エンタテインメント・アメリカ・インク ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5742587A (en) * 1997-02-28 1998-04-21 Lanart Corporation Load balancing port switching hub
US5926463A (en) * 1997-10-06 1999-07-20 3Com Corporation Method and apparatus for viewing and managing a configuration of a computer network
US7937470B2 (en) * 2000-12-21 2011-05-03 Oracle International Corp. Methods of determining communications protocol latency
US20020087623A1 (en) * 2000-12-30 2002-07-04 Eatough David A. Method and apparatus for determining network topology and/or managing network related tasks
US7069438B2 (en) * 2002-08-19 2006-06-27 Sowl Associates, Inc. Establishing authenticated network connections
KR20050030288A (ko) * 2003-09-25 2005-03-30 삼성전자주식회사 Ip 패킷의 버전을 변환하는 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002501332A (ja) * 1997-12-31 2002-01-15 アスアスホー コミュニケーションズ セキュリティ オサケユイチア ネットワーク・アドレス変換とプロトコル変換が存在する場合のパケット認証の方法
JP2005525751A (ja) * 2002-05-13 2005-08-25 ソニー・コンピュータ・エンタテインメント・アメリカ・インク ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信
JP2005102196A (ja) * 2004-09-03 2005-04-14 Matsushita Electric Ind Co Ltd 情報処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011176383A (ja) * 2010-02-23 2011-09-08 Brother Industries Ltd 通信装置、通信システム、通信方法、及び通信プログラム。
JP2018110392A (ja) * 2017-01-02 2018-07-12 株式会社パイオリンクPiolink, Inc. Nat装置を探知するための方法及び装置

Also Published As

Publication number Publication date
US20070171836A1 (en) 2007-07-26

Similar Documents

Publication Publication Date Title
JP2007201564A (ja) 推定システム、端末、推定方法、およびプログラム
Duke et al. A roadmap for transmission control protocol (TCP) specification documents
Eggert et al. Unicast UDP usage guidelines for application designers
Eggert et al. UDP usage guidelines
US7639625B2 (en) Tracing connection paths through transparent proxies
US8458338B2 (en) Address translation device and address translation method
EP2764662B1 (en) Test traffic interceptor in a data network
US8059641B1 (en) Encapsulation method discovery protocol for network address translation gateway traversal
US20080244086A1 (en) Identifying network path including network proxies
EP2088717A1 (en) A method of transferring fragmentation message, a system of communication and a tunnel device
US7969894B2 (en) System and method for dead gateway detection
US20080151764A1 (en) Traceroute using address request messages
Shi et al. NDNLP: A link protocol for NDN
WO2009071030A1 (fr) Procédé pour rapporter des informations de dispositif, système et dispositif pour obtenir des informations de dispositif
US20080175162A1 (en) Triggering flow analysis at intermediary devices
Barré Implementation and assessment of modern host-based multipath solutions.
US7304959B1 (en) Utility based filtering mechanism for PMTU probing
EP2896160A1 (en) Bandwidth probing messages
Simpson TCP cookie transactions (TCPCT)
WO2011103820A2 (zh) 一种网络地址转换方法及装置
JP2006203575A (ja) 通信方法
Bernardo et al. A conceptual approach against next generation security threats: Securing a high speed network protocol-UDT
Shaharuddin et al. Performance comparison of multimedia applications over IPv4 and IPv6 Dual stack technology
Eggert et al. RFC 8085: UDP Usage Guidelines
Cisco Commands: debug ip pim atm through debug ip wccp packets

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100210

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100609