JP2005027311A - 仮想プロトコル中間層を提供する方法およびシステム - Google Patents

仮想プロトコル中間層を提供する方法およびシステム Download PDF

Info

Publication number
JP2005027311A
JP2005027311A JP2004194754A JP2004194754A JP2005027311A JP 2005027311 A JP2005027311 A JP 2005027311A JP 2004194754 A JP2004194754 A JP 2004194754A JP 2004194754 A JP2004194754 A JP 2004194754A JP 2005027311 A JP2005027311 A JP 2005027311A
Authority
JP
Japan
Prior art keywords
protocol
layer
address
data
intermediate layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004194754A
Other languages
English (en)
Inventor
Richard Powell Draves Jr
パウエル ドラベス ジュニア リチャード
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005027311A publication Critical patent/JP2005027311A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 通信スタック内の2つのプロトコル層の間に仮想プロトコル「中間層」を提供すること。
【解決手段】 通信タスクを実行する必要があり、しかし互換性の問題のために既存のプロトコル層内の実装が配置を妨げる可能性があるとき、本発明の方法を使用してタスクを扱う中間層を作成する。中間層に固有のアドレス指定方式をセットアップする。この中間層は、プロトコルスタック内の他の層が中間層に通信タスクの実行の詳細を委ねることによって、それまで通り動作できるようにする。一実施形態では、中間層は、ISO/OSIプロトコル層2と層3の間に構築される。ソースルーティングは、中間層アドレスを使用してこの中間層の間で実行される。層2または層3のアドレスの代わりに中間層アドレスを使用することにより、ソースルーティングのこの実施形態によって、複数の層3プロトコルおよび複数の層2ネットワークインターフェイスとの互換性が可能になる。
【選択図】 図11

Description

本発明は、一般にコンピュータネットワーク通信に関し、より詳細には階層型通信プロトコルに関する。
現代のコンピュータネットワークシステムは、コンピュータ間でのメッセージの移動という基本的なタスクに加えて、異なる多くの通信タスクを伴い、非常に複雑になりつつある。このさらなる複雑化に対処するために、すべてではないが多くの通信プロトコルを複数の「層」に分割し、各層は、いくつかの重要な通信タスクを扱い、別のタスクを他の層に委ねる。国際標準化機構の開放型システム間接続(ISO/OSI)プロトコルモデルは、モデルの「スタック」の7つの層の間に通信タスクを割り当てる理論的構成体である。このモデルでは、ネットワーク通信を可能にする全タスクをサブタスクに分割し、これらのサブタスクをそれぞれプロトコルスタックの論理層に割り当てる。スタックは階層型である。各層は、(当然最上層および最下層を除いて)その上下の層との定義済みのインターフェイスを有する。論理的に各層は、別のコンピュータ上のそのピア層と通信し、スタック内のその上の層にサービスを提供し、その下の層によって提供されるサービスを使用する。物理的に、物理層がネットワーク接続の媒体を介してメッセージを実際に送信するまで、メッセージはソースからスタックを下方に流れる。その指定受信側のコンピュータがそのメッセージを受信すると、メッセージはスタックの上方に向かって渡され、各層は、それ宛のデータを取り除き、またそれに応答し、メッセージの残りを上方の次レベルに渡す。例えば、ネットワーク層(層3)は、メッセージがネットワーク間でどのように経路指定されるかを定義する。1つのコンピュータ上のネットワーク層は、データのパケットをそれ自体のコンピュータ上の下方のデータ層(層2)に渡すことによって論理的に別のコンピュータ上のネットワーク層と通信する。データ層は、ネットワーク層のパケットにヘッダーを追加し、したがってデータフレークを作成して、それが物理層(層1)に渡される。物理層は、物理ネットワーク媒体を使用してそのデータフレームを送信する。データフレームが受信側コンピュータによって受信されると、受信側のデータ層は、データフレームを読み取り、それ宛のヘッダー情報をデータフレームから取り除く。次いでデータ層は、ソースコンピュータのデータパケットから成るフレームの残りを取り、それを上方のネットワーク層に送信する。したがって受信側のネットワーク層は、データ層のヘッダーおよびデータパケットを送信するために下層が使用する他の情報をデコードする必要なく、ソース上のネットワーク層によって送信された通りのパケットを読み取る。
この階層型モデルの主な利点は、各プロトコル層が、プロトコルスタック内の他の層によって扱われる無数の詳細にそれ自体が関わることなく、そのピアと通信できることである。つまり各層は、他の層によって行われるタスクとはほぼ関係なくその通信タスクを行う。このことによって、実装の柔軟性が保証される。例えば、1つの層(例えば電気電子技術者協会(IEEE)802イーサネット(登録商標)データ層2)の特定の実装は、その上のプロトコル層の任意の数の実装(例えば複数のISO/OSIネットワーク間通信プロトコル層3)に対応する。したがって、新しい層3プロトコルを導入して、層2の装置のインストール済みのインフラストラクチャとの互換性を保持したままで、ネットワーク通信の技術を前進させることができる。同様に、所与の上位プロトコル層は、複数の個別の下層上で動作する。したがって、1つのコンピュータでは、イーサネット(登録商標)層2インターフェイスおよび無線インターフェイス上で単一の層3が稼働することができる。この柔軟性によって、階層型プロトコルは、20年以上の間生き延び、成長することができた。
この柔軟性によって、各層に複数の実施形態がもたらされ、こうした実施形態は、特定の状況に合うように最適化され、すべて同じ下層上で稼働する。しかし、階層型プロトコルの層間の互換性は保証されているが、1つの層内に含まれる複数の実施形態の間の互換性は保証されていない。例えば、ISO/OSIモデルでは、先験的に、新しい層3プロトコル(IPv6など)を前のバージョン(IPv4など)と同時に使用できることは保証されていない。この問題は、ISO/OSIモデルの事項に基づいておらず、一般に階層型プロトコルに固有のものである。
層間のこの互換性問題の一例として、無線ネットワーク内でデータを経路指定する通信タスクを考える(この例については、下記の発明を実施するための最良の形態のセクションでより詳しく示し、説明する)。従来、有線のネットワークでは、装置は、ネットワーク内の他の装置(「ローカル装置」)と直接通信したり、ローカルネットワークの境界を超えて装置(「リモート装置」)にデータを送信するルーターと直接通信したりすることができる。しかし無線ネットワークでは、装置は、装置間のノイズ、干渉、距離などのために他のすべてのローカル装置と直接通信することができないことがある。同様に、装置は、無線ネットワークを有線のインターフェイスに接続するルーターと直接通信できないことがある。したがって、無線装置は、ローカル装置およびリモート装置の両方にメッセージを送信することが困難となり得る。一部の無線ネットワークでは、これらの問題に対処するためにプロトコルが実装されている。こうしたネットワークでは、無線装置は、他の装置宛のインターセプトされたメッセージを転送することによって互いに助け合う。これによって、ソース装置によって送信されたメッセージは、指定受信者に到達する前にいくつかの中間装置を「ホップ」または通過することができる。
この転送モデルは、やみくもに実装すると、メッセージが指定受信者に到達する前に「ループする」ので、非効率となり得る。混乱を避ける1組の手法のうち、「ソースルーティングプロトコル」の方法が適用される。一例は後述するが、現時点では、場合によっていくつかの中間装置を経由することもある指定受信者への経路をソースが見つけ出すと言うだけにとどめておく。ソース経路に沿った装置のみがインターセプトされたメッセージを転送し、したがって非効率な過度の中継トラフィックを低減しながらの送達が可能となる。この問題についてのソースルーティング以外の手法も開発されている。
ソースルーティングは一般に、宣伝通りに動作するが、階層型プロトコルの層間の互換性問題をよく例証している。階層型プロトコルスタック内でソースルーティングを配置する場所を決定するときに、こうした問題が生じる。ソースルーティングプロトコルを層3プロトコルの一部とし、したがって層3アドレスを使用する場合、階層型プロトコルモデルによって、ソースルーティングプロトコルは複数の層2と動作することができる。これは、ネットワーク内の装置が異なる無線プロトコルを使用しているとき、またはネットワークが有線および無線の装置を含んでいるとき(または単一の装置が有線および無線のネットワークインターフェイスを有しているとき)はかなり有利である。しかし、上述したように、異なる層3プロトコルは、必ずしも相互に連携して働くとは限らない。したがってIPv4の層3プロトコル用に開発された層3ソースルーティングは、IPv6やIPXなど他の層3プロトコルを使用する装置とは連携して働かないことになる。この問題は、層2にソースルーティングプロトコルを配置し、層2のアドレスを使用することによって進展はするが、解決はされない。層2のソース経路が複数のタイプの層2のネットワークインターフェイスにまたがるようにするには、ソースルーティングプロトコルを層2の技術ごとに再実装する必要があることになる。イーサネット(登録商標)およびBluetooth(無線ネットワーク標準)などの異なる層2のネットワークインターフェイスでは、互換性のない異なる形式を各アドレスに使用することができるため、さらに問題が生じる。
Internet Engineering Task Force Internet Draft "The Dynamic Source Routing Protocol for Mobile and Ad Hoc Networks (DSR)"
新しい通信タスクを開発し、それに対処するために、階層型プロトコルシステムは、各層での新しいプロトコルに対応できなければならない。階層型モデルは、新しいプロトコルとプロトコルスタック内のその上下の他のプロトコルとの間に確実に互換性を提供するのを助ける。しかし、ソースルーティングの例が示すように、所与の層内ではプロトコル間の互換性がないことによって、階層型プロトコルの完全な保証が妨げられている。
上記を考慮して、本発明は、通信スタック内の2つのプロトコル層の間に仮想プロトコル「中間層」を提供する。通信タスクを実行する必要があり、しかし互換性の問題のために既存のプロトコル層内の実装が配置を妨げる可能性があるとき、本発明の方法を使用してタスクを扱う中間層を作成する。中間層に固有のアドレス指定方式をセットアップする。中間層は、プロトコルスタック内の他の層が中間層に通信タスクの実行の詳細を委ねることによって、それまで通り動作できるようにする。
プロトコル中間層の動作の詳細は、それが実行するよう求められるタスクの詳細に応じて異なる。必要な場合、1つの通信装置で同時に複数の中間層をサポートすることはできるが、パフォーマンスの問題によって中間層の増設が妨げられる可能性がある。
必須のネットワーキング環境において中間層のアドレスを割り当て、見つけ出すように、他のプロトコル層ですでに使用されている技術を変更することができる。一部の実施形態では、各ネットワーク装置上の各ネットワークインターフェイスに、グローバルに一意のそれ自体の中間層アドレスが割り当てられる。各ネットワーク装置に単一の中間層アドレスが割り当てられる実施形態では、ネットワーク装置上の複数のネットワークインターフェイス間で違いを識別できるように、インターフェイス識別子を中間層アドレスに追加することができる。
一部の実施形態では、プロトコル中間層は、その上下のプロトコル層に変更を加えることなく導入される。例えば中間層は、その下の層(例えば層2)によって提示された同じインターフェイスをその上の層(例えば層3)に提示する。したがって、既存の上位のプロトコル層は、ちょうど下位のプロトコル層と対話していた場合と同様に中間層と対話する。他の実施形態では、中間層に隣接するプロトコル層へのほんのわずかな変更が必要となる。例えば、受信したメッセージ内の新しいヘッダーフラグは、下層自体がメッセージを処理したり上層に渡したりする代わりに、メッセージを中間層に渡す既存の技術を使用して、下層によって認識することができる。
ソースルーティングは、プロトコル中間層の有用性を実証するのに役立つ例である。一実施形態では、中間層は、ISO/OSIプロトコル層2と層3の間に構築される。ソースルーティングは、中間層アドレスを使用してこの中間層内で実行される。層2または層3のアドレスの代わりに中間層アドレスを使用することにより、ソースルーティングのこの実施形態によって、複数の層3プロトコルおよび複数の層2ネットワークインターフェイスとの互換性が可能になる。
添付の特許請求の範囲には本発明の特徴を詳しく記載しているが、以下の詳細な説明を添付の図面と併せ読めば、本発明、およびその目的および利点を最もよく理解できよう。
図面を参照すると、図中同様の参照番号は同様の要素を指しており、本発明を、適したコンピューティング環境で実施されるものとして示している。以下の説明は、本発明の実施形態に基づいており、本明細書に明示的に記載されていない代替実施形態に関して本発明を限定するものとみなされないものとする。
以下の説明では、特に指定のない限り、1つまたは複数のコンピューティング装置によって実行される動作および操作の象徴を参照して本発明を説明する。したがって、コンピュータで実行されると言うこともあるこうした動作および操作は、コンピューティング装置の処理単位による構造化された形式のデータを表す電気信号の操作を含むことは理解されよう。この操作は、コンピューティング装置のメモリシステム内の複数の場所でデータを変換または維持し、当分野の技術者によってよく理解されているようなやり方で装置の操作を再構成するか、そうでない場合は変更する。データが維持されるデータ構造は、データの形式によって定義される特定の性質を有するメモリの物理位置である。しかし、本発明を上記の文脈で説明しているが、以下に記載する様々な動作および操作をハードウェアでも実施できることを当分野の技術者であれば理解できるように、これに限定されるものではない。
本発明は、通信スタック内の2つのプロトコル層の間に仮想プロトコル「中間層」を提供する。通信タスクを実行する必要があり、しかし互換性の問題のために既存のプロトコル層内の実装が配置を妨げる可能性があるとき、それ自体のアドレス指定方式を備える、タスクを扱う中間層を作成する。
本発明の方法は、幅広く適用可能であり、したがって一般の概念については多少抽象的である。以下の説明では、その一般的な概念を説明するために、特定の実装形態に焦点を置く。ソースルーティングは、プロトコル中間層の有用性を実証するのに役立つ例である。以下で説明する一実施形態では、中間層は、ISO/OSIプロトコル層2と層3の間に構築される。ソースルーティングは、中間層アドレスを使用してこの中間層内で実行される。層2または層3のアドレスを使用する代わりに中間層アドレスを使用することにより、ソースルーティングのこの実施形態によって、複数の層3プロトコルおよび複数の層2ネットワークインターフェイスとの互換性が可能になる。本発明の有用性は、ソースルーティングに限定されるものではないが、他の通信タスクを実行するためにプロトコル中間層を開発することもできる。
ソースルーティングは、従来のルーティング方法が適用されない状況のために開発された1組の技術である。まず、従来のルーティングがどのように動作するかについて考察する。従来の有線ネットワーク上の装置にとって、他のすべての装置は、2つの一般的なクラスに分割される。「ローカル」装置は、同じローカルネットワークとともに配置されており、直接アクセスすることができる。「リモート」装置は、ローカルネットワークの境界を超えて配置されており、ルーターを介してアクセスされる。ルーターは、ローカル装置である。従来のルーティング方法は、ローカル装置およびリモート装置のこの二分法に基づいている。ローカル装置に送信するとき、ソース装置は、単にメッセージを指定受信者にアドレス指定し、メッセージをローカルネットワーク上に送出する。指定受信者を含むすべてのローカル装置は、メッセージを受信する(このあまりに単純な概念は、必ずしも実際のネットワークに当てはまるとは限らない。例えば、イーサネット(登録商標)スイッチは、アドレス指定された装置を含んでいないローカルリンクには、イーサネット(登録商標)フレームを伝えない。しかし、この単純な概念は、例示の目的では有効である。イーサネット(登録商標)スイッチがローカル装置の位置を見つけ出し、それに応じて転送を限定するやり方は、非無線ネットワークにおける「アドホック」ルーティングの優れた例である)。次いで指定受信者を除くすべてのローカル装置は、メッセージを破棄する。指定受信者は、メッセージを読み取り、それ相応に応答する。
指定受信者がソース装置から離れているとき、従来のルーティングは、それだけではないが、「最短パス」アルゴリズムを適用することが多い。ソース装置(または多くの場合ソース装置のネットワーク上のルーター)は、指定受信者までの最短パスを考慮し、ソースのメッセージをその最短パス上の次の装置に送信する。次の装置は、メッセージを受信すると、受信者のアドレスを検査し、この装置が指定受信者である場合はメッセージを受け取り、あるいは再度最短パスアルゴリズムを適用して、メッセージを前方に送信する。最終的にメッセージは指定受信者に到達する。メッセージをルーティングする各装置、ソースおよび中間装置のすべては、メッセージを次に送信するべき場所に関してそれ自体の選択を行うことに留意されたい。ルーターは、終端間ネットワーク技術情報を定期的に共有して、そのそれぞれが最短パスを正確に選択できるようにする。
しかし、従来のルーティング技術は、短距離無線プロトコルを使用して通信する装置をサポートするネットワークにおいては正常に働かない。この第1の理由は、非常に速いペースで無線ネットワークが変化するためである。無線装置は、従来技術によるネットワーク位相情報の検出ではついて行けないほど、非常に速くネットワーキング環境に出入りする。第2に、他の装置のうちどれが現在ネットワーク内にあるかについて、無線装置間で異なることがある。これらの問題は、比較的不変であり、普遍的に認められているといった2つの意味で認識できる位相情報の従来のモデルに違反する。
図1のネットワーク通信環境について考察する。「アドホック」無線ネットワーク100において、装置102、104、106はすべて、(細長い「Z」で暗に示すように)互いに無線で通信することができる(この文脈では「アドホック」とは、ネットワーク100の中央構成管理がなく、したがって従来のルーティングアルゴリズムが大いに当てにしているアドレスおよび位相情報のための中央リポジトリがないことを意味する)。装置106は、別の装置110への無線ローカルエリアネットワーク(LAN)接続108も含む。装置110は、例えば、アドホック無線ネットワーク100をインターネット112に接続するルーターである。しかし、この装置110には無線受信機がないため、無線専用装置102および104は、直接装置110と通信することができず、何らかの援助無しには、ルーター110を介してインターネット112に接続することもできない。
これらの問題に取り組むために、無線装置は、インターセプトされた他の装置宛のメッセージを転送することによって互いに助けあう。これによって、ソース装置によって送信されたメッセージは、指定受信者に到着する前にいくつかの中間装置を「ホップ」または通過する。ソースルーティングプロトコルは、メッセージが指定受信者に向かう途中で複数回同じ中間装置を通過する送信「ループ」を防ぐ1組の手法を形成する。簡潔に言えば、ソース装置は、経路を見つけ出し、場合によっていくつかの中間装置を経由して指定受信者に到達する。ソース経路に沿った装置のみがインターセプトされたメッセージを転送し、したがって非効率な過度の中継トラフィックを低減しながらの送達が可能となる。明瞭にするために、この解説では、ソースルーティングを使用して本発明の方法を示すが、これらの方法は、開発されているこの問題についてのソースルーティング以外の手法にも同じく適用可能である。
図2aから図2cのデータフロー図は、簡単なソースルーティングのシナリオを示す。このシナリオをまずかなり高レベルで示す。次いで図6の解説の後、再度このシナリオを使用してさらにアドレス指定の詳細に注目する。
装置102は、装置110にメッセージを送信することを望んでいる。メッセージの性質は、この解説では重要ではない。メッセージは、装置110上で動作するアプリケーション宛のもの、またはインターネット112上の別の装置に経路指定するために装置110に送信するものでもよい。いかなる場合でも、装置102は、装置110と直接には通信できないため、図2aのステップ200で、装置110へのソース経路を見つけ出す。
見つけ出されたソース経路は、装置106を通過する。装置102は、装置106と直接通信することができ、また装置106は、装置110と直接通信することができる。多くのプロトコルは、このソース経路を見つけ出すために存在し、その複雑さはこの解説の範囲を超えている。ソースルーティングのこれ以上の背景、および特定のソースルーティングプロトコルの詳細については、参照により全部本明細書に組み込まれている非特許文献1を考察されたい。
図3は、ソース経路300を示す。ソール経路300は、ソース装置102(フィールド302)で始まり、次いで装置106(フィールド304)に進む。装置106は、1つはアドホックネットワーク100における無線装置への、もう1つはLAN108への2つのネットワークインターフェイスを有しているので、フィールド304では、これら2つのインターフェイスのどちらがソース経路300上の前の装置からメッセージを受信するかも指定する。ここでは、装置106の無線インターフェイスは、無線専用装置102からメッセージを受信することになっている。ソース経路300における次のエントリまたは「ホップ」は、メッセージがどのように装置106(フィールド306)から出力されるかを指定する。メッセージは、LANインターフェイスを介して出力されることになっている。次ホップは、最後のもの、つまり指定受信者、フィールド308で指定されている装置110である。ソース経路の形式および内容は、様々なソースルーティングプロトコル間で異なり得るため、図3は、単にソース経路の内容を例として示すためのものである。例えば、ソース経路の中には、中間フィールド304および306のみを含み、それぞれソースフィールド302および宛先フィールド308をそれぞれソース経路自体の一部とはみなさないものもある。当然、実際のソース経路は、図3の簡単な例よりかなり複雑であり得る。
装置102は、装置110宛のメッセージを作成し、その中にソース経路300を含める。メッセージは、ソース経路上の次ホップ、この場合では装置106にアドレス指定される。図2aのステップ202では、メッセージは、無線通信ネットワーク100に送信される。他の無線装置104および106は、ステップ204でメッセージを受信し、次いでステップ206でメッセージの宛先アドレスを検査する。この次ホップ先は一般に、ソース経路300における最終的な受信側アドレスではないことに注意されたい。宛先アドレスが装置104のものに一致しないため、その装置は、ステップ208でメッセージを破棄する。
一方、宛先アドレスが装置106のものと一致し、その結果、装置は、続いてステップ210でメッセージ、特にソース経路300を検査する。ソース経路300を検査することによって、装置106は、このメッセージの指定受信者ではないことがわかる。そのため、装置106は、図2bのステップ212で、ソース経路300において次ホップ、装置110を見つけ出し、メッセージを転送する。
装置110は、ステップ214でメッセージを受信し、ステップ216で宛先アドレスを検査する。そのアドレスは装置110のものに一致しているため、装置110は、続いてステップ218でメッセージ内のソース経路300を検査する。図2cのステップ220で、装置110は、メッセージの指定受信者であることを認識する。装置110は、必要に応じてメッセージの内容を処理する。
図2aから図2cの上記の解説では、階層型プロトコル全般についても、どの層がどの通信タスクを行うかの詳細についても言及していない。この解説が階層型プロトコル、特に以下の階層型プロトコルにおけるアドレス指定の解説のきわめて一般的な基礎を提供することができるように、それについての言及は、意図的に省略している。図6に伴う解説の後、このシナリオを再検査して、以下で階層型アドレス指定について考察する。
図1のネットワーク装置102、104、106、および110は、任意のアーキテクチャのものでよい。図4は、一般に本発明をサポートするコンピュータシステムの例を示すブロック図である。図4のコンピュータシステムは、適した環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、装置102を、図4の例に示した構成要素のいずれか1つ、またはその組合せに関連する依存性または必要条件を有しているものと解釈すべきではない。本発明は、他の多くの汎用または専用コンピューティング環境または構成で動作可能である。本発明との使用に適したよく知られているコンピューティングシステム、環境、および構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバー、ハンドヘルドまたはラップトップ装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。その最も基本的な構成では、装置102は一般に、少なくとも1つの処理ユニット400およびメモリ402を含む。メモリ402は、揮発性(RAMなど)、不揮発性(ROMやフラッシュメモリなど)、またはその2つの何らかの組合せとすることができる。この最も基本的な構成を、図4の破線404内に示している。装置102は、追加の特徴および機能を有し得る。例えば装置102は、それだけには限定されないが、磁気および光ディスクおよびテープを含む別の記憶装置(リムーバブルおよび非リムーバブル)を含むことができる。こうした別の記憶装置は、図4に、リムーバブル記憶装置406および非リムーバブル記憶装置408で示している。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体がある。メモリ402、リムーバブル記憶装置406、および非リムーバブル記憶装置408は、すべてコンピュータ記憶装置媒体の例である。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、他の磁気記憶装置、所望の情報の格納に使用でき、装置102からアクセスできる他の任意の媒体などがある。こうした任意のコンピュータ記憶媒体を装置102の一部とすることができる。装置102は、装置が他の装置と通信できるようにする通信チャネル410を含むこともできる。通信チャネル410は、通信媒体の例である。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の移送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号内の情報を符号化するように設定または変更された1つまたは複数のその特徴を有する信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、直接配線された接続などの有線媒体、および音響、RF、赤外線、その他の無線媒体などの無線媒体がある。「コンピュータ可読媒体」という用語は、本明細書で使用する場合、記憶媒体および通信媒体の両方を含む。装置102は、キーボード、マウス、ペン、音声入力装置、タブレット、タッチ入力装置などの入力装置412を含むこともできる。ディスプレイ(タッチ入力装置と一体化してもよい)、スピーカー、プリンタなどの他の装置414を含めることもできる。こうした装置はすべて、当分野ではよく知られており、ここで詳細に説明する必要はない。
ネットワーク装置102、104、106、および110は、いくつかの通信プロトコルのうちのいずれかを使用することができる。上記の背景技術のセクションで説明したように、全部ではないが今日の通信プロトコルの多くは、図5aに示すISO/OSIプロトコルモデルに従う。このモデルでは、ネットワーク通信を可能にする全タスクをサブタスクに分割し、これらのサブタスクをそれぞれプロトコルスタックの論理層に割り当てる。論理的に各層は、別の装置上のそのピア層と通信し、スタック内のその上の層にサービスを提供し、その下の層によって提供されるサービスを使用する。物理的に、ここではLAN108として示したネットワーク接続の媒体を介して物理層500がメッセージを実際に送信するまで、メッセージは発信者からスタックを下方に流れる。その指定受信者がそのメッセージを受信すると、メッセージは、スタックを上方に向かって渡され、各層は、それ宛のデータを取り除き、またそれに応答し、メッセージの残りを上方の次レベルに渡す。この階層型モデルの主な利点は、各プロトコル層が、プロトコルスタック内の他の層によって扱われる無数の詳細にそれ自体が関わることなく、そのピアと通信できることである。つまり各層は、他の層によって行われるタスクとはほぼ関係なくその通信タスクを行う。
ISO/OSIプロトコルスタックは、概念上のモデルにすぎず、プロトコルはそれに正確には従わないことに注意されたい。しかし、今日普及している多くのプロトコルは、大なり小なりこのモデルに従っており、このモデルによって、それが定義する通信タスクの解説がより理解しやすくなる。
ISO/OSIモデルは、ISO/OSI階層型通信プロトコルをサポートするのに必要なタスクを装置102がどのように内的に実装すべきかは指定しない。図5bは、普及している伝送制御プロトコル/インターネットプロトコル(TCP/IP)スタックをサポートするタスクの1つの可能な実装を示している。必ずしもすべての実施形態においてではないが、この実施形態では、通信は、ISO/OSIモデルにおける階層型スタックに酷似したコンピューティング構成要素のスタックを上下に流れる。ネットワーク通信サービスは、ソケット層510によってアプリケーションプログラム506に提示される。ソケット層510は、ISO/OSI通信プロトコルの詳細からアプリケーションプログラム506を分離する。この分離は、装置106などの装置が複数のネットワークに接続されており、複数の通信プロトコルを稼動させているときに、とくに価値がある。アプリケーションプログラム506がソケット層510においてルーチンを呼び出し、別の装置上のアプリケーションプログラム506にメッセージを送信すると、要求はプロトコル構成要素のスタックを下り、各構成要素はISO/OSIモデルに従って他の装置上のそのピアと通信する。しかし、この実施形態でさえも、構成要素の中には、ISO/OSI層に直接マップしないものもある。ここでは特定の層5(セッション層)が欠如しているが、一部のプロトコルには、ISO/OSI層のすべてを実装していないものもある。また、一実装形態では、いくつかのISO/OSI層の機能を1つの構成要素にまとめることもできる。図5bでは、層3(図5aのネットワーク層504)および層4(トランスポート層508)は、複合TCP/IPドライバ516によってサポートされている。TCP/IPなどの複雑なプロトコルは、データの簡単なトランスポートを超えたいくつかのタスクを必要とする。図5bでは、これらの機能を、認証サービスを提供する802.1X構成要素512、および非静的層3アドレスを提供する動的ホスト構成プロトコル514によって表している。
図6は、ISO/OSIプロトコルの通信タスクをサポートする1つの可能なソフトウェア実装を示している。このシステムの例では、アプリケーションプログラム506は、装置106上で稼動する。アプリケーションプログラムは、階層型サーバープロバイダ600を介して、装置106によって提供される標準通信ハードウェアおよびソフトウェアと通信する。この場合、ネットワークプロトコルスタック602は、その内部バッファとともに通信タスクを扱う。入力/出力マネージャ604は、通信チャネルをセットアップし、取り壊す。ネットワークプロトコルスタック602は、ハードウェア抽象層606と通信し、ハードウェア抽象層は、LAN通信リンク108を稼動させるネットワークインターフェイス608と通信する。別のネットワークインターフェイス(図示せず)は、装置106の無線リンクを稼動させる。
図2aから2cのシナリオをさらに掘り下げ、図5aのISO/OSI階層型プロトコルモデルを指標として使用すると、各ホップ(ステップ202、206、212、および216)で使用する宛先アドレスは、層2アドレスである(IEEE802ネットワークでは、これらはメディアアクセス制御アドレスと呼ばれる)。これらのアドレスは、ローカルネットワーク内では一意であるが、グローバルに一意でなくてもよい。異なるタイプのネットワーク(有線LAN108対無線ネットワーク100)は、互換性のない異なるアドレス形式を使用することができる。こうした層2アドレスに加えて、層3またはより上位の任意の層によって作成されたメッセージは、ソースおよび指定受信者の層3アドレスを含む。
図3は、ソース経路300の例ではプロトコル中間層アドレスを使用していることを示している。従来技術のソースルーティングプロトコルは、層2アドレスまたは層3アドレスのいずれかを使用する。いかなる場合でも、ソース経路は、そのアドレスを提供するプロトコル層にとって理解できるだけである。したがってソース経路が層2アドレスを使用する場合、ソース経路は、層2プロトコルドライバ518によって検査されることになる(ステップ210および218)。あるいは、これらのステップで、層3アドレスベースのソース経路が層3プロトコルドライバ516によって検査されることになる。背景技術のセクションで上述したように、ソースルーティングプロトコルをISO/OSIプロトコルスタック内のどこに配置するかの選択は重要である。というのは、階層型プロトコルの中間層の互換性問題のため、各選択には長所および短所があるからである。ソースルーティングプロトコルを受信しないいずれの層も、明らかにソースルーティングするように動作することができ、したがってそれ自体の互換性の基準を保持することはできるが、ソースルーティングプロトコルが稼動している層では、それ自体の層における他の実装との互換性がなくなる。プロトコル中間層の使用は、(不適切な単語の選択ではあるが)ソースルーティングを層2にも層3にも配置しないことによって層間の非互換性問題に対処する。
以下の解説では、ISO/OSIプロトコルスタックの層2と層3の間にあるプロトコル中間層におけるソースルーティングの特定の実装形態について詳述する。この例では、図1の環境および図2aから図2cの通信のシナリオを再度使用する。
図7は、装置102の層3プロトコルドライバ516がどのようにシナリオを開始するかを示している。図7の方法は、図2aのステップ200の前に行われる。ステップ700で、ソース(装置102)および指定受信者(装置110)の層3アドレスを含む層3データパケットが作成される。下位のプロトコル層は、層3アドレスを使用してデータパケットを経路指定することができないため、ステップ702で、これらのアドレスは、プロトコル中間層によって指定されたアドレスに変換される。この変換プロセスは、図8に示すようなアドレス関連表への簡単な照会でよい。アドレス表800で、装置の層3(IP)アドレスをキーとして使用して、その同じ装置の中間層アドレスを含むレコードを探す。層3プロトコルドライバ516は、中間層アドレスの形式を理解する必要はなく、表800から値を引き出すだけでよいことに注意されたい。ステップ704で、層3プロトコルドライバ516は、層3データパケットを、中間層のソースアドレスおよび宛先アドレスとともにプロトコル中間層に送達する。
一部の実装形態では、層3プロトコルドライバ516は、プロトコル中間層に対応するのにまったく変更なく図7の手順に従うことができることに注意されたい。層3プロトコルドライバ516は、ステップ702で、層2アドレスを要求していることを確信できることになる。この要求はインターセプトされ、代わりに中間層アドレスが戻される。同様に、層3プロトコルドライバ516は、ステップ704で、層3データパケットをプロトコル中間層の代わりに層2プロトコルドライバ518に送達していることを確信できることになる。層3および層2のプロトコルの結合によって、プロトコル中間層が層3プロトコルドライバ516にとってまさに別の層2プロトコルドライバ518のように見えるようになる。これは、その上のプロトコルドライバに少しの変更も加えることなくプロトコル中間層を導入することができる一例である。この可能性は、決定的な互換性および広範な実装の利点を有している。
プロトコル中間層は、図9aのステップ900で層3からデータパケットを受信する。受信した中間層ソースアドレスは層2プロトコルドライバ518からは理解できないため、中間層は、ステップ902で、このアドレスを層2ソースアドレスに変換する(層2プロトコルドライバ518は、それ自体の層2アドレスを知っている可能性があるため、実際にはこの変換ステップは任意選択である)。変換は、図8のアドレス関連表800を使用することができる。
ステップ904で、プロトコル中間層は、まず、このデータパケットにソースルーティングの方法を適用するかどうかを決定する。例えば、層3データパケットが装置106で生成され、装置110に宛てられる場合、LAN108は、パケットを直接運び、ソースルーティングは必要ない。一方、図2aから図2cのシナリオでは、ソース装置102から受信側装置110にデータパケットをトランスポートするのにソースルーティングが必要である。これを認識して、プロトコル中間層は、ステップ904(図2aのステップ200に対応)で適切なソース経路を探し出す。このステップの詳細は、使用されるソースルーティングプロトコルによって決まり、非常に複雑となり得る。装置102は、適切なソース経路を表にすでに格納しておくことができ、したがってステップ904で経路を取り出すだけでよい。そうでない場合、装置102は、その周りの装置に問い合わせることによって経路を見つけ出すことができる。この例では、探し出したソース経路は、装置106を通過し、図3に示すような中間層アドレスを使用する。
ステップ906で、プロトコル中間層は、それ自体のヘッダーを層3データパケットに追加して中間層データフレームを作成する。中間層ヘッダーの形式の例については、図11を参照して後述する。
プロトコル中間層は、ステップ908で、次ホップの中間層アドレスを層2のアドレスに変換する。ソースルーティングが適切ではない(例えば装置106が直接装置110に発送している)場合、次ホップは受信側装置である。ソース経路を含むメッセージの場合、アドレスは、その経路内の次の装置の層2アドレスである。このシナリオでは、これは、装置106の層2アドレスである。
ステップ910で、プロトコル中間層は、メッセージの送信に使用する特定の層2プロトコルドライバ518を選択するために、次ホップの中間層アドレスのインターフェイスインデックスを使用する。このステップは、送信側装置が層2のインターフェイスを複数有するときに適用される。このシナリオでは、層2のインターフェイスが1つしかないため、このステップは装置102には適用されない。
図9bのステップ912で、層3データパケット、それに結び付けられた中間層ヘッダー、ソース層2アドレス、および次ホップの層2アドレスが選択された層2プロトコルドライバ518に送達される。
ステップ914および916は、任意選択であるが、一部のソースルーティングプロトコルによって指定される。これらのプロトコルでは、ステップ912で層2のプロトコルドライバ518に送達されるデータパケットにタイマが関連付けられる。送達の成功を示す表示が受信されない(が、指定受信者またはソース経路上の中間層装置から来ることになっている)場合、送信側装置は、その選択されたソース経路に関してどこか異常があることがわかる。これは、選択されたソース経路上の装置が、範囲外に移動し得る、または完全になくなり得るアドホックネットワークではよくあることである。タイマが期限切れになると、ソース装置は、ソースルーティングプロトコルによって指定された方法を適用してソース経路を修正する、または取り替える。次いでメッセージは、新しいソース経路を使用して転送される。
層2のプロトコルドライバ518は、プロトコル中間層からメッセージを受信すると、代わりに層3プロトコルドライバ516からメッセージを受信したかのように続行する。装置106にアドレス指定され、層3データパケットおよび中間層ヘッダーを含む層2のデータフレームは、図2aのステップ202で、装置102の無線送信機によって送信される。
図2aから図2cのシナリオでは、層2のデータフレームがネットワーク接続を介して受信される場所が2つある。ステップ204の装置104および106、およびステップ214の装置110である。これらのステップで、受信側の層2のプロトコルドライバ518は、図10の手順を使用することができる。層2のデータフレームは、ステップ1000で受信され、ステップ1002の適切な層2の通常のやり方に従って処理される。こうしたやり方は、フレーム内の層2の宛先アドレスを現在の装置のアドレスと比較することを含む(この比較は、ステップ206およびステップ216で行われる)。この比較を行った後、装置104は、違いに気づき、データフレームがそれ宛ではないため、ステップ208でデータフレームを破棄する。この破棄は、層2の通常のやり方に基づいて行われるため、メッセージに含まれるソース経路には依存しないことに留意されたい。
装置104の場合とは異なり、装置106でのステップ206、および装置110でのステップ216における層2の宛先アドレスの比較によって、これらの装置が受信したデータフレームの指定の宛先であることが明らかになる。したがってこれらの装置は、続いて図10のステップ1004でデータフレームの内容を検査する。この検査によって、データフレームが図11の1104などの中間層ヘッダーを含んでいることが明らかになる。層2のプロトコルは、同時に存在する複数の層3プロトコルをサポートするよう設計されているため、これらのプロトコルは、データフレームをどの層3プロトコルドライバ516に宛てるべきかを層2のプロトコルドライバ518に伝えるフラグの値を指定する。この実施形態では、そのフラグはフィールド1106である。フラグには、中間層に関連する値が与えられる。したがって、層2のプロトコルドライバ518は、フラグ1106を読み取り、それがちょうどフラグの他の値に応答するようにその値に応答する。データフレーム1100は、プロトコル中間層がまるで別の層3プロトコルドライバ516であるかのようにプロトコル中間層に渡される。データフレームが中間層ヘッダーなしに受信されると、層2のプロトコルドライバ518は、ステップ1008で層3パケットの有無についてフレームを検査し、層3パケットが見つかった場合は、それをステップ1010で(フラグの値で決定したように)適切な層3プロトコルドライバ516に送達する。
プロトコル中間層の導入では、現時点でステップ1004で中間層ヘッダーの存在を認識し、それを必要に応じて送達しなければならないという点でのみ層2のプロトコルドライバ518を変更するだけであることに注意されたい。層2プロトコルはすでに多くのタイプの層3フラグ値に精通しており、その結果この変更は単に、別の普遍的に認識された(フィールド1106内の)フラグの値の、層2のプロトコルドライバ518によってすでに認識されているものへの追加である。また、中間層の存在によって、すべてのメッセージがそこを通過する必要はないが、必要に応じてメッセージを(ステップ1008および1010のように)引き続き層2から層3に直接渡すことができることにも注意されたい。
プロトコル中間層は、それぞれ装置106でのステップ210および装置110での218において、層2のプロトコルドライバ518からデータフレーム1100を受信する。受信側中間層は、図12aおよび12bの方法を適用する。ステップ1200で、その中間層ヘッダー1104を含むデータフレーム1100を受信する。ステップ1202で、装置は、そのソースルーティングプロトコルによって定義された適切な方法を適用する。次いでステップ1204で、受信側装置は、中間層ヘッダー1104内の宛先中間層アドレス308を検査する。上記のステップ206および216で検査した層2の宛先アドレスとは異なり、これは、メッセージの最終的な受信者のアドレスであることに注意されたい。宛先中間層アドレス308は、ステップ1206で現在の装置に割り当てられている中間層アドレスと比較される。装置110(図2bのステップ218)では、この比較によって、この装置110がメッセージの指定受信者であることが明らかになる。次いでメッセージは、ステップ1208で層3プロトコルドライバ516に渡されて、層3プロトコルドライバ516はメッセージをそれ相応に処理する(図2cのステップ220)。
ステップ1206の比較が装置106で実行され、しかしこの装置106は、メッセージの指定受信者ではなかったことがわかる。次いで装置106は、ソース経路300内の次ホップの中間層アドレスについて中間層ヘッダー1104を検査し、その次装置にメッセージを渡す準備をする。続いてそれを行う手順が行われる。これは、ソース経路300内の第1の装置にメッセージを送信する際にソース装置102によって実行される。図12aおよび図12bでは、ステップ902および908から916について上記で使用したのと同じ番号付けを使用することによってこの関係を強調している。図2aから図2cのシナリオでは、次ホップは、装置110へのものであり、(ソース経路300のフィールド306内のインターフェイスインデックスで指定したように)装置106のLAN108ネットワークインターフェイスを使用する。装置106は、それ自体のソース層2アドレス(図12aのステップ902)、および装置110の層2アドレス(図12bのステップ908)をデータパケットに追加する。次いでパケットは、LAN108ネットワークインターフェイスを扱う層2のプロトコルドライバ518に送信される(図2bのステップ212)。
上述したシナリオは、その上下の層にわずかな変更を加えて、または変更を加えることなく、重要な通信タスクを扱うプロトコル中間層をどのようにしてプロトコルスタックに追加することができるかを示す。中間層の動作の詳細は、実行が求められるタスクの詳細に応じて決まる。しかし、こうした詳細とは関係なく、中間層アドレスの割当に使用されている方法がある。当分野でよく知られているいくつかのアドレス割当方法を中間層アドレスに使用することができる。図13に一例を示している。手順は、ステップ1300で開始し、装置がそれ自体の中間層アドレスを選択する。選択は、完全に無作為に行うことができる。装置が複数のネットワークインターフェイスを有している場合、ステップ1302でインターフェイスインデックスがこれらのインターフェイスに割り当てられる。ステップ1304で、装置は、他の装置の中間層アドレスの学習を開始する。これらのアドレスは、例えば、近隣探索(Neighbor Discovery)およびアドレス解決プロトコル(ARPの例については以下を参照)などの既存のプロトコルの方法を適用することによって必要なときに見つけ出すことができる。ステップ1306でアドレスの競合が見つかると、ステップ1308で、競合する装置の少なくとも一方は、そのアドレスを変更する必要がある(実際に中間層のアドレス空間のサイズの適切な選択によってアドレスの競合の可能性をきわめて少なくすることができるので、このチェックは絶対に必要というわけではない)。アドレスは固有の意味を持たないため、ステップ1308の手順は、単に装置が無作為に別のアドレスを選択し、競合についてそれを検討することにより競合を見つけ出すことを含むこともできる。選択されたアドレスは、他のアドレスとともに図8のアドレス関連表800に格納される。手順はステップ1310で終了し、別の競合が見つかるまで行われない。
ソースルーティングは、多層プロトコルタスクの稼働に関与する多くの通信タスクのうちのほんの1つである。本発明の方法は、上述したようにプロトコル中間層に対応するよう変更する必要なく他の通信タスクを進めることができるように設計されている。一例として、また中間層のブロードキャストアドレス指定の一例として、図14aおよび14bの通信のシナリオを考察する。このシナリオは、図1から知られる同じ装置を含むが、今回は、装置102上の層3プロトコルドライバ516が装置110の層3アドレスに関連する層2アドレスを見つけ出すことを望んでいる。少なくともそれが、層3プロトコルドライバ516が望んでいると確信していることである。しかし、これらの装置によって、実際に中間層アドレスを有するプロトコル中間層が稼働している。したがって、層3プロトコルドライバ516は、装置110の層3アドレスに関連する中間層アドレスを本当に知りたがっている(上記のシナリオでは、装置102はすでにこの情報を知っており、それを図8のアドレス関連表800に格納していると仮定する)。
IPv4として知られる層3プロトコルでは、ARPを使用して、層3アドレスを層2アドレスに関連付ける。図14aおよび14bのシナリオでは、代わりにARPを使用して層3アドレスを中間層アドレスに関連付ける方法を示している。装置102上の層3プロトコルドライバ516は、対象の層3アドレスを含むARP要求パケットを作成する。層3プロトコルドライバ516によって選択された宛先中間層アドレスは、ブロードキャストアドレス(おそらくすべて1)である。というのは、装置102は、メッセージを指定受信側装置110にアドレス指定をする方法を知らないからである(使用するアドレスを知っているとしたら、ARPを呼び出す必要はないことになる)。宛先中間層ブロードキャストアドレスは、宛先層2ブロードキャストアドレスに変換され、ステップ1402でARPメッセージが送信される。
ステップ1404で、ARP要求は、無線範囲内のすべての装置、つまり装置104および106によって受信される。宛先層2アドレスがブロードキャストアドレスなので、ステップ1406で、これらの装置はメッセージの内容を検査する。要求は、中間層ヘッダーを含んでいるので、両方の装置のプロトコル中間層に渡される。プロトコル中間層は、宛先アドレスを検査する。これもまたブロードキャストアドレスである。次いでプロトコル中間層は、ARP要求を層3プロトコルドライバ516に渡す。
さらにステップ1406で、両方の装置104および106の層3プロトコルドライバ516は、ARP要求を検査し、要求に含まれている対象の層3アドレスを、ローカル装置に割り当てられている層3アドレスと比較する。いずれの装置も一致しない。装置104は、それ以上行えないので、ステップ1408でARP要求を破棄する。
しかし装置106は、2つのネットワークインターフェイスを有する。装置106は、無線インターフェイス上でARP要求を受信したので、ステップ1410で、ARP要求をもう一方のインターフェイス、つまりLAN108に渡す。ARPメッセージは再度ブロードキャストされる。装置110は、図14bのステップ1412でブロードキャストされたARP要求を受信する。装置110は、装置104および106によって以前実行された検査と同じ検査を行う。しかしこのとき、装置110は、それ自体の層3アドレスとARP要求に含まれる対象のアドレスの間に一致を見つける。次いでステップ1416で、装置110は、それ自体の中間層アドレスを含むARP応答を送信する。ARP応答は、元の要求側装置102に戻る。その装置は、ここでアドレス関連表800を装置110の層3アドレスおよび関連の中間層アドレスで埋めることができる。
このARPの全シナリオの間、各装置の層3プロトコルドライバ516は、プロトコル中間層がない場合と同一の動作を行う。したがって、中間層の存在によって、ARPが稼働する層3プロトコルドライバ516を変更する必要なく、ARPの結果が(層3/層2のアドレス関連の作成から層3/中間層のアドレス関連の作成に)変わる。この例は、プロトコル中間層が、どのようにして他の層の通信タスクを妨害することなくそれ自体の通信タスクを行うことができるかを示している。
本発明の原理を適用できる多くの可能な実施形態を考慮して、図面との関連で本明細書に記載した実施形態は、例示的なものにすぎず、本発明の範囲を限定するものとみなされるべきではないことを理解されたい。例えば、本発明の意図から逸脱することなく、プロトコル中間層を、ソースルーティング以外の状況をカバーするように開発できることを当分野の技術者は理解されよう。本発明は、ソフトウェアモジュールまたは構成要素の観点で説明しているが、こうしたことは、ハードウェア構成要素に等しく置き換えることができることを当分野の技術者は理解されよう。したがって、本明細書に記載した本発明は、特許請求の範囲、およびその均等物の範囲内に含まれ得るすべての実施形態を含む。
有線ホストおよび無線ホストをサポートする通信環境を示すブロック図である。 ソース経路を使用することによって、図1の2つのホストが中間の装置を介してどのように相互通信するかを示すデータフロー図である。 ソース経路を使用することによって、図1の2つのホストが中間の装置を介してどのように相互通信するかを示すデータフロー図である。 ソース経路を使用することによって、図1の2つのホストが中間の装置を介してどのように相互通信するかを示すデータフロー図である。 中間層アドレスを使用するソース経路を示すデータ構造図である。 本発明をサポートするコンピュータシステムの例を示す概略図である。 階層型ネットワーク通信プロトコル用の国際標準化機構の開放型システム間接続(ISO/OSI)モデルを示す論理図である。 ISO/OSIプロトコルスタックの稼働に関与する通信タスクのいくつかを示すブロック図である。 図5bに関連して示したタスクを実行するための1つの可能なソフトウェア実装を示す概略図である。 上位プロトコル層がプロトコル中間層と対話する本発明による方法の例を示すフロー図である。 アドレス関連表を示すデータ構造図である。 プロトコル中間層の例が上位プロトコル層から受信したメッセージに応答する流れを示すフロー図である。 プロトコル中間層の例が上位プロトコル層から受信したメッセージに応答する流れを示すフロー図である。 プロトコル中間層向けのメッセージを受信するときに下位プロトコル層の例によって使用可能な方法を示すフロー図である。 中間層ヘッダーを含むデータフレームを示すデータ構造図である。 プロトコル中間層の例が下位プロトコル層から受信したメッセージに応答する流れを示すフロー図である。 プロトコル中間層の例が下位プロトコル層から受信したメッセージに応答する流れを示すフロー図である。 中間層アドレスを割り当て、見つけ出す方法の例を示すフロー図である。 アドレス解決プロトコルがプロトコル中間層の存在下でどのように動作し得るかを示すデータフロー図である。 アドレス解決プロトコルがプロトコル中間層の存在下でどのように動作し得るかを示すデータフロー図である。
符号の説明
100 アドホック無線ネットワーク
102 無線専用装置
104 無線専用装置
108 LAN接続
110 ルーター

Claims (79)

  1. 上位プロトコル層および下位プロトコル層を含む多層プロトコルをサポートする通信環境において、前記上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層を提供する方法であって、
    前記上位プロトコル層から宛先中間層アドレスを含むデータを受信するステップと、
    前記宛先中間層アドレスを中間層ヘッダーに入れるステップ、前記中間層ヘッダーを前記データに追加するステップ、および宛先下層アドレスを前記データに追加するステップを含む、前記受信したデータを処理するステップと、
    前記処理されたデータを前記下位プロトコル層に送達するステップと
    を含むことを特徴とする方法。
  2. 前記多層プロトコルは国際標準化機構/開放型システム間接続モデル(ISO/OSI)に従い、前記上位プロトコル層はネットワーク間通信プロトコルであり、前記下位プロトコル層はデータリンクプロトコルであることを特徴とする請求項1に記載の方法。
  3. 前記データリンクプロトコルは電気電子技術者協会(IEEE)802プロトコルであり、ネットワーク間通信プロトコルはIPv4、IPv6、IPXから成るグループから選択されることを特徴とする請求項2に記載の方法。
  4. 前記方法は1つのコンピューティング装置上で実行され、前記上位プロトコル層からデータを受信するステップは、前記コンピューティング装置上のソフトウェア構成要素からデータを受信するステップを含み、前記処理されたデータを前記下位プロトコル層に送達するステップは、前記処理されたデータを前記コンピューティング装置上のソフトウェア構成要素に送達するステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記コンピューティング装置はホスト装置およびルーター装置から成るグループから選択されることを特徴とする請求項4に記載の方法。
  6. 前記上位プロトコル層からデータを受信するステップは前記宛先中間層アドレスに送信されるデータパケットを受信するステップを含むことを特徴とする請求項1に記載の方法。
  7. 前記データパケットは、アドレス解決プロトコル(ARP)および近隣探索(ND)プロトコルから成るグループから選択されるプロトコルのメッセージを含むことを特徴とする請求項6に記載の方法。
  8. 前記宛先中間層アドレスは前記宛先下層アドレスと同じ形式のものであることを特徴とする請求項1に記載の方法。
  9. 前記宛先中間層アドレスは前記宛先下層アドレスのものと異なる形式のものであることを特徴とする請求項1に記載の方法。
  10. 前記宛先中間層アドレスは、ユニキャストアドレス、マルチキャストアドレス、およびブロードキャストアドレスから成るグループから選択された形式のものであることを特徴とする請求項1に記載の方法。
  11. 前記宛先中間層アドレスはIEEEメディアアクセス制御アドレスの形式のものであることを特徴とする請求項1に記載の方法。
  12. 前記宛先中間層アドレスはインターフェイスインデックスを含むことを特徴とする請求項1に記載の方法。
  13. 前記受信されたデータはソース中間層アドレスを含むことを特徴とする請求項1に記載の方法。
  14. 前記受信したデータを処理するステップは前記宛先中間層アドレスを対応する下層アドレスに変換するステップを含むことを特徴とする請求項1に記載の方法。
  15. 宛先下層アドレスを前記データに追加するステップは前記宛先中間層アドレスの変換を前記データに追加するステップを含むことを特徴とする請求項14に記載の方法。
  16. 前記受信したデータを処理するステップはアドホックルーティングプロトコルの方法を適用するステップを含むことを特徴とする請求項14に記載の方法。
  17. 前記アドホックルーティングプロトコルは、Ad Hoc On−Demand Distance Vectorルーティングプロトコル、Core Extraction Distributed Ad Hoc Routingプロトコル、Dynamic Source Routingプロトコル、Loop−Based Source Routingプロトコル、Multi−Path Dynamic Source Routingプロトコル、Optimized Link State Routingプロトコル、Power−Aware Source Routingプロトコル、Security−Aware Adaptive Dynamic Source Routingプロトコル、およびTopology Dissemination Based on Reverse−Path Forwardingルーティングプロトコルから成るグループから選択されることを特徴とする請求項16に記載の方法。
  18. 前記受信したデータを処理するステップは前記宛先中間層アドレスへのソース経路を探し出すステップを含むことを特徴とする請求項16に記載の方法。
  19. 前記宛先中間層アドレスへのソース経路を探し出すステップは格納されているソース経路にアクセスするステップを含むことを特徴とする請求項18に記載の方法。
  20. 前記宛先中間層アドレスへのソース経路を探し出すステップは、前記アドホックルーティングプロトコルの方法を適用することによってソース経路を見つけ出すステップを含むことを特徴とする請求項18に記載の方法。
  21. 前記受信したデータを処理するステップは、前記探し出したソース経路を中間層ヘッダー内に入れるステップと、前記中間層ヘッダーを前記データに追加するステップとを含むことを特徴とする請求項18に記載の方法。
  22. 前記追加された中間層ヘッダーは中間層アドレスを含むことを特徴とする請求項21に記載の方法。
  23. 宛先下層アドレスを前記データに追加するステップは、前記探し出したソース経路上の次ホップの下層アドレスを追加するステップを含むことを特徴とする請求項18に記載の方法。
  24. タイマを前記受信したデータに関連付けるステップと、
    正常な送達の受領通知を受信する前に前記関連するタイマが期限切れになった場合、前記アドホックルーティングプロトコルの方法を適用することによって前記ソース経路のメンテナンスを行うステップと
    をさらに含むことを特徴とする請求項18に記載の方法。
  25. 前記正常な送達の受領通知は、前記宛先中間層アドレスおよび前記探し出したソース経路上の次ホップのアドレスから成るグループから選択されたアドレスへの正常な送達の受領を通知することを特徴とする請求項24に記載の方法。
  26. 宛先下層アドレスを前記データに追加するステップは、ユニキャストアドレス、マルチキャストアドレス、およびブロードキャストアドレスから成るグループから選択された形式の下層アドレスを追加するステップを含むことを特徴とする請求項1に記載の方法。
  27. 宛先下層アドレスを前記データに追加するステップは、IEEEメディアアクセス制御アドレスの形式の下層アドレスを追加するステップを含むことを特徴とする請求項1に記載の方法。
  28. 前記多層プロトコルは論理的に並列して動作する複数の下位プロトコル層を含み、
    少なくとも一部前記宛先中間層アドレスに基づいて、前記処理されたデータを送達するために前記複数の下位プロトコル層の1つを選択するステップ
    をさらに含むことを特徴とする請求項1に記載の方法。
  29. 前記宛先中間層アドレスはインターフェイスインデックスを含み、前記複数の下位プロトコル層の1つを選択するステップは、少なくとも一部インターフェイスインデックスに基づくことを特徴とする請求項28に記載の方法。
  30. 前記複数の下位プロトコル層は、複数のIEEE802データリンクプロトコルを含むことを特徴とする請求項28に記載の方法。
  31. 多層プロトコルの上位プロトコル層と下位プロトコル層の間で論理的に動作するプロトコル中間層を提供する方法であって、
    前記上位プロトコル層から宛先中間層アドレスを含むデータを受信するステップと、
    前記宛先中間層アドレスを中間層ヘッダーに入れるステップ、前記中間層ヘッダーを前記データに追加するステップ、および宛先下層アドレスを前記データに追加するステップとを含む、前記受信したデータを処理するステップと、
    前記処理されたデータを前記下位プロトコル層に送達するステップと
    を含むことを特徴とする方法を実行するコンピュータ実行可能命令を含むコンピュータ可読媒体。
  32. 上位プロトコル層および下位プロトコル層を含む多層プロトコルをサポートする通信環境において、前記上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層を提供する方法であって、
    前記下位プロトコル層から中間層ヘッダーおよび宛先中間層アドレスを含むデータを受信するステップと、
    前記宛先中間層アドレスを検査するステップを含む、前記受信したデータを処理するステップと、
    少なくとも一部前記受信した宛先中間層アドレスの前記検査に基づいて、前記処理されたデータを前記上位プロトコル層に送達するかどうかを決定するステップと
    を含むことを特徴とする方法。
  33. 前記下位プロトコル層からデータを受信するステップは前記宛先中間層アドレスに送信されるデータパケットを受信するステップを含むことを特徴とする請求項32に記載の方法。
  34. 前記データパケットはARPおよびNDから成るグループから選択されたプロトコルのメッセージを含むことを特徴とする請求項33に記載の方法。
  35. 前記宛先中間層アドレスはインターフェイスインデックスを含むことを特徴とする請求項32に記載の方法。
  36. 前記宛先中間層アドレスを検査するステップは、前記宛先中間層アドレスを、前記方法が稼働する装置に割り当てられた中間層アドレスと比較するステップを含み、前記宛先中間層アドレスが前記方法が稼働する前記装置に割り当てられた前記中間層アドレスに一致する場合、前記処理されたデータを前記上位プロトコル層に送達するよう前記決定がなされることを特徴とする請求項32に記載の方法。
  37. 前記受信したデータを処理するステップはアドホックルーティングプロトコルの方法を適用するステップを含むことを特徴とする請求項32に記載の方法。
  38. 前記アドホックルーティングプロトコルは、Ad Hoc On−Demand Distance Vectorルーティングプロトコル、Core Extraction Distributed Ad Hoc Routingプロトコル、Dynamic Source Routingプロトコル、Loop−Based Source Routingプロトコル、Multi−Path Dynamic Source Routingプロトコル、Optimized Link State Routingプロトコル、Power−Aware Source Routingプロトコル、Security−Aware Adaptive Dynamic Source Routingプロトコル、およびTopology Dissemination Based on Reverse−Path Forwardingルーティングプロトコルから成るグループから選択されることを特徴とする請求項37に記載の方法。
  39. 前記受信したデータを処理するステップは前記受信したデータに含まれるソース経路を検査するステップを含むことを特徴とする請求項37に記載の方法。
  40. 前記ソース経路は中間層アドレスを含むことを特徴とする請求項39に記載の方法。
  41. 前記ソース経路は前記宛先中間層アドレスを含むことを特徴とする請求項40に記載の方法。
  42. 前記宛先中間層アドレスを検査するステップは、前記宛先中間層アドレスを、前記方法が稼働する装置に割り当てられた中間層アドレスと比較するステップを含み、前記宛先中間層アドレスが前記方法が稼働する前記装置に割り当てられた前記中間層アドレスに一致していない場合、
    前記ソース経路内の次ホップのアドレスを見つけ、
    前記ソース経路内の前記次ホップの宛先下層アドレスを前記データに追加し、
    前記処理されたデータを前記下位プロトコル層に送達する
    ことを特徴とする請求項39に記載の方法。
  43. 前記方法は1つのコンピューティング装置上で実行され、前記処理されたデータを前記下位プロトコル層に送達するステップは、前記処理されたデータを前記コンピューティング装置上のソフトウェア構成要素に送達するステップを含むことを特徴とする請求項42に記載の方法。
  44. タイマを前記受信したデータに関連付けるステップと、
    正常な送達の受領通知を受信する前に前記関連するタイマが期限切れになった場合、前記アドホックルーティングプロトコルの方法を適用することによって前記ソース経路のメンテナンスを行うステップと
    をさらに含むことを特徴とする請求項42に記載の方法。
  45. 前記正常な送達の受領通知は、前記宛先中間層アドレスおよび前記探し出したソース経路上の前記次ホップの前記アドレスから成るグループから選択されたアドレスへの正常な送達の受領を通知することを特徴とする請求項44に記載の方法。
  46. 前記多層プロトコルは論理的に並列して動作する複数の下位プロトコル層を含み、
    少なくとも一部前記ソース経路内の前記次ホップの前記アドレスに基づいて、前記処理されたデータを送達するために前記複数の下位プロトコル層の1つを選択するステップ
    をさらに含むことを特徴とする請求項42に記載の方法。
  47. 前記ソース経路内の前記次ホップの前記アドレスはインターフェイスインデックスを含み、前記複数の下位プロトコル層の1つを選択するステップは、少なくとも一部前記インターフェイスインデックスに基づくことを特徴とする請求項46に記載の方法。
  48. 多層プロトコルの上位プロトコル層と下位プロトコル層の間で論理的に動作するプロトコル中間層を提供する方法であって、
    前記下位プロトコル層から中間層ヘッダーおよび宛先中間層アドレスを含むデータを受信するステップと、
    前記宛先中間層アドレスを検査するステップを含む、前記受信したデータを処理するステップと、
    少なくとも一部前記受信した宛先中間層アドレスの前記検査に基づいて、前記処理されたデータを前記上位プロトコル層に送達するかどうかを決定するステップと
    を含むことを特徴とする方法を実行するコンピュータ実行可能命令を含むコンピュータ可読媒体。
  49. 上位プロトコル層および下位プロトコル層を含む多層プロトコルをサポートする通信環境において、前記下位プロトコル層が前記上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層と連携して働く方法であって、
    データを受信するステップと、
    中間層ヘッダーの有無について前記受信したデータを検査するステップを含む、前記受信したデータを処理するステップと、
    前記受信したデータ内に中間層ヘッダーが見つかった場合、前記処理されたデータを前記プロトコル中間層に送達するステップと
    を含むことを特徴とする方法。
  50. 前記受信したデータは、前記中間層アドレスに送信されるデータパケットを含むことを特徴とする請求項49に記載の方法。
  51. 前記データパケットはARPおよびNDから成るグループから選択されたプロトコルのメッセージを含むことを特徴とする請求項50に記載の方法。
  52. 下層プロトコル層が多層プロトコルの上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層と連携して働く方法であって、
    データを受信するステップと、
    中間層ヘッダーの有無について前記受信したデータを検査するステップを含む、前記受信したデータを処理するステップと、
    前記受信したデータ内に中間層ヘッダーが見つかった場合、前記処理されたデータを前記プロトコル中間層に送達するステップと
    を含むことを特徴とする方法を実行するコンピュータ実行可能命令を含むコンピュータ可読媒体。
  53. 上位プロトコル層および下位プロトコル層を含む多層プロトコルをサポートする通信環境において、前記上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層が中間層アドレスを割り当てる方法であって、
    下層アドレスを有するコンピューティング装置の中間層アドレスを選択するステップと、
    前記選択された中間層アドレスを前記下層アドレスに関連付けて格納するステップと、
    他のコンピューティング装置から中間層アドレス/下層アドレスの関連を引き出すステップと
    を含むことを特徴とする方法。
  54. 前記選択するステップは、少なくとも一部任意の数に基づくことを特徴とする請求項53に記載の方法。
  55. 前記多層プロトコルは論理的に並列して動作する複数の下位プロトコル層を含み、
    インターフェイスインデックスを選択するステップと、
    前記選択されたインターフェイスインデックスを前記選択された中間層アドレス、前記下層アドレス、および前記複数の下位プロトコル層の1つと関連付けて格納するステップと
    をさらに含むことを特徴とする請求項53に記載の方法。
  56. 中間層アドレス/下層アドレスの関連を引き出すステップは、
    受信したデータを調べるステップと、
    前記受信したデータから中間層アドレス/下層アドレスの関連を抽出するステップと
    を含むことを特徴とする請求項53に記載の方法。
  57. 中間層アドレス/下層アドレスの関連は、ARP、ND、近隣要請/近隣通知、ルーター要請/ルーター通知から成るグループから選択されたプロトコルの方法を適用するステップを含むことを特徴とする請求項53に記載の方法。
  58. 多層プロトコルの上位プロトコル層と下位プロトコル層の間で論理的に動作するプロトコル中間層が中間層アドレスを割り当てる方法であって、
    下層アドレスを有するコンピューティング装置の中間層アドレスを選択するステップと、
    前記選択された中間層アドレスを前記下層アドレスに関連付けて格納するステップと、
    他のコンピューティング装置から中間層アドレス/下層アドレスの関連を引き出すステップと
    を含むことを特徴とする方法を実行するコンピュータ実行可能命令を含むコンピュータ可読媒体。
  59. 上位プロトコル層および下位プロトコル層を含む多層プロトコルをサポートする通信環境において、前記上位プロトコル層と前記下位プロトコル層の間で論理的に動作するプロトコル中間層を提供するシステムであって、
    宛先上層アドレスを対応する宛先中間層アドレスに変換し、前記宛先中間層アドレスを1組のデータに追加し、前記追加された宛先中間層アドレスを含む前記1組のデータを前記プロトコル中間層に送達するように構成されている前記上位プロトコル層と、
    前記1組のデータを前記上位プロトコル層から受信し、前記宛先中間層アドレスを中間層ヘッダーに入れるステップを含めて、前記受信したデータを処理し、前記中間層ヘッダーを前記データに追加し、宛先下層アドレスを前記データに追加するように構成されている前記プロトコル中間層と、
    前記処理されたデータを受信し、前記処理されたデータを前記宛先下層アドレスに送達するように構成されている前記下位プロトコル層と
    を含むことを特徴とするシステム。
  60. 第1のコンピューティング装置は前記上位プロトコル層と、前記プロトコル中間層と、前記下位プロトコル層とを含むことを特徴とする請求項59に記載のシステム。
  61. 前記1組のデータを前記上位プロトコル層から前記プロトコル中間層に送達するステップは、前記第1のコンピューティング装置の第1のソフトウェア構成要素から第2のソフトウェア構成要素に前記1組のデータを送達するステップを含み、前記処理されたデータを前記プロトコル中間層から前記下位プロトコル層に送達するステップは、前記第1のコンピューティング装置の第3のソフトウェア構成要素から第4のソフトウェア構成要素に前記データを送達するステップを含むことを特徴とする請求項60に記載のシステム。
  62. 前記下位プロトコル層は、第2のコンピューティング装置からデータを受信し、中間層ヘッダーの有無について前記受信したデータを検査するステップを含めて、前記受信したデータを処理し、前記受信したデータ内に中間層ヘッダーが見つかった場合は前記処理されたデータを前記プロトコル中間層に送達するようにさらに構成されており、
    前記プロトコル中間層は、前記下層で処理されたデータを受信し、前記中間層ヘッダーを検査するステップを含めて、前記受信したデータを処理し、少なくとも一部前記受信した中間層ヘッダーの前記検査に基づいて前記処理されたデータを前記上位プロトコル層に送達するかどうかを決定するようにさらに構成されており、
    前記上層プロトコルは、前記プロトコル中間層で処理されたデータを受信するようにさらに構成されている
    ことを特徴とする請求項60に記載のシステム。
  63. 前記中間層ヘッダーはソース経路を含み、前記プロトコル中間層は、前記宛先中間層アドレスを、前記第1のコンピューティング装置に割り当てられている中間層アドレスと比較し、前記宛先中間層アドレスが前記第1のコンピューティング層に割り当てられている前記中間層アドレスに一致しない場合、前記ソース経路内の次ホップのアドレスを見つけ、前記ソース経路内の前記次ホップの宛先下層アドレスを前記処理されたデータに追加し、前記処理されたデータを前記下位プロトコル層に送達するようにさらに構成されていることを特徴とする請求項62に記載のシステム。
  64. 前記プロトコル中間層は、下層アドレスを有する前記第1のコンピューティング装置の中間層アドレスを選択し、前記選択された中間層アドレスを前記下層アドレスと関連付けて格納し、中間層アドレス/下層アドレスの関連を他のコンピューティング装置から引き出すようにさらに構成されていることを特徴とする請求項60に記載のシステム。
  65. 論理的に並列して動作する複数の下位プロトコル層をさらに含み、
    前記プロトコル中間層は、少なくとも一部前記宛先中間層アドレスに基づいて、前記処理されたデータを送達するために前記複数の下位プロトコル層の1つを選択するようにさらに構成されている
    ことを特徴とする請求項59に記載のシステム。
  66. 前記宛先中間層アドレスはインターフェイスインデックスを含み、前記プロトコル中間層は、少なくとも一部前記インターフェイスインデックスに基づいて前記複数の下位プロトコル層の1つを選択するようにさらに構成されていることを特徴とする請求項65に記載のシステム。
  67. 多層プロトコルの上位プロトコル層と下位プロトコル層の間で論理的に動作するプロトコル中間層を提供するシステムであって、
    宛先上層アドレスを対応する宛先中間層アドレスに変換し、前記宛先中間層アドレスを1組のデータに追加し、前記追加された宛先中間層アドレスを含む前記1組のデータを前記プロトコル中間層に送達するように構成されている前記上位プロトコル層と、
    前記1組のデータを前記上位プロトコル層から受信し、前記宛先中間層アドレスを中間層ヘッダーに入れるステップを含めて、前記受信したデータを処理し、前記中間層ヘッダーを前記データに追加し、宛先下層アドレスを前記データに追加するように構成されている前記プロトコル中間層と、
    前記処理されたデータを受信し、前記処理されたデータを前記宛先下層アドレスに送達するように構成されている前記下位プロトコル層と
    を含むことを特徴とするシステムを提供するコンピュータ実行可能命令を含むコンピュータ可読媒体。
  68. 上位プロトコル層アドレスを表すデータを含む第1のデータフィールドと、
    プロトコル中間層アドレスを表すデータを含む第2のデータフィールドと、
    下位プロトコル層アドレスを表すデータを含む第3のデータフィールドと
    を含むことを特徴とするアドレス関連データ構造(address association data structure)を含むコンピュータ可読媒体。
  69. 前記上位プロトコル層アドレスはネットワーク間通信プロトコルアドレスであり、前記下位プロトコル層アドレスはデータリンクプロトコルアドレスであることを特徴とする請求項68に記載のアドレス関連データ構造。
  70. 前記データリンクプロトコルアドレスはIEEEメディアアクセス制御アドレスであることを特徴とする請求項69に記載のアドレス関連データ構造。
  71. 前記プロトコル中間層アドレスは前記下位プロトコル層アドレスと同じ形式のものであることを特徴とする請求項68に記載のアドレス関連データ構造。
  72. 前記プロトコル中間層アドレスは前記下位プロトコル層アドレスのものと異なる形式のものであることを特徴とする請求項68に記載のアドレス関連データ構造。
  73. 前記プロトコル中間層アドレスはインターフェイスインデックスを含むことを特徴とする請求項68に記載のアドレス関連データ構造。
  74. 下位プロトコル層ヘッダーを表すデータを含む第1のデータフィールドと、
    プロトコル中間層ヘッダーを表すデータを含み、第3のデータフィールドおよび第4のデータフィールドを含む第2のデータフィールドと、
    前記プロトコル中間層ヘッダーを識別するフラグを表すデータを含む前記第3のデータフィールドと、
    プロトコル中間層アドレスを表すデータを含む前記第4のデータフィールドと
    を含むことを特徴とするプロトコル中間層メッセージ構造を含むコンピュータ可読媒体。
  75. 前記下位プロトコル層はIEEE802データリンクプロトコルヘッダーであることを特徴とする請求項74に記載のプロトコル中間層メッセージ構造。
  76. 前記プロトコル中間層アドレスは、ユニキャストアドレス、マルチキャストアドレス、およびブロードキャストアドレスから成るグループから選択された形式のものであることを特徴とする請求項74に記載のプロトコル中間層メッセージ構造。
  77. 前記プロトコル中間層アドレスはIEEEメディアアクセス制御アドレスの形式のものであることを特徴とする請求項74に記載のプロトコル中間層メッセージ構造。
  78. 前記プロトコル中間層アドレスはインターフェイスインデックスを含むことを特徴とする請求項74に記載のプロトコル中間層メッセージ構造。
  79. 前記プロトコル中間層ヘッダーはソース経路を含むことを特徴とする請求項74に記載のプロトコル中間層メッセージ構造。
JP2004194754A 2003-06-30 2004-06-30 仮想プロトコル中間層を提供する方法およびシステム Pending JP2005027311A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/610,397 US20040264503A1 (en) 2003-06-30 2003-06-30 Method and system for providing a virtual protocol interlayer

Publications (1)

Publication Number Publication Date
JP2005027311A true JP2005027311A (ja) 2005-01-27

Family

ID=33435398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004194754A Pending JP2005027311A (ja) 2003-06-30 2004-06-30 仮想プロトコル中間層を提供する方法およびシステム

Country Status (6)

Country Link
US (2) US20040264503A1 (ja)
EP (1) EP1494414A3 (ja)
JP (1) JP2005027311A (ja)
KR (1) KR20050002618A (ja)
CN (1) CN1578310A (ja)
BR (1) BRPI0401950A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010016642A (ja) * 2008-07-03 2010-01-21 Nec Corp 経路制御方法、経路制御システム、経路制御装置、及び経路制御用プログラム
US11649565B2 (en) 2019-07-10 2023-05-16 Hyundai Motor Company Fiber for sound-absorbing material for vehicles and sound-absorbing material for vehicles including the same

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024395B1 (en) * 2001-09-04 2011-09-20 Gary Odom Distributed processing multiple tier task allocation
US7376122B2 (en) * 2004-02-23 2008-05-20 Microsoft Corporation System and method for link quality source routing
US20050254479A1 (en) * 2004-05-12 2005-11-17 Aiptek International Inc. Wireless digital communication system and method thereof
US7457255B2 (en) * 2004-06-25 2008-11-25 Apple Inc. Method and apparatus for providing link-local IPv4 addressing across multiple interfaces of a network node
US7933623B1 (en) * 2005-03-11 2011-04-26 Nextel Communications Inc. System and method for addressing dispatch stations
GB2426897A (en) * 2005-06-01 2006-12-06 Agilent Technologies Inc Transferring control and signalling data between protocol stack layers by inserting it into Destination Options Headers of IPv6 packets
CN1925456A (zh) * 2005-09-01 2007-03-07 中兴通讯股份有限公司 多业务堆叠式虚拟局域网实现的系统、方法及其应用方法
JP4577163B2 (ja) * 2005-09-06 2010-11-10 株式会社日立製作所 インターワーキング方法及び装置
US20070115987A1 (en) * 2005-11-02 2007-05-24 Hoekstra G J Translating network addresses for multiple network interfaces
US8204039B2 (en) * 2005-11-30 2012-06-19 Symbol Technologies, Inc. System and method for data communication in a wireless network
US7673061B2 (en) * 2006-03-28 2010-03-02 Tellabs San Jose, Inc. Method and apparatus for neighborhood discovery across disparate point-to-point networks
US20080194246A1 (en) * 2007-02-12 2008-08-14 Thierry Etienne Klein Apparatus and Method for Providing a Rapidly Deployable Wireless Network
US7720099B2 (en) * 2007-08-13 2010-05-18 Honeywell International Inc. Common protocol and routing scheme for space data processing networks
US8031633B2 (en) * 2007-08-13 2011-10-04 Honeywell International Inc. Virtual network architecture for space data processing
US8458383B1 (en) * 2007-08-30 2013-06-04 Altera Corporation Flexible interface for stacked protocol in a programmable integrated circuit device
US8094634B2 (en) * 2007-09-06 2012-01-10 Polytechnic Institute Of New York University Sender and/or helper node modifications to enable security features in cooperative wireless communications
US8018873B1 (en) * 2007-11-08 2011-09-13 Juniper Networks, Inc. Enhanced link state protocol for identifying broadcast networks
US8254381B2 (en) * 2008-01-28 2012-08-28 Microsoft Corporation Message processing engine with a virtual network interface
GB2457987A (en) * 2008-03-06 2009-09-09 Nokia Corp Configuring a modular radio frequency communications device
CN101442494B (zh) * 2008-12-16 2011-06-22 中兴通讯股份有限公司 一种实现快速重路由的方法
KR101671991B1 (ko) * 2010-06-14 2016-11-04 한국전자통신연구원 가상 프로토콜 스택 인터페이스 기반의 시뮬레이터
US9300491B2 (en) 2011-02-11 2016-03-29 Qualcomm Incorporated Frame delivery path selection in hybrid communication networks
US8897169B2 (en) 2011-03-02 2014-11-25 Qualcomm Incorporated Discovery of conventional devices and bridges in hybrid communication networks
US9025603B2 (en) * 2011-03-08 2015-05-05 Qualcomm Incorporated Addressing scheme for hybrid communication networks
US9660825B2 (en) * 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US10243840B2 (en) * 2017-03-01 2019-03-26 Juniper Networks, Inc. Network interface card switching for virtual networks
CN112738231B (zh) * 2020-12-29 2022-10-04 成都商汤科技有限公司 布控方法及装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020039357A1 (en) * 2000-09-29 2002-04-04 Jaakko Lipasti Addressing and routing in mobile ad hoc networks

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US39357A (en) * 1863-07-28 Improvement in apparatus for heating wagon-tires
US5303344A (en) * 1989-03-13 1994-04-12 Hitachi, Ltd. Protocol processing apparatus for use in interfacing network connected computer systems utilizing separate paths for control information and data transfer
US5442633A (en) * 1992-07-08 1995-08-15 International Business Machines Corporation Shortcut network layer routing for mobile hosts
US5426637A (en) * 1992-12-14 1995-06-20 International Business Machines Corporation Methods and apparatus for interconnecting local area networks with wide area backbone networks
EP0637152A1 (en) * 1993-07-30 1995-02-01 International Business Machines Corporation Method and apparatus to speed up the path selection in a packet switching network
EP0637153B1 (en) * 1993-07-30 2001-10-31 International Business Machines Corporation Method and apparatus for an automatic decomposition of a network topology into a backbone and subareas
JP3084066B2 (ja) * 1993-12-24 2000-09-04 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 情報ネットワークにおける帯域幅予約接続の経路指定
US5492690A (en) * 1994-03-03 1996-02-20 The Procter & Gamble Company Benzoylacetate esters as non-sensitizing chelating photo-protectants
US6141325A (en) * 1996-12-18 2000-10-31 International Business Machines Corporation Paradigm for enabling interoperability between different subnetworks
US5949753A (en) * 1997-04-11 1999-09-07 International Business Machines Corporation Redundant internet protocol gateways using local area network emulation
US6076168A (en) * 1997-10-03 2000-06-13 International Business Machines Corporation Simplified method of configuring internet protocol security tunnels
US6502140B1 (en) * 1999-01-29 2002-12-31 International Business Machines Corporation Multicast support for small groups
US6775258B1 (en) * 2000-03-17 2004-08-10 Nokia Corporation Apparatus, and associated method, for routing packet data in an ad hoc, wireless communication system
WO2002001120A1 (en) * 2000-06-28 2002-01-03 Igc Polycold Systems, Inc. Nonflammable mixed refrigerants (mr) for use with very low temperature throttle-cycle refrigeration systems
JP2002190816A (ja) * 2000-12-20 2002-07-05 Nec Corp 無線通信システム
JP3790140B2 (ja) * 2001-08-28 2006-06-28 日本電信電話株式会社 マルチホップネットワークの中継方法および無線ノード
US7388869B2 (en) * 2002-11-19 2008-06-17 Hughes Network Systems, Llc System and method for routing among private addressing domains

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020039357A1 (en) * 2000-09-29 2002-04-04 Jaakko Lipasti Addressing and routing in mobile ad hoc networks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010016642A (ja) * 2008-07-03 2010-01-21 Nec Corp 経路制御方法、経路制御システム、経路制御装置、及び経路制御用プログラム
US11649565B2 (en) 2019-07-10 2023-05-16 Hyundai Motor Company Fiber for sound-absorbing material for vehicles and sound-absorbing material for vehicles including the same

Also Published As

Publication number Publication date
US20070280249A1 (en) 2007-12-06
CN1578310A (zh) 2005-02-09
EP1494414A3 (en) 2005-08-10
BRPI0401950A (pt) 2005-02-22
EP1494414A2 (en) 2005-01-05
KR20050002618A (ko) 2005-01-07
US20040264503A1 (en) 2004-12-30

Similar Documents

Publication Publication Date Title
JP2005027311A (ja) 仮想プロトコル中間層を提供する方法およびシステム
US9686194B2 (en) Adaptive multi-interface use for content networking
US10904144B2 (en) Methods, systems, and computer program products for associating a name with a network path
US8909812B2 (en) Method and device for communication for host device with IPv4 application
US9621458B2 (en) Internet routing over a service-oriented architecture bus
EP2206052B1 (en) Methods and apparatus for managing addresses related to virtual partitions of a session exchange device
JP5817299B2 (ja) アドレス変換装置、通信システム及びアドレス変換方法
US7760720B2 (en) Translating native medium access control (MAC) addresses to hierarchical MAC addresses and their use
EP3621250A1 (en) Seamless segment routing
EP2750329B1 (en) Method and device for sending internet protocol packets
US20080071927A1 (en) Method and system for automatic tunneling using network address translation
JP6542993B2 (ja) 要求に基づいてルートを取得する方法およびゲートウェイ
US20140294009A1 (en) Communication apparatus, communication system, control method of communication apparatus and program
JP4248546B2 (ja) イーサネットを介したmplsマルチキャストパケットの転送装置及び方法
WO2011119019A1 (en) Method of communicating signals in 6lowpan network to ipv6 network
US20170332439A1 (en) Extending the range of mesh networks
US8194683B2 (en) Teredo connectivity between clients behind symmetric NATs
US20100260203A1 (en) TUNNELING IPv6 PACKET THROUGH IPv4 NETWORK USING A TUNNEL ENTRY BASED ON IPv6 PREFIX AND TUNNELING IPv4 PACKET USING A TUNNEL ENTRY BASED ON IPv4 PREFIX
CN109246016B (zh) 跨vxlan的报文处理方法和装置
JP2006148903A (ja) マルチキャスティングのためのトンネリング方法及びトンネリング装置
US20040098512A1 (en) NAPT gateway system with method capable of extending the number of connections
US7693091B2 (en) Teredo connectivity between clients behind symmetric NATs
US20040153502A1 (en) Enhanced DNS server
CN116566897A (zh) 一种寻址路由方法、装置、设备及介质
CN102340444B (zh) 一种身份标识与位置分离的报文封装和转发的方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070622

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100518