JPWO2008146730A1 - ノード装置、パケット転送方法及びパケット転送プログラム - Google Patents

ノード装置、パケット転送方法及びパケット転送プログラム Download PDF

Info

Publication number
JPWO2008146730A1
JPWO2008146730A1 JP2009516291A JP2009516291A JPWO2008146730A1 JP WO2008146730 A1 JPWO2008146730 A1 JP WO2008146730A1 JP 2009516291 A JP2009516291 A JP 2009516291A JP 2009516291 A JP2009516291 A JP 2009516291A JP WO2008146730 A1 JPWO2008146730 A1 JP WO2008146730A1
Authority
JP
Japan
Prior art keywords
packet
transmitted
received
identification information
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009516291A
Other languages
English (en)
Other versions
JP5077782B2 (ja
Inventor
鈴木 一哉
一哉 鈴木
地引 昌弘
昌弘 地引
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2009516291A priority Critical patent/JP5077782B2/ja
Publication of JPWO2008146730A1 publication Critical patent/JPWO2008146730A1/ja
Application granted granted Critical
Publication of JP5077782B2 publication Critical patent/JP5077782B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations

Landscapes

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

Abstract

課題 ユニキャストの場合に、受信したパケットに余計な情報を付与することがなく、また、マルチキャストの場合に、複数の上流ノードから同一のマルチキャストパケットを送信されるような場合でも、ループを検出してネットワークがループによって輻輳状態になることを防ぐ。解決手段 受信したパケットがノード自身が一度送信したパケットかどうかを判定し、送信済みであれば廃棄を行う。送信済みでなければ次受信時における送信済み判定のために、パケットを一意に識別するための情報を記録した上で、パケットの送信を行う。このことにより、ループ発生時のパケットの無限コピーを防ぐ。

Description

本発明は、ネットワーク中に誤ってループ経路が発生した時に、受信したパケットがノード自身が一度送信したパケットかどうかを判別し、送信済みであれば廃棄を、そうでなければ送信を行うことにより、パケットの無限コピーを防ぐノード装置、パケット転送方法及びパケット転送プログラムに関する。
ブロードバンドネットワークの普及に伴い、関連技術による狭帯域ネットワークでは困難であった高画質映像配信サービスの実現可能性が現実的となってきた。また映像パケットの配信にマルチキャスト技術を用いることで、サーバやネットワークの帯域を節約しつつ、多数のユーザへの配信が可能となっている。
しかし、マルチキャストにはループ経路が発生したときにネットワーク全体に致命的影響を与えてしまうという課題がある。ループ経路は、ネットワーク管理者の設定ミスやネットワークトポロジー変化時の過渡的な状態で発生する可能性がある。図28は、ノード15、17、18の間でループ経路が生じている状態を示している。ノード15が送信したパケットのうちノード17に送信したパケットは、ノード18を経由して、再度ノード15に戻ってくるため、これらのノード間を生存時間が経過するまで回り続けることになる。しかも上流側であるノード12側からノード15に到着するパケットも次々とこのループ経路に向かって送信されることになる。このようにループ経路を構成するリンクの帯域が浪費されるばかりではなく、ノード15は受信したパケットを下流であるノード16へも送信するため、下流側であるノード16,19,20へのリンクの帯域も浪費されるという問題がある。
ループによる帯域の浪費を抑えるために、RPF(Reverse Path Forwarding)チェック(非特許文献1)という手法が用いられている。これは、パケットの送信元アドレスを参照し、送信元アドレスがどの方向から来るのが正しいのかを自身の経路表を用いて調べ、正しい方向から来たパケットを転送するという手法である。
すなわち、ユニキャストテーブルは宛先ノードアドレス及びネクストホップのアドレスを有し、マルチキャストテーブルは宛先ノードアドレス、次転送先ノードアドレス、送信元ノードアドレス及び上流ノードアドレスを有する。当該ユニキャストテーブルを持つノードは、マルチキャストテーブルを最初に生成する際に、送信元ノードアドレスを当該ユニキャストテーブルを参照して宛先ノードアドレスとして検出し、ネクストホップのアドレスを取得し、上流アドレスとして設定する。
図28を用いて説明すると、ここでノード11から送信されるマルチキャストパケットは、ノード15にとってノード12が直前の上流ノードとなるので、ノード12に接続されているインタフェースから受信したパケットを転送し、ノード18に接続されているインタフェースからのパケットは破棄するように設定することとなる。このようにマルチキャストパケットを受信するインタフェースを限定することで、ループ経路発生時のトラフィックの増大を防いでいた。
特許文献1では、加入者端末から送出されるフレームをカプセル化し、PEスイッチが自己のアドレスを付与した新たなフレームを構成し、受信したフレームに自己のアドレスがついていればループにより同一フレームを受信したと判断し、破棄するという手法が記載されている。
特願2003−091241 RFC2201
しかし、非特許文献1や特許文献1等に記載の関連技術による手法は、以下に示すような問題を有していた。
第1に、マルチキャストツリーの切り替えに時間がかかるという問題や、また、マルチキャスト冗長配信を実現することができないという問題があった。関連技術においては、ネットワーク上にループが発生したときに、ループにより再到着したパケットを再度送信を行わないように、パケットを受信するインタフェースをひとつに限定していた。これにより、ループの発生により誤った方向からパケットが配信されてきた場合、受信するインタフェースが異なることを検出できるため、パケットの廃棄が可能であり、このことで、ループの発生に伴うパケットの再送信を防止することができた。しかし、このような関連技術による手法は、マルチキャストテーブルを再構築する必要があったからである。
例えば、非特許文献1を一例とする関連技術による手法では、障害発生時における切り替えなどに時間がかかるという問題があった。例えば、図29においてノード12からノード15へのリンクに障害が発生したときに、ノード13からノード15へのリンクを使用するようマルチキャストツリーを切り替えるケースを考える。パケット転送の停止時間を短くするために、仮にすばやく切り替えたとしても、RPFチェックで用いる経路表の更新が完了していないと、ノード15はノード13からのパケットを受信し転送することができないという問題があった。ここでの経路表は一般にユニキャストの経路表が用いられることが多く、ユニキャストのルーティングプロトコルを用いて構成される。また、マルチキャストツリーの構築プロセスとは別プロセスとして動作させる両者を短時間のうちに終わらせることは難しいという問題があった。また、この障害に対処するために、ノード15は予めノード12およびノード13の両方からパケットを受信するという手法も、RPFチェックを行っているが故に採用できなかった。
第2に、例えば、特許文献1を一例とする関連技術による方法で抑止できるループ経路は、新たなフレームを構成するPEルータを含む形で形成されている必要があるため、PE(Provider Edge)ルータを含まないようなループ経路が構成された場合、この方式では対応できないという問題があった。また、特許文献1を一例とする関連技術による方法方法では、途中のルータ(PEスイッチ)が、受信したパケットに自身のアドレスを付与することになるため、IPアドレスにフィールドを追加する必要があることから、パケット長が転送可能な最大パケット長を超える場合があり、この場合、フラグメント等の追加処理によって負担が増大するという問題があった。すなわち、受信したパケットに余計な情報を付与するため、ユニキャストの場合に処理負担が増大していた。
このように、関連技術による方法手法のみでは複数のインタフェースからマルチキャストパケットの受信を行うことができないという問題があった。すなわち、マルチキャストにおいて、複数の上流ノードから同一のマルチキャストパケットを送信されるような場合にループを検出できないため、ネットワークがループによって輻輳状態になることを防止できないという問題があった。
これらのことから、受信インタフェースを限定する方法に代わるループによるパケットの無限コピーを防止するための手法が求められている。
(発明の目的)
本発明の目的は、受信インタフェースを限定せずに、ループ検出を行う方法を提供することにある。すなわち、ユニキャストの場合には、受信したパケットに余計な情報を付与することがなく、また、マルチキャストの場合には、複数の上流ノードから同一のマルチキャストパケットを送信されるような場合でも、ループを検出するノード装置、検出方法及び検出プログラムを提供することにある。
本発明によるノード装置は、外部のネットワークと接続するネットワークインターフェイスと、外部のネットワークからパケットを受信するパケット受信部と、外部のネットワークに対してパケットを送信するパケット送信部とを持つノード装置であって、送信済みのパケットに関するパケットを識別するための識別情報を記録するための通過パケット記録データベースと、通過パケット記録データベースを参照し、未送信の受信パケットをパケット送信部へと送るパケット重複判定部を含む。
本発明によるパケット転送方法は、パケットの受信を行い、パケットのヘッダ情報に基づき、パケットの転送を行うパケット転送方法であって、送信済みのパケットに関するパケットを識別するための識別情報を記録するステップと、記録済みの識別情報を参照し、未送信の受信パケットを送信対象とするステップを含む。
本発明によるパケット転送プログラムは、ネットワークと接続するネットワークインターフェイスと、ネットワークからパケットを受信するパケット受信部と、ネットワークに対してパケットを送信するパケット送信部とを持つノード装置上で実行されるパケット転送プログラムであって、ノード装置に、送信済みのパケットに関するパケットを識別するための識別情報を記録するための通過パケット記録データベースを参照し、未送信の受信パケットをパケット送信部へと送るパケット重複判定処理を実行させる。
本発明は、上記手段によって、ループの発生を検出できる。そして、ループの発生により再到着したパケットを破棄する制御を行えば、ループによるネットワークが輻輳状態になることを防ぐことができる。
従って、より詳細には、マルチキャストの場合に、複数の上流ノードから同一のマルチキャストパケットを送信されるような場合でも、マルチキャストテーブルを再構築することなくループを検出できる。
また、ユニキャストの場合に、受信したパケットに余計な情報を付与することなくループを検出することができる。
本発明の第1の実施の形態におけるノード装置を示す構成図である。 第1の実施の形態におけるノード装置1のハードウェア構成例を示すブロック図である。 第1の実施の形態におけるパケット転送処理の動作を示すフローチャートである。 第1の実施の形態におけるRTPパケットにおけるRTPヘッダ1000の各フィールドの構成を示す図である。 第1の実施の形態におけるIPパケットにおけるIPヘッダ2000の各フィールドの構成を示す図である。 第1の実施の形態におけるRTPパケットが、IPパケットに変換される際の分割例を示した図である。 本発明の第2の実施の形態におけるノード装置を示す構成図である。 第2の実施の形態におけるループ防止部11の動作を示すフローチャートである。 第2の実施の形態におけるUDPパケットにおけるUDPヘッダの各フィールドの構成を示す図である。 本発明の第3の実施の形態におけるノード装置を示す構成図である。 第3の実施の形態における管理部21の動作を示すフローチャートである。 本発明の第4の実施の形態におけるノード装置を示す構成図である。 第4の実施の形態におけるノード装置1の動作を示すフローチャートである。 第4の実施の形態によるサンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。 第4の実施の形態によるセレクタ制御処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。 本発明の第5の実施の形態におけるノード装置1の動作を示すフローチャートである。 第5の実施の形態によるサンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。 本発明の第6の実施の形態におけるノード装置1の機能構成を示すブロック図である。 第6の実施の形態におけるノード装置1の動作を示すフローチャートである。 第6の実施の形態によるパケット重複判定部112のより詳細な動作を示すフローチャートである。 本発明の第7の実施の形態におけるノード装置1の動作を示すフローチャートである。 第7の実施の形態によるサンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。 本発明の第8の実施の形態におけるノード装置の構成を示すブロック図である。 第8の実施の形態における通過パケット記録データベース111が記憶する情報テーブル111aの構成を示す図である。 第8の実施の形態におけるノード装置1の動作を示すフローチャートである。 本発明の第9の実施の形態におけるノード装置を示す構成図である。 第9の実施の形態によるノード装置1の動作を示すフローチャートである。 関連技術のIPマルチキャストにおいてループ経路が発生していることを示すネットワーク図である。 関連技術のIPマルチキャストにおいてマルチキャストツリーの切り替えが発生していることを示すネットワーク図である。
(第1の実施の形態)
(構成の説明)
図1は、本発明の第1の実施の形態によるノード装置の機能構成を示すブロック図である。
図1において、本実施の形態のノード装置1は、ループパケットの再送信を防止するためのループ防止部11と、ループ防止部を管理するための管理部21と、ネットワークインターフェイス41〜4m経由でループ防止部11とパケットの送受信を行うパケット受信部31およびパケット送信部32と、外部のネットワークと接続するためのネットワークインターフェイス41−4mを備える。
なお、パケット送信部32は、宛先ノードアドレス及びネクストホップのアドレスを有するユニキャストテーブル321と、宛先ノードアドレス、次転送先ノードアドレス、送信元ノードアドレス及び上流ノードアドレスを有するマルチキャストテーブル322を備える。
ループ防止部11は、受信したパケットが重複しているかどうかを判定するパケット重複判定部112と、受信したパケットを記憶しておくための通過パケット記録データベース111と、受信したパケットの識別子を抽出するパケット識別子抽出部113とを有する。
また、管理部21は、通過パケット記録データベースから受信してから一定時間経過したパケットを削除するデータベースメンテナンス部211と、適切なタイムアウト値を計算しデータベースメンテナンス部211にその値を通知するタイムアウト値決定部213と、パケット重複判定部112、データベースメンテナンス部211、タイムアウト値決定部213の各部に現在時刻を通知するリアルタイムクロック212とを有する。
ここで、ノード装置1のハードウェア構成の説明をする。
図2は、本実施の形態によるノード装置1のハードウェア構成例を示すブロック図である。
図2を参照すると、本発明によるノード装置1は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができ、CPU(Central Processing Unit)1001、RAM(Random Access Memory)等のメインメモリであり、データの作業領域やデータの一時退避領域に用いられる主記憶部1002、ネットワーク8を介してデータの送受信を行う通信制御部1003、周辺機器と接続してデータの送受信を行うインタフェース部1004、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置である補助記憶部1005、本情報処理装置の上記各構成要素を相互に接続するシステムバス1006等を備えている。
本発明によるノード装置1は、その動作を、ノード装置1内部にそのような機能を実現するプログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品からなる回路部品を実装してハードウェア的に実現することは勿論として、上述した各構成要素の各機能を提供するプログラムを、コンピュータ処理装置上のCPU1001で実行することにより、ソフトウェア的に実現することができる。
すなわち、CPU1001は、補助記憶部1007に格納されているプログラムを、主記憶部1002にロードして実行し、ノード装置1の動作を制御することにより、上述した各機能をソフトウェア的に実現する。
本実施の形態のノード装置1は、マルチキャストテーブル322を最初に生成する際に、送信元ノードアドレスをユニキャストテーブル321を参照して宛先ノードアドレスとして検出し、ネクストホップのアドレスを取得し、上流アドレスとして設定する機能を有する。
(動作の説明)
図1のループ防止部11および管理部21の動作を、図3を用いて説明を行う。図3は、本実施の形態によるループ防止部11および管理部21の動作を示すフローチャートである。
パケット重複判定部112は、パケット受信部31からパケット識別子抽出部113を介してパケットPが送られてくるのを待つ(ステップS101)。
パケットが送られてきた場合、パケット識別子抽出部113がパケットの識別子を抽出し、パケット重複判定部112は、リアルタイムクロック(RTC)212からその際の現在時刻tpを取得する(ステップS102)。
次にパケット重複判定部112は、受信したパケットPのペイロードと同一のペイロードを持つパケットが通過パケット記録データベース111中に存在しないかどうかを調べる(ステップS103)。
通過パケット記録データベース111中に受信パケットPと同一のペイロードを持つパケットが存在しない場合、パケットPをパケット送信部32へと送る(ステップS104)。
さらにパケットPとステップS102で取得した受信時刻tpを一組として、通過パケット記録データベース111へと記録し(ステップS105)、ステップS110へと進む。
一方、ステップS103の処理において通過パケット記録データベース111中に受信パケットPと同一のペイロードを持つパケットPoが存在した場合、タイムアウト値決定部213は、パケットPoの受信時刻toを通過パケット記録データベース111から取得し、時間差tp−toを求め、その値をα倍した値をtdとする(ステップS106)。
ここでαの値は、1.0≦αとなる値を事前に設定しておくものとする。この値は、伝送遅延の変動分(ジッター)を考慮した係数であり、伝送遅延に対してジッターが最大10%程度見込まれるのであれば、α=1.1とする。
次に、タイムアウト値決定部213は、現在のタイムアウト値Tとtdの比較を行い(ステップS107)、tdの方が大きい場合に、tdを新たなタイムアウト値Tと定める(ステップS108)。
次に、データベースメンテナンス部211においてパケットPの廃棄を行う(ステップS109)。
ステップS110では、通過パケット記録データベース111上のパケットのうち、受信時刻と現在時刻との差がタイムアウト値以上のパケットをデータベースメンテナンス部211が削除する。
なお、ステップS105とステップS404の順序が入れ替わってもよい。また、通過パケット記録データベース111への現在時刻tpの記録を、パケットの送信時(ステップS105)ではなく、パケットの受信時(tp取得時(ステップS102))に行ってもよい。さらに、ステップS105において取得している受信時の現在時刻tpは、ステップS104においてステップS102と同様にして送信時の現在時刻tpを取得することによって、送信時の現在時刻tpであってもよい。
また、ステップS107において用いるタイムアウト値Tに上限値を設けてもよいし、または、ステップS107において現在のタイムアウト値Tとtdの比較を行い、tdの方が小さい場合に、tdを新たなタイムアウト値Tと定めてもよく、この場合に新たなタイムアウト値Tの下限値を設けてもよい。
パケットを一意に識別するための識別情報として、パケットのペイロードを用いていたが、パケットのペイロードのハッシュ値を用いてもよい。ペイロードのハッシュ値を用いることで、ハッシュ値を計算するステップが余分に必要になるが、パケット重複判定部における送信済みかどうかの判定処理の負荷が少なくなる。また一パケットあたりの識別情報のサイズが小さくなるので、通過パケット記録データベースのサイズを小さくすることができる。
また、パケットを一意に識別するための識別情報として、図4に示すRTPヘッダ1000中のシーケンス番号フィールド(1012)に格納されている値であるシーケンス番号1012を用いてもよい。
また、図5中のIPヘッダ2000における識別子2021、およびフラグメントオフセット2023の値の組を、前述の例でのRTPヘッダ1000におけるシーケンス番号1012の代わりに使ってもよい。
前述の方法では、RTPヘッダ1000を利用するために、RTPパケット単位での処理になっていた。RTPパケットのサイズが大きい場合、IPヘッダ2000を付与する段階で分割されて、送信される(図6)。分割されたデータを受信先で再度組み立てる時に用いるのが、図5のIPヘッダ2000中の識別子フィールド2021およびフラグメントオフセットフィールド2023である。図6に示すUDPヘッダ3000、IPヘッダ2000、データ4011を有するパケット4000中において、分割されたパケット群4100, 4200, 4300は同一の識別子を持つ。また、フラグメントオフセットフィールド2023には、先頭フラグメントである図6中のパケット4100では0の値が、その他のパケット4200、4300では、その相対位置が8オクテットを単位とする値が格納される。これらの値の組を用いることで、IPレベルでのパケットを一意に識別することが可能である。
(第1の実施の形態の効果)
本実施の形態によれば、スタティック(Static)に1つ、または複数の上流ノードが与えられるノードにおいて、ループの発生により再到着したパケットを破棄することにより、ネットワークがループによって輻輳状態になることを防ぐことができる。
従って、本実施の形態によれば、マルチキャストの場合に、複数の上流ノードから同一のマルチキャストパケットを送信されるような場合でも、マルチキャストテーブルを再構築することなくループを検出できるため、ネットワークがループによって輻輳状態になることを防ぎ、ユニキャストの場合に、受信したパケットに余計な情報を付与することがなくパケット長が伸びずに済むため、フラグメントが起こりにくく、また、ループ発生時のトラヒックを削減することができる。
また、本実施の形態によれば、パケットPoの受信時刻toを通過パケット記録データベース111から取得し、時間差tp−toを求め、その値をα倍した値をtdとし、現在のタイムアウト値Tとtdの比較を行い、例えば、tdの方が大きい場合に、tdを新たなタイムアウト値Tと定め、通過パケット記録データベース111上のパケットのうち、受信時刻と現在時刻との差がタイムアウト値以上のパケットを削除するため、受信したパケットを記録しておく通過パケット記録データベース111のメモリ量を抑制できる。
一度受信したパケットを通過パケット記録データベース111に記録しておき、通過パケット記録データベース111に記録されたものと同一のパケットを再度受信した際に、当該サイド受信したパケットを廃棄する場合、受信したパケットを記録しておくためのメモリ量が膨大になることから、一度記録したパケットを、ある程度の時間の経過後、メモリ上から削除する必要がある。このとき、一度記録したパケットをどのタイミングでメモリ上から削除すればよいか、適切な値を決めるための方法がない場合、もし、早く削除してしまうとループの発生により再受信したパケットが過去に一度受け取っていたかどうかを判断することができない。一方、もし削除するまでの時間が長い場合、大量のパケットをメモリ上に記録しておく必要があるため、大量のメモリが必要になる。また、パケットを受信するたびに、メモリ上の過去に受信したパケットと重複判定を行う必要があるため、処理負荷が大きくなる。しかし、本実施の形態によれば、本実施の形態によって副次的に生じうるこのような問題も上記説明したように解決することができる。
また、ステップS110における、通過パケット記録データベース上からパケットを削除する処理は以下のようにしてもよい。すなわち、予め通過パケット記録データベース111に記録可能なパケットの識別情報の最大数を定めておき、この最大数を超えたときに超過分の識別情報を受信時刻が古い順に削除する。通過パケット記録データベース111は実際にはメモリ上などに構築される。メモリは、記憶容量が有限であり、また通過パケット記録データベース111以外の用途にも使用されるため、この方法を用いることで他の処理に影響を与えないという効果がある。またこの方法と前述の方法を組み合わせて使用してもよい。
(第2の実施の形態)
(構成の説明)
次に、本発明の第2の実施の形態の構成について図7を参照して詳細に説明する。
図7を参照すると、通過パケット記録データベース111の代わりに、フロー単位通過パケット記録データベース121〜12nまでを有する点、およびフロー識別部114を有する点が、第1の実施の形態と異なる。
フロー単位通過パケット記録データベース121〜12nには、フロー毎に分けて送信済みパケットが記録される。
フロー識別部114は、パケット受信部31からパケット識別子抽出部113を介して受け取ったパケットのヘッダを参照し、パケットがどのフローに属しているかの判別を行う機能と、さらに、受信パケットをパケット重複判定部112へ送る際に、特定したフローに関する情報もあわせて通知する機能とを有する。
パケットがどのフローに属するかは、パケットの送信元アドレス、宛先アドレス、送信元ポート番号、宛先ポート番号のいずれかの値もしくはいずれかの値の組を用いることで識別可能である。例えば、ネットワーク層のプロトコルにIPを使用している場合には、図5のIPヘッダ2000中の送信元アドレスフィールド2041,宛先アドレスフィールド2051を参照することでそれぞれ送信元アドレス2041、宛先アドレス2051を知ることができる。またトランスポート層のプロトコルにUDPを使用している場合には、図9のUDPヘッダ3000中の送信元ポート番号フィールド3011,宛先ポート番号フィールド3012を参照することでそれぞれ送信元ポート番号3011、宛先ポート番号3012を知ることができる。
パケット重複判定部112では、フロー識別部114により通知されたパケットがどのフローに属しているかという情報に基づき、対応するフロー単位通過パケット記録データベース121〜12n中の送信済みパケットの識別情報を用いて、受信パケットが送信済みかどうかの判定を行う。
(動作の説明)
図7のループ防止部11の動作を、図8を用いて説明を行う。図8は、本実施の形態によるループ防止部11の動作を示すフローチャートである。
ループ防止部11が、送信済みパケットの識別情報をフロー毎に分けてフロー単位通過パケット記録データベース121〜12nに保存する(ステップS201)。
フロー識別部114が、パケット受信部31からパケット識別子抽出部113を介して受け取ったパケットのヘッダを参照し、パケットがどのフローに属しているかの判別を行い(ステップS202)、受信パケット及び特定したフローに関する情報をパケット重複判定部112へ送る(ステップS203)。
パケット重複判定部112が、フロー識別部114により通知されたパケットがどのフローに属しているかという情報に基づき、対応するフロー単位通過パケット記録データベース121〜12n中の送信済みパケットの識別情報を用いて、受信パケットが送信済みか否かの判定を行い(ステップS204)、まだ送信を行っていないパケットをパケット送信部32に送り(ステップS205)、送信済みのパケットを廃棄する(ステップS206)。
(第2の実施の形態の効果)
本実施の形態によれば、送信済みパケットの識別情報をフロー毎に分けてフロー単位通過パケット記録データベース121〜12nに保存しておき、パケット重複判定部112が、フロー識別部114により通知されたパケットがどのフローに属しているかという情報に基づき、対応するフロー単位通過パケット記録データベース121〜12n中の送信済みパケットの識別情報を用いて、受信パケットが送信済みかどうかの判定を行うため、受信パケットが送信済みか否かを判定する判定処理の負荷を軽減できる。
(第3の実施の形態)
(構成の説明)
次に、本発明の第3の実施の形態について図10を参照して詳細に説明する。
図10を参照すると、タイムアウト値決定部213の代わりに、時間差計算部214および時間差統計処理部215を有する点が、第1の実施の形態とは異なる。
時間差計算部214は、パケット重複判定部112から重複していると判定されたパケットの受信時刻tpと同一のペイロードを持つパケットPoの受信時刻toとの時間差tsを求め、求めた時間差tsを時間差統計処理部213へと通知する。
時間差統計処理部215は、時間差計算部214から通知される時間差tsを用いて統計処理を行い、タイムアウト値Tを決定する。ここでの統計処理の例としては、あらかじめ決められた回数だけ時間差tsが時間差計算部214から通知されるのを待ち、それらの値の平均mおよび分散σを求める。次に、求めた平均mおよび分散σを正規分布の確率分布関数F(x)に適用し、F(x) =0.99となるxを求め、その値をタイムアウト値Tとする。時間差tsが正規分布に従うとした場合、ループにより再到着するパケットのうち99%のパケットははじめに受信したときより起算して、この時間内に届くということを示している。ここで求められたタイムアウト値Tは、時間差統計処理部214からデータベースメンテナンス部211へ通知され、データベース中のパケットのライフタイム管理に利用される。
(動作の説明)
図10の管理部21の動作を、図11を用いて説明を行う。図11は、本実施の形態による管理部21の動作を示すフローチャートである。
時間差計算部214が、パケット重複判定部112から重複していると判定されたパケットの受信時刻tpと同一のペイロードを持つパケットPoの受信時刻toとの時間差tsを求め(ステップS301)、求めた時間差tsを時間差統計処理部213へと通知する(ステップS302)。
時間差統計処理部215が、時間差計算部214から通知される時間差tsの値の平均mおよび分散σを確率分布関数F(x)に適用して求めた、F(x) =0.99となるxによりタイムアウト値Tを算出する(ステップS303)。
データベースメンテナンス部211が、当該タイムアウト値Tを用い、データベース中のパケットのライフタイムを管理する(ステップS304)。
(第3の実施の形態の効果)
本実施の形態によれば、時間差統計処理部215が、時間差計算部214から通知される時間差tsを用いて統計処理を行い、タイムアウト値Tを決定し、データベースメンテナンス部211が、当該タイムアウト値Tを用い、データベース中のパケットのライフタイムを管理することにより、所要時間内に到着するパケットが所定の確率でループにより再到着したものであると判定できる。
(第4の実施の形態)
(構成の説明)
次に、本発明の第4の実施の形態について図12を参照して詳細に説明する。
図12を参照すると、第1の実施の形態に加えて、セレクタ61およびループ検出部51を有する点が異なる。
ループ検出部51は、サンプリングパケット重複判定部511およびサンプリングパケット記録データベース512から構成される。
セレクタ61は、ループ防止部11及びループ検出部51からの指示に従い、パケット受信部31から受け取ったパケットを、サンプリングパケット重複判定部511、もしくはパケット識別子抽出部113を介したパケット重複判定部112のいずれかに送る。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのサンプリング処理を行い、サンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し、サンプリング対象となったパケットが送信済みであるか否かの判定を行う。なお、本実施の形態におけるサンプリングの処理とは、全受信パケットのうちの一部の受信パケットを対象としてパケットが送信済みであるか否かの判定を行うものである。ここでのサンプリング処理は、次のような方法で行う。パケットのペイロードのハッシュ値を求め、求めたハッシュ値を予め定められた数Nで割り、その剰余が予め決められた数Sと一致したとき、そのパケットをサンプリング対象として抽出する。ループが発生していることを検出するためには、一度サンプリング対象となったパケットが、ループの発生により再度ノード装置1に到着したときに、再到着したパケットが必ずサンプリング対象となる必要がある。ループ経路により再到着したパケットは、ヘッダ中の一部のフィールドを除き、初めて到着したときと違いはないため、前述のサンプリング方法を用いることで目的を達成できる。
サンプリングパケット重複判定部511は、前述の方法でパケットが送信済みであると判定することによってループを検出したら、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット識別子抽出部113を介してパケット重複判定部112へと送るよう指示を出す。
サンプリングパケット重複判定部511は、前述の方法で送信済みでないと判定したパケットをサンプリングパケットとしてサンプリングパケット記録データベース512に記録する。
パケット重複判定部112は、サンプリングパケット重複判定部511によるループ検出後に、全ての受信パケットに対して、すでに送信済みであるか否かの判定を行い、まだ送信を行っていない場合に送信を行う。
(動作の説明)
図12のノード装置1の動作を、図13を用いて説明を行う。図13は、本実施の形態によるノード装置1の動作を示すフローチャートである。
セレクタ61が、パケット受信部31から受け取ったパケットを、サンプリングパケット重複判定部511に送る(ステップS401)。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのサンプリング処理を行い(ステップS402)、サンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し、サンプリング対象となったパケットが送信済みであるか否かの判定処理を行う(ステップS403)。
サンプリングパケット重複判定部511は、前述の方法でパケットが送信済みであると判定することによってループを検出したら、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット識別子抽出部113を介してパケット重複判定部112へと送るよう指示を出す(ステップS404)。
パケット重複判定部112が、サンプリングパケット重複判定部511によるループ検出後に、セレクタ61からの全ての受信パケットに対して、すでに送信済みであるか否かの判定を行い(ステップS405)、まだ送信を行っていないパケットをパケット送信部32に送り(ステップS406)、送信済みのパケットを廃棄する(ステップS407)。
ここで、ステップS402におけるサンプリング処理及びステップS403における判定処理を図14を用いてより詳細に説明する。図14は、サンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのペイロードのハッシュ値を求め(ステップS501)、ハッシュ値を予め決められた値Nで割った剰余が、予め決められた値Sであるパケットを抽出する(ステップS502)。また、サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのペイロード中の特定のフィールドの値が予め決められた値であるパケットを抽出してもよい(ステップS501、S502)。
その後、サンプリングパケット重複判定部511は、抽出したパケットを対象としてサンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し(ステップS503)、ペイロードやシーケンス番号も同一か否か比較することによって、セレクタ61から送られてきたパケットの重複判定をする(ステップS504)。
すなわち、サンプリングパケット重複判定部511は、例えば、パケットのハッシュが10で割った際の余りが1であったとすると、該当する余りが1であるパケットだけを、サンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し、ペイロードやシーケンス番号も同一か否かを比較することによって、重複判定をする。この場合、セレクタ61から送られてきたパケットの10個に1個の割合で重複判定が行われる。
ここで、ステップS404におけるセレクタ制御処理を図15を用いてより詳細に説明する。図15は、セレクタ制御処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。
ループが検出されない場合に、パケット受信部31から受け取ったパケットをサンプリングパケット重複判定部511に送るセレクタ61に対し、サンプリングパケット重複判定部511は、ループを検出した場合、セレクタ61が以降受信したパケットをパケット識別子抽出部113を介してパケット重複判定部112へと送るよう指示を出す(ステップS601)。
セレクタ61は、サンプリングパケット重複判定部511からの指示に基づいて、パケット受信部31から受け取ったパケットの送信先をパケット重複判定部112に切替える(ステップS602)。
パケット重複判定部112は、所定の時間、パケット重複を検出しない場合、パケット受信部31から受け取ったパケットをパケット重複判定部112に送るセレクタ61に対し、セレクタ61が以降受信したパケットをサンプリングパケット重複判定部511へと送るよう指示を出す(ステップS603)。なお、セレクタ61に対する当該指示は、パケット重複判定部112において、パケット監視数が所定の回数以上に達した場合や、10回連続で重複が発生しなかった場合等に行われてもよい。
セレクタ61は、パケット重複判定部112からの指示に基づいて、パケット受信部31から受け取ったパケットの送信先をサンプリングパケット重複判定部511に切替える(ステップS604)。
なお、本実施の形態は、例えば、前述の第2、第3の実施の形態等と組み合わせることも可能である。
(第4の実施の形態の効果)
ループの検出と、ループ経路により再到着するパケットの再送信の抑制とを別々に行うことにより、ループ未発生時の処理負荷の抑制を実現している。
すなわち、本実施の形態によれば、サンプリングパケット記録データベース512にサンプリングパケットを記録するので、サンプリングパケット記録データベース512に記録するデータ量が抑制され、比較処理の負担が軽減される。
また、本実施の形態によれば、サンプリングパケット重複判定部511が、セレクタ61から送られてきたパケットのハッシュ値のサンプリング処理を行い、サンプリングパケット記録データベース512に記録されているサンプリングパケットのハッシュ値を参照し、サンプリング対象となったハッシュ値に係るパケットが送信済みであるか否かの判定を行うため、処理負担が軽減される。
また、パケットのハッシュを10で割った際の余りが1であるパケットを抽出する場合においてループが発生した際、10分の1の確率で、サンプリング対象でなかったパケットをサンプリングパケット記録データベース512に記録されているパケットであると誤判定してしまうが、本実施の形態では、サンプリング処理したパケットに対してペイロードやシーケンス番号も一致するか否かを比較することにより、より確実にループの発生を検出できる。
(第5の実施の形態)
次に、本発明の第5の実施の形態について説明する。
本実施の形態は、第4の実施の形態と同様の構成を有するが、通常はペイロードのハッシュ値やペイロードの一部分を対象として比較処理を行い、当該比較処理でループが検出された場合にペイロード全体の比較処理を行ってループ検出を行う点で第4の実施の形態と異なるため、相違する点を中心に以下説明する。
(動作の説明)
図16は、本実施の形態によるノード装置1の動作を示すフローチャートである。
まず、通常はセレクタ61が、パケット受信部31から受け取った全てのパケットをパケット重複判定部112に送り(ステップS701)、パケット重複判定部112が、受信した全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を求め(ステップS702)、通過パケット記録データベース111のペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を参照して一致するか否かを判定する(ステップS703)。
パケット重複判定部112は、一致しない場合に、当該ペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を通過パケット記録データベース111に記録し、当該ペイロードに係るパケットをパケット送信部32に送る(ステップS704)。
また、パケット重複判定部112は、一致する場合に、ループを検出したと暫定的に判定し、セレクタ61に対し、セレクタ61が以降受信したパケットをサンプリングパケット重複判定部511へと送るよう指示を出す(ステップS705)。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのハッシュ値のサンプリング処理を行い(ステップS706)、サンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し、サンプリング対象となったパケットが送信済みであるか否かの判定処理を行う(ステップS707)。
サンプリングパケット重複判定部511は、所定の時間、パケット重複を検出しない場合、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を出す(ステップS708)。なお、セレクタ61に対する当該指示は、サンプリングパケット重複判定部511において、パケットの監視数が所定の回数以上に達した場合や、10回連続で重複が発生しなかった場合等に行われてもよい。またサンプリングパケット重複判定部511は、ステップS707において当該サンプリング対象となったパケットが送信済みであると判定した場合、当該パケットを廃棄する(ステップS709)。
ここで、ステップS705におけるサンプリング処理及びステップS707における判定処理を図17を用いてより詳細に説明する。図17は、サンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのペイロードのハッシュ値を求め(ステップS801)、例えば、当該ハッシュ値を10で割った余り(特定フィールドの値)がaであるか否かを判定し(ステップS802)、aであるパケットを抽出する(ステップS803)。
その後、サンプリングパケット重複判定部511は、抽出したパケットを対象としてサンプリングパケット記録データベース512に記録されているサンプリングパケットを参照し、特定フィールドの値がaでありペイロードが同一のパケットの有無を判定することによって、セレクタ61から送られてきたパケットの重複判定をする(ステップS804)。
サンプリングパケット重複判定部511は、ステップS802において特定フィールドの値がaでなかったパケットをパケット送信部32に送り(ステップS807)、また、ステップS804において重複しなかったパケットのaの値とペイロードを組にしてサンプリングパケット記録データベース512に記録し(ステップS805)、当該パケットをパケット送信部32に送る(ステップS806)。
サンプリングパケット重複判定部511は、ステップS804において重複したパケットを廃棄するモードに移行する(ステップS808)。
(第5の実施の形態の効果)
本実施の形態によれば、パケット重複判定部112が、受信した全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロード等のハッシュ値を求め、通過パケット記録データベースのハッシュ値を参照して一致するか否かを判定するため、処理負担が軽減される。
また、本実施の形態によれば、パケット重複判定部112は、求めたハッシュ値を通過パケット記録データベース111に記録するため、記録に要する容量を抑制できる。
また、本実施の形態によれば、通過パケット記録データベース111に記録するデータ量が抑制されるため、比較処理の負担が軽減される。
また、本実施の形態によれば、サンプリングパケット重複判定部511は、抽出したパケットのaの値とペイロードを組にしてサンプリングパケット記録データベース512に記録するため、記録に要する容量を抑制できる。
また、本実施の形態によれば、サンプリングパケット記録データベース512に記録するデータ量が抑制されるため、比較処理の負担が軽減される。
(第6の実施の形態)
次に、本発明の第6の実施の形態について説明する。
(構成の説明)
本実施の形態は、第4の実施の形態と同様の構成を有するが、パケット検出部においてサンプリング処理を行わず、受信したパケットすべてを比較対象としている点、およびパケット検出部における比較処理において、ペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を比較対象として用いている点で第4の実施の形態と異なるため、相違する点を中心に以下説明する。
図18は、本実施の形態によるノード装置の機能構成を示すブロック図である。
図18を参照すると、本実施の形態によるループ検出部51が、サンプリングパケット重複判定部511およびサンプリングパケット記録データベース512ではなく、パケット重複仮判定部513およびループ検出用パケット記録データベース514を備える点で第4の実施の形態と相違する。
パケット重複仮判定部513は、セレクタ61から送られてきた全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を求め、ループ検出用パケット記録データベース514のペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を参照して一致するか否かを判定する。
ここで、パケット重複仮判定部513は、一致しない場合に、当該ペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値をループ検出用パケット記録データベース514に記録し、当該ペイロードに係るパケットをパケット送信部32に送る。
また、パケット重複仮判定部513は、一致する場合に、ループを検出したと暫定的に判定し、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を出す。
本実施の形態によるパケット重複判定部112は、セレクタ61からパケット識別子抽出部113を介して送られてきたパケットを対象とし、通過パケット記録データベース111に記録されているパケットを参照し、ペイロードの比較を行い、当該送られてきたパケットが送信済みであるか否かの判定処理を行う。
本実施の形態によるセレクタ61は、通常、パケット受信部31から受け取った全てのパケットをパケット重複仮判定部511に送る。
(動作の説明)
図19は、本実施の形態によるノード装置1の動作を示すフローチャートである。
まず、通常はセレクタ61が、パケット受信部31から受け取った全てのパケットをパケット重複仮判定部513に送り(ステップS901)、パケット重複仮判定部513が、セレクタ61から送られてきた全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を求め(ステップS902)、ループ検出用パケット記録データベース514のペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値を参照して一致するか否かを判定する(ステップS903)。
ここで、パケット重複仮判定部513は、一致しない場合に、当該ペイロード中の特定のフィールドの値若しくはペイロードのハッシュ値をループ検出用パケット記録データベース514に記録し、当該ペイロードに係るパケットをパケット送信部32に送る(ステップS904)。
また、パケット重複仮判定部513は、一致する場合に、ループを検出したと暫定的に判定し、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を出す(ステップS905)。
本実施の形態によるパケット重複判定部112は、セレクタ61からパケット識別子抽出部113を介して送られてきたパケットを対象とし、通過パケット記録データベース111に記録されているパケットを参照し(ステップS906)、ペイロードの比較を行い、当該送られてきたパケットが送信済みであるか否かの判定処理を行う(ステップS907)。
本実施の形態によるパケット重複判定部112は、所定の時間、パケット重複を検出しない場合、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複仮判定部513へと送るよう指示を出す(ステップS908)。なお、セレクタ61に対する当該指示は、本実施の形態によるパケット重複判定部112において、パケットの監視数が所定の回数以上に達した場合や、10回連続で重複が発生しなかった場合等に行われてもよい。また、本実施の形態によるパケット重複判定部112は、ステップS907において当該送られてきたパケットが送信済みであると判定した場合、当該パケットを廃棄する(ステップS909)。
ここで、ステップS907における判定処理を図20を用いてより詳細に説明する。図20は、判定処理におけるパケット重複判定部112のより詳細な動作を示すフローチャートである。
まず、パケット重複判定部112は、抽出したパケットを対象として通過パケット記録データベース111に記録されているパケットを参照し、ペイロードが同一のパケットの有無を判定することによって、セレクタ61から送られてきたパケットの重複判定をする(ステップS1001)。
パケット重複判定部112は、ステップS1001において重複しなかったパケットのペイロードを通過パケット記録データベース111に記録し(ステップS1002)、当該パケットをパケット送信部32に送る(ステップS1003)。
また、パケット重複判定部112は、ステップS1001において重複であると判定されたパケットを廃棄する(ステップS1004)。
(第6の実施の形態の効果)
第4の実施の形態と同様に、ループの検出と、ループ経路により再到着するパケットの再送信の抑制とを別々に行うことにより、ループ未発生時の処理負荷の抑制を実現している。
すなわち、本実施形態によれば、パケット重複仮判定部513においてループが検出されるまでは、ペイロード中特定のフィールドの値もしくはペイロードのハッシュ値を用いて比較処理を行っている。このことにより常にペイロード全体を比較する第一の実施形態に対し、比較処理の負荷を軽減できる。
(第7の実施の形態)
次に、本発明の第7の実施の形態について説明する。
本実施の形態は、第4の実施の形態と同様の構成を有するが、パケットのハッシュ値を対象としてサンプリング処理及びループ検出を行う点で第4の実施の形態と異なるため、相違する点を中心に以下説明する。
(動作の説明)
図21は、本実施の形態によるノード装置1の動作を示すフローチャートである。
まず、通常はセレクタ61が、パケット受信部31から受け取った全てのパケットをパケット重複判定部112に送り(ステップS1101)、パケット重複判定部112が、受信した全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロード等のハッシュ値を求め(ステップS1102)、通過パケット記録データベースのハッシュ値を参照して一致するか否かを判定する(ステップS1103)。
パケット重複判定部112は、一致しない場合に、当該求めたハッシュ値を通過パケット記録データベース111に記録し、当該求めたハッシュ値に係るパケットをパケット送信部32に送る(ステップS1104)。
また、パケット重複判定部112は、一致する場合に、ループを検出したと暫定的に判定し、セレクタ61に対し、セレクタ61が以降受信したパケットをサンプリングパケット重複判定部511へと送るよう指示を出す(ステップS1105)。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのハッシュ値のサンプリング処理を行い(ステップS1106)、サンプリングパケット記録データベース512に記録されているサンプリングパケットのハッシュ値を参照し、サンプリング対象となったハッシュ値に係るパケットが送信済みであるか否かの判定処理を行う(ステップS1107)。
サンプリングパケット重複判定部511は、所定の時間、パケット重複を検出しない場合、セレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を出す(ステップS1108)。なお、セレクタ61に対する当該指示は、サンプリングパケット重複判定部511において、ハッシュ値の監視数が所定の回数以上に達した場合や、10回連続で重複が発生しなかった場合等に行われてもよい。
ここで、ステップS1106におけるサンプリング処理及びステップS1107における判定処理を図22を用いてより詳細に説明する。図22は、サンプリング処理及び判定処理におけるサンプリングパケット重複判定部511のより詳細な動作を示すフローチャートである。
サンプリングパケット重複判定部511は、セレクタ61から送られてきたパケットのペイロードのハッシュ値を求め(ステップS1201)、例えば、当該ハッシュ値を10で割った余りの値(特定フィールドの値)がbであるか否かを判定し(ステップS1202)、ハッシュ値のパケットを抽出する(ステップS1203)。
その後、サンプリングパケット重複判定部511は、抽出したパケットのハッシュ値を対象としてサンプリングパケット記録データベース512に記録されているサンプリングパケットのハッシュ値を参照し、当該ハッシュ値を10で割った余りの値(特定フィールドの値)がbであるハッシュ値の有無を判定することによって、セレクタ61から送られてきたパケットの重複判定をする(ステップS1204)。
サンプリングパケット重複判定部511は、ステップS1202において余りの値がbでなかったハッシュ値に係るパケットをパケット送信部32に送り(ステップS1207)、また、ステップS1203において重複しなかったハッシュ値をサンプリングパケット記録データベース512に記録し(ステップS1205)、当該パケットをパケット送信部32に送る(ステップS1205)。
サンプリングパケット重複判定部511は、ステップS1203において重複したハッシュ値に係るパケットを廃棄するモードに移行する(ステップS1208)。
(第7の実施の形態の効果)
本実施の形態によれば、パケット重複判定部112が、受信した全てのパケットを対象とし、パケットの一部分であるペイロード中の特定のフィールドの値若しくはペイロード等のハッシュ値を求め、通過パケット記録データベース111内のハッシュ値を参照して一致するか否かを判定するため、処理負担が軽減される。
また、本実施の形態によれば、パケット重複判定部112は、求めたハッシュ値を通過パケット記録データベース111に記録するため、記録に要する容量を抑制できる。
また、本実施の形態によれば、通過パケット記録データベース111に記録するデータ量が抑制されるため、比較処理の負担が軽減される。
また、本実施の形態によれば、サンプリングパケット重複判定部511は、抽出したパケットのハッシュ値をサンプリングパケット記録データベース512に記録するため、記録に要する容量を抑制できる。
また、本実施の形態によれば、サンプリングパケット記録データベース512に記録するデータ量が抑制されるため、比較処理の負担が軽減される。
(第8の実施の形態)
次に、本発明の第8の実施の形態について説明する。
前述の第1の実施の形態では、送信済みのパケットが再度到着した場合に送信を行わないため、個々のパケットがそれぞれ一回ずつしか送信されない。これに対し、本実施の形態は、個々のパケットを予め決められた回数だけ送信する点で第1の実施の形態と相違する。
(構成の説明)
図23は、本実施の形態におけるノード装置の構成を示すブロック図である。
図23を参照すると、本実施の形態による通過パケット記録データベース111は、通過パケット記録データベース111に記録されるパケットにカウンタ情報1112を付与するカウンタ1111を有する。
本実施の形態による通過パケット記録データベース111が記憶する情報テーブル111aの構成例を図24に示す。
カウンタ1111は、例えば、パケットがループ防止部11からパケット送信部32に送信される際に、パケットの送信回数の所定の閾値と当該パケットのカウンタ情報1112を比較し、指定回数以内(所定の閾値以下)場合にカウンタ情報1112の値を増やし、指定回数より大きい(所定の閾値より大きい)場合に当該パケットを廃棄する機能を有する。
(動作の説明)
図25は、本実施の形態によるノード装置1の動作を示すフローチャートである。
通過パケット記録データベース111において、パケットの送信回数をパケットを一意に識別するための識別情報との組で記録する(ステップS1301)。
パケット重複判定部は、受信パケットが送信済みであると判定した時に、通過パケット記録データベース111中の送信回数(カウンタ情報1112)を参照し、送信回数が予め定められた最大送信回数(所定の閾値)を超えていないとき(ステップS1302)、カウンタ1111によって通過パケット記録データベース111中の送信回数の値を一つ増加させ、受信パケットをパケット送信部32へと送る(ステップS1303)。
パケット重複判定部は、一方、送信回数が予め定められた最大送信回数(所定の閾値)を超えているとき、受信パケットを廃棄する(ステップS1304)。
(第8の実施の形態の効果)
本実施の形態によれば、個々のパケットを例えば二回ずつ送信するといったことが実現できる。前述の第1の実施の形態において述べた識別情報としてパケットのペイロードのハッシュ値を用いる方法では、低い確率ではあるものの、異なるパケットであるがペイロードのハッシュ値が一致するケースが起こりえるため、本来送信すべきパケットを送信済みであると誤検出してしまう可能性がある。しかし、本実施の形態による方式を用いることで、下流へと送信するトラフィックの量は多くなるが、誤検出の影響を抑えることができる。
(第9の実施の形態)
(構成の説明)
次に、本発明の第9の実施の形態について図26を参照して詳細に説明する。
図26を参照すると、セレクタ61および流量監視部71を新たに有する点で第1の実施の形態と異なる。
セレクタ61は、流量監視部71からの指示に従い、パケット受信部31から受け取ったパケットを、流量測定部711もしくはパケット重複判定部112のいずれかに送る機能を有する。
流量監視部71は、流量測定部711、流量記録部712および流量判定部713を備える。
流量測定部711は、セレクタ61から送られてきた受信パケットのサイズの累計を記録しておき、単位時間ごとに累計値を流量測定部711および流量記録部712へと送る機能を有する。前記累計値は、単位時間当たりに受信したパケットサイズの合計であるので、以降トラフィック量と呼ぶことにする。
流量記録部712は、流量測定部711から送られてきたトラフィック量を送られてきた時刻とともに記録しておく機能を有する。
流量判定部713では、流量測定部711から送られてきた現在のトラフィック量、および流量記録部712に記録されている過去のトラフィック量に基づいてループ発生の有無を判断する機能と、ループが発生している場合にはセレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を行う機能とを有する。
前記ループ発生の判定では、具体的には以下のような判断基準を用いる。
条件A:一単位時間前のトラフィック量に比べ、現在のトラフィック量の増分が閾値Aより大きい。
ループが発生するとトラフィック量は加速度的に増加するため、上記の条件Aを用いることでループ発生の検出が可能である。しかし、マルチキャストパケットの転送が新規に開始される時も、この条件が当てはまるため、この条件ではループが発生したと誤検出してしまう可能性がある。この誤検出を防ぐためには、以下の条件を合わせて用いてもよい。
条件B:現在のトラフィック量が閾値Bの値を超えている。
また事前に、正常時、ノード装置1をどの程度のトラフィック量が通過するかがわかっている場合には、条件Bを用いてもよい。
また流量記録部712に記録されている過去のトラフィック量について統計処理を行い、得られた値を用いた条件を使用してもよい。たとえば、過去のトラフィック量の分布が正規分布に従うと仮定したとき、過去のトラフィック量の平均値をm、分散をσとしたとき、
条件A:現在のトラフィック量の値がm+3σよりも大きい。
この条件を満たす場合、3σの法則より現在のトラフィック量が過去の統計値と比べて大きすぎるということを示している。
(動作の説明)
図27は、本実施の形態によるノード装置1の動作を示すフローチャートである。
セレクタ61が、流量監視部71からの指示に従い、パケット受信部31から受け取ったパケットを流量測定部711に送る(ステップS1401)。
流量測定部711が、セレクタ61から送られてきた受信パケットのサイズの累計を記録しておき、単位時間ごとに累計値(トラフィック量)を流量測定部711および流量記録部712へと送る(ステップS1402)。
流量記録部712が、流量測定部711から送られてきたトラフィック量を、送られてきた時刻とともに記録する(ステップS1403)。
流量判定部713が、流量測定部711から送られてきた現在のトラフィック量、および流量記録部712に記録されている過去のトラフィック量に基づいてループ発生の有無を判断し(ステップS1404)、ループが発生している場合にはセレクタ61に対し、セレクタ61が以降受信したパケットをパケット重複判定部112へと送るよう指示を行う(ステップS1405)。
セレクタ61は、流量判定部713からの指示に基づいて、パケット受信部31から受け取ったパケットの送信先をパケット重複判定部112に切り替える(ステップS1406)。
パケット重複判定部112が、サンプリングパケット重複判定部511によるループ検出後に、セレクタ61からの全ての受信パケットに対して、すでに送信済みであるか否かの判定を行い(ステップS1407)、まだ送信を行っていないパケットをパケット送信部32に送り、所定の時間、パケット重複を検出しない場合、パケット受信部31から受け取ったパケットをパケット重複判定部112に送るセレクタ61に対し、セレクタ61が以降受信したパケットをサンプリングパケット重複判定部511へと送るよう指示を出し(ステップS1408)、一方、送信済みのパケットを廃棄する(ステップS1409)。
なお、ステップS1404においてループが発生していない場合、流量複判定部513は、現在のトラフィック量を流量記録部712に記録し、当該パケットをパケット送信部32に送る(ステップS1410)。
なお、本実施の形態は、例えば、前述の上記第2、第3、第8の実施の形態等と組み合わせることも可能である。
(第9の実施の形態の効果)
本実施の形態では、第4の実施の形態と同様にループの検出と、ループ経路により再到着するパケットの再送信の抑制とを別々に行うことにより、ループ未発生時の処理負荷の抑制を実現している。
(第10の実施の形態)
本発明の第10の実施の形態は、通常は第1の実施の形態における処理を行い、ループを検出した場合に第2の実施の形態における処理を行うものである。すなわち、本実施の形態は、第2の実施の形態のように、常時、フロー毎にパケットの重複判定処理を行うことは処理負担が大きいため、通常は第1の実施の形態のようにフローとは無関係にパケットの重複判定処理を行い、当該重複判定処理においてループを暫定的に検出した場合に、第2の実施の形態のようにフロー単位でパケットの重複判定処理を行うものである。
以上好ましい実施の形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施の形態(及び実施例)に限定されるものでない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2007年5月29日に出願された日本出願特願2007−141624を基礎とする優先権を主張し、その開示の全てをここに取り込む。
主に、映像配信等に用いられるIPマルチキャストの転送を行うためのルータ装置、スイッチ装置への実装が考えられる。その他パケット転送を行う種々の装置への適用が可能である。

Claims (51)

  1. ネットワークと接続するネットワークインターフェイスと、
    ネットワークからパケットを受信するパケット受信部と、
    ネットワークに対してパケットを送信するパケット送信部とを持つノード装置であって、
    送信済みのパケットに関するパケットを識別するための識別情報を記録するための通過パケット記録データベースと、
    通過パケット記録データベースを参照し、未送信の前記受信パケットをパケット送信部へと送るパケット重複判定部を有することを特徴とするノード装置。
  2. 前記パケット重複判定部は、
    前記通過パケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定し、送信済みでない場合、受信パケットをパケット送信部へと送ることを特徴とする請求項1に記載のノード装置。
  3. 前記パケット重複判定部は、
    受信したパケットの受信時刻を、当該パケットの送信前又は送信後に記録することを特徴とする請求項1又は請求項2に記載のノード装置。
  4. 前記パケット重複判定部は、
    受信したパケットの送信時刻を、当該パケットの送信の際に記録することを特徴とする請求項1又は請求項2に記載のノード装置。
  5. 前記通過パケット記録データベースにおいて、
    送信済みパケットの識別情報をフロー毎に区別して記録を行い、
    前記パケット重複判定部において、
    受信したパケットがどのフローに属するかを識別し、前記通過パケット記録データベース中の同一のフローに属する識別情報に基づき当該受信したパケットが送信済みかの判定を行うことを特徴とする請求項1から請求項4のいずれか1項に記載のノード装置。
  6. 前記パケットを識別するための識別情報として、パケットのペイロードを用いることを特徴とする請求項1から請求項5のいずれか1項に記載のノード装置。
  7. 前記パケットを識別するための識別情報として、パケットのペイロードのハッシュ値を用いることを特徴とする請求項1から請求項5のいずれか1項に記載のノード装置。
  8. 前記パケットを識別するための識別情報として、RTPヘッダ中のシーケンス番号を用いることを特徴とする請求項1から請求項5のいずれか1項に記載のノード装置。
  9. 前記パケットを識別するための識別情報として、IPヘッダ中の識別子およびフラグメントオフセットの組を用いることを特徴とする請求項1から請求項5のいずれか1項に記載のノード装置。
  10. 前記通過パケット記録データベースは、
    送信済みのパケットに関するパケットを識別するための識別情報として、当該パケットのペイロードのハッシュ値やペイロードの一部分を記録し、
    前記パケット重複判定部は、
    前記識別情報として受信したパケットのペイロードのハッシュ値やペイロードの一部分を用い、前記通過パケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定し、送信済みの場合に、前記識別情報として前記受信したパケットのペイロード全体を用い、受信したパケットが送信済みかどうかを判定することを特徴とする請求項1から請求項5のいずれか1項に記載のノード装置。
  11. 前記通過パケット記録データベース上に記録されている送信済みのパケットに関するパケットを識別するための識別情報を、そのパケットの受信時刻又は送信時刻からあらかじめ定められたタイムアウト時間経過後に、削除するデータベースメンテナンス部を有することを特徴とする請求項1から請求項10のいずれか1項に記載のノード装置。
  12. 前記パケット重複判定部において、受信したパケットがすでに送信済みであったと判断されたときに、受信パケットの受信時刻又は送信時刻と、通過パケット記録データベース中の該当するパケットの受信時刻又は送信時刻との時間差を用いて前記タイムアウト時間を決めるタイムアウト値決定部を有することを特徴とする請求項11に記載のノード装置。
  13. 前記タイムアウト値決定部において、前記時間差の統計情報を用いてタイムアウト時間を決めることを特徴とする請求項12に記載のノード装置。
  14. 前記タイムアウト値決定部は、
    タイムアウト時間に上限値を設け、現在のタイムアウト時間と前記時間差の比較を行い、前記時間差の方が小さい場合に前記時間差を用いて新たなタイムアウト時間を決定することを特徴とする請求項11から請求項13のいずれか1項に記載のノード装置。
  15. 前記タイムアウト値決定部は、
    タイムアウト時間に下限値を設け、現在のタイムアウト時間と前記時間差の比較を行い、前記時間差の方が大きい場合に前記時間差を用いて新たなタイムアウト時間を決定することを特徴とする請求項11から請求項13のいずれか1項に記載のノード装置。
  16. 前記通過パケット記録データベース上に記録されている送信済みのパケットに関する識別情報の数が予め定められている最大値を超えたときに、通過パケット記録データベース上から、最大数を超過した数の識別情報を受信時刻又は送信時刻が古い順に削除するデータベースメンテナンス部を有することを特徴とする請求項11に記載のノード装置。
  17. 前記通過パケット記録データベースにおいて、パケットの送信回数をパケットを識別するための識別情報との組で記録し、前記パケット重複判定部において、受信パケットが送信済みであると判定されたときに、前記通過パケット記録データベース中の送信回数を参照し、送信回数が予め定められた最大送信回数超えていないとき、前記通過パケット記録データベース中の送信回数の値を一つ増加させ、パケット送信部へと送ることを特徴とする請求項1から請求項16のいずれか1項に記載のノード装置。
  18. あらかじめ定められたパケットを識別する識別情報に基づき、受信したパケットの識別情報が前記識別情報に一致するときに、サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定するサンプリングパケット重複判定部と、
    前記サンプリングパケット重複判定部により送信済みかどうかの判定が行われ、送信済みではないと判定された受信パケットを記録するサンプリングパケット記録データベースと、
    パケット受信部から送られてきたパケットを前記サンプリングパケット重複判定部に送り、前記サンプリングパケット重複判定部において、受信したパケットが送信済みであると判定されたとき、以降受信パケットをパケット重複判定部へと送るセレクタとを有することを特徴とする請求項1から請求項17のいずれか1項に記載のノード装置。
  19. 前記パケット重複判定部は、
    所定の時間、受信したパケットが未送信であると判定した場合、又は、判定したパケット数が所定の回数に達した場合、前記セレクタに対し、前記セレクタが以降受信したパケットをサンプリングパケット重複判定部へと送るよう指示を出すことを特徴とする請求項18に記載のノード装置。
  20. 前記通過パケット記録データベースは、
    送信済みのパケットに関するパケットを識別するための識別情報として、当該パケットの一部又は全部のハッシュ値を記録し、
    前記パケット重複判定部は、
    前記識別情報として受信したパケットの一部又は全部のハッシュ値を用い、前記通過パケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定し、
    送信済みの場合に、以降受信パケットをサンプリングパケット重複判定部へと送るセレクタと、
    あらかじめ定められたパケットを識別する識別情報に基づき、受信したパケットの識別情報が前記識別情報に一致するときに、サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定するサンプリングパケット重複判定部と、
    前記サンプリングパケット重複判定部により送信済みかどうかの判定が行われ、送信済みではないと判定された受信パケットの一部又は全部のハッシュ値を記録するサンプリングパケット記録データベースとを有することを特徴とする請求項1から請求項18のいずれか1項に記載のノード装置。
  21. 前記サンプリングパケット重複判定部は、
    所定の時間、受信したパケットが未送信あると判定した場合、又は、判定したパケット数が所定の回数に達した場合、前記セレクタに対し、前記セレクタが以降受信したパケットを前記パケット重複判定部へと送るよう指示を出すことを特徴とする請求項20に記載のノード装置。
  22. 受信したパケットのパケットサイズを測定することにより、単位時間当たりのトラフィック量を測定する流量測定部と、
    前記流量測定部により測定された単位時間当たりのトラフィック量を用いてループ発生の判定を行う流量判定部と、
    パケット受信部から送られてきたパケットを前記流量測定部に送り、前記流量判定部において、ループが発生していると判定されたとき、以降受信パケットをパケット重複判定部へと送るセレクタとを有することを特徴とする請求項1から請求項18のいずれか1項に記載のノード装置。
  23. 前記流量判定部において、単位時間当たりのトラフィック量が予め定められた閾値を超えている場合にループが発生していると判定することを特徴とする請求項22に記載のノード装置。
  24. 前記ノード装置において、
    過去のトラフィック量の記録を行う流量記録部を有し、
    前記流量判定部において、
    流量記録部を参照しトラフィック量の増加が閾値を超えているかの判定を行い、
    前記セレクタにおいて、
    前記トラフィック量の増加が閾値を超えたと判定されたとき、以降受信パケットをパケット重複判定部へと送ることを特徴とする請求項22又は請求項23に記載のノード装置。
  25. 前記流量判定部において、前記流量記録部中に記録されている過去のトラフィック量の統計処理を行い、求められた統計値を用いてループ発生の判定を行うことを特徴とする請求項24に記載のノード装置。
  26. パケットの受信を行い、パケットのヘッダ情報に基づき、パケットの転送を行うパケット転送方法であって、
    送信済みのパケットに関するパケットを識別するための識別情報を記録するステップと、
    前記記録済みの識別情報を参照し、未送信の前記受信パケットを送信対象とするステップを持つことを特徴とするパケット転送方法。
  27. 未送信の前記受信パケットを送信対象とする前記ステップにおいて、
    前記通過パケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定し、送信済みでない場合、受信パケットを送信対象とすることを特徴とする請求項26に記載のパケット転送方法。
  28. 未送信の前記受信パケットを送信対象とする前記ステップにおいて、
    受信したパケットの受信時刻を、当該パケットの送信前又は送信後に記録することを特徴とする請求項26又は請求項27に記載のパケット転送方法。
  29. 未送信の前記受信パケットを送信対象とする前記ステップにおいて、
    受信したパケットの送信時刻を、当該パケットの送信の際に記録することを特徴とする請求項26又は請求項27に記載のパケット転送方法。
  30. 前記送信済みパケットの識別情報を記録するステップにおいて、
    送信済みパケットの識別情報をフロー毎に区別して記録を行い、
    前記受信パケットが送信済みであるかを判定するステップにおいて、
    受信したパケットがどのフローに属するかを識別し、同一のフローに属する識別情報に基づき当該受信したパケットが送信済みかの判定を行うことを特徴とする請求項26から請求項29のいずれか1項に記載のパケット転送方法。
  31. 前記パケットを識別するための識別情報として、パケットのペイロードを用いることを特徴とする請求項26から請求項30のいずれか1項に記載のパケット転送方法。
  32. 前記パケットを識別するための識別情報として、パケットのペイロードのハッシュ値を用いることを特徴とする請求項26から請求項30のいずれか1項に記載のパケット転送方法。
  33. 前記パケットを識別するための識別情報として、RTPヘッダ中のシーケンス番号を用いることを特徴とする請求項26から請求項30のいずれか1項に記載のパケット転送方法。
  34. 前記パケットを識別するための識別情報として、IPヘッダ中の識別子およびフラグメントオフセットの組を用いることを請求項26から請求項30のいずれか1項に記載のパケット転送方法。
  35. 送信済みのパケットに関するパケットを識別するための識別情報として、当該パケットのペイロードのハッシュ値やペイロードの一部分を記録するステップを有し、
    送信済みでない場合に受信パケットを送信対象とする前記ステップにおいて、
    前記識別情報として受信したパケットのペイロードのハッシュ値やペイロードの一部分を用い、前記記録済みの識別情報を参照し、受信したパケットが送信済みかどうかを判定し、送信済みの場合に、前記識別情報として前記受信したパケットのペイロード全体を用い、受信したパケットが送信済みかどうかを判定することを特徴とする請求項26から請求項34のいずれか1項に記載のパケット転送方法。
  36. 前記記録されている送信済みのパケットに関するパケットを識別するための識別情報を、そのパケットの受信時刻又は送信時刻からあらかじめ定められたタイムアウト時間経過後に、削除するステップを有することを特徴とする請求項26から請求項30のいずれか1項に記載のパケット転送方法。
  37. 前記受信パケットが送信済みであるかを判定するステップにおいて、
    受信したパケットがすでに送信済みであったと判断されたときに、受信パケットの受信時刻又は送信時刻と、該当するパケットの受信時刻又は送信時刻との時間差を用いて前記タイムアウト時間を決めるステップを有することを特徴とする請求項36に記載のパケット転送方法。
  38. 前記タイムアウト時間を決定するステップにおいて、
    前記時間差の統計情報を用いてタイムアウト時間を決めることを特徴とする請求項37に記載のパケット転送方法。
  39. タイムアウト時間に上限値を設け、現在のタイムアウト時間と前記時間差の比較を行い、前記時間差の方が小さい場合に前記時間差を用いて新たなタイムアウト時間を決定することを特徴とする請求項36から請求項38のいずれか1項に記載のパケット転送方法。
  40. タイムアウト時間に下限値を設け、現在のタイムアウト時間と前記時間差の比較を行い、前記時間差の方が大きい場合に前記時間差を用いて新たなタイムアウト時間を決定することを特徴とする請求項36から請求項38のいずれか1項に記載のパケット転送方法。
  41. 前記記録されている送信済みのパケットに関する識別情報の数が予め定められている最大値を超えたときに、最大数を超過した数の識別情報を受信時刻又は送信時刻が古い順に削除するステップを有することを特徴とする請求項38に記載のパケット転送方法。
  42. 前記送信済みパケットの識別情報を記録するステップにおいて、
    パケットの送信回数をパケットを識別するための識別情報との組で記録し、
    前記受信パケットが送信済みであるかを判定するステップにおいて、
    受信パケットが送信済みであると判定されたときに、前記記録済みの識別情報との組で記録されている送信回数を参照し、送信回数が予め定められた最大送信回数超えていないとき、前記送信回数の値を一つ増加させ、パケットを送信対象とすることを特徴とする請求項26から請求項41のいずれか1項に記載のパケット転送方法。
  43. あらかじめ定められたパケットを識別する識別情報に基づき、受信したパケットの識別情報が前記識別情報に一致するときに、サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを調べることによりループ発生の検出を行うステップと、
    前記ステップにより送信済みかどうかの判定が行われ、送信済みではないと判定された受信パケットをサンプリングパケット記録データベースに記録するステップと、
    パケットの受信時に、前記ステップでループ発生の検出がなされていないときには前記サンプリングパケット記録データベースを用いたループ判定を行い、また、前記ステップでループ発生が検出されているときには、前記全受信パケットが送信済みであるかの判定を行うステップを有することを特徴とする請求項26から請求項42のいずれか1項に記載のパケット転送方法。
  44. 前記全受信パケットが送信済みであるかの判定を行うステップにおいて、
    所定の時間、受信したパケットが未送信であると判定した場合、又は、判定したパケット数が所定の回数に達した場合、サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを調べることによりループ発生の検出を行うステップに戻ることを特徴とする請求項43に記載のパケット転送方法。
  45. 送信済みのパケットに関するパケットを識別するための識別情報として、当該パケットの一部又は全部のハッシュ値を記録するステップを有し、
    送信済みでない場合に受信パケットを送信対象とする前記ステップにおいて、
    前記識別情報として受信したパケットの一部又は全部のハッシュ値を用い、前記記録済みの識別情報を参照し、受信したパケットが送信済みかどうかを判定し、
    送信済みの場合に、あらかじめ定められたパケットを識別する識別情報に基づき、受信したパケットの識別情報が前記識別情報に一致するときに、前記サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定するステップと、
    前記サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定する前記ステップにより送信済みかどうかの判定が行われ、送信済みではないと判定された受信パケットの一部又は全部のハッシュ値をサンプリングパケット記録データベース記録するステップとを有することを特徴とする請求項26から請求項42のいずれか1項に記載のパケット転送方法。
  46. 前記サンプリングパケット記録データベースを参照し、受信したパケットが送信済みかどうかを判定する前記ステップにおいて、
    所定の時間、受信したパケットが未送信あると判定した場合、又は、判定したパケット数が所定の回数に達した場合、送信済みでない場合に受信パケットを送信対象とする前記ステップに戻ることを特徴とする請求項45に記載のパケット転送方法。
  47. 受信したパケットのパケットサイズを測定することにより、単位時間当たりのトラフィック量を測定するステップと、
    前記ステップにより測定された単位時間当たりのトラフィック量を用いてループ発生の判定を行うステップと、
    パケットの受信時に、前記ステップでループ発生の検出がなされていないときには前記トラフィック量を用いたループ判定を行い、また、前記ステップでループ発生が検出されているときには、前記全受信パケットが送信済みであるかの判定を行うステップを有することを特徴とする請求項26から請求項46のいずれか1項に記載のパケット転送方法。
  48. 前記トラフィック量を用いてループ判定を行うステップにおいて、
    単位時間当たりのトラフィック量が予め定められた閾値を超えている場合にループが発生していると判定することを特徴とする請求項47に記載のパケット転送方法。
  49. 前記パケット転送方式において、
    過去のトラフィック量の記録を行うステップを有し、
    前記トラフィック量を用いてループ判定を行うステップにおいて、
    記録されている過去トラフィック量を参照しトラフィック量の増加が閾値を超えているかを調べることでループ発生の判定を行うことを特徴とする請求項47又は請求項48に記載のパケット転送方法。
  50. 前記トラフィック量を用いてループ判定を行うステップにおいて、
    前記記録されている過去のトラフィック量の統計処理を行い、求められた統計値を用いてループ発生の判定を行うことを特徴とする請求項49に記載のパケット転送方法。
  51. ネットワークと接続するネットワークインターフェイスと、
    ネットワークからパケットを受信するパケット受信部と、
    ネットワークに対してパケットを送信するパケット送信部とを持つノード装置上で実行されるパケット転送プログラムであって、
    前記ノード装置に、
    送信済みのパケットに関するパケットを識別するための識別情報を記録するための通過パケット記録データベースを参照し、未送信の前記受信パケットをパケット送信部へと送るパケット重複判定処理を実行させることを特徴とするパケット転送プログラム。
JP2009516291A 2007-05-29 2008-05-23 ノード装置、パケット転送方法及びパケット転送プログラム Expired - Fee Related JP5077782B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009516291A JP5077782B2 (ja) 2007-05-29 2008-05-23 ノード装置、パケット転送方法及びパケット転送プログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007141624 2007-05-29
JP2007141624 2007-05-29
PCT/JP2008/059521 WO2008146730A1 (ja) 2007-05-29 2008-05-23 ノード装置、パケット転送方法及びパケット転送プログラム
JP2009516291A JP5077782B2 (ja) 2007-05-29 2008-05-23 ノード装置、パケット転送方法及びパケット転送プログラム

Publications (2)

Publication Number Publication Date
JPWO2008146730A1 true JPWO2008146730A1 (ja) 2010-08-19
JP5077782B2 JP5077782B2 (ja) 2012-11-21

Family

ID=40074982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009516291A Expired - Fee Related JP5077782B2 (ja) 2007-05-29 2008-05-23 ノード装置、パケット転送方法及びパケット転送プログラム

Country Status (2)

Country Link
JP (1) JP5077782B2 (ja)
WO (1) WO2008146730A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6382322B2 (ja) * 2014-01-17 2018-08-29 クゥアルコム・インコーポレイテッドQualcomm Incorporated 通信ネットワーク内でのメッセージの転送
JP2019165301A (ja) * 2018-03-19 2019-09-26 富士通株式会社 パケット検出プログラム、パケット検出装置及びパケット検出方法
CN111835467B (zh) * 2020-07-28 2022-03-29 中国平安财产保险股份有限公司 消息发送方法、装置、计算机设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0732401B2 (ja) * 1985-04-24 1995-04-10 株式会社日立製作所 伝送制御方式
JPH01255340A (ja) * 1988-04-05 1989-10-12 Hitachi Ltd マルチネツトワークシステム
JP2001197114A (ja) * 2000-01-14 2001-07-19 Fujitsu Ltd フレーム中継装置
JP4598462B2 (ja) * 2004-09-16 2010-12-15 富士通株式会社 L2−vpnサービスを提供するプロバイダ網、及びエッジルータ

Also Published As

Publication number Publication date
WO2008146730A1 (ja) 2008-12-04
JP5077782B2 (ja) 2012-11-21

Similar Documents

Publication Publication Date Title
US12126507B2 (en) In-line performance monitoring
Rubenstein et al. Detecting shared congestion of flows via end-to-end measurement
Rubenstein et al. Detecting shared congestion of flows via end-to-end measurement
US11134011B2 (en) Communication system, control device, communication method, and program
US8717871B2 (en) Packet retransmission control system, method and program
CN105743760B (zh) 一种流量切换方法和装置
JP2002135319A (ja) ネットワークのサービス品質測定システム及びその方法
KR20070003983A (ko) 종단간 신뢰도가 있는 그룹 통신 방법 및 장치
CN103718507A (zh) 从主多播树向备多播树进行快速切换的方法和设备
US8189588B2 (en) Flow resiliency
US10735326B2 (en) Information processing apparatus, method and non-transitory computer-readable storage medium
CN109981323B (zh) 一种检测数据链路层组播路径状态的方法和网络设备
KR20150028260A (ko) 계층적, 중복적, 멀티캐스트 라우팅에서의 장애 커버리지 증가
CN104869010B (zh) 保护切换
US9313090B2 (en) Tunnel fault detection method and traffic engineering node
US20170222953A1 (en) User packet forwarding control method and processing node
JP5077782B2 (ja) ノード装置、パケット転送方法及びパケット転送プログラム
TWI658715B (zh) 通信裝置、可用頻寬計算系統、可用頻寬計算方法及程式
CN106656807A (zh) 一种报文转发方法及sdn交换机
CN111600798B (zh) 一种发送和获取断言报文的方法和设备
JP5459226B2 (ja) 経路制御装置、経路制御方法、経路制御プログラム、ネットワークシステム
JP4137728B2 (ja) ブリッジ装置、及び該装置のブリッジ処理方法
US20100238819A1 (en) Relaying method, transmitter, receiver and relay
CN113037622A (zh) 一种防止bfd震荡的系统及方法
CN106878051A (zh) 一种多机备份实现方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120803

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120816

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5077782

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees