JP3643094B2 - Packet transfer processing method, packet transfer processing device, and network - Google Patents

Packet transfer processing method, packet transfer processing device, and network Download PDF

Info

Publication number
JP3643094B2
JP3643094B2 JP2002208586A JP2002208586A JP3643094B2 JP 3643094 B2 JP3643094 B2 JP 3643094B2 JP 2002208586 A JP2002208586 A JP 2002208586A JP 2002208586 A JP2002208586 A JP 2002208586A JP 3643094 B2 JP3643094 B2 JP 3643094B2
Authority
JP
Japan
Prior art keywords
packet
entry
ttl
transfer processing
suspicious
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.)
Expired - Fee Related
Application number
JP2002208586A
Other languages
Japanese (ja)
Other versions
JP2004056293A (en
Inventor
公平 塩本
勝 片山
直明 山中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2002208586A priority Critical patent/JP3643094B2/en
Publication of JP2004056293A publication Critical patent/JP2004056293A/en
Application granted granted Critical
Publication of JP3643094B2 publication Critical patent/JP3643094B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はIPパケット(以下では単にパケットという)転送処理方法に関するものであり、不正な転送表などで経路のループが生じた場合に、不要なトラヒックの増加を抑制する技術に関する。
【0002】
【従来の技術】
従来のパケット転送処理を図9〜図11を参照して説明する。図9は従来のパケット転送処理を説明するための図である。図10はTTL処理を説明するための図である。図11は従来のパケット転送処理手順を示すフローチャートである。
【0003】
図9に示すように、パケット転送処理においてはルータはIPヘッダを参照し、(1)宛先(DA)に基づく転送表検索を行うことによる次ホップの決定、(2)TTL(Time to live)チェックおよび減算処理、(3)Header checksumチェックおよび再計算などの処理を行う。なお、図中の略号はそれぞれSA(Source address)、DA(Destination address)、SP(Source port number)、DP(Destination port number)である。
【0004】
この中で(2)の処理は図10のようにパケットが1ホップ進むたびにTTL値を1ずつだけ減算し、TTL値が0のパケットを受信したらそれが自分宛でない場合は、そのパケットをこれ以上転送しない処理である。これによって各ルータの転送表が一貫性がなくて経路のループが生じた場合にも永続的にパケットが転送され続けることを回避することができる。
【0005】
図11は(1)、(2)、(3)の処理のフローチャートであり、1パケットを受信する度にこのフローチャートを実行し、受信したパケットを次ホップへ転送するか、廃棄かの判断をする。すなわち、パケットを受信し(ステップ1)、TTLが0でないか否か判定し(ステップ2)、0ならば廃棄し(ステップ10)、0でなければTTL値を減算し(ステップ3)、そのTTL値をIPヘッダに搭載する(ステップ4)。この処理と並行して転送表検索を行い転送先を決定する(ステップ6)。さらに並行してHeader checksumが正しいか否か判定し(ステップ7)、正しくなければ廃棄し(ステップ10)、正しければHeader checksumを再計算し(ステップ8)、IPヘッダに再計算されたHeader checksumを搭載する(ステップ9)。このようにして、TTLが0ではなく、転送先が決定し、Header checksumが正しく、さらに、Header checksumが再計算されたパケットは次ホップに転送される(ステップ5)。
【0006】
【発明が解決しようとする課題】
このようにパケット転送処理においてはTTL値を元にパケットをさらに後段へ転送を続けるかどうかの判断を行う。図12は不正な転送表によるループの問題を説明するための図であるが、図12に示すように、ネットワーク内の各ルータが一貫性のない不正な転送表を持っている場合に、パケットの転送経路のループが生じてしまう。ノードAにパケットが到着した時点でTTL値がtである場合には、転送経路のループの1周がnホップとすると(図12の例ではn=3である)、パケットはfloor((t−1)/n−1)回ループし、ノードA−B間のリンクにはfloor((t−1)/n−1)倍のトラヒックがかかることになる。ここでfloor(x)はxを超えない最大の整数を表す。すなわち、TTL値が大きくループのホップ数が小さい場合には、非常に多くの不要なトラヒックがかかることを意味する。
【0007】
ハードウェアで転送処理を行う最近の高速ルータでは増加した不要なトラヒックが急激に起こり、すぐに伝送路帯域を圧迫して影響が甚大となる。さらに伝送路帯域が圧迫されすぎるとルーティングプロトコルやシグナリングプロトコルのパケットが転送されなくなり、ネットワーク全体の機能停止にもつながる。
【0008】
本発明は、このような背景に行われたものであって、ネットワーク内のノードが一貫性のない不正な転送表を用いていることなどによって転送経路のループが発生している場合にパケットが転送経路を周回する回数を抑制することができ、不要なトラヒックの増加を抑制することができるパケット転送処理方法およびパケット転送処理装置およびネットワークおよびプロトコルおよび記録媒体を提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明は、TTL値0で廃棄されたパケットに関する転送表のエントリをループの原因となる被疑エントリとしてマークを付けることを最も主要な特徴とする。その上で、当該被疑エントリに到着したパケットを廃棄することによりループを解消する。あるいは、被疑エントリに到着したパケットに印を付け、ループして戻ってきたら廃棄することによりループを解消することを特徴とする。あるいは、被疑エントリに到着したパケットを廃棄しないまでも転送優先度を下げることにより帯域を狭めて他のトラヒックを圧迫しないようにしてもよい。
【0010】
これにより、ネットワーク内のノードが一貫性のない不正な転送表を用いていることなどによって転送経路のループが発生している場合にもパケットが転送経路を周回する回数を抑制することができ、不要なトラヒックの増加を抑制することができる。ハードウェアで高速にパケット転送を行うネットワークにおいては、転送経路のループは瞬く間に伝送路帯域を埋め尽くしてしまい、ネットワーク機能の停止などの致命的なダメージを与えるが、本発明によりこれを回避することができる。
【0011】
すなわち、本発明の第一の観点は、到着したパケットの宛先アドレスにしたがって転送表を検索し、検索されたこの転送表の対応するエントリに基づき次ホップ先を決定するパケット転送処理方法である。
【0012】
ここで、本発明の特徴とするところは、TTL値が0のために廃棄されたパケットに関する前記転送表の対応するエントリを被疑エントリとしてマークするところにある。
【0013】
つまり、初めてネットワークに到着したパケットのTTL値が当初から0であることは考え難く、パケットがTTL値0で廃棄されるということは、それはつまり、ループが生じており、パケットがループ上を周回するうちにTTL値が0になった可能性が高いことを意味する。したがって、そのようなパケットに関する転送表の対応するエントリをループの原因となる被疑エントリとしてマークすることにより、ループ解消のための対策を施す対象とすることができる。
【0014】
具体的には、当該被疑エントリに対応するパケットが到着したときには、そのパケットをTTL値によらず廃棄することが望ましい。
【0015】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上経過したときには、当該被疑エントリの疑いを解除することが望ましい。
【0016】
つまり、ループが解消された後にも被疑エントリが残存していると、不必要なパケット廃棄が継続される可能性があるため、被疑エントリとしてマークを付けてから一定時間以上経過したときには、当該被疑エントリの疑いをいったん解除することがよい。もちろん、被疑エントリとしてマークを付けてから一定時間経過する以前に再度、TTL値0で廃棄されるパケットが到着すれば再び被疑エントリに付けたマークは継続される。当該一定時間は、ネットワーク環境に応じて適宜設定することがよい。
【0017】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットのIPヘッダにTTL Markerビットを立ててから次ホップへ転送し、TTL Markerビットが立ったパケットが到着し、当該パケットが前記被疑エントリに対応するパケットであるときには当該パケットをTTL値によらず廃棄することもできる。
【0018】
つまり、被疑エントリに初めて到着したパケットについては、そのTTL値は0より大きい。しかし、今後、当該パケットはループ上を周回する可能性が高いので、TTL Markerビットを立て、一回の周回後に速やかに廃棄することにより、ループによる不要なトラヒックを最小に抑制することができる。
【0019】
また、パケットが最初に到着するノードの転送表では、例えば宛先アドレスzとなっていても、次ホップのノードの転送表では、zがさらに細かく分岐され、zとz.1とに分かれているような場合には、宛先zのパケットはループを周回するが、宛先z.1のパケットはループとは無関係である場合もある。このような場合に、最初のノードで一律に到着したパケットを廃棄してしまうと、ループとは無関係な宛先z.1のパケットまでも併せて廃棄されてしまうので、いったんTTL Markerを付与して次ホップに転送することによりこのような不都合を回避することができる。
【0020】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上TTLMarkerビットが立ったパケットが該当エントリに転送されてこないときには、当該被疑エントリの疑いを解除することが望ましい。
【0021】
つまり、ループが解消された後にも被疑エントリが残存していると、到着したパケットにTTL Markerビットを立てるなどの不要な処理が行われるため、一定時間以上TTL Markerビットが立ったパケットが該当エントリに転送されてこないときには、速やかに被疑エントリの疑いを解除することがよい。当該一定時間はネットワーク環境に応じて適宜設定することがよい。
【0022】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該TTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載してから次ホップへ転送することもできる。
【0023】
つまり、ループを周回する可能性のあるパケットについて所定回数の周回を許容する。これにより、速やかにループが解消した場合には、当該パケットが廃棄されることなく、宛先に到着することができる。また、前述したように、パケットが最初に到着するノードの転送表では、例えば宛先アドレスzとなっていても、次ホップのノードの転送表では、zがさらに細かく分岐され、zとz.1とに分かれているような場合には、宛先zのパケットはループを周回するが、宛先z.1のパケットはループとは無関係である場合もある。このような場合に、最初のノードで一律に到着したパケットを廃棄してしまうと、ループとは無関係な宛先z.1のパケットまでも併せて廃棄されてしまうので、所定回数の周回を許容することにより、このような不都合を回避することができる。この許容回数は、ネットワーク環境に応じて適宜設定することがよい。
【0024】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、当該被疑エントリの疑いを解除することが望ましい。
【0025】
つまり、ループが解消された後にも被疑エントリが残存していると、到着したパケットのTTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載するなどの不要な処理が行われるため、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、速やかに被疑エントリの疑いを解除することがよい。当該一定時間はネットワーク環境に応じて適宜設定されることがよい。
【0026】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を下げてから次ホップへ転送することもできる。
【0027】
すなわち、転送優先度を下げるということは、他のトラヒックよりも帯域を狭めるということである。これにより、他のトラヒックを圧迫しない程度の狭い帯域でパケットがループを周回することを許容する。その間に、ループが回復すれば当該パケットは正常な宛先に転送されるので、即座に廃棄するよりも柔軟なパケット転送処理を行うことができる。
【0028】
さらに、パケットの転送優先度に関する複数のクラスが設けられ、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を1ランク下のクラスに下げてから次ホップへ転送することもできる。
【0029】
これによれば、前者よりもさらに細かく転送優先度を分割し、周回回数に応じて徐々に転送優先度を下げることができる。この場合には、最下位のクラスまで下がったら次回には廃棄することにしてもよい。前者の場合は、低い優先度のままループを周回し続ける可能性があるが、後者の場合は、周回回数に応じて徐々に帯域が狭くなり最終的には廃棄されるようにすることもできる。
【0030】
この場合には、前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除することが望ましい。
【0031】
つまり、ループが解消された後にも被疑エントリが残存していると、到着したパケットの転送優先度を下げるなどの不要な処理が行われるため、一定時間以上転送優先度が閾値よりも低いパケットが該当エントリに転送されてこないときには、速やかに被疑エントリの疑いを解除することがよい。当該一定時間および当該閾値はネットワーク環境に応じて適宜設定することがよい。
【0032】
本発明の第二の観点は、宛先アドレスに対応する次ホップ先が記録された転送表と、到着したパケットの宛先アドレスにしたがって前記転送表を検索し、検索された前記転送表の対応するエントリに基づき次ホップ先を決定する手段とを備えたパケット転送処理装置である。
【0033】
ここで、本発明の特徴とするところは、TTL値が0のために廃棄されたパケットに関する前記転送表の対応するエントリを被疑エントリとしてマークする手段を備えたところにある。
【0034】
さらに、前記被疑エントリに対応するパケットが到着したときには、そのパケットをTTL値によらずに廃棄する手段を備えることが望ましい。
【0035】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上経過したときには、当該被疑エントリのマークを解除する手段を備えることが望ましい。
【0036】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットのIPヘッダにTTL Markerビットを立ててから次ホップへ転送する手段と、TTL Markerビットが立ったパケットが到着し、当該パケットが前記被疑エントリに対応するパケットであるときには当該パケットをTTL値によらず廃棄する手段とを備えることもできる。
【0037】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上TTLMarkerビットが立ったパケットが該当エントリに転送されてこないときには、当該被疑エントリのマークを解除する手段を備えることが望ましい。
【0038】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該TTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載してから次ホップへ転送する手段を備えることもできる。
【0039】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、当該被疑エントリのマークを解除する手段を備えることが望ましい。
【0040】
あるいは、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を下げてから次ホップへ転送する手段を備えることもできる。
【0041】
あるいは、パケットの転送優先度に関する複数のクラスが設けられ、前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を1ランク下のクラスに下げてから次ホップへ転送する手段を備えることもできる。
【0042】
このとき、前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除する手段を備えることが望ましい。
【0043】
本発明の第三の観点は、本発明のパケット転送処理装置を備えたことを特徴とするネットワークである。
【0044】
本発明の第四の観点は、情報処理装置にインストールすることにより、その情報処理装置に、本発明のパケット転送処理方法を実行させる、あるいは、情報処理装置にインストールすることにより、その情報処理装置に、本発明のパケット転送処理装置に相応する機能を実現させることを特徴とするプログラムである。
【0045】
本発明の第五の観点は、本発明のプログラムが記録された前記情報処理装置読取可能な記録媒体である。本発明のプログラムは本発明の記録媒体に記録されることにより、前記情報処理装置は、この記録媒体を用いて本発明のプログラムをインストールすることができる。あるいは、本発明のプログラムを保持するサーバからネットワークを介して直接前記情報処理装置に本発明のプログラムをインストールすることもできる。
【0046】
これにより、コンピュータ装置等の情報処理装置を用いて、ネットワーク内のノードが一貫性のない不正な転送表を用いていることなどによって転送経路のループが発生している場合にパケットが転送経路を周回する回数を抑制することができ、不要なトラヒックの増加を抑制することができるパケット転送処理方法およびパケット転送処理装置およびネットワークを実現することができる。
【0047】
【発明の実施の形態】
(第一実施例)
本発明第一実施例を図1および図2を参照して説明する。図1は第一実施例を説明するための概念図である。図2は本実施例のパケット転送処理装置のブロック構成図である。第一実施例は、図2に示すように、到着したパケットの宛先アドレスにしたがって転送表1を検索し、検索されたこの転送表1の対応するエントリに基づき次ホップ先を決定する次ホップ決定部2を備えたパケット転送処理装置である。このパケット転送処理装置は、各ノードにそれぞれ備えてもよいし、あるいは、ネットワークに一つまたは複数配置して各ノードのパケット転送処理を制御してもよい。
【0048】
ここで、本実施例の特徴とするところは、TTL監視部3は、TTL値が0のために廃棄されたパケットに関する転送表1の対応するエントリを被疑エントリとしてマークするところにある。なお、パケットのヘッダ情報はヘッダ読取部5により読み取られ、次ホップ決定部2、TTL監視部3、Header checksum監視部4にそれぞれ分配される。また、転送処理部6は、次ホップ決定部2、TTL監視部3、Header checksum監視部4の指示にしたがってパケットを転送または廃棄する。
【0049】
第一実施例のTTL監視部3では、前記被疑エントリに対応するパケットが到着したときには、そのパケットをTTL値によらずに廃棄する。また、前記被疑エントリとしてマークを付けてから、一定時間以上経過したときには、当該被疑エントリの疑いを解除する。
【0050】
すなわち、図1に示すノードAにパケットが到着したとき、そのTTL値が0のため廃棄されたら、その該当する転送表エントリを被疑エントリとしてセットする。以降は、被疑エントリに該当するパケットを受信した時点でノードAはTTL値によらずに全てのパケットを廃棄する。これによりパケットが転送経路のループに入ることを防ぐことができる。
【0051】
(第二実施例)
第二実施例を図1、図2、図4、図5、図6を参照して説明する。図4は第二実施例のパケット転送処理手順を示すフローチャートである。図5はIPヘッダのTOSオクテットを示す図である。図6は第二実施例のTOSを用いたTTLMarkerのコーディングを示す図である。
【0052】
第二実施例のパケット転送処理装置は、前記被疑エントリに対応するパケットが到着し、図2に示すTTL監視部3の監視結果によりそのTTL値が0より大きいときには、次ホップ決定部2は、当該パケットのIPヘッダにTTL Markerビットを立ててから次ホップへ転送する。さらに、次ホップ決定部2は、TTL Markerビットが立ったパケットが到着し、当該パケットが前記被疑エントリに対応するパケットであるときには当該パケットをTTL値によらず廃棄する。
【0053】
また、TTL監視部3は、前記被疑エントリとしてマークを付けてから、一定時間以上TTL Markerビットが立ったパケットが該当エントリに転送されてこないときには、当該被疑エントリの疑いを解除する。
【0054】
図1に示すように、パケットが最初に到着するノードAの転送表では、宛先アドレスzとなっていても、次ホップのノードBの転送表では、zがさらに細かく分岐され、zとz.1とに分かれている。ここで、宛先zのパケットはループを周回するが、宛先z.1のパケットはループとは無関係である。このような場合に、第一実施例のように、最初のノードAで一律に到着したパケットを廃棄してしまうと、ループとは無関係な宛先z.1のパケットまでも廃棄されてしまうので、第二実施例では、いったんTTL Markerを付与して次ホップにパケットを転送する。
【0055】
すなわち、被疑エントリにマークが付与された後に、ノードAに被疑エントリに該当するパケットが到着したとき、TTL値が0より大きければ、ヘッダのTTL Markerビットを立てて、ノードBへ向けて転送する。ここではノードAに到着した時点ではTTL Markerビットは立っていないとする。
【0056】
次に、ノードBではそのパケットを受信すると、転送表にしたがって次ホップを決める。転送表の検索では最長一致検索が行われる。つまり、転送表にzという宛先とz.1という宛先とが存在するときに、IPヘッダの宛先アドレスと一致する部分が最長のエントリが検索結果となる。この例ではパケットの宛先がz.1であれば、次ホップがDとなり、それ以外の場合には次ホップがCとなる。次ホップがDの場合は無事に宛先まで転送されるが、Cの場合はループを周回する。つまり、ノードCはノードAとBと一貫性が取れていない不正な転送表を持っているので、ノードCへ転送されると、そのパケットはノードAへ転送される。
【0057】
ここでノードAでは被疑エントリにマークを付けており、ノードCから転送されてきたパケットにはTTL Markerビットがセットされるので廃棄する。これにより、再度転送経路のループに入ることを防ぐことができる。
【0058】
この例では、TTL Markerビットを立てることとしたが、このビットは例えば、TOS(Type of service)オクテットを用いて実現することができる。図5はIPヘッダを示し、図6はTOSオクテットを示す。Experimental UseのうちのいくつかをTTL Markerとして用いることができる。
【0059】
第二実施例のパケット転送処理手順を図4に示す。パケットを受信し(ステップ1)、TTL監視部3はTTLが0でないか否か判定し(ステップ2)、0ならば転送表1の疑似エントリにマークを付ける(ステップ5)、0でなければTTL値を減算し(ステップ3)、そのTTL値をIPヘッダに搭載する(ステップ4)。この処理と並行して次ホップ決定部2は、転送表1の検索を行い転送先を決定する(ステップ6)。当該転送表1のエントリが被疑エントリであるか否か判定し被疑エントリであれば(ステップ7)、TTL Markerがあるか否か判定し(ステップ8)、TTL Markerがなければ付与し(ステップ9)、また、TTL Makrkerがあれば廃棄する(ステップ14)。さらに並行してHeader checksum 監視部4は、Header checksumが正しいか否か判定し(ステップ11)、正しくなければ廃棄し(ステップ14)、正しければHeader checksumを再計算し(ステップ12)、IPヘッダに再計算されたHeader checksumを搭載する(ステップ13)。このようにして、TTLが0ではなく、転送先が決定し、TTL Markerがなく、あるいは、TTL Markerが初めて付与され、Header checksumが正しく、さらに、Header checksumが再計算されたパケットは次ホップに転送される(ステップ10)。
【0060】
(第三実施例)
第三実施例を図2および図3を参照して説明する。図3は第三実施例を説明するための概念図である。第三実施例のパケット転送処理装置は、前記被疑エントリに対応するパケットが到着し、図2に示すTTL監視部3は、そのTTL値が0より大きいときには、当該TTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載してから次ホップへ転送する。
【0061】
さらに、TTL監視部3は、前記被疑エントリとしてマークを付けてから、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、当該被疑エントリのマークを解除する。
【0062】
すなわち、第二実施例ではTTL Markerビットを新たに定義したが、TTL値だけでも類似の効果を上げることができる。図3に概念を示す。被疑エントリに該当するパケットが後段でどれだけホップを転送されるかの上限を決めておき、それをHとする。被疑エントリに該当するパケットが到着したとき、TTLを1だけ減算したものと、Hとを比べ、小さい方を新たなTTL値として転送する。これにより、ループを周回する回数を抑制することが可能である。
【0063】
(第四実施例)
第四実施例を図2および図7を参照して説明する。図7は第四実施例のパケット転送処理手順を示すフローチャートである。第四実施例のパケット転送処理装置は、被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、図2に示す次ホップ決定部2は、当該パケットの転送優先度を下げてから次ホップへ転送する。
【0064】
すなわち、転送優先度を下げるということは、他のトラヒックよりも帯域を狭くするということである。これにより、他のトラヒックを圧迫しない程度の狭い帯域でパケットがループを周回することを許容する。その間に、ループが回復すれば当該パケットは正常な宛先に転送されるので、即座に廃棄するよりも柔軟なパケット転送処理を行うことができる。
【0065】
また、次ホップ決定部2は、前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除する。ここでは閾値は被疑エントリ以外のエントリに到着する通常パケットの転送優先度とする。
【0066】
第四実施例のパケット転送処理手順を図7に示す。パケットを受信し(ステップ1)、TTL監視部3は、TTLが0でないか否か判定し(ステップ2)、0ならば転送表1の疑似エントリにマークを付ける(ステップ5)、0でなければTTL値を減算し(ステップ3)、そのTTL値をIPヘッダに搭載する(ステップ4)。この処理と並行して次ホップ決定部2は、転送表1の検索を行い転送先を決定する(ステップ6)。当該転送表1のエントリが被疑エントリであるか否か判定し被疑エントリであれば(ステップ7)、転送優先度は通常のパケットと比較して低いか否か判定し(ステップ8)、転送優先度が通常のパケットと比較して低くなければ優先度を下げ(ステップ9)、また、転送優先度が通常のパケットと比較して低ければそのまま転送する(ステップ10)。さらに並行してHeader checksum 監視部4は、Header checksumが正しいか否か判定し(ステップ11)、正しくなければ廃棄し(ステップ14)、正しければHeader checksumを再計算し(ステップ12)、IPヘッダに再計算されたHeader checksumを搭載する(ステップ13)。このようにして、TTLが0ではなく、転送先が決定し、Header checksumが正しく、さらに、Header checksumが再計算されたパケットは次ホップに転送される(ステップ10)。
【0067】
(第五実施例)
第五実施例を図2および図8を参照して説明する。図8は第五実施例のパケット転送処理手順を示すフローチャートである。第五実施例のパケット転送処理装置は、パケットの転送優先度に関する複数のクラスが設けられ、被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、図2に示す次ホップ決定部2は、当該パケットの転送優先度を1ランク下のクラスに下げてから次ホップへ転送する。
【0068】
すなわち、第五実施例は、第四実施例よりもさらに細かく転送優先度を分割し、周回回数に応じて徐々に転送優先度を下げる。第五実施例では、最下位のクラスまで下がったら次回には廃棄する。第四実施例の場合は、低い優先度のままループを周回し続ける可能性があるが、第五実施例の場合は、周回回数に応じて徐々に帯域が狭くなり最終的には廃棄されるようにする。
【0069】
また、次ホップ決定部2は、前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除する。ここでは閾値は被疑エントリ以外のエントリに到着する通常パケットの転送優先度とする。
【0070】
第五実施例のパケット転送処理手順を図8に示す。パケットを受信し(ステップ1)、TTL監視部3は、TTLが0でないか否か判定し(ステップ2)、0ならば転送表1の疑似エントリにマークを付ける(ステップ5)、0でなければTTL値を減算し(ステップ3)、そのTTL値をIPヘッダに搭載する(ステップ4)。この処理と並行して次ホップ決定部2は、転送表1の検索を行い転送先を決定する(ステップ6)。当該転送表1のエントリが被疑エントリであるか否か判定し被疑エントリであれば(ステップ7)、転送優先度のクラスが最下位であるか否か判定し(ステップ8)、最下位でなければ優先度を1ランク下げ(ステップ9)、また、最下位であれば廃棄する(ステップ14)。さらに並行してHeader checksum 監視部4は、Header checksumが正しいか否か判定し(ステップ11)、正しくなければ廃棄し(ステップ14)、正しければHeader checksumを再計算し(ステップ12)、IPヘッダに再計算されたHeader checksumを搭載する(ステップ13)。このようにして、TTLが0ではなく、転送先が決定し、優先度が最下位でなく、Header checksumが正しく、さらに、Header checksumが再計算されたパケットは次ホップに転送される(ステップ10)。
【0071】
(第六実施例)
本実施例のパケット転送処理装置は、情報処理装置であるコンピュータ装置を用いて実現することができる。すなわち、コンピュータ装置にインストールすることにより、そのコンピュータ装置に、本実施例のパケット転送処理方法を実行させる、あるいは、コンピュータ装置にインストールすることにより、そのコンピュータ装置に、本実施例のパケット転送処理装置に相応する機能を実現させるプログラムをコンピュータ装置にインストールすることにより、そのコンピュータ装置を本実施例のパケット転送処理装置に相応する装置とすることができる。
【0072】
また、本実施例のプログラムは本実施例の記録媒体に記録されることにより、コンピュータ装置は、この記録媒体を用いて本実施例のプログラムをインストールすることができる。あるいは、本実施例のプログラムを保持するサーバからネットワークを介して直接コンピュータ装置に本実施例のプログラムをインストールすることもできる。
【0073】
これにより、コンピュータ装置を用いて、ネットワーク内のノードが一貫性のない不正な転送表を用いていることなどによって転送経路のループが発生している場合にパケットが転送経路周回する回数を抑制することができ、不要なトラヒックの増加を抑制することができるパケット転送処理方法およびパケット転送処理装置およびネットワークを実現することができる。
【0074】
【発明の効果】
以上説明したように、本発明によれば、ネットワーク内のノードが一貫性のない不正な転送表を用いていることなどによって転送経路のループが発生している場合にパケットが転送経路を周回する回数を抑制することができ、不要なトラヒックの増加を抑制することができる。
【図面の簡単な説明】
【図1】第一および第二実施例を説明するための概念図。
【図2】本実施例のパケット転送処理装置のブロック構成図。
【図3】第三実施例を説明するための概念図。
【図4】第二実施例のパケット転送処理手順を示すフローチャート。
【図5】IPヘッダのTOSオクテットを示す図。
【図6】第二実施例のTOSを用いたTTL Markerのコーディングを示す図。
【図7】第四実施例のパケット転送処理手順を示すフローチャート。
【図8】第五実施例のパケット転送処理手順を示すフローチャート。
【図9】従来のパケット転送処理を説明するための図。
【図10】TTL処理を説明するための図。
【図11】従来のパケット転送処理手順を示すフローチャート。
【図12】不正な転送表によるループの問題を説明するための図。
【符号の説明】
A〜C ノード
1 転送表
2 次ホップ決定部
3 TTL監視部
4 Header checksum監視部
5 ヘッダ読取部
6 転送処理部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an IP packet (hereinafter simply referred to as a packet) transfer processing method, and relates to a technique for suppressing an increase in unnecessary traffic when a path loop occurs due to an illegal transfer table or the like.
[0002]
[Prior art]
Conventional packet transfer processing will be described with reference to FIGS. FIG. 9 is a diagram for explaining a conventional packet transfer process. FIG. 10 is a diagram for explaining the TTL process. FIG. 11 is a flowchart showing a conventional packet transfer processing procedure.
[0003]
As shown in FIG. 9, in the packet transfer process, the router refers to the IP header and (1) determines the next hop by performing a transfer table search based on the destination (DA). (2) TTL (Time to live) Check and subtract processing, (3) Header checksum check and recalculation are performed. The abbreviations in the figure are SA (Source address), DA (Destination address), SP (Source port number), and DP (Destination port number), respectively.
[0004]
In the process (2), the TTL value is decremented by 1 each time a packet advances by one hop as shown in FIG. 10. When a packet with a TTL value of 0 is received, This is a process that does not transfer any more. As a result, it is possible to prevent the packets from being continuously transferred even when the forwarding table of each router is inconsistent and a path loop occurs.
[0005]
FIG. 11 is a flowchart of the processing of (1), (2), and (3). This flowchart is executed every time one packet is received, and it is determined whether the received packet is transferred to the next hop or discarded. To do. That is, a packet is received (step 1), it is determined whether TTL is not 0 (step 2), if it is 0, it is discarded (step 10), if not 0, the TTL value is subtracted (step 3), The TTL value is mounted on the IP header (step 4). In parallel with this processing, a transfer table search is performed to determine a transfer destination (step 6). In parallel, it is determined whether or not the header checksum is correct (step 7). If it is not correct, the header checksum is discarded (step 10). If it is correct, the header checksum is recalculated (step 8). (Step 9). In this way, the packet whose TTL is not 0, the forwarding destination is determined, the Header checksum is correct, and the Header checksum is recalculated is forwarded to the next hop (step 5).
[0006]
[Problems to be solved by the invention]
In this way, in the packet transfer process, it is determined whether or not to continue transferring the packet to the subsequent stage based on the TTL value. FIG. 12 is a diagram for explaining a loop problem caused by an illegal forwarding table. As shown in FIG. 12, when each router in the network has an inconsistent illegal forwarding table, a packet is displayed. A transfer path loop occurs. When the TTL value is t when the packet arrives at the node A, assuming that one round of the loop of the transfer path is n hops (n = 3 in the example of FIG. 12), the packet is floor ((t -1) / n-1) loops, and the traffic between the nodes A and B is subjected to floor ((t-1) / n-1) times as much traffic. Here, floor (x) represents the maximum integer not exceeding x. That is, when the TTL value is large and the number of hops of the loop is small, it means that a lot of unnecessary traffic is applied.
[0007]
In recent high-speed routers that perform transfer processing with hardware, the increased unnecessary traffic suddenly occurs, and the transmission path bandwidth is immediately compressed, so the influence becomes enormous. Furthermore, if the transmission path bandwidth is overstressed, routing protocol and signaling protocol packets will not be transferred, leading to a malfunction of the entire network.
[0008]
The present invention is based on such a background. When a node in the network uses an inconsistent invalid forwarding table, a packet is generated when a forwarding route loop occurs. It is an object of the present invention to provide a packet transfer processing method, a packet transfer processing device, a network, a protocol, and a recording medium that can suppress the number of times that the transfer path is circulated and can suppress an increase in unnecessary traffic.
[0009]
[Means for Solving the Problems]
The main feature of the present invention is that the entry in the forwarding table relating to a packet discarded with a TTL value of 0 is marked as a suspicious entry causing a loop. Then, the loop is canceled by discarding the packet that has arrived at the suspect entry. Alternatively, it is characterized in that the loop is canceled by marking the packet that has arrived at the suspicious entry and discarding it when it returns in a loop. Alternatively, the bandwidth may be narrowed so as not to compress other traffic by lowering the transfer priority even if the packet arriving at the suspicious entry is not discarded.
[0010]
As a result, the number of times that a packet circulates in the transfer path can be suppressed even when a loop of the transfer path occurs due to a node in the network using an inconsistent invalid transfer table, etc. An increase in unnecessary traffic can be suppressed. In a network that performs packet transfer at high speed with hardware, the loop of the transfer path fills up the transmission path bandwidth in an instant, causing fatal damage such as a stop of the network function, but this is avoided by the present invention. can do.
[0011]
That is, a first aspect of the present invention is a packet transfer processing method that searches a transfer table according to a destination address of an arriving packet and determines a next hop destination based on a corresponding entry of the searched transfer table.
[0012]
Here, a feature of the present invention is that a corresponding entry in the forwarding table relating to a packet discarded because the TTL value is 0 is marked as a suspicious entry.
[0013]
In other words, it is unlikely that the TTL value of a packet that has arrived at the network for the first time is 0 from the beginning, and that a packet is discarded with a TTL value of 0 means that a loop has occurred and the packet has circulated on the loop. This means that there is a high possibility that the TTL value has become 0 in the meantime. Therefore, by marking the corresponding entry in the forwarding table for such a packet as a suspicious entry that causes a loop, it is possible to make a countermeasure for solving the loop.
[0014]
Specifically, when a packet corresponding to the suspicious entry arrives, it is desirable to discard the packet regardless of the TTL value.
[0015]
At this time, it is desirable to release the suspicion of the suspicious entry when a certain period of time has elapsed since the mark as the suspect entry.
[0016]
In other words, if a suspicious entry remains even after the loop has been resolved, unnecessary packet discard may continue, so when a certain period of time has passed since the mark was marked as a suspicious entry, The suspicion of the entry should be lifted once. Of course, if a packet that is discarded with a TTL value of 0 arrives again after a certain period of time has passed since the mark as a suspicious entry, the mark added to the suspicious entry is continued. The certain time may be set as appropriate according to the network environment.
[0017]
Alternatively, when a packet corresponding to the suspected entry arrives and the TTL value is larger than 0, a TTL Marker bit is set in the IP header of the packet and then transferred to the next hop, and a packet with the TTL Marker bit set arrives However, when the packet is a packet corresponding to the suspect entry, the packet can be discarded regardless of the TTL value.
[0018]
That is, the TTL value of a packet that first arrives at the suspicious entry is greater than zero. However, since there is a high possibility that the packet will circulate on the loop in the future, unnecessary traffic due to the loop can be suppressed to a minimum by setting the TTL Marker bit and quickly discarding it after one lap.
[0019]
Further, in the forwarding table of the node where the packet first arrives, for example, even if the destination address is z, in the forwarding table of the next hop node, z is further branched and z and z. 1, the packet of the destination z goes around the loop, but the destination z. One packet may be unrelated to the loop. In such a case, if a packet that arrives uniformly at the first node is discarded, the destination z. Since even one packet is discarded together, it is possible to avoid such an inconvenience by once assigning a TTL Marker and transferring it to the next hop.
[0020]
At this time, when a packet with the TTLMarker bit set for a certain period of time has not been transferred to the corresponding entry after marking as the suspected entry, it is desirable to release the suspected entry.
[0021]
In other words, if the suspicious entry remains even after the loop is resolved, unnecessary processing such as setting the TTL Marker bit is performed on the arriving packet, so the packet with the TTL Marker bit set for a certain time or more If it is not transferred to, the suspicion of the suspicious entry should be released immediately. The predetermined time may be set appropriately according to the network environment.
[0022]
Alternatively, when a packet corresponding to the suspected entry arrives and its TTL value is larger than 0, the TTL value subtracted by 1 is compared with a predetermined value, and the smaller one is mounted as an TTL value in the IP header. It can also be forwarded to the next hop.
[0023]
That is, a predetermined number of laps is allowed for a packet that may circulate in the loop. Thereby, when the loop is quickly eliminated, the packet can arrive at the destination without being discarded. As described above, in the forwarding table of the node where the packet first arrives, for example, the destination address z is z, but in the forwarding table of the next hop node, z is further branched and z and z. 1, the packet of the destination z goes around the loop, but the destination z. One packet may be unrelated to the loop. In such a case, if a packet that arrives uniformly at the first node is discarded, the destination z. Since even one packet is discarded together, such inconvenience can be avoided by allowing a predetermined number of rounds. This allowable number of times is preferably set as appropriate according to the network environment.
[0024]
At this time, it is desirable to cancel the suspicion of the suspicious entry when a packet discarded with TTL = 0 for a predetermined time or more after being marked as the suspicious entry is not transferred to the corresponding entry.
[0025]
In other words, if the suspicious entry remains even after the loop is resolved, the TTL value of the arrived packet is decremented by 1 and the predetermined value is compared, and the smaller one is mounted as the TTL value in the IP header. Therefore, when a packet discarded with TTL = 0 for a certain time or longer is not transferred to the corresponding entry, it is preferable to quickly cancel the suspicious entry. The certain time may be appropriately set according to the network environment.
[0026]
Alternatively, when a packet corresponding to the suspect entry arrives and its TTL value is greater than 0, the transfer priority of the packet can be lowered before transferring to the next hop.
[0027]
That is, lowering the transfer priority means narrowing the bandwidth compared to other traffic. As a result, the packet is allowed to circulate around the loop in a narrow band that does not compress other traffic. In the meantime, if the loop recovers, the packet is transferred to a normal destination, so that a more flexible packet transfer process can be performed than when it is immediately discarded.
[0028]
Further, a plurality of classes relating to packet transfer priority are provided, and when a packet corresponding to the suspected entry arrives and its TTL value is greater than 0, the packet transfer priority is lowered to a class one rank lower. Can be forwarded from one to the next hop.
[0029]
According to this, the transfer priority can be divided more finely than the former, and the transfer priority can be gradually lowered according to the number of laps. In this case, when it falls to the lowest class, it may be discarded next time. In the former case, there is a possibility that the loop will continue to circulate with a low priority, but in the latter case, the band may be gradually narrowed according to the number of laps and eventually discarded. .
[0030]
In this case, it is desirable to release the suspicion of the suspicious entry when a packet having a transfer priority lower than the threshold value is not transferred for a certain time or more after the suspicious entry is marked.
[0031]
In other words, if the suspicious entry remains even after the loop is resolved, unnecessary processing such as lowering the transfer priority of the arriving packet is performed, so a packet whose transfer priority is lower than the threshold for a certain period of time or more. If the entry is not transferred to the corresponding entry, the suspicion of the suspicious entry should be immediately released. The predetermined time and the threshold value are preferably set as appropriate according to the network environment.
[0032]
According to a second aspect of the present invention, the forwarding table in which the next hop destination corresponding to the destination address is recorded, and the forwarding table is searched according to the destination address of the arrived packet, and the corresponding entry in the searched forwarding table And a means for determining the next hop destination based on the packet transfer processing device.
[0033]
Here, a feature of the present invention lies in that there is provided means for marking a corresponding entry in the forwarding table relating to a packet discarded because the TTL value is 0 as a suspicious entry.
[0034]
Furthermore, it is desirable to provide means for discarding the packet regardless of the TTL value when the packet corresponding to the suspected entry arrives.
[0035]
At this time, it is desirable to provide means for releasing the mark of the suspected entry when a certain period of time has elapsed since the mark as the suspected entry.
[0036]
Alternatively, when a packet corresponding to the suspicious entry arrives and the TTL value is larger than 0, means for setting the TTL Marker bit in the IP header of the packet and then transferring to the next hop, and the packet with the TTL Marker bit set And a means for discarding the packet regardless of the TTL value when the packet is a packet corresponding to the suspected entry.
[0037]
At this time, it is desirable to provide means for canceling the mark of the suspicious entry when a packet with the TTLMarker bit set for a certain period of time has not been transferred to the corresponding entry after marking the suspicious entry.
[0038]
Alternatively, when a packet corresponding to the suspected entry arrives and its TTL value is larger than 0, the TTL value subtracted by 1 is compared with a predetermined value, and the smaller one is mounted as an TTL value in the IP header. It is also possible to provide means for transferring to the next hop.
[0039]
At this time, it is desirable to provide means for releasing the mark of the suspected entry when a packet discarded with TTL = 0 for a certain period of time after being marked as the suspected entry is not transferred to the corresponding entry.
[0040]
Alternatively, when a packet corresponding to the suspect entry arrives and its TTL value is larger than 0, it is possible to provide means for lowering the transfer priority of the packet and transferring it to the next hop.
[0041]
Alternatively, when a plurality of classes related to the packet transfer priority are provided and a packet corresponding to the suspected entry arrives and the TTL value is greater than 0, the packet transfer priority is lowered to a class one rank lower. It is also possible to provide means for transferring from one to the next hop.
[0042]
At this time, it is preferable to provide means for canceling the suspicion of the suspicious entry when a packet having a transfer priority lower than a threshold value is not transferred for a certain period of time after the suspicious entry is marked.
[0043]
A third aspect of the present invention is a network comprising the packet transfer processing device of the present invention.
[0044]
According to a fourth aspect of the present invention, when the information processing apparatus is installed in the information processing apparatus, the packet transfer processing method of the present invention is executed by the information processing apparatus or installed in the information processing apparatus. Further, a program for realizing a function corresponding to the packet transfer processing apparatus of the present invention.
[0045]
A fifth aspect of the present invention is the information processing apparatus-readable recording medium on which the program of the present invention is recorded. By recording the program of the present invention on the recording medium of the present invention, the information processing apparatus can install the program of the present invention using this recording medium. Alternatively, the program of the present invention can be directly installed in the information processing apparatus via a network from a server holding the program of the present invention.
[0046]
As a result, when an information processing device such as a computer device is used and a transfer route loop occurs due to a node in the network using an inconsistent transfer table, etc., the packet passes through the transfer route. It is possible to realize a packet transfer processing method, a packet transfer processing device, and a network that can suppress the number of times of circulation and suppress an increase in unnecessary traffic.
[0047]
DETAILED DESCRIPTION OF THE INVENTION
(First Example)
A first embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a conceptual diagram for explaining the first embodiment. FIG. 2 is a block diagram of the packet transfer processing apparatus according to this embodiment. As shown in FIG. 2, the first embodiment searches the forwarding table 1 according to the destination address of the arriving packet, and determines the next hop destination based on the corresponding entry of the retrieved forwarding table 1. 2 is a packet transfer processing apparatus including a unit 2. Each of the packet transfer processing devices may be provided in each node, or one or a plurality of packet transfer processing devices may be arranged in the network to control the packet transfer processing of each node.
[0048]
Here, the feature of this embodiment is that the TTL monitoring unit 3 marks a corresponding entry in the forwarding table 1 regarding a packet discarded because the TTL value is 0 as a suspicious entry. The header information of the packet is read by the header reading unit 5 and distributed to the next hop determination unit 2, the TTL monitoring unit 3, and the Header checksum monitoring unit 4, respectively. In addition, the transfer processing unit 6 transfers or discards the packet in accordance with instructions from the next hop determination unit 2, the TTL monitoring unit 3, and the Header checksum monitoring unit 4.
[0049]
In the TTL monitoring unit 3 of the first embodiment, when a packet corresponding to the suspected entry arrives, the packet is discarded regardless of the TTL value. Further, when a certain period of time has passed since the mark as the suspect entry, the suspect entry is released.
[0050]
That is, when a packet arrives at the node A shown in FIG. 1, if the TTL value is 0 and is discarded, the corresponding forwarding table entry is set as a suspect entry. Thereafter, when the packet corresponding to the suspicious entry is received, the node A discards all the packets regardless of the TTL value. This prevents the packet from entering the loop of the transfer path.
[0051]
(Second embodiment)
A second embodiment will be described with reference to FIGS. 1, 2, 4, 5, and 6. FIG. FIG. 4 is a flowchart showing the packet transfer processing procedure of the second embodiment. FIG. 5 is a diagram showing the TOS octet of the IP header. FIG. 6 is a diagram showing TTLMarker coding using the TOS of the second embodiment.
[0052]
When the packet corresponding to the suspicious entry arrives and the TTL value is larger than 0 according to the monitoring result of the TTL monitoring unit 3 shown in FIG. After setting the TTL Marker bit in the IP header of the packet, the packet is transferred to the next hop. Further, the next hop determination unit 2 discards the packet regardless of the TTL value when a packet with the TTL Marker bit set arrives and the packet is a packet corresponding to the suspect entry.
[0053]
The TTL monitoring unit 3 releases the suspicion of the suspicious entry when a packet having the TTL Marker bit set for a certain period of time has not been transferred to the corresponding entry after marking the suspicious entry.
[0054]
As shown in FIG. 1, in the forwarding table of the node A where the packet first arrives, even though the destination address is z, in the forwarding table of the next hop node B, z is further branched and z and z. It is divided into 1. Here, the packet of the destination z goes around the loop, but the destination z. One packet is independent of the loop. In such a case, as in the first embodiment, if the packets arriving uniformly at the first node A are discarded, the destination z. Since even one packet is discarded, in the second embodiment, a TTL Marker is once assigned and the packet is transferred to the next hop.
[0055]
That is, when a packet corresponding to the suspected entry arrives at node A after the suspected entry is marked, if the TTL value is greater than 0, the TTL Marker bit of the header is set and forwarded to node B . Here, it is assumed that the TTL Marker bit is not set when the node A arrives.
[0056]
Next, when the node B receives the packet, it determines the next hop according to the forwarding table. In the transfer table search, the longest match search is performed. That is, the destination z and z. When a destination of 1 exists, the search result is the entry with the longest portion that matches the destination address of the IP header. In this example, the packet destination is z. If it is 1, the next hop is D, otherwise the next hop is C. If the next hop is D, it is transferred to the destination safely, but if it is C, it goes around the loop. That is, since node C has an invalid forwarding table that is inconsistent with nodes A and B, when forwarded to node C, the packet is forwarded to node A.
[0057]
Here, the suspicious entry is marked in the node A, and the packet transferred from the node C is discarded because the TTL Marker bit is set. As a result, it is possible to prevent the transfer path from entering the loop again.
[0058]
In this example, the TTL Marker bit is set, but this bit can be realized by using, for example, a TOS (Type of service) octet. FIG. 5 shows the IP header, and FIG. 6 shows the TOS octet. Some of the Experimental Uses can be used as TTL Markers.
[0059]
The packet transfer processing procedure of the second embodiment is shown in FIG. When the packet is received (step 1), the TTL monitoring unit 3 determines whether TTL is not 0 (step 2). If it is 0, the pseudo entry in the forwarding table 1 is marked (step 5). The TTL value is subtracted (step 3), and the TTL value is mounted on the IP header (step 4). In parallel with this processing, the next hop determination unit 2 searches the transfer table 1 to determine the transfer destination (step 6). It is determined whether the entry in the forwarding table 1 is a suspicious entry. If it is a suspicious entry (step 7), it is determined whether there is a TTL Marker (step 8). If there is no TTL Marker, it is assigned (step 9). Also, if there is a TTL Makerker, it is discarded (step 14). In parallel, the header checksum monitoring unit 4 determines whether the header checksum is correct (step 11), discards the header checksum if it is not correct (step 14), recalculates the header checksum if it is correct (step 12), and the IP header. Is loaded with the recalculated Header checksum (step 13). In this way, the TTL is not 0, the forwarding destination is determined, the TTL Marker is not present, or the TTL Marker is added for the first time, the header checksum is correct, and the header checksum is recalculated as a next hop. Transferred (step 10).
[0060]
(Third embodiment)
A third embodiment will be described with reference to FIGS. FIG. 3 is a conceptual diagram for explaining the third embodiment. When the packet corresponding to the suspected entry arrives and the TTL monitoring unit 3 shown in FIG. 2 subtracts 1 from the TTL value when the TTL value shown in FIG. Are compared with a predetermined value and the smaller one is loaded as the TTL value in the IP header and then transferred to the next hop.
[0061]
Further, the TTL monitoring unit 3 removes the mark of the suspicious entry when a packet discarded with TTL = 0 for a predetermined time or more has not been transferred to the corresponding entry after marking the suspicious entry.
[0062]
In other words, in the second embodiment, the TTL Marker bit is newly defined, but a similar effect can be achieved with only the TTL value. The concept is shown in FIG. An upper limit of how many hops the packet corresponding to the suspicious entry is transferred in the subsequent stage is determined, and it is set as H. When a packet corresponding to the suspicious entry arrives, H is compared with the value obtained by subtracting TTL by 1, and the smaller one is transferred as a new TTL value. Thereby, it is possible to suppress the frequency | count which circulates a loop.
[0063]
(Fourth embodiment)
A fourth embodiment will be described with reference to FIGS. FIG. 7 is a flowchart showing the packet transfer processing procedure of the fourth embodiment. When the packet corresponding to the suspicious entry arrives and the TTL value is larger than 0, the next hop determination unit 2 shown in FIG. 2 lowers the transfer priority of the packet. Forward to the next hop.
[0064]
That is, lowering the transfer priority means narrowing the band compared to other traffic. As a result, the packet is allowed to circulate around the loop in a narrow band that does not compress other traffic. In the meantime, if the loop recovers, the packet is transferred to a normal destination, so that a more flexible packet transfer process can be performed than when it is immediately discarded.
[0065]
Further, the next hop determination unit 2 releases the suspicion of the suspicious entry when a packet having a transfer priority lower than the threshold value is not transferred for a predetermined time or more after marking the suspicious entry. Here, the threshold is the transfer priority of normal packets arriving at entries other than the suspicious entry.
[0066]
The packet transfer processing procedure of the fourth embodiment is shown in FIG. When the packet is received (step 1), the TTL monitoring unit 3 determines whether the TTL is not 0 (step 2). If it is 0, the pseudo entry in the forwarding table 1 is marked (step 5). For example, the TTL value is subtracted (step 3), and the TTL value is mounted on the IP header (step 4). In parallel with this processing, the next hop determination unit 2 searches the transfer table 1 to determine the transfer destination (step 6). It is determined whether or not the entry in the forwarding table 1 is a suspicious entry. If it is a suspicious entry (step 7), it is determined whether or not the forwarding priority is lower than that of a normal packet (step 8). If the degree is not lower than that of a normal packet, the priority is lowered (step 9). If the transfer priority is lower than that of a normal packet, the packet is transferred as it is (step 10). In parallel, the header checksum monitoring unit 4 determines whether the header checksum is correct (step 11), discards the header checksum if it is not correct (step 14), recalculates the header checksum if it is correct (step 12), and the IP header. Is loaded with the recalculated Header checksum (step 13). In this way, the packet whose TTL is not 0, the transfer destination is determined, the Header checksum is correct, and the Header checksum is recalculated is transferred to the next hop (step 10).
[0067]
(Fifth embodiment)
A fifth embodiment will be described with reference to FIGS. FIG. 8 is a flowchart showing the packet transfer processing procedure of the fifth embodiment. The packet transfer processing device of the fifth embodiment is provided with a plurality of classes related to packet transfer priorities, and when the packet corresponding to the suspicious entry arrives and its TTL value is greater than 0, the next hop determination shown in FIG. The unit 2 lowers the transfer priority of the packet to a class one rank lower and transfers it to the next hop.
[0068]
That is, the fifth embodiment divides the transfer priority more finely than the fourth embodiment and gradually lowers the transfer priority according to the number of laps. In the fifth embodiment, when the class is lowered to the lowest class, it is discarded next time. In the case of the fourth embodiment, there is a possibility that the loop will continue to circulate with a low priority, but in the case of the fifth embodiment, the band gradually narrows according to the number of laps and is eventually discarded. Like that.
[0069]
Further, the next hop determination unit 2 releases the suspicion of the suspicious entry when a packet having a transfer priority lower than the threshold value is not transferred for a predetermined time or more after marking the suspicious entry. Here, the threshold is the transfer priority of normal packets arriving at entries other than the suspicious entry.
[0070]
The packet transfer processing procedure of the fifth embodiment is shown in FIG. When the packet is received (step 1), the TTL monitoring unit 3 determines whether the TTL is not 0 (step 2). If it is 0, the pseudo entry in the forwarding table 1 is marked (step 5). For example, the TTL value is subtracted (step 3), and the TTL value is mounted on the IP header (step 4). In parallel with this processing, the next hop determination unit 2 searches the transfer table 1 to determine the transfer destination (step 6). It is determined whether or not the entry in the forwarding table 1 is a suspect entry, and if it is a suspect entry (step 7), it is determined whether or not the transfer priority class is the lowest (step 8) and must be the lowest. For example, the priority is lowered by one rank (step 9), and if it is the lowest, it is discarded (step 14). In parallel, the header checksum monitoring unit 4 determines whether the header checksum is correct (step 11), discards the header checksum if it is not correct (step 14), recalculates the header checksum if it is correct (step 12), and the IP header. Is loaded with the recalculated Header checksum (step 13). In this way, a packet in which the TTL is not 0, the forwarding destination is determined, the priority is not the lowest, the Header checksum is correct, and the Header checksum is recalculated is forwarded to the next hop (step 10). ).
[0071]
(Sixth embodiment)
The packet transfer processing apparatus according to the present embodiment can be realized using a computer apparatus that is an information processing apparatus. That is, by installing in the computer apparatus, the computer apparatus is caused to execute the packet transfer processing method of the present embodiment. By installing a program for realizing the function corresponding to the above in the computer apparatus, the computer apparatus can be made an apparatus corresponding to the packet transfer processing apparatus of this embodiment.
[0072]
Further, the program of this embodiment is recorded on the recording medium of this embodiment, so that the computer apparatus can install the program of this embodiment using this recording medium. Alternatively, the program of this embodiment can be directly installed on the computer device from the server holding the program of this embodiment via the network.
[0073]
As a result, the number of times that a packet circulates in the transfer path is suppressed when a loop of the transfer path occurs due to, for example, a node in the network using an inconsistent and invalid transfer table using a computer device. Therefore, it is possible to realize a packet transfer processing method, a packet transfer processing device, and a network that can suppress an increase in unnecessary traffic.
[0074]
【The invention's effect】
As described above, according to the present invention, when a node in a network uses an inconsistent and invalid forwarding table, a packet circulates around the forwarding route when a forwarding route loop occurs. The number of times can be suppressed, and an increase in unnecessary traffic can be suppressed.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram for explaining first and second embodiments.
FIG. 2 is a block configuration diagram of the packet transfer processing apparatus according to the embodiment.
FIG. 3 is a conceptual diagram for explaining a third embodiment.
FIG. 4 is a flowchart showing a packet transfer processing procedure according to the second embodiment.
FIG. 5 is a diagram showing a TOS octet of an IP header.
FIG. 6 is a diagram showing TTL Marker coding using the TOS of the second embodiment.
FIG. 7 is a flowchart showing a packet transfer processing procedure according to the fourth embodiment.
FIG. 8 is a flowchart showing a packet transfer processing procedure according to the fifth embodiment.
FIG. 9 is a diagram for explaining conventional packet transfer processing;
FIG. 10 is a diagram for explaining TTL processing;
FIG. 11 is a flowchart showing a conventional packet transfer processing procedure.
FIG. 12 is a diagram for explaining a loop problem due to an illegal forwarding table;
[Explanation of symbols]
A to C nodes
1 Transfer table
Secondary hop determination unit
3 TTL monitoring unit
4 Header checksum monitoring part
5 Header reader
6 Transfer processing part

Claims (23)

到着したパケットの宛先アドレスにしたがって転送表を検索し、検索されたこの転送表の対応するエントリに基づき次ホップ先を決定するパケット転送処理方法において、
TTL(Time to live)値が0のために廃棄されたパケットに関する前記転送表の対応するエントリを被疑エントリとしてマークする
ことを特徴とするパケット転送処理方法。
In a packet transfer processing method for searching a forwarding table according to a destination address of an arriving packet and determining a next hop destination based on a corresponding entry of the searched forwarding table,
A packet transfer processing method, wherein a corresponding entry in the transfer table relating to a packet discarded because a TTL (Time to live) value is 0 is marked as a suspicious entry.
前記被疑エントリに対応するパケットが到着したときには、そのパケットをTTL値によらずに廃棄する請求項1記載のパケット転送処理方法。2. The packet transfer processing method according to claim 1, wherein when a packet corresponding to the suspected entry arrives, the packet is discarded regardless of the TTL value. 前記被疑エントリとしてマークを付けてから、一定時間以上経過したときには、当該被疑エントリの疑いを解除する
請求項1または2記載のパケット転送処理方法。
The packet transfer processing method according to claim 1 or 2, wherein when a certain period of time has passed since the mark as the suspect entry, the suspect of the suspect entry is canceled.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットのIPヘッダにTTL Markerビットを立ててから次ホップへ転送し、
TTL Markerビットが立ったパケットが到着し、当該パケットが前記被疑エントリに対応するパケットであるときには当該パケットをTTL値によらず廃棄する
請求項1記載のパケット転送処理方法。
When a packet corresponding to the suspected entry arrives and its TTL value is greater than 0, a TTL Marker bit is set in the IP header of the packet and then transferred to the next hop,
2. The packet transfer processing method according to claim 1, wherein when a packet having a TTL Marker bit arrives and the packet is a packet corresponding to the suspicious entry, the packet is discarded regardless of the TTL value.
前記被疑エントリとしてマークを付けてから、一定時間以上TTL Markerビットが立ったパケットが該当エントリに転送されてこないときには、当該被疑エントリの疑いを解除する
請求項4記載のパケット転送処理方法。
5. The packet transfer processing method according to claim 4, wherein when a packet with a TTL Marker bit set for a certain period of time has not been transferred to the corresponding entry after marking the suspicious entry, the suspicion of the suspicious entry is canceled.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該TTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載してから次ホップへ転送する
請求項1記載のパケット転送処理方法。
When a packet corresponding to the suspicious entry arrives and the TTL value is larger than 0, the TTL value subtracted by 1 is compared with a predetermined value, and the smaller one is mounted as an TTL value in the IP header. The packet transfer processing method according to claim 1, wherein the packet is transferred to the next hop.
前記被疑エントリとしてマークを付けてから、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、当該被疑エントリの疑いを解除する
請求項6記載のパケット転送処理方法。
7. The packet transfer processing method according to claim 6, wherein when a packet discarded with TTL = 0 for a predetermined time or more after marking as the suspicious entry is not transferred to the corresponding entry, the suspicion of the suspicious entry is canceled.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を下げてから次ホップへ転送する請求項1記載のパケット転送処理方法。The packet transfer processing method according to claim 1, wherein when a packet corresponding to the suspicious entry arrives and the TTL value is larger than 0, the packet is transferred to the next hop after the transfer priority of the packet is lowered. パケットの転送優先度に関する複数のクラスが設けられ、
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を1ランク下のクラスに下げてから次ホップへ転送する請求項1記載のパケット転送処理方法。
There are several classes related to packet transfer priority,
2. The packet transfer processing method according to claim 1, wherein when a packet corresponding to the suspected entry arrives and the TTL value is larger than 0, the transfer priority of the packet is lowered to a class one rank lower and then transferred to the next hop. .
前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除する
請求項8または9記載のパケット転送処理方法。
10. The packet transfer processing method according to claim 8 or 9, wherein when a packet having a transfer priority lower than a threshold value is not transferred for a certain period of time after marking as the suspect entry, the suspected entry is canceled.
宛先アドレスに対応する次ホップ先が記録された転送表と、到着したパケットの宛先アドレスにしたがって前記転送表を検索し、検索された前記転送表の対応するエントリに基づき次ホップ先を決定する手段とを備えたパケット転送処理装置において、
TTL値が0のために廃棄されたパケットに関する前記転送表の対応するエントリを被疑エントリとしてマークする手段を備えた
ことを特徴とするパケット転送処理装置。
A forwarding table in which a next hop destination corresponding to a destination address is recorded, and a means for searching the forwarding table according to a destination address of an arriving packet and determining a next hop destination based on a corresponding entry of the retrieved forwarding table In a packet transfer processing device comprising:
A packet forwarding processing apparatus comprising means for marking a corresponding entry in the forwarding table relating to a packet discarded due to a TTL value of 0 as a suspicious entry.
前記被疑エントリに対応するパケットが到着したときには、そのパケットをTTL値によらずに廃棄する手段を備えた請求項11記載のパケット転送処理装置。12. The packet transfer processing device according to claim 11, further comprising means for discarding the packet regardless of the TTL value when a packet corresponding to the suspicious entry arrives. 前記被疑エントリとしてマークを付けてから、一定時間以上経過したときには、当該被疑エントリのマークを解除する手段を備えた
請求項11または12記載のパケット転送処理装置。
13. The packet transfer processing device according to claim 11 or 12, further comprising means for canceling the mark of the suspected entry when a certain period of time has elapsed since the mark as the suspected entry.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットのIPヘッダにTTL Markerビットを立ててから次ホップへ転送する手段と、
TTL Markerビットが立ったパケットが到着し、当該パケットが前記被疑エントリに対応するパケットであるときには当該パケットをTTL値によらず廃棄する手段と
を備えた請求項11記載のパケット転送処理装置。
A packet corresponding to the suspected entry arrives, and when the TTL value is larger than 0, means for setting a TTL Marker bit in the IP header of the packet and then transferring to the next hop;
12. The packet transfer processing device according to claim 11, further comprising means for discarding the packet regardless of the TTL value when a packet with the TTL Marker bit set arrives and the packet is a packet corresponding to the suspicious entry.
前記被疑エントリとしてマークを付けてから、一定時間以上TTL Markerビットが立ったパケットが該当エントリに転送されてこないときには、当該被疑エントリのマークを解除する手段を備えた
請求項14記載のパケット転送処理装置。
15. The packet transfer process according to claim 14, further comprising means for canceling the mark of the suspicious entry when a packet with the TTL Marker bit set for a predetermined time or more has not been transferred to the corresponding entry after marking as the suspicious entry. apparatus.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該TTL値を1だけ減算したものと所定値とを比較し、小さい方をTTL値としてIPヘッダに搭載してから次ホップへ転送する手段を備えた
請求項11記載のパケット転送処理装置。
When a packet corresponding to the suspicious entry arrives and the TTL value is larger than 0, the TTL value subtracted by 1 is compared with a predetermined value, and the smaller one is mounted as an TTL value in the IP header. 12. The packet transfer processing device according to claim 11, further comprising means for transferring to the next hop.
前記被疑エントリとしてマークを付けてから、一定時間以上TTL=0で廃棄されるパケットが該当エントリに転送されてこないときには、当該被疑エントリのマークを解除する手段を備えた
請求項16記載のパケット転送処理装置。
17. The packet transfer according to claim 16, further comprising means for releasing the mark of the suspicious entry when a packet discarded with TTL = 0 for a predetermined time or more after being marked as the suspicious entry is not transferred to the corresponding entry. Processing equipment.
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を下げてから次ホップへ転送する手段を備えた請求項11記載のパケット転送処理装置。12. The packet transfer processing device according to claim 11, further comprising means for lowering the transfer priority of the packet and transferring it to the next hop when a packet corresponding to the suspected entry arrives and the TTL value is larger than zero. パケットの転送優先度に関する複数のクラスが設けられ、
前記被疑エントリに対応するパケットが到着し、そのTTL値が0より大きいときには、当該パケットの転送優先度を1ランク下のクラスに下げてから次ホップへ転送する手段を備えた請求項11記載のパケット転送処理装置。
There are several classes related to packet transfer priority,
12. The device according to claim 11, further comprising means for lowering the transfer priority of the packet to a class one rank lower and transferring it to the next hop when a packet corresponding to the suspected entry arrives and the TTL value is greater than zero. Packet transfer processing device.
前記被疑エントリとしてマークを付けてから、一定時間以上転送優先度が閾値よりも低いパケットが転送されてこないときには、当該被疑エントリの疑いを解除する手段を備えた請求項18または19記載のパケット転送処理装置。20. The packet transfer according to claim 18 or 19, further comprising means for canceling the suspicion of the suspicious entry when a packet having a transfer priority lower than a threshold value is not transferred for a predetermined time or more after the suspicious entry is marked. Processing equipment. 請求項11ないし20のいずれかに記載のパケット転送処理装置を備えたことを特徴とするネットワーク。A network comprising the packet transfer processing device according to any one of claims 11 to 20. 情報処理装置にインストールすることにより、その情報処理装置に、請求項1ないし10のいずれかに記載のパケット転送処理方法を実行させる、あるいは、情報処理装置にインストールすることにより、その情報処理装置に、請求項11ないし20のいずれかに記載のパケット転送処理装置に相応する機能を実現させることを特徴とするプログラム。The information processing apparatus causes the information processing apparatus to execute the packet transfer processing method according to any one of claims 1 to 10, or the information processing apparatus installs the information processing apparatus to install the information processing apparatus. A program for realizing a function corresponding to the packet transfer processing device according to any one of claims 11 to 20. 請求項22記載のプログラムが記録された前記情報処理装置読み取り可能な記録媒体。23. A recording medium readable by the information processing apparatus on which the program according to claim 22 is recorded.
JP2002208586A 2002-07-17 2002-07-17 Packet transfer processing method, packet transfer processing device, and network Expired - Fee Related JP3643094B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002208586A JP3643094B2 (en) 2002-07-17 2002-07-17 Packet transfer processing method, packet transfer processing device, and network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002208586A JP3643094B2 (en) 2002-07-17 2002-07-17 Packet transfer processing method, packet transfer processing device, and network

Publications (2)

Publication Number Publication Date
JP2004056293A JP2004056293A (en) 2004-02-19
JP3643094B2 true JP3643094B2 (en) 2005-04-27

Family

ID=31932691

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002208586A Expired - Fee Related JP3643094B2 (en) 2002-07-17 2002-07-17 Packet transfer processing method, packet transfer processing device, and network

Country Status (1)

Country Link
JP (1) JP3643094B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5189512B2 (en) 2009-01-27 2013-04-24 株式会社日立製作所 Packet transfer method and node device
WO2016157914A1 (en) * 2015-04-02 2016-10-06 日本電気株式会社 Network system, communication control method, and recording medium
JP7024323B2 (en) * 2017-10-26 2022-02-24 富士通株式会社 Packet control programs, packet control methods, and packet control devices

Also Published As

Publication number Publication date
JP2004056293A (en) 2004-02-19

Similar Documents

Publication Publication Date Title
US6798788B1 (en) Arrangement determining policies for layer 3 frame fragments in a network switch
KR100971050B1 (en) Label switching in fibre channel networks
US8743882B1 (en) Packet header altering device
US7411957B2 (en) Hardware filtering support for denial-of-service attacks
US8175096B2 (en) Device for protection against illegal communications and network system thereof
US20010005358A1 (en) Packet protection technique
US7894441B2 (en) Packet forwarding device with packet filter
US7995586B2 (en) Multi-protocol label switching in a network device
US7826369B2 (en) Subsets of the forward information base (FIB) distributed among line cards in a switching device
US8175098B2 (en) Method for optimizing a route cache
US7983278B1 (en) Redirect checking in a network device
US20090300209A1 (en) Method and system for path based network congestion management
US20120023217A1 (en) Method and apparatus for policy enforcement using a tag
US20070115824A1 (en) Selective flow control
US8565232B2 (en) Method and apparatus for virtual circuit routes
US6563832B1 (en) Token ring bridge distributed in a switched fabric
US11516133B2 (en) Flow cache management
JP2005150948A (en) Apparatus for switching packet
US20060153193A1 (en) Network routing control method and apparatus
JP3643094B2 (en) Packet transfer processing method, packet transfer processing device, and network
CN114640631A (en) Congestion control method and network equipment
EP0824293A1 (en) Data communication network
JP2009543383A (en) Tunnelin group detection controller
JP3521904B2 (en) Frame transfer method and node in Ethernet (R)
Lin et al. Collaborative distributed intrusion detection system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050119

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: 20050125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050126

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

Free format text: PAYMENT UNTIL: 20080204

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090204

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090204

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100204

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110204

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110204

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120204

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130204

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees