(57)【要約】【課題】パケット交換網において、不具合等の変化が発生した場合に、その箇所と原因とを効率的に且つ低コストで把握できるようにすることを目的とする。【解決手段】ネットワークにおいてパケットを転送する中継装置は、自装置が特定の状態となったことを検知し、自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成し、生成したパケットを所定の送信先に送信する。【選択図】図２
2010259037.tif 000002
【特許請求の範囲】
【請求項１】
一方の装置から受信したパケットを他方の装置へ転送する中継装置であって、
自装置が特定の状態となったことを検知する検知手段と、
前記検知手段で自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する生成手段と、
生成したパケットを所定の送信先に送信する送信手段と
を備える中継装置。
【請求項２】
前記特定の状態とは、受信したパケットのうち１又は複数のパケットを転送することができない状態である
請求項１記載の中継装置。
【請求項３】
前記特定の状態とは、レイトコリジョンの発生を検知した状態である
請求項１記載の中継装置。
【請求項４】
前記特定の状態とは、ポートの通信モードの設定が変更された状態である
請求項１記載の中継装置。
【請求項５】
前記所定の送信先とは、転送できなかったパケットの送信先である
請求項１ないし請求項４のいずれかに記載の中継装置。
【請求項６】
前記所定の送信先とは、転送できなかったパケットの送信元である
請求項１ないし請求項４のいずれかに記載の中継装置。
【請求項７】
前記中継装置は、転送するパケットを記憶しておく記憶手段を備え、
前記所定の送信先とは、受信したパケットの送信元であって、前記記憶手段に記憶されているパケットのうち、当該送信元から送信されたパケットの数が最も多い送信元である
請求項１記載の中継装置。
【請求項８】
一方の装置から受信したパケットを他方の装置へ転送する中継装置で用いられる自装置の状態通知方法であって、
自装置が特定の状態となったことを検知する検知ステップと、
前記検知ステップで自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する生成ステップと、
生成したパケットを所定の送信先に送信する送信ステップと
を備える状態通知方法。
【請求項９】
一方の装置から受信したパケットを他方の装置へ転送する中継装置に、自装置の状態を通知させるためのコンピュータプログラムであって、
自装置が特定の状態となったことを検知する処理を実行させ、
自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する処理を実行させ、
生成したパケットを所定の送信先に送信する処理を実行させる
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを転送する中継装置に関する。
【背景技術】
【０００２】
近年の情報処理技術の発展に伴い、パケット交換網はメール等の単なるデータの送信のみならず、音声や映像のようなリアルタイム通信、例えば、ＩＰ電話及びＩＰ放送等にも使用されるようになってきている。
【０００３】
このようなリアルタイム通信では、通信品質の監視及び管理は特に重要となる。例えば、ＩＰ電話の音声はパケットによって運ばれるが、パケットの遅延又はパケットの損失等によって音声が正確に伝わらなくなってしまうからである。
【０００４】
ここで、従来から用いられている通信品質の監視方式として、アクティブ方式とパッシブ方式とがある。
【０００５】
アクティブ方式とは、テストパケットをパケット交換網に送信し、そのレスポンス時間などを測定することによりネットワーク性能を実測する方式である。この方法では、大量のテストパケットをパケット交換網に送出する必要がある。また、１回しか起こらなかったような異常に関しては、異常発生後のテストパケットの送信による異常個所の探索は不可能である。
【０００６】
パッシブ方式とは、パケット交換網中を転送されるパケットを計測装置でキャプチャしてネットワーク品質を解析する方式である。この方法では、計測装置の位置に応じた大まかな障害箇所までは特定することは可能であるが、詳細な特定は非常に困難である。
【０００７】
そこで、ネットワーク上の複数地点に配置した監視エージェントから品質に関する情報を管理マネージャが収集し、収集した情報から品質が劣化している区間を判定する技術が提案されている（特許文献１参照）。
【０００８】
この技術によれば、品質が劣化している区間を知ることが可能となる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００７−６８０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、この技術では、品質に関する情報をどの管理マネージャに送信するのかを各監視エージェントに事前に知らせておく必要がある。言い換えれば、管理マネージャは、自身の管理下にある監視エージェントが配置されている領域の情報しか収集できないことになる。
【００１１】
従って、広範囲のパケット交換網の通信品質を管理しようとすれば、管理マネージャを複数設ける必要がある。また、管理マネージャ同士の情報交換を可能にする必要があることから、管理の複雑化や高コスト化を招くことになり得る。
【００１２】
そこで、本発明は、パケット交換網において変化等が発生した場合に、その箇所と原因とを効率的に且つ低コストで把握できるようにすることを目的とする。
【課題を解決するための手段】
【００１３】
本発明の１形態に係る通信システムは、一方の装置から受信したパケットを他方の装置へ転送する中継装置であって、自装置が特定の状態となったことを検知する検知手段と、前記検知手段で自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する生成手段と、生成したパケットを所定の送信先に送信する送信手段と、を有する。
【発明の効果】
【００１４】
上記構成の中継装置は、特定の状態となったことを検出した場合に、自装置を識別する情報と特定の状態であることを示す情報とを含ませたパケットを送信するので、当該パケットを受信した装置は、特定の状態となった箇所と原因とを知ることができる。
【００１５】
従って、当該パケットを受信した装置は、その箇所と原因に応じて、特定の状態への対応策を迅速に且つ正確に施すことが可能となる。
【図面の簡単な説明】
【００１６】
【図１】ネットワークの構成の例を示す図である。
【図２】ルータの機能的構成の例を示すブロック図である。
【図３】バッファの使用方法の例を示す図である。
【図４】図４（ａ）は、中継パケットの構成及び内容の例を示す図であり、図４（ｂ）は、通知パケットの構成及び内容の例を示す図である。
【図５】ルーティングテーブルの構成及び内容の例を示す図である。
【図６】バッファ溢れが発生した場合のルータの処理を示すフローチャートである。
【図７】損失した中継パケットの送信先に対して、通知パケットを送信する場合を示す図である。
【図８】損失した中継パケットの送信元に対して、通知パケットを送信する場合を示す図である。
【図９】バッファ溢れを引き起こす直接の原因を作ったエンド端末に対して、通知パケットを送信する場合を示す図である。
【図１０】バッファ溢れを発生したルータの周囲の装置に対して、通知パケットを送信する場合を示す図である。
【図１１】変形例１の通知パケットの構成及び内容の例を示す図である。
【図１２】受信パケット情報の構成及び内容の例を示す図である。
【図１３】変形例３の通知パケットの生成・蓄積処理のフローチャートである。
【図１４】バッファの使用方法の例を示す図である（実施形態２）。
【図１５】バッファ溢れが発生した場合のルータの処理を示すフローチャートである（実施形態２）。
【図１６】ルータの機能的構成の例を示すブロック図である（実施形態３）。
【図１７】通知パケットの構成及び内容の例を示す図である（実施形態３及び４）。
【図１８】ルータの機能的構成の例を示すブロック図である（実施形態４）。
【図１９】ルータの機能的構成の例を示すブロック図である（実施形態５）。
【図２０】通知パケットの構成及び内容の例を示す図である（実施形態５）。
【発明を実施するための形態】
【００１７】
＜実施形態１＞
実施形態１のネットワークでは、パケットロス等の不具合が発生した中継装置自身が、不具合の内容等の情報を含ませたパケットを生成し、ネットワーク上に送信するものである。
【００１８】
すなわち、不具合が発生した中継装置自身がパケットを生成して送信するので、不具合の発生した正確な位置と不具合の内容等とを、ネットワーク上の他の機器に知らせることが可能となる。
【００１９】
更に、生成したパケットの送信先は、その情報を伝えたい相手に応じてさまざまに設定できる。すなわち、不具合の生じた個所と原因とを、知る必要がある機器に対して、効率的に且つ正確に通知する事が可能となる。
【００２０】
従って、不具合が発生した位置と不具合の内容等を示す情報を含んだパケット（以下、「通知パケット」という。）を受信した機器は、不具合が発生した位置と不具合の内容等に応じた対応策を、迅速に且つ正確に施すことが可能となる。
【００２１】
以下、本発明の実施形態１における中継装置について、図面を用いて説明する。尚、実施形態１では、上述の中継装置としてルータを例に説明する。また、不具合として、バッファ溢れが生じた場合を例に説明する。尚、ルータが他の機器から受信して転送するパケットを、「中継パケット」というものとする。
【００２２】
＜機能＞
図１は、実施形態１におけるルータを用いたネットワークの構成の例を示す図である。
【００２３】
ネットワーク１００は、エンド端末２０００Ａ〜エンド端末２０００Ｃ、ルータ１０００Ｒ１〜ルータ１０００Ｒ７及びプローブ装置４０００を含んで構成される。
【００２４】
また、ネットワーク１００は、異なる３つの通信事業者の管理領域１〜管理領域３を含んでいる。実施形態１におけるルータは、通知パケットの宛先を自由に設定して送信するので、他の管理領域であっても情報を通知することが可能となる。
【００２５】
エンド端末２０００Ａは、いわゆるパソコンやＩＰ電話機等の端末をいい、エンド端末２０００Ｂ、Ｃも、エンド端末２０００Ａと同様に、パソコンやＩＰ電話機等の端末である。
【００２６】
ルータ１０００Ｒ１は、ある装置から受信したデータを他の装置に中継する機器であり、データの宛先を参照し、どの経路を通して転送すべきかを判断する。ルータ１０００Ｒ２〜Ｒ７は、ルータ１０００Ｒ１と同様の機能を有する。また、ルータ１０００Ｒ１〜ルータ１０００Ｒ７を、「ルータ１０００」と総称する。
【００２７】
プローブ装置４０００は、ネットワーク上を流れるパケットを取り込んで、ネットワークの状態を監視する機能を有する。
【００２８】
以下、エンド端末２０００Ａをエンド端末Ａというものとし、エンド端末２０００Ｂ等も同様とする。また、ルータ１０００Ｒ１をルータＲ１というものとし、ルータ１０００Ｒ２等も同様とする。
【００２９】
実施形態１では、ネットワーク１００において、エンド端末からエンド端末にパケットを送信する場合を例に説明する。
【００３０】
次に、図２を用いて、ルータ１０００について説明する。
【００３１】
図２は、ルータ１０００の機能的構成の例を示すブロック図である。尚、ネットワーク１００（図１参照）を構成するルータＲ１〜ルータＲ７は、それぞれ、ルータ１０００と同様の機能を有するものとする。
【００３２】
ルータ１０００は、制御部１１００、受信部１２００、送信部１３００、状態検出部１４００、宛先決定部１５００、通知パケット送信制御部１６００、通知パケット生成部１７００、ルーティングテーブル記憶部１８００、受信バッファ管理部３０００、受信バッファ３０１０、中継パケット用送信バッファ管理部３１００、中継パケット用送信バッファ３１１０、通知パケット用送信バッファ管理部３２００及び通知パケット用送信バッファ３２１０を有する。
【００３３】
図２において、２つ重ねた矩形で記載している機能部は、同様の機能部が複数あることを示している。すなわち、受信部１２００、送信部１３００及びバッファ（３０１０、３１１０、３２１０）は複数ある。
【００３４】
制御部１１００は、ルータ１０００に必要なルーティングに関する処理その他の制御処理を行う他、本発明に特有の処理のための制御等を行う。
【００３５】
受信部１２００は、パケット１０を受信する機能を有する。受信部１２００は、受信インターフェースである受信ポートを１個備え、受信ポートからパケット１０を受信する。受信部１２００は、受信したパケットを、受信バッファ管理部３０００を介して受信バッファ３０１０に蓄積する。
【００３６】
また、送信部１３００は、パケット１１を送信する機能を有する。送信部１３００は、送信インターフェースである送信ポートを１個備え、送信ポートを介してパケット１１を送信する。送信するパケットは、中継パケット用送信バッファ管理部３１００を介して中継パケット用送信バッファ３１１０から読み出される。
【００３７】
尚、ルータ１０００は、複数のポートを有している。各ポートは、受信ポートとして用いられることもあれば、送信ポートとして用いられることもある。そして、受信ポートからパケットを受信し、送信ポートからパケットを送出する。
【００３８】
すなわち、ルータ１０００は、各受信ポート用の受信部１２００を備え、各受信ポートから受信したパケットを蓄積する受信バッファ３０１０を各受信ポート用に備えている。同様に、各送信ポート用の送信部１３００を備え、各送信ポートから送信するパケットを蓄積しておく中継パケット用送信バッファ３１１０及び通知パケット用送信バッファ３２１０を各送信ポート用に備えている。
【００３９】
次に、状態検出部１４００は、通知パケットを送信すべきか否かを、ルータ１０００の状態を検出して判断する機能を有する。実施形態１では、ルータ１０００の状態として、受信バッファ管理部３０００が受信バッファ３０１０の状態を状態検出部１４００に通知する。状態検出部１４００は、通知された受信バッファ３０１０の状態に基づいてバッファ溢れが生じた事を検出した場合に、通知パケットを送信すると判断する。尚、どのような時に、通知パケットを送信するかは、予め状態検出部１４００に記憶されているものとする。
【００４０】
宛先決定部１５００は、ルータ１０００が生成した通知パケットの宛先のＩＰアドレスを決定する機能を有する。通知パケットをどの装置に送信するのか、すなわち、損失したパケットの送信元である装置、送信先である装置又は原因となった端末装置などのいずれの装置に送信するのかは、予め決められているものとする。例えば、損失したパケットの宛先を、通知パケットの宛先とする等と決められている。宛先決定部１５００は、その宛先の具体的なＩＰアドレスを求める機能を有する。
【００４１】
通知パケット送信制御部１６００は、通知パケットの送信のタイミングを制御する機能を有する。具体的には、通知パケット用送信バッファ３２１０に蓄積されている通知パケットを中継パケット用送信バッファ３１１０に移動する。
【００４２】
詳細には、通知パケット送信制御部１６００は、送信ポート毎に移動のタイミングを計って、通知パケットを移動する。移動のタイミングであると判断した場合は、通知パケット用送信バッファ管理部３２００を介して通知パケット用送信バッファ３２１０から通知パケットを取り出し、取り出した通知パケットを中継パケット用送信バッファ管理部３１００を介して中継パケット用送信バッファ３１１０に蓄積する。移動のタイミングについては、図６を用いて後で説明する。
【００４３】
通知パケット生成部１７００は、状態検出部１４００から依頼を受けて、通知パケットを生成する機能を有する。具体的には、バッファ溢れである旨を示すコード等を含んだ通知パケットを生成する。通知パケットの宛先は、宛先決定部１５００に依頼して取得する。
【００４４】
ルーティングテーブル記憶部１８００は、受信したパケットをどの経路を通して転送すべきかを判断するために参照するテーブルを記憶しておく機能を有する。
【００４５】
受信バッファ管理部３０００は、受信部１２００が受信ポートから受信したパケットを、パケットを受信した受信ポートの受信バッファ３０１０に蓄積する機能を有する。パケットは、ＦＩＦＯ（First-In First-Out）方式で蓄積する。
【００４６】
また、受信バッファ管理部３０００は、パケット溢れが発生したことを検知して、状態検出部１４００に通知する機能を有する。このパケット溢れが発生したことを検知する方法については、＜バッファ＞の項で説明する。
【００４７】
また、受信バッファ３０１０に蓄積してあるパケットに関して、通知パケット生成部１７００等からの問い合わせに答える機能も有する。
【００４８】
受信バッファ３０１０は、パケットを蓄積しておく機能を有する。
【００４９】
この受信バッファ３０１０は、２つのバッファ領域を備える。基本バッファ領域３０１１と溢れ判定用バッファ領域３０１２とである（図３参照）。これら２つのバッファ領域については、＜バッファ＞の項で説明する。
【００５０】
尚、受信バッファ３０１０は、上述のように、受信ポートの個数分備えられ、受信ポートに対応付けられている。
【００５１】
中継パケット用送信バッファ管理部３１００は、送信部１３００が送信するパケットを、送信ポート毎に中継パケット用送信バッファ３１１０に、ＦＩＦＯ（First-In First-Out）方式で蓄積する機能を有する。蓄積するパケットは、制御部１１００から送信ポートを指定して、渡される。
【００５２】
また、中継パケット用送信バッファ管理部３１００は、制御部１１００からの送信ポートを指定したパケットの送信指示を受け、指定された送信ポートの中継パケット用送信バッファ３１１０からパケットを読み出して、指定された送信ポートの送信部１３００に渡す機能を有する。更に、中継パケット用送信バッファ３１１０に蓄積してあるパケットに関して、宛先決定部１５００等からの問い合わせに答える機能も有する。
【００５３】
中継パケット用送信バッファ３１１０は、中継パケットを蓄積しておく機能を有する。尚、中継パケット用送信バッファ３１１０は、上述のように、送信ポートの数備えられ、送信ポートに対応づけられている。
【００５４】
通知パケット用送信バッファ管理部３２００は、通知パケットを、送信ポート毎に通知パケット用送信バッファ３２１０に、ＦＩＦＯ方式で蓄積する機能を有する。
【００５５】
また、通知パケット用送信バッファ管理部３２００は、通知パケット送信制御部１６００から送信ポートを指定した指示を受け、指定された送信ポートの通知パケット用送信バッファ３２１０に蓄積されている通知パケットを、取り出して渡す機能を有する。更に、通知パケット用送信バッファ３２１０に蓄積してあるパケットに関して、通知パケット送信制御部１６００等からの問い合わせに答える機能も有する。
【００５６】
通知パケット用送信バッファ３２１０は、通知パケットを蓄積しておく機能を有する。また、通知パケット用送信バッファ３２１０は、上述のように、送信ポートの数備えられ、送信ポートに対応づけられている。
【００５７】
上述した機能の全部または一部は、ルータ１０００が有するＣＰＵが、メモリ等に記録されているプログラムを実行することにより実現される。
【００５８】
＜バッファ＞
次に、実施形態１のバッファの使用方法について、図３を用いて説明する。
【００５９】
図３は、バッファの使用方法の例を示す図である。
【００６０】
図３において、中継パケットとは、エンド端末から送信されたパケットであり、ルータ１０００により中継されるパケットである。また、通知パケットとは、ルータ１０００が生成して送出するパケットである（図７〜図１０、図１４においても同様である。）。
【００６１】
まず、受信バッファ３０１０は、受信部１２００が受信した中継パケットを、受信バッファ管理部３０００を介して、一旦蓄積する。この受信バッファ３０１０は、上述したように基本バッファ領域３０１１と溢れ判定用バッファ領域３０１２との２つのバッファ領域を備えている。基本バッファ領域３０１１と溢れ判定用バッファ領域３０１２とは、それぞれ１個の中継パケットを記憶する容量を有する。
【００６２】
尚、基本バッファ領域３０１１は、通常、複数個の中継パケットを蓄積する容量を有するが、実施形態１では説明の便宜上、１個の中継パケットを記憶する容量を有するものとする。
【００６３】
中継パケットの転送処理が正常に行われている場合は、受信ポートから受信されたパケットは、受信バッファ管理部３０００によって、基本バッファ領域３０１１に蓄積される。その後すぐに、制御部１１００によって判断された送出先である送信ポートの中継パケット用送信バッファ３１１０に移動される。
【００６４】
しかし、この基本バッファ領域３０１１から中継パケット用送信バッファ３１１０へ移動する処理が行われる前に、すなわち、基本バッファ領域３０１１に中継パケット１２が蓄積されている状態の時に、次の中継パケット１３が受信ポートから受信される場合が生じ得る。
【００６５】
この場合、受信バッファ管理部３０００は、受信した中継パケット１３を溢れ判定用バッファ領域３０１２に蓄積する。実施形態１では、溢れ判定用バッファ領域３０１２に中継パケット１３が蓄積された時に、バッファ溢れが発生したものとみなすものとする。すなわち、受信バッファ管理部３０００は、溢れ判定用バッファ領域３０１２に中継パケット１３を蓄積した時に、バッファ溢れを検知したこととする。
【００６６】
基本バッファ領域３０１１に蓄積されている中継パケット１２は、バッファリングされているとして通常の転送処理を行うが、溢れ判定用バッファ領域３０１２に蓄積された中継パケット１３は、損失したパケットとみなして、転送処理は行わない。
【００６７】
尚、受信した中継パケットを蓄積しようとした時に、基本バッファ領域３０１１と溢れ判定用バッファ領域３０１２との双方のバッファ領域に既に中継パケットが蓄積されている場合には、受信した中継パケットを削除するものとする。このようにすることで、損失が始まった最初の中継パケット１３を知ることができるからである。また、損失したパケットとされた中継パケット１３は、通知パケットを生成するために参照された時に溢れ判定用バッファ領域３０１２から削除されるものとする。
【００６８】
次に、中継パケット用送信バッファ３１１０に蓄積されている中継パケット及び通知パケットは、最初に蓄積されたパケットから順に読み出されて、送信部１３００によって送信ポートから送出される。送信部１３００にパケットを渡すタイミングは、制御部１１００が送信ポートの帯域幅等を考慮して決定する。
【００６９】
従って、送信部１３００がパケットを送信ポートから送出する速度より、受信部１２００がパケットを受信する速度のほうが速い場合には、バッファ溢れが発生する。
【００７０】
実施形態１では、溢れ判定用バッファ領域３０１２に、中継パケットが蓄積された時にバッファ溢れが発生したと判断するものとする。このバッファ溢れは、受信バッファ管理部３０００が状態検出部１４００に通知し、状態検出部１４００によって通知パケットを送信するか否かが判断される。
【００７１】
次に、通知パケット用送信バッファ３２１０について説明する。
【００７２】
通知パケット用送信バッファ３２１０は、通知パケット生成部１７００が生成した通知パケットを蓄積する。
【００７３】
バッファ溢れの場合は、中継パケット用送信バッファ３１００に空きが無いのが通常であることから、生成した通知パケットは、中継パケット用送信バッファ３１１０とは別のバッファである通知パケット用送信バッファ３２００に蓄積する。
【００７４】
通知パケット用送信バッファ３２１０に蓄積された通知パケットは、最初に蓄積されたパケットから順に中継パケット用送信バッファ３１００に移動される。移動のタイミングは、中継パケット用送信バッファ３１１０に空きができたことが通知パケット送信制御部１６００によって確認されたときである。
【００７５】
中継パケット用送信バッファ３１１０に移動された通知パケットは、中継パケットと同じように、最初に蓄積されたパケットから順に送信部１３００によって送信ポートから送出される。
【００７６】
＜パケット＞
以下、実施形態１のネットワーク１００で用いられるパケットについて、図４を用いて説明する。
【００７７】
図４（ａ）は、中継パケットの構成及び内容の例を示す図であり、図４（ｂ）は、通知パケットの構成及び内容の例を示す図である。
【００７８】
図４（ａ）の中継パケット１２１０は、ＩＰパケットであり、ＩＰヘッダ部とデータ部とを有する。
【００７９】
ＩＰヘッダ部には、プロトコル１２１１、送信元ＩＰアドレス１２１２及び宛先ＩＰアドレス１２１３が含まれる。
【００８０】
プロトコル１２１１は、データ部を渡すべき上位のプロトコルを示している。
【００８１】
送信元ＩＰアドレス１２１２は、当該中継パケット１２１０を送り出した送信元のＩＰアドレスであり、宛先ＩＰアドレス１２１３は、当該中継パケット１２１０を送信する相手先のＩＰアドレスである。
【００８２】
例えば、エンド端末Ａからエンド端末Ｂに送信された中継パケット１２１０の場合は、エンド端末ＡのＩＰアドレスが送信元ＩＰアドレス１２１２に設定され、エンド端末ＢのＩＰアドレスが宛先ＩＰアドレス１２１３に設定されている。
【００８３】
データ部には、当該中継パケット１２１０で運ぶ対象のデータ、つまり、ペイロードが挿入されている。
【００８４】
図４（ｂ）の通知パケット１７１０は、ＩＣＭＰ（Internet Control Message Protocol）のパケットである。実施形態１では、バッファ溢れが発生した旨をＩＣＭＰで通知する。
【００８５】
通知パケット１７１０は、ＩＰヘッダ部とデータ部とで構成される。
【００８６】
ＩＰヘッダ部には、プロトコル１７１１、送信元ＩＰアドレス１７１２及び宛先ＩＰアドレス１７１３が含まれる。
【００８７】
プロトコル１７１１には、このパケットがＩＣＭＰに基づくものであることを示す「１」が設定される。
【００８８】
送信元ＩＰアドレス１７１２は、当該通知パケット１７１０を送信するルータのＩＰアドレスが設定される。すなわち、バッファ溢れが発生したルータのＩＰアドレスである。
【００８９】
宛先ＩＰアドレス１７１３には、宛先決定部１５００で決定された宛先のＩＰアドレスが設定される。
【００９０】
データ部には、通知すべき内容を示すデータが含まれる。具体的には、状態１７１４と原因１７１５とである。
【００９１】
状態１７１４は、発生した状態を示す。例えば、「パケット損失」を示すコードが設定される。
【００９２】
原因１７１５は、状態１７１４で示される状態を生じさせた原因を示す。例えば、「バッファ溢れ」を示すコードが設定される。
【００９３】
＜データ＞
次に、実施形態１のネットワーク１００で用いる主なデータについて図５を用いて説明する。
【００９４】
図５は、ルーティングテーブル記憶部１８００に記憶されているルーティングテーブル１８１０の構成及び内容の例を示す図である。
【００９５】
ルーティングテーブル１８１０は、宛先１８１１、次の行先１８１２及びポート１８１３が含まれる。
【００９６】
宛先１８１１は、転送するパケットの宛先のＩＰアドレスを示す。例えば、エンド端末のＩＰアドレスである。
【００９７】
次の行先１８１２は、転送するパケットの送り先であるところの次のルータのＩＰアドレスを示す。ここでは、便宜上、ルータＲ３等のＩＰアドレスを、「Ｒ３」等と記載する。また、「ダイレクト」は、ルータ１０００自身に直接につながっていることを示す。
【００９８】
ポート１８１３は、パケットを送出するポートの識別子である。
【００９９】
＜動作＞
以下、ルータ１０００の動作について図６〜図１０を用いて説明する。
【０１００】
図６は、バッファ溢れが発生した場合のルータ１０００の処理を示すフローチャートである。
【０１０１】
図７〜図１０は、ネットワーク１００においてバッファ溢れが発生した場合に、それぞれ異なる送信先に、通知パケットを送信した場合の図である。図７〜図１０では、エンド端末Ａからエンド端末Ｂにパケットを送信しており、斜線が引かれたルータＲ４でバッファ溢れが発生したものとする。
【０１０２】
また、図７〜図１０において、エンド端末Ａからエンド端末Ｂに送出された中継パケット１５は、送信元ＩＰアドレス１２１２にエンド端末ＡのＩＰアドレスが設定され、宛先ＩＰアドレス１２１３にエンド端末ＢのＩＰアドレスが設定されている（図４（ａ）参照）。
【０１０３】
尚、中継パケットの矩形中に記載されている文字は、パケットの宛先を示しているものとする。また、通知パケットも同様である。
【０１０４】
中継パケット１５は、エンド端末Ａから送出された後、ルータＲ１、ルータＲ２、ルータＲ３、ルータＲ４、ルータＲ５と順に転送され、エンド端末Ｂに到達する。尚、エンド端末Ａからは、順次、中継パケットが送信されているものとする。
【０１０５】
実施形態１では、通知パケットの送信先として４つの送信先について説明する。
【０１０６】
１つ目は、バッファ溢れによって損失したパケットの宛先を、通知パケットの送信先とする場合であって、図７を用いて説明する。
【０１０７】
２つ目は、バッファ溢れによって損失したパケットの送信元を、通知パケットの送信先とする場合であって、図８を用いて説明する。
【０１０８】
３つ目は、バッファ溢れを引き起こす直接の原因を作ったエンド端末を、通知パケットの送信先とする場合であって、図９を用いて説明する。
【０１０９】
４つ目は、パケット溢れが発生したルータの周囲の装置を、通知パケットの送信先とする場合であって、図１０を用いて説明する。
【０１１０】
実施形態１では、いずれの送信先にするかは、宛先決定部１５００に予め設定されており、具体的なＩＰアドレスは、宛先決定部１５００がパケットを参照する等して決定する。
【０１１１】
＜損失したパケットの宛先に送信する場合＞
図７は、バッファ溢れによって損失した中継パケットの送信先に対して、通知パケットを送信する場合を示す図である。
【０１１２】
エンド端末Ｂを宛先とした中継パケットを損失したルータＲ４は、通知パケット１６をエンド端末Ｂに向けて送出する。
【０１１３】
損失した中継パケットの送信先に通知パケットを送信することで、その経路上に在る機器、例えばプローブ装置４０００が、パケットの損失という状態とその原因と発生箇所とを正確に把握することが可能となる。例えば、バッファ溢れという原因によってパケットの損失という状態が生じ、バッファ溢れが発生した個所はルータＲ４であることを把握することが可能となる。原因と箇所とを正確に知ることにより、プローブ装置４０００等は、適切な対応を迅速に取ることが可能となる。
【０１１４】
また、通知パケットが通る経路上のルータも、通知パケットを転送する際にそのパケットのデータを参照することにより、パケットの損失という状態とその原因と発生箇所とを正確に把握することが可能となる。従って、通信経路上の他のルータに不具合が生じたことを知ったルータは、不具合とそのルータの位置に応じて、パケットの転送先を変更する等の適切な対応を迅速に取ることが可能となる。
【０１１５】
尚、損失した中継パケットの送信先以外に通知パケットが送信された場合の、経路上のプローブ装置及びルータ等も同様に、適切な対応を迅速に取ることが可能である。
【０１１６】
また、損失したパケットの送信先であるエンド端末も、パケットの損失という状態の原因と発生箇所とを正確に把握することが可能となるので、適切な対応を迅速に取ることが可能となる。例えば、エンド端末Ｂは、エンド端末Ａに不具合が生じたのではなく、通信経路上のルータに不具合が生じたことを知ることができる。従って、エンド端末Ａとエンド端末Ｂとが双方向通信を行っている場合には、エンド端末Ｂはエンド端末Ａに対する通信経路を変更することで良好な通信を行うことが可能となる。
【０１１７】
以下、図６のフローチャートを用いて、バッファ溢れによって損失したパケットの宛先を通知パケットの送信先とする場合のルータ１０００の処理を説明する。
【０１１８】
以下、ルータ１０００がバッファ溢れを発生させた場合の処理を、３つに分けて説明する。１つ目は、中継パケットの受信・蓄積処理、２つ目は、通知パケットの生成・蓄積処理、３つ目は、通知パケットの送信処理である。
【０１１９】
＜中継パケットの受信・蓄積処理＞
以下、中継パケットの受信処理と中継パケットの蓄積処理とを説明する。
【０１２０】
中継パケットの受信処理と中継パケットの蓄積処理とは、同時に並行して行われている処理であるので、２つのフローチャートに分けて記載している。
【０１２１】
最初に、中継パケットの受信処理を説明する。
【０１２２】
まず、ルータＲ４の受信部１２００は、中継パケット１２１０を受信する（ステップＳ１００）。
【０１２３】
中継パケットを受信した受信部１２００は、受信バッファ管理部３０００に蓄積を依頼する。依頼の際、受信ポートを指定して、受信した中継パケット１２１０を渡す。受信ポートの指定は、中継パケット１２１０を受信した受信ポートの識別子を渡すことで行う。
【０１２４】
依頼を受けた受信バッファ管理部３０１０は、指定された受信ポートの受信バッファ３０１０の基本バッファ領域３０１１に、渡された中継パケット１２１０を蓄積する（ステップＳ１１０）。
【０１２５】
ただし、基本バッファ領域３０１１に空きがなく、渡された中継パケット１２１０を溢れ判定用バッファ領域３０１２に蓄積した場合には、受信バッファ管理部３０１０は、バッファ溢れが発生したとみなして受信ポートの識別子とその旨とを状態検出部１４００に通知する。
【０１２６】
通知を受けた状態検出部１４００は、バッファ溢れが発生したと判断し（ステップＳ１２０：Ｙｅｓ）、通知パケットの生成処理を通知パケット生成部１７００に依頼する（ステップＳ１３０）。この際、受信ポートを指定する。
【０１２７】
その後、ステップＳ１００に戻り、ステップＳ１００〜ステップＳ１３０を繰り返す。
【０１２８】
一方、受信バッファ３０１０が溢れていない場合は（ステップＳ１２０：Ｎｏ）、ステップＳ１００に戻り、ステップＳ１００〜ステップＳ１３０を繰り返す。
【０１２９】
次に、中継パケットの蓄積処理を説明する。
【０１３０】
受信バッファ管理部３０１０は、制御部１１００から中継パケットを渡すよう依頼を受けると、受信バッファ３０１０の基本バッファ領域３０１１から中継パケット１２１０を読み出して、制御部１１００に渡す（ステップＳ１４０）。
【０１３１】
制御部１１００は、ルーティングテーブル記憶部１８００に記憶されているルーティングテーブル１８１０の宛先１８１１を検索する。宛先１８１１が、渡された中継パケット１２１０の宛先ＩＰアドレス１２１３に設定されているＩＰアドレスと同じであるレコードの、ポート１８１０で示される送信ポートを、送出する送信ポートと決定する（ステップＳ１５０）。
【０１３２】
制御部１１００は、必要に応じて修正を行った中継パケット１２１０を中継パケット用送信バッファ管理部３１００に渡し、決定した送信ポートの中継パケット用送信バッファ３１１０に蓄積するよう依頼する。
【０１３３】
依頼を受けた中継パケット用送信バッファ管理部３１００は、依頼された送信ポートの中継パケット用送信バッファ３１１０に、受け取った中継パケット１２１０を蓄積する（ステップＳ１６０）。
【０１３４】
中継パケット用送信バッファ管理部３１００は、制御部１１００からの指示を受けて、指示された送信ポートの中継パケット用送信バッファ３１１０から、パケットを読み出して、送信部１３００に渡す。送信部１３００は、渡されたパケットを送出する。
【０１３５】
＜通知パケットの生成・蓄積処理＞
状態検出部１４００は、受信ポートを指定し、通知パケットの生成処理を通知パケット生成部１７００に依頼する（ステップＳ１３０）。
【０１３６】
依頼を受けた通知パケット生成部１７００は、通知パケットの送信先を宛先決定部１５００に問い合わせる。この際、指定された受信ポートを指定する。
【０１３７】
問い合わせを受けた宛先決定部１５００は（ステップＳ２００）、指定された受信ポートの受信バッファ３０１０から溢れた中継パケット１２１０の宛先ＩＰアドレス１２１３を、受信バッファ管理部３０００に問い合わせる。宛先決定部１５００には、予め、通信パケットの送付先は、損失したパケットの送信先とする旨が記憶されているものとする。
【０１３８】
問い合わせを受けた受信バッファ管理部３０００は、指定された受信ポートの受信バッファ３０１０の溢れ判定用バッファ領域３０１２に蓄積されている損失したものとみなした中継パケット１３（図３参照）を参照し、宛先ＩＰアドレス１２１３を宛先決定部１５００に渡す（ステップＳ２１０）。
【０１３９】
宛先ＩＰアドレス１２１３を宛先決定部１５００に渡した受信バッファ管理部３０００は、損失したものとみなした中継パケット１３を削除する。
【０１４０】
宛先ＩＰアドレス１２１３を受け取った宛先決定部１５００は、通知パケットの宛先として、受け取った宛先ＩＰアドレス１２１３を通知パケット生成部１７００に渡す。
【０１４１】
通知パケットの宛先を受け取った通知パケット生成部１７００は、通知パケット１７１０を生成する（ステップＳ２２０）。
【０１４２】
具体的には、受け取った通知パケットの宛先を宛先ＩＰアドレス１７１３に設定し、ルータ１０００のＩＰアドレスを送信元ＩＰアドレス１７１２に設定し、状態１７１４にパケットの損失を示すコードを設定し、原因１７１５にバッファ溢れを示すコードを設定した通知パケット１７１０を生成する。ただし、送信元ＩＰアドレス１７１２には、ルータ１０００を特定できるものであれば、ＩＰアドレス以外の識別子を設定してもよい。
【０１４３】
通知パケット１７１０を生成した通知パケット生成部１７００は、宛先ＩＰアドレス１７１３に設定されているＩＰアドレスと、ルーティングテーブル１８１０とから、生成した通知パケット１７１０を送出する送信ポートを求める。これは、制御部１１００が中継パケットを送出する送信ポートを求める方法と同じである（ステップＳ１５０参照）。
【０１４４】
通知パケット生成部１７００は、通知パケット用送信バッファ管理部３２００を介して、生成した通知パケット１７１０を、求めた送信ポートの通知パケット用送信バッファ３２１０に蓄積する（ステップＳ２３０）。
【０１４５】
生成した通知パケット１７１０を蓄積した通知パケット生成部１７００は、通知パケット送信制御部１６００に、求めた送信ポートを指定して、通知パケット１７１０の送信を依頼する（ステップＳ２４０）。
【０１４６】
＜通知パケットの送信処理＞
通知パケット１７１０の送信を依頼された通知パケット送信制御部１６００は（ステップＳ３００）、時間の計測を開始する（ステップＳ３１０）。
【０１４７】
一定時間、例えば１００ｍｓ（ミリ秒）経過したら（ステップＳ３１０：Ｙｅｓ）、指定された送信ポートの中継パケット用送信バッファ３１１０に空きがあるか否かを、中継パケット用送信バッファ管理部３１００に問い合わせる。
【０１４８】
問い合わせを受けた中継パケット用送信バッファ管理部３１００は、指定された送信ポートの中継パケット用送信バッファ３１１０に空きが有るか否かを確認し、結果を通知パケット送信制御部１６００に返す。
【０１４９】
結果を受け取った通知パケット送信制御部１６００は、受け取った結果が空きが無いという結果である場合（ステップＳ３２０：Ｎｏ）は、再度、時間の計測を開始する（ステップＳ３１０）。
【０１５０】
一方、受け取った結果が空きが有るという結果である場合（ステップＳ３２０：Ｙｅｓ）は、通知パケット送信制御部１６００は、指定された送信ポートの通知パケットを通知パケット用送信バッファ管理部３２００に要求する。
【０１５１】
要求を受けた通知パケット用送信バッファ管理部３２００は、指定された送信ポートの通知パケット用送信バッファ３２１０から通知パケットを取り出して、通知パケット送信制御部１６００に渡す。
【０１５２】
通知パケットを受け取った通知パケット送信制御部１６００は、受け取った通知パケットを中継パケット用送信バッファ管理部３１００に渡して、指定された送信ポートから送信するよう依頼する。
【０１５３】
依頼を受けた中継パケット用送信バッファ管理部３１００は、受け取った通知パケットを、指定された送信ポートの中継パケット用送信バッファ３１１０に蓄積する（ステップＳ３３０）。
【０１５４】
通知パケットの送信を依頼した通知パケット送信制御部１６００は、指定された送信ポートの通知パケット用送信バッファ３２１０に通知パケットが残っているか否かを、通知パケット用送信バッファ管理部３２００に問い合わせる。
【０１５５】
問い合わせを受けた通知パケット用送信バッファ管理部３２００は、指定された送信ポートの通知パケット用送信バッファ３２１０に、通知パケットが有るか否かを確認し、結果を通知パケット送信制御部１６００に返す。
【０１５６】
結果を受け取った通知パケット送信制御部１６００は、受け取った結果が通知パケットが無いという結果である場合（ステップＳ３４０：Ｎｏ）は、処理を終了する。
【０１５７】
一方、受け取った結果が通知パケットが有るという結果である場合（ステップＳ３４０：Ｙｅｓ）は、通知パケット送信制御部１６００は、指定された送信ポートの中継パケット用送信バッファ３１１０に空きがあるか否かを、中継パケット用送信バッファ管理部３１００に問い合わせ、ステップＳ３２０〜ステップＳ３４０の処理を繰り返す。
【０１５８】
＜損失したパケットの送信元に送信する場合＞
図８は、バッファ溢れによって損失したパケットの送信元に対して、通知パケットを送信する場合を示す図である。
【０１５９】
エンド端末Ａからエンド端末Ｂに向けて送信されたパケットを損失したルータＲ４は、通知パケット１７をエンド端末Ａに向けて送出する。
【０１６０】
損失したパケットの送信元に通知パケットを送信することで、その経路上に在る機器、例えば他のルータＲ３等が、パケットの損失という状態とその原因と発生箇所とを正確に把握することが可能となる。
【０１６１】
ルータＲ３等が、不具合の原因と箇所とを正確に知ることにより、適切な対応を迅速に取ることが可能となる。例えば、ルータＲ３は、ルータＲ４に対して送出するパケットの量を抑制し、ルータＲ６を経由してエンド端末Ｂにパケットを送るなどである。
【０１６２】
以下、バッファ溢れによって損失したパケットの送信元を通知パケットの宛先とする場合のルータ１０００の処理を説明する。
【０１６３】
この損失したパケットの送信元に通知パケットを送信する場合のルータ１０００の処理は、図６を用いて説明したルータ１０００の処理とほぼ同じである。図６を用いて説明したルータ１０００の処理とは、損失したパケットの送信先に通知パケットを送信する場合の処理である。
【０１６４】
従って、図６のフローチャートのうち、異なる点を中心に説明する。
【０１６５】
異なる点は、通知パケットの送信先のＩＰアドレス取得する処理（ステップＳ２１０）である。この処理は、宛先決定部１５００が行う処理である。
【０１６６】
以下、宛先決定部１５００が行う処理を説明する。
【０１６７】
通知パケット生成部１７００から通知パケットの送信先の問い合わせを受けた宛先決定部１５００は、指定された受信ポートの受信バッファ３０１０から溢れた中継パケット１２１０の送信元ＩＰアドレス１２１２を、受信バッファ管理部３０００に問い合わせる。宛先決定部１５００には、予め、通信パケットの送付先は、損失したパケットの送信元とする旨が記憶されているものとする。
【０１６８】
問い合わせを受けた受信バッファ管理部３０００は、指定された受信ポートの受信バッファ３０１０の溢れ判定用バッファ領域３０１２に蓄積されている損失したとみなされた中継パケット１３（図３参照）を参照し、送信元ＩＰアドレス１２１２を宛先決定部１５００に渡す（ステップＳ２１０）。
【０１６９】
送信元ＩＰアドレス１２１２を宛先決定部１５００に渡した受信バッファ管理部３０００は、損失した中継パケット１３を削除する。
【０１７０】
送信元ＩＰアドレス１２１２を受け取った宛先決定部１５００は、通知パケットの宛先として、受け取った送信元ＩＰアドレス１２１２を通知パケット生成部１７００に渡す。
【０１７１】
通知パケットの宛先を受け取った通知パケット生成部１７００は、通知パケット１７１０を生成する（ステップＳ２２０）。
【０１７２】
＜バッファ溢れを引き起こす直接の原因を作ったエンド端末に送信する場合＞
図９は、バッファ溢れを引き起こす直接の原因を作ったエンド端末、例えば、大量のパケットを送出した送信元に対して、通知パケットを送信する場合を示す図である。
【０１７３】
エンド端末Ａからエンド端末Ｂに向けて送信されたパケットを損失したルータＲ４は、通知パケット１８を、エンド端末Ｂ宛のパケットを溢れさせた原因となるパケットを送信したエンド端末Ｃに向けて送出する。
【０１７４】
原因を作ったエンド端末に通知パケットを送信することで、その経路上に在る機器、例えば他のルータＲ７等が、パケットの損失という状態とその原因と発生箇所とを正確に把握することが可能となる。
【０１７５】
ルータＲ７等が、不具合の原因と箇所とを正確に知ることにより、適切な対応を迅速に取ることが可能となる。例えば、ルータＲ７は、ルータＲ３に対して送出していたエンド端末Ｂ宛のパケットを、ルータＲ６に送出するなどである。
【０１７６】
また、原因を作ったエンド端末が、パケットの損失という状態の原因と発生箇所とを正確に把握することが可能となるので、適切な対応を迅速に取ることが可能となる。例えば、エンド端末Ｃは、自らの不具合によってエンド端末Ｂ宛のパケットを大量に送出していた場合には、その不具合を検出して是正することが可能となる。
【０１７７】
以下、バッファ溢れを引き起こす直接の原因を作ったエンド端末を通知パケットの宛先とする場合のルータ１０００の処理を説明する。
【０１７８】
このエンド端末に通知パケットを送信する場合のルータ１０００の処理は、図６を用いて説明したルータ１０００の処理とほぼ同じである。
【０１７９】
従って、図６のフローチャートのうち、異なる点を中心に説明する。
【０１８０】
異なる点は、通知パケットの送信先のＩＰアドレス取得する処理（ステップＳ２１０）である。この処理は、宛先決定部１５００が行う処理である。
【０１８１】
以下、宛先決定部１５００が行う処理を説明する。
【０１８２】
通知パケット生成部１７００から通知パケットの送信先の問い合わせを受けた宛先決定部１５００は、バッファ溢れの原因となった中継パケット１２１０を送信してきた送信元のＩＰアドレスを求める。宛先決定部１５００には、予め、通知パケットの送付先は、バッファ溢れの原因となった中継パケットの送信元とする旨が記憶されているものとする。
【０１８３】
まず、宛先決定部１５００は、バッファから溢れた中継パケット１２１０の宛先ＩＰアドレス１２１３を、受信ポートを指定して受信バッファ管理部３０００に問い合わせる。
【０１８４】
問い合わせを受けた受信バッファ管理部３０００は、指定された受信ポートの受信バッファ３０１０の溢れ判定用バッファ領域３０１２に蓄積されている損失したとみなされた中継パケット１３（図３参照）を参照し、宛先ＩＰアドレス１２１３に設定されているＩＰアドレスを宛先決定部１５００に渡す。
【０１８５】
ＩＰアドレスを受け取った宛先決定部１５００は、受け取ったＩＰアドレスと、ルーティングテーブル１８１０とから、受け取ったＩＰアドレス宛のパケットを送出するはずの送信ポートを求める。これは、制御部１１００が中継パケットを送出する送信ポートを求める方法と同じである（ステップＳ１５０参照）。
【０１８６】
送信ポートを求めた宛先決定部１５００は、求めた送信ポートの中継パケット用送信バッファ３１１０に蓄積されている中継パケット１２１０に、送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスを求めるよう、中継パケット用送信バッファ管理部３１００に依頼する。
【０１８７】
依頼を受けた中継パケット用送信バッファ管理部３１００は、指定された送信ポートの中継パケット用送信バッファ３１１０に蓄積されている中継パケット１２１０を検索し、中継パケット１２１０の送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスを、宛先決定部１５００に渡す（ステップＳ２１０）。すなわち、送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスとは、バッファ溢れを引き起こしている大量の中継パケットを送信している装置のＩＰアドレスであるからである。
【０１８８】
ＩＰアドレスを受け取った宛先決定部１５００は、通知パケットの宛先として、受け取ったＩＰアドレスを通知パケット生成部１７００に渡す。
【０１８９】
通知パケットの宛先を受け取った通知パケット生成部１７００は、通知パケット１７１０を生成する（ステップＳ２２０）。
【０１９０】
尚、受信バッファ管理部３０００において、各受信バッファ３０１０に蓄積された中継パケットの送信元を履歴として記憶しておくことで、バッファ溢れを引き起こす直接の原因を作ったエンド端末を特定することとしてもよい。すなわち、バッファ溢れが発生した受信バッファ３０１０の履歴において、最も多く蓄積されたパケットの送信元を、バッファ溢れを引き起こす直接の原因を作ったエンド端末と特定する。
【０１９１】
また、実施形態１では、受信バッファ３０１０の基本バッファ領域３０１１は中継パケットを１つ記憶できるだけの容量を有することとしているが、複数個の中継パケットを記憶できる容量を有するものである場合には、蓄積されている中継パケットの送信元として最も多く出現する送信元を、バッファ溢れを引き起こす直接の原因を作ったエンド端末と特定することとしてもよい。
【０１９２】
＜バッファ溢れを発生したルータの周囲の装置に送信する場合＞
図１０は、バッファ溢れを発生したルータの周囲の装置に対して、通知パケットを送信する場合を示す図である。
【０１９３】
エンド端末Ａからエンド端末Ｂに向けて送信されたパケットを損失したルータＲ４は、通知パケット１９を、周囲の装置に向けて送出する。通知パケット１９の宛先には、ブロードキャストアドレスとして「＊」を記載している。
【０１９４】
周囲の装置に通知パケットを送信することで、同じ管理領域に在る装置、例えば他のルータＲ５等が、パケットの損失という状態とその原因と発生箇所とを正確に把握することが可能となる。
【０１９５】
ルータＲ５等が、不具合の原因と箇所とを正確に知ることにより、適切な対応を迅速に取ることが可能となる。例えば、ルータＲ５は、ルータＲ４に対して送出するパケットの量を抑制するなどである。
【０１９６】
周囲の装置に通知パケットを送信するため、通知パケット１７１０の宛先ＩＰアドレス１７１３に、ブロードキャストアドレスを設定する。
【０１９７】
ブロードキャストアドレスには、送信元のルータが所属するネットワークと同じネットワークに属する装置を送信先とするリミテッド・ブロードキャストアドレスと、指定するネットワークに属する装置を送信先とするディレクテッド・ブロードキャストアドレスとがある。実施形態１では、ディレクテッド・ブロードキャストアドレスを設定するものとする。
【０１９８】
以下、バッファ溢れを発生したルータの周囲の装置を、通知パケットの宛先とする場合のルータ１０００の処理を説明する。
【０１９９】
この周囲の装置に通知パケットを送信する場合のルータ１０００の処理は、図６を用いて説明したルータ１０００の処理とほぼ同じである。
【０２００】
従って、図６のフローチャートのうち、異なる点を中心に説明する。
【０２０１】
異なる点は、通知パケットの送信先のＩＰアドレス取得する処理（ステップＳ２１０）である。この処理は、宛先決定部１５００が行う処理である。
【０２０２】
以下、宛先決定部１５００が行う処理を説明する。
【０２０３】
通知パケット生成部１７００から通知パケットの送信先の問い合わせを受けた宛先決定部１５００は、ルータ１０００のＩＰアドレスのホストアドレス部のみをオール１としたディレクテッド・ブロードキャストアドレスを作成する。例えば、ルータＲ４のＩＰアドレスが「10.25.30.22」であり、且つ、ネットワークアドレスが「10.25.30」であれば、ディレクテッド・ブロードキャストアドレスは「10.25.30.255」となる。尚、宛先決定部１５００には、予め、通信パケットの送付先は、周囲の装置とする旨が記憶されているものとする。
【０２０４】
宛先決定部１５００は、通知パケットの宛先として、作成したディレクテッド・ブロードキャストアドレスを通知パケット生成部１７００に渡す（ステップＳ２１０）。
【０２０５】
通知パケットの宛先を受け取った通知パケット生成部１７００は、通知パケット１７１０を生成する（ステップＳ２２０）。
【０２０６】
＜変形例１＞
実施形態１では、発生した不具合の状態とその原因とを通知パケット１７１０（図４（ｂ）参照）に含ませて送信することとしていた。変形例１では、他の情報を含ませる場合を説明する。
【０２０７】
変形例１では、バッファ溢れを引き起こした原因である大量のパケットを送信しているエンド端末のＩＰアドレスと、その大量のパケットを受信している受信インターフェースである受信ポートの識別子とを含ませる。
【０２０８】
バッファ溢れを引き起こした原因となったエンド端末の方向、すなわち、エンド端末のＩＰアドレスや受信ポートを通知パケットに含ませることで、通知パケットを受信した他の装置は、その原因なったエンド端末の方向を正確に把握することが可能となり、適切な対応を迅速に取ることが可能となる。
【０２０９】
例えば、その原因となったエンド端末に対して、送出するパケット量の抑制を指示するような命令を送信することが可能となる。また、他の装置は、大量のパケットを受信している受信ポートに向かうパケットの経路を変更するなどの措置を取ることが可能となる。
【０２１０】
図１１は、変形例１の通知パケットの構成及び内容の例を示す図である。
【０２１１】
図４（ｂ）で説明した通知パケット１７１０のデータ部に、原因装置ＩＰアドレス１７１６と受信ポート１７１７とが追加されている。
【０２１２】
原因装置ＩＰアドレス１７１６は、バッファ溢れを引き起こした原因である大量のパケットを送信しているエンド端末のＩＰアドレスを示す。
【０２１３】
受信ポート１７１７は、原因装置ＩＰアドレス１７１６で示されるＩＰアドレスからパケットを受信している受信ポートの識別子を示す。
【０２１４】
原因装置ＩＰアドレス１７１６は、具体的には、次のように求める。
【０２１５】
原因装置ＩＰアドレス１７１６は、実施形態１の＜バッファ溢れを引き起こす直接の原因を作ったエンド端末に送信する場合＞の項において、通信パケットの送信先として求めたＩＰアドレスである。
【０２１６】
すなわち、損失したパケットが送出されるはずであった送信ポートの中継パケット用送信バッファ３１１０に蓄積されている中継パケット１２１０のうち、送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスが、バッファ溢れを引き起こす直接の原因を作ったエンド端末のＩＰアドレスである。
【０２１７】
通知パケット生成部１７００は、通知パケット１７１０を生成する際に、宛先決定部１５００に、バッファ溢れを引き起こす直接の原因を作ったエンド端末のＩＰアドレスを求めるよう指示して、取得したＩＰアドレスを原因端末ＩＰアドレス１７１６に設定する。
【０２１８】
また、受信ポート１７１７は、中継パケットの送信元と、受信した受信ポートとを対応付けて記憶しておくことで求める。
【０２１９】
具体的には、まず、受信バッファ管理部３０００が、図１２で示す受信パケット情報３０２０を記憶しておく。
【０２２０】
図１２は、受信パケット情報３０２０の構成及び内容の例を示す図である。
【０２２１】
受信パケット情報３０２０は、送信元３０２１及び受信ポート３０２２を含む。
【０２２２】
送信元３０２１は、受信した中継パケットの送信元のＩＰアドレスを示す。
【０２２３】
受信ポート３０２２は、送信元３０２１で示されるＩＰアドレスを送信元とする中継パケットを受信した受信ポートを示す。
【０２２４】
受信バッファ管理部３０００は、中継パケット１２１０を受信部１２００から受け取る毎に、受け取った中継パケット１２１０の送信元ＩＰアドレス１２１２と受信ポートとを対応付けて記憶しておく。
【０２２５】
通知パケット生成部１７００は、通知パケット１７１０を生成する際に、原因端末ＩＰアドレス１７１６に設定したＩＰアドレスを受信バッファ管理部３０００に渡して、受信ポートを問い合わせる。
【０２２６】
問い合わせを受けた受信バッファ管理部３０００は、受信パケット情報３０２０送信先３０２１が、受け取ったＩＰアドレスと同じであるレコードの受信ポート３０２２に設定されている受信ポートの識別子を、通知パケット生成部１７００に返す。
【０２２７】
通知パケット生成部１７００は、受け取った受信ポートの識別子を、受信ポート１７１７に設定する。
【０２２８】
尚、通知パケットには、損失した中継パケット１２１０の送信元ＩＰアドレス１２１２や宛先ＩＰアドレス１２１３や、ＲＴＰ（Real-time Transport Protocol）等のパケットであればパケットのシーケンス番号等の情報を、含ませてもよい。
【０２２９】
＜変形例２＞
実施形態１では、受信バッファ３０１０から中継パケットが溢れ始めたときに、バッファ溢れが発生したと判断して、通知パケットを送信した。
【０２３０】
変形例２では、受信バッファ３０１０の空きが少なくなってきた時点で、警告として、通知パケットを送信する。
【０２３１】
尚、実施形態１では、受信バッファ３０１０の基本バッファ領域３０１１は中継パケットを１つ記憶できるだけの容量を有することとしているが、変形例２では複数個の中継パケットを記憶できる容量を有するものとする。
【０２３２】
警告として通知パケットを送信することで、ルータ１０００において、バッファ溢れが原因でパケットの損失が生ずる可能性があることを、他の機器に知らせることが可能となり、不都合が生じてしまう前に、適切な対応を迅速に取ることが可能となる。
【０２３３】
例えば、空きが少なくなってきた受信バッファ３０１０に蓄積されている中継パケットのうちの最近受信した中継パケットの送信元に、通知パケットを送信する。送信元への経路上に在る他のルータが、通知パケットを送信したルータへのパケット転送量を抑制することができる。他のルータがパケットの転送量を抑制することで、通知パケットを送信したルータは、バッファ溢れの発生が生じ難くなる。また、経路上のプローブ装置等が通知パケットの内容を解析して、適切な措置を取ることが可能となる。
【０２３４】
この場合は、受信バッファ管理部３０００が、受信バッファ３０１０の基本バッファ領域３０１１に中継パケットを蓄積する際に、基本バッファ領域３０１１の空き領域が所定値以上あるか、例えば、４０％以上あるかを判断する。空き領域が所定値を下回った場合は、状態検出部１４００に通知する。
【０２３５】
状態検出部１４００は、基本バッファ領域３０１１の空き領域が所定値を下回った場合は通知パケットを送信すべきであると判断し、通知パケット生成部１７００に通知パケットの生成を依頼する。
【０２３６】
通知パケット１７１０の状態１７１４に、パケット損失のおそれがある旨を示すコードを設定する。また、原因１７１５には、バッファの残量が所定値を下回っている旨を示すコードを設定する。
【０２３７】
尚、基本バッファ領域３０１１の使用率や、損失する可能性のある中継パケット１２１０の送信元ＩＰアドレス１２１２や宛先ＩＰアドレス１２１３や、ＲＴＰ等のパケットであればパケットのシーケンス番号等の情報を、通知パケットに含ませてもよい。
【０２３８】
＜変形例３＞
実施形態１では、バッファ溢れが生じたと判断される毎に、通知パケットを生成していたが、変形例３では、送信する通知パケットの量を調整する。
【０２３９】
例えば、通知パケットを必要最小限度にすることにより、ネットワークに与える新たな負荷の増大を軽減することが可能となる。
【０２４０】
以下、変形例３の通知パケットの生成・蓄積処理を説明する。
【０２４１】
図１３は、変形例３の通知パケットの生成・蓄積処理のフローチャートである。
【０２４２】
変形例３の通知パケットの生成・蓄積処理は、図６を用いて説明した実施形態１の通知パケットの生成・蓄積処理とほとんど同じである。
【０２４３】
異なる点は、ステップ４００において、通知パケットを生成するか否かを判断している点である。
【０２４４】
変形例３では、ステップ２１０で取得した通知パケットの送信先のＩＰアドレスが、初めての送信先である場合（ステップＳ４００：Ｙｅｓ）は、通知パケットを生成する。但し、一定時間同じ送信先が取得されなかった場合は、初めての送信先であるとする。
【０２４５】
また、連続して同じＩＰアドレスを所定回数取得した場合（ステップＳ４００：Ｙｅｓ）は、通知パケットを生成する。例えば、同じＩＰアドレスを１０回連続して取得した場合は、通知パケットを生成する。通知パケットが連続して同じ宛先に送信されることを避けることができる。
【０２４６】
尚、通知パケットの送信先が同じでも、状態や原因が異なる場合は通知パケットを送信することとしてもよい。
＜実施形態２＞
実施形態１では、ルータ１０００の受信バッファ３０１０が溢れたときに通知パケットを送信することとしていた。実施形態２では、中継パケット用送信バッファ３１１０が溢れたときに、通知パケットを送信する場合を説明する。
【０２４７】
尚、実施形態２においても、実施形態１の説明で用いたネットワーク１００（図１参照）を用いて説明する。
【０２４８】
＜機能＞
実施形態１では、受信バッファ管理部３０００が、受信バッファ３０１０が溢れた事を検知して状態検出部１４００に通知していた。実施形態２では、中継パケット用送信バッファ管理部３１００が、中継パケット用送信バッファ３１１０が溢れた事を検知して状態検出部１４００に通知する点が異なる。
【０２４９】
従って、実施形態２で説明するルータは、上記相違点に関係する機能以外は、実施形態１で説明したルータ１０００と同様の機能を有する。従って、図２のルータ１０００の機能ブロック図を用いて、異なる点を中心に説明する。
【０２５０】
実施形態２の中継パケット用送信バッファ管理部３１００は、実施形態１の中継パケット用送信バッファ管理部３１００が有する機能に加えて、パケット溢れが発生したことを検知して、状態検出部１４００に通知する機能を有する。
【０２５１】
実施形態２の状態検出部１４００は、中継パケット用送信バッファ管理部３１００から中継パケット用送信バッファ３１１０の状態の通知を受け、通知に基づいてバッファ溢れが生じた事を検出した場合に、通知パケットを送信すると判断する機能を有する。
【０２５２】
また、実施形態２の宛先決定部１５００は、実施形態１の宛先決定部１５００と同様に、ルータ１０００が生成した通知パケットの宛先のＩＰアドレスを決定する機能を有する。但し、この宛先のＩＰアドレスは、実施形態１では受信バッファ３０１０から溢れた中継パケットを参照して決定しているが、実施形態２では中継パケット用送信バッファ３１１０から溢れた中継パケットを参照して決定する点が異なる。
【０２５３】
＜バッファ＞
次に、実施形態２のバッファの使用方法について、図１４を用いて説明する。
【０２５４】
図１４は、実施形態２のバッファの使用方法の例を示す図である。
【０２５５】
実施形態１においては、受信バッファ３０１０が、基本バッファ領域３０１１と溢れ判定用バッファ領域３０１２との２つのバッファ領域を備えていた。実施形態２においては、中継パケット用送信バッファ３１１０が、基本バッファ領域３１１１と溢れ判定用バッファ領域３１１２との２つのバッファ領域を備えている点が異なる。
【０２５６】
中継パケットの転送処理が正常に行われている場合、受信バッファ３０１０に蓄積された中継パケットは、制御部１１００によって送出先である送信ポートが判断され、判断された送信ポートが指定されて中継パケット用送信バッファ管理部３１００に渡される。
【０２５７】
中継パケット用送信バッファ管理部３１００は、渡された中継パケットを、指定された送信ポートの中継パケット用送信バッファ３１１０の基本バッファ領域３１１１に蓄積する。
【０２５８】
しかし、中継パケット用送信バッファ管理部３１００が中継パケットを基本バッファ領域３１１１に蓄積しようとした時に、基本バッファ領域３１１１に空き領域が無い場合が生じ得る。
【０２５９】
この場合、中継パケット用送信バッファ管理部３１００は、渡された中継パケットを溢れ判定用バッファ領域３１１２に蓄積する。実施形態２では、溢れ判定用バッファ領域３１１２に中継パケット１４が蓄積された時に、バッファ溢れが発生したものとみなすものとする。すなわち、中継パケット用送信バッファ管理部３１００は、溢れ判定用バッファ領域３１１２に中継パケット１４を蓄積した時に、バッファ溢れを検知したこととする。
【０２６０】
基本バッファ領域３１１１に蓄積されている中継パケットは、バッファリングされているとして通常の転送処理を行うが、溢れ判定用バッファ領域３１１２に蓄積された中継パケット１４は、損失したパケットとみなして、転送処理は行わない。
【０２６１】
＜パケット＞
実施形態２のネットワーク１００で用いられるパケットは、図４を用いて説明した実施形態１のパケットと同じである。
【０２６２】
＜データ＞
実施形態２のネットワーク１００で用いるデータは、図５を用いて説明した実施形態１のデータと同じである。
【０２６３】
＜動作＞
以下、実施形態２のルータ１０００の動作について図１５を用いて説明する。但し、実施形態２のルータ１０００の処理と実施形態１のルータの処理とは、同様の処理が多いので異なる点を中心に説明する。
【０２６４】
以下、実施形態１と同様に、通知パケットの送信先として４つの送信先についてそれぞれ説明する。１つ目は、バッファ溢れによって損失したパケットの宛先を、通知パケットの送信先とする場合である。２つ目は、バッファ溢れによって損失したパケットの送信元を、通知パケットの送信先とする場合である。３つ目は、バッファ溢れを引き起こす直接の原因を作ったエンド端末を、通知パケットの送信先とする場合であり、４つ目は、パケット溢れが発生したルータの周囲の装置を、通知パケットの送信先とする場合である。
【０２６５】
＜損失したパケットの宛先に送信する場合＞
図１５は、送信バッファ溢れが発生した場合のルータ１０００の処理を示すフローチャートである。図１５のフローチャートにおいて、図６のフローチャートにおけるステップ番号と同じ番号の処理は、実施形態１の処理と同様である。
【０２６６】
実施形態２のルータ１０００が送信バッファ溢れを発生させた場合の処理を、実施形態１のルータ１０００の処理と同様に、３つに分けて説明する。１つ目は、中継パケットの受信・蓄積処理、２つ目は、通知パケットの生成・蓄積処理、３つ目は、通知パケットの送信処理である。
【０２６７】
＜中継パケットの受信・蓄積処理＞
実施形態２における中継パケット受信処理が、実施形態１における中継パケット受信処理と異なる点は、受信バッファ管理部３０００が受信バッファ３０１０のバッファ溢れが発生したことの検知（図６のステップ１２０）を行わず、通知パケットの生成依頼（図６のステップ１３０）を行わない点が異なる。
【０２６８】
また、実施形態２における中継パケット蓄積処理が、実施形態１における中継パケット蓄積処理と異なる点は、中継パケット用送信バッファ管理部３１００が中継パケット用送信バッファ３１１０のバッファ溢れが発生したことを検知して（ステップＳ５００）、通知パケットの生成依頼を行う（ステップＳ５１０）点が異なる
詳細には、中継パケット用送信バッファ管理部３１００は、制御部１１００から依頼された送信ポートの中継パケット用送信バッファ３１１０の基本バッファ領域３１１１に、受け取った中継パケット１２１０を蓄積する（ステップＳ１６０）。
【０２６９】
ただし、基本バッファ領域３１１１に空きがなく、渡された中継パケット１２１０を溢れ判定用バッファ領域３１１２に蓄積した場合には、中継パケット用送信バッファ管理部３１００は、送信バッファ溢れが発生したとみなして送信ポートの識別子とその旨とを状態検出部１４００に通知する。
【０２７０】
通知を受けた状態検出部１４００は、送信バッファ溢れが発生したと判断し（ステップＳ５００：Ｙｅｓ）、通知パケットの生成処理を通知パケット生成部１７００に依頼する（ステップＳ５１０）。この際、送信ポートを指定する。
【０２７１】
その後、ステップＳ１４０に戻り、ステップＳ１４０から処理を繰り返す。
【０２７２】
一方、送信バッファ３１１０が溢れていない場合は（ステップＳ５００：Ｎｏ）、ステップＳ１４０に戻り、ステップＳ１４０から処理を繰り返す。
【０２７３】
＜通知パケットの生成・蓄積処理＞
実施形態２における通知パケット生成・蓄積処理が、実施形態１における通知パケット生成・蓄積処理と異なる点は、通知先のＩＰアドレスを取得する処理（図６のステップＳ２１０、図１５のステップＳ５２０）である。
【０２７４】
詳細には、ステップＳ５１０の処理において通知パケットの生成処理を依頼された状態検出部１４００は、送信ポートを指定し、通知パケットの生成処理を通知パケット生成部１７００に依頼する。
【０２７５】
依頼を受けた通知パケット生成部１７００は、通知パケットの送信先を宛先決定部１５００に問い合わせる。この際、指定された送信ポートを指定する。
【０２７６】
問い合わせを受けた宛先決定部１５００は（ステップＳ２００）、指定された送信ポートの送信バッファ３１１０から溢れた中継パケット１２１０の宛先ＩＰアドレス１２１３を、中継パケット用送信バッファ管理部３１００に問い合わせる。宛先決定部１５００には、予め、通信パケットの送付先は、損失したパケットの送信先とする旨が記憶されているものとする。
【０２７７】
問い合わせを受けた中継パケット用送信バッファ管理部３１００は、指定された送信ポートの送信バッファ３１１０の溢れ判定用バッファ領域３１１２に蓄積されている損失したものとみなした中継パケット１４（図１４参照）を参照し、宛先ＩＰアドレス１２１３を宛先決定部１５００に渡す（ステップＳ５２０）。
【０２７８】
宛先ＩＰアドレス１２１３を宛先決定部１５００に渡した中継パケット用送信バッファ管理部３１００は、損失したものとみなした中継パケット１４を削除する。
【０２７９】
宛先ＩＰアドレス１２１３を受け取った宛先決定部１５００は、通知パケットの宛先として、受け取った宛先ＩＰアドレス１２１３を通知パケット生成部１７００に渡す。
【０２８０】
通知パケットの宛先を受け取った通知パケット生成部１７００は、通知パケット１７１０を生成する（ステップＳ２２０）。
【０２８１】
＜通知パケットの送信処理＞
実施形態２における通知パケットの送信処理は、実施形態１における通知パケットの送信処理と同様である。
【０２８２】
＜損失したパケットの送信元に送信する場合＞
この損失したパケットの送信元に通知パケットを送信する場合の実施形態２のルータ１０００の処理は、図１５を用いて説明したルータ１０００の処理とほぼ同じである。
【０２８３】
異なる点は、通知パケットの送信先のＩＰアドレス取得する処理（ステップＳ５２０）である。この処理は、宛先決定部１５００が行う処理である。
【０２８４】
通知パケット生成部１７００から通知パケットの送信先の問い合わせを受けた宛先決定部１５００は、指定された送信ポートの送信バッファ３１１０から溢れた中継パケット１２１０の送信元ＩＰアドレス１２１２を、中継パケット用送信バッファ管理部３１００に問い合わせる。宛先決定部１５００には、予め、通信パケットの送付先は、損失したパケットの送信元とする旨が記憶されているものとする。
【０２８５】
問い合わせを受けた中継パケット用送信バッファ管理部３１００は、指定された送信ポートの送信バッファ３１１０の溢れ判定用バッファ領域３１１２に蓄積されている損失したとみなされた中継パケット１４（図１４参照）を参照し、送信元ＩＰアドレス１２１２を宛先決定部１５００に渡す（ステップＳ５２０）。
【０２８６】
＜バッファ溢れを引き起こす直接の原因を作ったエンド端末に送信する場合＞
このバッファ溢れを引き起こす直接の原因を作ったエンド端末に通知パケットを送信する場合の実施形態２のルータ１０００の処理は、図１５を用いて説明したルータ１０００の処理とほぼ同じである。
【０２８７】
異なる点は、通知パケットの送信先のＩＰアドレス取得する処理（ステップＳ５２０）である。この処理は、宛先決定部１５００が行う処理である。
【０２８８】
通知パケット生成部１７００から通知パケットの送信先の問い合わせを受けた宛先決定部１５００は、バッファ溢れの原因となった中継パケット１２１０を送信してきた送信元のＩＰアドレスを求める。宛先決定部１５００には、予め、通知パケットの送付先は、バッファ溢れの原因となった中継パケットの送信元とする旨が記憶されているものとする。
【０２８９】
まず、宛先決定部１５００は、指定された送信ポートの中継パケット用送信バッファ３１１０に蓄積されている中継パケット１２１０に、送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスを求めるよう、中継パケット用送信バッファ管理部３１００に依頼する。
【０２９０】
依頼を受けた中継パケット用送信バッファ管理部３１００は、指定された送信ポートの中継パケット用送信バッファ３１１０に蓄積されている中継パケット１２１０を検索し、中継パケット１２１０の送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスを、宛先決定部１５００に渡す（ステップＳ５２０）。すなわち、送信元ＩＰアドレス１２１２として最も多く出現するＩＰアドレスとは、バッファ溢れを引き起こしている大量の中継パケットを送信している装置のＩＰアドレスであるからである。
【０２９１】
＜バッファ溢れを発生したルータの周囲の装置に送信する場合＞
このバッファ溢れを発生したルータの周囲の装置に通知パケットを送信する場合の実施形態２のルータ１０００の処理は、図１５を用いて説明したルータ１０００の処理と同様である。
【０２９２】
＜変形例１＞
実施形態１の変形例１では、通信パケットに、受信バッファ溢れを引き起こした原因である大量のパケットを送信しているエンド端末のＩＰアドレスと、その大量のパケットを受信している受信インターフェースである受信ポートの識別子とを含ませることとしていた。
【０２９３】
実施形態２の変形例１では、通信パケットに、送信バッファ溢れを引き起こした原因である大量のパケットを送信しているエンド端末のＩＰアドレスと、その大量のパケットを送信しようとしている送信ポートの識別子とを含ませる。
【０２９４】
バッファ溢れを引き起こした原因となったエンド端末の方向、すなわち、エンド端末のＩＰアドレスや送信ポートを通知パケットに含ませることで、通知パケットを受信した他の装置は、その原因なったエンド端末の方向を正確に把握することが可能となり、適切な対応を迅速に取ることが可能となる。
【０２９５】
例えば、その原因となったエンド端末に対して、バッファ溢れした送信ポートから送出するパケット量の抑制を指示するような命令を送信することが可能となる。また、他の装置は、大量のパケットを送信している送信ポートから送出するパケットの経路を変更するなどの措置を取ることが可能となる。
【０２９６】
実施形態２の変形例１で送信する通信パケットは、例えば、実施形態１の変形例１で送信する通知パケット１７１０（図１１参照）の受信ポート１７１７の代わりに送信ポートを設定したものである。
【０２９７】
また、送信バッファ溢れを引き起こした原因である大量のパケットのうち、最も多く出現する送信先のＩＰアドレスを通知パケットに含ませることとしてもよい。
【０２９８】
＜変形例２＞
実施形態１の変形例２では、受信バッファ３０１０の空きが少なくなってきた時点で、警告として、通知パケットを送信することとしていた。
【０２９９】
実施形態２の変形例２では、送信バッファ３１１０の空きが少なくなってきた時点で、警告として、通知パケットを送信する。
【０３００】
詳細には、中継パケット用送信バッファ管理部３１００が、送信バッファ３１１０の基本バッファ領域３１１１に中継パケットを蓄積する際に、基本バッファ領域３０１１の空き領域が所定値以上あるか、例えば、４０％以上あるかを判断する。空き領域が所定値を下回った場合は、状態検出部１４００に通知する。
【０３０１】
状態検出部１４００は、基本バッファ領域３１１１の空き領域が所定値を下回った場合は通知パケットを送信すべきであると判断し、通知パケット生成部１７００に通知パケットの生成を依頼する。
【０３０２】
通知パケット１７１０の状態１７１４に、パケット損失のおそれがある旨を示すコードを設定する。また、原因１７１５には、送信バッファの残量が所定値を下回っている旨を示すコードを設定する。
＜実施形態３＞
実施形態１では、中継装置であるルータに発生する不具合として、バッファ溢れを例に説明した。
【０３０３】
実施形態３では、レイトコリジョンが発生した場合を例に説明する。
【０３０４】
レイトコリジョンが発生する場合は、ルータ等の各ポートの通信モードの設定が正しくなされていないことが、レイトコリジョンの原因の一つとして考えられる。通信モードの設定とは、全二重通信又は半二重通信のいずれかのモードに設定することをいう（以下、同様。）。
【０３０５】
従って、レイトコリジョンを検知したルータが、送信できなかったと推定される中継パケットの送信先に通知パケットを送信することで、その経路上のルータ及びエンド端末等が、レイトコリジョン発生という状態及び発生箇所等を正確に把握することが可能となる。
【０３０６】
また、中継パケットの送信先以外、例えば、送信元等に通知パケットを送信することで、その経路上のルータ及びプローブ装置、エンド端末等がレイトコリジョン発生という状態及び発生箇所等を正確に把握することが可能となる。
【０３０７】
従って、経路上のルータ等は、その通知パケットを送受信したポートの通信モードの設定が不整合を起こしている可能性があることを検知することができるので、通信モードの設定を変更する等の対処を施すことが可能となる。
【０３０８】
ここで、実施形態３のルータ１０００の機能を、図１６を用いて説明する。
【０３０９】
図１６は、実施形態３のルータ１０００の機能的構成の例を示すブロック図である。
【０３１０】
図２を用いて説明した実施形態１のルータは、受信バッファ管理部３０００が受信バッファ３０１０の溢れを検知したら、状態検出部１４００に通知した。
【０３１１】
実施形態３では、レイトコリジョン検知部１９００がレイトコリジョンの発生を検知したら、その旨を状態検出部１４００に通知する点が異なる。
【０３１２】
従って、実施形態３で説明するルータは、レイトコリジョン検知部１９００を有する点、及び、レイトコリジョンが発生した旨の通知パケットを送信する点以外は、実施形態１で説明したルータ１０００と同様の機能を有する。
【０３１３】
以下、実施形態３のルータ１０００の機能のうち、実施形態１のルータ１０００と異なる点を中心に説明する。
【０３１４】
レイトコリジョン検知部１９００は、ルータ１０００が中継パケットを転送した後にレイトコリジョンが発生したことを検知する機能を有する。この際、レイトコリジョンが発生した送信ポートも検知する。
【０３１５】
レイトコリジョンの発生を検知したレイトコリジョン検知部１９００は、その旨及び発生した送信ポートの識別子を状態検出部１４００に通知する。
【０３１６】
実施形態３の状態検出部１４００は、レイトコリジョン検知部１９００からレイトコリジョンが発生した旨の通知及び送信ポートの識別子を受けると、通知パケットを送信すると判断し、通知パケット生成部１７００に通知パケットの生成を依頼する。
【０３１７】
実施形態３の宛先決定部１５００は、実施形態１の宛先決定部１５００と同様に、ルータ１０００が生成した通知パケットの宛先のＩＰアドレスを決定する。この宛先のＩＰアドレスは、中継パケット用送信バッファ管理部３１００から取得する。レイトコリジョンが発生した送信ポートから最近転送した中継パケットが、レイトコリジョンを発生させたと推測できるからである。
【０３１８】
従って、実施形態３の中継パケット用送信バッファ管理部３１００は、各送信ポートから最近転送した中継パケットを記憶しておく。また、宛先決定部１５００からの問い合わせに応じて、記憶している最近転送した中継パケットの送信先又は送信元のＩＰアドレスを返す。
【０３１９】
図１７は、実施形態３の通知パケットの構成及び内容の例を示す図である。
【０３２０】
図４（ｂ）で説明した通知パケット１７１０のデータ部に、原因１７１５の代わりに、発生ポート１７２０及び設定情報１７２１が設けられている。
【０３２１】
発生ポート１７２０は、レイトコリジョンが発生した送信ポートの識別子を示す。
【０３２２】
設定情報１７２１は、発生ポート１７２０で示される送信ポートに設定されている通信モード、すなわち、全二重通信又は半二重通信のいずれかのモードを示す。
【０３２３】
尚、実施形態３では、状態１７１４に、「レイトコリジョン発生」を示すコードが設定される。
＜実施形態４＞
実施形態３では、中継装置であるルータに発生する不具合として、レイトコリジョンが発生した場合を説明した。
【０３２４】
実施形態４では、ルータに発生した不具合ではなく、ルータの状態に変化が生じた場合を説明する。ルータの状態の変化として、ポートの通信モードの設定、すなわち、全二重通信又は半二重通信の設定が変更された場合を例に説明する。
【０３２５】
通信モードの設定が変更された場合、設定モードの不整合によりレイトコリジョンが発生する可能性が考えられる。
【０３２６】
従って、ポートの通信モードの設定が変更された場合には、変更されたルータ自身が、変更後の通信モードを他のルータ等に通知することで、不具合が生ずる前に通信モードの設定を変更する等の対処を施すことが可能となる。
【０３２７】
通知パケットを周囲の装置に送信することで、周囲の装置は必要に応じてポートの設定を変更することが可能となる。また、通信モードの変更がなされたポートから転送する中継パケットの送信先に通知パケットを送信することで、経路上のルータ等は必要に応じてポートの設定を変更することが可能となる。
【０３２８】
実施形態４のルータ１０００の機能を、図１８を用いて説明する。
【０３２９】
図１８は、実施形態４のルータ１０００の機能的構成の例を示すブロック図である。
【０３３０】
図１６を用いて説明した実施形態３のルータは、レイトコリジョン検知部１９００がレイトコリジョンの発生を検知したら、状態検出部１４００に通知した。
【０３３１】
実施形態４では、設定変更を通信モード設定部１９１０がポートの通信モードの設定変更を行ったら、その旨を状態検出部１４００に通知する。
【０３３２】
従って、実施形態４で説明するルータは、設定変更を通信モード設定部１９１０を有する点、及び、ポートの通信モードの設定変更を行った旨の通知パケットを送信する点以外は、実施形態３で説明したルータ１０００と同様の機能を有する。
【０３３３】
以下、実施形態４のルータ１０００の機能のうち、実施形態３のルータ１０００と異なる点を中心に説明する。
【０３３４】
設定変更を通信モード設定部１９１０は、ポートの通信モードを設定する機能を有する。通信モードの設定は、ユーザが手動で行う場合と、ルータ１０００が行う場合がある。ルータ１０００が行う場合とは、通信モードの設定がいわゆる「オート」になっている場合等である。
【０３３５】
また、設定変更を通信モード設定部１９１０は、通信モードを設定した際に、それまでに設定されていた通信モードと異なるモードに設定された場合には、その旨及びそのポートの識別子を状態検出部１４００に通知する機能を有する。通信モード設定部１９１０は、各ポートに設定されている通信モードを記憶しているものとする。
【０３３６】
実施形態４の状態検出部１４００は、設定変更を通信モード設定部１９１０から通信モードが変更された旨の通知及びポートの識別子を受けると、通知パケットを送信すると判断し、通知パケット生成部１７００に通知パケットの生成を依頼する。
【０３３７】
実施形態４の宛先決定部１５００は、実施形態３の宛先決定部１５００と同様に、ルータ１０００が生成した通知パケットの宛先のＩＰアドレスを決定する。この宛先のＩＰアドレスは、中継パケット用送信バッファ管理部３１００から取得する。
【０３３８】
実施形態４の中継パケット用送信バッファ管理部３１００は、宛先決定部１５００からの問い合わせに応じて、次に転送する中継パケットの送信先のＩＰアドレスを返す機能を有する。尚、周囲の装置に送信する場合は、ブロードキャストアドレスを返す。
【０３３９】
実施形態４の通知パケットは、実施形態３の通知パケット（図１７参照）の構成と同様である。
【０３４０】
発生ポート１７２０は、通信モードの設定が変更されたポートの識別子を示す。
【０３４１】
設定情報１７２１は、発生ポート１７２０で示されるポートに設定されている通信モード、すなわち、全二重通信又は半二重通信のいずれかのモードを示す。
【０３４２】
尚、実施形態４では、状態１７１４に、「通信モード変更」を示すコードが設定される。
＜実施形態５＞
実施形態３では、中継装置であるルータに発生する不具合として、レイトコリジョンが発生した場合を説明した。
【０３４３】
実施形態５では、ルータに発生した不具合ではなく、ネットワーク上の不具合をルータが検知した場合を説明する。ネットワーク上の不具合をルータが検知した場合として、ルータが転送した中継パケットに対しての宛先到達不可のＩＣＭＰメッセージ（以下、「不達ＩＣＭＰパケット」という。）を受信した場合を例に説明する。
【０３４４】
不達ＩＣＭＰパケットには、中継パケットが不達となった原因に関する情報が含まれている。例えば、宛先ネットワークに到達不能、宛先ホスト到達不能等である。
【０３４５】
実施形態５のルータは、不達ＩＣＭＰパケットを受信したら、不達ＩＣＭＰパケットによって通知された不具合の内容を含ませた通知パケットを周囲の機器等に送信する。周囲の機器等は、存在しないエンド端末、及び、開いていないポート等を事前に知ることが可能となり、存在しないエンド端末等へのパケットの転送を抑制するなどの措置を行うことが可能となる。すなわち、不達となるパケットがネットワーク上に流れることが抑制されるので、不要なトラフィックの増加を抑えることが可能となる。
【０３４６】
実施形態５のルータは、受信した不達ＩＣＭＰパケットのうちから通知パケットによって周囲の機器に通知した方がよいもののみを通知することによって、確実に通知したい内容を周囲の機器に通知できる。
【０３４７】
また、通知パケットを、不達となった中継パケットの送信元又は送信先に送信することで、例えば、経路上のプローブ装置が不達の原因を確実に知ることができる。プローブ装置は、必要に応じて送信元等に指示を出すことが可能となる。
【０３４８】
実施形態５のルータ１０００の機能を、図１９を用いて説明する。
【０３４９】
図１９は、実施形態５のルータ１０００の機能的構成の例を示すブロック図である。
【０３５０】
図１６を用いて説明した実施形態３のルータは、レイトコリジョン検知部１９００がレイトコリジョンの発生を検知したら、状態検出部１４００に通知した。
【０３５１】
実施形態５では、ＩＣＭＰメッセージ確認部１９２０が不達ＩＣＭＰパケットを受信したことを確認したら、その旨を状態検出部１４００に通知する。
【０３５２】
従って、実施形態５で説明するルータは、ＩＣＭＰメッセージ確認部１９２０を有する点、及び、不達ＩＣＭＰパケットを受信した旨の通知パケットを送信する点以外は、実施形態３で説明したルータ１０００と同様の機能を有する。
【０３５３】
以下、実施形態５のルータ１０００の機能のうち、実施形態３のルータ１０００と異なる点を中心に説明する。
【０３５４】
実施形態５の受信バッファ管理部３０００は、受信したパケットを受信バッファ３０１０に蓄積し、更に、受信したパケットがＩＣＭＰパケットである場合には、受信したＩＣＭＰパケットをＩＣＭＰメッセージ確認部１９２０に渡す。
【０３５５】
ＩＣＭＰパケットを受信バッファ管理部３０００から受け取ったＩＣＭＰメッセージ確認部１９２０は、受け取ったＩＣＭＰパケットのメッセージの種類が不達ＩＣＭＰパケットであること、及び、ルータ１０００自身が転送した中継パケットに対するＩＣＭＰパケットであることを確認する。不達ＩＣＭＰパケットであることは、ＩＣＭＰパケット内のメッセージのタイプを参照して確認する。
【０３５６】
また、ルータ１０００自身が転送した中継パケットに対するＩＣＭＰパケットであることは、ＩＣＭＰパケットのイーサネットフレーム（「イーサネット」は登録商標）に設定されている情報と、ＩＣＭＰパケットのペイロード部に設定されている情報を参照して確認する。具体的には、ＩＣＭＰパケットのイーサネットフレーム（「イーサネット」は登録商標）中の宛先ＭＡＣアドレスが、ルータ１０００が中継パケットを転送したポートのＭＡＣ学習テーブル中のＭＡＣアドレスと一致するか確認する。さらに、ＩＣＭＰパケットのペイロード部に設定されている不達になった中継パケットのＩＰヘッダ情報中の送信先ＩＰアドレスと、ルータ１０００自身のＩＰアドレスのサブネット部が一致するか確認する。このＭＡＣアドレスと、サブネット部の両者が一致すれば、ルータ１０００自身が転送した中継パケットに対応するＩＣＭＰパケットであると判定する。なお、スイッチのように中継装置自身がＩＰアドレスを持たない場合は、ＭＡＣアドレスの一致のみで判定する。
【０３５７】
受け取ったＩＣＭＰパケットが不達ＩＣＭＰパケットであり、ルータ１０００自身が転送した中継パケットに対するものである場合、ＩＣＭＰメッセージ確認部１９２０は、不達ＩＣＭＰパケットを状態検出部１４００に通知する。
【０３５８】
実施形態５の状態検出部１４００は、ＩＣＭＰメッセージ確認部１９２０から不達ＩＣＭＰパケットを受けると、通知パケットを送信すると判断し、通知パケット生成部１７００に通知パケットの生成を依頼する。
【０３５９】
実施形態５の通知パケット生成部１７００は、不達ＩＣＭＰパケットのペイロード部のＩＰヘッダ、すなわち、不達となった中継パケットのＩＰヘッダを参照し、通知パケットの宛先を設定する。例えば、不達となった中継パケットの送信元のＩＰアドレスを設定する等である。周囲の装置に送信する場合は、ブロードキャストアドレスを設定する。
【０３６０】
また、通知パケット生成部１７００は、ルーティングテーブル１８１０（図５参照）を参照し、不達となった中継パケットが送出されたポートの識別子を求め、通知パケットに設定する。
【０３６１】
図２０は、実施形態５の通知パケットの構成及び内容の例を示す図である。
【０３６２】
図４（ｂ）で説明した実施形態１の通知パケット１７１０のデータ部に、原因１７１５の代わりに、不達理由１７３０及び送信先ＩＰアドレス１７３１が設けられている。
【０３６３】
不達理由１７３０は、不達となった理由を示す。不達ＩＣＭＰパケットのＣｏｄｅフィールドを参照して設定する。このＣｏｄｅフィールドには、不達の詳細情報が格納されている。
【０３６４】
送信先ＩＰアドレス１７３１は、不達となった中継パケットの送信先の情報（例えば、送信ＩＰアドレスやポート番号）を示す。
【０３６５】
尚、実施形態５では、状態１７１４に、「不達ＩＣＭＰパケット受信」を示すコードが設定される。
【０３６６】
＜補足＞
以上、本発明の実施形態について説明したが、本発明は上記形態に限らず、以下のようにしてもよい。
（１）実施形態では、バッファ溢れを不具合の例として説明しているが、他の不具合でもよい。更には、不具合ではなく、ルータの状態の変化が生じた場合に、通知パケットを送信してもよい。例えば、内部に記憶しているテーブルに変更があった時に通知パケットを送信する等である。すなわち、ルータに不具合な変化又は一般的な変化等が生じ、ルータが特定の状態となった時に、特定の状態に応じて通知パケットを送信する。
【０３６７】
例えば、バッファ溢れが発生したときには、溢れた中継パケットの送信先の装置、送信元の装置又はバッファ溢れの原因を作った原因端末装置等を宛先として通知パケットを送信する。また、ブロードキャストで通知パケットを送信することとしてもよい。バッファの残量が所定量を下回ったとき及び一般的な変化が生じた場合も、同様の宛先に通知パケットを送信する。
（２）実施形態では、ルータに不具合が発生した場合を説明しているが、例えばスイッチなどの、ルータ以外の中継装置であってもよい。
（３）実施形態では、通知パケットはＩＣＭＰのパケットを使用しているが、通知パケットは、ＩＣＭＰのパケットに限るものではなく、ネットワークにて転送されるパケットであれば、他のプロトコルのフォーマットでも良い。例えば、ＵＤＰ（User Datagram Protocol）のパケットや、ＴＣＰ（Transmission Control Protocol）のパケットでも良い。
（４）ルータ１０００は、図２等の各構成要素の全部又は一部を、１チップ又は複数チップの集積回路で実現してもよい。
（５）ルータ１０００は、図２等の各構成要素の全部又は一部を、コンピュータのプログラムで実現してもよいし、その他どのような形態で実施してもよい。
【０３６８】
コンピュータプログラムの場合、メモリカード、ＣＤ−ＲＯＭなどいかなる記録媒体に書き込まれたものをコンピュータに読み込ませて実行させる形にしてもよいし、ネットワークを経由してプログラムをダウンロードして実行させる形にしてもよい。
（６）実施形態１〜５で説明した処理を組み合わせて行うようにしてもよい。例えば、ルータが、送信バッファが溢れた場合、又は、受信バッファが溢れた場合に通知パケットを送信するなどである。
【０３６９】
上に述べた実施例には、以下に述べるような付記も開示されている。
（付記１）
一方の装置から受信したパケットを他方の装置へ転送する中継装置であって、
自装置が特定の状態となったことを検知する検知手段と、
前記検知手段で自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する生成手段と、
生成したパケットを所定の送信先に送信する送信手段と
を備える中継装置。
（付記２）
前記送信手段は、前記検知手段で自装置が特定の状態となったことを検知した頻度に応じて、生成したパケットを所定の送信先に送信する
付記１記載の中継装置。
（付記３）
前記特定の状態とは、受信したパケットのうち1又は複数のパケットを転送することができない状態である
付記1乃至付記２記載の中継装置。
（付記４）
前記中継装置は、転送するパケットを記憶しておく記憶手段を備え、
前記特定の状態とは、前記記憶手段の空き領域が所定量を下回った状態である
付記1乃至付記２記載の中継装置。
（付記５）
前記特定の状態とは、レイトコリジョンの発生を検知した状態である
付記１乃至付記２記載の中継装置。
（付記６）
前記特定の状態とは、ポートの通信モードの設定が変更された状態である
付記１乃至付記２記載の中継装置。
（付記７）
前記特定の状態とは、転送したパケットの不達を示す情報を含むパケットを受信した状態である
付記１乃至付記２記載の中継装置。
（付記８）
前記特定の状態とは、中継装置に生じる得る一般的な変化が生じた状態である
付記１乃至付記２記載の中継装置。
（付記９)
前記所定の送信先とは、転送できなかったパケットの送信先である
付記１乃至付記８記載の中継装置。
（付記１０)
前記所定の送信先とは、転送できなかったパケットの送信元である
付記１乃至付記８記載の中継装置。
（付記１１)
前記所定の送信先とは、前記記憶手段に記憶されているパケットであって最近記憶したパケットの送信先である
付記４記載の中継装置。
（付記１２)
前記所定の送信先とは、前記記憶手段に記憶されているパケットであって最近記憶したパケットの送信元である
付記４記載の中継装置。
【０３７０】
(付記１３)
前記中継装置は、転送するパケットを記憶しておく記憶手段を備え、
前記所定の送信先とは、受信したパケットの送信元であって、前記記憶手段に記憶されているパケットのうち、当該送信元から送信されたパケットの数が最も多い送信元である
付記1乃至付記２記載の中継装置。
（付記１４）
前記所定量とは、蓄積できる全体のパケット個数以下の個数を示す量である
付記４記載の中継装置。
（付記１５)
前記所定の送信先とは、前記中継装置が属するネットワークに属する機器である
付記１乃至付記８記載の中継装置。
（付記１６）
一方の装置から受信したパケットを他方の装置へ転送する中継装置で用いられる自装置の状態通知方法であって、
自装置が特定の状態となったことを検知する検知ステップと、
前記検知ステップで自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する生成ステップと、
生成したパケットを所定の送信先に送信する送信ステップと
を備える状態通知方法。
（付記１７）
一方の装置から受信したパケットを他方の装置へ転送する中継装置に、自装置の状態を通知させるためのコンピュータプログラムであって、
自装置が特定の状態となったことを検知する処理を実行させ、
自装置が特定の状態となったことを検知した場合に、自装置を識別する情報と自装置が特定の状態であることを示す情報とを含むパケットを生成する処理を実行させ、
生成したパケットを所定の送信先に送信する処理を実行させる
コンピュータプログラム。
【符号の説明】
【０３７１】
１０００  ルータ
１１００  制御部
１２００  受信部
１３００  送信部
１４００  状態検出部
１５００  宛先決定部
１６００  通知パケット送信制御部
１７００  通知パケット生成部
１８００  ルーティングテーブル記憶部
２０００  エンド端末
３０００  受信バッファ管理部
３０１０  受信バッファ
３１００  中継パケット用送信バッファ管理部
３１１０  中継パケット用送信バッファ
３２００  通知パケット用送信バッファ管理部
３２１０  通知パケット用送信バッファ
４０００  プローブ装置
【図１】
2010259037.tif 000003
【図２】
2010259037.tif 000004
【図３】
2010259037.tif 000005
【図４】
2010259037.tif 000006
【図５】
2010259037.tif 000007
【図６】
2010259037.tif 000008
【図７】
2010259037.tif 000009
【図８】
2010259037.tif 000010
【図９】
2010259037.tif 000011
【図１０】
2010259037.tif 000012
【図１１】
2010259037.tif 000013
【図１２】
2010259037.tif 000014
【図１３】
2010259037.tif 000015
【図１４】
2010259037.tif 000016
【図１５】
2010259037.tif 000017
【図１６】
2010259037.tif 000018
【図１７】
2010259037.tif 000019
【図１８】
2010259037.tif 000020
【図１９】
2010259037.tif 000021
【図２０】
2010259037.tif 000022