JP2014239437A - ルーティングループの検出方法及び装置 - Google Patents
ルーティングループの検出方法及び装置 Download PDFInfo
- Publication number
- JP2014239437A JP2014239437A JP2014115641A JP2014115641A JP2014239437A JP 2014239437 A JP2014239437 A JP 2014239437A JP 2014115641 A JP2014115641 A JP 2014115641A JP 2014115641 A JP2014115641 A JP 2014115641A JP 2014239437 A JP2014239437 A JP 2014239437A
- Authority
- JP
- Japan
- Prior art keywords
- data packet
- node
- routing
- turning point
- cost
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】ルーティングループを検出する方法及び装置を提供する。【解決手段】かかる方法は、データパケットの期待ルーティングコスト、及び、ローカルノードが前記データパケットのために選択したルーティングのコストに基づいて、前記ローカルノードがターニングポイントであるかを判断し;前記ローカルノードがターニングポイントであれば、前記データパケットにマークを付け;前記ローカルノードによりマーキングされたデータパケットを受信すれば、ルーティングループが発生していると確定することを含む。【選択図】図1
Description
本発明は、通信分野に関し、特に、Ad Hocネットワークにおけるルーティングループの検出方法及び装置に関する。
データパケットが無線Ad Hocネットワークに伝送される時に、目標ノードに到達するために、通常、複数のノードの転送(forward又はrelay)を要する。データパケットは、一連のノードによって互いに重複転送される時に、ルーティングループに陥ってしまう。ルーティングループに陥ったデータパケットは、エンドレスに転送され、目標ノードに到達することができない。ルーティングループ問題を迅速に解決することができなければ、通信リソースの浪費を引き起こすことがあるだけではなく、ネットワークの正常作動に影響を与えることもある。
従来の解決方法としては、履歴情報表を採用してルーティングループを検出する方法がある。履歴情報表には、ノードが送信したデータパケットの情報が保存されている。ノードがデータパケットを受信したが、該データパケットの情報が既に履歴情報表に存在すれば、それは、ルーティングループが存在することを表す。従来の方法では、データパケットのルーティング経路上の全てのノードが、すべて、該データパケットの情報を履歴情報表に記憶させる必要がある。よって、従来の方法における履歴情報表は、ルーティングループ問題を検出及び解決することができるが、ネットワーク中のデータ量がとても大きい時に、履歴情報表は、大量にメモリを消費する。
本発明の実施例の主な目的は、ルーティングループの発生によるリソース浪費を避けるためのルーティングループの検出方法及び装置を提供することにある。
本発明の一側面によれば、Ad Hocネットワークにおけるノードが提供され、前記ノードは、
受信したデータパケットにおける情報を解析する解析ユニット;
前記データパケットにおけるターニングポイントリスト又は履歴情報表におけるターニングポイント関連情報に基づいて、前記ノードが前記データパケットにマークを付けているかどうかを判断する判断ユニット;及び
前記ノードが前記データパケットにマークを付けている時に、ルーティングループが発生したと確定する処理ユニットを含む、ノード。
受信したデータパケットにおける情報を解析する解析ユニット;
前記データパケットにおけるターニングポイントリスト又は履歴情報表におけるターニングポイント関連情報に基づいて、前記ノードが前記データパケットにマークを付けているかどうかを判断する判断ユニット;及び
前記ノードが前記データパケットにマークを付けている時に、ルーティングループが発生したと確定する処理ユニットを含む、ノード。
また、本発明の他の側面によれば、ルーティングループを検出する方法が提供され、前記方法は、
受信したデータパケットの期待ルーティングコスト、及び、ローカルノードが前記データパケットのために選択したルーティングのコストに基づいて、ローカルノードがターニングポイントであるかどうかを判断し;
ローカルノードがターニングポイントである場合、前記データパケットにマークを付け;及び
ローカルノードによってマークが付けられているデータパケットを受信した場合、ルーティングループが発生したと確定する、ことを含む、方法。
受信したデータパケットの期待ルーティングコスト、及び、ローカルノードが前記データパケットのために選択したルーティングのコストに基づいて、ローカルノードがターニングポイントであるかどうかを判断し;
ローカルノードがターニングポイントである場合、前記データパケットにマークを付け;及び
ローカルノードによってマークが付けられているデータパケットを受信した場合、ルーティングループが発生したと確定する、ことを含む、方法。
本発明の実施例の有益な効果は、本発明の実施例における方法及び装置によって、ルーティングループの発生によるリソース浪費を避け、ネットワークの正常作動を保証することができる。
以下、図面を参照しながら本発明を実施するための形態について詳しく説明する。
なお、本発明の実施例では、Ad Hocネットワークを例として説明を行っているが、本発明は、Ad Hocネットワークに限定されず、例えば、本発明の実施例により提供される方法及び装置は、センサーネットワークなどの他のMulti hopネットワークにも適用し得る。
Ad Hocネットワークでは、ルーティング表には、ノードのルーティング情報が記憶されている。本発明の実施例では、ノードが、表1に示すようなルーティング表の構造を有すると仮定する。表1には、ノードNi(i=1,…,n)が現在のノードの隣接ノードである。現在のノードは、データを任意の1つの隣接ノードに直接転送することができる。表1から分かるように、現在のノードがノードN1を経由してデータをノードNdestに転送するとき、必要なルーティングコストがC1であり、Nnを経由してデータをノードNdestに転送するとき、必要なルーティングコストがCnである。一般的に、ノードは、ルーティングコストが最小になるルーティング経路を選択してデータ転送を行う。
本発明の実施例では、ターニングポイントとは、データパケットのために選択したルーティングコストが該データパケットの期待(expected)ルーティングコスト以上であるノードを指す。例えば、ノードNが転送要のデータパケットを受信し、該データパケットの期待コストがC1であり、ノードNがルーティング表をルックアップして該データパケットのために選択したルーティングコストがC2である場合、C2≧C1であれば、ノードNはターニングポイントであり、そうでなければ、ノードNはターニングポイントではない。
本実施例は、ルーティングループを検出する方法を提供する。図1は、該方法のフローチャートであり、該方法は、次のようなステップを含む。
ステップ101:受信したデータパケットの期待ルーティングコスト、及び、ローカルノードが前記データパケットのために選択したルーティングのコストに基づいて、ローカルノードがターニングポイントであるかどうかを判断する。
そのうち、ローカルノードは、ルーティング表をルックアップすることによって、前記データパケットのためにルーティングコストが最小のルーティングを選択し、また、データパケットの期待ルーティングコストと、選択したルーティングのコストとを比較することにより、ローカルノードがターニングポイントであるかどうかを判断することができる。
そのうち、選択したルーティングのコストが期待ルーティングコスト以上であれば、ローカルノードがターニングポイントであると判断し、言い換えれば、該ノードを経由して転送した該データパケットがまた戻する可能性があり、これによって、ルーティングループを形成し、ネットワークの正常作動に影響を与える。一方、選択したルーティングのコストが期待ルーティングコストよりも小さい場合、ローカルノードがターニングポイントではないと判断する。
ステップ102:ローカルノードがターニングポイントであれは、前記データパケットにマークを付ける(即ち、前記データパケットにマーキングを行う)。
そのうち、ステップ101の判断により、ローカルノードがターニングポイントであると確定すれば、該データパケットにマークを付け、その後、マークが付けられているデータパケットを転送する必要がある。その理由は、「ローカルノードが該データパケットのために選択したルーティングのルーティングコストが該データパケットの期待ルーティングコスト以上であれば、該データパケットが転送によってまた戻し、ルーティングループが生じる可能性があり、このようなデータパケットにマークを付けることによって、受信したデータパケットが、転送されたことのあるものであるかどうかを確認することができ、よって、ルーティングループが発生しているかどうかを判定することができ、後続の処理に根拠を提供することができる」とのことにある。
そのうち、ステップ101の判断により、ローカルノードがターニングポイントではないと判断すれば、従来の方法に従って該データパケットを転送し、例えば、該データパケットにおける送信ノードアドレス(LS)、受信ノードアドレス(LD)、及び期待ルーティングコスト(Cost)を変更して転送を行う。
そのうち、データパケットにマークを付ける方法については、後述する。
ステップ103:ローカルノードによってマークが付けられているデータパケットを受信した場合、ルーティングループが発生したと確定する。
そのうち、ルーティングループが発生したと確定した後に、ルーティングループの解決操作、例えば、前記データパケットを捨て、ルーティング表を更新し、又は、データパケットを再転送するなどの操作を行ってもよい。
以上の実施例では、ローカルノードは、データパケットを受信した後に、ローカルノードが該データパケットのターニングポイントであるかどうかに基づいて、該データパケットにマークを付けているかどうかを判断する。しかし、本発明は、これに限定されず、他の実施例では、1つのノードがその生成したデータパケットにマークを直接付けることもでき、これによって、ルーティングループの検出を行い、例えば、某ノードは、その生成したデータパケットにマークを付け、その後、一旦該データパケットを受信すると、ルーティングループが発生したと判断することができる。そのうち、その生成したデータパケットにマークを付ける他、該ノードは、同時に、該データパケットの期待ルーティングコストを該データパケットに添加(追加)することもでき、これにより、該データパケットを受信したノードは、これに基づいて、それが該データパケットのターニングポイントであるかどうかを確定することができる。
そのうち、ステップ102の方法で、ルーティングループの発生する可能性のあるデータパケットにマークを付け、又は、前述の方法で、生成したデータパケットにマックを付け、これにより、ローカルノードは、データパケットを受信した時に、該ローカルノードが該データパケットにマークを付けているかどうかを判断することができ、マークを付けていると判断すれば、これは、該ローカルノードが該データパケットを転送したことがある、又は、該データパケットが該ローカルノードの生成したデータパケットであるとのことを表し、即ち、ルーティングループが発生したとのことを表す。該データパケットを転送又は送信したことがあるから、このとき、該ローカルノードは、該データパケットを捨てることを選択してもよく、即ち、それに対して処理を行わない。判断により、ローカルノードが該データパケットにマークを付けていないと確定すれば、ステップ101〜102の処理を行い、即ち、該データパケットのためにルーティングコストを選択して、ローカルノードがターニングポイントであるかどうかを確定し、ローカルノードがターニングポイントである場合、該データパケットにマークを付けて転送し、ローカルノードがターニングポイントでない場合、該データパケットを直接転送する。データパケット(マークを付けた後のデータパケット、又は、マークを付けてないデータパケット)の転送過程において、該ノードは、該データパケットのルーティングコストを該データパケットに添加することができ、これにより、該データパケットを受信したノードは、ステップ101により、それ自身がターニングポイントであるかどうかを確定することができる。
そのうち、データパケットにマークを付ける方法が異なるので、受信したデータパケットが、ローカルノードによってマークが付けられているデータパケットであるかどうかを判断する方法も異なる。以下、これについて、詳しく説明する。
ステップ102では、ローカルノードがターニングポイントであれば、該データパケットにマークを付けることができる。本実施例では、マークを付ける方法を2つ提供し、一つは、ローカルノードの情報を、前記データパケットのターニングポイントリストに追加する方法であり、もう1つは、前記データパケットの情報を、ターニングポイントの履歴情報表のターニングポイント関連情報に追加する方法である。この2つの方法で該データパケットにマークを付けることにより、ローカルノードは再び該データパケットを受信した時に、それに基づいて、該データパケットを既に転送したと確定し、即ち、ルーティングループが既に生じたと確定することができ、これにより、ネットワークの正常作動に影響を与えることを避けるために、該データパケットを捨てることを選択することができる。
そのうち、前述の2つのデータパケットにマークを付ける方法は、例だけであり、本発明は、これらの方法に限定されず、データパケットにマークを付ける任意の適切な方法はすべて本発明の保護範囲に属する。
本実施例では、前述の一つ目の方法を採用してデータパケットにマークを付ける場合、即ち、ローカルノードの情報をデータパケットのターニングポイントリストに追加して、データパケットにマークを付ける場合、ステップ103において、ローカルノードの情報が、受信したデータパケットのターニングポイントリストに存在する時に、受信したデータパケットが、ローカルノードによりマークが付けられているデータパケットであると確定し、即ち、ローカルノードが該データパケットにマークを付けていると確定することができる。
そのうち、GS(Global Source)は、ソースノードのアドレスであり、GD(Global Destination)は、目標ノードのアドレスであり、LS(Local Source)は、送信ノードのアドレスであり、LD(Local Destination)は、受信ノードのアドレスであり、Costは、期待ルーティングコストであり、Noは、ターニングポイントの個数であり、TP(Turning Point)は、ターニングポイント情報リスト(ターニングポイントリストとも称される)であり、Seq(Sequence)は、データパケットの順番号であり、Len(Length)は、データ領域の長さであり、Dataは、データ領域である。
そのうち、TP_i(i=1,2,…,No)は、第i個のターニングポイントのターニングポイント情報である。該ターニングポイント情報は、ターニングポイントのアドレスを含んでもよい。
本実施例では、1つのノードは1つのデータパケットを受信し、ステップ101の判断で、ローカルノードがターニングポイントであると発見した時に、該ノードは、その関連情報を、該データパケットのターニングポイントリストに入れ(追加し)、これによって、該データパケットにマークを付けることを完成させる(ステップ102)。その後、該ノードは、再び1つのデータパケットを受信し、且ち、そのアドレスが該データパケットのターニングポイントリストに存在する時に、該データパケットにマークを付けていると確定し、即ち、該データパケットを転送したことがあると確定し、このときに、該ノードは、ルーティングループの解決操作、例えば、該データパケットを捨てる操作を実行してもよい(ステップ103)。
そのうち、表3に示されているTPデータセグメントの構造は、例だけであり、本発明は、これに限定されない。例えば、他の実施例では、各ターニングポイントに対応して、該ターニングポイントのアドレス、及び、受信ノード(該ターニングポイントが該データパケットを転送した時の受信ノード)のアドレスを含んでも良い。即ち、該ノードが該データパケットにマークを付ける時に、自分のアドレスを該データパケットのターニングポイントリストに入れるだけではなく、同時に、該データパケットの受信ノードのアドレスをも該データパケットのターニングポイントリストに入れる。これにより、1つのノードが1つのデータパケットを受信した場合、そのアドレスが該データパケットのターニングポイントリストにあれば、該データパケットにマークを付けたことがあると確定し得る。同時に、ノードのターニングポイントリストから、前回該データパケットを転送した時の受信ノードアドレスを得ることもできる。データパケットを該受信ノードアドレスに転送したときにルーティングループが発生したので、該受信ノードのルーティング情報を更新し、例えば、該受信ノードのルーティングコストを増加させるなどのことができる。
本実施例では、上述の2つ目の方法を採用してデータパケットにマークを付ける場合、即ち、データパケットの情報をターニングポイントの履歴情報表に追加してデータパケットにマークを付ける場合、ステップ103において、受信したデータパケットの情報がターニングポイントの履歴情報表に存在する時に、受信したデータパケットが、ローカルノードによりマークが付けられているデータパケットであると確定し、即ち、ローカルノードが該データパケットにマークを付けていると確定することができる。
そのうち、GS(Global Source)は、ソースノードのアドレスであり、GD(Global Destination)は、目標ノードのアドレスであり、LS(Local Source)は、送信ノードのアドレスであり、LD(Local Destination)は、受信ノードのアドレスであり、Costは、期待ルーティングコストであり、Seq(Sequence)は、データパケットの順番号であり、Len (Length)は、データ領域の長さであり、Dataは、データ領域である。
そのうち、GS(Global Source)は、データパケットのソースノードアドレスであり、Seqstart(Start Sequence)は、スタート順番号であり、Seqend(End Sequence)は、エンド順番号であり、LD(Local Destination)は、受信ノードアドレスであり、UT(Update Time)は、該行の更新時間である。表5を例とすると、現在のノードは、ソースノードアドレスがN1であり、順番号がS1とE1との間であるデータパケットをすべてノードD1に転送し、最新の更新時間がT1である。
本実施例では、1つのノードが1つのデータパケットを受信し、ステップ101の判断により、ローカルノードがターニングポイントであるとのことを発見した時に、該ノードは、該データパケットのソースノードのアドレス、順番号、受信ノードアドレスを、その対応する行に保存し、また、該行の更新時間を更新し、これにより、該データパケットにマークを付けることを完成させる(ステップ102)。その後、該ノードは、再び1つのデータパケットを受信し、且つ、該データパケットのソースノードのアドレス、順番号が該ノードのターニングポイント履歴情報表に存在する時に、該データパケットにマークを付けていると確定し、即ち、該データパケットを転送したことがあると確定し、この時に、該ノードは、ルーティングループが発生したと判断し、ルーティングループの解決操作を行っても良い(ステップ103)。
そのうち、表5に示されている履歴情報表の構造は、例だけであり、本発明は、これに限定されない。例えば、他の実施例では、データパケットの順番号区間を保存せず、データパケットの順番号のみを表6(履歴情報表の構造その二)に示すように保存しても良い。ステップ101の判断により、ローカルノードがターニングポイントであると判断した時に、履歴情報表に該データパケットに対応する行がなければ、該データパケットのソースノードアドレス、順番号、受信ノードアドレスを1つの新しい行に保存し、また、該新しい行の更新時間を更新する。履歴情報表に該データパケットに対応する行があれば、該行の更新時間を更新するだけである。また、例えば、表5における受信ノードのアドレスもオプションであり、他の実施例では、該内容を保存せず、該データパケットのソースノードアドレス、順番号/順番号区間、及び更新時間だけを保存してもよく、受信したデータパケットにマークを付けているかどうかを判断する時に、これらの情報のみに基づいて判断を行う。
本実施例では、ルーティングループが発生したと確定した後に、ルーティングループの解決操作、例えば、データパケットを直接捨てる操作を行ってもよく、又は、ルーティング表の情報を更新してデータパケットを再転送する操作を行ってもよく、又は、前記ノードのローカルルーティング表における、前回前記データパケットを転送した時のルーティングノードのコストを最大と設定しても良く、その理由は、該ルーティング上でルーティングループが発生したので、該ルーティングがもう、データパケットの転送に適しないとのことにある。
本実施例におけるルーティングループを検出する方法をより明確にするために、以下、2つの例、即ち、ターニングポイントの情報をデータパケットに入れる方法で、データパケットにマークを付ける例、及び、データパケットの情報をターニングポイントの履歴情報表に入れる方法で、データパケットにマークを付ける例をそれぞれ挙げて、本実施例におけるルーティングループを検出する方法を詳しく説明する。
<例一>
本例では、ターニングポイントのアドレスをデータパケットに入れることで、データパケットにマークを付けることを例として、本発明の実施例におけるルーティングループを検出する方法を説明する。そのうち、データパケットのフレーム構造は、表2を例とし、ターニングポイントリストの構造は、表3を例とする。
本例では、ターニングポイントのアドレスをデータパケットに入れることで、データパケットにマークを付けることを例として、本発明の実施例におけるルーティングループを検出する方法を説明する。そのうち、データパケットのフレーム構造は、表2を例とし、ターニングポイントリストの構造は、表3を例とする。
図2Aは、例一におけるソースノードによって情報を送信する操作のフローチャートである。
図2Aを参照するに、ノードSは、ノードNにデータを送信する必要がある時に、先ず、ルーティング表から、目標ノードアドレスがNであり、且つ、ルーティングコストが最小であるルーティングノードを探し、ノードアドレスは、route_bestと記し、ルーティングコストは、cost_minと記す。その後、データパケットを構築し、GD=N、GS=S、LD=route_best、LS=S、Cost=cost_min、No=0であるようにさせ、最後に、該データパケットを送信する。
図2Bは、例一におけるソースノードによって情報を送信する他の操作のフローチャートである。
図2Bを参照するに、図2Aとの相違点は、この例では、データパケットを送信する前に、ノードSは、先ず、該データパケットにマークを付けることにあり、図2Bの例では、データパケットのフレーム構造を変更することによって、該データパケットにマークを付けるのである。例えば、そのGSを該データパケットに入れ、例えば、そのGSをターニングポイントリストに入れ、また、ターニングポイントの数に1をプラスする。マークを付ける具体的な方法については、上述の方法と同様であるため、ここでは、その詳しい説明を省略する。
図3は、ルーティングノードが該データパケット受信した後に、該データパケットにおけるデータを転送するプロセスのフローチャートである。
図3を参照するに、ノードRは1つの新しいデータパケットを受信した後に、先ず、データパケットの情報を解析し、データパケットの目標アドレスは、GDinと記し、ソースノードアドレスは、GSinと記し、送信ノードアドレスは、LSinと記し、受信ノードアドレスは、LDinと記し、期待ルーティングコストは、Cinと記し、ターニングポイントリストは、TPinである。
ノードRは、受信ノードLDinがRである(即ち、ローカルノードが該データパケットの受信ノードである)データパケットのみを処理し、他のデータパケットを捨てるべきである。ノードRが受信したデータパケットにはGDin=Rであれば、即ち、ノードRが該データパケットの目標ノードであれば、該ノードRは、該データパケットを上位層プロトコルに伝送すべきであり、そうでなければ、該ノードRは、データパケットを転送する必要がある。
転送時、ノードRは、先ず、該データパケットのターニングポイントリストTPinをチェックし、ノードRのアドレスが該データパケットのターニングポイントリストにあれば、データパケットが1つのルーティングループを通過し、ノードRが該データパケットを転送したことがあるとのことを表し、この場合、ノードRは、ルーティングループを検出し、ルーティングループの解決操作、例えば、該データパケットを捨てる操作を行う。ノードRのアドレスがターニングポイントリストになければ、ノードRは、該データパケットのためにルーティングを選択し、例えば、ルーティング表から、目標ノードアドレスがGDinであり、且つ、コストが最小であるノードを見つけ、ノードアドレスは、route_bestと記し、期待ルーティングコストは、cost_minと記す。
その後、ノードRは、データパケットを構築し、データパケットには、目標ノードアドレスがGDinであり、ソースノードアドレスがGSinであり、送信ノードアドレスがRであり、受信ノードアドレスがroute_bestである。
そのうち、cost_minがCin以上の時に、即ち、ノードRが該データパケットのために選択したルーティングのルーティングコストが、該データパケットの期待ルーティングコスト以上である時に、ノードRが該データパケットのターニングポイントであると確定し、ノードRは、その自分のアドレスをターニングポイントリストに追加し、No=No+1、TP_No=Rであるようになる。
最後に、該データパケットを送信する。
本例における方法は、ターニングポイントの情報をデータパケットに入れることにより、データパケットにマークを付ける。これにより、自分のアドレスが、受信したデータパケットにあるかどうかに基づいて、ルーティングループが発生しているかどうかを判断することができ、よって、ルーティングループの問題を迅速に解決し、通信リソースの浪費を避け、ネットワークの正常作動を保証することができる。
<例二>
本例では、データパケットの情報をターニングポイントの履歴情報表に保存する方法で、データパケットにマークを付けることを例として、本発明の実施例における方法について説明する。そのうち、データパケットのフレーム構造は、表4を例とし、ターニングポイントの履歴情報表の構造は、表5を例とする。
本例では、データパケットの情報をターニングポイントの履歴情報表に保存する方法で、データパケットにマークを付けることを例として、本発明の実施例における方法について説明する。そのうち、データパケットのフレーム構造は、表4を例とし、ターニングポイントの履歴情報表の構造は、表5を例とする。
図4Aは、例二におけるソースノードによって情報を送信する操作のフローチャートである。
図4Aを参照するに、ノードSは、ノードNにデータを送信する必要がある時に、先ず、ルーティング表から、目標ノードアドレスがNであり且つルーティングコストが最小であるルーティングノードを見つけ、ノードアドレスは、route_bestと記し、ルーティングコストは、cost_minと記し、その後、データパケットを構築し、GD=N、GS=S、LD=route_best、LS=S、Cost=cost_minであるようにさせ、最後に、該データパケットを送信する。
図4Bは、例二におけるソースノードによって情報を送信する他の操作のフローチャートである。
図4Bを参照するに、図4Aとの相違点は、該例では、データパケットを送信する前に、ノードSは、先ず、該データパケットにマークを付けることにあり、図2Bのマークを付ける方法との相違点は、図4Bの例では、履歴情報表を変更することによって該データパケットにマークを付けることにあり、例えば、そのGS、Seq及びroute_bestを履歴情報表にインサートする。具体的なマークを付ける方法は、上述と同様であるので、ここでは、詳しい説明を省略する。
図5は、ルーティングノードが該データパケットを受信した後に、該データパケットにおけるデータを転送するプロセスのフローチャートである。
図5を参照するに、ノードRは、1つの新しいデータパケットを受信した後に、先ず、データパケットの情報を解析し、データパケットの目標アドレスは、GDinと記し、ソースノードアドレスは、GSinと記し、送信ノードアドレスは、LSinと記し、受信ノードアドレスは、LDinと記し、期待ルーティングコストは、Cinと記し、データパケットの順番号は、Seqinである。
ノードRは、受信ノードLDinがR(即ち、ローカルノードが該データパケットの受信ノードである)であるデータパケットのみを処理し、他のデータパケットを捨てるべきである。ノードRが受信したデータパケットにはGDin=Rであれば、即ち、ノードRが該データパケットの目標ノードであれば、該ノードRは、該データパケットを上位層プロトコルに送信し、そうでなければ、該ノードRは、データパケットを転送する必要がある。
転送時に、ノードRは、先ず、ローカルに保存されているターニングポイント履歴情報表をチェックし、該データパケットが該履歴情報表にあれば、該データパケットが1つのルーティングループを経過したこと、即ち、ノードRが該データパケットを転送したことがあることを表し、この場合、ノードRは、ルーティングループの解決操作を行い、例えば、該ノードRは、ルーティング表を更新し、即ち、前回転送時のルーティングノードのコストを最大と設定する。該データパケットが該履歴情報表になければ、ノードRは、該データパケットのためにルーティングを選択し、例えば、ルーティング表から、目標ノードアドレスがGDinであり且つコストが最小であるノードを見つけ、ノードアドレスは、route_bestと記し、期待ルーティングコストは、cost_minと記す。
その後、ノードRは、データパケットを構築し、データパケットには、目標ノードアドレスがGDinであり、ソースノードアドレスがGSinであり、送信ノードアドレスがRであり、受信ノードアドレスがroute_bestである。
そのうち、cost_minがCin以上である時に、即ち、ノードRが該データパケットのために選択したルーティングのルーティングコストが、該データパケットの期待ルーティングコスト以上である時に、ノードRが該データパケットのターニングポイントであると確定し、ノードRは、(GSin、Seqin、route_best)を履歴情報表に追加する。
最後に、該データパケットを送信する。
図6は、ノードRが履歴情報表に新しい行を追加するプロセスのフローチャートである。
図6を参照するに、ノードRは、データパケットの情報(GSin、Seqin、route_best)を履歴情報表に挿入する時に、先ず、履歴情報表をルックアップする。
履歴情報表にはNi=GSin、Di=route_best、Ei=Seqin+1であれば、Niに対応する行を更新し、エンド順番号に1をプラスし、更新時間を現在の時間に更新する。
履歴情報表には上述の情報がなければ、新しい行を追加し、そのうち、ソースノードアドレスは、GSinであり、スタート順番号は、Seqinであり、エンド順番号は、Seqinであり、受信ノードアドレスは、route_bestであり、更新時間は、現在の時間である。
履歴情報表の某行を、一定時間を超えても更新してない時に、該行を削除する。この時に、1つのタイマーにより該操作を実現することができる。
本例の方法は、データパケットの情報をターニングポイントの履歴情報表に記憶することによって、データパケットにマークを付ける。これによって、受信したデータパケットの情報がターニングポイントの履歴情報表にあるかどうかに基づいて、ルーティングループが発生しているかどうかを判断することができるので、ルーティングループ問題を迅速に解決し、通信リソースの浪費を避け、ネットワークの正常作動を保証することがでkる。
本発明の実施例は、ノードをも次の実施例2に記載のように提供する。該ノードが問題を解決する原理は、実施例1の方法に類似するので、その具体的な実施については、実施例1の方法の実施を参照することができるため、ここでは、内容が同じ部分の記載を省略する。
本実施例は、Ad Hocネットワークにおけるノードを提供する。図7、該ノードの構成図であり、図7を参照するに、該ノードは、次のようなユニットを含む。
解析ユニット71:受信したデータパケットにおける情報を解析し;
判断ユニット72:前記データパケットにおけるターニングポイントリスト又は履歴情報表におけるターニングポイント関連情報に基づいて、前記ノードが前記データパケットにマークを付けているかどうかを判断し;
処理ユニット73:前記ノードが前記データパケットにマークを付けている時に、ルーティングループが発生したと判断する。
判断ユニット72:前記データパケットにおけるターニングポイントリスト又は履歴情報表におけるターニングポイント関連情報に基づいて、前記ノードが前記データパケットにマークを付けているかどうかを判断し;
処理ユニット73:前記ノードが前記データパケットにマークを付けている時に、ルーティングループが発生したと判断する。
1つの例では、該ノードは、さらに、次のようなユニットをも含む。
マーキングユニット74:前記ノードの生成したデータパケットにマークを付け、又は、前記判断ユニット72により、「前記ノードが、受信した前記データパケットにマークを付けておらず、且つ、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが、前記データパケットの期待ルーティングコスト以上である」と判断した時に、受信した前記データパケットにマークを付ける。
そのうち、該マーキングユニット74は、前記ノードの情報を、生成したデータパケット又は受信したデータパケットのターニングポイントリストに追加することで、前記生成したデータパケット又は受信したデータパケットにマークを付けることができ、又は、生成したデータパケット又は受信したデータパケットの情報を、前記履歴情報表のターニングポイント関連情報に追加することで、生成したデータパケット又は受信したデータパケットにマークを付けることもできる。
1つの例では、該ノードは、さらに、次のようなユニットをも含む。
転送ユニット75:マーキングユニット74が前記ノードの生成したデータパケットにマークを付けた後に、前記データパケットを送信し、又は、前記マーキングユニット74が、受信した前記データパケットにマークを付けておらず、且つ、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが、前記データパケットの期待ルーティングコスト以上である時に、マーキングされた後の前記データパケットを転送し;前記マーキングユニット74が、受信した前記データパケットにマークを付けていないが、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが上述データパケットの期待ルーティングコストよりも小さい時に、前記データパケットを転送する。
そのうち、前記マーキングユニット74が、前記ノードのアドレスをデータパケットのターニングポイントリストに追加することで、データパケットにマークを付ける場合、マーキングされた後のデータパケットは、ソースノードアドレス、目標ノードアドレス、送信ノードアドレス、受信ノードアドレス、期待ルーティングコスト、ターニングポイント数、ターニングポイントリスト、データパケット順番号、データパケット長さ、及びデータ領域を含む。
そのうち、前記マーキングユニット74が、データパケットの情報を前記履歴情報表に追加することで、データパケットにマークを付ける場合、マーキングされた後のデータパケットは、ソースノードアドレス、目標ノードアドレス、送信ノードアドレス、受信ノードアドレス、期待ルーティングコスト、データパケット順番号、データパケット長さ、及びデータ領域を含む。
1つの例では、該ノードは、さらに、次のようなユニットをも含む。
データ構築ユニット76:前記転送ユニット75が、マーキングされた後の前記データパケットを転送する前に、又は、前記データパケットを転送する前に、前記データパケットのルーティングコストを前記データパケットに追加するために用いられ、これによって、該データパケットを受信したノードは、該データの解析に基づいて、ルーティングループが発生したかどうかを確定することができる。
1つの例では、前記処理ユニット73は、さらに、ルーティングループの発生を確定した後に、ルーティングループの解決操作を行い、例えば、前記ノードのローカルルーティング表における前回前記データパケットを転送した時のルーティングノードのコストを最大と設定する。
本実施例のノードは、データパケットにマークを付けることで、受信したデータパケットに基づいて、ルーティングループが発生しているかどうかを判断することができる。よって、ルーティングループの問題を迅速に解決し、通信リソースの浪費を避け、ネットワークの正常作動を保証することができる。
本発明の実施例は、さらに、通信ネットワークをも提供し、該通信ネットワークは、1つ又は複数の実施例2に記載のノードを含む。
本発明の実施例は、さらに、コンピュータ可読プログラムをも提供し、そのうち、端末装置において該プログラムを実行する時に、該プログラムは、コンピュータに、前記端末装置において実施例1に記載のルーティングループ検出方法を実行させる。
本発明の実施例は、さらに、コンピュータ可読プログラムを記憶した記憶媒体をも提供し、そのうち、該コンピュータ可読プログラムは、コンピュータに、端末装置において、実施例1に記載のルーティングループ検出方法を実行させる。
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は本発明の技術の範囲に属する。
Claims (10)
- Ad Hocネットワークにおけるノードであって、
受信したデータパケットにおける情報を解析する解析ユニット;
前記データパケットにおけるターニングポイントリスト又は履歴情報表におけるターニングポイント関連情報に基づいて、前記ノードが前記データパケットにマークを付けているかどうかを判断する判断ユニット;及び
前記ノードが前記データパケットにマークを付けているときに、ルーティングループが発生したと確定する処理ユニットを含む、ノード。 - 請求項1に記載のノードであって、さらに、
前記ノードの生成したデータパケットにマークを付ける、又は、前記判断ユニットにより、前記ノードが、受信した前記データパケットにマークを付けておらず、且つ、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが、前記データパケットの期待ルーティングコスト以上であると判断したときに、受信した前記データパケットにマークを付けるマーキングユニットを含む、ノード。 - 請求項2に記載のノードであって、
前記マーキングユニットは、前記ノードの情報を前記データパケットのターニングポイントリストに追加し、又は、前記データパケットの情報を前記履歴情報表のターニングポイント関連情報に追加することで、生成した前記データパケット又は受信した前記データパケットにマークを付ける、ノード。 - 請求項2に記載のノードであって、さらに、
前記ノードが、受信した前記データパケットにマークを付けておらず、且つ、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが前記データパケットの期待ルーティングコスト以上である時に、マーキングされた後の前記データパケットを転送し;前記ノードが、受信した前記データパケットにマークを付けておらず、前記ノードが、受信した前記データパケットのために選択したルーティングのコストが前記データパケットの期待ルーティングコストよりも小さいときに、前記データパケットを転送する転送ユニットを含む、ノード。 - 請求項4に記載のノードであって、さらに、
前記転送ユニットが、マーキングされた後の前記データパケットを転送する前に、又は、前記データパケットを転送する前に、前記データパケットのルーティングコストを前記データパケットに追加するデータ構築ユニットを含む、ノード。 - ルーティングループを検出する方法であって、
受信したデータパケットの期待ルーティングコスト、及び、ローカルノードが前記データパケットのために選択したルーティングのコストに基づいて、前記ローカルノードがターニングポイントであるかどうかを判断し;
前記ローカルノードがターニングポイントであれば、前記データパケットにマークを付け;及び
前記ローカルノードによりマーキングされたデータパケットを受信すれば、ルーティングループが発生していると確定する、ことを含む、方法。 - 請求項6に記載の方法であって、
前記ローカルノードがターニングポイントであるかどうかを判断することは、
前記ローカルノードが前記データパケットのために選択したルーティングのコストが、前記データパケットの期待ルーティングコスト以上であれば、前記ローカルノードがターニングポイントであると確定することを含む、方法。 - 請求項6に記載の方法であって、
前記データパケットにマークを付けることは、
前記ローカルノードの情報を前記データパケットのターニングポイントリストに追加し;又は
前記データパケットの情報をターニングポイント履歴情報表のターニングポイント関連情報に追加することを含む、方法。 - 請求項8に記載の方法であって、
前記ローカルノードの情報が前記データパケットのターニングポイントリストにあれば、前記データパケットが、前記ローカルノードによりマーキングされたデータパケットであると確定し;又は
前記データパケットの情報が前記ローカルノードのターニングポイント履歴情報表のターニングポイント関連情報にあれば、前記データパケットが、前記ローカルノードによりマーキングされたデータパケットであると確定することを含む、方法。 - 請求項6に記載の方法であって、さらに、
前記データパケットのルーティングコストを前記データパケットに追加し、マーキングされた後のデータパケット、又は、マーキングされていないデータパケットを転送することを含む、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310227098.XA CN104243224B (zh) | 2013-06-08 | 2013-06-08 | 路由环路的检测方法和装置 |
CN201310227098.X | 2013-06-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014239437A true JP2014239437A (ja) | 2014-12-18 |
Family
ID=52136226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014115641A Withdrawn JP2014239437A (ja) | 2013-06-08 | 2014-06-04 | ルーティングループの検出方法及び装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2014239437A (ja) |
CN (1) | CN104243224B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016139919A (ja) * | 2015-01-27 | 2016-08-04 | 富士通株式会社 | 無線通信装置、無線通信方法、および無線通信プログラム |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI738652B (zh) * | 2016-05-16 | 2021-09-11 | 智邦科技股份有限公司 | 控制方法及網路架構 |
CN106792857A (zh) * | 2016-12-27 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 环路检测方法、环路检测装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8149716B2 (en) * | 2007-08-20 | 2012-04-03 | Raytheon Bbn Technologies Corp. | Systems and methods for adaptive routing in mobile ad-hoc networks and disruption tolerant networks |
CN101784067B (zh) * | 2010-01-14 | 2012-07-25 | 重庆邮电大学 | 机会网络中基于跨层触发的相遇节点快速感知方法 |
-
2013
- 2013-06-08 CN CN201310227098.XA patent/CN104243224B/zh not_active Expired - Fee Related
-
2014
- 2014-06-04 JP JP2014115641A patent/JP2014239437A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016139919A (ja) * | 2015-01-27 | 2016-08-04 | 富士通株式会社 | 無線通信装置、無線通信方法、および無線通信プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN104243224B (zh) | 2017-11-10 |
CN104243224A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11831526B2 (en) | Service chain fault detection method and apparatus | |
JP6264743B2 (ja) | 重複パケット抑制 | |
JP5084405B2 (ja) | ループフリーアドホックルーティングを行なうシステム | |
US10103981B2 (en) | BIER forwarding validation | |
US8432913B2 (en) | Relay device, network system, route switching method, and recording medium | |
JP5691703B2 (ja) | マルチキャストネットワークシステム | |
US9094324B2 (en) | Diverse path forwarding through trial and error | |
US9264327B2 (en) | Communication network management system, method and program, and management computer | |
KR101463364B1 (ko) | 라우팅 정보의 룩헤드 계산 | |
EP2599270B1 (en) | A network device and method of routing traffic | |
US8477787B2 (en) | Method for routing of messages within a data network | |
JP2014239437A (ja) | ルーティングループの検出方法及び装置 | |
US20050286412A1 (en) | Transient notification system | |
US8514876B2 (en) | Method and apparatus for sequencing operations for an incoming interface check in data center ethernet | |
FI127371B (en) | Passive routing on a mesh network | |
CN108965122B (zh) | 路由选路方法、设备及计算机可读存储介质 | |
CN111464440A (zh) | 一种通信方法及装置 | |
CN111464441A (zh) | 一种通信方法及装置 | |
WO2021254173A1 (zh) | 一种路由处理方法及相关设备 | |
JP2009135772A (ja) | ルータ装置 | |
CN115442288B (zh) | 一种SRv6网络数据包检查方法和装置 | |
JP2004349881A (ja) | フラッディング量削減方法および通信装置 | |
CN108702391B (zh) | 处理源路由内容 | |
CN116260763A (zh) | 路由信息处理方法、ospf设备和ospf网络 | |
NDIKUMANA et al. | An efficient Interest delivery scheme using Named-data Link State Routing Protocol and Interest NACK in NDN |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170309 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20171225 |