JP2002501251A - ユニバーサル・データ交換ゲートウエイのための方法および装置 - Google Patents

ユニバーサル・データ交換ゲートウエイのための方法および装置

Info

Publication number
JP2002501251A
JP2002501251A JP2000528920A JP2000528920A JP2002501251A JP 2002501251 A JP2002501251 A JP 2002501251A JP 2000528920 A JP2000528920 A JP 2000528920A JP 2000528920 A JP2000528920 A JP 2000528920A JP 2002501251 A JP2002501251 A JP 2002501251A
Authority
JP
Japan
Prior art keywords
node
packet
network
gateway
protocol
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
JP2000528920A
Other languages
English (en)
Other versions
JP2002501251A5 (ja
Inventor
アラン ワルベック、
トーマス、 エヌ. リー、
Original Assignee
イナリ、インコーポレイテッド
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 イナリ、インコーポレイテッド filed Critical イナリ、インコーポレイテッド
Publication of JP2002501251A publication Critical patent/JP2002501251A/ja
Publication of JP2002501251A5 publication Critical patent/JP2002501251A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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
    • H04L69/08Protocols for interworking; Protocol conversion
    • 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
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 1つまたは複数のネットワーク・プロトコルと、1つまたは複数の制御プロトコルの間でデータを転送できるようにするユニバーサル・ゲートウエイ(104)が記載されている。種々のプロトコルが同じ物理的ネットワーク媒体(100)または別々のネットワーク(100、130)に存在できる。ゲートウエイ(104)を用いることによって、エンドユーザーは従来の自立した、互換性のないネットワークを一緒に結合して、ユニバーサルにアクセスできる、中央管理された「スーパーネットワーク」にできる。ゲートウエイ(104)は集中化されたノード・データベースと、レガシイ・プロトコルのサポートと、規則エンジンと、オブジェクト指向クラス・ライブラリ・インタフェースとを提供する。集中化されたノード・データベースに対する高信頼性のアクセスが、待機サーバ・ノードによって提供されるシステム障害耐性により強化される。また、ゲートウエイ(104)は各種のデータストリームを電源線を通じて分配する能力をもたらす。ゲートウエイ(104)によって提供された経路選択ハンドラによりTCP/IPなどの、ほとんどいかなるレガシイ・データ・ネットワーク化サービスを電源線を通じて送ることができる。

Description

【発明の詳細な説明】
【0001】
【技術分野】発明の背景 発明の分野 本発明はコンピュータ・ネットワーク・プロトコル・ゲートウエイに関し、特
に、電源線ネットワーキング・システムに適合させられるゲートウエイに関する
【0002】
【従来の技術】関連技術についての説明 コンピュータ、特にパーソナルコンピュータの広範囲な可用性によってコンピ
ュータ・ネットワークの数が急速に増加した。2台または3台以上のコンピュー
タを一緒にネットワーク化することによってコンピュータが情報、ファイル資源
、プリンタを等を共用できる。2台または3台以上のパーソナル・コンピュータ
およびプリンタを一緒に接続してネットワークを構成することは簡単な作業であ
る。コンピュータとプリンタはケーブルを用いて一緒に簡単に接続され、必要な
ソフトウエアがコンピュータにインストールされる。ネットワークの用語では、
ケーブルはネットワーク媒体であり、コンピュータとプリンタはネットワーク・
ノードである。ネットワーク・ノードは、伝送制御プロトコル、インターネット
・プロトコル(TCP/IP)などのプロトコルを1つまたは複数個用いて相互
に「話しあう」。
【0003】 ゲートウエイは1つのプロトコルから別のプロトコルへのプロトコル翻訳を実
行するために用いられるので、種々のプロトコルを使用する2つのネットワーク
を相互に接続できる。たとえば、Prodigyネットワーク・サービスは、そ
の内部に所有する電子メ−ル・フォーマットとインターネット電子メ−ルフォー
マットとの間で翻訳するゲートウエイを有する。
【0004】 標準的なネットワーク・プロトコルは通常、各ネットワーク・ノードが、十分
な処理性能と十分な記憶性能を持つ「スマート(smart)」な装置であると
の仮定の下に作られている。たとえば、典型的なパーソナル・コンピュータ(P
C)はほとんどいかなるネットワーク・プロトコルも取り扱う十分以上の処理性
能と記憶性能を有する。しかし、プリンタは必要な処理性能と記憶性能を有しな
い「ダム(dumb)」装置である。プリンタをネットワークに接続できるよう
にするネットワーク・プリンタ・アダプタを提供する製造業者もいる。プリンタ
・アダプタは、完全に構成されたPCの処理性能と記憶性能に類似する処理性能
と記憶性能を提供する単一のボードコンピュータである。したがって、ネットワ
ーク・プリンタ・アダプタは「ダム」プリンタを「スマート」装置に変換する。
ネットワーク・プリンタ・アダプタは実際に動作するが、比較的高価であるので
多くの家庭や小規模の事務所の環境には向いていない。さらに、プリンタ・アダ
プタはその他の非PC装置をネットワークに接続するのにはあまり良く適してい
ない。たとえば、ユーザーは、屋外灯、警報器、電話装置等などのダム装置をユ
ーザーのコンピュータ・ネットワークに接続することをしばしば希望する。それ
らの各ダム装置をスマート装置の変えるネットワーク・アダプタ・カードを購入
することは、それを断念させるほど高価につく。
【0005】 スマート装置のために使用されるプロトコルは「ネットワーク・プロトコル」
と通常呼ばれている。ダム装置のために用いられるプロトコルは「制御プロトコ
ル」としばしば呼ばれる。ネットワーク・プロトコルは、性能と複雑さとにおい
て、制御プロトコルとは全く異なる。それらの違いのために、ネットワーク・プ
ロトコルの間でデータを転送するように構成されているゲートウエイは、制御プ
ロトコルの間でデータを転送するという作業には通常あまり適さない。より困難
なことはネットワーク・プロトコルと制御プロトコルの間でデータを転送する作
業である。
【0006】 既存の家庭用制御/オートメーション製品は、集中化されたクライアント/サ
ーバ・モデルではなくて同列間モエルを基にしている制御プロトコルを使用する
傾向がある。これは、各ノードが状態情報と諸規則をローカルに記憶することが
要求されるために、これらの製品の可用性を制限する。使用が容易な、集中化さ
れたユーザー・インタフェース部品がないために、ネットワークの構成はしばし
ば困難である。さらに、競合する製品(たとえば、X−10とCEBus)の間
の相互使用可能性がほとんど不可能である。発明の概要 本発明は、1つまたは複数のネットワーク・プロトコルと1つまたは複数の制
御プロトコルの間でのデータ転送可能にする、安価で、使用が容易であり、融通
性があり、信頼性が高く、かつ拡張性があるゲートウエイ・アーキテクチャを提
供することによって、それらの問題およびその他の問題を解決する。種々のプロ
トコルが同じ物理的ネットワーク媒体上に共存できる。このゲートウエイは、選
択されたプロトコルの中にネットワーク・プロトコルを通り抜けさせ(tunn
eling)、かつ集中化された制御も行う。
【0007】 したがって、このゲートウエイはデータおよび制御ネットワークのエンドユー
ザー、特に家庭および小規模事務所の環境における利用者に極めて大きな利益を
もたらす。このゲートウエイによって、エンドユーザーは、他のネットワークと
非互換の従来の自立したネットワークを容易かつ好都合に組み合わせて、コンピ
ュータ、プリンタ、警報装置、家庭用機器、照明装置、電話等を接続する普遍的
にアクセスできる、集中管理される「スーパーネットワーク」にできる。
【0008】 このゲートウエイは集中化されたノード・データベースと、TCP/IPなど
のレガシイ(legacy)プロトコルの支持、規則エンジン、およびオブジェ
クト指向のクラス・ライブラリ・インタフェースを提供する。このゲートウエイ
は、インターネット・ブラウザなどの使用が容易で、共通のグラフィカル・ユー
ザー・インタフェースを用いて家庭用/小規模事務所のオートーメーションおよ
び制御の広域な可能性を提供する。自動装置の発見によって構成が簡単にされる
。集中化されたノード・データベースに対するアクセスは、待機サーバによって
提供されるシステム障害耐性によって高められる。
【0009】 このゲートウエイは、電源線ネットワークと共に使用されると、各種のデータ
ストリームを電源線を通じて分配する能力を有する。たとえば、ケーブルモデム
またはその他の種類の高速インターネット接続器を有するネットワーク・ユーザ
ーは、既に設置されている電気配線以外の追加の配線の必要なしに家庭/事務所
内のどこにでもインターネット・トラフィックを送ることができる。音声データ
も電源線を通じて家庭/事務所全体に容易に送られる。このゲートウエイにより
提供されるハンドラによって、今日一般に用いられているほとんど全てのレガシ
イ・データネットワーク化サービスおよびプロトコルを、電源線を通じて送るこ
とができる。
【0010】 開示されている発明の諸利点および諸特徴は、当業者は下記の図面とともに以
下の詳細な説明を読んだ時に容易に理解されるであろう。
【0011】 図面において、任意の3桁の番号の最初の数字は、要素が最初に現れた図の番
号を一般に示している。4桁の参照番号が用いられた時は、初めの2桁が図面番
号を示す。好適な実施形態の詳細な説明 図1はユニバーサル・ゲートウエイとともに使用されるのに適したコンピュー
タ・ネットワーク・システムを示す。第1の物理的ネットワークはネットワーク
媒体100(ケーブルとして示されている)を用いている。スマート・ノード(
パーソナル・コンピュータ103として示されている)はコネクタ102によっ
てネットワーク媒体100に接続されている。プリンタ110と、コンピュータ
104と、安全照明装置118もネットワーク媒体100に接続されている。照
明装置118は、比較的低い計算能力と比較的小さい記憶を持つ「ダム」ノード
の例である。コンピュータ104は、公衆交換電話回線(PSTN)として示さ
れている第2のネットワーク130にも接続されている。
【0012】 典型的なネットワーク環境においては、ネットワーク媒体100は各種のデー
タ・プロトコルのためのデータ・トラフィックを伝えるように構成されている。
したがって、図1における例により示されているように、コンピュータ103は
TCP/IPを用いてコンピュータ104と通信でき、コンピュータ104は、
たとえば、この開示された出願の、付録Aとして表示されている部分に記載され
ている電源線交換(PLX)プロトコルなどの制御プロトコルを用いて照明装置
118と通信する。付録Aは「電源線交換プロトコル方法および装置(METH
OD AND APPARATUS FOR POWER LIME EXCH
ANGEPROTOCOL)」という名称の米国特許出願09/211950の
部分を含む。この米国特許出願の開示は参照することによりここに含まれる。
【0013】 ユニバーサル・ゲートウエイは、コンピュータ104などのコンピュータでソ
フトウエア・プログラムとして実行される。このユニバーサル・ゲートウエイは
種々のネットワーク・プロトコルの間、および種々の物理的ネットワークの間の
接続を行う。たとえば、図1に示すように、コンピュータ104においてソフト
ウエア・プログラムとして実行されているこのユニバーサル・ゲートウエイはT
CP/IPプロトコルをPLXプロトコルに接続することにより、コンピュータ
103が照明装置118と通信できるようにする。
【0014】 コンピュータ104においてソフトウエア・プログラムとして実行されている
このユニバーサル・ゲートウエイは別々の物理的ネットワークの間のデータ転送
も行うことにより、別々の物理的ネットワークにおける装置が相互に通信できる
ようにする。図1において、このユニバーサル・ゲートウエイはネットワーク1
30と照明装置118との間のデータ転送を行う。
【0015】 このユニバーサル・ゲートウエイは階層状のネットワーク・プロトコルに適合
する。スマート・ノード(コンピュータ103および104など)用に構成され
たほとんどのネットワークは、オープン・システム・インタフェース(OSI)
委員会により開発されたネットワーク・アーキテクチャ・モデルを基にしている
。OSIアーキテクチャは、通信システム内の個々の各ハードウェア層およびソ
フトウエア層と、層の間の相互依存性と、各層が実行する独自の機能とについて
の概要を示すネットワーク・モデルを定める。
【0016】 図2は、1番下の層から1番上の層まで、物理層201、データ・リンク層2
02、ネットワーク層203、トランスポート層204、セッション層205、
プレゼンテーション層206、およびアプリケーション層207の7つの層とし
てOSIアーキテクチャが編成されていることを示す。各層はそれのすぐ下の層
を用いてすぐ上の層のサービスを行う。ある実現例では、ある層は副層により自
身で構成できる。ある層は、特定のネットワーク・プロトコルが動作する2つま
たは3つ以上の通信装置またはコンピュータの、ソフトウエア環境および/また
はハードウェア環境である。ネットワーク接続は、おのおの異なる層またはレベ
ルにある、多少とも独立している1組のプロトコルであるとして考えることがで
きる。1番下の層は、種々のノードにおけるハードウェアの間の直接ノード間通
信を支配し、1番上はユーザー・アプリケーション・プログラムで構成されてい
る。各層はそれの下の層を用いて上の層に対するサービスを行う。1つのホスト
における各ネットワーク化コンポーネント・ハードウェアまたはソフトウエアは
それの層に適切なプロトコルを用いて、他のノードにおける対応するコンポーネ
ント(それの「同等なコンポーネント」)と通信する。そのような階層状のプロ
トコルは同列間プロトコルとして知られていることがある。
【0017】 階層状にされたプロトコルの利点は、1つの層から別の層へ情報を送る方法が
プロトコルの部分として明らかに指定され、かつ1つのプロトコル層内での変化
が他のプロトコル層に影響を及ぼすことが阻止されることにある。これによって
通信システムの設計および維持が簡単になる。
【0018】 物理層201はOSI階層化モデル内の1番下の層である。それは媒体アクセ
ス制御(MAC)を含むネットワークの電気的接続と機械的接続を含む。媒体ア
クセス制御とは、データ伝送媒体100(たとえば、ネットワーク・ケーブル)
の制御、およびそれに対するアクセスを指す。物理層201はデータ・リンク層
202により用いられる。
【0019】 データ・リンク層202はOSI層モデル内の1番下から2番目の層である。
データ・リンク層202はデータを(物理層201で送られる)フレームに分割
し、確認応答フレームを受信する。データ・リンク層202は誤り検査を行い、
正しく受信されなかったフレームを再送する。データ・リンク層202は誤りの
ない仮想チャネルをネットワーク層203に提供する。データ・リンク層202
は上側の副層、すなわち、論理リンク制御(LLC)と、媒体アクセス制御(M
AC)の部分を含む下側の副層とに通常分割される。
【0020】 ネットワーク層203はOSIの7層モデル内の1番下から3番目の層である
。ネットワーク層203は、送り手からデータ・リンク層202を経由する受け
手までのデータ・パケットの経路を決定し、かつトランスポート層204によっ
て用いられる。最も一般的なネットワーク層プロトコルはIPである。
【0021】 トランスポート層(または「ホスト−ホスト層」)204はOSIモデル内の
中間層である。トランスポート層204は、最初のノードがメッセージを第2の
ノードへ送ることができ、それらのメッセージが変更されないで、正しい順序で
到達するように、誤りのない点間の仮想接続を行うためにネットワーク層203
をどのように使用するかを決定する。トランスポート層204はノードの間の接
続を行い、かつ解消する。
【0022】 セッション層205はOSIモデル内の1番上から3番目のプロトコル層であ
る。セッション層205はトランスポート層204を用いて種々のノードにおけ
るプロセス間の接続を確立する。セッション層205はセッションの安全と作成
を取り扱う。
【0023】 プレゼンテーション層206はOSIモデル内の1番上から2番目のプロトコ
ル層である。プレゼンテーション層206はノードの間の違いをならそうとして
テキスト圧縮、コードまたはフォーマットの変換などの機能を実行する。プレゼ
ンテーション層206によってアプリケーション層内の適合しないプロセスがセ
ッション層を介して通信できるようにされる。
【0024】 アプリケーション層207はOSIモデル内の1番上の層である。アプリケー
ション層207はネットワークについてユーザーが見るもの(たとえば、電子メ
ール・メッセージのフォーマット)に関するものである。プレゼンテーション層
206はアプリケーション層207に、ネットワークで使用されているフォーマ
ットとは独立したデータのなじみのローカル表現を提供する。アプリケーション
層プロトコル例にはTelnet、ファイル転送プロトコル(FIP)、シンプ
ル・ネットワーク・マネージメント・プロトコル(SNMP)、シンプル・メー
ル転送プロトコル(SMTP)、インターネット制御メッセージ・プロトコル(
ICMP)、ネットウエア・コア・プロトコル(NCP)、経路指定情報プロト
コル(RIP)、サービス・アドバータイジング・プロトコル(SAP)、単純
ファイル転送プロトコル(TFTP)、およびシステムフォールトトレランスプ
ロトコル(SFTP)が含まれる。
【0025】 図3はユニバーサル・ゲートウエイ300のアーキテクチャと、ゲートウエイ
300が、アプリケーション・プログラム、ハードウェア・ドライバなどの他の
ソフトウエア・コンポーネントとどのようにしてやり取りするかを示す。アプリ
ケーション・プログラム302は1組のゲートウエイ・ファウンデーション・ク
ラス304を用いてゲートウエイ300と通信する。ゲートウエイ・ファウンデ
ーション・クラス304はデータベース・アクセス・モジュール306と、事象
ハンドラ310と、ディスパッチャ320と、ルーティンオペレーティングシス
テム・サービス(RTOS)311と通信する。データベース・アクセス・モジ
ュール306は、(ノード・データベース)と呼ばれている情報保存部308を
含む。ノード・データベース308はデータベース、リンクされたリスト、表、
マップ、コンテナ等として編成できる。データベース・アクセス・モジュール3
06は事象ハンドラ310と、ペイロード/プロトコル・プロセッサ312とも
通信する。ペイロード/プロトコル・プロセッサ312は、生データ・ハンドラ
316、ストリーミング・データ・ハンドラ317、およびCAL制御ハンドラ
318などのペイロード/プロトコル・ハンドラを1つまたは複数個含む。事象
ハンドラ310は規則エンジン314およびディスパッチャ320とも通信する
。ディスパッチャ320はRTOS311と、規則エンジン314と、PLX装
置ドライバ322と、レガシイデバイスドライバ326とも通信する。PLXデ
バイスドライバ322はPLX制御装置ドライバ323(ダム装置のため)とP
LXデータ装置ドライバ324(スマート装置のため)を含む。
【0026】 ゲートウエイ300は1つのプロトコルから別のプロトコルへのプロトコル翻
訳を行うので、異なるプロトコルを使用している2つのネットワークを相互に接
続できる。それらのネットワークは実在の物理的ネットワークとすることもでき
れば、ネットワークを仮想ネットワーク(すなわち、ソフトウエア内にのみ存在
する)とすることができる。ゲートウエイ300はレガシイ・プロトコルと主(
すなわち、所望の)プロトコル(たとえば、電源線プロトコル)との間のインタ
フェースを行う。レガシイ・プロトコルという用語は既存のプロトコルに限定さ
れるものではない。それよりも、レガシイ・プロトコルという用語は主プロトコ
ル以外の任意のプロトコルを指すことを意図するものである。レガシイデバイス
ドライバは、たとえば、X−10ドライバ329とCEBusドライバ332を
含む。各レガシイ装置ドライバは、レガシイ装置ドライバをゲートウエイに適合
させるシムを含むことを選択もできる。一実施形態では、主プロトコルは電源線
プロトコルであるが、ゲートウエイ300はそのようには限定されない。したが
って、主プロトコルは、たとえば、TCP/IP、IPX、ADSL、およびこ
の開示の他の箇所に掲記されているか、この技術で知られているその他のプロト
コルのいずれかを含めた任意のプロトコルとすることができる。
【0027】 イーサネット・ドライバ362およびADSLドライバ364などのレガシイ
装置ドライバ362をストリーミングするために、ゲートウエイはレガシイ・ス
タック352を提供する。レガシイ・スタック352はTCP/IPスタック3
52およびSPX/IPXスタック354などのOSIプロトコル・スタックを
サポートする。レガシイ・スタック352はストリーミング・レガシイ装置ドラ
イバ362および経路選択ハンドラ355と通信する。経路選択ハンドラ355
はストリーミング・レガシイ装置ドライバ362と、レガシイ・スタック352
と、ペイロード/プロトコル・プロセッサ312と通信する。レガシイ・スタッ
ク352はレガシイ・アプリケーション350とも通信する。
【0028】 ゲートウエイ300は各種のネットワークの間の接続点として機能して、イー
サネット、デジタル交換線(DSLおよびADSL)、電源線交換機(PLX)
、X−10、およびCEBusを含むが、それには限定されない、制御ネットワ
ークおよびデータ・ネットワークのサポートを行う。
【0029】 ゲートウエイ300は、ノード管理およびデータ経路選択の2つの主機能を有
する。ノード・マネジャーとして、ゲートウエイ300はネットワーク・ノード
状態情報の発見と、列挙と、検索と、保存と、処理との責任を負う。その状態情
報はノード・データベース308に保存される。ノード・データベース308は
汎用共通アプリケーション言語(CAL)仕様を基にしている。EIA−600
で定められたCEBusはバス装置を制御するための工業規格制御言語である。
EIA−600は家庭LAN内で使用するための共通アプリケーション言語用の
骨格を提供する。汎用CALはEIA−721シリーズの規格(EIA−721
.1、EIA−721.2、EIA−721.3、EIA−721.4を含む)
で定められる。CEBus工業協議会(CIC)は、汎用CALを使用するため
の「文法」規則を定めることによってその骨格に肉付けするホーム・プラグ&プ
レイ(HPP)を定めている。
【0030】 HPP仕様は、家庭内の製品およびシステムが家庭の状態に応じた動作を行え
るようにする、それらの製品やシステムのための1組のハードウェア特性の詳細
を定めている。たとえば、その仕様は、「住人が居ない」または「住人は在宅し
ているが寝ている」などの家庭内の種々の状況を識別して、安全装置を作動状態
にする、屋内灯を消す、または温度設定に類似する適切な動作を家庭システムが
行えるようにする。HPP仕様は家庭制御用のウインドウズ95PCベース・ア
プリケーションを開発するための情報も含む。
【0031】 EIA−600内で定められた共通アプリケーション言語は、種々の産業分野
(たとえば、娯楽、コンピュータ、暖冷房、台所用品、等)で製造された家庭L
AN製品の間の通信のための枠組を提供する。各産業分野は、それの製品がその
言語を使用する基準を成す「アプリケーション・コンテキスト」(すなわち、文
法規則)を定める。CICは、種々の産業分野が「調和の取れた」アプリケーシ
ョン・コンテキストを開発することを支援する支持組織として活動するために設
立された。CICのHPPは、相互に運用できるCALをベースとする製品で家
庭LAN市場を求めているそれらの産業分野のための調和の取れたアプリケーシ
ョン・コンテキストの概要である。
【0032】 CEBus/汎用CAL仕様の全体を参照することによりその仕様はここに含
まれる。
【0033】 ゲートウエイ300は、ノード状態変化を監視し、ユニバーサル規則定義言語
(RDL)シンタックスを用いて定義された規則に従ってそれらの状態変化に対
して動作する規則エンジン314を提供もする。
【0034】 ゲートウエイ300は、ディスパッチ制御ブロック(DCBs)を用いること
によってデータ・ストリーミング・タスクと経路選択タスクの取扱いもする。経
路選択ハンドラ355はPLXを通じるTCP/IPトンネリング、プロキシ・
サーバ、およびネットワーク・アドレス翻訳のような機能を行う。シム(328
、330)は、非PLX電源線をベースとするノードをPLXネットワークに継
目なしに挿入できるようにするために設けられる。ゲートウエイ・ファウンデー
ション・クラス304は、ユーザー・インタフェースおよびシステム管理アプリ
ケーション302が使用するオブジェクト指向APIライブラリイを提供する。
ゲートウエイ300は、レガシイ、非ユニバーサル・ネットワークAPIs(M
FC、TLI、ソケット、家庭API、等)を使用するアプリケーションがネッ
トワーク・ノードと通信できるようにするサポートを提供する。これによりネッ
トワークを通じてのレガシイ・ネットワーク・データの透明なデータ・ストリー
ミングを行うことができるようにされる(イーサネット、ADSL、等)。それ
には、ジャバおよびウエブブラウザを用いてゲートウエイ300により管理され
るノードを制御する能力が含まれる。
【0035】 オペランド・データベース308はゲートウエイ300により保存されている
ノード・データの保存場所である。ノード・データは各クライアント・ノード、
事象待ち行列、クライアント・ノード・バインディングス(bindings)
および規則から得られたノード構成輪郭を含む。ゲートウエイ300のその他の
が1組のアクセス規則306によってノード・データベース308をアクセスす
る。
【0036】 事象ハンドラ310と規則エンジン314はクライアント・ノードで起きる状
態変化の結果として起きる行動の責任を負う。規則エンジン314は状態変化に
関連する規則を解釈し、かつ規則評価の結果としてトリガされることがあるスケ
ジューリング通知要求またはCAL送り要求の責任を負う。規則エンジン314
はノード・データベース308および事象ハンドラ310と一緒に動作する。事
象ハンドラ310は事象待ち行列を処理し、事象通知を実行する。それらの事象
通知はゲートウエイ300の他のコンポーネントへの内部通知と、事象通知を受
信することを登録したアプリケーション302への外部通知とを含む。ゲートウ
エイ300とアプリケーション302との間の相互作用はゲートウエイ・ファウ
ンデーション・クラス304を介して行われる。
【0037】 ディスパッチャ320は、送/受待ち行列の取扱いと、スレッド(threa
d)初期化と、管理等を含む、ゲートウエイ300の実行時間オペレーションを
指示する責任を負う。管理を要求するゲートウエイ活動はアプリケーションCA
L送り要求タスクと、生ストリーミング・データ要求スクと、事象受信タスクと
、バックグラウンド・ハウスキーピング・タスクとを含む。ディスパッチャ31
4は汎用インタフェースをネットワーク装置ドライバ322、326に提供して
、ドライバ322、326によりサービスされる下部のネットワーク制御器ハー
ドウェアについての詳細な知識を必要とすることなく各種のネットワーク・ノー
ドのサポートを行えるようにする。
【0038】 デバイスドライバ322、325はネットワーク通信ハードウェア(USBま
たは並列ポートPLXノード、X−10シム、CEBusシム等)と直接通信し
、かつデータ・リンク層20の機能(たとえば、MACヘッダーの発生/解釈、
低レベル・タイミング等)を取り扱う。ドライバ322、326のうち、下部ハ
ードウェアと直接話し合う部分は、ドライバとハードウェアとの間に存在し得る
種々の接続(たとえば、ユニバーサル直列バス(USB)、並列ポート、ファイ
ヤ(Fire)ワイヤ・ポート、PCIスロット、ISAスロット、直列ポート
等)をサポートするために独自のプラットフォームであるのが普通である。ゲー
トウエイ300は、レガシイX−10およびCEBusノードから受けとった制
御データの、ゲートウエイ300により用いられるフォーマットへの変換を取り
扱うためにシム・コンポーネント328、330を提供する。
【0039】 ペイロード/プロトコル・プロセッサ312内のペイロード/プロトコル・ハ
ンドラ316−318は受信されたパケット・データの構文解析および処理の責
任を負う。データ・ハンドラ316−317は経路選択ハンドラ355と一緒に
動作する。経路選択ハンドラ355は生データ・パケット・ヘッダを構文解析す
る。ルー・ハンドラ355は、種々のレガシイ・プロトコル・スタック352と
レガシイ・ストリーミング・ドライバ362の間のデータの流れの指示を助ける
アドレス表および経路選択表を調べもする。
【0040】 種々のプラットフォームおよび種々のオペレーティングシステムを横切るコー
ド移植性(portability)を維持するために、プラットフォームに特
有のコードが、RTOS 311により提供されるプラットフォーム分離(ab
straction)層内で分離される。典型的な実行時間サービスはスレッド
・スケジューリングと、メモリ管理と、割込み処理と、クロックと、同期化と、
優先順位スケジューリングと、初期化等を含む。
【0041】 ゲートウエイ300内のコンポーネントの多くは、ノード・データベース30
8と直接にまたは間接に相互作用する。データベースを最初に構築し、維持する
タスクはディスパッチャ320と、ドライバ322、326と、ペイロード/パ
ケット・ハンドラ312とによって主として取り扱われる。ユーザー・インタフ
ェースおよび管理アプリケーションがゲートウエイ・ファウンデーション・クラ
ス304を介してノード・データベース308をアクセスおよび/または変更す
る。
【0042】 ノード・データベース308は、実時間アクセスが速くて効率的であるように
構成されている。速さ/メモリ使用の間の妥協が用いられ、アクセス速度よりも
効率的なメモリ使用に優先順位が通常与えられる。ある実施形態では、ノード・
データベース308の部分が不揮発性記憶装置に保存される。
【0043】 ノード・データベース308はクライアント・ノード構成とノード状態情報を
含む。これはコンテキストと、オブジェクトと、各クライアント・ノードに関連
するインスタンス変数(IV)情報を含む。この情報はノード発見中にネットワ
ーク・コマンドとネットワーク要求を用いて得られる。この情報のうち、ダイナ
ミックIVsが固定記憶装置に保存される。ほとんどのオブジェクト(ノード制
御またはコンテキスト制御は含んでいない)に対して、これはノードの状態を定
める現在の値IVsを含む。
【0044】 ノード・データベース308はゲートウエイに特有のある情報をも含む。各ノ
ードに対して存在するノード・コンテキスト以外に、ノード・データベース30
8は、ノード管理のために必要とされるオブジェクトを含んでいるデータベース
・サーバ・コンテキストを含む。このデータベース・サーバ・コンテキストは、
ゲートウエイ300によって知られているクライアント・ノード・アドレスのア
レイを含むネットワーク・ノード・リスト・オブジェクトを含む。
【0045】 ノード・データベース308はアクセス法の汎用セットを通じてアクセスされ
る。ほとんどのアクセスはネットワーク・メッセージを通じて直接または間接に
来るので、データベース・アクセス法306は典型的なネットワーク獲得および
セット法を用いて変数値を獲得およびセットする責任を負う。それらの方法には
GetValue、GetArray、SetValue、SetArray、
SetOn、SetOffが含まれる。どの方法が適切であるかは取り扱われて
いるインスタト変数のタイプに依存する。たとえば、CALネットワークは、ブ
ーリアン(GetValue、SetValue、SetOn、SetOff)
、数値(GetValue、SetValue)、キャラクタ・ストリング(G
etValue、SetValue)、およびデータ(GetArray、Se
tArray)の4つのIVデータ・タイプを定める。
【0046】 ほとんどの部分に対して、それらの方法は入力キーの類似のセットを取り、そ
れらは取り扱われているデータと、任意の数の入力引数を識別する。その後で各
方法は求められた情報(もしあれば)と状態を戻す。たとえば、CAL IVs
を取り扱う方法の汎用プロトタイプは下記のものに類似する。 ENUM STATUS<method>(NodeID,Context,ObjectID,IVID,args,.... ★returnVal) この場合には、NodeID、ContextID、ObjectID、およ
びIVIDはキーである。非CALオブジェクトに対しては異なるキーセットが
用いられる。
【0047】 インスタンス変数にセット操作が起きると、事象通知が事象ハンドラ310を
通じて規則エンジン314に対して行われて、状態変化事象が起きたことを通知
する。その後で規則エンジン314は、変化したインスタンス変数に属する規則
状態/報告状態を解釈し、行動が保証されているならば、事象ハンドラ310に
よって事象のスケジュールを定める。この結果としてディスパッチャ320を辻
てネットワーク送り要求が発生し、またはファウンデーション・クラス304を
通じてより高いレベルのアプリケーション302に通知されることになる。
【0048】 上記のように、ノードIVを獲得またはセットするためにアクセス呼び出しが
行われると、4つの情報(またはキー)が通常提供される。それらにはNode
IDと、ContextIDと、ObjectIDと、IVIDとが含まれる。
【0049】 NodeIDは構成中に割り当てられた(これは製造時に、または実行時間中
に動的に、生ずることがある)ノード・アドレスである。PLXネットワークの
場合には、これは4バイト・フィールドであって、0x00000001と0f
fffffefの間の値を取ることができ、この範囲より上のアドレスは放送ま
たはその他のPLXに独自の使用のために取って置かれる。非PLXネットワー
クの場合には、同じアドレス・マッピング/翻訳が通常求められる。経路選択ハ
ンドラ355はアドレス翻訳問題に気を付ける。
【0050】 ContextIDは2バイト長であって、大きなバイトは選択可能なコンテ
キスト数で、それの値は0xA0・0xDEの範囲であるが、使用されなければ
0である。小さいバイトは0x00・0x9Eの範囲内のコンテキスト・クラス
値である(それらは汎用CAL仕様で定められる)。
【0051】 ObjectIDは0xD1・0x3Eの範囲の1バイトオブジェクト番号で
ある。
【0052】 IVIDは所与のコンテキストおよびオブジェクト・タイプ内のインスタンス
変数を特定するasciiキャラクタ(または複数のキャラクタ)である。
【0053】 ノードはコンテキストのグループにより記述される。各コンテキストはオブジ
ェクトのグループにより構成されている。各オブジェクトはIVsのグループに
より構成されている。データベースは、ちょうど論じている4つの情報について
、IVに対するアクセスが下記のルックアップ・アルゴリズムを含むように構成
されている。
【0054】 1) NodeIDは各ノードはコンテキスト・レコードのアレイを示す。ノ
ード・リスト・エントリにマップする(通常はハッシング・アルゴリズムを用い
て)。ContextIDは、所望のコンテキスト・レコードを獲得するための
直接インデックスとして使用できるようには構成されていないので、ここでは直
線的なルックアップが起きる。ノードはほんの少し(2または3)のコンテキス
トを通常有する。各コンテキスト・レコードはオブジェクト・レコードのアレイ
(またはリンクされたリスト)に対するポインタを含む。
【0055】 2) ObjectIDは、所望のオブジェクト・レコードを獲得するための
直接インデックスとして使用できるようなフォーマットのものである。各オブジ
ェクト・レコードはIVレコードのアレイに対するポインタを含む。
【0056】 3) IVIDを基にして動作する所望のIVを探すために直線サーチが用い
られる。これは、ほとんどのクライアント・ノードに対してほんの僅かなIVs
がノード・データベース308に保存されるから効率的である。ほとんどのGE
T要求/SET要求はIVの現在の値に関する。現在の値がIVリストに常に保
存されていると、集中的な直線サーチが必要とされることはまれである。
【0057】 ネットワーク・ノード・リストを住まわせる(to populate)ため
にゲートウエイ300により用いられる発見プロセスは、ノードのタイプに依存
して変化する。CALを用いる典型的なPLXに対しては、下記のアルゴリズム
が用いられる。
【0058】 1) CAL「Ping」要求がネットワーク上で放送される(これは初期化
中に通常行われるが、定期的にも同様に行うことができる)。この要求のフォー
マットは他の任意のCALコマンド/要求のフォーマットに類似し、下記のパラ
メータを用いる。
【0059】
【数1】 この要求は、ノードへ直接送ることができる点、または全てのノードへ放送で
きる点で、標準CAL要求とは異なる。
【0060】 2) CAL Ping要求を受信するノードは送り出しノードへCAL P
ing要求を送り返す。このパケットは「応答」と呼ばれているが、パケットの
シンタックスは従来のCAL要求パケットとは異なる。その応答は、ping要
求を放送として送ることができるようにするために異なるのである。その応答パ
ケットのフォーマット(実際にはCAL応答ではなくてCALコマンド/要求に
類似する)は、方法コードが50hの代わりに51hであることを除き、pin
g要求に類似する。
【0061】 3) ゲートウエイ300が、ネットワーク・ノード・リストに掲載されてい
ないノードからping要求を受けると、ゲートウエイ300はそのノードをリ
ストに加え、ノードのIVs情報をノード・データベース308に付加する。
【0062】 4) 希望によっては、ゲートウエイ300は、ある長さの時間聞かれなかっ
たノード・リスト内の任意のノードにCAL要求を送る。そのノードが応答しな
ければ、それはそのノードから除去される。
【0063】 5) ping応答パケットは、クライアント・ノードに電源が投入された時
またはリセットされた時にも送られる。
【0064】 レガシイ制御ノード(X−10ノードまたはCEBusノードなど)では、ノ
ード発見プロセスは、レガシイ・アプリケーションに従って変化する。ゲートウ
エイ300はシム328、330の支援でそれらのノードを処理する。シム32
8、330は、上記CALノード発見法と、非PLXドライバにより使用される
レガシイ法を知っている。ping要求に応答して、シムはping要求を、レ
ガシイ制御ネットワークでノード発見を実行するために求められる同等の要求(
または要求セット)に変換する。ノードが発見されると、シム328、330は
ping応答パケットを発生して、それらをゲートウエイ300の上側の層へ送
る。ゲートウエイ300の残りに関する限りは、それらのレガシイ制御ノードは
PLXノードである。シム328、330については以下でさらに説明する。
【0065】 ゲートウエイ300によってユーザー・インタフェースおよび管理アプリケー
ション302がファウンデーション・クラス304を通じてノード・データベー
ス308をアクセスできる。アプリケーション302によるノード・データベー
ス308のアクセス性を高めるために、ゲートウエイ300は多数のアプリケー
ション・サーバの存在をサポートする。ここに、1つのサーバがアクティブアプ
リケーション・サーバとして動作し、他のサーバが待機アプリケーション・サー
バとして動作する。
【0066】 各サーバは同じノード・データベース308を保存し、ネットワーク・トラフ
ィックを聴取し、ネットワーク・ノード状態変化を監視し、かつそれに従ってそ
れのノード・データベース308を更新することにより、他のノードと同じ日(
同期させられる)まで、それのノード・データベース308情報を保持する。し
かし、アクティブアプリケーション・サーバは、状態変化に関連している諸規則
を実際に評価し、求められている事象通知を実行するノードのみである。アクテ
ィブサーバがなんらかの理由で動作しなくなったとすると、待機サーバがこれを
検出して「アクティブにされる」ことになる。アプリケーション・サーバ・ノー
ド402に対するアクティブプロセスが、同期化ブロック404で始まる、図4
に示されている。その同期化ブロックではノード402はそれのノード・データ
ベース308を更新する。ノード・データベース308を更新した後で、プロセ
スは判定ブロック406へ進む。この判定ブロック406で、ノードがアクティ
ブサーバ状態にあると、プロセスはアクティブサーバ・ブロック408へ進み、
さもなければ、プロセスは待機サーバ・ブロック420へ進む。アクティブサー
バ・ブロック408が終了すると、プロセスは判定ブロック412へ進む。この
判定ブロック412で、サーバ睡眠要求が検出されると、プロセスはセット待機
ブロック410へ進み、さもなければプロセスは判定ブロック414へ進む。こ
の判定ブロック414で、クライアント要求が検出されると、プロセスは応答ブ
ロック418へ進み、さもなければプロセスは同期化ブロック404へ戻る。セ
ット待機ブロック410または応答ブロック418が終了すると、プロセスは同
期化ブロック404へ戻る。
【0067】 待機サーバ・ブロック420が終了すると、プロセスは判定ブロック422へ
進む。この判定ブロック422で、確認応答されなかったクライアントが検出さ
れると、プロセスはアクティブセット・ブロック424へ進み、さもなければプ
ロセスは同期化ブロック404へ戻る。アクティブセット・ブロック424が終
了すると、プロセスは通知ブロック426へ進む。このブロックでは、現在のサ
ーバ・ノードがアクティブ状態になりつつあることを他のアプリケーション・サ
ーバ可能ノードに通知する。ブロック426が終了すると、プロセスは同期化ブ
ロック404へ戻る。
【0068】 クライアント・ノードで状態変化が起きた時に、規則エンジン314と事象ハ
ンドラ310が含まれることになる。SET方法が実行された時にそのような状
態変化が起きるので、各SET方法はその変化を事象ハンドラ310を介して規
則エンジン314に通知する。その後で規則エンジン314は、変化したIVに
関連している任意のノードの存在を調べ、なんらかの事象通知が必要とされてい
るかどうかをそれは判定する。ユーザーが、ファウンデーション・クラス304
を用いてユーザー・インタフェースを介して種々のノードを結び付けると、ユー
ザーは規則を作成できる。あるノードと、明示のユーザー定義を必要としない従
来のオペレーションに対してデフォールト・ノードは存在することもできる。
【0069】 規則は簡単にもできれば、複雑にもできる。簡単な規則は、クライアント・ノ
ードの間の1対1または1対多数の結合関係を特徴するものである。簡単な1対
1規則の例は、「灯火スイッチAがオンにされると、電球Bが点灯する」という
ことに類似するようなものと読めるであろう。1対多数規則の例は「灯火スイッ
チAがオンにされると、電球A、B、C、Dが点灯する」と読めるであろう。複
雑な規則は多数対1または多数対多数の結び付きを取り扱う(たとえば、「灯火
スイッチAがオンにされ、かつユーザーが安全クリアランス(clearanc
e)有すならば、電球A、B、C、Dが点灯する」)。
【0070】 ゲートウエイ308は、ユニバーサル規則制定言語(RDL)として知られて
いる規則制定のための多用途シンタックスを提供する。図5は規則の構成要素と
、アプリケーション502と規則504との間の相互作用とを示す構造図である
。図5に示すように、アプリケーション502は、規則504を含めた、1つま
たは複数の規則を制定する。規則504は、条件付き表現506を含む「if」
文を含むことができる。条件付き表現506は1つまたは複数の定数508と、
1つまたは複数の演算子512と、1つまたは複数のIvsとを含むことができ
る。規則504内の「then」クローズはアプリケーション502に返される
通知514を特定する。各定数は値を含む。各演算子は演算子識別名(ID)を
含む。各IVはIDと、値と、トリガ状態とを含む。トリガ状態は縁部をトリガ
されたものと、非縁部をトリガされたものとを含む。各通知は通知IDとメッセ
ージIDを含む。
【0071】 規則は事象と行動を含む。行動は、アプリケーションに特有であるストリング
のアレイである。事象は、所与の状態がネットワークに存在しているか否を記述
するブール表現である。事象ストリングは下記の文法を用いて指定される。その
文法は定義されていないターミナル記号integer constant、c
haracter constant、floating constant、
およびstringを有する。識別子ターミナルは特定のフォーマットを有する
ことに注目されたい。脱字記号「 」ポンド符号「#」の後の最初のinteg
er constantは16進法で指定されたノード・アドレスである。2番
目(任意選択)のinteger constantは16進法でのCALコン
テキスト数である。3番目のinteger constantは16進法での
CALコンテキスト・クラスである。4番目のinteger constan
tは16進法でのCALオブジェクト数である。character cons
tantはCALインスタンス変数(IV)である。識別子の前の脱字記号は「
縁部をトリガされた」ivと「非縁部をトリガされた」ivを指定する。ポンド
符号は、ivが「レベル」または「既存値」であることを意味する。規則は1つ
の「縁部をトリガされた」識別子を有するのみである。
【0072】 規則文法
【0073】
【数2】 あるレガシイ・シンタックス(たとえば、RDL以外のシンタックス)を用い
る規則が埋め込まれている非PLXノードに対しては、規則エンジン314は(
シム328、330からの助けで)レガシイ・シンタックスをRDLシンタック
スに変換する。
【0074】 データベース320は、ゲートウエイ300の内部で起きるオペレーションの
順序および流れを指令する責任を負う。初期化中は、ディスパッチャ320はR
TOS311を呼び出して、実行時間オペレーションを管理する種々のハンドラ
・スレッドをつくる。ハンドラ・スレッドは、1)受信ペイロード・スレッド、
2)生データ(ストリーミング)送信スレッド、3)CAL送信スレッド、およ
び4)低い優先順位のアイドル・スレッド(任意)、を含む。それらのスレッド
は優先順位の順に記載した。
【0075】 上記ハンドラ・スレッドのほとんどはパケットをクライアント・ノードへ送る
。デバイスドライバ送りルーチンの呼び出しを行う前に、それらのスレッドはド
ライバが送り要求を取り扱えることを示すTxFreeCountセマフォでま
ず待つ(睡眠)。また、CAL送信スレッドは、「遅延された」モードにあるク
ライアントへはCALパケットが送られないようにする。遅延されたノードにつ
いては以下で説明する。
【0076】 ディスパッチャ320は、ハンドラ・スレッドが働き掛ける待ち行列の管理も
行う。ハンドラ・スレッドおよびゲートウエイ300のその他の構成要素はディ
スパッチャ320を呼び出してパケットをその待ち行列に加え、かつその待ち行
列からパケットを除去する。ディスパッチャ320はディスパッチ制御ブロック
(DCBs)を用いてCAL要求パケット/CAL応答パケットおよび生データ
流部分を記述する。
【0077】 DCB構造が(C/C++シンタックス)で下記のように定められる。
【0078】
【数3】 linkフィールドはどのような目的に対してもDCBの所有者により使用で
きる。bufferフィールドおよびbufferSizeフィールドは、DC
Bにより記述されているパケット/断片データを指し、それのサイズを定める。
destDevAddressおよびstcDevAddressは、DCBに
関連する宛先ノードと送り手ノードを特定する。destSocketおよびs
rcSocketはノード内の宛先アプリケーション/送り手アプリケーション
をさらに特定するために使用することもできる。timeStampフィールド
は、種々の時間切れ条件の処理を支援するためにゲートウエイ300により使用
される。sequeceNoは、主として生データ・パケットストリームのため
のパケットに命令するために用いられる。controlInfフィールドは、
DCBおよび関連するデータ・パケットの求められた特殊な特徴/処理を指示す
るために用いられる種々のビット・フィールドおよびフラッグを保存するために
用いられる。それらのビットはデータ暗号化、認証、およびデータ・ストリーミ
ングのような諸特徴を制御する。reserved1フィールドおよびrese
rved2フィールドはゲートウエイ300により内部で用いられ、かつ外部ア
プリケーションにより用いられる。
【0079】 受信ペイロード・スレッドは通常、ディスパッチャ320によりスタートさせ
られた最高優先順位のスレッドであって、デバイスドライバ322、325が受
信パケットを行列にした時に常に実行する。デバイスドライバ322、325に
おける割り込み/ポール・サービス・ルーチンはこのスレッドを提供できる。こ
のスレッドはパケットを受信待ち行列から除去し、それらのパケットを更に処理
するためにペイロード/プロトコル・ハンドラ312にそれらのパケットを渡す
。このスレッドは受信待ち行列に何も残らなくなるまで実行する(またはおそら
くあるしきい値に達するまで)実行し、その後でより多くの受信が行列にされる
まで休止する。
【0080】 生データ送信スレッドは2つの条件が真である、すなわち1)生データ/スト
リーミング送信要求がアプリケーションによって待ち行列にされた、および2)
任意のより高い優先順位のスレッド/割り込みハンドラが実行を終了した時に実
行する。生送信スレッドは送り待ち行列中の次のエントリを獲得し、それを適切
なデバイスドライバ送りルーチンに渡す。これは、送り待ち行列内にもう報告が
残っていなくなるまで、またはあるしきい値に達するまで、繰り返される。その
後で生データ送信スレッドは新しい送信の予定が組まれるまで休止する。
【0081】 CAL送信スレッドは生データスレッドに類似する。その2つの間の主な違い
は、CAL送信スレッドが種々の送り待ち行列を取り扱うことである。CAL送
信スレッドはCAL要求事象に対して働き掛ける。CAL要求事象はアプリケー
ション304から来る要求の結果として予定が通常組まれる。それらのアプリケ
ーション要求はディスパッチャ320によりCAL送り待ち行列に置かれる。遠
方のノードまたはノード・データベース308に保存されている状態情報を読出
し(獲得)および書込む(セット)するためにCAL送信を使用できる。規則エ
ンジン314により解釈される規則中に定められている事象をトリガする内部状
態変化および外部状態変化によってCAL送信を発生することもできる。
【0082】 システム内で低い優先順位でアイドル・スレッドが実行するが、それを行うか
どうかは任意できる。もし使用されると、アイドル・スレッドは、より高い優先
順位のスレッドが実行している間に安全に無期限に延期できる低い優先順位のタ
スクを取り扱う。低い優先順位のタスクは次の行動をすなわち。1)メモリ管理
タスクおよびがらくた収集タスク、2)非応答ノードを検出および古びさせるた
めに見張りパケット/pingパケットを送り出す、3)キャッシュされたデー
タベース情報を非キャッシュされた(持続する)予備保存コピーに同期させる。
アイドル・スレッドが支持されると、アイドル・スレッドにより呼び出されるべ
き低い優先順位のタスクを他のモジュールがスケジュールできるように、ディス
パッチャ320は他のモジュールにインタフェースを提供する。
【0083】 デバイスドライバ322、326はディスパッチャ320(ディスパッチャ制
御ブロックすなわちDCBにより記述されている)から汎用要求を受け取り、そ
れらの要求を基礎をなすネットワーク・ノードに適切なI/O要求に変換する。
【0084】 デバイスドライバ322、326はネットワーク・ハードウェアから受取った
パケットも処理し、以後の処理のためにその後で送られるDCBsを組み立てる
。ディスパッチャ・スレッドはゲートウエイ300のうち、デバイスドライバ3
22、326にインタフェースする唯一のコンポーネントである。デバイスドラ
イバ322、326によりディスパッチャ320に与えられたインタフェースは
DCBを通されるDriverSendインタフェースを含む。媒体アブストラ
クション・コンポーネント(MAC)モジュールはMACヘッダを組み立て、ネ
ットワーク制御器ハードウェアへの実際のパケット送りを開始する。ドライバ割
り込み/ポーリング・ルーチン待ち行列はペイロード受信待ち行列における事象
を受け取り、その後の時刻にその待ち行列は受信ペイロード・スレッドによって
処理される。
【0085】 以下の説明のほとんどは、デバイスドライバがPLXをベースとするノードを
ドライブしていると仮定している。しかし、上側の層に提供されるインタフェー
スは、他のドライバがゲートウエイによりサポートされるように汎用である。シ
ム328、330は、X−10ノードおよびネイティブCEBusノードなどの
非PLXベースとするノードが、ゲートウエイ300により継ぎ目なしにサポー
トされるようにするために設けられている。
【0086】 たとえば、PLX制御ドライバ323などのドライバがロードされると、ドラ
イバ初期化モジュールが、そのドライバによりサービスされるネットワーク・イ
ンタフェース・ハードウェアを機能的な状態に置く。初期化が終わると、ドライ
バ323とハードウェアがパケットの送受信できる状態にある。ドライバ初期化
の一部が、受信−ハンドラISR/ポール−ルーチンの設定と、ハードウェア資
源の決定/保留と、任意のハウスキーピング・スレッドのスタートとを通常含む
。通常、送信時間切れと死んだ装置ドライバ問題/死んだハードウェア問題を調
べるためにタイマ・スレッドが用いられる。
【0087】 送り時には、ディスパッチャ320はパケット/断片データ・アドレスと、制
御情報をDCBを用いてドライバ322に供給する。その後で、ドライバ320
は適切なMACヘッダをつくり、送信を開始する。同時に取り扱える送信の数は
、初期化中に読出すことができるハードウェア/ファームウエアに依存する値(
TxFreeCountと呼ばれている)である。
【0088】 送信データをネットワーク制御器にコピーした後で、DriverSendル
ーチンが送り時間切れタイマを開始する。この点で、送信終了を示す応答が同期
して受信されないと(DriverSendルーチンが戻る前の送りに続く)、
ネットワーク・ハードウェアが送信終了状態を示すまで送信は「係属」状態にあ
る。送信が係属状態にある間は、ネットワーク制御器が利用できるバッファスペ
ースを有する限り、TxFreeCountにより定められるように、より多く
の送りが起きることができる。係属している送りの数がTxFreeCount
にひとたび等しいと、DriverSendルーチンはロックされ(それ以上の
送りは起きないことを意味する)、ISR/ポール・ルーチンが送信成功状態ま
たは送信時間切れ状態の受取りに続いてそれのロックを解除するまでロックされ
たままである。
【0089】 ドライバ割り込み/ポール・サービス・ルーチン(またはISRハンドラ)ル
ーチンはシステム内で最高の優先順位で実行し(割り込みコンテキストが好まし
い)、受け取られたパケットのMACヘッダの解釈/除去の責任を負い、後で適
切なペイロード・ハンドラにより処理するためにディスパッチャ320でパケッ
トを待ち行列化する。受信パケットは次の部類、1)内部(またはローカル)制
御/状態パケット、2)CALコマンド/要求、3)CAL迅速応答、4)CA
L遅延応答、または5)生ストリーム・データの1つに入る。
【0090】 内部制御/状態パケットは、送信終了または誤り状態を示すために主として用
いられる。ISRハンドラにおける送信状態パケットの処理は、状態が適用され
る送信パケットのタイプ(たとえば、CAL/生、ローカル/遠隔)にいくらか
依存して通常変化する。
【0091】 生断片CALパケットとCALパケットの両方に対して、送信が成功裡に終了
させられたことを状態が示すと、ISRルーチンはTxFreeCountを調
整して次の送りが起きることを可能とする。時間切れ誤りの場合には、CAL送
信は、送りが成功するまで適切な何回か再試行するか、ある最大再試行回数に達
した後で放棄することが好ましい。
【0092】 生データ断片の送信時間切れは、ある場合に(生データストリームの性質と、
受信側で予測されるものとに依存する)、追加の再試行処理を要求することがで
きることを除き、CAL送信に類似するやり方で取り扱われる。生ストリーム断
片は、データストリームの管理の支援のためにパケット・シーケンシングを通常
用いる。生ストリーム受信アプリケーションの要件に依存して、時間切れ取扱い
コードが、その時間切れを送信するばかりでなく、係属中の追加の生送信(より
大きい一連番号を盛っているもの)が成功に終わるか否かとは無関係に、それら
の係属中の送信のいずれも再試行することが望ましいことがある。これは受信ア
プリケーションまたは経路選択ハンドラが昇順の順序でパケットを確実に受け取
ることを支援する。受信app/経路選択装置はそれらを落とすことにより狂っ
た順序を取り扱う必要がある。
【0093】 CAL要求/応答および生ストリームパケットはISRハンドラにより待ち行
列にされ、受信ペイロード・スレッドおよび適切なペイロード・ハンドラにより
後で処理される。
【0094】 CAL応答が係属中であるような遠隔ノードへ新しいCAL要求が送られない
ことを検査するために、特殊な取扱いもCALパケットで用いられる。また、C
AL要求が遠隔のノードから受け取られるとすると、通常は、適切なCAL応答
が送られるまで新しいCALパケットはそのノードに送られることを許されない
【0095】 レガシイ制御ネットワーク装置ドライバ(X−10ドライバ328およびCE
Busドライバ332など)に対しては、シム323、330は、それらの非P
LXドライバがゲートウエイ300と動作できるようにするインタフェースを提
供する。送信時には、シム323、330はディスパッチャ320により送られ
るCALパケットを調べ、それらのパケットを、基礎を成しているレガシイ・ド
ライバ/装置により認識される同等のフォーマットに変換する。受信時には、シ
ム323、330は受けたレガシイ・データをCALフォーマットに変換し、D
CBを組み立て、そのDCBをディスパッチャ320まで送る。
【0096】 パケットの送受信中はシム323、330は、4バイトDCBアドレスを、基
礎を成すレガシイ・ドライバにより用いられているアドレス・フォーマットに変
換することにより、あるアドレス変換を通常実行する。
【0097】 受け取られたパケットはCAL制御メッセージまたは生ストリームデータ(そ
れはプリンタ・データ、トンネルを通るのように送られた(tunneled)
イーサネット/ADSLデータ等を含むかもしれない)を制御する。それらのペ
イロードの各々は、ペイロード/プロトコル・プロセッサ312により提供され
る適切なペイロード/プロトコル・ハンドラにより取り扱われる。CALハンド
ラ318は、制御ネットワーク・ノードから受け取られたCAL要求/応答制御
パケットを構文解析および処理するCALインタプリタを含む。ペイロード・ハ
ンドラ・スレッドはCALパケットを更に処理するためにクライアントからCA
Lハンドラへ送る。CALインタプリタはある基本CAL構文解析ルーチンを、
CALメッセージを取り扱う他のゲートウエイ・コンポーネントにも提供する。
【0098】 ディスパッチャ320がCALハンドラ318を呼び出すと、それは、特に、
CALメッセージに対するポインタと、そのパケットを生じたクライアントのア
ドレスと、働き掛けるべきクライアントのアドレスとを送る。それら2つのアド
レスは、アプリケーション302からパケットが生じた場合を除き、通常は同じ
である。
【0099】 そのCALメッセージはコマンド(要求とも一般に呼ばれる)または応答メッ
セージである。クライアント・ノードからのCALコマンドは通常は、「私の状
態変数をある新しい値にセットする」の作用についてゲートウエイ300に何事
か告げる状態変化通知である。アプリケーション304により制御されているよ
うなものなどの、特殊機能クライアントもCALコンポーネントを送り、ユーザ
ーの要求を基にして、他のクライアントの状態(インスタンス)変数を獲得、ま
たはセットする。それらのパケットは次の節で説明する特殊取扱いを通常要する
【0100】 単一コマンドCALパケットは次のようなフォーマットのものである。 <contextID><object#><method/macroID> [<IV>[<arguments>]] CALインタープリタはメッセージをそれのコンポーネントに分解し、方法識
別子を、後でIDおよび引数パラメータで呼び出される適切なデータベースアク
セス法にマップする。データベース・アクセス法306は求められたオペレーシ
ョンを実行し、IVが変化すると、規則エンジン314に通知される。規則エン
ジン314は変化させられたIVに適用されるどのような規則も評価し、保証さ
れるならば、上記のように事象ハンドラ310により事象通知の計画が立てられ
る。
【0101】 CALコマンドに応答するためにCAL応答パケットはクライアント・ノード
によって用いられる。CAL応答は<status token>[<retu
rned data>]の形のものである。ここに、<status toke
n>は応答(COMPLETED,FALSE,orERROR)のタイプの1
バイト標識であり、<returned>データはコマンド・メッセージの結果
として戻された任意のデータである。
【0102】 それらのパケットの1つが受け取られると、それは元のCALコマンド/要求
に関連させられる。クライアントが要求に直ちに応答する時はその関連付けは比
較的容易である。応答が遅れた時は関連付けは一層複雑である。関連付を可能に
するものは、あるクライアントが以前の要求に対する応答を送るまで、クライア
ントがCAL要求パケットをネットワークへ送らないかもしれない、という事実
である。「遅延させられた」モードにあるクライアントへはゲートウエイ300
は要求を送らない。これによってゲートウエイ300はクライアントに最後に送
られた要求(またはコマンド)をクライアント毎に保存できるようにされる。ク
ライアント応答が受け取られると、この情報によってCALハンドラ318は、
戻された情報ではすべきことを決定できる。
【0103】 生データ・ハンドラ316は非CAL受信データを処理する。ゲートウエイ3
00は、種々のアプリケーションで生ずることができる多数の、同時データスト
リームをサポートする。生データ・ハンドラ316が生データストリームの間で
識別するやり方はソケット・フィールドを含む。そこでは独自のソケット番号が
各生データストリームタイプに関連させられる。生データストリーム例にはイー
サネット/ADSLネットワークく・パケットと、プリンタ・データと、音声ス
トリーム等が含まれる。生データ・ハンドラ316はソケット番号を調べるため
以外の生データの構文解析はほとんど行わない。パケット・データと、関連付け
られたDCBはその後で、そのソケット番号に責任を負う経路選択ハンドラ35
5へ送られる。
【0104】 経路選択ハンドラ355は、ゲートウエイ300がレガシイ・データ・ネット
ワーク(イーサネット、ADSL、トークンリング等)からのネットワーク・デ
ータ・トラフィックを所望のネットワークへ向け直すことを可能にする機能を提
供する。たとえば、レガシイ・ネットワークからのネットワーク・データ・トラ
フィックを、PLX電源線ネットワークへ向け直すためにゲートウエイ300を
用いると、1)追加のイーサネット・ケーブル配線の必要なしに、電源線を基に
したノードを含むように従来のイーサネット・ネットワークを拡張できること、
2)広帯域データを電源線を通じて送ることができること、3)電源線をベース
とするネットワーク・クライアントのために代用サーバ性能を可能にすること、
4)レガシイ・プロトコル・スタック(TCP/IP、PX/IPX、NetB
EUI等)を電源線を通じてトンネルを通るように送ることができるようにする
こと、を含むが、それらに限定されるものではない。
【0105】 経路選択ハンドラ355により実行される重要なタスクはアドレス翻訳である
。初期化中は、経路選択ハンドラ355は、ゲートウエイ300から発生された
DCBsを送信する際に、srcDevAddressとして用いられている4
バイト・アドレスを得る。経路選択ハンドラ355はこのアドレスを、レガシイ
・スタックとドライバの少なくとも一方に適切な形に翻訳するので、ハンドラは
通信する。
【0106】 以下の節は、DCBsを用いて異なるプロトコル(たとえば、PLXプロトコ
ル)によってレガシイ・ネットワーク・データ・パケットをトンネルを通るよう
にして送るために、経路選択ハンドラ355により用いられる方法を説明するも
のである。トンネルを通るようにして送ることは第1のプロトコルからのパケッ
トを第2のプロトコルい対するパケット内側に封じ込めるすなわち包み込むこと
である。包まれたパケットはその後で第2のプロトコルを介してネットワークを
通じて送られる。それの宛先に到達すると、包まれたパケットはほどかれて第1
のプロトコルからの最初のパケットを現す。
【0107】 初期化中には、経路選択ハンドラ355は前記したようにアドレス・マッピン
グ表/翻訳表を設定する。経路選択ハンドラ355は、DCBごとにサポートさ
れる最大パケット/断片サイズに気付いてもいる。経路選択ハンドラ355はこ
の情報をディスパッチャ320から得る。種々の経路選択ハンドラ355はソケ
ット番号を用いることによって特定される。初期化中に独占的に使用またはダイ
ナミックに得るために周知のソケット・アドレスを保留できる。
【0108】 電源線装置のために設計されているレガシイ・スタックまたはドライバからの
送り要求を経路選択ハンドラ355が得ると、経路選択ハンドラ355は送りデ
ータをサポートされているDCBデータサイズより大きくない断片にばらばらに
する。その後でDCBが作成され、各断片に一連番号が割り当てられる。最初の
断片は常に一連番号0で、最後の断片は一連番号セットの高位のセットが割り当
てられる。任意に、別のレベルで機能が適切に提供されなければ、経路選択ハン
ドラ355はチェックサムをパケットに付加できる。その後でそれらのDCBs
は、生送り待ち行列で待ち行列化するためにディスパッチャ320に渡される。
これは生送りスレッドを覚醒させ、電源線へ送信するためにそれはDCBsを適
切な装置ドライバに渡す。
【0109】 装置ドライバによって各送信が終了させられると、Tx状態がDCBにマーク
され、そのDCBは経路選択ハンドラ355に戻される。全てのDCBが戻され
た後で、経路選択ハンドラ355はレガシイ・プロトコルによって求められた送
り終了動作を実行する。時間切れ/再試行の問題がディスパッチャ320と、装
置ドライバと、多くの場合にはレガシイ・スタックによっても同様に取り扱われ
ているので、経路選択ハンドラ355は追加の再試行動作を実行しないことを選
択できる。
【0110】 受信取扱いはより複雑にされたビットである。その理由は、経路選択ハンドラ
355が多数の送り手から断片を同時に受けることが可能だからである。また。
、ある場合には、断片を順序なしで受けることがあり、または断片が脱落するこ
とがある。経路選択ハンドラ355はそれらの可能性の全てを取り扱うことがで
きる受信モジュールを有する。通常は、初めにDCB/断片が、ペイロード/プ
ロトコル・ハンドラ316により経路選択ハンドラ355の1つ渡されるので、
送りアドレスのために留保されている受信待ち行列に置かれる。各DCBが受け
られると、受け手は最後の断片列または受信時間切れを調べる。
【0111】 全ての断片が受けられて、完全性検査に合格したら、経路選択ハンドラ355
は、受信事象を示すためにレガシイ・プロトコル/ドライバにより求められてい
るステップを実行する。これにはパケットの再組み立てと、おそらくは関連する
受信データの、レガシイ・モジュール352により提供されたバッファへのコピ
ーが通常含まれる。各受信DCBにより記述された物が処理された後で、DCB
はフリーDCBリストに戻される。
【0112】 ゲートウエイ・ファウンデーション・クラス304がオブジェクト指向概念(
たとえば、Java、C++、smalltalk等)を基にしており、各種の
アプリケーションがノード・データベース306、規則エンジン314、事象ハ
ンドラ310、およびゲートウエイ300により提供されるその他のサービスに
保存されているノード情報をアクセスおよび管理する方法を提供する。これによ
ってエンドユーザー・アプリケーション302は広範囲の有用な諸特徴をエンド
ユーザーに提供できる。たとえば、ゲートウエイ・ファウンデーション・クラス
304は自立アプリケーションとJava brawser appletが、
ノード・データベース308において記述されているノードの列挙と、監視と、
制御とを可能にする。それらのアプリケーション/appletsは、規則定義
言語を用いて簡単な規則または複雑な規則を定めることによりノードの間の種々
の結合を行うことができる。アプリケーション302は、事象通知ターゲットと
してそれ自身を登録することによりデータベースの変化をそれが起きた時に気付
くようにされることもできる。
【0113】 以上、本発明の特定の実施形態について説明し、示したが、種々の変更および
修正を、付録Aに続く特許請求の範囲によって定められる本発明の範囲及び要旨
を逸脱することなく、当業者により行うことができる。
【0114】 付録A PLXプロトコルは安価で、使用が容易であり、融通性に富み、信頼性があり
、かつキーボードを変更でき、多数のスマート・ノードとダム・ノードを共通の
データ・チャネル/制御チャネルを通じて通信できるようにするネットワークア
ーキテクチャ/プロトコルである。ネットワーク化プロトコルによってこのネッ
トワークにおけるどのようなノードもアクティブなネットワーク・サーバとして
自身を割り当てることができるようにする。アクティブなネットワーク・サーバ
はラインアップ・カードを基にしてクライアント・ノードをポールする。インア
クティブなノードはラインアップ・カードから自動的に除去され、したがって、
不必要なポーリング・トラフィックを減少する。このアーキテクチャは衝突を減
少させ、しかも実際のデータ伝送のための帯域幅を維持する。制御およびデータ
のネットワーク化要求のサポートがプロトコルによって行われる。ストリーミン
グ・データまたは非同期データのためのサポートが、タイムスロットをネットワ
ークに割り当て、かつ2つの知能ノードが、アクティブなネットワーク・サーバ
により仲裁されて相互に直接通信することができるようにする。アクティブなネ
ットワーク・サーバは、主ネットワークの動作とは独立に大量のデータ・トラフ
ィックが流れることができるように、別々のデータ・チャネルを割り当てること
もできる。アクティブなネットワーク・サーバとして動作するネットワーク・ノ
ードはダイナミックに変更でき、かつ通常は、睡眠中のネットワークへの要求の
送信を開始する第1のノードにより決定される。クライアント・ノードは、アド
レス分離スキームを用いてダイナミック・ポーリングによりアドレスされる。
【0115】 PLXプロトコルを含んでいるPLXアーキテクチャは、建物内部の既存の電
力線(電源線)をネットワーク媒体として使用するネットワークに良く適する。
データの伝送に既存の電源線を使用することは、ユーザーがネットワーク・ケー
ブルを設置する必要がないことを意味する。
【0116】 PLXアーキテクチャはネットワーク・ノードのために頑丈で、決定的な媒体
アクセス可能性を提供する。ノードはアドレス分離スキームを用いるダイナミッ
ク・ポーリングによってアドレスされる。実行可能なデータ・チャネルが診断、
議論のやりとり、および汎用データやり取りアプリケーションに使用するために
提供される。
【0117】 一実施形態では、PLXプロトコルは大局的に独自の識別コードと、ノード輪
郭と、32ビット仮想アドレス可能性とを提供する。それによってPLXプロト
コルはプラグ−n−プレイ・タイプのネットワークに適合できる。
【0118】 一実施形態では、PLXアーキテクチャ・プロトコルはピヤリング(peer
ing)、多数サーバ、簡単な構成、安全、データグラム検出、多数のデータ・
フォーマット、および優先順位決定のスキームなどの諸機能を提供する。CRC
およびチェックサムなどの誤り検出、およびデータ完全性性能はPLXのある実
施形態の部分である。PLXアーキテクチャはスマート・ノードとダム・ノード
を提供し、かつこのアーキテクチャは簡単な制御から複雑なデータ・ストリーミ
ングまでの範囲のデータ・トラザクションを提供する。
【0119】 一実施形態では、PLXは状態マシン論理またはマイクロ制御によって実現さ
れる。流線形の低い端部のノード(ダムノード)を、フルPLX性能のサブセッ
トを使用するために実現できる。機器などの、中間範囲のノードはここで開示さ
れているプロトコルに適合する。PCまたはPSX、インターコム/調査装置、
プリンタ、マウス、およびその他のデータ集中ノードなどのより高い端部のノー
ド(スマートノード)はPLXアーキテクチャにおいてまた応用性を見出す。
【0120】 PLXプロトコルはデータ・リンク層、ネットワーク層、およびトランスポー
ト層のための動作規則を定める。一実施形態では、PLXはデータ・リンク層の
媒体アクセス制御(MAC)部を含む。MACプロトコルは、物理的媒体を各ノ
ードがいつ、どのようにしてアクセスできるかを支配する規則の集まりである。
一実施形態では、MACプロトコルは、電源線における衝突を減少させる、集中
して分布されているダイナミック・トークン・パッシング・アーキテクチャを使
用する。
【0121】 PLXアーキテクチャによって、ネットワークにおけるどのようなノードもア
クティブなネットワーク・サーバとしてそれ自身に割り当てることができるよう
にされている。それはトークンのための要求を仲裁する。ノードがインアクティ
ブであると、それらのノードは「睡眠」モードに入り、したがって、不必要な任
意の「ポーリング」トラフィックを無くす。このアーキテクチャは衝突を減少さ
せ、しかも実際のデータ伝送のための貴重な帯域幅を維持する。
【0122】 PLXアーキテクチャは、多くの面で、クライアント/サーバネットワーク化
アーキテクチャであって、制御ネットワーク化およびデータネットワーク化の需
要のためのパケットをサポートする。ストリーミング・データまたは非同期デー
タのためのサポートは、ワイヤにタイムスロットを割り当て、2つの知能ノード
がアクティブなネットワーク・サーバによる仲裁で相互に直接話し合えるように
することにより、サポートできる。アクティブなネットワーク・サーバは、大量
のデータ・トラフィックを主ネットワークの動作とは独立に流れることができる
ように、別々のデータ・チャネルを割り当てることもできる。アクティブなネッ
トワーク・サーバとして機能しているネットワーク・ノードはダイナミックに変
更でき、かつ睡眠中のネットワークで送信要求を開始する第1のノードによって
通常決定される。また、アクティブなネットワーク・サーバはアプリケーション
・サーバとは独立に選択される。アプリケーション・サーバは通常は固定ノード
場所である。アクティブなネットワーク・サーバはノードになり得る任意のサー
バとすることができる。
【0123】 一実施形態では、PLXは、インアクティブな(睡眠中)ネットワーク媒体を
最初にアクセスするためのデータグラム検出アルゴリズムと、その後に続く、ア
クティブなネットワークに挿入するための集中化されたトークン・パッシングを
含む、組合わされた媒体アクセス性能を提供する。これは多数のアクセスを衝突
のない、トークン・パッシング・タイプの環境に実効的に結合する。これは決定
論の付加された利点である。一実施形態では、PLXは最初の媒体アクセス可能
性を決定するデータグラムの存在を用いる。データグラムは指定された前文/長
さシーケンス組合わせを一致させることによって特に決定される。
【0124】 一実施形態では、PLXは、システムのアクティブなノードへトークンを通す
だけである集中化されたダイナミック・ポーリング・アルゴリズムを用いること
によってネットワークにおけるトラフィックを減少させる。オペランドがひとた
びインアクティブになると、そのノードはポーリング・リストから除去される。
この選択的なポーリング・プロセスは、それら自身を「バスの分割」として知ら
れているプロセスによってポーリング・リストに挿入できるノードの性能を基に
している。
【0125】 この分割プロセスはポーリング・リストへの実時間で実行中の挿入を可能にす
る。この分割プロセスは複数のノード応答が単一のシステム応答として見られる
ようにする。このシステム応答は、アクティブなノード(ポーリングを行ってる
ノード)が特定のノード要求挿入をポーリングリスト内にさらに分割することを
可能にする。
【0126】 ポーリング・リストからの実時間、実行中の除去が時間が経過したプロセスに
より行われる。インアクティブなノードは、所定の時点の後でそれらがトークン
を使用しなければ、最終的にはポーリング・リストから除去される(挿入を解除
される)。一実施形態では、時間の経過したプロセスは、ノードがトークン要求
に応答し損なったならば、更に促進される。
【0127】 一実施形態では、ポーリング・リストは媒体の帯域幅性能を基にして固定サイ
ズ(オペランドの数)に設定される。低い優先順位のデータ(照明装置の制御デ
ータなどの)を伝えるノードが、より高い優先順位のデータ(ストリーミング・
オーディオ/ビデオ・データなどの)を持つノードのためにリストに余地を設け
るために、ポーリング・リストから除去される。
【0128】 一実施形態では、PLXアーキテクチャ内の媒体アクセス制御(MAC)層は
、予備の受信バイポーラ・トランジスタ、使用中応答ハンドシェイクを用いるこ
とによって自己スロットリング機構を提供する。一実施形態では、各ノードにM
ACヘッダのコピーを保持するために十分大きい受け面積を設けることによって
、自己スロットリングが完成される。以前のパケット要求によりノードが完全に
忙殺されているとしても、その忙殺されているノードは、使用中応答を発生する
ことにより、いぜんとして要求に応答できる。使用中応答は、伝送しているノー
ドにそれのパケットにバーストまたはシーケンスを近寄らせなくしなければなら
ないことを知らせて、各受信ノードの性能に従ってシステムのペースをとる。
【0129】 電源投入時のノード自動アアウンス機能が遠隔のデータベース・サーバの再同
期化を行う。新しいノードの電源投入時には、その新しいノードはそれが媒体に
新たに到達したことをアナウンスする。
【0130】 一実施形態では、PLXは好適なサーバ選択を行い、キックスタート・アルゴ
リズムを提供する。PLXはクライアント/サーバ型アーキテクチャであるので
、媒体アクセスを仲裁するために1つのノードが通常選択される。典型的な電源
線ネットワークでは、全てのノードが必ずしも等しく作られているわけではない
。したがって、PLXの一実施形態によって、最も中央に(すなわち、ブレーカ
ーパネルの近く)配置されているノードをユーザーが選択できるようにされて、
好適な「アクティブなネットワーク・サーバ」として動作できるようにする。好
適なサーバがインアクティブであるとすると、遠隔のノードがその好適なサーバ
をアクティブにことができる。簡単な覚醒アルゴリズムによってインアクティブ
な好適なサーバが再び活動するようにできる。
【0131】 最初に、クライアント/サーバ・モデルにおける媒体をアクセスするためにノ
ードがトークンを獲得する。ひとたびクライアント・ノードにそのトークンが与
えられると、それは媒体を指定された時間だけ使用する。この時間の期間中は、
それはシステム内のどのノードとも、サーバの環境とは独立に、直接通信できる
。この期間が切れると、媒体アクセス制御がサーバ・ノードに戻される。したが
って、媒体仲裁がクライアント/サーバのようにしてまず行われ、それに同列間
タイムスロットが続く。
【0132】 一実施形態では、PLXはダイナミック媒体仲裁サーバを含む。媒体アクセス
を仲裁するサーバは活動を基にしてダイナミックに割り当てられる。そのダイナ
ミックな割り当ては、送信すべきパケットを有する最初のノードが、システムが
「インアクティブである」ことを認識し、好適なサーバ(存在するならば)を覚
醒させようとする数回の試みの後で、アクティブなネットワーク・サーバの役割
を行う。PLXネットワークでノードになることができるどのようなサーバもア
クティブなネットワーク・サーバになることができる。
【0133】 一実施形態では、このネットワーク・プロトコルはストリーミング・データを
電源線媒体を通じて送受信させる。一実施形態では、ストリーミング・データは
デジタル音声データを含む。一実施形態では、ストリーミング・データはデジタ
ル・ビデオ・データを含む。
【0134】 一実施形態では、電源線媒体を通じて、デジタルPBX型機能および/または
、デジタル・インターコム機能を提供するためにこのネットワーク・プロトコル
は用いられる。このネットワーク・プロトコルは広帯域デジタルネットワーク化
サービス(たとえば、DSL、ケーブル、ISDN等)を家庭内の既存の電源線
を通じて家庭全体に拡張するために用いられる。
【0135】 ネットワーク・プロトコルは3種類または4種類以上のネットワーク・トラフ
ィック、すなわち、制御トラフィック、データ・トラフィック、ストリーミング
・データ・トラフィック(ストリーミング・マルチメディア・データ)、を同時
に取り扱うことができ、かつ管理できる。このネットワーク・プロトコルは所与
のノード(音声装置のための決定の要求などの)のネットワーク化要求に依存し
て保証されたアクセス回数を許すために優先化スキームを提供する。PLX OSIモデル 上から5番目までのOSI層203〜207の各々は大きなオーバーヘッドを
ネットワーク・アプリケーションに加える。図3に示すように、PLXは、共通
アプリケーション言語(CAL)と呼ばれている比較的薄いアプリケーション層
607と、比較的薄いトランスポート/ネットワーク層603を用いて、下側の
データ・リンク層602と物理層601を補足する。層601〜603と607
のおのおのはPLXコンプライアント・ノードに通常存在する。図3に示すよう
に、PLXデータ・ネットワーク化ノード(スマート・ノード)は、アプリケー
ション層207と、ネットワーク層203と、トランスポート層204とに通常
のOSIネットワーク性能(たとえば、TCP/IP、IPX、ウインドウズ、
ネットウェア、等)を含むこともできる。PLXコンプライアント・ノードは減
少させられた量の制御情報を通常含む。それは、層601〜603と607にお
いて具体化されるように、PLXスタックのみを用いてPLXノードの間で送ら
れる。PLX物理層 PLX物理層601はネットワーク・ハードウェアと、ネットワーク・ケーブ
ルとに物理的にインタフェースするハードウェアの詳細を取り扱い、および、通
常は、実際のハードウェア自身を含む。物理層は変調技術、使用される周波数、
電力出力、等などの属性を含む。一実施形態では、PLXは下記のようにデジタ
ル電源線(DPL)技術を用いる。PLXデータ・リンク層 PLXデータ・リンク層602は、アドレス指定機能、媒体仲裁スキーム、間
隔の間の間隔決定、バック・オフ・アルゴリズム、などの、媒体100とのイン
タフェーシングの詳細を取り扱う。データ・リンク層602は、発信元アドレス
/宛先アドレスと、長さと、巡回冗長検査(CRC)またはチェックサム・デー
タなどの誤り検出/訂正データとを含むヘッダを含んでいる。PLXネットワーク層 インターネット層と呼ばれることもあるネットワーク/トランスポート層60
3、はネットワーク上の1つの場所から別の場所へのデータのパケットの経路選
択を行う責任を負っている。PLX内では、ネットワーク層603はシステム、
個々のノード、ソケット、およびMACヘッダ・フィールド内のネットワーク・
アドレス・フィールドを用いて通常取り扱われる。PLXトランスポート層 PLXネットワーク/トランスポート層603は、上に存在するアプリケーシ
ョン層607のための2つのホストの間でデータの流れを行う。トランスポート
層603は、一連番号および/または要求/応答型確認応答情報も含む。PLX
内では、アプリケーション制御を行えるようにするために、トランスポート層6
03は、OSIトランスポート層203と比べて小さくされている。トランスポ
ート層603は要求/応答接続手順アルゴリズム、再試行アルゴリズム、時間切
れアルゴリズム、等を提供する。PLXはMACヘッダの制御フィールド内でネ
ットワーク/トランスポート層603をほとんど完全に実現する。PLXアプリケーション層 PLXアプリケーション層607はアプリケーションの詳細を取り扱い、パケ
ット配信を確実に扱うために、どのトランスポートが用いられているかに依存し
て、アプリケーション層607は接続手順プロトコルおよび/または要求/応答
プロトコルとを使用できる。フィールドのかなりの量の重複がOSI層のプロト
コル内に存在する。この重複はより多くのオーバーヘッドに変わり、より多くの
スペースを使用し、追加の処理パワーを要する。PLXプロトコル内では、OS
Iフィールドの多くが必要とされず、したがって通常省かれる。
【0136】 種々のOSIプロトコル内に含まれている種々のコンポーネントを調べること
により、データ・リンク層602が上の3つの層なしに瀘波の多くを行えること
が明らかにされる。この瀘波は、同じ通信チャネルを競合している多数のノード
(たとえば、同じネットワークワイヤを競合している多数のネットワーク・カー
ド)などの、ハードウェアの問題点に留意もするハードウェア論理にデータ・リ
ンク層602が通常しばしば限られるため、有利である。一実施形態では、特定
のネットワーク・ノードのためのネットワーク・ハードウェアが、その特定のネ
ットワーク・ノードに宛てられたデータ・パケットを除く全てを除去する。その
ようなシステムの下では、ノードはデータ・パケットのデータ部分を解析するだ
けである。DPIのための2つプロトコル デジタル電源線(DPL)で使用される2つのプロトコル、すなわち、低レベ
ル・プロトコルと高レベル・プロトコル、をPLXで定めることが好ましい。低
レベル・プロトコルの定義。低レベル・プロトコルはデータ・リンク層602の
定義を与え、パケットが、比較的少数のネットワーク化機能およびトランスポー
ト機能を持つ同じ媒体100からどのようにして瀘波され、送られ、かつ受信さ
れるかの定義を行う。
【0137】 高レベル・プロトコルの定義。PLXノードは少ない量の情報を含む。各PL
Xノードは特定のノード属性を制御する共通アプリケーション層607を使用す
る。これにより、ノードの種類とは無関係にPLXシステムを特徴付けることが
できるようにされる。アプリケーション層607はハードウェア・ヘッダが除去
された後で制御情報を解読すなわち構文解析する。物理層:デジタル電源線(DPL)仕様 PLXプロトコルは、光伝送、光ファイバ伝送、無線周波数伝送装置、ツイス
ト・ペア伝送装置、同軸伝送装置、衛星システム、デジタル電源線(DPL)装
置、等を含めた、多くの種類のネットワーク媒体(すなわち、データ伝送装置)
に使用できる多用途プロトコルである。
【0138】 電源線搬送装置としても知られているDPL装置はデジタル・データを伝送 するために電源配線(たとえば、建物内の標準110ボルト交流(VAC)回路
を使用する。一実施形態では、PLXプロトコルは、単一の低速チャネル(35
0〜1000kbps)、約5.6MHzの低速搬送周波数、約80dBまたは
それより良いダイナミックレンジ、狭い帯域幅使用(速さに依存するが、1MH
z位)のDPLに関連して使用される。
【0139】 一実施形態では、PLXプロトコルは、多数の高速チャネル(合計で4〜8m
bps)、30MHzまたはそれより上までの高速搬送周波数、約80dBまた
はそれより広いダイナミックレンジのDPLに関連して使用される。
【0140】 通常のDPL装置では、送信搬送波はデータの少なくとも20マイクロ秒前に
イネンブル状態にされ、受信器が搬送波を検出しなくなるまで、送信器を動作不
能にする間の時間は15マイクロ秒またはそれより長くできる。低レベルプロトコル層:PLXの 仕様 PLXプロトコルは、簡単な制御から複雑なデータ・ストリーミング・ネット
ワークまでの範囲に及ぶアプリケーションのために加減できる。一実施形態では
、PLXプロトコルは一般的なCAL仕様の諸特徴のほとんどに影響を与えるよ
うになっている。EIA−600において定められているCEBusはバス装置
を制御するための産業標準制御言語である。EIA−600は家庭LAN内で使
用するための共通アプリケーション言語の骨組みを提供する。一般的なCALは
EIA−721規格シリーズ(EIA−721.1、EIA−721.2、EI
A−721.3、およびEIA−721.4を含む)で定められている。CEB
us産業協議会(CIC)は、その言語を使用するための「文法」規則を制定す
ることによって、その骨組みに肉付けする家庭プラグ・アンド・プレイ(Hom
ePlug&play)(HPP)仕様を制定している。
【0141】 HPP仕様は、家庭内の製品およびシステムが家庭の状態を基にして動作を行
えることができるようにする、それらの製品およびシステムの挙動特徴の集まり
の詳細を定めている。たとえば、その仕様は、「住人が不在」または「住人が帰
宅して睡眠中」などの家庭内の種々の状態を識別して、安全システムの起動、屋
内灯の消灯、または温度設定などの適切な操作を家庭システムが行えるようにす
る。HPP仕様は家庭制御用ウィンドウズ’95PCベース・アプリケーション
を開発するための情報も含む。
【0142】 EIA−600において定められている共通アプリケーション言語は、種々の
産業部門(たとえば、娯楽、コンピュータ、冷暖房、台所設備、等)で製造され
た家庭LAN製品の間の通信のための枠組みを提供する。
【0143】 各産業部門は、それの製品がその言語を使用するための基礎として役立つ、「
アプリケーション・コンテキスト」(すなわち、文法規則)を定める。CICは
種々の産業部門が「調和のとれた」アプリケーション・コンテキストを開発する
ことを支援するサポート組織として機能するために作成された。CICのHPP
は、CALをベースとする相互に動作できる製品で家庭LAN市場を求めている
それらの産業部門のための、調和のとれたアプリケーション・コンテキストの要
約である。
【0144】 CEBus/一般的CALアプリケーションの全体を参照することによりここ
にその仕様が包含される。媒体アクセスの概観 PLXは、集中されたトークン・パッシング・スキーム、またはDSMA/C
TPを持つデータグラム検出多重アクセス・プロトコルとして特徴付けることが
できる。多数の同等のノードが同じ物理的媒体100をアクセスすることを許さ
れているために、PLXは、データを媒体100に置くことを試みた時に各ノー
ドを使用するための共通規則群を述べる。
【0145】 PLXは、種々の数のプロトコルからのいくつかの機能を統合して単一の効率
的な決定論的環境を生成する。PLXはデータグラム検出を行う。各PLXノー
ドはトラフィックのための媒体100を「検出」でき、媒体100が現在優勢で
あるならばそれ自身を主張する。構成されたトークン・バッシング型機構を介し
て衝突回避が行われる。PLXは媒体に対するアクセスを取り扱うために単一の
中央仲裁ノードを選択する方法を含む。その中央ノード(アクティブなサーバ)
はアクティブなシステムにトークンが確実に存在するための責任を負う。PLX
は、設計の簡素化と、実現の容易さと、衝突なしのアクセスと、系統的な受容と
、トークンのその後の放棄と、データを確実に配信するため確認応答シーケンス
(要求/応答)とを行うために選択的な動的ポーリングを行うために選択的かつ
動的ポーリングを用いる。
【0146】 PLXはノードが「アクティブの」時に「静止した」媒体100を持つ能力を
提供する。通常は、PLXにおいては、「アクティブな」ノードのみが媒体10
0で通信する。PLXはプラグ−n−プレイ性能のための全体的アドレス指定方
式と、媒体100のための複数ノード競合を分離するためのアルゴリズムを提供
もする。
【0147】 PLXは、ストリーミング・アプリケーションのための時間決定論、または保
証されたタイム・スロット、と、ターンアラウンド時間を短くするために短縮さ
れたセル長さ(パケット長さ)とをも提供する。
【0148】 PLXは多重レート・サポート・パケットと、ホット・スワッピング・パケッ
トと、真正証明および安全パケットと、制御および管理パケットとを提供する。
【0149】 また、PLXはより高い層プロトコル内に多くの制御ネットワーク化機能を提
供する。その結果、媒体アクセス方法が種々のトポロジーの多くの有利な機能を
利用する高度に洗練されたものになった。媒体アクセス方法論 媒体アクセス方法論は媒体100をアクセスする際に含まれる諸規則の概要を
示すものである。媒体100をアクセスするPLX法は3つの事象、 1.データグラム検出または「聴取」; 2.バスの分割; 3.集中化されたトークン・パッシング を通常含んでいる。
【0150】 ノードはシステムに存在するトークンに関して、アクティブネットワーク・サ
ーバ・ノードとして、またはクライアント・サーバとして特徴付けられる。PL
Xシステムでは、媒体100に対する最初のアクセスは、活動を聴取し、その後
でアクティブなネットワーク・サーバとして自己表明し、最後に、活動している
ネットワーク・サーバによる系統的な、集中化されたトークン・パッシングをす
ることにより行われる。
【0151】 図5は、どのノードが媒体100で「話す」ことを許されるかを仲裁するため
にPLXにより用いられる媒体アクセス・アルゴリズムを示す流れ図である。図
5に置ける流れ図は電源投入および告知処理ブロック801で始まる。そうする
と各ノードは、電源を投入されると、媒体100に置けるそれの存在を告知され
る。告知が終わると、プロセスは判定ブロック802へ進む。ノードは、送信(
Tx)準備完了コマンドが受け取られるまで、判定ブロック802内でループ(
アイドル)し、そのコマンドが受け取られると、プロセスは判定ブロック803
へ進む。この判定ブロック803において、ノードがラインアップ・カード上に
ないか、またはアクティブサーバでなければ、プロセスはデータグラム検出ブロ
ック804へ進み、さもなければプロセスは判定ブロック816へ進む。判定ブ
ロック816では、ノードがトークンを受け取っていたならば、プロセッサはパ
ケット送りブロック814へ進み、さもなければ、プロセッサは時間切れ判定ブ
ロック810へ進む。判定ブロック810では、時間切れが起きていなかった場
合、プロセスは判定ブロック816へ戻る。さもなければ、プロセスはデータグ
ラム検出ブロック804へ進む。パケット送りブロック814では、プロセスは
送信パケットを送って、ポーリング・ブロック815へ進む。ポーリング・ブロ
ック815では。図7を参照して説明するように、アクティブなネットワーク・
サーバがアクティブなノードをポールし、またはそのノードがクライアントであ
れば戻る。ポーリング・ブロック815が終了すると、プロセスは判定ブロック
802へ進む。
【0152】 データグラム検出ブロック804では、ノードは媒体100を特定の時間聴取
し、その後で判定ブロック805へ進む。処理ブロック804の聴取期間中に媒
体が覚醒しているならば、プロセスはLIP要求判定ブロック806へ進み、さ
もなければ、プロセスは処理ブロック812へ進む。処理ブロック812では、
そのノードは「覚醒」パケットを送り、判定ブロック814へ進む。判定ブロッ
ク814では、3つの覚醒パケットが送られたがそれに対する応答がなかったと
すると、プロセスは自己表明ブロック813へ進む。さもなければデータグラム
検出ブロック804へ戻る。自己表明ブロック813では、ノードはアクティブ
なサーバ・ノードとして自己表明し、プロセッサはパケット送りブロック814
へ進む。
【0153】 LIP要求判定ブロック806では、プロセスはLIP要求の存在を調べる。
LIP要求が存在しなければ、プロセスは時間切れ判定ブロック809へ進み、
さもなけれぱ、プロセスは処理ブロック807へ進む。時間切れ判定ブロック8
09では、プロセスは指定されたパケット時間切れ期間が経過したかどうかを調
べる。その期間が経過したならば、プロセスは判定ブロック802へ進み、さも
なければプロセスはLIP要求判定ブロック806へ戻る。
【0154】 処理ブロック807では、ノードはバスにスピット・オンし、その後で判定ブ
ロック808へ進む。判定ブロック808では、ノードがドラフトされたかどう
かをプロセスは調べる。ノードがドラフトされたとすると、プロセスはトークン
受信判定ブロック816へ戻り、さもなければ、プロセスはLIP要求判定ブロ
ック806へ戻る。
【0155】 ブロック802、803、810、および814〜816は集中化されたトー
クン・パッシング・アルゴリズムの一部である。ブロック804、805、およ
び811〜813はデータグラム検出(聴取)アルゴリズムの一部である。ブロ
ック806〜809はスピッティング・オン・ザ・バス・アルゴリズムの一部で
ある。
【0156】 図5に示すように、媒体100に対する最初のアクセスは、媒体100が「睡
眠中」であるか「覚醒している」かに依存して2つの異なるやり方の1つで行わ
れる。媒体100が睡眠中であれば、アクセスを望んでいるノードはアクティブ
サーバとして自身を自己表明する。媒体100がアクティブ(すなわち、アクテ
ィブネットワーク・サーバにより用いられている)と、アクセスを望んでいるク
ライアント・ノードがアクティブなネットワーク・サーバにアクセスを求める。
アクティブなネットワーク・サーバはアクセスを求めたクライアント・ノードの
ラインアップ・カードを保持している。クライアント・ノードは「スピッティン
グ・オン・ザ・バス」として知られているプロセスによってラインアップ・カー
ドに記入されることを求める。
【0157】 通常は、サーバになることができるどのようなノードもアクティブなネットワ
ーク・サーバとして自身を表明できるが、所与のノード内にサーバになることが
できる属性を含むという要求ではない。
【0158】 アクティブなネットワーク・サーバがひとたび選択されると、それは、ポール
すべきアクティブなサーバ・ノードのリストを含む「ラインアップ・カード」を
作成および保持することができなければならない。アクティブなネットワーク・
サーバの全てがインアクティブになり(エージング・プロセスによって)と、ア
クティブなネットワーク・サーバはアクティブなサーバとしてのそれの現在の状
態を放棄し、媒体100は再び眠る(睡眠)ことになる。通常、アクティブなネ
ットワーク・サーバは、媒体100へ送り出す何かを有するノードにより自己指
名される。
【0159】 アクティブノードがある時間沈黙しているとそのノードはラインアップ・カー
ドから除去される。アクティブノードは、高い優先順位のデータを持つノードが
ラインアップ・カードに対するアクセスを必要とする時にもラインアップ・カー
ドから除去される。ラインアップ・カードは通常は最大数のスロットを有する。
いいかえると、ラインアップ・カードはラインアップ・カードに載せることがで
きる最大数のノードを有する。スロットの数は媒体100で利用できる帯域幅と
、種々のネットワーク・ノードにより必要とされている帯域幅とにより通常決定
される。Nがラインアップ・カード中のスロットの最大数、tが特定のアクティ
ブなノードがトークンを保持することを許される最も長い時間(ミリ秒)とする
と、そのアクティブなノードはN×tミリ秒ごとに少なくともおよそ1回トーク
ンを獲得する。したがって、ラインアップ・カードは、アクティブなノードが定
期的な、予測できるベースでポールされることになる、という決定を行う。 た
とえば、ストリーミング・ビデオ・データはストリーミング・オーディオよりも
高い優先順位を持つ。そうすると、N個のストリーミング・ビデオ・ノードがラ
インアップ・カードに既に載せられていると、ラインアップ・カードに載せられ
ることを求めているストリーミング・オーディオ・ノードは拒絶される。しかし
、ストリーミング・オーディオ・ノードには、ラインアップ・カードに載せられ
ることを求めるたびに、トークンが与えられる。ラインアップ・カードに載せら
れているノードは自動的にポールされ、したがって、トークンを求める必要なし
にトークンを定期的に獲得する。ラインアップ・カードに載せられていないノー
ドは、トークンに対する要求、またはラインアップ・カードに載せられる要求、
を行った後でのみトークンを受け取る。
【0160】 特定のネットワーク・ノードにより提供されるデータの優先順位は、以下に説
名するノード・プロフィル・オブジェクトに関連して記載されたnetwork
−classフィールドにより決定される。特定のノードに対するnetwor
classはノード・アドレスの上位4ビット(device typeフ
ィールド)中にも見出される。
【0161】 ノード・セマフォ 各PLXノードは、システムの現在の状態と、システム内におけるノードの関
わり合いとを反映する2つのローカル・セマフォを管理する。それらのセマフォ
は聴取プロセスを開始すべきか否かをノードが決定することを支援する。通常は
、それら2つのセマフォは媒体100に対するアクセスを行うために用いられる
ので(ノードが送信するものを有しているとき)、ノードはそれらのセマフォを
管理する。
【0162】 最初のセマフォは「システム状態」を反映する。システム状態は、媒体100
がアクティブか否か(すなわち、パケットが媒体100上で見られるか)に応じ
て、「覚醒している」か「睡眠中」であるかである。
【0163】 第2のセマフォは「ローカル・ノード状態」と名付けられている。ローカル・
ノード状態はノードの取り得る次のような3つの状態、すなわち、(1)ノード
はアクティブなネットワーク・サーバ・ノードである、(2)ノードはアクティ
ブなクライアント・ノードである、(3)ノードはノンアクティブなクライアン
ト・ノードである、の1つを反映する。ローカル・ノード状態は、ノードが聴取
アルゴリズムを開始すべきかどうか、ノードが現在ラインアップ・カードに載せ
られている(ポールされている)かどうか、またはノードが現在アクティブなサ
ーバであるかどうかを判定する。
【0164】 「システム状態」腕木信号 各ノードは、システムが覚醒しているか、睡眠中であるかについて個々に判定
する。この判定は媒体100におけるラインアップ挿入要求パケット(LIP)
の存在を基にしている。ノードがLIPパケットを見ると、システム状態腕木信
号は覚醒することになる。ある時間の後で、LIPパケットが見られないとする
と、ノードはシステム状態を睡眠へトグルする。これは、アクティブネットワー
ク・サーバが存在するものとすると、それはクライアント・ノードを覚醒状態に
維持するためにLIPパケットを周期的に送らなければならないことを意味する
【0165】 ノードが媒体100を聴取せねばならないか否かを決定するために、ノードは
この腕木信号を使用する。システム状態が睡眠である時のみ、ノードは聴取プロ
セスを通じて媒体100を争う必要がある。
【0166】 「ローカル・ノード状態」腕木信号 アクティブなネットワーク・サーバは、それのラインアップ・カードに現在載
せられているクライアント・ノードにトークン(ポール)を、そのクライアント
・ノードによる最後の送信の後で1ないし10秒間配信する。この時点で、アク
ティブなネットワーク・サーバは、ノードが送信を続け、ラインアップ・カード
からクライアント・ノードを「古びさせる」ことを決定する。クライアント・ノ
ードはこれを検出できなければならない。クライアント・ノードがトークンを現
在受信していると、それはアクティブとみなされる。クライアント・ノードがト
ークンを現在受信していないと、それはインアクティブとみなされる。インアク
ティブなクライアントは、アクティブなネットワーク・サーバによりラインアッ
プ・カードに載せられた後で、「スピッティング・オン・ザ・バス」と名付けら
れたプロセスにより、媒体100に送信することができるだけである。下の表A
1には可能なノード腕木信号状態と、各状態が媒体への送信に関して意味するも
のを示す。
【0167】 ___________________________________ システム状態 ノード状態 次の送信動作 ____________________________________ 覚醒 アクティブ ラインアップ・カードで:トークンを待つ ____________________________________ 覚醒 インアクティブ ラインアップ・カード外で:スッピト・オン ・ザ・バス ____________________________________ 睡眠 アクティブ 悪い状態:聴取し、その後サーバであると表明 する ____________________________________ 睡眠 インアクティブ 聴取し、その後サーバであると表明する ____________________________________ 表A1.新たな送信の用意ができているノードに対する次の動作。
【0168】 データグラム検出または「聴取」 上記システム状態腕木信号は、ノードが聴取を開始すべきか否かを決定する際
の主な要因である。それは、ノードがアクティブネットワーク・サーバであると
自身で表明すべきか否か、またはそれがクライアントとしての服従的な役割を演
ずるか否かを決定する際の主な要因でもある。通常は、聴取は、睡眠中のシステ
ムへの最初の送信に先立って行われるだけである。いずれかのノードが媒体10
0へ送信していると、アクティブネットワーク・サーバはLIPパケットを送る
ため、およびトークン配信を仲裁するために、アクティブネットワーク・サーバ
は既に選択されており、システムは覚醒している。システムが覚醒しているなら
ばノードはクライアントとして行動すべきである。
【0169】 媒体100へ送る準備が整っているパケットをあるノードが有していること、
およびシステム状態腕木信号が睡眠中であることをそのノードが判定すると、ノ
ードは聴取プロセスを行ってそれの次のステップを決定し、この最初のプロセス
中の衝突を最少にする。これは、2つのノードが媒体100を求めて争うことが
あり、かつ考えられる見えていない衝突が起こり得る、PLXネットワーク上の
時間のみでなければならない。このようにして、堅実なバックオフ・アルゴリズ
ムが提供される。
【0170】 聴取においてアドレスするために次のような2つの可能なケースがある。(1
)ノードに電源が投入されたばかりで、現在のシステムに加えたことを告知する
ために、それの「告知」パケットまたは「CAL−ピン(ping)」パケット
を送る必要がある。(2)ノードはインアクティブで、システムを覚醒させよう
と試みている。いずれのケースでも、聴取中にあるサーバが検出されると、その
ノードはLIPパケットのサーチを直ちに開始すべきである。LIPパケットは
ノードがラインアップ・カードをアクティブネットワーク・サーバに挿入するこ
と、およびその後でのトークン・パッシングおよびノード送信を可能にする。
【0171】 最初の「聴取/ピン(Ping)」告知 ノードに電源が投入されると、そのノードはシステムにおけるそれの存在を放
送CAL−ピン・パケットを送信することにより直ちに告知する。これによって
、情報を「引く」ことを常に試みる代わりにそれを「押す」ことによって、自動
発見機構を一層堅実なものにすることができるようにされる。電源を投入された
ばかりのノードはシステムに関する履歴を持っていないので、聴取アルゴリズム
は正常な覚醒プロセスとは僅かに異なる。
【0172】 最初の聴取はCAL−ピン・パケットを放送するまでに500msも要するこ
とがある。これは、指定された時間だけトラフィックを実際に聴取し、その後で
その時間中無作為に聴取し、放送覚醒パケットを3回送信して好適なサーバに、
このノードが存在するならば、それをポーリングをする機会を与えることによっ
て行われる。この動作は3回繰り返され、それが終わると、CAL−ピン・パケ
ットが全てのノードへ放送されて、システムへのエントリが成功したことを知ら
せる。聴取/ピンのための一連の動作が擬似コードで次のように与えられている
【0173】 1) a)125msより短い任意の長さの時間媒体100を聴取する(LI
Pパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)聴取を続けて全部で125msの時間を終了する。 2) a)125msより短い任意の長さの時間媒体100を聴取する(LI
Pパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)聴取を続けて全部で125msの時間を終了する。 3) a)125msより短い任意の長さの時間媒体100を「聴取する」(
LIPパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)「聴取」を続けて全部で125msの時間を終了する。 4)アクティブネットワーク・サーバとして表明し、放送「CAL−ピン」
パケットを送信して存在を示す。 5)アクティブネットワーク・サーバとしての表明を取消す。
【0174】 上記聴取/ピン・プロセスはノードに電源が投入された後で1回行われ、そこ
からこのプロセスが要する待ち時間は通常は長くない。以下に説明する実行時間
覚醒プロセスはもっとしばしば実行されるので、待ち時間はもっと短いことが望
ましい。
【0175】 実行時間「聴取/覚醒」シーケンス ノードに電源がひとたび投入され、それがシステムに存在することが告知され
ると、それは実行時間モードで動作を開始する。それの実行時間動作モード中に
、ノードがパケットを睡眠中のシステムへ送る必要があると、それは同様な一連
の事象を進んで、好適なサーバを覚醒させようと試みる。好適なサーバが存在せ
ず、かつアクティブネットワーク・サーバが存在しないとすると、ノードはアク
ティブネットワーク・サーバと自身を表明し、クライアント・ノードのポーリン
グを開始する。聴取/覚醒アルゴリズムのための疑似コードの表が下に与えられ
ている。下に与えられているアルゴリズムに加えて、応答時間をより短くするた
めに、システムの状態を反映させるためにノードは媒体100の監視と、ローカ
ル・ノードセマフォの使用とを交互に行うことができる。このプロセスに関連す
る待ち時間を一層短縮するために、ローカル・ノードセマフォは覚醒パケットに
関連して用いられる。
【0176】 1) a)125msより通常短い任意の長さの時間媒体100を聴取する(
LIPパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)「聴取」を続けて全部で125msの時間を終了する。 2) a)125msより通常短い任意の長さの時間媒体100を聴取する(
LIPパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)聴取を続けて全部で125msの時間を終了する。 3) a)125msより短い任意の長さの時間媒体100を「聴取する」(
LIPパケットを求める)。 b)覚醒パケットを間隙間に300μsの間隔をおいて3回放送する。 c)聴取を続けて全部で125msの時間を終了する。 4)アクティブネットワーク・サーバとして表明し、それに応じて次のパケ
ットを送信する。 5)アクティブネットワーク・サーバとしての表明を取消す。
【0177】 スピッティング・オン・ザ・バス システム上のノードが送信準備の整ったパケットを有し、かつシステムが覚醒
している(アクティブネットワーク・サーバが存在し、かつそれが現在トークン
を配信している)時に「スピッティング」プロセスは起きる。アクティブネット
ワーク・サーバは媒体100をアクセスすることを許可されている唯一のノード
である。アクティブネットワーク・サーバのラインアップ・カードは、インアク
ティブのクライアント・ノードが媒体100をアクセスできるようにする機構の
ことである。
【0178】 典型的な実行時間動作中は、ネットワークは2つの状態、すなわち、睡眠中ま
たは覚醒中、のいすれか1つで現れる。スピッティング・プロセスはネットワー
クが現在どの状態にあるかに応じて僅かに異なる。
【0179】 睡眠および覚醒状態 サービスを現在求めているノードがないと、アクティブネットワーク・サーバ
が判定した時にネットワークは睡眠状態に入り、その結果、トークンの送信を停
止する。ネットワークの動作停止の前に、アクティブネットワーク・サーバは一
連のマスクされた群LIP(LIPG)要求パケットを指定された時間送る。一
連のLIPG要求パケットがどのクライアント・ノードからも応答を引き出さな
いと、アクティブネットワーク・サーバは活動しなくなり、ネットワークは睡眠
状態に入る。送信を求めているノードによるネットワークへのその後のエントリ
は、その後で上記正常な競合取扱い、聴取アルゴリズムを介して行われる。
【0180】 覚醒状態は、指定されたネットワークにおける、1つまたは複数の遠隔ノード
と情報を能動的に交換しているノードを象徴する。覚醒状態では、媒体アクセス
はアクティブネットワーク・サーバおよびそれのラインアップ・カードにより制
御される。ラインアップ・カードに現在載せられているノードに対するトークン
・パッシングを用い、かつラインアップ・カードに載せられようと試みているノ
ードに対するスピッティングによって衝突は減少させられる。
【0181】 「スピッティング・オン・ザ・バス」シーケンス スピッティング・オン・ザ・バスのためのシーケンスによって、アクティブネ
ットワーク・サーバがLIPGパケットを周期的に送ることができるようにされ
る。睡眠中のクライアント・ノードはLIPGパケットに応答することを許され
る。応答がひとたび見られると、アクティブネットワーク・サーバはマスクされ
ていないLIPD要求を全てのノードへ送って、トークンを望んでいるノードの
アドレスを持つ単一の応答を希望する。2つ以上のノードがトークンを求めて競
合しているとすると、応答は見られず、アクティブネットワーク・サーバはノー
ド分離シーケンスに入る。
【0182】 図6Aおよび図6Bは、それぞれアクティブネットワーク・サーバおよびクラ
イアント・ノードのためのスピッティング・オン・ザ・バスのプロセスを示す図
6Aでは、アクティブネットワーク・サーバのためのスピッティング・オン・ザ
・バスのプロセスは、ノードがアクティブネットワーク・サーバになった時にス
タート・ブロック901で始まる。プロセスはスタート・ブロック901からポ
ーリング・ブロック902へ進む。ポーリング・ブロック902では、アクティ
ブサーバは現在ラインアップ・カードに載せられているクライアント・ノードの
全てをポールする。ポーリングがひとたび終了すると、プロセスは送信ブロック
903へ進む。送信ブロック903では、アクティブサーバ・ノードはマスクさ
れていないLIPG要求を送り、その後で判定ブロック904へ進む。判定ブロ
ック904では、アクティブサーバはLoGI応答を探す。LoGI応答が受け
られたとすると、プロセスはプロセス・ブロック905へ進み、さもなければ、
プロセスはポーリング・ブロック902に戻る。
【0183】 プロセス・ブロック905では、アクティブサーバはマスクされていないLI
PD要求を送り、その後で判定ブロック906へ進む。判定ブロック906では
、アクティブサーバが直接ACK(DACK)応答を探す。1つのDACK応答
が受信されると、プロセスはプロセス・ブロック907へ進む。多数のDACK
応答が受信されるか、DACK応答が受信されないと、プロセスはノード分離ブ
ロック910へ進む。プロセス・ブロック907では、DACK応答を送ったク
ライアント・ノードがラインアップ・カードに加えられ、その後でプロセスはポ
ーリング・ブロック902に戻る。
【0184】 プロセス・ブロック910(ノード分離アルゴリズムを開始している)では、
プロセスはLIPGマスクを初期化し、プロセス・ブロック911へ進む。プロ
セス・ブロック911では、マスクが更新され(たとえば、マスク中の次のビッ
トがトグルされる)、プロセスは送信ブロック912へ進む。送信ブロック91
2では、マスクされたLIPG要求が送られ、プロセスは判定ブロック913へ
進む。判定ブロック913では、プロセスはLoGI応答を探す。LoGI応答
が受信されると、プロセスは判定ブロック915へ進み、さもなければ、プロセ
スはプロセス・ブロック914へ進む。プロセス・ブロック914では、プロセ
ス・ブロック911で最近にトグルされたマスク・ビットがトグルを解除され、
プロセスは判定ブロック915へ進む。
【0185】 判定ブロック915では、マスク中の全てのビットがトグルされると、プロセ
スはプロセス・ブロック916へ進み、さもなければ、プロセスはプロセス・ブ
ロック911に戻る。プロセス・ブロック916では、アクティブネットワーク
・サーバはマスクされたLIPG要求を送り、判定ブロック917へ進む。判定
ブロック917では、DACK応答が受信されると、プロセスはプロセス・ブロ
ック907へ進み、さもなければ、プロセスはポーリング・ブロック902に戻
る。
【0186】 プロセス・ブロック903〜907は最初のシーケンスをスピッティングして
いるサーバの一部である。プロセス・ブロック910〜917はノード分離シー
ケンスをスピッティングしているサーバの一部である。
【0187】 図6Bはクライアント・スピッティング・アルゴリズムを示す流れ図であって
、アクティブネットワーク上のクライアントのためのスタート・ブロック931
で始まる。スタート・ブロック931から、プロセスは判定ブロック982へ進
み、そこで送信状態が調べられる。送信状態が「準備完了」であれば、プロセス
は判定ブロック983へ進み、さもなければプロセスはアイドル・ブロック98
8へ進む(アイドル・ブロックは判定ブロック982に戻る)。
【0188】 判定ブロック983では、ノードがシステム・トークンを受信すると、プロセ
スは送信ブロック989へ進み、さもなければ、プロセスは判定ブロック984
へ進む。送信ブロック989では、ノードはデータのパケットを送り、プロセス
は判定ブロック982に戻る。判定ブロック984では、ノードがLIPD要求
を受信すると、プロセスはプロセス・ブロック990へ進み、さもなければプロ
セスは判定ブロック986へ進む。判定ブロック986では、プロセスは時間切
れまたはシステム睡眠状態を調べる。プロセスが時間切れまたは睡眠を検出する
と、プロセスはプロセス・ブロック987へ進み、そこで現在のノードが実施例
をアクティブサーバであるとして表明する。
【0189】 プロセス・ブロック990では、LIPDからのマスクが現在のノードのノー
ド・アドレスと比較され、プロセスは判定ブロック991へ進む。判定ブロック
991では、マスクがノードに一致すると、プロセスは応答ブロック992へ進
実、さもなければ、プロセスは判定ブロック982に戻る。応答ブロック992
では、ノードはネットワーク・サーバに応答し(適切なLoPGまたはDACK
で)、プロセスは判定ブロック682に戻る。
【0190】 群LIP(LIPG)質問 ネットワークが覚醒している間、アクティブネットワーク・サーバは群LIP
質問を周期的に放送する。群LIP(LIPG)質問は論理群分離(LoGI)
応答を任意の数のノードから求める。この機構は、衝突のない機構において使用
中ネットワーク内にラインアップ・カードに挿入する機会をクライアント・ノー
ドに与える。LoGIパケットの利点は、多数の同時ノードがこの種のパケット
を送信できること(それらが同じ時間内にあると仮定して)、および結果が単一
のLoGIパケットである、ということである。したがって、多数のLoGI応
答によって単一のLoGIパケットが受信ノードにより見られることになる。
【0191】 最初のLIPシーケンス・パケットは、ネットワークにおけるいずれか1つの
ノードがLIPシーケンスをラインアップ・カードに挿入することを開始するこ
とを望んでいるかどうかを判定するために送られる、マスクされていない群LI
P(LIPG)質問である。LoGIシーケンスが見られたとすると、おそらく
単一のノードのみが挿入することを望み、したがって、マスクされていない直接
LIP(LIPG)パケットが次に送られる。直接応答が見られないと、その後
のLIPGパケットがマスクされたアドレスを持つ群パケットとして送られる。
これは、ラインアップ・カードに挿入される特定のノードを分離するために用い
られる、骨の折れる、効率の低い分離機構である。これはビットマスクを系統的
に送ることによって行われる。それは遠隔ノードの32ビットアドレスの単一の
ビットを同時に分離する。2つまたは3つ以上の衝突したノードがトークンを同
時に要求したときに、この分離機構は実行されなければならない。
【0192】 直接LIP(LIPD)質問 直接LIP(LIPD)質問はLIPG質問の結果として送られる。LIPD
質問の目的は、単一のノードのみが応答することを希望して(それは時間のほと
んどのケースでなければならない)マスクされていないLIPD要求を全てのノ
ードへ送ることによりLIPプロセスを促進することである。LIPDパケット
は応答するノードのアドレスを含む通常のDACK応答で応答される。単一のノ
ードが応答すると、応答が見られ、ノード・アドレスがラインアップ・カードに
適切に加えられる。しかし、LIPD要求が見られないと、(多数のノードが同
時に応答するために)アクティブネットワーク・サーバは、LIPGパケットを
用いて、正常な分離アルゴリズムによって分離を続け、「ラインアップ・カード
」に挿入される競合しているノードのうちのただ1つを選択する。
【0193】 したがって、単一のノードだけが要求に応答することを望んで、LIPDパケ
ットは分離プロセスを促進するために用いられるだけである。
【0194】 ノード分離シーケンス ノードが最初のLIPGに応答したが、なんらかの理由で単一の応答がLIP
D質問からは見られないと、アクティブネットワーク・サーバはノード分離に自
動的に進む。分離シーケンスは、LoGI応答を要求するLIPGパケットを使
用する。これによって多数の同時応答をアクティブネットワーク・サーバによっ
て見られるようになる。
【0195】 「アクティブネットワーク・サーバ」は、第1のアドレス(最下位)ビットが
セットされたパケットを送ることによってこのシーケンスを開始する。送信を望
んでいるノードは、この特定のアドレス・ビットがそれら自身に一致し、かつ一
致した時のみ、このパケットに応答する。このアルゴリズムは、元のマスクとの
比較が後に続く簡単な「AND」である。2つの値が一致すると、パケットはL
oGIにより応答される。
【0196】 アクティブネットワーク・サーバはその後以前に一致したマスクをそのまま持
ち、次のビットがセットされている次のパケットを送る。再び、ビット・シーケ
ンスが一致したならばノードは応答する。どのノードも応答しないと、アクティ
ブネットワーク・サーバは現在のビットをクリヤし、そのパケットを再び試行す
る。これは、32ビットの全てが識別されて一致が見出されるまで続行される。
この時点で、唯一に識別されたノードがアクティブネットワーク・サーバのライ
ンアップ・カードに加えられる。
【0197】 集中化されたトークン・パッシング(ポーリング) システムが覚醒していると、ラインアップ・カードに含まれている各ノードに
(スピッティング・プロセスにより)、媒体100をアクセスできる時間である
決定論的タイムスロットを与えることが望ましい。各ノードに使用中の媒体10
0を介して送信する同じ機会を与えることも望ましい。イーサネットは上記利点
のいずれも欠いているが、トークン・リングは両方とも有する。
【0198】 トークン・リングは、各ノードにそれの上流側および下流側の近くのノードの
アドレス、およびトークンが常に存在/回転することを知ることを要求する点が
欠点である。従来のトークン・リング・ネットワークのオーバーヘッド要件は、
PLXにより意図されているダム・ノードとは適合しない。さらに、電源線ネッ
トワークの特別なネットワーク化要件はそのような厳密なトークン回転には寄与
しない。したがって、PLXはダイナミック・ラインアップ・カードを有する集
中化されたトークン・パッシング(CTP)機構を導入する。
【0199】 CTPでは、アクティブネットワーク・サーバ・ノードは、トークンが存在す
ること、トークンを必要としている全てのノードがそれを得ること、睡眠中のノ
ードが覚醒できかつトークンを受信することができること、およびトークンが決
定論的なやり方で公平に分配されることを確実に行う責任を負っている。CTP
の下では、アクティブサーバ以外のノードはクライアントと呼ばれている。アク
ティブネットワーク・サーバの役割は上記データグラム検出または聴取プロセス
を通じて自己指名される。アクティブネットワーク・サーバの役割は媒体100
での所定の時間の動作の後で破棄される。一実施形態では、アクティブサーバの
役割は約5秒の動作しなかった後で放棄される。システムの動作中は、アクティ
ブネットワーク・サーバはラインアップ・カード中の各クライアント・ノードを
ポーリングするとともに、新しいノードに、それら自身をラインアップ・カード
にスピッティング・プロセスを通じて挿入できる機会を与える役目をする。
【0200】 図7はネットワーク・サーバ・ポーリング・アルゴリズムを示す流れ図であっ
て、ノードがアクティブサーバになるスタート・ブロック1001で始まる。プ
ロセスはスタート・ブロック1001から判定ブロック1002へ進み、その判
定ブロックで周期的LIPパケットを送信の必要性を判定する。LIPパケット
が必要とされると、プロセスはプロセス・ブロック1010へ進み、さもなけれ
ば、プロセスはプロセス・ブロック1003へ進む。プロセス・ブロック101
0では、ノードは図6Aに関連して説明したアクティブサーバ・スピッティング
・プロセスを実行する。プロセス・ブロック1010が終了すると、プロセスは
プロセス・ブロック1003へ進む。
【0201】 プロセス・ブロック1003では、プロセスはラインアップ・カード中の次の
エントリを獲得して判定ブロック1004へ進む。プロセス・ブロック1004
では、ラインアップ・カード中の全てのエントリが処理されると(すなわち、全
てのクライアント・ノードが話す機会を持っていると)、プロセスはプロセス・
ブロック1011へ進み、さもなければ、プロセスはプロセス・ブロック100
5へ進む。プロセス・ブロック1011では、トークンはアクティブサーバに与
えられ(したがって、アクティブサーバが話すことを許される)、プロセスはプ
ロセス・ブロック1005へ進む。
【0202】 プロセス・ブロック1005では、トークンがラインアップ・カードから得ら
れた次のノードに与えられ、プロセスは判定ブロック1007へ進む。判定ブロ
ック1007では、応答時間切れが起きると、プロセスはプロセス・ブロック1
012へ進み、さもなければ、プロセスは判定ブロック1007へ進む。判定ブ
ロック1007では、クライアント・ノードがそのトークンを使用しなかった場
合、プロセスはプロセス・ブロック1012へ進む。プロセス・ブロック101
2では、アクティブノードの数のカウントがデクリメントされ、プロセスは判定
ブロック708へ進む。
【0203】 判定ブロック1008では、全てのノードがインアクティブであると、プロセ
スはプロセス・ブロック1009へ進み、さもなければ、プロセスは判定ブロッ
ク1002に戻る。プロセス・ブロック1009では、アクティブサーバは活動
してい無いクライアント・ノードへ戻る。
【0204】パケットの型およびフォーマット PLXネットワークにおけるパケットはパケットの目的に応じて種々のフォー
マットをとることができる。種々のフォーマットは3つの別々の部類にグループ
化するのが好都合である。
【0205】 1つのフォーマットによって、多数のノードが、干渉問題や復調問題なしに、
同じ応答パケットを同時に送信/受信できる。それらは論理的グループ分離(L
oGI)パケットと呼ばれており、放送/再放送および確認応答のために主とし
て用いられる。
【0206】 生データ・ペイロード・パケットおよびコマンド・ペイロード・パケットと呼
ばれている、他の2つの型のパケットは、単一のノードが任意の所与の時点でワ
イヤにより通信する時に用いられる。新しい生データ・ペイロード・パケットは
、それのアプリケーションに属する情報の送信/受信を望んでいるアプリケーシ
ョンにより用いられる。ホスト・ノードから来るパケットは生データ・ペイロー
ド・パケットおよび任意のCALパケットである。
【0207】 PLXコマンド・ペイロード・パケットが媒体のアクセスおよび流れを管理す
るために用いられる。PLXコマンド・パケットはアダプタのファームウエア内
およびハードウェア内で発生し、かつ終息して、ホスト・ノードは通らない。P
LXコマンド・パケットはトークン、確認応答、ラインアップ挿入等の円滑な流
れを容易にするものであって、全てのPLXネットワークに固有のものである。
【0208】 論理グループ分離(LoGI)応答パケット ノードがグループ要求(多数の同時応答の可能性を持つ要求)をネットワーク
へ送り出す時に第1の形式が用いられる。PLXは衝突が減少した、またはある
場合には衝突がない環境が望ましいので、衝突を検出することは困難である。し
たがって、同時応答が可能である。図8に示されている、LoGIパケット11
00は2バイト0フィールドと、それの後に続く多数の2バイトオール「1」フ
ィールドと、それの後の2バイト0フィールドとを含む。この種のパケット内に
存在するデータは非常に秘密であるが、群応答を単一のノードに分離することを
助けるその目的を果たす。
【0209】 マスクされたLIPG要求がLoGIパケットに先行する。2つ以上のノード
のマスク手段はマスクされたアドレスに一致でき、したがって、多数の同時応答
が生ずることができる。LIPGパケットについては後で説明する。
【0210】 LoGIパケットは、特定のパケット中に存在する1の列を長くすることによ
ってある非常に単純化されたデータも含む。長くされたパケットは、異なる型の
応答を示すために、時間変位(time displacement)と共に用
いなければならない。放送パケットはこの特徴を用いて、使用中の応答を1つま
たは複数のノードにより同時に示すことができるようにする。
【0211】 ペイロード・パケット 第2の形式はネットワークの周囲でペイロードを運ぶために用いられる。これ
はネットワーク上で最も一般的に用いられている形式であって、有用なデータ情
報を送信および受信するために有効な形式である。
【0212】 ペイロード・パケットは、受信側の範囲と、それらが受信することを期待して
いる応答の型とを示す2つの形式もとる。それらはグループアドレスされる(通
常は放送パケット)パケット型および直接にアドレスされるパケット型である。
群アドレスされるパケットはLoGI応答を受信することのみができ、一方、直
接アドレスされるパケットは、単一の応答が期待されているために、直接確認応
答パケットすなわちDACKパケットを受信する。
【0213】 ペイロード・パケットは、パケット内でのペイロードの使用を決定する2つの
別々の部類にさらに分割される。それらは生データ・パケットとPLXコマンド
・パケットである。
【0214】 生データ・パケット 生データ・パケット1200のフォーマットが図9に示されている。それはプ
リアンブル・フィールド1201と、長さフィールド1202と、長さフィール
ド1203と、ctrlフィールド1204と、宛先アドレス・フィールド12
05と、発信元アドレス・フィールド1206と、シーケンス・フィールド12
07と、認証フィールド1208と、DSkフィールド1209と、SSkフィ
ールド1210と、ペイロード・フィールド1211と、CRCフィールド12
12とを含む。生データ・パケット1200はアクティブサーバ・ノードまたは
クライアント・ノードによって送られる。長さフィールド1202と、長さフィ
ールド1203と、ctrlフィールド1204と、宛先アドレス・フィールド
1205と、発信元アドレス・フィールド1206と、シーケンス・フィールド
1207と、それから認証フィールド1208と、DSkフィールド1209と
、SSkフィールド1210はMACヘッダ1215の構成要素である。ペイロ
ード・フィールド1211は適切なペイロード・ハンドラにより調べられるべき
アプリケーション層情報を含む。ホストPCおよびCALインタープリータはペ
イロード・ハンドラの例である。一実施形態では、生データ・パケット1200
は3バイトのプリアンブル1201と、13〜15バイトのMACハンドラ12
15と、255バイトまでのペイロード部1211と、2バイトのCRC121
2とを有する。
【0215】 PLX(外部)コマンド・パケット PLXコマンド・パケットは、2つのノードが短いパケット・シーケンスによ
って通信するための手段を提供することにより、媒体100を介するデータの流
れを容易にするために用いられる。PLXコマンド・パケットの変形についての
説明を以下に行う。
【0216】 トークン・パケット:PLXトークン・パケット1300のフォーマットが図
10に示されており、それはプリアンブル・フィールド1201と、長さフィー
ルド1202と、長さフィールド1203と、ctrlフィールド1204と、
宛先アドレス・フィールド1205と、発信元アドレス・フィールド1206と
、CRCフィールド1212とを含む。長さフィールド1202と、長さフィー
ルド1203と、ctrlフィールド1204は(16進)値0x05、0x05
、および0x17をそれぞれ有する。
【0217】 トークン・パケット1300は直接にアドレスされたノードへ送られ、いずれ
のペイロード型パケットも求める。注意を必要としないノードは単にDACKす
べきであり(状態フィールドが0x03にセットされている)、これは、それら
のノードが話すべきなにものも持たず、トークンを使用しないことを意味する。
【0218】 クライアント・ノードはアクティブネットワークへ送信する前にトークンを呼
び出すべきである(LIPプロセスによって)。ノードがこのトークンを用い続
けている限り、アクティブネットワーク・サーバはそれにトークンを送り続ける
。しかし、クライアント・ノードが「使用されていないトークン」応答で繰り返
し応答すると、アクティブネットワーク・サーバはノードを老化させ、それはラ
インアップから外される。
【0219】 トークン・パケットは通常のMACヘッダ(発信元アドレスを差し引いている
)とCRCを含んでいるが、データ・フィールドは用いられない(データ・フィ
ールドのサイズは零である)。トークンは、アドレスを0xfffffffeに
固定すべきである「アクティブネットワーク・サーバ」から来ることができるの
みである。
【0220】 直接確認応答(DACK)パケット:PLXトークン・パケット1400のフ
ォーマットが図11に示されており、それはプリアンブル・フィールド1201
と、長さフィールド1202と、長さフィールド1203と、ctrlフィール
ド1204と、宛先アドレス・フィールド1205と、状態フィールド1401
と、CRCフィールド1212とを含む。長さフィールド1202と、長さフィ
ールド1203と、ctrlフィールド1204は(16進)値0x06、0x
06、および0x07をそれぞれ有する。
【0221】 DACKパケットはパケットまたはパケット列の有効な受信に対して確認応答
するために受信ノードにより送られる。DACKパケットは直接にアドレスされ
たメッセージ・パケット(LIPDパケットを除き)から戻されるだけである。
【0222】 DACKパケットはネットワークにおける2つのノードの間の典型的なハンド
シェイキング・シーケンスを終了させるために用いられ、その結果3つのノード
...1)アクティブネットワーク・サーバ、2)要求するノード、3)応答す
るノード、を含む。(要求するノード/応答するノードは、「アクティブネット
ワーク・サーバ」が現在の要求の宛先であるならば、「アクティブネットワーク
・サーバ」とすることもできる)。DACK状態フィールドはパケットを受信す
るノードの型(アクティブネットワーク・サーバまたはクライアント)に応じて
変化する。要求するノードへ(応答するノードによって)送り返されたDACK
パケットは、要求しているノードへ制御を戻してパケットの流れを継続し、(要
求するノードにより)「アクティブネットワーク・サーバ」へ送り返されたDA
CKパケットは「アクティブネットワーク・サーバ」へ制御を戻して、パケット
の流れの終りを知らせる。要求するノードは、シーケンスまたはDACKパケッ
トが受信されていないと、パケットを再度要求する役目を有する。
【0223】 DACKパケットは通常のMACハンドラおよびCRCと、1バイト・ペイロ
ードとを含む。状態フィールドは受信したパケットに関する情報を含み、それは
このフィールド内に戻される。状態フィールド1101の値を表A2に示す。
【0224】DACK ノード 摘要 0x0 全部 バッファ・フル受信(障害) 0x1 全部 障害(多チャネル応答) 0x2 サーバ ノードによって用いられるトークン 0x3 サーバ ノードによって使用されないトークン 0x4 サーバ 「覚醒している」要求に応答するトークン 0x9 全部 プリンタ・シーケンス番号付けエラー 0xa 全部 プリンタ・プラグを抜かれたエラー 0xb 全部 プリンタ・オフラインエラー 0xc 全部 プリンタ一般的なエラー 0xd 全部 紙エラーのプリンタ 0xe 全部 プリンタの未知のエラー 0xf 全部 成功 表A2.DACK状態フィールド1101の値
【0225】 この情報は実際の媒体100自体へ送られること、およびホスト・ノードにま
で送られる状態ではないかもしれないことに注目すべきである。ホストに送られ
る状態情報に関するより多くの情報については内部PLXパケット、Tx状態に
ついての節を参照されたい。
【0226】 ラインアップ挿入パケット(LIPDおよびLIPG):図12はPLXパケ
ット1500のフォーマットを示すものであって、それはプリアンブル・フィー
ルド1201と、長さフィールド1202と、長さフィールド1203と、ct
rlフィールド1204と、宛先アドレス・フィールド1205と、マスク・フ
ィールド1501と、CRCフィールド1212とを含む。長さフィールド12
02と、長さフィールド1203と、ctrlフィールド1204は(16進)
値0x09、0x09、および0x23をそれぞれ有する。
【0227】 図13はPLX LIPDパケット1600のフォーマットを示すものであっ
て、それはプリアンブル・フィールド1201と、長さフィールド1202と、
長さフィールド1203と、ctrlフィールド1204と、宛先アドレス・フ
ィールド1205と、零フィールド1601と、CRCフィールド1212とを
含む。長さフィールド1202と、長さフィールド1203と、ctrlフィー
ルド1204は(16進)値0x09、0x09、および0x23をそれぞれ有
する。
【0228】 ラインアップ挿入パケット(LIP)は「アクティブネットワーク・サーバ」
によって送られて、新規の物が既存のラインアップ・カードに入ることができる
ようにする。これは2つの別々のパケットで行われ、それらのパケットは両方と
も全ての聴取しているノードへ放送される。第1のパケット、すなわちLIPG
パケット1500、はLIPマスク・フィールド1501を含む。マスク150
1はLoGIシーケンスで応答する前に遠方のもののアドレスに一致しなければ
ならない。第2のパケット、すなわちLIPDパケット1601は、応答するノ
ードを、それの発信元アドレス(ラインアップ・カードに挿入すべき)を含んで
いるDACKパケットで応答させることによって、挿入プロセスを促進するため
に用いられる。
【0229】 したがって、LIPGパケットはマスクされ、かつLIPマスク・フィールド
内に対応するビット・シーケンスを有する。ノードはLoGIパケットでLIP
Gパケットに応答しなければならない。同様に、LIPDパケットはマスクされ
ておらず、これは、ラインアップ・カードに入ることを望んでいる全てのノード
(これはノードがラインアップ・カードに既に無いことを意味している)もDA
CKで応答すべきであることを意味する。
【0230】 ペイロード・パケット・フレーム・フォーマット 下記は、ペイロード型パケット内に存在できる各フィールドについての説明で
ある。これは、生データ・パケット型とPLXコマンド・パケット型の両方につ
いてあてはまる。
【0231】 プリアンブル/スタート・シーケンスはパケット・フォーマットの一部ではな
いが、ハードウェアを入来パケットに同期させるキャリヤを検出するため、およ
び現在のパケット内の以後のバイトのビット時間すなわちライン速さを決定する
ために用いられる所定のビット・パターンである。プリアンブルの長さは、ライ
ン上に有効なキャリヤおよび同期化を存在させるために必要な最小量のビット時
間によって決定される。そのプリアンブル1201のビット・パターンは シーケンス 0xaa 第1の同期バイト 0x31 第2の同期バイト 0xnn 速さ/第3の同期バイト である。
【0232】 速さ(すなわち第3の同期)バイトは入来するデータ(長さバイト1202で
スタートする)の速さを決定するものであって、次のように要約される。
【0233】 速さ 0x55 低速−350k 0xdd 中速−700k 0x99 高速−1.19m 0x11 予備 最後に、プリアンブルの後に、パケットの長さを記述する2つの重複長さバイ
ト1202〜1203が続く。それらのバイトは新な速さで来る。
【0234】 長さフィールド 長さフィールド1202〜1203は入来パケットのサイズを示すために用い
られる。長さフィールド1202〜1203は、有効なパケット受信を決定する
ためにハードウェアにより使用される(キャリヤ検出信号が存在しない中で)。
パケットの長さにひとたび達すると、CRCフィールド1212の妥当性が検査
される。したがって、PLXパケットの長さは全部で256バイト(プリアンブ
ル・フィールド1201とCRCフィールド1212を含めて)に制限すること
が好ましい。その長さはMACヘッダ1215(制御、アドレス等)と、オプシ
ョンのフィールドと、ペイロード・フィールド1211とを含む。
【0235】 入来データストリーム(それはプリアンブルの延長として機能する)の有当性
を確実にするために長さフィールドは2つの時間(1202、1203)に重複
される。長さフィールド1202〜1203はパケット受信の開始前に相互に(
およびプリアンブル一致)一致しなければならない。
【0236】 制御フィールド 上で示したように、ペイロード・パケットは次の2つの主な型:PLXコマン
ド・パケットまたは生データ・パケット、の1つとすることができる。
【0237】 PLXコマンド・パケットの型は2つの下位型、すなわち外部PLX・コマン
ドおよび内部PLXコマンドにさらに分類される。内部PLXコマンド・パケッ
トは、ローカル接続(USB、1234、直列等)を介するハードウェアとホス
ト・ノード・ドライバとの間のハンドシェイクを指す。外部PLX・コマンド・
パケットは、媒体100アクセスを調整する電源線媒体100自体上のハンドシ
ェイク・パケットを指す。
【0238】 制御フィールド1204は図示のようにパケットの型に応じて変化し、各ビッ
トは表A3に示されているように特定の定義のための専用である。
【0239】 ビット PLX(EXT) PLX(INT) RAW(NON−PLX) 0: PACKET_TYPE(1) PACKET_TYPE(1) PACKET_TYPE(0) 1: PLX_SUBTYPE(1) PLX_SUBTYPE(0) RAW_ACK_TYPE0 2: PLX_ACK_TYPE 予備(0) RAM ACK TYPE1 3: 予備(0) 予備(0) 暗号 4: EXT_SUBTYPE INT_SUBTYPE ソケット 5: EXT_SUBTYPE INT_SUBTYPE 予備(0) 6: EXT_SUBTYPE INT_SUBTYPE PID 7: EXT_SUBTYPE INT_SUBTYPE 予備(0) 表A3.制御フィールド1204内のビット。
【0240】 パケット型 パケット型ビットは、所与のパケットがPLXの型か生データの型か、または
非PLXの型かを示すために用いられる。PLXプロトコル要求は異なって取り
扱われ、かつほとんどの場合にマイクロコントローラファームウエアによって取
り扱われ、生データ・パケットは別々のアプリケーション・ソフトウエアすなわ
ちホスト・ソフトウエアにより通常取り扱われるので、制御フィールド内で区別
を行うと都合が良かった。生データ・パケットは、適切なアプリケーション・ソ
フトウエアに渡すべき生ペイロード情報を通常含んでいる。この場合の例外は、
マイクロコントローラ内のインタープリータの一部と、ホスト・マシン内の一部
を含んでいるCALパケットである。
【0241】 ビット パケット型 1 PLXコマンド・パケット=1 0 生データ・パケット=0 PLX副パケット型 PLXコマンドは2つの形式の1つで通常来る。第1の形式は他のノードによ
るワイヤからの要求であり、第2の形式はワイヤへは進まないホストからの要求
である。マイクロコントローラファームウエアはそれら2つの型に対する応答を
弁別し、かつ2つの型は相互に完全に別個なので、このビットが作成されたもの
である。
【0242】 ビット1 PLX副パケット型 1 外部PLXコマンド・パケット=1 0 内部PLXコマンド・パケット=0 PLX ACK型 トークン・コマンド・パケットおよびDACKコマンド・パケットはアクセス
権を媒体100へ転送するために用いられ、「アクティブネットワーク・サーバ
」が媒体100の制御を他のノードへ一時的に放す場合にシーケンスを終了する
。他の2つのPLXコマンド・パケット、LIPGとLIPD、は応答パケット
を求める。応答型は型LoGIまたは型DACKのいずれかである。このビット
はどの型の応答をノードが利用すべきであるかを決定する。
【0243】 ビット2 PLX ACK型 1 DACK=1での応答 0 LoGI=0での応答 PLX副パケット外部型 PLXの仕様は、集中化された(サーバが仲裁されたトークン)トークン・パ
ッシング・システム内の2つのノードの間の接続なしの、確認応答されたデータ
転送指すおよび確認応答されなかったデータ転送サービスを提供する。それらの
ビットによってこの通信が行われることが可能になる。
【0244】 アクティブネットワーク・サーバは、クライアントが送信を開始できる前に指
令されたトークンを媒体100に置く。クライアント・ノードが媒体100に対
するアクセス権を、DACK応答パケットがアクティブネットワーク・サーバ・
ノードへ戻ることを指令された状態で終了する。アクティブネットワーク・サー
バは、クライアント・ノードをポーリングする時にアクティブノードのラインア
ップ・カードを維持する。ラインアップ・カードに載せるために、クライアント
・ノードは指令されたLIP要求(LIPD)または群LIP要求(LIPG)
のいずれかに適切に応答する。
【0245】 ラインアップ・カードにおいて1旦、ノードがポールされ、かつペイロード情
報を、確認応答された形式または確認応答されない形式で持っているパケットを
それらのノードは送受信できる。下記は媒体100において許された有効なPL
X副パケット外部型の表である。
【0246】 ビット(7、6、5、4) バイト値 パケット副型 0 0 0 0 0x07 DACK 0 0 0 1 0x17 トークン 0 0 1 0 0x27 LIPD 0x23 LIPG その他 予備 注:DACK/GACKが所定の間隙間間隔要件内の要求しているノードによ
り受信されない場合、送信(要求または応答している)ノードがその要求(応答
)を再試行する責を負う。
【0247】 PLX副パケット内部型 PLX仕様によってプロトコルの一部分が、PCなどのホスト・ノードに存在
できる。ホスト・ノードは、それが物理的に接続されている、取り付けられたノ
ードに関する情報をアクセスすることを周期的に必要とする。これは、取り付け
られているノード上のためであり、かつ遠方のノードへ送られるように通常はワ
イヤに置くべきでないため、内部PLX要求として知られている。下記は可能な
内部PLX副型についての記述である。
【0248】 ビット(7、6、5、4) バイト値 パケット副型 1 1 1 1 0xf1 エラーハンドシェイク 0 0 0 1 0x11 CAL要求 0 0 1 0 0x21 CAL応答 0 0 1 1 0x31 Tx状態 1 1 x x 予備 内部副型はホストから送られ、ハードウェアによって消費され、それから適切
な応答がホスト・ノードへ送り返される。内部パケットは媒体100へ決して送
られない。したがって、このパケット型はペイロード・パケット節では定められ
ておらず、PLX(内部)ホスト・パケットの下で定められた節にある。
【0249】 生ACK型 生ACK型はどの型の応答が現在の生データ・パケットにに続かなければなら
ないかを指定する。応答型は4つの形式、すなわち、バースト(応答なし)、二
重LoGI、LoGI、およびDACK、のうちの1つをとる。
【0250】 バースト型は説明を必要とせず、パケットは次々に送られる。バースト・シー
ケンスの最後のパケットには異なる確認応答型が割り当てられる(バースト・シ
ーケンスを終了するために、応答が用いられる)。
【0251】 二重LoGIシーケンスによってグループ要求すなわち放送要求を送ることが
可能になる。ノードがパケットをバッファできない場合、それは最初の間隙間間
隔内で応答し、それがパケット正しく受信さしてパケットを解析すると、遅延さ
れた間隙間間隔中にそれは応答する。
【0252】 LoGI応答は単一のノードへ向けられ、それは応答のための最も効率的な機
構である。LoGIパケットの長さは帯域幅に関して最も効果的であるが、応答
についての非常に多くの情報を含むことはできない。
【0253】 DACK応答は特定のノードへ向けられるが、応答内に、LoGI型よりもは
るかに多くの情報を含むことができる。
【0254】 ビット(2、1) パケット副型 0 0 バースト 0 1 二重LoGI 1 0 LoGI 1 1 DACK
【0255】 暗号 暗号ビットによってパケットの内容を、認証バイトからスタートして、暗号化
できる。1つの暗号化法が256ビットDiffie−Hellmanハンドシ
ェイクを用いて鍵の変更をこなうことができ、その後で、秘密の32バイト・ア
レイが媒体100を通じて確実に送られる。その後のトランザクションは確実な
通信のために暗号化アレイを使用できる。
【0256】 ビット 3: 暗号 現在のパケットが暗号化される=1 現在のパケットが暗号化されない=0
【0257】 ソケット 通常PLX生データ・ペイロード・パケットが下記のフィールド・サイズで構
成される。
【0258】 フィールド 長さ プリアンブル 1201 3バイト 長さ 1202、1203 2バイト 重複している 制御 1206 1バイト 宛先アドレス 1205 4バイト 発信元アドレス 1206 4バイト ペイロード 1211 0〜255バイト CRC 1212 2バイト 同じノードに多数のアプリケーションが存在している場合、特定のノード・ア
ドレス内の適切なアプリケーションへパケットを送れるようにする機構が用いら
れる。それらの型のアプリケーションはソケット・フィールドを使用する。第1
のバイトは宛先ソケット・アドレスであり、第2のバイトは発信元ソケット・ア
ドレスである。したがって、このビットを設定することにより、MACヘッダの
サイズが2倍になる。このフィールドは、実施された時は、認証バイトの直後に
あり、下記のビットがセットされると含まれる。
【0259】 ビット 4 ソケット 1 ソケット・フィールドを含む 0 ソケット・フィールドを含まない
【0260】 プロトコルID(PID) 各パケットは、IPX、TCP/IP、またはCALなどのより高いレベルの
プロトコルによって解析できる情報を含む。PLXは、ネットワークを横切って
送信/受信すべきそれらの型のパケットを入れるトランスポートとして単に用い
られる。通常は、より高いレベルの解析ルーチンがホスト・システムに存在する
が、最小セットのハードウェアはCAL解析機能を含むことが要求される。した
がって、ハードウェアはCAL要求を解析し、適切なペイロード取扱いルーチン
までの他の全ての要求を送る。プロトコル情報の中にはハードウェア(たとえば
、ROM、フラッシュメモリ等)内に配置できるものがあり、他のプロトコル情
報はホスト・ノードにより解析される。このビットは、ハードウェア・プロトコ
ル・ハンドラがこのパケットの解析を開始することを要求されているか否かを決
定する。
【0261】 ビット 6 プロトコル ID(PID) 1 プロトコルIDが存在する(マイクロ解析) 0 プロトコルIDが存在しない(生−ホスト解析) 生パケットは、データの最初のバイトがその型のプロトコルのバイト−コード
ではなく、その代わりにプロトコル・ヘッダ自身の最初のバイトであることを意
味する。PID解析可能なパケットは最初のバイト−コードを復号してどのプロ
トコルがそのパケットを解析すべきかを決定する。
【0262】 下記はPIDビットがセットされた時に利用できるオプションである。1番目
のデータバイトは現在のパケットを解析するのに必要なプロトコルの型を表して
いる。バイト値 定義 0xff 予備 n/a −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0xfe 完成されたパケット cebusResp 0xfd 正しくないパケット cebusResp 0xfc エラーパケット cebusResp −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0xdf〜0xfb 予備 n/a −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 0xa0〜0xde コンテキスト番号(CAL) cebusCmd 0x9f 予備(CAL) cebusCmd 0x00〜0x9e コンテキスト・クラス(CAL)cebusCmd
【0263】 宛先アドレス・フィールド 宛先アドレス1205は現在のパケットの宛先ノードを含む。
【0264】 あるノードがある要求を持っているか、他のノード要求に対して応答している
とき、それは、応答パケットの宛先のノードのアドレスを宛先アドレス・フィー
ルド1205内に置く。そのノードがアクティブネットワーク・サーバまたはデ
ータベース・サーバと通信できるだけであるならば、それはそのアドレスを宛先
アドレス・フィールド1205内に置く。さもなければ、宛先アドレスは要求し
ているパケットの発信元アドレス・フィールド1206から通常得られる。
【0265】 あるPLXアドレスは周知である。それら周知のPLXアドレスのリストが以
下に示す。アドレス 摘要 0x00000000〜0xffffffef 有効で独自のノード・アドレス 0xfffffff0〜0xfffffffc 予備 0xfffffffd アプリケーション・サーバ・ノード・アドレス 0xfffffffe アクティブネットワーク・サーバ・ノード・アドレス 0xffffffff ノード・アドレス放送
【0266】 発信元アドレス・フィールド 発信元アドレス1206は現在のパケットのノードのアドレスを含んでいる。
ノードが要求を持っているか、他のノード要求に対して応答していると、それは
それ自身のノード・アドレスを発信元アドレス・フィールド1206内に置く。
ノード・アドレスはノードの型と組合された8バイトGUIDの一部を用いて、
4バイトのノード・アドレスを作成する。GUIDからの最下位から7桁目のニ
ブル(Nibble)が用いられ、ノード型がノード・アドレスの最上位のニブル(8
番目のニブル)に重ね書きする。
【0267】 例: If... GUID=0x0123456789ABCDEF And Node Type=0x03 Then... Source Adress=0x39ABCDEF End If
【0268】 シーケンス番号フィールド シーケンス・フィールド1207は、媒体100で伝送されるより小さいパケ
ットに分けられたデータ・パケットまたはデータ・シーケンスを再構成すなわち
再組立てする能力をホスト・アプリケーションに与える。二重シーケンス番号は
捨て去ることができ、受信されなかったシーケンス番号は再び送ることができる
。シーケンシングによってより大きいデータ流に対してデータを完全なものにす
る。シーケンス・フィールド1207内に置かれた値はアプリケーションに依存
し、所望により他の目的に使用できる。
【0269】 認証フィールド 認証フィールド1208によって、各パケットの受信完了前に各パケットの有
効性を確認できる。認証フィールド1208は、暗号化アレイの初めの2バイト
に対して排他的オア操作を行うことによって通常シード(seed)される.し
たがって、安全システム内の全てのノードには同じ認証値がシードされ、それら
の全てはこの検証手続きを受けなければならない。完全性を高めるために認証フ
ィールドはさらに暗号化される。
【0270】 ペイロード・フィールド データ・ペイロード・フィールド1211は受信ノードに情報を提供するため
に用いられる。ペイロード・データの第1のバイトは内容をどのようにして解析
するかを決定するバイト・コードを含むことができる。データのこの最初のバイ
トは初めに説明した生ビットとともに用いられる。
【0271】 周期的冗長検査(CRC)フィールド 周期的冗長検査(CRC)フィールド1212は、送信されたパケット内に信
頼性のある誤り検出技術を用意するために用いられる。終了した時にそれは再評
価され、認証のために比較される。この検査を通らなかったパケットは捨てられ
る。
【0272】 CRCアルゴリズムは、不当なオーバーヘッド(ソフトウエアおよびハードウ
ェアにおける)なしに、所望の信頼度レベルを得るように、十分効率的かつ簡単
であるように選択される。送信されたパケットと受信されたパケットとに対する
実行中のCRC計算を行えるに十分速いCRCアルゴリズムを提供することが望
ましい。
【0273】 実行中計算(ビットまたはバイトが受信されたときに、全部のパケットが来る
ことを待っている代わりに、CRCが更新される。同じことが送信についてもあ
てはまる)は強制的ではないが、システムの全体のスループットおよび性能を高
めるのに役立つ。
【0274】 一実施形態では、G(x)=x16+x15+x11+x8+x6+x5+x4+3+x +1によってG(x)が与えられる。
【0275】 PLX(内部)ホスト・パケット PLX内部ホスト・パケットは媒体100には決して到達しないので、パケッ
トについての説明ははるかに簡単にみえる。プリアンブル1201は必要とされ
ず、また重複長さフィールド1202、1203と、アドレッシング・フィール
ド1205、1206も必要とされず、かつCRCフィールド1212も必要と
されない。図14は、長さフィールド1701と、制御フィールド1702と、
データ・フィールド1703とを含むPLX内部ホスト・パケットのフォーマッ
トを示す。データ・フィールド1703は制御フィールドが指定したいかなるも
のも含む。制御フィールドの以前の定義(それはPLX内部ホスト・パケットに
も同様に適用される)に示されているように、ハードウェアとホスト・ノードの
間を通り、トラフィックの流れを容易にするいくつかのパケットが存在する。以
下は各型のパケットの定義である。
【0276】 CAL要求パケット 図15はCAL要求パケット1800のフォーマットを示す。それは長さフィ
ールド1701と、制御フィールド1702と、CALデータ・フィールド18
03とを含む。制御フィールド1702は値0x11を有する。
【0277】 CAL要求パケット1800は、ハードウェア上に存在するCAL情報を取っ
てくるために、ホストによってハードウェア・ノードへ送られる。PLXノード
はアプリケーション・コードを有することができ、またはホスト・プロセッサが
ハードウェア/ASICから分離されているために、CAL情報はそれら2つの
別々のプロセッサを越えて拡がることもできる。したがって、ホスト・プロセッ
サはCAL情報を取り付けられているノードから周期的に集める。
【0278】 CAL応答パケット 図16はCAL応答パケット1900のフォーマットを示すものであって、長
さフィールド1701と、制御フィールド1702と、CAL応答フィールド1
903とを含む。制御フィールド1702は値0x21を有する。
【0279】 上で述べた理由と同じ理由から、CAL応答パケットはハードウェア・ノード
から取り付けられているノードへ送られる。この応答パケット1900は先行す
るCAL要求パケット1500に応答して送られる。
【0280】 Tx状態パケット(単一チャネル、スピード) 図17は単一チャネルCAL応答パケット2000のフォーマットを示すもの
であって、長さフィールド1701と、制御フィールド1702と、データフィ
ールド1903とを含む。制御フィールド1702は値0x21を有する。図1
8は多チャネルCAL応答パケット2100のフォーマットを示すものであって
、長さフィールド1701と、制御フィールド1702と、データフィールド2
103とを含む。制御フィールド1702は値0x31を有する。
【0281】 Tx状態パケットの形式は2つある。1つの形式は単一チャネル、単一スピー
ド・アプリケーションのためのものであって、制御バイト値0x21を用いる第
2の形式は多チャネル、多スピード解決のためのものであって、0x31の制御
バイトを使用する。
【0282】 単一チャネル、単一スピード解決は使用できるただ2つのTxバッファを有し
、それら2つのTxバッファの状態は内部PLXハンドシェイクによってホスト
・ノードへ周期的に送り返される。それらのTx状態パケットの目的は、ホスト
・ノードからハードウェアに渡された未解決の送信事象に関するループを閉じる
ことである。しばしば、DACKパケット内の戻された同じ値が、この送信事象
に関する情報のためにホストに渡されるが、多くの時にはDACKは外部PLX
事象に渡され、その場合には、DACK値はホスト・ノードに渡してはならない
。ホスト・ノードが送信要求を生じた時にDACK値はホスト・ノードに送り返
される。
【0283】 したがって、PLXは下に示す複製されたDACK状態値を使用する。
【0284】 媒体上で見られるDACK状態フィールド値 0x0=バッファ・フル受信(失敗) 0x2=ノードにより用いられるトークン(ホストへ送られない) 0x3=ノードにより用いられないトークン(ホストへ送られない) 0x4=「覚醒」要求に応答するトークン(ホストへ送られない) 0x9=プリンタ・シーケンス番号付けエラー 0xa=プリンタ・プラグを引き抜かれたエラー 0xb=プリンタ・オフラインエラー 0xc=プリンタ一般的なエラー 0xd=プリンタ紙エラーなし 0xe=プリンタ不明エラー 0xf=成功 0x9から0xeまでの値はプリンタ・ノードからのDACK応答である。プ
リンタ応答値はホスト・ノードへ修正されずに返される。
【0285】 値0xfはうまくいったDACK応答であって、ホストが要求を出ると、この
値もホスト・ノードへ修正されずに返される。
【0286】 値0x2から0x4は外部PLXコマンド・パケットへのDACK応答値であ
って、ホスト・ノードまで渡してはならない。
【0287】 唯一の奇妙な状態値は0x0であり、これはワイヤ上で受信中のノードがビジ
ーであり、パケットを受取ることができないことを意味する。ハードウェアはこ
の状況を認識し、指定された(それがビジーでない時よりもしばしば)このパケ
ットを再び試みる。受信するノードが異常に長い時間ビジー状態に留まっている
と、パケットは最後に中断され、「失敗−0xf」応答状態がホスト・ノードへ
送り返される。ホスト・ノードへ送り返された0x0の値は何も意味しない。そ
れは完了しなかった送信事象のデフォールト値であり、ホストは非零状態がその
フィールド内に置かれるまで待つ。0x1の値はワイヤに決して戻されない。ノ
ードが間違ったデータを持つパケットをノードが受信すると、ノードは単にその
パケットに応答せず、送信ノードはそれを再送信することを要求される。送信パ
ケットが時間切れとなりそれの最大再試行数になったとき0x1の値がホストに
戻されるだけである。
【0288】 下記は、ホスト・ノードへ通常戻されるTx状態値を示す表である(値はあら
ゆる場合にDACK応答値と同一でないことに注意されたい)。
【0289】 Tx状態データ・フィールド値 0x0=このTxバッファのためのTx状態なし 0x1=失敗(Tx時間切れまたは受信バッファ一杯) 0x9=プリンタ・シーケンス番号付けエラー 0xa=プリンタ・プラグを引き抜かれたエラー 0xb=プリンタ・オフラインエラー 0xc=プリンタ一般的なエラー 0xd=プリンタ紙エラーなし 0xe=プリンタの未知のエラー 0xf=成功 これは続くDACK情報が内部Tx状態パケットを介してホスト・ノードまで
渡されないことを意味する。
【0290】 ホストに与えられていない追加のTx状態Info 0x0=受信バッファ一杯(失敗) 0x2=ノードによって用いられるトークン(ホストへ送られない) 0x3=ノードによって用いられないトークン(ホストへ送られない) 0x4=覚醒要求に応答するトークン(ホストへ送られない) Tx状態バイトは各部分がニブル幅である2つの部分にさらに分けられ、2つ
のTxバッファ状態を現す。Tx状態フィールド中の値をそれぞれの意味と共に
以下に示す。
【0291】 Tx状態値の例 0x0f=送られることに成功した最初のTxバッファ 0x0f=送られることに成功した2且目のTxバッファ 0xff=両方のTxバッファが送られることに成功した 0x1f=2番目のTxバッファは失敗し、最初のTxバッファは成功 等...
【0292】 Tx状態パケット(多チャネル、スピード) Tx状態パケットの第2の形式は多チャネル、多スピードの解決策のためのも
のである。単一チャネルTx状態パケットに関する以前の説明の全体と、それが
DACK値にどのように関連するかは、いぜんとしてあてはまる。違いは、多チ
ャネル/スピードTx状態パケット内に含まれているデータ情報の量である。そ
のパケットは存在する各チャネルに対して以前に定められた単一の状態バイトを
基本的に含む。結果は各バイトが2つの別々のTxバッファを有する単一のチャ
ネルを表している多数のデータ・バイトである。
【0293】 パケット・タイミング、間隔取りおよび再試行 媒体100上で送信のために提示された全てのパケットは厳密なタイミング要
件を守らなければならない。それらのタイミング要件は、システムが円滑かつ衝
突なしに動作できるようにする諸規則である。それらの規則を守ることは正しい
動作のために厳密に実行されねばならない。
【0294】 正常な動作の下では、「アクティブネットワーク・サーバ」がシステム上に存
在し、媒体100をアクセスするためにアクティブノードの全てを調停しなけれ
ばならない。以下の仮定は媒体100に存在するそのようなアクティブ状態に適
用される。媒体100上でのインアクティブは、各ノードが睡眠状態にあり、し
たがって、「アクティブネットワーク・サーバ」として主張する前に正常な「聴
取」プロセスを通らなければならない。
【0295】 さらに、PLXシステムは確認応答されるハンドシェイク・シーケンスを特徴
とする。確認応答パケットは指定された時間間隔内に戻されるようになっている
。確認応答(DACK、LoGI、または二重LoGI)パケット以外のいかな
るものでも送信する前にトークン・パケットは要求される。アクティブネットワ
ーク・サーバはトークン、またはLIPパケットを送信する権利を有するノード
のみである。クライアント・ノードはペイロード・パケットおよび確認応答パケ
ットを送信するのみである。
【0296】 典型的なパケット・タイミング 図19はパケット・タイミングと間隔決定を示すタイミング図である。パケッ
ト時刻は第1の基準時刻2202および第2の基準時刻2204に関連して定め
られる。第2の基準時刻は、50μs(マイクロ秒)の平均パケット間間隙(I
/Gap)だけ第1の基準時刻に遅れている。
【0297】 上で示した図は650kbpsで動作するシステムのためのタイミングをとっ
ている。間隙間タイミング以外の全ての値は表A4に与えられているようにして
調整すべきである。表A4では上付き数字1は第1の基準2202を基準にした
時間を示し、上付き数字2は第2の基準2204を基準にした時間を示す。
【0298】 350kbps 700kbps 1.2mbps 1.4mbps Min I/Gap1 15μs 15μs 15μs 15μs AvgI/Gap1 50μs 50μs 50μs 50μs プリアンブル 130μs 65μs 38μs 33μs loGI Packet2 140μs 70μs 40μs 35μs DLogI Packet2 185μs 92μs 54μs 46μs DACK Packet2 335μs 168μs 98μs 84μs TxRetry LoGI1 205μs 103μs 61μs 52μs TxRetry DACK1 400μs 200μs 117μs 100μs TxRetry LoGI1 320μs 160μs 94μs 80μs インタートークン1 3+ms 3+ms 3+ms 3+ms 表A4.パケット・タイミング
【0299】 正常な条件の下では、典型的なパケット・タイミングは、パケットを受信して
いるノードを所定の長さの時間内に応答することを必要とする。この応答時間は
、LoGI/二重LoGI確認応答パケットを除く全てのパケットで同じである
。したがって、パケット・タイミングの2つのケースは1)LoGI/二重Lo
GIシーケンスと2)他の全ての応答である。
【0300】 他のパケット・タイミング ノードは、応答パケットを要しないバースト・パケットおよび確認応答パケッ
トを除くパケットを、ペイロード・パケットを生じたノードへ、ある時間内に、
送り返す。応答パケットは型:DACKパケット、LoGIパケット、またはペ
イロード・パケットにできる。
【0301】 応答パケットは上で図19に示されている間隙間間隔要求に追従する。最短応
答時間は通常5マイクロ秒より長く、最長応答時間は通常50マイクロ秒を超え
てはならない。
【0302】 送信ノードが前回の送信の確認応答を受信しないと、配信信頼度を高くするた
めに再試行プロセスを開始しなければならない。この再試行プロセスは最長の可
能な確認応答シーケンスまたはDACKパケットの長さプラス最も広い可能な間
隙間間隔の後で、または350kbpsで約400マイクロ秒の後で通常始まる
【0303】ノードに特有の情報 各ノードはその特定のノードを特徴付けるある量の情報でもって構成されるよ
うになる。PLXノードはシステムで完全に機能するためにこの最少量の情報を
要する。
【0304】 固有の識別、アドレス指定可能性、および大域的に固有な識別(GUID) PLXノードが電気装置に差し込まれると、そのノードはただちに動作できる
状態になる。各ノードは一連番号が焼き付けられて来る。その一連番号のうちの
下位の28ビットはそのノードの実行時間アドレスとして使用される。これは大
域的な固有性を確保せず、衝突するアドレスを有する2つのノードを見付ける貴
方の機会は2億6千8百万に1回であるので、それは衝突の可能性を制限する。
このより大きい実行時間アドレスはスループットを僅かに減少させるが、システ
ムを簡単にして(ノードは工場から予め組み立てられて出荷されるためである)
、プラグ−アンド−プレイ性能を高くし、かつ使用を容易にする。
【0305】 ユニバーサル・コンテキストおよびノード輪郭オブジェクト CEBus/一般的CALコンプライアント・ノードは、最低限、ユニバーサ
ル・コンテキストおよびノード制御オブジェクトを有し、それに変数例(IVs
)が組合わされている。PLXはCEBus/一般的CALが定めた報告条件お
よびアドレス指定からそれる(両方とも、CEBus/一般的CALピアツーピ
アアーキテクチャとは異なって、PLXクライアント/サーバ・アーキテクチャ
に関連している)。したがって、PLXはユニバーサル・コンテキスト/ノード
制御オブジェクトを、IV記述が僅かに異なるノード輪郭オブジェクトとして再
構成する。また、各PLXコンプライアント・ノードはノード制御オブジェクト
に組合わされた変数例を含む。
【0306】 各ノードは、識別する所定の属性セットを含む責任を負い、一般に知られてい
る属性を持つノード型群内にノードを置く。各ノードに対するノード輪郭オブジ
ェクト情報はノード内の不揮発性メモリにハードコードされる(hard−co
ded)ことが好ましい。ノード輪郭オブジェクトは変数例のリストで構成され
ている。各PLXノードは、下の表A5に示されているユニバーサル・コンテキ
スト(0x00)と、ノード輪郭オブジェクト(0x01)と、指定された変数
例(IV)とを少なくとも含む(ここにR/Wは読出し/書込みを示す)。
【0307】
【表1】
【0308】
【表2】 下の表A6は記憶されて、管理され、「アプリケーション・サーバ」により保
持されて、アプリケーション・サーバ内のデータベースに存在するクライアント
IVsを示すものである。したがって、クライアントはそれらのIVsに関する
情報の蓄積および提供に関わる必要はない。
【0309】 また、マスタ・ケースのみに対するユニバーサル・コンテキストの部分は、C
ALにより定められたデータ・メモリ・オブジェクトを使用する規則オブジェク
ト(0x03)、および我々の目的のために定められたある固有のIVsである
。下記はこの特定のオブジェクトの記述である。
【0310】
【表3】 規則オブジェクトによって遠隔ノードを、加え(跡継ぎ)、削除(跡継ぎしな
い)、および規則リスト内の規則を見る(アレイを獲得する)ことができるよう
にされる。
【0311】 ユニバーサル・コンテキストを提供することにより、ネットワークはノード・
リストを含むことができる。ノードはコンテキスト・リストを含むことができる
。ノードは各コンテキストごとにオブジェクト・リストを有することができる。
オブジェクト・リストが与えられると、ノードは特定の例変数を含むこともでき
る。それらのリストの多くは一般的なCAL仕様(ネットワーク・リストおよび
ノード・リスト以外)内で指定される。
【0312】 要求されると、ノードは、ノードの特定の構成について上で示したノード輪郭
の特定の部分で応答する。ノード輪郭によって、当該ネットワーク内で固有であ
る特定のノードを自動構成する手段を得ることができる。重複ノードが、一意に
特定されるようにするために、他のレベルの構成を行うことができる。
【0313】 安全 安全は2段階法により実現される。最初に、ネットワーク上で電源を投入され
た各ノードが公衆ネットワーク内に直ちに置かれる。公衆ネットワークは全ての
ノードに対するデフォールト・ネットワーク割り当てであって、他の全ての公衆
ノードが利用でき、それの認証IDがNULLに割り当てられる。下記の鍵交換
プロセスによってノードが安全になったら、それの認証IDは暗号化アレイによ
り指示された値に変化する。各ノードがこの私用/安全ネットワークに割り当て
られると、それらに32バイトの暗号化アレイが与えられ、それから以後のパケ
ットを暗号化し、または解読する。これはDiffie−Hellmanとして
知られている鍵交換技術で行われる。効率的な指数関数的アルゴリズムを用いる
と、鍵交換に用いられている値の計算に必要な時間が減る。暗号化アレイがネッ
トワークの各ノードのメモリ内にひとたび記憶されると、暗号化と解読とが行わ
れる。一実施形態では、暗号化と解読は、帰還を含む排他的論理和を基にした流
れ暗号化技術を使用する。たとえば、DES、RC4、MD5等を含む他のアル
ゴリズムを使用できる。
【0314】追加の諸特徴 報告条件仕様 PLXの下では報告条件はそれがCALの下におけるものとは異なったやり方
で取り扱われるので、規則を取り扱うPLX法をここで示すことにする。それら
の交換は、厳密なCAL報告条件方法内で固有の制約の多くをアドレスするため
に実行された。違いを下の表A7で示す。
【0315】 CEbus CAL PLX 1 オブジェクト当りの規則 オブジェクト当りの多くの規則 1 オブジェクト当りのアクティブIV オブジェクト当りのアクティブな 多数のIVS 簡単な規則のみ 簡単な規則および複雑な規則 堅い規則 融通性のある規則 表A7.一般的なCALに対するPLXの諸利点
【0316】 一般的なCALの下における分布された規則とは逆に、PLX規則はサーバに
存在しているので、PLXの単一の強力なエンジンによってPLXはそれが諸規
則をどのように取り扱うかにおいてより強力である。これはどのようなIV変更
でもその通りである。サーバがIV変更を見ると、サーバは変更された特定のオ
ブジェクト/IV組合わせを調べ、サーバはそれの規則リストを調べ、そしてサ
ーバは各規則の有効性を試験する。したがって、下記の2つのIVsを含むよう
に各オブジェクトは構成され、それは作成された各規則を、指定されたオブジェ
クトおよび下に掲げた関連するIVに対して取り扱う。
【0317】 ___________________________________ IV R/W 型 名称 コンテキスト機能 ___________________________________ R R/W d rules_array マスターズ規則リスト(規則 オブジェクト)内にインデック スのポインタのアレイを含む。 各エントリは、このオブジェク ト内のIVが変更された時に 完全な規則を試験することを 意味する。 P R/W n number of rules規則アレイ内の規則 の数を含む。 ____________________________________
【0318】 実際のreport_header、およびreport_address,
report_condition、およびprevius_value変数は
、アレイにより指された規則内におのおの保持される。読出しルーチンはこのポ
インタ(またはインデックス)を単に規則エンジンへ送り、規則エンジンはそれ
が必要とする適切な情報をマスタ規則リストから分析する。
【0319】 不揮発性メモリの取扱い 各ノードはROMなどの静的メモリ場所にノードプロファイル情報を含む。ま
た、ノードは認証鍵などのその他の情報を不揮発性メモリに記憶できるが、これ
は任意のものであって、いずれのPLXコンプライアント・ノードでも要求され
るものではない。他の任意のメモリ要求は経路指定情報とその他のダイナミック
な表を含む。
【0320】 クライアント変更通知 クライアント・ノードは状態変化条件をアプリケーション・サーバに通常知ら
せる。これは、アプリケーション・サーバがそれの状態を変更することをクライ
アントに知らせるとしても、クライアントはアプリケーション・サーバにそれの
状態が変化したことを逆に知らせることを意味する。これによってアプリケーシ
ョン・サーバのデータベースが実際のクライアント・ノードの変数に同期されて
いないというような問題が起きる機会が減少する。
【0321】 これは、アプリケーション・サーバが通知条件およびクライアント変数変化に
関連する規則を含んでいるために望ましい。クライアントはこれに関しては知能
的ではないので、クライアントはアプリケーション・サーバに適切な変更を通知
すべきである。
【0322】 アプリケーション・サーバは、クライアントが状態を変更したことを「アプリ
ケーション・サーバ」に通知する、そのクライアント・ノードから確証を受けと
った後まで、特定のクライアント・ノードに属するそれのデータベース変数を通
常更新しない。
【図面の簡単な説明】
【図1】 パーソナル・コンピュータなどのスマートなノードと、外部保安灯などのダム
なノードを有するネットワークのブロック図である。
【図2】 7層OSIネットワーク・モデルのブロック図である。
【図3】 ユニバーサル・ゲットウェイ構造のブロック図である。
【図4】 サーバアクティブ アルゴリズムの流れ図である。
【図5】 規則コンポーネントを示すデータ図である。
【図6】 スマート装置用のPLXネットワークモデルのブロック図である。
【図7】 ダム装置用のPLXネットワークモデルのブロック図である。
【図8】 媒体アクセスのアルゴリズムを示す流れ図である。
【図9A】 アクティブネットワーク・サーバ・スピッティング・アルゴリズムを示す流れ
図である。
【図9B】 クライアントスピッティング・アルゴリズムを示す流れ図である。
【図10】 アクティブネットワーク・サーバ・ポーリング・アルゴリズムを示す流れ図で
ある。
【図11】 PLX論理群分離(LoGI)パケットのフィールドを示すブロック図である
【図12】 PLX生データ・パケットのフィールドを示すブロック図である。
【図13】 PLXトークン・パケットのフィールドを示すブロック図である。
【図14】 PLX直接確認応答(DACK)パケットのフィールドを示すブロック図であ
る。
【図15】 PLXマスクされたラインアップ挿入(LIPG)パケットのフィールドを示
すブロック図である。
【図16】 PLX直接ラインアップ挿入(LIPD)パケットのフィールドを示すブロッ
ク図である。
【図17】 PLX内部ホスト・パケットのフィールドを示すブロック図である。
【図18】 PLX共通アプリケーション言語(CAL)要求パケットを示すブロック図で
ある。
【図19】 PLX CAL応答パケットを示すブロック図である。
【図20】 PLX単一チャネル送信状態パケットを示すブロック図である。
【図21】 PLX多チャネル送信状態パケットを示すブロック図である。
【図22】 PLXパケット・タイミングを示すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,UZ,VN,YU,ZW Fターム(参考) 5B089 GA31 GB02 GB04 JA35 KA11 KA13 KF05 KF06 5K033 AA09 BA04 CB01 CB02 CB08 CB14 CC01 DA05 DB12 DB18 DB23 EC03 5K046 PS00 PS23 PS36 【要約の続き】 ほとんどいかなるレガシイ・データ・ネットワーク化サ ービスを電源線を通じて送ることができる。

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 媒体プロトコルを用いてネットワーク媒体上を伝送させられ
    る1つまたは複数のデータ・プロトコルを用いてコンピュータ・ネットワーク上
    の多数のノードが通信できるように構成され、前記多数のノードと通信するため
    にアプリケーション・プログラミング・インタフェースをさらに提供するゲート
    ウエイであって、 ネットワーク上ノードについての情報を含む内部ノード・データベースと、 前記内部ノード・データベースを維持して、前記ノード・データベースをアク
    セスするように構成されているアクティブモードと、前記内部ノード・データベ
    ースを外部ノード・データベースの鏡像コピーとして維持するように構成されて
    いる待機モードとを提供するように構成されているソフトウエア・モジュールと
    を有するゲートウエイ。
  2. 【請求項2】 前記内部ノード・データベースが、クライアント・ノードの
    状態変化時にとるべき行動を指定する規則をさらに含む、請求項1に記載のゲー
    トウエイ。
  3. 【請求項3】 前記規則が簡単な規則である、請求項2に記載のゲートウエ
    イ。
  4. 【請求項4】 前記規則が複雑な規則である、請求項2に記載のゲートウエ
    イ。
  5. 【請求項5】 前記規則を解釈するように構成された規則エンジンをさらに
    備える、請求項2に記載のゲートウエイ。
  6. 【請求項6】 シムをさらに備え、前記シムは規則を規則定義言語に変換す
    るように構成されている、請求項2に記載のゲートウエイ。
  7. 【請求項7】 前記状態変化が前記クライアント・ノードのインスタンス変
    数の変化を含む、請求項2に記載のゲートウエイ。
  8. 【請求項8】 ピン要求を発することによって前記内部ノード・データベー
    スが更新される、請求項1に記載のゲートウエイ。
  9. 【請求項9】 前記ソフトウエア・モジュールが、確認されていないクライ
    アント要求が検出された時に、前記アクティブモードへ移行するように構成され
    ている、請求項1に記載のゲートウエイ。
  10. 【請求項10】 第1のプロトコルを第2のプロトコル内を通りぬけさせる
    ようにさらに構成されている、請求項1に記載のゲートウエイ。
  11. 【請求項11】 前記媒体が電源線であり、前記媒体プロトコルが電源線プ
    ロトコルである、請求項10に記載のゲートウエイ。
  12. 【請求項12】 前記媒体が電源線であり、前記媒体プロトコルがPLXプ
    ロトコルである、請求項1に記載のゲートウエイ。
  13. 【請求項13】 前記クライアント・ノードのインスタンス変数に変化が起
    きた時にユーザー・アプリケーションに通知するように構成されている事象ハン
    ドラをさらに備える、請求項7に記載のゲートウエイ。
  14. 【請求項14】 オブジェクト指向アプリケーション・プログラミング・イ
    ンタフェースをさらに備える、請求項1に記載のゲートウエイ。
  15. 【請求項15】 ユーザー・インタフェースに前記内部ノード・データベー
    ス中の情報を提供するように構成されているインターネット・ブラウザをさらに
    備える、請求項14に記載のゲートウエイ。
  16. 【請求項16】 ユーザーが電源線ネットワーク上のノードを制御できるよ
    うにするように前記ユーザー・インタフェースが構成されている、請求項15に
    記載のゲートウエイ。
  17. 【請求項17】 電源線ネットワーク媒体と、 ディスパッチ制御ブロックを使用することによって生のデータ情報を、前記電
    源線ネットワーク媒体からユーザー・アプリケーションへ送るゲートウエイ手段
    とを有するコンピュータ・ネットワーク。
  18. 【請求項18】 ノード・データベースと、 ディスパッチ制御ブロックを作成して解釈するディスパッチャ手段と、 ネットワーク・インタフェース・アダプタを制御するデバイス・ドライバ手段
    と、 前記デバイス制御ブロックを前記デバイス・ドライバ手段に適合させるシム手
    段とを有するゲートウエイ。
  19. 【請求項19】 ネットワーク上のノードについての情報を含んでいるノー
    ド・データベースを作成することと、 前記ノード・データベースをアクセスする1つまたは複数のアクセス法を提供
    し、前記ノード・データベースを維持するゲートウエイを指定することと、 前記ノード・データベースを1つまたは複数の待機サーバ・ノード内にするこ
    とと、 を有する、ネットワーク上のノード間で通信するために所望のプロトコルを使用
    する方法。
  20. 【請求項20】 クライアント・ノードにおいて状態変化が起きた時に取る
    べき行動を指定する諸規則を解釈し、かつ実行することをさらに備える請求項1
    9に記載の方法。
  21. 【請求項21】 前記諸規則が規則エンジンによって解釈される、請求項2
    0に記載の方法。
  22. 【請求項22】 前記状態変化が起きた時に事象通知を発生するステップを
    さらに有する、請求項20に記載の方法。
  23. 【請求項23】 前記通知がディスパッチャに与えられる、請求項22に記
    載の方法。
  24. 【請求項24】 受けとったデータを規則定義言語に変換するステップをさ
    らに有する、請求項20に記載の方法。
  25. 【請求項25】 前記状態変化が前記クライアント・ノードのインスタンス
    変数の変化を含む、請求項20に記載の方法。
  26. 【請求項26】 ピン要求を発し、前記ピン要求に対する応答が聞こえるか
    と耳を澄ますステップをさらに有し、前記応答は前記ノード・データベースを更
    新するために用いられる、請求項19に記載の方法。
  27. 【請求項27】 前記アクティブサーバがインアクティブになった後に前記
    待機サーバの1つをアクティブ状態にするステップをさらに有する、請求項19
    に記載の方法。
  28. 【請求項28】 第1のプロトコルの生のパケットを前記所望のプロトコル
    での包みパケット内に入れ、前記生のパケットを前記所望のプロトコル内に通り
    ぬけさせるステップとをさらに有する、請求項19に記載の方法。
  29. 【請求項29】 前記媒体が電源線であり、前記媒体プロトコルが電源線プ
    ロトコルである、請求項19に記載の方法。
  30. 【請求項30】 前記媒体が電源線であり、前記媒体プロトコルがPLXプ
    ロトコルである、請求項19に記載の方法。
  31. 【請求項31】 前記クライアント・ノードのインスタンス変数が変化した
    時にユーザー・アプリケーションに通知するステップをさらに有する、請求項1
    9に記載の方法。
  32. 【請求項32】 前記ノード・データベース内の情報を見るためにインター
    ネット・ブラウザを用いるステップをさらに有する、請求項19に記載の方法。
  33. 【請求項33】 電源線ネットワーク上のノードを制御するためにインター
    ネット・ブラウザを用いるステップを更に備える請求項19に記載の方法。
JP2000528920A 1998-01-22 1999-01-21 ユニバーサル・データ交換ゲートウエイのための方法および装置 Pending JP2002501251A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US7212898P 1998-01-22 1998-01-22
US60/072,128 1998-01-22
PCT/US1999/001234 WO1999038084A1 (en) 1998-01-22 1999-01-21 Method and apparatus for universal data exchange gateway

Publications (2)

Publication Number Publication Date
JP2002501251A true JP2002501251A (ja) 2002-01-15
JP2002501251A5 JP2002501251A5 (ja) 2006-04-06

Family

ID=22105770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000528920A Pending JP2002501251A (ja) 1998-01-22 1999-01-21 ユニバーサル・データ交換ゲートウエイのための方法および装置

Country Status (8)

Country Link
US (1) US7401120B2 (ja)
EP (1) EP1055177A1 (ja)
JP (1) JP2002501251A (ja)
KR (1) KR20010040424A (ja)
CN (1) CN100397372C (ja)
AU (1) AU2331099A (ja)
CA (1) CA2318926A1 (ja)
WO (1) WO1999038084A1 (ja)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2283964C (en) 1997-03-12 2008-05-06 Nomadix, Llc Nomadic translator or router
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6886047B2 (en) * 1998-11-13 2005-04-26 Jp Morgan Chase Bank System and method for managing information retrievals for integrated digital and analog archives on a global basis
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) * 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US6957346B1 (en) * 1999-06-15 2005-10-18 Ssh Communications Security Ltd. Method and arrangement for providing security through network address translations using tunneling and compensations
US8190708B1 (en) 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
US8463839B2 (en) * 2000-03-28 2013-06-11 Cybernet Systems Corporation Distributed computing environment
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7447200B2 (en) * 2001-08-30 2008-11-04 Maxim Integrated Products, Inc. System and method for simultaneously transporting different types of information over a power line
KR100419574B1 (ko) * 2001-09-20 2004-02-19 한국전자통신연구원 액티브 네트워크에 있어서 액티브 노드간의 안전한 액티브패킷전송 방법
AU2003207642A1 (en) * 2002-01-18 2003-09-02 Accenx Technologies, Inc. System and method for data tracking and management
US8626957B2 (en) 2003-08-22 2014-01-07 International Business Machines Corporation Collective network for computer structures
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US20040045007A1 (en) * 2002-08-30 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Object oriented component and framework architecture for signal processing
US7224698B2 (en) * 2002-11-27 2007-05-29 Bellsouth Intellectual Property Corporation Edge side assembler
US7263102B2 (en) * 2002-11-27 2007-08-28 At&T Intellectual Property, Inc. Multi-path gateway communications device
US7379464B2 (en) * 2002-11-27 2008-05-27 At&T Bls Intellectual Property, Inc. Personal digital gateway
US20040116075A1 (en) * 2002-12-17 2004-06-17 Texas Instruments Incorporated Dual platform communication controller, method of controlling a dual platform communication and wireless communication system employing the same
KR100605218B1 (ko) * 2003-05-30 2006-07-31 엘지전자 주식회사 홈 네트워크 시스템
US8060589B1 (en) * 2003-06-10 2011-11-15 Logiclink Corporation System and method for monitoring equipment over a network
WO2005067395A2 (en) * 2003-08-14 2005-07-28 Vaman Technologies (R & D) Limited Universal connection gateway for functionally different servers
AT500351A1 (de) * 2003-10-13 2005-12-15 Loytec Electronics Gmbh Router-gateway für die gebäudeleittechnik
US7716350B2 (en) * 2003-10-23 2010-05-11 Cisco Technology, Inc. Methods and devices for sharing content on a network
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
WO2006091043A1 (en) * 2005-02-24 2006-08-31 Lg Electronics Inc. Packet structure and packet transmission method of network control protocol
CN100459600C (zh) * 2005-03-16 2009-02-04 华为技术有限公司 一种接入网络互连的方法及系统
US8533253B2 (en) * 2005-06-09 2013-09-10 Whirlpool Corporation Distributed object-oriented appliance control system
US7551618B2 (en) * 2005-06-09 2009-06-23 Digi International Stack bypass application programming interface
US8484213B2 (en) * 2005-08-31 2013-07-09 International Business Machines Corporation Heterogenous high availability cluster manager
US7821930B2 (en) * 2005-09-12 2010-10-26 Microsoft Corporation Fault-tolerant communications in routed networks
WO2007089023A1 (en) * 2006-01-31 2007-08-09 Matsushita Electric Industrial Co., Ltd. Method for selective service updates for communication networks
US8452663B2 (en) * 2006-05-04 2013-05-28 Sap Ag Systems and methods for processing auto-ID data
US20080098103A1 (en) * 2006-10-18 2008-04-24 Mathi Packiam Methods and Apparatus for Tunneling Legacy Network Management Messages through SNMP (Simple Network Management Protocol)
US8370261B2 (en) * 2007-01-10 2013-02-05 Amnon Nissim System and a method for access management and billing
JP4966753B2 (ja) * 2007-06-08 2012-07-04 株式会社日立製作所 情報処理システム、および情報処理方法
US7895463B2 (en) * 2007-08-28 2011-02-22 Cisco Technology, Inc. Redundant application network appliances using a low latency lossless interconnect link
US20090100174A1 (en) * 2007-09-07 2009-04-16 Sushma Annareddy Method and system for automatic polling of multiple device types
US20090097470A1 (en) * 2007-10-12 2009-04-16 Collier David S Methods and systems for communicating data
GB2455347B (en) * 2007-12-07 2012-04-11 Virtensys Ltd Control path I/O virtualisation
US20100085948A1 (en) * 2008-01-31 2010-04-08 Noosphere Communications, Inc. Apparatuses for Hybrid Wired and Wireless Universal Access Networks
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8081984B2 (en) 2008-04-30 2011-12-20 Telefonaktiebolaget L M Ericsson (Publ) UL/DL scheduling for full bandwidth utilization
US20090296722A1 (en) * 2008-06-02 2009-12-03 Aboundi, Inc. Modular power line repeater and system
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US20100256823A1 (en) * 2009-04-04 2010-10-07 Cisco Technology, Inc. Mechanism for On-Demand Environmental Services Based on Network Activity
US8477794B2 (en) * 2009-04-30 2013-07-02 Elster Electricity, Llc Multiple communications protocol routing in advanced metering infrastructure context
US9588803B2 (en) 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
GB2473849B (en) * 2009-09-25 2015-06-17 Ge Aviat Systems Ltd Module communication
DE102009050170B4 (de) * 2009-10-21 2013-08-01 Diehl Ako Stiftung & Co. Kg Hausautomatisierungs- und Hausinformationssystem
KR20110047764A (ko) * 2009-10-30 2011-05-09 삼성전자주식회사 이동 단말을 이용하여 홈 네트워크 시스템을 제어하기 위한 방법 및 장치
US20110188444A1 (en) * 2010-01-29 2011-08-04 Elster Solutions, Llc High priority data reads for acquisition of real-time data in wireless mesh network
US8855102B2 (en) * 2010-01-29 2014-10-07 Elster Solutions, Llc Wireless communications providing interoperability between devices capable of communicating at different data rates
US8869138B2 (en) 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US8755393B2 (en) * 2010-04-02 2014-06-17 Cisco Technology, Inc. Facilitating communication of routing information
US8350718B2 (en) 2010-05-04 2013-01-08 Itron, Inc. Secure collector diagnostic portal activation
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US9918270B2 (en) * 2011-04-18 2018-03-13 Ineda Systems Inc. Wireless interface sharing
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
WO2012166927A1 (en) * 2011-06-02 2012-12-06 Numerex Corp. Wireless snmp agent gateway
US9100324B2 (en) 2011-10-18 2015-08-04 Secure Crossing Research & Development, Inc. Network protocol analyzer apparatus and method
CN102325146A (zh) * 2011-10-28 2012-01-18 武汉杰瑞诚光电科技有限公司 Udx协议栈、基于udx协议的数据传输系统及方法
CN102495842B (zh) * 2011-11-14 2014-06-11 安徽久鼎软件科技开发有限公司 交换需求描述模型及多应用域统一数据交换方法
KR101850817B1 (ko) 2011-11-17 2018-04-23 삼성전자주식회사 서로 다른 단말에 어플리케이션을 자동으로 설치하는 장치 및 방법
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9389933B2 (en) * 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
EP2608456B1 (en) * 2011-12-21 2017-02-08 ABB Schweiz AG Substation automation system with dynamic multicast filter
US9106663B2 (en) * 2012-02-01 2015-08-11 Comcast Cable Communications, Llc Latency-based routing and load balancing in a network
US8812005B2 (en) * 2012-02-03 2014-08-19 Apple Inc. System and method for scheduling packet transmission on a client device using traffic classes and opportunistic behavior
US9183163B2 (en) * 2012-06-27 2015-11-10 Ubiquiti Networks, Inc. Method and apparatus for distributed control of an interfacing-device network
EP2936760B1 (en) * 2012-12-20 2017-08-02 Icron Technologies Corporation Devices and methods for transmitting usb termination signals over extension media
US9571372B1 (en) * 2013-01-24 2017-02-14 Symantec Corporation Systems and methods for estimating ages of network devices
US9288215B2 (en) 2013-03-08 2016-03-15 Itron, Inc. Utilizing routing for secure transactions
KR101984443B1 (ko) 2013-12-13 2019-05-30 애플 인크. 자기-정전용량성 터치 센서를 위한 통합된 터치 및 디스플레이 아키텍처
US10560975B2 (en) 2014-04-16 2020-02-11 Belkin International, Inc. Discovery of connected devices to determine control capabilities and meta-information
DE102014007308A1 (de) 2014-05-17 2015-11-19 Diehl Bgt Defence Gmbh & Co. Kg Verfahren zum Betreiben eines bodengebundenen Luftabwehrsystems
US10027566B1 (en) * 2014-07-18 2018-07-17 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Simulation and verification system and method
DE102014018172A1 (de) * 2014-12-09 2016-06-09 Mbda Deutschland Gmbh Gateway-Einrichtung zur interkommunikativen Datenübertragungs-Verbindung
CN111610890A (zh) 2015-02-02 2020-09-01 苹果公司 柔性自电容和互电容触摸感测系统架构
US9590898B2 (en) * 2015-02-17 2017-03-07 Telefonaktiebolaget L M Ericsson (Publ) Method and system to optimize packet exchange between the control and data plane in a software defined network
US9723382B2 (en) * 2015-02-27 2017-08-01 Panduit Corp. Door module and uses thereof
CN104935657A (zh) * 2015-06-15 2015-09-23 清华大学深圳研究生院 主动推送信息的方法和嵌入式节点操作系统
US9794757B2 (en) 2015-07-29 2017-10-17 Fortinet, Inc. Extension of Wi-Fi services multicast to a subnet across a Wi-Fi network using software-defined network (SDN) to centrally control data plane behavior
US10740253B2 (en) * 2015-08-26 2020-08-11 Abb Schweiz Ag Technologies for remote device emulation
WO2017084719A1 (en) * 2015-11-20 2017-05-26 Abb Ag Managing communication between gateway and building automation device by installing protocol software in gateway
US10171277B2 (en) 2016-07-14 2019-01-01 Huawei Technologies Co., Ltd. Frame format and design of wake-up frame for a wake-up receiver
US10445107B2 (en) 2016-07-14 2019-10-15 Huawei Technologies Co., Ltd. Security design for a wake up frame
US10342064B2 (en) 2016-07-14 2019-07-02 Huawei Technologies Co., Ltd. Wake-up-receiver frame permitting identification by non-compatible receiver
US10248615B2 (en) * 2016-09-19 2019-04-02 Harman International Industries, Incorporated Distributed processing in a network
US10440776B2 (en) * 2017-03-17 2019-10-08 Harris Corporation Non-standard alternate protocol based satellite communications
KR102367471B1 (ko) 2017-05-01 2022-02-25 엘지전자 주식회사 무선전력 전송시스템에서 인증을 수행하는 장치 및 방법
US11405873B2 (en) 2017-05-01 2022-08-02 Lg Electronics Inc. Device and method for performing authentication in wireless power transmission system
CN107094047B (zh) * 2017-06-09 2019-12-10 西安电子科技大学 基于分组数据预存储和分段传输的双层卫星网络路由方法
WO2019009585A1 (ko) * 2017-07-03 2019-01-10 한양대학교 산학협력단 저전력 모드를 위한 cpu측과 hmc측의 hmc 컨트롤 장치 및 방법과 hmc 컨트롤 장치의 전력 관리 방법
US10757547B2 (en) * 2017-11-08 2020-08-25 Avaya Inc. Sequenced applications for controlling communication features
CN111937350B (zh) * 2018-06-27 2022-12-16 苹果公司 用于分发网格的调谐拓扑
US11243722B2 (en) * 2019-02-11 2022-02-08 Cisco Technology, Inc. System and method of providing universal mobile internet proxy printing
US11662867B1 (en) 2020-05-30 2023-05-30 Apple Inc. Hover detection on a touch sensor panel
US20220188144A1 (en) * 2020-12-11 2022-06-16 Oracle International Corporation Intra-Process Caching and Reuse of Threads
CN116346945A (zh) * 2021-12-24 2023-06-27 戴尔产品有限公司 经由智能网络接口控制器实现的可信网络协议代理
CN114390083B (zh) * 2021-12-27 2024-03-01 杭州电子科技大学 一种分布式模块化电气安全控制终端

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5835857A (en) * 1990-03-19 1998-11-10 Celsat America, Inc. Position determination for reducing unauthorized use of a communication system
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5668986A (en) * 1991-10-02 1997-09-16 International Business Machines Corporation Method and apparatus for handling data storage requests in a distributed data base environment
US5758052A (en) * 1991-10-02 1998-05-26 International Business Machines Corporation Network management method using redundant distributed control processors
US5371852A (en) * 1992-10-14 1994-12-06 International Business Machines Corporation Method and apparatus for making a cluster of computers appear as a single host on a network
US5608720A (en) * 1993-03-09 1997-03-04 Hubbell Incorporated Control system and operations system interface for a network element in an access system
US5630116A (en) * 1993-08-11 1997-05-13 Nec Corporation Automatic delivery system for master files in a distributed processing system
US5796999A (en) * 1994-04-15 1998-08-18 International Business Machines Corporation Method and system for selectable consistency level maintenance in a resilent database system
US5550906A (en) * 1994-08-05 1996-08-27 Lucent Technologies Inc. Telecommunications feature server
US5630204A (en) * 1995-05-01 1997-05-13 Bell Atlantic Network Services, Inc. Customer premise wireless distribution of broad band signals and two-way communication of control signals over power lines
US5640446A (en) * 1995-05-01 1997-06-17 Mci Corporation System and method of validating special service calls having different signaling protocols
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5761499A (en) * 1995-12-21 1998-06-02 Novell, Inc. Method for managing globally distributed software components
WO1997004391A1 (en) * 1995-07-20 1997-02-06 Novell, Inc. Transaction log management in a disconnectable computer and network
US5742774A (en) * 1995-11-03 1998-04-21 Lucent Technologies Inc Multi-ring SONET architecture having shared gateways daisy chained to complete the main and subsidiary ring controlled by a common master controller
US5787247A (en) * 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US5889954A (en) * 1996-12-20 1999-03-30 Ericsson Inc. Network manager providing advanced interconnection capability
US5966706A (en) * 1997-02-19 1999-10-12 At&T Corp Local logging in a distributed database management computer system
US5929748A (en) * 1997-06-12 1999-07-27 Microsoft Corporation Automated home control using existing electrical lines as a communications medium
US6272127B1 (en) * 1997-11-10 2001-08-07 Ehron Warpspeed Services, Inc. Network for providing switched broadband multipoint/multimedia intercommunication
US6314526B1 (en) * 1998-07-10 2001-11-06 International Business Machines Corporation Resource group quorum scheme for highly scalable and highly available cluster system management
US7032119B2 (en) * 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system

Also Published As

Publication number Publication date
KR20010040424A (ko) 2001-05-15
WO1999038084A1 (en) 1999-07-29
US20060248208A1 (en) 2006-11-02
CN1296585A (zh) 2001-05-23
CA2318926A1 (en) 1999-07-29
EP1055177A1 (en) 2000-11-29
AU2331099A (en) 1999-08-09
US7401120B2 (en) 2008-07-15
CN100397372C (zh) 2008-06-25

Similar Documents

Publication Publication Date Title
JP2002501251A (ja) ユニバーサル・データ交換ゲートウエイのための方法および装置
US7310670B1 (en) Multi-channel power line exchange protocol
JP2002508643A (ja) 電源線交換プロトコル法および装置
KR20040104303A (ko) 홈 네트워크 관리 시스템의 서비스 관리 장치
TW201029390A (en) A method to improve channel utilization in a time division multiple access based protocol
US20090161678A1 (en) Method and apparatus of transmitting data via a multi-protocol single-medium network
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco IBM Network Media Translation Commands
Cisco SDLLC Commands
Cisco IBM Network Media Translation Commands
Cisco IBM Network Media Translation Commands
Cisco IBM Network Media Translation Commands
Cisco IBM Network Media Translation Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco SDLLC Commands
Cisco IBM Network Media Translation Commands

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080529

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080716

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090107