Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3783672B2 - Real-time communication method - Google Patents
[go: Go Back, main page]

JP3783672B2 - Real-time communication method - Google Patents

Real-time communication method Download PDF

Info

Publication number
JP3783672B2
JP3783672B2 JP2002270889A JP2002270889A JP3783672B2 JP 3783672 B2 JP3783672 B2 JP 3783672B2 JP 2002270889 A JP2002270889 A JP 2002270889A JP 2002270889 A JP2002270889 A JP 2002270889A JP 3783672 B2 JP3783672 B2 JP 3783672B2
Authority
JP
Japan
Prior art keywords
bandwidth
transmission
data
network
csma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002270889A
Other languages
Japanese (ja)
Other versions
JP2003163671A5 (en
JP2003163671A (en
Inventor
隆裕 中野
正明 岩嵜
雅彦 中原
理 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002270889A priority Critical patent/JP3783672B2/en
Publication of JP2003163671A publication Critical patent/JP2003163671A/en
Publication of JP2003163671A5 publication Critical patent/JP2003163671A5/ja
Application granted granted Critical
Publication of JP3783672B2 publication Critical patent/JP3783672B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークのデータ通信手順に関し、特に、CSMA/CD方式を用いたデータ通信における、帯域保証を目的とする。
【0002】
【従来の技術】
LANで一般的に用いられる通信方法として、CSMA/CD方式がある。CSMA/CD方式を用いたデータ通信では、データの送信を以下の手順で行なっている。
【0003】
1、データの送信を要求するノード(情報処理装置)が、伝送路の状態を確認する。
【0004】
2、伝送路が空いていればデータの送信を開始する。空いていなければ空くまで待つ。
【0005】
3、データを送信中のノードは、送信したデータと、伝送路の状態を比較し、同時に複数のノードが同一伝送路上にデータ送信を行ない、データの衝突を起こしていないかを監視する。
【0006】
4、データを送信中のノードは、送信を完了するまでに、データの衝突を検知した場合、送信をやめ、データの衝突が起きたことを知らせるコリジョン信号を伝送路上、すべてのノードに発する。
【0007】
5、また、データを送信中のノードは、送信を完了するまでに、コリジョン信号を受信した場合も同様に送信をやめる。
【0008】
6、4、もしくは、5で、データを送信中のノードが送信をやめた場合、ランダムに待ち時間をとった後、再度1からデータ送信の手順を繰り返す。
【0009】
7、1〜4の手順で、無事データの送信が完了すると、送信要求に対して正常な送信完了を返す。
【0010】
8、1〜4の手順で一定回数以上、データの衝突によってデータ送信が失敗した場合、データ送信をやめ、送信要求に対して送信エラーを返す。
【0011】
アプリケーションなどからデータ送信の要求が起きたノードは、いつでも先の手順に基づきデータ送信を開始する。
【0012】
この通信方法では、大量のデータ転送中でも、伝送路が占有されることがなく、データ送信の要求が起きたノードが、いつでも大量のデータ転送に割り込んで、データの送信を開始することが可能であり、リアルタイム性を必要としない従来のデータ転送では、多く用いられていた。
【0013】
しかし、CSMA/CD方式のデータ転送では、他のデータ送信との衝突などにより、パケット(データ転送の単位となる、ひと塊のデータ)の損失や、遅延が発生する。リアルタイム性を必要としないデータ転送では、タイムアウトの検出や、データの再送を行なうことで、パケットの損失などに対処可能だが、パケットの遅延、データの再送などは、通信のリアルタイム性を損なうため、CSMA/CD方式を用いた既存のLANでは、リアルタイム性を保証した通信は困難である。
【0014】
このような問題点を従来開示された技術例がマルチメディアLAN方式(特開平3−155241)に記載されている。
【0015】
マルチメディアLAN方式は、LANシステムを構成する全ての情報処理装置がLANシステム全体で同期を取るための特別な装置を備え、LANシステム全体で同期を取り、一定の時間間隔で、同期制御タイムスロット、同期転送タイムスロット及び非同期転送タイムスロットを設けて、同期転送タイムスロットにおいて、リアルタイムのマルチメディアデータを転送し、非同期転送タイムスロットで、CSMA/CD方式などのアクセス方式を用いてリアルタイム性を必要としないデータ転送を可能にしている。
【0016】
【発明が解決しようとする課題】
テレビ会議システムや、ビデオオンデマンドシステムなどは、音声や動画像などをデジタル化した連続メディアを、ネットワークを用いた分散環境でリアルタイムに処理するアプリケーションである。これらのアプリケーションでは、データ通信において、単位時間あたりの通信データ量を保証できなければ、連続メディアの再生処理にデータ転送が間に合わず、再生処理が不完全になり、音声の途切れや、画像の乱れを引き起こしてしまう。即ち、これらのアプリケーションを実現するためには、単位時間あたりの通信データ量を保証する帯域を保証したデータ通信が必要となる。
【0017】
前記マルチメディアLAN方式では、同期転送タイムスロット、同期制御タイムスロットを用いて帯域保証を可能にしているが、CSMA/CD方式を用いた従来のLANシステムと比べ、LANシステムを構成する全ての情報処理装置がLANシステム全体で同期を取るための特別な装置を備える必要がある点が問題となる。つまり、既設のLAN装置を流用することができない。
【0018】
本発明は、このような問題点を解決するために、CSMA/CD方式を用いた従来のLAN上に、帯域保証を実現するためのモジュールを付加し、リアルタイム性を保証したデータ通信を可能にすることを目標としている。
【0019】
【課題を解決するための手段】
本発明は、複数の情報処理装置をCSMA/CD方式の通信回線で接続し、該回線に接続された情報処理装置間でデータの転送を行なうLANシステムにおいて、前記情報処理装置が、送信契機を一定間隔おきに一回に抑え、かつ、一回の送信で送出するデータ量を設定されたデータ量以下に抑える送信抑制手段を備えることを特徴とするLANシステムを構成する。LANシステムで、前記一定間隔に相当する時間内に、伝送可能なデータ量よりも該回線に接続された情報処理装置が送信するデータ量の総和が小さくなるよう設定することで、前記一回の送信で送出するデータ送信を前記一定間隔に相当する時間内に完了することが可能となる。
【0020】
また、本発明は、前記情報処理装置の1つである特定の情報処理装置がマスタであり、前記情報処理装置がデータを送信する前に、送信要求をマスタに申請する送信要求申請手段と、マスタが通信回線で利用可能な帯域幅と申請された送信要求の数から、送信要求を行なっている情報処理装置1台あたりに割り当てる帯域を決定する帯域幅決定手段と、決定された帯域幅を通信回線に接続されている全ての情報処理装置に通知する帯域申請許可通知手段と、帯域申請の許可によって一回の送信で送出するデータ量の設定を変更する送信抑制データ量変更手段を備えることを特徴とするLANシステムを構成する。一回の送信で送出するデータ量の設定を変更可能にすることで、送信要求のない情報処理装置に割り当てられる帯域を効率良く利用することが可能となる。
【0021】
さらに、本発明は、前記情報処理装置の1つである特定の情報処理装置がマスタであり、前記情報処理装置がデータを送信する前に、データの送信に使用する帯域幅をマスタに申請する帯域幅申請手段と、マスタが通信回線で利用可能な帯域幅と、申請された帯域幅から、申請の可否を判断し、結果を申請した情報処理装置に通知する帯域申請許可通知手段と、帯域申請の許可によって一回の送信で送出するデータ量の設定を変更する送信抑制データ量変更手段を備えることを特徴とするLANシステムを構成する。指定した帯域幅の確保が可能になり、リアルタイム性を保証した通信が可能となる。
【0022】
さらに、請求項4の申請されていない帯域幅を請求項3の通信回線で利用可能な帯域幅とし、かつ、請求項4の帯域申請許可通知を、申請した情報処理装置に替えて通信回線に接続されている全ての情報処理装置にし、マスタが請求項3の送信要求と請求項4の帯域幅申請を扱う手段を独立に備えることを特徴とするLANシステムを構成する。リアルタイム性が必要のない通信に請求項3の帯域を、リアルタイム性が必要な通信に請求項4の帯域を用いることで、リアルタイム通信と非リアルタイム通信の混在が可能となる。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態1を、図1から図8を用い詳細に説明する。まず、本発明に関わる構成要素の概要を述べ、次に、処理手順とデータ構造の詳細を述べる。
【0024】
ここでは、本発明に関わるネットワーク(LAN)および、ハードウェア、ソフトウェアのシステム構成要素について概説する。
【0025】
図1は、本発明に関わるLAN構成要素を示す。LANは、1台以上(図1の例では3台)の情報処理装置(101a)(101b)(101c)が、CSMA/CD方式のネットワーク(111)を介して接続されている。
【0026】
図2は、本発明に関わるハードウェア構成要素を示す。情報処理装置(101)は、図1の情報処理装置(101a)(101b)(101c)のハードウェア構成を示す。情報処理装置(101)は、プロセッサ(103)、主メモリ(104)、外部タイマ(105)、ネットワーク入出力コントローラ(102
)がバス(106)を介して接続されている。ネットワーク(111)は、ネットワーク入出力コントローラ(102)に接続されている。
【0027】
ネットワーク入出力コントローラ(102)は、DMA転送機能を備え、プロセッサ(103)の指示にしたがって、データを主メモリ(104)とネットワーク入出力コントローラ(102)の間で転送する。プロセッサ(103)からネットワーク入出力コントローラ(102)への指示は、主メモリ(104)上の入出力コマンドとして渡される。ネットワーク入出力コントローラは、複数の入出力コマンドをポインタによって連鎖したコマンド・チェインを一括処理する機能を備える。外部タイマ(105)は、一定の時間間隔ごとに、プロセッサ(103)に外部割り込みを発生する機能を持つ。この割り込みの時間間隔は、オペレーティングシステム(OS)によって制御することができる。
【0028】
図3は、本発明に関わるソフトウェア構成要素を示す。上述のネットワーク入出力コントローラなどのハードウェアは、アプリケーション・プログラム(ユーザ・プロセス)が不当にこれらを使用できないようにオペレーティングシステムが制御し、ユーザ・プロセスは、システム・コールを発行することにより、これらのハードウェアを間接的に利用する。
【0029】
ユーザ・プロセスから発行されるデータの送信要求を処理するために、オペレーティング・システム内部には、入出力バッファ(312)、および、送信要求キュー(311)、送信コマンドキュー(313)、通信帯域情報(314)等の制御データ、および、送信要求モジュール(301)、送信抑制モジュール(302)、タイマ割り込みハンドラ(303)、スケジューラ(304)等のソフトウェア・モジュールが存在する。
【0030】
タイマ割り込みが発生すると、プロセッサ(103)は現在実行中のプログラムを中断し、タイマ割り込みハンドラ(303)を起動する。このハンドラ(303)は、スケジューラ(304)を介して、送信抑制モジュール(302)を起動する。送信抑制モジュール(302)は、送信要求キュー(311)、通信帯域情報(314)を参照し、通信帯域情報(314)に従い送信要求を、送信コマンドキュー(313)に移す。
【0031】
次に、主要なデータ構造と処理手順について説明する。
【0032】
送信要求キュー(311)および、送信要求コマンド(402)の構造を、図4に示す。送信要求キュー(311)には、送信要求コマンド(402)がキューイングされる。
【0033】
送信要求コマンド(402)は、以下の各フィールドを有する。
【0034】
1)次要求へのポインタ(411)…複数の送信要求コマンドをチェイニングするためのポインタ。
【0035】
2)バッファアドレス(412)…送信するバッファの先頭アドレスを示す。
【0036】
3)転送データ長(413)…送信するデータのサイズをバイト単位で指定する。
【0037】
送信コマンドキュー(312)および、送信コマンド(502)の構造を、図5に示す。送信コマンドキュー(312)には、送信コマンド(502)がキューイングされる。
【0038】
送信コマンド(502)は、以下の各フィールドを有する。
【0039】
1)次コマンドへのポインタ(511)…複数のコマンドをチェイニングするためのポインタ。
【0040】
2)バッファアドレス(512)…送信するバッファの先頭アドレスを示す。
【0041】
3)転送データ長(513)…送信するデータのサイズをバイト単位で指定する。
【0042】
通信帯域情報(314)の構造を図6に示す。通信帯域情報(314)は、以下の各フィールドを有する。
【0043】
1)通信帯域(601)…当該情報処理装置(101)が送信契機の間隔(604)ごとに送信可能なデータ長の上限値を示す。この値M[バイト]は、例えば、情報処理装置の数(602)をC[台]、伝送速度(603)をV[バイト/秒]、送信契機の間隔(604)をt[秒]として、次の式1で計算する。
【0044】
【数1】

Figure 0003783672
2)情報処理装置の数(602)…当該LAN(111)に接続されている情報処理装置の数を示す。たとえば、この数を情報処理装置の起動状況から起動されている情報処理装置の数に変えることで、効率を上げることが可能である。
【0045】
3)伝送速度(603)…当該LAN(111)の伝送速度を示す。
【0046】
4)送信契機の間隔(604)…本発明のLANシステムで一意に決定した送信契機の間隔を示す。例えば、0.04[秒]とする。次に、図3に示す主要なソフトウェア・モジュールの処理フローを説明する。
【0047】
送信要求モジュール(301)の処理フローを図7に示す。送信要求モジュールは、アプリケーションがデータを送信する手段を提供する。ステップ(701)において、新規に送信要求(402)を作成し、バッファアドレスフィールド(412)に送信バッファのアドレスを格納し、転送データ長フィールド(413)に送信データ長をバイト単位で格納する。ステップ(702)において、ステップ(701)で作成した送信要求(402)を送信要求キュー(311)に接続する。
【0048】
送信抑制モジュール(302)の処理フローを図8に示す。送信抑制モジュールは、送信契機の間隔(604)おきに起動される。ステップ(801)において送信要求データ長を示す局所変数sumの値を0にクリアする。ステップ(802)において、送信要求へのポインタを示す局所変数Pに、送信要求キュー(311)に接続されている先頭の送信要求(402)へのアドレスを代入する。ステップ(803)において、局所変数Pの値が、NULLであった場合にはステップ(807)に進み、NULL以外であった場合にはステップ(804)に進む。ステップ(804)において、局所変数sumに局所変数Pが指す送信要求(402)の転送データ長フィールド(413)の値を加算する。ステップ(805)において、局所変数sumの値が通信帯域情報(314)の通信帯域(601)を越えているかを検査し、越えていない場合にはステップ(806)に進み、越えていた場合には、ステップ(807)に進む。ステップ(806)において、局所変数Pの指す送信要求(402)を、送信要求キュー(311)から送信コマンドキュー(313)に移動し、ステップ(802)に進む。ステップ(807)において、入出力コントローラ(102)に、送信コマンドキュー(313)の先頭の送信コマンド(502)のポインタを指定し、起動を行なう。
【0049】
入出力コントローラ(102)は、送信抑制モジュール(302)に起動されると、指定された送信コマンド(502)から次コマンドポインタフィールド(511)で接続されている順に、バッファアドレスフィールド(512)、転送データ長フィールド(513)に従ったデータをネットワーク(111)に送出する。
【0050】
ネットワーク(111)に送出されるデータの量は、ネットワーク(111)に接続されている全ての情報処理装置(101a)(101b)(101c)が、前記(式1)に従っているため、送信契機の間隔時間内に伝送可能なデータの量を越えることはない。また、再送機能を持つCSMA/CD方式のネットワークでは、送信衝突が発生しても所定送信契機の間隔時間内に送信が完了する。以下、本作用を利用し、リアルタイム通信を可能にする本発明の実施の形態2を図9から図27を用い詳細に説明する。まず、本発明に関わる構成要素の概要を述べ、次に、処理手順とデータ構造の詳細を述べる。
【0051】
図9は、本発明に関わるLAN構成要素を示す。図1に示す構成に加え、情報処理装置(901)が接続されている。情報処理装置(901)のハードウェア構成は、図2に示す情報処理装置(101)の構成と何ら変わりない。
【0052】
図10、および、図11は、本発明に関わるソフトウェア構成要素を示す。図10において、一般ノードである情報処理装置(101a)(101b)(101c)のソフトウェア構成要素を示し、図11において、帯域管理ノードである情報処理装置(901)のソフトウェア構成要素を示す。
【0053】
図10において、ユーザ・プロセスから発行されるデータの送信要求を処理するために、オペレーティング・システム内部には、入出力バッファ(312)、および、帯域情報テーブル(1011)、送信コマンドキュー(313)等の制御データ、および、NRT(Non Real−Time)送信要求モジュール(1001)、RT(Real−Time)送信要求モジュール(1002)、送信抑制モジュール(1003)、帯域予約モジュール(1005)、帯域解放モジュール(1006)、帯域情報管理モジュール(1007)、タイマ割り込みハンドラ(303)、入出力割り込みハンドラ(1004)、スケジューラ(304)等のソフトウェア・モジュールが存在する。
【0054】
タイマ割り込みが発生すると、プロセッサ(103)は現在実行中のプログラムを中断し、タイマ割り込みハンドラ(303)を起動する。このハンドラ(303)は、スケジューラ(304)を介して、送信抑制モジュール(1003)を起動する。送信抑制モジュール(1003)は、帯域情報テーブル(1011)に従い送信要求を、送信コマンドキュー(313)に移す。
【0055】
入出力完了割り込みが発生すると、プロセッサ(103)は現在実行中のプログラムを中断し、入出力割り込みハンドラ(1004)を起動する。このハンドラ(1004)は、スケジューラ(304)を介して、帯域情報管理モジュール(1007)を起動する。帯域情報管理モジュール(1005)は入出力バッファ(312)に格納されたデータを元に帯域情報テーブル(1011)の更新を行なう。
【0056】
図11において、ユーザ・プロセスから発行されるデータの送信要求を処理するために、オペレーティング・システム内部には、入出力バッファ(312)、および、帯域情報テーブル(1011)、送信コマンドキュー(313)、グローバル帯域情報テーブル(1111)等の制御データ、および、NRT(NonReal−Time)送信要求モジュール(1001)、RT(Real−Time)送信要求モジュール(1002)、送信抑制モジュール(1101)、帯域予約モジュール(1005)、帯域解放モジュール(1006)、帯域情報管理モジュール(1102)、タイマ割り込みハンドラ(303)、入出力割り込みハンドラ(1104)、スケジューラ(304)等のソフトウェア・モジュールが存在する。
【0057】
入出力完了割り込みが発生すると、プロセッサ(103)は現在実行中のプログラムを中断し、入出力割り込みハンドラ(1104)を起動する。このハンドラ(1104)は、スケジューラ(304)を介して、帯域情報管理モジュール(1102)を起動する。帯域情報管理モジュール(1102)は入出力バッファ(312)に格納されたデータを元に帯域情報テーブル(1011)、グローバル帯域情報テーブル(1111)の更新を行なう。
【0058】
次に、図10に示す主要なデータ構造について説明する。
【0059】
図12は、帯域情報テーブル(1011)の構造を示す。帯域情報テーブル(1011)は、NRT送信要求、および、RT送信要求の通信路ごとにエントリ(1211)〜(1215)をもつ。各エントリには通信路を識別子を示す通信路IDフィールド(1201)、割り当てられた通信帯域幅を示す帯域幅フィールド(1202)、および、送信要求をキューイングする送信要求キューヘッダ(401)からなる。帯域情報テーブル(1011)の第1エントリ(1211)は、NRT送信要求に関する情報を示す特別なエントリである。
【0060】
図13は、NRT送信要求モジュール(1001)の処理フローを示す。ステップ(1301)は、帯域情報テーブル(1011)のエントリ(1211)〜(1215)へのポインタを示す局所変数Pに、帯域情報テーブル(1011)の第1エントリ(1211)へのポインタを設定する。ステップ(1302)は、送信要求(402)を局所変数Pが指すエントリの送信要求キューヘッダ(401)に接続する。
【0061】
図14は、RT送信要求モジュール(1002)の処理フローを示す。ステップ(1401)は、帯域情報テーブル(1011)のエントリ(1211)〜(1215)へのポインタを示す局所変数Pに、帯域情報テーブル(1011)の通信路ID(1201)と引数idが一致する帯域情報テーブル(1011)のエントリへのポインタを設定する。ステップ(1402)は、送信要求(402)を局所変数Pが指すエントリの送信要求キューヘッダ(401)に接続する。
【0062】
RT送信要求モジュール(1002)は、ユーザプログラムに対してRTデータ送信を受け付けるインタフェースを下記のように提供する。
【0063】
<関数名>
send_RT(id,qh)
<引数>
id :確保した帯域を持つ通信路を示す通信路ID
qh :送信要求を接続するキューヘッダへのポインタ
<説明>
通信路IDidを持つ通信路を用いてデータ送信を行なう。ユーザプログラムが送信要求を連鎖させたキューを用い、一度に複数の送信要求を受け付ける。確保した帯域幅以上のデータ送信はエラーとなる。
【0064】
図15は、送信抑制モジュール(1003)の処理フローを示す。送信抑制モジュール(1003)は、タイマ割り込みハンドラ(303)に設定された間隔、例えば40ミリ秒おきに、スケジューラ(304)を介して起動される。ステップ(1501)は、帯域情報テーブル(1011)のエントリ(1211)〜(1215)へのポインタを示す局所変数Qに、帯域情報テーブル(1011)の第1エントリ(1211)へのポインタを設定する。ステップ(1502)において送信要求データ長を示す局所変数sumの値を0にクリアする。ステップ(1503)において、送信要求へのポインタを示す局所変数Pに、局所変数Qの指すエントリの送信要求キューヘッダ(401)に接続されている先頭の送信要求(402)へのアドレスを代入する。ステップ(1504)において、局所変数Qの値が、NULLであった場合にはステップ(1508)に進み、NULL以外であった場合にはステップ(1505)に進む。ステップ(1505)において、局所変数sumに局所変数Pが指す送信要求(402)の転送データ長フィールド(413)の値を加算する。ステップ(1506)において、局所変数sumの値が局所変数Qが指すエントリの帯域幅フィールド(1202)の値を越えているかを検査し、越えていない場合にはステップ(1507)に進み、越えていた場合には、ステップ(1508)に進む。ステップ(1507)において、局所変数Pの指す送信要求(402)を、局所変数Qが指すエントリの送信要求キューヘッダ(401)から送信コマンドキュー(313)に移動し、ステップ(1503)に進む。ステップ(1508)において、局所変数Qが帯域情報テーブル(1011)の最終エントリであるかを判断し、最終エントリである場合にはステップ(1510)に進み、最終エントリでない場合にはステップ(1509)に進む。ステップ(1509)において、局所変数Qを局所変数Qの指すエントリの次のエントリへのポインタに設定し、ステップ(1502)に進む。ステップ(1510)において、入出力コントローラ(102)に、送信コマンドキュー(313)の先頭の送信コマンド(502)のポインタを指定し、起動を行なう。
【0065】
図16は、帯域予約モジュール(1005)の処理フローを示す。ステップ(1601)において、帯域予約パケット(1901)のために入出力バッファ(312)を確保し、確保した帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に同報アドレスを、送信元MACアドレスフィールド(1912)と、要求元MACアドレスフィールド(1924)には、自ノードのMACアドレスを、パケットタイプフィールド(1913)に帯域予約パケットを示す値を、コマンドフィールド(1921)にRESV_BANDWIDTHを、帯域幅フィールド(1923)にユーザが要求する帯域幅を設定する
。ステップ(1602)において、送信要求(402)を確保し、確保した送信要求(402)のバッファアドレスフィールド(412)に帯域予約パケット(1901)のアドレスを、転送データ長フィールド(413)に帯域予約パケット(1901)のデータ長を設定する。ステップ(1603)において、ステップ(1602)にて確保した送信要求(402)を帯域情報テーブル(1011)の第1エントリ(1211)の送信要求キューヘッダ(401)に接続する。ステップ(1604)において、帯域情報管理モジュール(1007)から、帯域予約パケット(1901)への応答パケット(2001)到着の通知を待つ。ステップ(1605)において、到着通知を受けた応答パケット(2001)のコマンドフィールド(2021)の値がRESV_BANDWIDTH_OKと一致するとステップ(1606)に進み、一致しなければステップ(1608)に進む。ステップ(1606)において、通信路IDに応答パケット(2001)の識別子フィールド(2022)の値を設定する。ステップ(1607)において、正常終了を示す値を返り値として設定し終了する。ステップ(1608)において、帯域予約に失敗したことを示す値を返り値として設定し終了する。
【0066】
帯域予約モジュール(1005)は、ユーザプログラムに対して帯域予約を受け付けるインタフェースを下記のように提供する。
【0067】
<関数名>
reserve_bandwidth(bw,id)
<引数>
bw :ユーザが要求する帯域幅
id :確保した帯域を持つ通信路を識別する通信路IDを格納する領域へのポインタ
<説明>
帯域幅bwを持つ通信路を確保する。確保に成功すると正常終了を示す返り値を、確保に失敗すると帯域予約に失敗したことを示す値を返り値を得る。RT通信を行なうには、この関数で得たidを用いてRT送信要求モジュールを起動する。
【0068】
図17は、帯域解放モジュール(1006)の処理フローを示す。ステップ(1701)において、帯域予約パケット(1901)のために入出力バッファ(312)を確保し、確保した帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に同報アドレスを、送信元MACアドレスフィールド(1912)と、要求元MACアドレスフィールド(1924)には、自ノードのMACアドレスを、パケットタイプフィールド(1913)に帯域予約パケットを示す値を、コマンドフィールド(1921)にCANCEL_BANDWIDTHを、識別子フィールド(1922)にユーザが解放する通信路を示す識別子を設定する。ステップ(1702)において、送信要求(402)を確保し、確保した送信要求(402)のバッファアドレスフィールド(412)に帯域予約パケット(1901)のアドレスを、転送データ長フィールド(413)に帯域予約パケット(1901)のデータ長を設定する。ステップ(1703)において、ステップ(1702)にて確保した送信要求(402)を帯域情報テーブル(1011)の第1エントリ(1211)の送信要求キューヘッダ(401)に接続する。ステップ(1704)において、帯域情報管理モジュール(1007)から、帯域予約パケット(1901)への応答パケット(2001)到着の通知を待つ。ステップ(1705)において、到着通知を受けた応答パケット(2001)のコマンドフィールド(2021)の値がCANCEL_BANDWIDTH_OKと一致するとステップ(1706)に進み、一致しなければステップ(1707)に進む。ステップ(1706)において、正常終了を示す値を返り値として設定し終了する。ステップ(1707)において、帯域予約に失敗したことを示す値を返り値として設定し終了する。
【0069】
帯域解放モジュール(1006)は、ユーザプログラムに対して帯域解放を受け付けるインタフェースを下記のように提供する。
【0070】
<関数名>
cancel_bandwidth(id)
<引数>
id :解放する帯域を持つ通信路を示す通信路ID
<説明>
通信路IDidを持つ通信路を解放する。解放に成功すると正常終了を示す返り値を、確保に失敗すると帯域予約に失敗したことを示す値を返り値を得る。この関数で、解放に成功した通信路IDは無効となる。
【0071】
図18は、帯域情報管理モジュール(1007)の処理フローを示す。ステップ(1801)において、入出力割り込みハンドラ(1004)に通知された入出力バッファ(312)上の応答パケット(2001)のコマンドフィールド(2021)の値を検査する。ステップ(1802)において、ステップ(1801)で検査したコマンドフィールド(2021)の値がRESV_BANDWIDTH_OKと一致するとステップ(1806)に進み、一致しなければステップ(1803)に進む。ステップ(1803)において、ステップ(1801)で検査したコマンドフィールド(2021)の値がCANCEL_BANDWIDTH_OKと一致すると、ステップ(1807)に進み、一致しなければステップ(1804)に進む。ステップ(1804)において、ステップ(1801)で検査したコマンドフィールド(2021)の値がREPLY_NGと一致すると、ステップ(1808)に進み、一致しなければステップ(1805)に進む。ステップ(1806)において、帯域予約完了処理を行ない、ステップ(1805)に進む。ステップ(1807)において、帯域解放完了処理を行ない、ステップ(1805)に進む。ステップ(1808)において、要求無効化処理を行ないステップ(1805)に進む。ステップ(1805)において、入出力割り込みハンドラ(1004)から再度、帯域予約パケットの到着通知を確認し、到着通知があればステップ(1801)に進み、なければ処理を終了する。
【0072】
図21は、帯域予約完了処理(1806)の詳細を示す。ステップ(2101)において、帯域情報テーブル(1011)から空きエントリ(1215)を得る。ステップ(2102)において、空きエントリ(1215)の通信路IDフィールド(1201)にステップ(1801)で通知された応答パケット(2001)の識別子フィールド(2022)の値を設定する。ステップ(2103)において、空きエントリ(1215)の帯域幅フィールド(1202)にステップ(1801)で通知された応答パケット(2001)の帯域幅フィールド(2023)の値を設定する。ステップ(2104)において、空きエントリ(1215)の送信要求キューヘッダ(401)を初期化する。ステップ(2105)において、応答パケット(2001)の到着通知待ちをしている帯域予約モジュール(1005)に応答パケット(2001)の到着通知を行なう。
【0073】
図22は、帯域解放完了処理(1807)の詳細を示す。ステップ(2201)において、帯域情報テーブル(1011)から通信路ID(1201)に、ステップ(1801)で通知された応答パケット(2001)の識別子フィールド(2022)と同じ値を持つエントリ(1214)を得る。ステップ(2202)において、エントリ(1214)の送信要求キューヘッダ(401)に接続されている送信要求(402)を、全て帯域情報テーブル(1211)の第1エントリ(1211)の送信要求キューヘッダ(401)に繋ぎかえる。ステップ(2203)において、エントリ(1214)の通信路IDフィールド(1201)に、空きエントリを示す値を設定する。ステップ(2204)において、応答パケット(2001)の到着通知待ちをしている帯域解放モジュール(1006)に応答パケット(2001)の到着通知を行なう。
【0074】
図23は、要求無効化処理(1808)の詳細を示す。ステップ(2301)において、応答パケット(2001)の到着通知待ちをしている帯域予約モジュール(1005)、または、帯域解放モジュール(1006)にステップ(1801)で通知された応答パケット(2001)の到着通知を行なう。
【0075】
図19は、帯域要求パケットの構造を示す。帯域要求パケット(1901)は、送信先MACアドレスフィールド(1911)、送信元MACアドレスフィールド(1912)、パケットタイプフィールド(1913)、コマンドフィールド(1921)、識別子フィールド(1922)、帯域幅フィールド(1923)、要求ノードMACアドレスフィールド(1924)を備える。コマンドフィールド(1921)には、RESV_BANDWIDTH、CANCEL_BANDWIDTHを示す値が設定可能である。
【0076】
図20は、応答パケットの構造を示す。応答パケット(2001)は、送信先MACアドレスフィールド(2011)、送信元MACアドレスフィールド(2012)、パケットタイプフィールド(2013)、コマンドフィールド(2021)、識別子フィールド(2022)、帯域幅フィールド(2023)、要求ノードMACアドレスフィールド(2024)を備える。コマンドフィールド(2021)には、RESV_BANDWIDTH_OK、CANCEL_BANDWIDTH_OK、REPLY_NGを示す値が設定可能である。
【0077】
図24は、グローバル帯域情報テーブル(1111)の構造を示す。グローバル帯域情報テーブル(1111)は、利用可能帯域最大値(2421)と、割り当て済み帯域幅(2422)と、当該ネットワーク(111)に接続されている情報処理装置の数(2423)と、ネットワークの伝送速度(2424)と、送信契機の間隔(2425)と、帯域予約した通信路毎にエントリ(2411)〜(2415)を持つ。各エントリは、通信路を識別する識別子フィールド(2401)、割り当てた通信帯域幅を示す帯域幅フィールド(2402)からなる。
【0078】
図25は、帯域予約モジュール(1105)の処理フローを示す。ステップ(2501)において、帯域予約パケット(1901)のために入出力バッファ(312)を確保し、確保した帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に同報アドレスを、送信元MACアドレスフィールド(1912)に自ノードのMACアドレスを、パケットタイプフィールド(1913)に帯域予約パケットを示す値を、コマンドフィールド(1921)にRESV_BANDWIDTHを、帯域幅フィールド(1923)にユーザが要求する帯域幅を、要求元MACアドレスフィールド(1924)に0を設定する。ステップ(2502)において、帯域予約パケット(1901)の処理をグローバル帯域情報管理モジュール(1102)に通知する。ステップ(2503)において、帯域情報管理モジュール(1007)から、帯域予約パケット(1901)への応答パケット(2001)到着の通知を待つ。ステップ(2504)において、到着通知を受けた応答パケット(2001)のパケットタイプフィールド(2021)の値がRESV_BANDWIDTH_OKと一致するとステップ(2505)に進み、一致しなければステップ(2507)に進む。ステップ(2505)において、通信路IDを応答パケット(2001)の識別子フィールド(2022)の値に設定する。ステップ(2506)において、正常終了を示す値を返り値として設定し終了する。ステップ(2507)において、帯域予約に失敗したことを示す値を返り値として設定し終了する。
【0079】
図26は、帯域解放モジュール(1106)の処理フローを示す。ステップ(2601)において、帯域予約パケット(1901)のために入出力バッファ(312)を確保し、確保した帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に同報アドレスを、送信元MACアドレスフィールド(1912)に自ノードのMACアドレスを、パケットタイプフィールド(1913)に帯域予約パケットを示す値を、コマンドフィールド(1921)にCANCEL_BANDWIDTHを、識別子フィールド(1922)にユーザが解放する通信路を示す識別子を、要求元MACアドレスフィールド(1924)に0を設定する。ステップ(2602)において、帯域予約パケット(1901)の処理をグローバル帯域情報管理モジュール(1102)に通知する。ステップ(2603)において、帯域情報管理モジュール(1007)から、帯域予約パケット(1901)への応答パケット(2001)到着の通知を待つ。ステップ(2604)において、到着通知を受けた応答パケット(2001)のコマンドフィールド(2021)の値がCANCEL_BANDWIDTH_OKと一致するとステップ(2605)に進み、一致しなければステップ(2606)に進む。ステップ(2605)において、正常終了を示す値を返り値として設定し終了する。ステップ(2606)において、帯域解放に失敗したことを示す値を返り値として設定し終了する。
【0080】
図27は、グローバル帯域情報管理モジュール(1102)の処理フローを示す。ステップ(2701)において、処理する帯域予約パケット(1901)へのポインタを局所変数Pに取る。ステップ(2702)において、Pの指す帯域予約パケット(1901)のコマンドフィールド(1921)の値がRESV_BANDWIDTHならばステップ(2711)に進み、さもなくばステップ(2703)に進む。ステップ(2703)において、Pの指す帯域予約パケット(1901)のコマンドフィールド(1921)の値がCANCEL_BANDWIDTHならばステップ(2721)に進み、さもなくばステップ(2704)に進む。ステップ(2704)において、次に処理する帯域予約パケット(1901)が到着しているかを検査し、到着していればステップ(2701)に進み、到着していなければ終了する。ステップ(2711)において、グローバル帯域情報テーブル(1111)の空きエントリ(2415)を局所変数Qに取る。ステップ(2712)において、Pの指す帯域予約パケット(1901)の帯域幅フィールド(1923)の値が、利用可能帯域最大値(2421)の値と割り当て済み帯域幅(2422)の値の差未満であればステップ(2713)に進み、さもなければステップ(2731)に進む。ステップ(2713)において、割り当て済み帯域幅(2422)の値に、Pが指す帯域予約パケット(1901)の帯域幅フィールド(1923)の値を加える。ステップ(2714)において、Qが指すエントリ(2415)の帯域幅フィールド(2402)に、Pが指す帯域予約パケット(1901)の帯域幅フィールド(1923)の値を、Qが指すエントリ(2415)の識別子フィールド(2401)と、Pが指す帯域予約パケット(1901)の識別子フィールド(1922)に識別子を設定する。この識別子は、同時に一つの通信路エントリを識別可能であればどのような決め方をしても良いが、例えば、Qが指すエントリ(2415)のアドレス値とする。ステップ(2715)において、Pの指す帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に、送信元MACアドレスフィールド(1912)の値を、パケットタイプフィールド(1913)に応答パケットを示す値を設定し、Pの指すパケットを応答パケット(2001)とし、タイプフィールド(2021)にRESV_BANDWIDTH_OKを設定する。ステップ(2716)において、Pが指す応答パケット(2001)の送信先MACアドレスが0であるかを判断し、0であればステップ(2719)に進み、0でなければステップ(2717)に進む。ステップ(2717)において、送信要求(402)を確保し、確保した送信要求(402)のバッファアドレスフィールド(412)に帯域予約パケット(1901)のアドレスを、転送データ長フィールド(413)に応答パケット(2001)のデータ長を設定する。ステップ(2718)において、ステップ(2717)にて確保した送信要求(402)を帯域情報テーブル(1011)の第1エントリ(1211)の送信要求キューヘッダ(401)に接続し、ステップ(2704)に進む。ステップ(2719)において、Pの指す応答パケット(2001)の到着を帯域管理モジュール(1007)に対して通知し、ステップ(2704)に進む。ステップ(2721)において、グローバル帯域情報テーブル(1111)から、Pの指す帯域要求パケット(1901)の識別子フィールド(1922)の値と同じ識別子フィールド(2401)の値を持つエントリ(2414)を検索し、そのエントリ(2414)へのポインタを局所変数Qにとる。ステップ(2722)において、ステップ(2721)で検索に失敗した場合にはステップ(2731)に進み、検索に成功した場合にはステップ(2723)に進む。ステップ(2723)において、割り当て済み帯域幅(2422)の値からQの指すエントリ(2414)の帯域幅フィールド(2402)の値を引く。ステップ(2724)において、Qの指すエントリ(2414)の識別子フィールド(2401)に空きエントリを示す値を設定する。ステップ(2725)において、Pの指す帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に、送信元MACアドレスフィールド(1912)の値を、パケットタイプフィールド(1913)に応答パケットを示す値を設定し、Pの指すパケットを応答パケット(2001)とし、タイプフィールド(2021)にCANCEL_BANDWIDTH_OKを設定し、ステップ(2716)に進む。ステップ(2731)において、Pの指す帯域予約パケット(1901)の送信先MACアドレスフィールド(1911)に、送信元MACアドレスフィールド(1912)の値を、パケットタイプフィールド(1913)に応答パケットを示す値を設定し、Pの指すパケットを応答パケット(2001)とし、タイプフィールド(2021)にREPLY_NGを設定し、ステップ(2716)に進む。
【0081】
例えば、帯域情報テーブル(1011)の第一エントリ(1211)の帯域幅フィールド(1202)の値には、当該情報処理装置(101)が送信契機の間隔(2425)ごとに送信可能なデータ長の上限値を示す。この値Mn[バイト]は、例えば、情報処理装置の数(2423)をC[台]、伝送速度(2424)をV[バイト/秒]、送信契機の間隔(2425)をt[秒]、NRT通信に割り当てる帯域幅の割合をSnとして、次の式2で計算する。
【0082】
【数2】
Figure 0003783672
グローバル帯域情報テーブル(1111)の利用可能帯域最大値(2421)、Mr[バイト]は、次の式3で計算する。
【0083】
【数3】
Figure 0003783672
さらに、既存の通信方法を利用するネットワーク入出力コントローラと、本発明による通信方法を利用するネットワーク入出力コントローラを併せ持つ情報処理装置を用いることで、既存ネットワークと、本発明のネットワークとのブリッジ装置を容易に実現可能である。
【0084】
【発明の効果】
広く普及しているイーサネットに対して、本発明を適用することで、既存ハードウェアを変更することなく、LANにおいて、帯域を保証したリアルタイム通信を提供することができる。さらに、ハードウェアで帯域保証を実現しているATMなどと、本発明を適用したLANとの間にブリッジ装置を設けることで、インター・ネットワークにおけるリアルタイム通信も可能となる。
【図面の簡単な説明】
【図1】実施の形態1のLANの構成要素である。
【図2】ハードウェア構成要素である。
【図3】実施の形態1のソフトウェア構成要素である。
【図4】実施の形態1の送信要求の構造である。
【図5】実施の形態1の送信コマンドの構造である。
【図6】実施の形態1の通信帯域情報の構造である。
【図7】実施の形態1の送信要求モジュールの処理フローである。
【図8】実施の形態1の送信抑制モジュールの処理フローである。
【図9】実施の形態2のLANの構成要素である。
【図10】実施の形態2の一般ノードのソフトウェア構成要素である。
【図11】実施の形態2の帯域管理ノードのソフトウェア構成要素である。
【図12】実施の形態2の帯域情報テーブルの構造である。
【図13】実施の形態2のNRT送信要求モジュールの処理フローである。
【図14】実施の形態2のRT送信要求モジュールの処理フローである。
【図15】実施の形態2の送信抑制モジュールの処理フローである。
【図16】一般ノードの帯域予約モジュールの処理フローである。
【図17】一般ノードの帯域解放モジュールの処理フローである。
【図18】実施の形態2の帯域情報管理モジュールの処理フローである。
【図19】帯域要求パケットの構造である。
【図20】応答パケットの構造である。
【図21】帯域予約完了処理の処理フローである。
【図22】帯域解放完了処理の処理フローである。
【図23】要求無効化処理の処理フローである。
【図24】グローバル帯域情報テーブルの構造である。
【図25】帯域管理ノードの帯域予約モジュールの処理フローである。
【図26】帯域管理ノードの帯域解放モジュールの処理フローである。
【図27】グローバル帯域情報管理モジュールの処理フローである。
【符号の説明】
101…情報処理装置、 302…送信抑制モジュール、
1011…帯域情報テーブル、1111…グローバル帯域情報テーブル。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data communication procedure of a network, and particularly aims at bandwidth guarantee in data communication using a CSMA / CD system.
[0002]
[Prior art]
As a communication method generally used in a LAN, there is a CSMA / CD method. In data communication using the CSMA / CD method, data transmission is performed according to the following procedure.
[0003]
1. A node (information processing apparatus) that requests data transmission confirms the state of a transmission path.
[0004]
2. If the transmission line is free, data transmission is started. If not, wait until it is free.
[0005]
3. The node that is transmitting data compares the transmitted data with the state of the transmission path, and simultaneously, a plurality of nodes perform data transmission on the same transmission path to monitor whether a data collision has occurred.
[0006]
4. If a node that is transmitting data detects a data collision before completing the transmission, it stops transmission and issues a collision signal notifying that a data collision has occurred to all nodes on the transmission path.
[0007]
5. Also, a node that is transmitting data stops transmitting in the same manner when it receives a collision signal before completing the transmission.
[0008]
When the node that is transmitting data stops transmission at 6, 4, or 5, the data transmission procedure is repeated from 1 again after taking a waiting time at random.
[0009]
When the transmission of data is successfully completed in steps 7 and 1-4, a normal transmission completion is returned in response to the transmission request.
[0010]
If the data transmission fails due to data collision more than a fixed number of times in the procedures of 8 and 1-4, the data transmission is stopped and a transmission error is returned in response to the transmission request.
[0011]
A node that has requested data transmission from an application or the like always starts data transmission based on the previous procedure.
[0012]
This communication method does not occupy the transmission path even during a large amount of data transfer, and the node that requested the data transmission can interrupt the large amount of data transfer at any time and start data transmission. In the conventional data transfer that does not require real-time property, it is often used.
[0013]
However, in the data transfer of the CSMA / CD system, a packet (a piece of data serving as a unit of data transfer) is lost or delayed due to a collision with other data transmission. In data transfer that does not require real-time performance, it is possible to deal with packet loss by detecting timeouts and resending data. However, packet delays and data resends impair communication real-time performance. In an existing LAN using the CSMA / CD system, it is difficult to perform communication with real time guarantee.
[0014]
A technical example which has been disclosed in the past is described in the multimedia LAN system (Japanese Patent Laid-Open No. 3-155241).
[0015]
The multimedia LAN system includes a special device for synchronizing all the information processing devices constituting the LAN system with the entire LAN system. The LAN system synchronizes with the entire LAN system, and a synchronization control time slot at regular intervals. Synchronous transfer time slot and asynchronous transfer time slot are provided, real-time multimedia data is transferred in the synchronous transfer time slot, and real-time property is required by using an access method such as CSMA / CD method in the asynchronous transfer time slot. Data transfer is possible.
[0016]
[Problems to be solved by the invention]
Video conferencing systems, video on demand systems, and the like are applications that process real-time digital media such as audio and moving images in a distributed environment using a network. In these applications, if the amount of communication data per unit time cannot be guaranteed in data communication, data transfer will not be in time for continuous media playback processing, playback processing will be incomplete, audio interruptions, and image disturbances. Will cause. That is, in order to realize these applications, data communication that guarantees a bandwidth that guarantees the amount of communication data per unit time is required.
[0017]
In the multimedia LAN system, the bandwidth guarantee is made possible by using the synchronous transfer time slot and the synchronous control time slot, but all the information constituting the LAN system is compared with the conventional LAN system using the CSMA / CD system. The problem is that the processing device needs to be provided with a special device for synchronizing the entire LAN system. That is, the existing LAN device cannot be diverted.
[0018]
In order to solve such problems, the present invention adds a module for realizing bandwidth guarantee to a conventional LAN using the CSMA / CD method, and enables data communication with guaranteed real-time performance. The goal is to do.
[0019]
[Means for Solving the Problems]
The present invention provides a LAN system in which a plurality of information processing apparatuses are connected by a CSMA / CD communication line and data is transferred between the information processing apparatuses connected to the line. A LAN system is provided that includes transmission suppression means that suppresses data at a fixed interval once and suppresses the amount of data transmitted in one transmission to a set data amount or less. In the LAN system, by setting the total amount of data transmitted by the information processing apparatus connected to the line to be smaller than the amount of data that can be transmitted within a time corresponding to the predetermined interval, It is possible to complete data transmission to be transmitted within a time corresponding to the predetermined interval.
[0020]
Further, the present invention provides a transmission request applying means for applying a transmission request to the master before the specific information processing apparatus as one of the information processing apparatuses is a master and the information processing apparatus transmits data; Bandwidth determination means for determining a bandwidth to be allocated to each information processing apparatus making a transmission request from the bandwidth that the master can use on the communication line and the number of requested transmission requests, and the determined bandwidth A bandwidth application permission notifying means for notifying all information processing devices connected to the communication line, and a transmission suppression data amount changing means for changing the setting of the data amount to be transmitted in one transmission upon permission of the bandwidth application A LAN system characterized by the above is configured. By making it possible to change the setting of the amount of data to be transmitted in one transmission, it is possible to efficiently use the bandwidth allocated to the information processing apparatus that does not request transmission.
[0021]
Further, according to the present invention, a specific information processing apparatus that is one of the information processing apparatuses is a master, and before the information processing apparatus transmits data, the master applies for a bandwidth to be used for data transmission. Bandwidth application means, bandwidth available to the master on the communication line, bandwidth application permission notifying means for judging whether application is possible from the requested bandwidth, and notifying the information processing device that has applied for the result, A LAN system is provided that includes transmission suppression data amount changing means for changing the setting of the amount of data to be transmitted in one transmission upon permission of the application. The specified bandwidth can be secured, and communication with real-time performance can be ensured.
[0022]
Further, the unapplied bandwidth of claim 4 is set to a bandwidth that can be used on the communication line of claim 3, and the bandwidth application permission notification of claim 4 is replaced with the applied information processing apparatus on the communication line. The LAN system is characterized in that all the information processing apparatuses connected to the master have means for handling the transmission request of claim 3 and the bandwidth application of claim 4 independently. By using the bandwidth of claim 3 for communication that does not require real-time performance and the bandwidth of claim 4 for communication that requires real-time performance, real-time communication and non-real-time communication can be mixed.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, Embodiment 1 of the present invention will be described in detail with reference to FIGS. First, the outline of the components related to the present invention will be described, and then the details of the processing procedure and data structure will be described.
[0024]
Here, the system components of the network (LAN) and hardware and software related to the present invention will be outlined.
[0025]
FIG. 1 shows the LAN components involved in the present invention. In the LAN, one or more (three in the example of FIG. 1) information processing apparatuses (101a) (101b) (101c) are connected via a CSMA / CD network (111).
[0026]
FIG. 2 shows the hardware components involved in the present invention. The information processing apparatus (101) indicates the hardware configuration of the information processing apparatuses (101a) (101b) (101c) in FIG. The information processing apparatus (101) includes a processor (103), a main memory (104), an external timer (105), and a network input / output controller (102).
Are connected via a bus (106). The network (111) is connected to the network input / output controller (102).
[0027]
The network input / output controller (102) has a DMA transfer function, and transfers data between the main memory (104) and the network input / output controller (102) in accordance with instructions from the processor (103). An instruction from the processor (103) to the network input / output controller (102) is passed as an input / output command on the main memory (104). The network input / output controller has a function of batch processing a command chain in which a plurality of input / output commands are chained by pointers. The external timer (105) has a function of generating an external interrupt to the processor (103) at regular time intervals. The time interval of this interrupt can be controlled by the operating system (OS).
[0028]
FIG. 3 shows the software components involved in the present invention. Hardware such as the network I / O controller described above is controlled by the operating system so that application programs (user processes) cannot use them illegally, and user processes issue these system calls. Indirect use of hardware.
[0029]
In order to process a data transmission request issued by a user process, an input / output buffer (312), a transmission request queue (311), a transmission command queue (313), and communication band information are provided in the operating system. There are control data such as (314) and software modules such as a transmission request module (301), a transmission suppression module (302), a timer interrupt handler (303), and a scheduler (304).
[0030]
When a timer interrupt occurs, the processor (103) interrupts the currently executing program and starts the timer interrupt handler (303). The handler (303) activates the transmission suppression module (302) via the scheduler (304). The transmission suppression module (302) refers to the transmission request queue (311) and the communication band information (314), and moves the transmission request to the transmission command queue (313) according to the communication band information (314).
[0031]
Next, main data structures and processing procedures will be described.
[0032]
The structure of the transmission request queue (311) and the transmission request command (402) is shown in FIG. A transmission request command (402) is queued in the transmission request queue (311).
[0033]
The transmission request command (402) has the following fields.
[0034]
1) Pointer to next request (411): Pointer for chaining a plurality of transmission request commands.
[0035]
2) Buffer address (412)... Indicates the head address of the buffer to be transmitted.
[0036]
3) Transfer data length (413): Specifies the size of data to be transmitted in bytes.
[0037]
The structure of the transmission command queue (312) and the transmission command (502) is shown in FIG. A transmission command (502) is queued in the transmission command queue (312).
[0038]
The transmission command (502) has the following fields.
[0039]
1) Pointer to next command (511): Pointer for chaining a plurality of commands.
[0040]
2) Buffer address (512)... Indicates the start address of the buffer to be transmitted.
[0041]
3) Transfer data length (513): Designates the size of data to be transmitted in bytes.
[0042]
The structure of the communication band information (314) is shown in FIG. The communication band information (314) has the following fields.
[0043]
1) Communication band (601): Indicates the upper limit of the data length that the information processing apparatus (101) can transmit at every transmission trigger interval (604). This value M [bytes] is, for example, the number of information processing devices (602) as C [units], the transmission rate (603) as V [bytes / second], and the transmission trigger interval (604) as t [seconds] The following equation 1 is used for calculation.
[0044]
[Expression 1]
Figure 0003783672
2) Number of information processing devices (602): Indicates the number of information processing devices connected to the LAN (111). For example, it is possible to increase efficiency by changing this number to the number of information processing apparatuses activated from the activation status of the information processing apparatus.
[0045]
3) Transmission speed (603): Indicates the transmission speed of the LAN (111).
[0046]
4) Interval of transmission trigger (604): Indicates the interval of transmission trigger uniquely determined in the LAN system of the present invention. For example, 0.04 [seconds]. Next, the processing flow of the main software module shown in FIG. 3 will be described.
[0047]
The processing flow of the transmission request module (301) is shown in FIG. The transmission request module provides a means for an application to transmit data. In step (701), a new transmission request (402) is created, the address of the transmission buffer is stored in the buffer address field (412), and the transmission data length is stored in bytes in the transfer data length field (413). In step (702), the transmission request (402) created in step (701) is connected to the transmission request queue (311).
[0048]
The processing flow of the transmission suppression module (302) is shown in FIG. The transmission suppression module is activated every transmission trigger interval (604). In step (801), the value of the local variable sum indicating the transmission request data length is cleared to zero. In step (802), the address to the first transmission request (402) connected to the transmission request queue (311) is substituted into the local variable P indicating the pointer to the transmission request. In step (803), if the value of the local variable P is NULL, the process proceeds to step (807), and if it is other than NULL, the process proceeds to step (804). In step (804), the value of the transfer data length field (413) of the transmission request (402) pointed to by the local variable P is added to the local variable sum. In step (805), it is checked whether the value of the local variable sum exceeds the communication band (601) of the communication band information (314). If not, the process proceeds to step (806). Advances to step (807). In step (806), the transmission request (402) pointed to by the local variable P is moved from the transmission request queue (311) to the transmission command queue (313), and the process proceeds to step (802). In step (807), the pointer of the transmission command (502) at the head of the transmission command queue (313) is designated to the input / output controller (102), and activation is performed.
[0049]
When the input / output controller (102) is activated by the transmission suppression module (302), the buffer address field (512), in the order connected by the next command pointer field (511) from the designated transmission command (502), Data according to the transfer data length field (513) is sent to the network (111).
[0050]
The amount of data sent to the network (111) is determined by the transmission trigger because all the information processing devices (101a) (101b) (101c) connected to the network (111) comply with the above (Formula 1). The amount of data that can be transmitted within the interval time is not exceeded. Further, in a CSMA / CD system network having a retransmission function, transmission is completed within a predetermined transmission trigger interval time even if a transmission collision occurs. Hereinafter, a second embodiment of the present invention that enables real-time communication using this function will be described in detail with reference to FIGS. First, the outline of the components related to the present invention will be described, and then the details of the processing procedure and data structure will be described.
[0051]
FIG. 9 shows the LAN components involved in the present invention. In addition to the configuration shown in FIG. 1, an information processing apparatus (901) is connected. The hardware configuration of the information processing apparatus (901) is not different from the configuration of the information processing apparatus (101) shown in FIG.
[0052]
10 and 11 show software components related to the present invention. 10 shows software components of the information processing apparatuses (101a) (101b) (101c) that are general nodes, and FIG. 11 shows software components of the information processing apparatus (901) that is a bandwidth management node.
[0053]
In FIG. 10, in order to process a transmission request for data issued from a user process, an input / output buffer (312), a bandwidth information table (1011), a transmission command queue (313) are provided in the operating system. Control data such as NRT (Non Real-Time) transmission request module (1001), RT (Real-Time) transmission request module (1002), transmission suppression module (1003), bandwidth reservation module (1005), bandwidth release Software modules such as a module (1006), a bandwidth information management module (1007), a timer interrupt handler (303), an input / output interrupt handler (1004), and a scheduler (304) exist.
[0054]
When a timer interrupt occurs, the processor (103) interrupts the currently executing program and starts the timer interrupt handler (303). The handler (303) activates the transmission suppression module (1003) via the scheduler (304). The transmission suppression module (1003) moves the transmission request to the transmission command queue (313) according to the bandwidth information table (1011).
[0055]
When an input / output completion interrupt occurs, the processor (103) interrupts the currently executing program and starts the input / output interrupt handler (1004). The handler (1004) activates the bandwidth information management module (1007) via the scheduler (304). The bandwidth information management module (1005) updates the bandwidth information table (1011) based on the data stored in the input / output buffer (312).
[0056]
In FIG. 11, in order to process a transmission request for data issued from a user process, an input / output buffer (312), a bandwidth information table (1011), a transmission command queue (313) are provided in the operating system. , Control data such as a global bandwidth information table (1111), NRT (NonReal-Time) transmission request module (1001), RT (Real-Time) transmission request module (1002), transmission suppression module (1101), bandwidth reservation Software modules such as a module (1005), a bandwidth release module (1006), a bandwidth information management module (1102), a timer interrupt handler (303), an input / output interrupt handler (1104), and a scheduler (304) exist.
[0057]
When an input / output completion interrupt occurs, the processor (103) interrupts the currently executing program and starts the input / output interrupt handler (1104). The handler (1104) activates the bandwidth information management module (1102) via the scheduler (304). The bandwidth information management module (1102) updates the bandwidth information table (1011) and the global bandwidth information table (1111) based on the data stored in the input / output buffer (312).
[0058]
Next, the main data structure shown in FIG. 10 will be described.
[0059]
FIG. 12 shows the structure of the bandwidth information table (1011). The bandwidth information table (1011) has entries (1211) to (1215) for each NRT transmission request and RT transmission request communication path. Each entry includes a communication channel ID field (1201) indicating an identifier of a communication channel, a bandwidth field (1202) indicating an allocated communication bandwidth, and a transmission request queue header (401) for queuing a transmission request. . The first entry (1211) of the bandwidth information table (1011) is a special entry indicating information related to the NRT transmission request.
[0060]
FIG. 13 shows a processing flow of the NRT transmission request module (1001). A step (1301) sets a pointer to the first entry (1211) of the bandwidth information table (1011) in a local variable P indicating a pointer to the entries (1211) to (1215) of the bandwidth information table (1011). . Step (1302) connects the transmission request (402) to the transmission request queue header (401) of the entry pointed to by the local variable P.
[0061]
FIG. 14 shows a processing flow of the RT transmission request module (1002). In step (1401), the local variable P indicating a pointer to the entries (1211) to (1215) in the bandwidth information table (1011) matches the communication path ID (1201) in the bandwidth information table (1011) and the argument id. A pointer to the entry of the bandwidth information table (1011) is set. In step (1402), the transmission request (402) is connected to the transmission request queue header (401) of the entry indicated by the local variable P.
[0062]
The RT transmission request module (1002) provides an interface for accepting RT data transmission to the user program as follows.
[0063]
<Function name>
send_RT (id, qh)
<Argument>
id: communication channel ID indicating a communication channel having a reserved bandwidth
qh: Pointer to the queue header to connect the transmission request
<Description>
Data transmission is performed using a communication channel having the communication channel IDid. The user program accepts a plurality of transmission requests at once using a queue in which transmission requests are chained. Data transmission exceeding the reserved bandwidth results in an error.
[0064]
FIG. 15 shows a processing flow of the transmission suppression module (1003). The transmission suppression module (1003) is activated via the scheduler (304) at intervals set in the timer interrupt handler (303), for example, every 40 milliseconds. The step (1501) sets a pointer to the first entry (1211) of the bandwidth information table (1011) in the local variable Q indicating the pointer to the entries (1211) to (1215) of the bandwidth information table (1011). . In step (1502), the value of the local variable sum indicating the transmission request data length is cleared to zero. In step (1503), the local variable P indicating the pointer to the transmission request is assigned the address to the first transmission request (402) connected to the transmission request queue header (401) of the entry indicated by the local variable Q. . In step (1504), if the value of local variable Q is NULL, the process proceeds to step (1508), and if it is not NULL, the process proceeds to step (1505). In step (1505), the value of the transfer data length field (413) of the transmission request (402) pointed to by the local variable P is added to the local variable sum. In step (1506), it is checked whether the value of the local variable sum exceeds the value of the bandwidth field (1202) of the entry pointed to by the local variable Q. If not, the process proceeds to step (1507). If yes, go to Step (1508). In step (1507), the transmission request (402) pointed to by the local variable P is moved from the transmission request queue header (401) of the entry pointed to by the local variable Q to the transmission command queue (313), and the process proceeds to step (1503). In step (1508), it is determined whether the local variable Q is the final entry of the bandwidth information table (1011). If it is the final entry, the process proceeds to step (1510). Proceed to In step (1509), the local variable Q is set as a pointer to the entry next to the entry pointed to by the local variable Q, and the process proceeds to step (1502). In step (1510), the pointer of the transmission command (502) at the head of the transmission command queue (313) is designated in the input / output controller (102), and activation is performed.
[0065]
FIG. 16 shows a processing flow of the bandwidth reservation module (1005). In step (1601), the input / output buffer (312) is reserved for the bandwidth reservation packet (1901), and the broadcast address is set in the transmission destination MAC address field (1911) of the reserved bandwidth reservation packet (1901). In the MAC address field (1912) and the request source MAC address field (1924), the MAC address of the own node, the value indicating the bandwidth reservation packet in the packet type field (1913), RESV_BANDWIDTH in the command field (1921), The bandwidth requested by the user is set in the bandwidth field (1923).
. In step (1602), the transmission request (402) is secured, the address of the bandwidth reservation packet (1901) is reserved in the buffer address field (412) of the secured transmission request (402), and the bandwidth reservation is made in the transfer data length field (413). The data length of the packet (1901) is set. In step (1603), the transmission request (402) secured in step (1602) is connected to the transmission request queue header (401) of the first entry (1211) of the bandwidth information table (1011). In step (1604), the notification of arrival of the response packet (2001) to the bandwidth reservation packet (1901) is waited from the bandwidth information management module (1007). In step (1605), if the value of the command field (2021) of the response packet (2001) that received the arrival notification matches with RESV_BANDWIDTH_OK, the process proceeds to step (1606), and if not, the process proceeds to step (1608). In step (1606), the value of the identifier field (2022) of the response packet (2001) is set to the communication path ID. In step (1607), a value indicating normal end is set as a return value, and the process ends. In step (1608), a value indicating that the bandwidth reservation has failed is set as a return value, and the process ends.
[0066]
The bandwidth reservation module (1005) provides an interface for accepting bandwidth reservation to the user program as follows.
[0067]
<Function name>
reserve_bandwidth (bw, id)
<Argument>
bw—bandwidth requested by the user
id: Pointer to the area for storing the communication channel ID for identifying the communication channel having the reserved bandwidth
<Description>
A communication path having a bandwidth bw is secured. If the reservation is successful, a return value indicating normal termination is obtained, and if the reservation fails, a value indicating failure in bandwidth reservation is returned. In order to perform RT communication, the RT transmission request module is activated using the id obtained by this function.
[0068]
FIG. 17 shows a processing flow of the bandwidth release module (1006). In step (1701), the input / output buffer (312) is reserved for the bandwidth reservation packet (1901), and the broadcast address is set in the transmission destination MAC address field (1911) of the reserved bandwidth reservation packet (1901). The MAC address field (1912) and the request source MAC address field (1924) indicate the MAC address of the own node, the packet type field (1913) indicates a bandwidth reservation packet, the command field (1921) indicates CANCEL_BANDWIDTH, An identifier indicating a communication path released by the user is set in the identifier field (1922). In Step (1702), a transmission request (402) is secured, the address of the bandwidth reservation packet (1901) is reserved in the buffer address field (412) of the secured transmission request (402), and the bandwidth is reserved in the transfer data length field (413). The data length of the packet (1901) is set. In step (1703), the transmission request (402) secured in step (1702) is connected to the transmission request queue header (401) of the first entry (1211) of the bandwidth information table (1011). In step (1704), the notification of arrival of the response packet (2001) to the bandwidth reservation packet (1901) is waited from the bandwidth information management module (1007). In step (1705), if the value of the command field (2021) of the response packet (2001) that received the arrival notification matches with CANCEL_BANDWIDTH_OK, the process proceeds to step (1706), and if not, the process proceeds to step (1707). In step (1706), a value indicating normal end is set as a return value, and the process ends. In step (1707), a value indicating that the bandwidth reservation has failed is set as a return value, and the process ends.
[0069]
The bandwidth release module (1006) provides an interface for accepting bandwidth release to the user program as follows.
[0070]
<Function name>
cancel_bandwidth (id)
<Argument>
id: Communication channel ID indicating the communication channel having the bandwidth to be released
<Description>
Release the communication path having the communication path IDid. If release is successful, a return value indicating normal termination is obtained, and if reservation fails, a value indicating failure in bandwidth reservation is obtained. With this function, the channel ID that has been successfully released becomes invalid.
[0071]
FIG. 18 shows a processing flow of the bandwidth information management module (1007). In step (1801), the value of the command field (2021) of the response packet (2001) on the input / output buffer (312) notified to the input / output interrupt handler (1004) is checked. In step (1802), if the value of the command field (2021) checked in step (1801) matches RESV_BANDWIDTH_OK, the process proceeds to step (1806), and if not, the process proceeds to step (1803). In step (1803), if the value of the command field (2021) checked in step (1801) matches CANCEL_BANDWIDTH_OK, the process proceeds to step (1807), and if not, the process proceeds to step (1804). In step (1804), if the value of the command field (2021) checked in step (1801) matches REPLY_NG, the process proceeds to step (1808), and if not, the process proceeds to step (1805). In step (1806), bandwidth reservation completion processing is performed, and the flow proceeds to step (1805). In step (1807), band release completion processing is performed, and the flow proceeds to step (1805). In step (1808), request invalidation processing is performed, and the flow proceeds to step (1805). In step (1805), the arrival notification of the bandwidth reservation packet is confirmed again from the input / output interrupt handler (1004). If there is an arrival notification, the process proceeds to step (1801), and if not, the process ends.
[0072]
FIG. 21 shows details of the bandwidth reservation completion processing (1806). In step (2101), an empty entry (1215) is obtained from the bandwidth information table (1011). In step (2102), the value of the identifier field (2022) of the response packet (2001) notified in step (1801) is set in the communication path ID field (1201) of the empty entry (1215). In step (2103), the value of the bandwidth field (2023) of the response packet (2001) notified in step (1801) is set in the bandwidth field (1202) of the empty entry (1215). In step (2104), the transmission request queue header (401) of the empty entry (1215) is initialized. In step (2105), the arrival notification of the response packet (2001) is sent to the bandwidth reservation module (1005) waiting for the arrival notification of the response packet (2001).
[0073]
FIG. 22 shows details of the band release completion processing (1807). In step (2201), an entry (1214) having the same value as the identifier field (2022) of the response packet (2001) notified in step (1801) is transferred from the bandwidth information table (1011) to the communication path ID (1201). obtain. In step (2202), all the transmission requests (402) connected to the transmission request queue header (401) of the entry (1214) are all transmitted to the transmission request queue header of the first entry (1211) of the bandwidth information table (1211). 401). In step (2203), a value indicating an empty entry is set in the communication path ID field (1201) of the entry (1214). In step (2204), the arrival notification of the response packet (2001) is sent to the bandwidth release module (1006) waiting for the arrival notification of the response packet (2001).
[0074]
FIG. 23 shows details of the request invalidation processing (1808). Arrival of the response packet (2001) notified in step (1801) to the bandwidth reservation module (1005) or the bandwidth release module (1006) waiting for the arrival notification of the response packet (2001) in step (2301) Make a notification.
[0075]
FIG. 19 shows the structure of a bandwidth request packet. The bandwidth request packet (1901) includes a destination MAC address field (1911), a source MAC address field (1912), a packet type field (1913), a command field (1921), an identifier field (1922), and a bandwidth field (1923). ) And a request node MAC address field (1924). In the command field (1921), values indicating RESV_BANDWIDTH and CANCEL_BANDWIDTH can be set.
[0076]
FIG. 20 shows the structure of the response packet. The response packet (2001) includes a transmission destination MAC address field (2011), a transmission source MAC address field (2012), a packet type field (2013), a command field (2021), an identifier field (2022), and a bandwidth field (2023). And a request node MAC address field (2024). In the command field (2021), values indicating RESV_BANDWIDTH_OK, CANCEL_BANDWIDTH_OK, and REPLY_NG can be set.
[0077]
FIG. 24 shows the structure of the global bandwidth information table (1111). The global bandwidth information table (1111) includes the maximum available bandwidth (2421), the allocated bandwidth (2422), the number of information processing devices connected to the network (111) (2423), and the network There are entries (2411) to (2415) for the transmission rate (2424), the transmission trigger interval (2425), and the bandwidth-reserved communication paths. Each entry includes an identifier field (2401) for identifying a communication path and a bandwidth field (2402) indicating the allocated communication bandwidth.
[0078]
FIG. 25 shows the processing flow of the bandwidth reservation module (1105). In step (2501), the input / output buffer (312) is reserved for the bandwidth reservation packet (1901), and the broadcast address is set in the transmission destination MAC address field (1911) of the reserved bandwidth reservation packet (1901). The MAC address field (1912) indicates the MAC address of the own node, the packet type field (1913) indicates a bandwidth reservation packet, the command field (1921) indicates RESV_BANDWIDTH, and the bandwidth requested by the user in the bandwidth field (1923). The width is set to 0 in the request source MAC address field (1924). In step (2502), the processing of the bandwidth reservation packet (1901) is notified to the global bandwidth information management module (1102). In step (2503), a notification of arrival of the response packet (2001) to the bandwidth reservation packet (1901) is waited from the bandwidth information management module (1007). In step (2504), if the value of the packet type field (2021) of the response packet (2001) that has received the arrival notification matches RESV_BANDWIDTH_OK, the process proceeds to step (2505), and if not, the process proceeds to step (2507). In step (2505), the communication path ID is set to the value of the identifier field (2022) of the response packet (2001). In step (2506), a value indicating normal end is set as a return value, and the process ends. In step (2507), a value indicating that the bandwidth reservation has failed is set as a return value, and the process ends.
[0079]
FIG. 26 shows a processing flow of the bandwidth release module (1106). In step (2601), the input / output buffer (312) is reserved for the bandwidth reservation packet (1901), and the broadcast address is set in the transmission destination MAC address field (1911) of the reserved bandwidth reservation packet (1901). A communication path in which the user releases the MAC address of the own node in the MAC address field (1912), the value indicating the bandwidth reservation packet in the packet type field (1913), CANCEL_BANDWIDTH in the command field (1921), and the identifier field (1922). Is set to 0 in the request source MAC address field (1924). In step (2602), the processing of the bandwidth reservation packet (1901) is notified to the global bandwidth information management module (1102). In step (2603), the bandwidth information management module (1007) waits for notification of arrival of the response packet (2001) to the bandwidth reservation packet (1901). In step (2604), if the value of the command field (2021) of the response packet (2001) that received the arrival notification matches with CANCEL_BANDWIDTH_OK, the process proceeds to step (2605), and if not, the process proceeds to step (2606). In step (2605), a value indicating normal end is set as a return value, and the process ends. In step (2606), a value indicating that band release has failed is set as a return value, and the process ends.
[0080]
FIG. 27 shows a processing flow of the global bandwidth information management module (1102). In step (2701), a pointer to the bandwidth reservation packet (1901) to be processed is taken as a local variable P. In step (2702), if the value of the command field (1921) of the bandwidth reservation packet (1901) pointed to by P is RESV_BANDWIDTH, the process proceeds to step (2711). Otherwise, the process proceeds to step (2703). In step (2703), if the value of the command field (1921) of the bandwidth reservation packet (1901) pointed to by P is CANCEL_BANDWIDTH, the process proceeds to step (2721). Otherwise, the process proceeds to step (2704). In step (2704), it is checked whether the bandwidth reservation packet (1901) to be processed next has arrived. If it has arrived, the process proceeds to step (2701), and if not, the process ends. In step (2711), the empty entry (2415) of the global bandwidth information table (1111) is taken as a local variable Q. In step (2712), the value of the bandwidth field (1923) of the bandwidth reservation packet (1901) indicated by P is less than the difference between the value of the maximum available bandwidth (2421) and the value of the allocated bandwidth (2422). If yes, go to Step (2713), otherwise go to Step (2731). In step (2713), the value of the bandwidth field (1923) of the bandwidth reservation packet (1901) pointed to by P is added to the value of the allocated bandwidth (2422). In step (2714), in the bandwidth field (2402) of the entry (2415) pointed to by Q, the value of the bandwidth field (1923) of the bandwidth reservation packet (1901) pointed to by P is set to the value of the entry (2415) pointed to by Q. Identifiers are set in the identifier field (2401) and the identifier field (1922) of the bandwidth reservation packet (1901) pointed to by P. This identifier may be determined in any way as long as one communication path entry can be identified at the same time. For example, the identifier is the address value of the entry (2415) pointed to by Q. In step (2715), the value of the source MAC address field (1912) in the destination MAC address field (1911) of the bandwidth reservation packet (1901) pointed to by P, and the value indicating the response packet in the packet type field (1913) , The packet pointed to by P is set as a response packet (2001), and RESV_BANDWIDTH_OK is set in the type field (2021). In step (2716), it is determined whether or not the destination MAC address of the response packet (2001) pointed to by P is 0. If it is 0, the process proceeds to step (2719), and if not 0, the process proceeds to step (2717). In step (2717), the transmission request (402) is secured, the address of the bandwidth reservation packet (1901) is stored in the buffer address field (412) of the secured transmission request (402), and the response packet is stored in the transfer data length field (413). A data length of (2001) is set. In step (2718), the transmission request (402) secured in step (2717) is connected to the transmission request queue header (401) of the first entry (1211) of the bandwidth information table (1011), and the process proceeds to step (2704). move on. In step (2719), the arrival of the response packet (2001) pointed to by P is notified to the bandwidth management module (1007), and the process proceeds to step (2704). In step (2721), an entry (2414) having the same identifier field (2401) value as the identifier field (1922) value of the bandwidth request packet (1901) indicated by P is searched from the global bandwidth information table (1111). , A pointer to the entry (2414) is taken as a local variable Q. In step (2722), if the search fails in step (2721), the process proceeds to step (2731), and if the search is successful, the process proceeds to step (2723). In step (2723), the value of the bandwidth field (2402) of the entry (2414) indicated by Q is subtracted from the value of the allocated bandwidth (2422). In step (2724), a value indicating an empty entry is set in the identifier field (2401) of the entry (2414) indicated by Q. In step (2725), the value of the transmission destination MAC address field (1911) of the bandwidth reservation packet (1901) pointed to by P is the value of the transmission source MAC address field (1912), and the value indicating the response packet is the packet type field (1913). , The packet pointed to by P is set as a response packet (2001), CANCEL_BANDWIDTH_OK is set in the type field (2021), and the process proceeds to step (2716). In step (2731), the value of the source MAC address field (1912) in the destination MAC address field (1911) of the bandwidth reservation packet (1901) pointed to by P, and the value indicating the response packet in the packet type field (1913) , The packet pointed to by P is set as a response packet (2001), REPLY_NG is set in the type field (2021), and the process proceeds to step (2716).
[0081]
For example, the value of the bandwidth field (1202) of the first entry (1211) of the bandwidth information table (1011) includes the data length that can be transmitted by the information processing device (101) at every transmission trigger interval (2425). Indicates the upper limit. This value Mn [bytes] is, for example, the number of information processing devices (2423) is C [units], the transmission speed (2424) is V [bytes / second], the transmission trigger interval (2425) is t [seconds], The ratio of the bandwidth allocated to NRT communication is set as Sn and is calculated by the following formula 2.
[0082]
[Expression 2]
Figure 0003783672
The maximum available bandwidth value (2421) and Mr [bytes] in the global bandwidth information table (1111) are calculated by the following Equation 3.
[0083]
[Equation 3]
Figure 0003783672
Furthermore, by using an information processing apparatus having a network input / output controller that uses an existing communication method and a network input / output controller that uses a communication method according to the present invention, a bridge device between the existing network and the network of the present invention can be obtained. It can be easily realized.
[0084]
【The invention's effect】
By applying the present invention to widely used Ethernet, it is possible to provide real-time communication with guaranteed bandwidth in a LAN without changing existing hardware. Further, by providing a bridge device between an ATM or the like that realizes bandwidth guarantee by hardware and a LAN to which the present invention is applied, real-time communication in an inter-network is also possible.
[Brief description of the drawings]
FIG. 1 is a component of a LAN according to a first embodiment.
FIG. 2 is a hardware component.
FIG. 3 is a software component of the first embodiment.
FIG. 4 shows a structure of a transmission request according to the first embodiment.
FIG. 5 shows a structure of a transmission command according to the first embodiment.
FIG. 6 shows a structure of communication band information according to the first embodiment.
FIG. 7 is a processing flow of a transmission request module according to the first embodiment.
FIG. 8 is a processing flow of the transmission suppression module according to the first embodiment.
FIG. 9 shows the components of the LAN according to the second embodiment.
FIG. 10 is a software component of a general node according to the second embodiment.
FIG. 11 is a software component of a bandwidth management node according to the second embodiment.
FIG. 12 shows a structure of a bandwidth information table according to the second embodiment.
FIG. 13 is a processing flow of the NRT transmission request module according to the second embodiment.
FIG. 14 is a processing flow of an RT transmission request module according to the second embodiment.
FIG. 15 is a processing flow of the transmission suppression module according to the second embodiment.
FIG. 16 is a processing flow of a bandwidth reservation module of a general node.
FIG. 17 is a processing flow of a bandwidth release module of a general node.
FIG. 18 is a processing flow of the bandwidth information management module according to the second embodiment.
FIG. 19 shows a structure of a bandwidth request packet.
FIG. 20 shows a structure of a response packet.
FIG. 21 is a processing flow of bandwidth reservation completion processing.
FIG. 22 is a processing flow of bandwidth release completion processing.
FIG. 23 is a processing flow of request invalidation processing;
FIG. 24 is a structure of a global bandwidth information table.
FIG. 25 is a processing flow of a bandwidth reservation module of the bandwidth management node.
FIG. 26 is a processing flow of a bandwidth release module of the bandwidth management node.
FIG. 27 is a processing flow of the global bandwidth information management module.
[Explanation of symbols]
101 ... Information processing device 302 ... Transmission suppression module,
1011 ... Band information table, 1111 ... Global band information table.

Claims (10)

CSMA  CSMA // CDネットワークに接続される複数の送信ノードによって実行されるデータ送信管理方法であって、A data transmission management method executed by a plurality of transmission nodes connected to a CD network,
前記複数の送信ノードは各々、  Each of the plurality of transmitting nodes is
前記CSMA  CSMA // CDネットワークに送信するデータを管理するキューと、A queue for managing data to be transmitted to the CD network;
所定の周期内に送信可能なデータのバイト数を記憶する記憶手段とを有し、  Storage means for storing the number of bytes of data that can be transmitted within a predetermined period;
前記複数の送信ノードは各々、  Each of the plurality of transmitting nodes is
前記CSMA  CSMA // CDネットワークに送信するデータの送信順を、前記キューを用いて管理するステップと、Managing the order of data transmission to the CD network using the queue;
前記所定の周期毎に、前記キューに従って前記CSMA  At each predetermined period, the CSMA according to the queue // CDネットワークに送信するデータの量を、前記記憶手段に記憶されたバイト数以下に制限するステップとを実行することを特徴とするデータ送信管理方法。And a step of limiting the amount of data to be transmitted to the CD network to be equal to or less than the number of bytes stored in the storage means.
請求項1記載のデータ送信管理方法であって、  A data transmission management method according to claim 1, wherein
更に前記複数の送信ノードは各々、  Further, each of the plurality of transmitting nodes is
前記CSMA  CSMA // CDネットワークに接続される他の送信ノードが、所定の周期内に送信するデータのデータ量に応じて、前記記憶手段に記憶されているバイト数を変更するステップを実行することを特徴とするデータ送信管理方法。The data is characterized in that another transmitting node connected to the CD network executes a step of changing the number of bytes stored in the storage means according to the amount of data transmitted within a predetermined period. Transmission management method.
請求項2記載のデータ送信管理方法であって、  A data transmission management method according to claim 2, wherein
前記CSMA  CSMA // CDネットワークには更にマスタノードが接続されており、A master node is further connected to the CD network,
前記マスタノードは、前記複数の送信ノード各々が、所定の周期内に送信するデータのデータ量を管理しており、  The master node manages the amount of data transmitted by each of the plurality of transmission nodes within a predetermined period,
前記複数の送信ノードは各々、  Each of the plurality of transmitting nodes is
前記マスタノードからの通知に基づいて、前記記憶手段に記憶されているバイト数を変更することを特徴とするデータ送信管理方法。  A data transmission management method, wherein the number of bytes stored in the storage means is changed based on a notification from the master node.
請求項3記載のデータ送信管理方法であって、  A data transmission management method according to claim 3, wherein
前記複数の送信ノードは各々、  Each of the plurality of transmitting nodes is
前記複数の送信ノード各々が所定の周期内に送信するデータのデータ量の合計が、前記CSMA  The total amount of data transmitted by each of the plurality of transmission nodes within a predetermined period is the CSMA. // CDネットワークの物理帯域を超えないよう、前記記憶手段に記憶されているバイト数を変更することを特徴とするデータ送信管理方法。A data transmission management method, wherein the number of bytes stored in the storage means is changed so as not to exceed a physical bandwidth of a CD network.
請求項4記載のデータ送信管理方法であって、
前記複数の送信ノードは各々、
更に、前記マスタノードに帯域予約要求を送信するステップと、
前記マスタノードからの応答に応じて、予約された通信帯域を用いてデータをCSMA / CDネットワークに送信するステップと、
他の送信ノードによって予約された帯域の帯域幅に基づいて、前記記憶手段に記憶されているバイト数を変更するステップとを実行することを特徴とするデータ送信管理方法。
A data transmission management method according to claim 4, wherein
Each of the plurality of transmitting nodes is
A step of transmitting a bandwidth reservation request to the master node;
Transmitting data to a CSMA / CD network using a reserved communication band in response to a response from the master node ;
And a step of changing the number of bytes stored in the storage unit based on a bandwidth reserved by another transmission node.
CSMA  CSMA // CDネットワークに接続される送信ノードであって、A sending node connected to the CD network,
前記CSMA  CSMA // CDネットワークに送信するデータを管理するキューと、A queue for managing data to be transmitted to the CD network;
所定の周期内に送信可能なデータのバイト数を記憶する記憶手段と、  Storage means for storing the number of bytes of data that can be transmitted within a predetermined period;
所定の周期内に送信するデータの量を、前記記憶手段に記憶されたバイト数以下に制限しながら、前記キューに従って、データを前記CSMA  The data is transmitted according to the queue according to the queue while limiting the amount of data to be transmitted within a predetermined period to the number of bytes stored in the storage means. // CDネットワークに送信する制御手段とを有することを特徴とする送信ノード。A transmission node comprising a control means for transmitting to a CD network.
請求項6記載の送信ノードであって、  The transmission node according to claim 6, wherein
更に、前記CSMA  Furthermore, the CSMA // CDネットワークに接続される他の送信ノードが、所定の周期内に送信するデータのデータ量に応じて、前記記憶手段に記憶されているバイト数を変更する帯域情報管理手段を有することを特徴とする送信ノード。Another transmission node connected to the CD network has bandwidth information management means for changing the number of bytes stored in the storage means according to the amount of data to be transmitted within a predetermined period. Sending node
請求項7記載の送信ノードであって、  The transmission node according to claim 7, wherein
前記帯域情報管理手段は、前記CSMA  The bandwidth information management means is the CSMA. // CDネットワークに接続される複数の送信ノード各々が所定の周期内に送信するデータのデータ量の合計が、前記CSMAThe total amount of data transmitted by each of a plurality of transmitting nodes connected to the CD network within a predetermined period is the CSMA. // CDネットワークの物理帯域を超えないよう、前記記憶手段に記憶されているバイト数を変更することを特徴とする送信ノード。A transmission node, wherein the number of bytes stored in the storage means is changed so as not to exceed a physical bandwidth of a CD network.
請求項7記載の送信ノードであって、  The transmission node according to claim 7, wherein
前記帯域情報管理手段は、前記CSMA  The bandwidth information management means is the CSMA. // CDネットワークに接続されている複数の送信ノード各々が所定の周期内に送信するデータのデータ量を管理している前記CSMAThe CSMA managing the amount of data transmitted by each of a plurality of transmission nodes connected to the CD network within a predetermined period // CDネットワークに接続されたマスタノードからの通知に基づいて、前記記憶手段に記憶されているバイト数を変更することを特徴とする送信ノード。A transmission node, wherein the number of bytes stored in the storage means is changed based on a notification from a master node connected to a CD network.
請求項9記載の送信ノードであって、  The transmission node according to claim 9, wherein
更に、前記マスタノードに帯域予約要求を送信する帯域予約手段を有し、  Furthermore, it has a bandwidth reservation means for transmitting a bandwidth reservation request to the master node,
前記制御手段は、前記マスタノードからの応答に基づいて、予約された帯域を用いて前記CSMA  The control means uses the reserved bandwidth based on a response from the master node. // CDネットワークにデータを送信し、Send data to the CD network,
前記帯域情報管理手段は、前記CSMA  The bandwidth information management means is the CSMA. // CDネットワークに接続された他の送信ノードによって予約された帯域幅に基づいて、前記記憶手段に記憶されているバイト数を変更することを特徴とする送信ノード。A transmission node, wherein the number of bytes stored in the storage means is changed based on a bandwidth reserved by another transmission node connected to the CD network.
JP2002270889A 2002-09-18 2002-09-18 Real-time communication method Expired - Lifetime JP3783672B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002270889A JP3783672B2 (en) 2002-09-18 2002-09-18 Real-time communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002270889A JP3783672B2 (en) 2002-09-18 2002-09-18 Real-time communication method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP7501897A Division JP3385899B2 (en) 1996-03-28 1997-03-27 Real-time communication method

Publications (3)

Publication Number Publication Date
JP2003163671A JP2003163671A (en) 2003-06-06
JP2003163671A5 JP2003163671A5 (en) 2005-02-03
JP3783672B2 true JP3783672B2 (en) 2006-06-07

Family

ID=19196926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002270889A Expired - Lifetime JP3783672B2 (en) 2002-09-18 2002-09-18 Real-time communication method

Country Status (1)

Country Link
JP (1) JP3783672B2 (en)

Also Published As

Publication number Publication date
JP2003163671A (en) 2003-06-06

Similar Documents

Publication Publication Date Title
US6400819B1 (en) Method and apparatus for executing communication in real-time and data structure for real-time data communication
KR100472908B1 (en) Application programming interface for data transfer and bus management over a bus structure
JP3361824B2 (en) Apparatus for network adapter including a plurality of processors and system memory means, network control apparatus, and control method
JP3448067B2 (en) Network controller for network adapter
US7881202B2 (en) System and method for dropping lower priority packets that are slated for wireless transmission
US9703732B2 (en) Interface apparatus and memory bus system
WO2000018108A2 (en) Method and apparatus implementing a multimedia digital network
US7116635B2 (en) Process execution method and apparatus
US5533203A (en) Start of packet receive interrupt for ethernet controller
WO2002001785A1 (en) Media access control for isochronous data packets in carrier sensing multiple access systems
US7839785B2 (en) System and method for dropping lower priority packets that are slated for transmission
JP3385899B2 (en) Real-time communication method
US20020009098A1 (en) Communication control method and device
US5706430A (en) Method and system for sequentially broadcasting data according to pre-assigned time slots with and without the reception of a synchronization packet
JP3783672B2 (en) Real-time communication method
US20220209985A1 (en) Data transmission method, segment telegram and automation communication network
JP2001325212A (en) Method and device for transmitting data block from source processor to destination processor in multiprocessor system
JPH04233353A (en) Network controller for fiber scattering type data interface network
JPH09247192A (en) Real-time communication method
Sha et al. Analysis of dual-link networks for real-time applications
US20200379798A1 (en) Apparatus for transmitting packets using timer interrupt service routine
JP3431442B2 (en) Control device and slave control device adding method
JP2000101643A (en) Data transmission method, data transmission device, and network system
JPH11145991A (en) Response delay method
JPS6165640A (en) Packet communication method

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040301

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060216

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060221

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060306

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

Free format text: PAYMENT UNTIL: 20090324

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140324

Year of fee payment: 8

EXPY Cancellation because of completion of term