(57)【特許請求の範囲】
【請求項１】
データおよびルーティングコードを伝達するパケットを交換し一方選択的に前記パケットの内の選択されたものによって伝達される前記データに対して少なくとも１つの非交換ネットワーク処理機能を行なうネットワークパケット交換ノード（１６）であって、
複数の入力ポートおよび複数の出力ポートを有するスイッチング構造（３０）、
各々前記スイッチング構造の出力ポートの１つに結合された入力を有しかつ前記スイッチング構造の入力ポートの１つに結合された出力を有する複数のデータプロセッサ（２０）、そして
前記スイッチング構造に結合され前記ルーティングコードを評価して前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令したことを判定し、前記少なくとも１つのネットワーク処理機能を行なうために前記データプロセッサの１つを選択しかつ、前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令している場合に、前記スイッチング構造に前記少なくとも１つのネットワーク処理機能の達成を指令する前記ルーティングコードを伝達する前記選択されたパケットを前記コントローラにより選択された前記データプロセッサに導かせる、前記コントローラ（３２）、
を具備し、
前記選択されたデータプロセッサは前記選択されたパケットの前記データに対して前記少なくとも１つのネットワーク処理機能を行ないそれぞれのデスティネイションへと導くために前記入力ポートの内の少なくとも１つに再導入されるべき処理されたパケットを発生することを特徴とするネットワークパケット交換ノード（１６）。
【請求項２】
データおよびルーティングコードを伝達するパケットを交換し一方選択的に前記パケットの内の選択されたものによって伝達される前記データに対して少なくとも１つの非交換ネットワーク処理機能を行なうためにネットワークパケット交換ノード（１６）を動作させる方法であって、
複数のデータプロセッサ（２０）の内の１つをスイッチに結合し前記１つのデータプロセッサの入力が前記スイッチの複数の出力ポートの内の１つからパケットを受信しかつ前記データプロセッサの出力がパケットを前記スイッチの複数の入力ポートの内の１つに伝送するようにさせる段階、
前記パケットの前記ルーティングコードを評価し、前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令したことを判定する段階、
前記少なくとも１つのネットワーク処理機能を達成するために前記データプロセッサの１つを選択する段階、そして
前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令している場合に、前記少なくとも１つのネットワーク処理機能の達成を指令する前記ルーティングコードを伝達する前記選択されたパケットが前記スイッチから前記選択されたデータプロセッサに伝達されるよう前記スイッチを制御する段階、
を具備し、
前記選択されたデータプロセッサは前記選択されたパケットの前記データに対して前記少なくとも１つのネットワーク処理機能を行ないそれぞれのデスティネイションへと導くために前記入力ポートの内の少なくとも１つに再導入されるべき処理されたパケットを発生することを特徴とするネットワークパケット交換ノード（１６）を動作させる方法。
【請求項３】
ソースノード、デスティネイションノード、および少なくとも１つの中間交換ノードを有し、該中間交換ノードは各々１つまたはそれ以上のネットワーク処理機能を行ないかつスイッチに結合された複数のデータプロセッサを有する、パケット交換ネットワーク（１０）における、データをソースノードからデスティネイションノードへと伝送する方法であって、
前記ソースノードにおいて、前記データおよびルーティングコードを含むパケットを形成する段階、
前記パケットを前記中間交換ノードに伝送する段階、
前記中間交換ノードにおいて前記ルーティングコードを評価して前記ルーティングコードが前記１つまたはそれ以上のネットワーク処理機能の達成を指令する命令を含むか否かを判定する段階、そして
もし前記評価する段階が前記ネットワーク処理機能の達成を指令する命令を検出すれば、前記少なくとも１つのネットワーク処理機能の達成のために前記データプロセッサの１つを選択しかつ前記パケットを前記スイッチを通り前記選択されたデータプロセッサへと導き、前記選択されたデータプロセッサにおいて前記選択されたパケットの前記データに対し前記ネットワーク処理機能を行なって処理されたパケットを発生し、かつそれぞれのデスティネイションへと導くために前記処理されたパケットを前記データプロセッサから前記スイッチの入力ポートへと導く段階、
を具備することを特徴とするパケット交換ネットワーク（１０）における、データをソースノードからデスティネイションノードへと伝送する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は一般的にはパケット交換データ通信ネットワークに関する。より詳細には、この発明はパケットによって伝達されるデータに対しデータ処理機能を選択的に行うネットワークのパケット交換ノードに関する。
【０００２】
【従来の技術】
通信ネットワークはユーザ情報をソースノード（ｓｏｕｒｃｅ  ｎｏｄｅｓ）からデスティネイションノード（ｄｅｓｔｉｎａｔｉｏｎ  ｎｏｄｅｓ）へと輸送するために使用される資源の集まりを含む。前記資源は交換ノード（ｓｗｉｔｃｈｉｎｇ  ｎｏｄｅｓ）および通信リンクを含む。パケット交換ネットワークにおいては、ユーザ情報はパケット化されたデジタルデータの形式をとる。ユーザ情報は離散的な個々のパケットによって伝達され、かつ各々の個々のパケットはユーザ情報の少なくとも一部と共にそれ自身のデスティネイションアドレスを伝達する。交換ノードは該デスティネイションアドレスを評価してどのようにして適切にパケットを導くかを決定する。
【０００３】
通信ネットワークを運用するサービス提供者ならびにそれらのユーザは改善されたネットワーク効率から利益を受ける。サービス提供者は改善された効率を要求し、それは彼らがある与えられたネットワーク資源の集積を使用してより多くの量のユーザ情報を輸送することによってより大きな収入を得ることができるからである。ユーザはネットワーク資源を提供するコストがより多くの数のユーザ情報転送に及ぼすことができ単一のアイテムのユーザ情報を輸送するコストを低下させることができるため改善された効率を希望する。
【０００４】
【発明が解決しようとする課題】
残念なことに、伝統的なパケット交換および他のネットワークは比較的効率の悪い方法で運用されている。効率の悪さは特に冗長なあるいはほぼ冗長なユーザ情報を輸送するために通信リンクを消費することに関して厄介なものである。冗長なあるいはほぼ冗長なユーザ情報を輸送するために使用されるリンクの帯域幅の部分はより独立したユーザ情報を輸送するために使用することができず、かつこれが結果としてネットワーク資源の効率の悪い使用になる。
【０００５】
冗長なまたはほぼ冗長なユーザ情報を輸送することは、少なくとも部分的に、伝統的なネットワークがユーザの責務としてユーザ情報の処理を観察する傾向から生じる。例えば、単一のソースノードがあるユーザ情報を数多くのデスティネイションノードに放送することを希望した場合、該ソースノードは各々のデスティネイションノードのために必要なパケットを複製しかつ別個に送信する責務を有する。多くのネットワーク通信リンクおよび交換ノードは反復的に単に異なるデスティネイションに向けられた実質的に同じデータを処理することになる。
【０００６】
同様に、ユーザ情報のエラー検出および訂正は伝統的にはユーザによってエンド対エンド間のベースで（ｅｎｄ−ｔｏ−ｅｎｄ  ｂａｓｉｓ）行われている。ソースノードはユーザデータをあるエラーが検出されかつ多分訂正できるように符号化する。デスティネイションノードは該符号化されたデータをエラーをチェックするためにデコードする。典型的なデータ通信プロトコルにおいては、エラーが訂正できない場合、デスティネイションノードはメッセージをソースノードに戻してユーザデータの少なくともある部分の反復を要求する。第１の場所においてエラーにつながる状態は依然として反復送信の間も存在し、デスティネイションノードがユーザデータの再構成されたエラーのないバージョンを生成できる前にユーザデータが何回か送信されるという大きな可能性が存在する。
【０００７】
伝統的な通信ネットワーク資源が悪い効率で使用されている数多くの例の内の２つのみが与えられた。
【０００８】
ネットワーク資源の効率の悪い使用に関連する問題は広い範囲の通信ネットワークを苦しめるが、それらはＲＦ通信リンクに依存するネットワークにおいてより重大な結果を有する。そのようなリンクは、例えば、地上ステーションと衛星との間、一対の衛星の間、あるいは一対の地上ステーションの間のトランク通信である。ＲＦ通信リンクは電磁スペクトルの割り当てられた部分を使用するよう制約され、かつこの割り当てられた部分が効率的に管理されるべき乏しい資源である。さらに、ＲＦ通信リンクの効率的な使用は通信トラフィックのスループットを増大するためにリンクのマージンを低減することを要求する。リンクのマージンと通信トラフイックのスループットとの間に望ましいバランスが発見されたとき、ノイズが時折データに対しエラーを生じさせる。これらのデータエラーはエンド対エンド間のエラー検出および訂正機構によって通信リンクを冗長的にかつ悪い効率で使用することにつながる。
【０００９】
【課題を解決するための手段】
本発明の第１の態様によれば、データおよびルーティングコードを伝達するパケットを交換し一方選択的に前記パケットの内の選択されたものによって伝達される前記データに対して少なくとも１つの非交換ネットワーク処理機能を行なうネットワークパケット交換ノード（１６）において、複数の入力ポートおよび複数の出力ポートを有するスイッチング構造（３０）、前記スイッチング構造の出力ポートの１つに結合された入力を有しかつ前記スイッチング構造の入力ポートの１つに結合された出力を有するデータプロセッサ（２０）、そして前記スイッチング構造に結合され前記ルーティングコードを評価しかつ、前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令している場合に、前記スイッチング構造に前記少なくとも１つのネットワーク処理機能の達成を指令する前記ルーティングコードを伝達する前記選択されたパケットを前記データプロセッサに導かせるコントローラ（３２）を設ける。
【００１０】
本発明の別の態様では、データおよびルーティングコードを伝達するパケットを交換し一方選択的に前記パケットの内の選択されたものによって伝達される前記データに対して少なくとも１つの非交換ネットワーク処理機能を行なうためにネットワークパケット交換ノード（１６）を動作させる方法において、データプロセッサ（２０）をスイッチに結合し前記データプロセッサの入力が前記スイッチの複数の出力ポートの内の１つからパケットを受信しかつ前記データプロセッサの出力がパケットを前記スイッチの複数の入力ポートの内の１つに伝送するようにさせる段階、前記パケットの前記ルーティングコードを評価する段階、そして前記ルーティングコードが前記少なくとも１つのネットワーク処理機能の達成を指令している場合に、前記少なくとも１つのネットワーク処理機能の達成を指令する前記ルーティングコードを伝達する前記選択されたパケットが前記スイッチから前記データプロセッサに伝達されるよう前記スイッチを制御する段階を設ける。
【００１１】
本発明のさらに別の態様では、ソースノード、デスティネイションノード、および少なくとも１つの中間交換ノードを有し、該中間交換ノードはスイッチに結合されネットワーク処理機能を行なうデータプロセッサを有する、パケット交換ネットワーク（１０）における、データをソースノードからデスティネイションノードへと伝送する方法において、前記ソースノードにおいて、前記データおよびルーティングコードを含むパケットを形成する段階、前記パケットを前記中間交換ノードに伝送する段階、前記中間交換ノードにおいて前記ルーティングコードを評価する段階、そしてもし前記評価する段階が前記ネットワーク処理機能の達成を指令する命令を検出すれば、前記パケットを前記スイッチを通して前記データプロセッサに導き、前記データプロセッサにおいて前記ネットワーク処理機能を行なって処理されたパケットを発生し、かつ該処理されたパケットを前記データプロセッサから前記スイッチを通り前記デスティネイションノードに向かって導く段階を設ける。
【００１２】
【発明の実施の形態】
本発明のより完全な理解は添付の図面と共に詳細な説明および特許請求の範囲を参照するとによって得ることができ、図面においては同じ項目を示すのに各図面にわたり同じ参照数字が使用されている。
【００１３】
図１は、パケット交換通信ネットワーク１０の配置図を示す。ネットワーク１０は図１ではソースノード１２およびデスティネイションノード１４として示される、任意の数のユーザノード、および任意の数の中間交換ノード（ｉｎｔｅｒｍｅｄｉａｔｅ  ｓｗｉｔｃｈｉｎｇ  ｎｏｄｅｓ）１６を含む。ユーザノードが排他的にソースノード１２またはデスティネイションノード１４として行動することは要求されない。ソースおよびデスティネイションノードの表示は以下に説明する例示的なシナリオを説明するために与えられている。
【００１４】
一般に、ソースノード１２はユーザ情報を発生する。該ユーザ情報はデジタル化されかつパケット化され、次に１つまたはそれ以上の意図するデスティネイションノード１４に輸送されるべくネットワーク１０に与えられる。パケット化されたユーザ情報、またはパケット、は意図するデスティネイションノード（単数または複数）１４のネットワークアドレスを含む。スイッチングノード１６はこのネットワークアドレスを評価してパケットを１つまたはそれ以上の意図するデスティネイションノード１４に導く。図１に示されるように、パケットのソースノード１２からデスティネイションノード１４に輸送する上で多様な類別のルートに従うことができる。ソースノード１２において始めに形成されたパケットは意図するデスティネイションノード１４に到達する前に任意の数の交換ノード１６を横切ることができる。
【００１５】
本発明の好ましい実施形態では、ネットワーク１０の少なくともいくつかのスイッチングノードまたは交換ノード１６はスイッチ１８およびデータプロセッサ２０を含む。各々のスイッチ１８は任意の数の入力ポート２２および任意の数の出力ポート２４を含む。入力ポート２２はソースノード１２にかつ他の交換ノード１６から出力ポート２４に結合する。出力ポート２４はデスティネイションノード１４および他の交換ノード１６の入力ポート２２に結合する。図１は、明瞭化のため、交換ノードの入力および出力ポート、それぞれ、２２および２４、への任意のいくつかの接続を示しているにすぎない。当業者はそのような接続はＲＦリンク、光ファイバリンク、有線ケーブルリンク、その他を使用して実施できることを理解するであろう。当業者によく知られた方法で、各々のスイッチ１８は動的にその入力ポート２２をその出力ポート２４に接続し、それによってスイッチ１８を通って接続が形成されるようにする。スイッチ１８は典型的にはネットワーク１０のためのスイッチングまたはルーティング機能を行う。言い換えれば、スイッチ１８はパケットによって伝達されるユーザデータを変更することを避けることが望ましい。
【００１６】
交換ノード１６の領域内で、データプロセッサ２０はスイッチ１８の出力ポート２４に結合する入力およびスイッチ１８の入力ポート２２に結合する出力を有している。データプロセッサ２０は非スイッチング（ｎｏｎ−ｓｗｉｔｃｈｉｎｇ）ネットワーク処理機能を行い、かつそのネットワーク処理機能はパケットによって伝達されるユーザデータに適用される。
【００１７】
データプロセッサ２０によって行われる正確なネットワーク処理機能はシステム要求に依存する。異なる交換ノード１６は同じまたは異なる機能を行うことができ、かつ任意の１つの交換ノード１６は１つより多くの機能を行うことができる。交換ノード１６の複雑さを低減するため、データプロセッサ２０はスイッチ１８の各々の入力ポート２２または出力ポート２４に専用のものとはなっていない。むしろ、データプロセッサ２０によって行われるネットワーク処理機能を要求する選択されたパケットはデータプロセッサ２０にスイッチングまたはルーティングされて要求する処理を受けることができる。
【００１８】
データプロセッサ２０は、一例として、放送（ｂｒｏａｄｃａｓｔ）データネットワーク処理機能を行うよう構成できる。この例では、セットアップ（ｓｅｔｕｐ）メッセージはパケットを放送する前に交換ノード１６に送られる。前記セットアップメッセージは交換ノード１６がそこにパケットを放送すべき一群のノードを規定する。ソースノード１２は次に特定されたグループのアドレスに向けられたパケットを形成する。種々の交換ノード１６におけるデータプロセッサは必要に応じてこれらのグループアドレスされたパケットを複製しかつ該複製されたパケットをローカルデスティネイションノード１４およびローカル交換ノード１６にのみ送ることが望ましい。ネットワーク１０内で輸送される他のパケットはこの複製データ処理を受けない。ソースノード１２がパケットを複製しかつ数多くのほぼ冗長なパケットを共通のリンクによって異なるアドレスに送る代わりに、各リンクは１つのグループまたはデスティネイションノードに向けられた単一のパケットのみを輸送することが望ましい。この放送データネットワーク処理機能は後により詳細に説明する。
【００１９】
データプロセッサ２０は、他の例として、エラー訂正ネットワーク処理機能を行うよう構成することができる。この例では、「高品質（ｈｉｇｈ  ｑｕａｌｉｔｙ）」パケットはエラー訂正データ処理を受けるよう選択できる。ネットワーク１０内で輸送される他のパケットはエラー訂正処理を受けない。データプロセッサ２０はたたみ込み（ｃｏｎｖｏｌｕｔｉｏｎａｌ）または他のエラー検出および／または訂正機構を行いパケットのエラーを検出および訂正し、そしてその後のエラー訂正処理のためにエラー訂正後に該パケットを再符号化（ｒｅ−ｅｎｃｏｄｅｓ）する。エラー訂正が行われる前にパケットがソースノード１２およびデスティネイションノード１４の間の全行程を経験する代わりに、エラー訂正はネットワーク１０にわたり分配されかつ行程全体の小さな飛び越しの後に行われる。エラーが行程全体にわたり累積される代わりに、エラーは大きな累積が生じる前に訂正される。さらに、訂正できないエラーによって必要とされた再送信は行程全体にわたり送信する必要はなくエラーが生じた小さなホップまたは短距離行程（ｈｏｐ）にわたってのみ送信されればよい。このエラー訂正ネットワーク処理機能は以下により詳細に説明する。
【００２０】
データプロセッサ２０において実施される他の例示的なネットワーク処理機能は試験および測定機能を含み、該機能は選択されたパケットをパケットを送信したノードへと反射し戻す（ｅｃｈｏｓ  ｂａｃｋ）。さらに他の例は暗号解読および暗号化機能、ワイヤタップ（ｗｉｒｅｔａｐ）機能、その他を含むことができる。
【００２１】
図２は、交換ノード１６のブロック図を示す。図１に関して上に述べたように、交換ノード１６はスイッチ１８およびデータプロセッサ２０を含む。より詳細には、図２は交換ノード１６が数多くのデータプロセッサを含む実施形態を示している。各データプロセッサ２０はスイッチ１８のその専用の出力ポート２４に結合する入力およびスイッチ１８のその専用の入力ポート２２に結合する出力を有する。任意の数のデータプロセッサ２０を含めることができる。異なるデータプロセッサ２０は同じ機能を行って該機能を行う交換ノードの容量を増大することができ、あるいはまったく別の機能を行うこともできる。
【００２２】
スイッチ１８の各入力ポート２２はその専用のルーティングコード抽出器（ｒｏｕｔｉｎｇ  ｃｏｄｅ  ｅｘｔｒａｃｔｏｒ：ＲＣＥ）２６に結合している。各ルーティングコード抽出器２６はその専用のデータバッファ（ＤＢ）２８に結合し、かつ各々のデータバッファ２８はスイッチングファブリックまたはスイッチング構造（ｓｗｉｔｃｈｉｎｇ  ｆａｂｒｉｃ）３０のその専用の入力ポートに結合している。スイッチング構造３０の出力ポートはスイッチ１８のための出力ポートとして作用する。ルーティングコード抽出器２６からの出力はコントローラ３２に結合し、かつコントローラ３２からの制御出力はスイッチング構造３０に結合している。
【００２３】
図３は、パケット交換通信ネットワーク１０によって交換ノード１６（図１および図２を参照）を通って輸送される例示的なパケット３４のフォーマット図を示す。パケット３４はヘッダ部３６およびデータ部３８を含む。ヘッダ部３６はオーバヘッドまたはネットワーク関連データを伝達する。データ部３８はユーザデータを伝達する。ネットワーク１０のための目的を形成するのはこのユーザデータの伝達である。ヘッダ３６はルーティングコード４０および他のオーバヘッドデータセクション４２に分割される。他のデータセクション４２はパケットＩＤまたはシリアル番号、ソースノード１２のアドレス、パケット３４が受け渡されるネットワーク１０の１つまたはそれ以上の前のノードのアドレス、その他を伝達する。
【００２４】
ルーティングコード４０はさらにデータ処理セクション４４およびデスティネイションアドレスセクション４６に分割される。デスティネイションアドレスセクション４６はデスティネイションノード１４のアドレスを伝達する。しかしながら、数多くのデスティネイションノード１４に伝達されるべきパケット３４に対しては、デスティネイションアドレスセクション４６は単一のデスティネイションノードアドレスではなくパケット３４が放送されるべきグループの識別子（ｉｄｅｎｔｉｔｙ）を伝達する。データ処理セクション４４はスイッチングノード１６に対し選択的にデータプロセッサ２０によって提供されるネットワーク処理機能を提供すべきか否かおよび複数のデータプロセッサ２０が交換ノード１６に含まれている場合にどの機能（単数または複数）を行うべきかを指示するコードを提供する。従って、ルーティングコード４０のデータ処理セクション４４はコントローラ３２によってスイッチング構造３０を通してパケットをどのように導くかを決定する上で使用される。
【００２５】
図２および図３を参照すると、パケット３４が、データプロセッサ２０によってドライブされる入力ポート２２を含む、任意の入力ポート２２で受信されたとき、対応するルーティングコード抽出器２６はパケット３４からルーティングコード４０を抽出する。ルーティングコード４０はパケット３４が対応するデータバッファ２８に渡されている間に評価のためにコントローラ３２に渡される。コントローラ３２はパケット交換技術においてよく知られたプログラム可能な装置である。コントローラ３２は、以下に説明するプログラムの影響の下で、スイッチング構造３０を通してパケット３４をどのように導くかを決定する制御プロセスを行う。スイッチング構造３０はコントローラ３２によって指令されるパターンでその入力ポートをその出力ポートに接続することができる伝統的なファブリック構造（ｆａｂｒｉｃ  ｓｔｒｕｃｔｕｒｅ）である。当業者に知られたクロスバー（ｃｒｏｓｓｂａｒ）、バンヤン（ｂａｎｙａｎ）、ノックアウト（ｋｎｏｃｋｏｕｔ）および他のスイッチング構造はすべてスイッチング構造３０において使用するのに首尾よく適合する。
【００２６】
ルーティングコード４０の評価に従って、コントローラ３２はスイッチング構造３０に所望の接続を行わせる。データバッファ２８はパケット３４がスイッチング構造３０の入力ポートに、コントローラ３２がルーティングコード４０を評価しかつスイッチング構造３０に対し所望の接続を行うよう指令した後に、適切な時間に到達するようパケット３４を同期させる。
【００２７】
図４はルーティングコード４４を評価するためにコントローラ３２において行われる制御プロセス４８のフローチャートを示す。プロセス４８は望ましくは技術的によく知られた方法でプログラミング命令によって規定される。
【００２８】
プロセス４８はタスク５０を含み、その間にルーティングコード４０が得られる。便宜的に、図４はプロセス４８を一度に単一のルーティングコード４０を評価し、次に他のルーティングコード４０を評価するよう反復するものとして示している。従って、タスク５０は次に利用可能なまたは入手可能なルーティングコード４０を得ることができ、かつこの次のルーティングコード４０は評価されるべきスイッチ４８の次の入力ポート２２から供給される。しかしながら、プロセス４８はあるいは数多くのルーティングコード４０を並列に評価するよう構成することもできる。
【００２９】
タスク５０の後に、問合せタスク５２がデータ処理コマンドが評価されているルーティングコード４０に存在するか否かを判定する。タスク４２はその決定を行う上でルーティングコード４０のデータ処理セクション４４（図３を参照）を評価する。タスク５２はまた該ルーティングコード４０が関連する特定の入力ポート２２（図２を参照）およびプロセスまたは処理４８が行われている交換ノード１６において要求されるネットワーク処理機能が提供されるかを評価することもできる。
【００３０】
もし何らのデータ処理コマンドも存在しなければ、もし交換ノード１６において提供されない機能に対するデータ処理コマンドが検出されれば、あるいはもしコマンドがパケットに対してちょうど行われた機能の達成を指令しておれば、ルーティングコード４０が受信された入力ポート２２によって判定されて、タスク５４が行われる。タスク５４はルーティングコード４０のデスティネイションアドレスセクション４６（図３を参照）を評価する。この評価に応じて、タスク５４はスイッチング構造３０（図２を参照）に対し制御出力を提供し、該制御出力はスイッチング構造３０がパケット３４をデータプロセッサ２０から離れてかつパケット３４に対するデスティネイションに向かって導かれるようにする。タスク５４の後に、プログラム制御はタスク５０にループバックして次のルーティングコードを評価する。
【００３１】
タスク５２が交換ノード１６において行われるネットワーク処理機能の達成を指令するルーティングコード４０に遭遇したとき、タスク５６が行われる。タスク５６はどのデータプロセッサ２０に対しパケット３４が導かれるべきかを決定する。タスク５６は交換ノード１６において複数のデータプロセッサ２０が利用可能な場合に単一のデータプロセッサ２０を選択するよう優先順位付け機構を実施することが望ましい。もし複数のデータプロセッサ２０が同じ機能を達成すれば、タスク５６はどのデータプロセッサ２０が各々の与えられた瞬間にパケット３４に対しそれらのネットワーク処理機能を行うために利用可能かを追跡しかつ利用可能なデータプロセッサ２０を選択するのが望ましい。さらに、タスク５６は望ましくはルーティングコード４０が到来する入力ポート２２を監視する。タスク５６はデータプロセッサ２０によってちょうど処理されたパケットがその同じデータプロセッサ２０に導き戻されることを防止するためのステップを行うことが望ましい。
【００３２】
タスク５６に続き、タスク５８はスイッチング構造３０（図２を参照）に対し制御出力を提供しこれはスイッチング構造３０がパケット３４をデータプロセッサ２０の選択された１つに導くようにさせる。タスク５８の後に、プログラム制御はタスク５０にループバックし次のルーティングコード４０を評価する。したがって、プロセス４８により、コントローラ３２（図２を参照）はルーティングコード４０（図３を参照）を評価しかつパケット３４（図３を参照）をそれらのデスティネイションに向かって前進的に（ｏｎｗａｒｄ）あるいはパケット３４によって伝達されるデータ３８（図３を参照）に対してネットワーク処理機能を行なうデータプロセッサ２０へと選択的に導く。
【００３３】
図５は、選択されたパケット３４（図３を参照）におけるエラーを訂正するよう構成されたデータプロセッサ２０において行なわれる例示的なエラー訂正データプロセッサのプロセス６０のフローチャートを示す。プロセス６０はプログラミング命令によりあるいは技術的に良く知られた他の方法で規定される。
【００３４】
プロセス６０はエラー訂正を必要とする選択されたパケット３４がデータプロセッサ２０に到達したことを判定する問合わせタスク６２を含む。そのような選択されたパケット３４は、図２〜図４を参照して上に説明した、コントローラのプロセス４８およびスイッチ１８の動作によりデータプロセッサ２０に到達する。プロセス６０はパケット３４が受信されたときにタスク６２からタスク６４へと進行する。タスク６４は良く知られたたたみ込みデコード（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｄｅｃｏｄｉｎｇ）、チェックサムまたは合計検査（ｃｈｅｃｋｓｕｍ）、パリティ、トレリス（Ｔｒｅｌｌｉｓ）、または他の技術を使用してパケットデータ３８（図３を参照）をデコードする。
【００３５】
次に、タスク６６はもし可能であればデコードデータタスク６４に応じて示されたエラー訂正を行なう。示されてはいないが、もしエラーが訂正するには大きすぎる場合は、タスク６６はメッセージを形成しかつ送信してパケット３４が受信されたソースノード１２（図１を参照）または前の交換ノード１６に対しパケット３４を再送信するよう要求することができる。タスク６６がエラーを訂正した後、タスク６８はデータ３８を符号化し、それによってネットワーク１０におけるその後のノードが同様のエラー訂正プロセスを行なうことができるようにする。次に、タスク７０はタスク６８において前に符号化されたデータ３８を使用して処理されたパケットを発生しかつ任意選択的に該処理されたパケットの複製をセーブしてそれが必要であれば再送信できるようにする。タスク７０の後に、タスク７２は前記処理されたパケットをスイッチ１８（図１〜図２を参照）の入力ポート２２に送信する。スイッチ１８は処理されたパケットをそのデスティネイションノード１４（図１を参照）に導くことになる。
【００３６】
タスク７２の後に、プログラム制御はタスク６２にループバックしてエラー訂正を必要とする次の選択されたパケット３４の到達を待つ。図５はプロセス６０を順次的に単一のパケット３４を処理するものとして示しているが、当業者はプロセス６０はまた幾つのパケット３４を並列的に処理するよう構成できることを理解するであろう。特定の構成にもかかわらず、プロセス６０は選択されたパケット３４におけるデータエラーを訂正する。プロセス６０がネットワーク１０にわたる幾つの異なる交換ノード１６（図１〜図２を参照）において行なわれたとき、結果として高品質の伝送経路が得られる。伝送のためデータ３８に入り込むいずれのエラーも迅速に訂正されかつ累積することが許容されない。もし再送信が要求されれば、再送信はネットワーク１０の短かいスパンにわたり進行することができかつソースノード１２とデスティネイションノード１４との間の行程全体にわたり進行する必要はない。
【００３７】
図６は、選択されたパケット３４（図３を参照）を放送するよう構成されたデータプロセッサ２０において行なわれる放送データプロセッサ処理７４のフローチャートを示す。プロセス７４はプログラミング命令によりあるいは技術的に良く知られた他の方法で規定される。
【００３８】
実際に選択されたパケット３４を放送する前に、プロセス７４はタスク７６を行なう。タスク７６は受信グループの定義を入手しかつセーブする。該受信グループの定義はネットワーク１０の任意のノードから発信することができかつグループ放送テーブル７８にセーブされる。テーブル７８は当業者に良く知られた方法でメモリ構造を使用して実施できる。テーブル７８はネットワークノードアドレスを規定または定義されたグループと関連させる。該ネットワークノードアドレスはデスティネイションノード１４に対するアドレスとするかあるいは他のグループのアドレスとすることができる。他のグループアドレスはネットワーク１０における他の交換ノード１６を識別する。望ましくは、テーブル７８に含まれるネットワークノードのアドレスはプロセス７４を行なっている交換ノード１６に対するローカルアドレスである。言い換えれば、アドレスはデータ放送を行なうよう構成されたデータプロセッサ２０を有する他の交換ノード１６を通ることなくこの交換ノード１６から到達できる他の交換ノード１６およびデスティネイションノード１４に対して含まれる。したがって、特定のソースノード１２から発信する特定の組の放送データパケットに対するルーティングを規定するために異なる交換ノード１６に格納された各々の受信グループの規定または定義は他のものと異なっている。各々の規定または定義は望ましくは該規定または定義を受ける交換ノード１６に対してローカルな他の交換ノード１６を識別する。
【００３９】
前記受信グループの規定または定義が確立された後、プロセス７４は選択されたデータパケット３４を放送し始める用意ができている。プロセス７４は放送される必要がある選択されたパケット３４がデータプロセッサ２０に到達したことを判定する問合わせタスク８０を含む。そのような選択されたパケット３４は、図２〜図４に関して上に説明した、コントローラの処理４８およびスイッチ１８の動作によってデータプロセッサ２０に到達する。処理７４はパケット３４が受信されたときにタスク８０を通ってタスク８２に進む。
【００４０】
タスク８２は処理されたパケットを発生する。該処理されたパケットはデータ３８（図３を参照）を受信されたパケット３４から処理されたパケットへと複製しかつ適切なルーティングコード４０（図３を参照）を処理されたパケットに挿入することによって発生される。適切なルーティングコード４０はグループ放送テーブル７８から得ることができる。図６に示される処理７４の実施形態では、処理されたパケットはテーブル７４に格納された受信グループ規定における各エントリに対して順次発生される。したかって、タスク８２はテーブル７８から次のエントリを順番に得ることによりルーティングコード４０を選択することができる。さらに、タスク８２はネットワーク１０を通って送信されるパケット３４のために必要とされる任意の他の最終的なパケットのフォーマッティングを行なう。例えば、パケットＩＤが発生される。
【００４１】
次に、タスク８４は前記処理されたパケットをスイッチ１８（図１〜図２を参照）の入力ポート２２に伝送する。スイッチ１８は該処理されたパケットを上に述べたタスク８２において挿入されたルーティングコードにしたがって導く。タスク８４の後に、問合わせタスク８６は最後の処理されたパケットの放送がテーブル７８の最後のルーティングコードのエントリに向けられたか否を判定する。余分のルーティングコードがテーブル７８に残っているかぎり、プログラム制御はタスク８２に戻りその余分のルーティングコードに対して処理されたパケットを発生する。最後のルーティングコードに対して処理されたパケットが発生されたとき、プログラム制御はタスク８０にループバックし放送を必要とする次の選択されたパケット３４の到達を待機する。
【００４２】
当業者は図６に示されたプログラミングのループは付加的なタスクを含めることによって抜け出す（ｂｒｅａｋ  ｔｈｒｏｕｇｈ）ことができることを理解するであろう。例えば、処理７４は図６に示されたものと同様の付加的なタスクを含み複数の受信グループ規定の同時的なサービスを可能にすることができる。いずれか１つの受信グループ規定に対するプログラミングループは受信グループ規定が取りこわされるまで抜け出す必要はない。
【００４３】
したがって、処理７４は必要に応じて選択されたパケット３４を複製し該選択されたパケット３４をネットワーク１０内のローカルノードに放送する。これらのローカルノードの幾つかはデータ放送機能を行なうよう構成された他のデータプロセッサ２０が配置された他の交換ノード１６とすることができる。これらの他の交換ノード１６はそれらが受信したパケットを該他の交換ノード１６に対してローカルに位置するさらに他のネットワークノードへと放送する。このプロセスによって、ネットワーク１０におけるソースノード１２の近くに位置する通信リンクはほぼ同じパケットを反復して伝達する必要はなく、それは該パケットがネットワーク１０によってできるだけそれらの意図するデスティネイション近くで複製されるからである。
【００４４】
当業者はネットワーク交換ノード１６は非常に多様な使用方法で配置できることを理解するであろう。例えば、単一の交換ノード１６において同じまたは異なるデータプロセッサ（２０）により反復的にパケットをルーティングすることによりマルチパス処理を行なうことができる。例えば、単一の交換ノード１６においてエラー訂正および放送の双方を行なうことができる。さらに、第１ステージの処理を１つの交換ノード１６で行ない、第２ステージの処理を他の交換ノード１６で行ない、以下同様に処理を行なうことによって複雑なまたは複合ネットワーク処理を行なうことができる。ネットワークのルーティングはその後の処理ステージが前のステージを行なった交換ノード１６において行なわれるよう構成することができる。
【００４５】
【発明の効果】
要するに、本発明は選択的なデータ処理を備えたパケット交換のための改善されたネットワークノードおよび対応する方法を提供する。ネットワークパケット交換ノードはパケットによって伝達されるユーザデータに対し選択的にデータ処理を行なうよう構成される。これらのネットワークパケット交換ノードは通信ネットワークにわたり分配される。次にネットワークはもしソースおよびデスティネイションノードによって行なわれれば冗長なユーザ情報の輸送の増大につながるあるデータ処理機能を選択されたパケットに対して行なうためネットワーク効率が改善される。さらに、ユーザデータに対してデータ処理を選択的に行なうネットワークパケット交換ノードは実質的に増大したスイッチの複雑さを必要としない。
【００４６】
本発明が好ましい実施形態に関して上で説明された。しかしながら、当業者は本発明の範囲から離れることなくこれらの好ましい実施形態に対して変更および修正を成すことができることを認識するであろう。例えば、ここで示された処理およびタスクは実質的に等価な結課を達成しながら説明されたものと異なるよう類別しかつ編成することができる。同様に、データプロセッサを上で特に述べたもの以外の処理機能を行なうよう構成することにより等価な結果を達成することができる。これらおよび他の明白な変更および修正は本発明の範囲内に入るものと考える。
【図面の簡単な説明】
【図１】パケット交換通信ネットワークの配置図である。
【図２】パケット交換通信ネットワークにおいて使用される交換ノードを示すブロック図である。
【図３】パケット交換通信ネットワークによって伝送されるパケットを示すフォーマット図である。
【図４】交換ノードの制御部分において行なわれる処理を示すフローチャートである。
【図５】交換ノードの第１の実施形態のデータ処理部分において行なわれるエラー訂正データプロセッサの処理を示すフローチャートである。
【図６】第２の実施形態のデータプロセッサにおいて行なわれる放送データプロセッサの処理を示すフローチャートである。
【符号の説明】
１０  パケット交換通信ネットワーク
１２  ソースノード
１４  デスティネイションノード
１６  中間交換ノード
１８  スイッチまたは交換機
２０  データプロセッサ
２２  入力ポート
２４  出力ポート
２６  ルーティングコード抽出器（ＲＣＥ）
２８  データバッファ（ＤＢ）
３０  スイッチング構造
３２  コントローラ
【図１】
0003904682.tif 000002
【図２】
0003904682.tif 000003
【図３】
0003904682.tif 000004
【図４】
0003904682.tif 000005
【図５】
0003904682.tif 000006
【図６】
0003904682.tif 000007