JP3415027B2 - データ通信装置及びデータ通信方法 - Google Patents
データ通信装置及びデータ通信方法Info
- Publication number
- JP3415027B2 JP3415027B2 JP12257698A JP12257698A JP3415027B2 JP 3415027 B2 JP3415027 B2 JP 3415027B2 JP 12257698 A JP12257698 A JP 12257698A JP 12257698 A JP12257698 A JP 12257698A JP 3415027 B2 JP3415027 B2 JP 3415027B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transmission
- packets
- computer
- transmitted
- 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 - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
Description
接続される各計算機間のデータ通信を制御するデータ通
信装置及びデータ通信方法に関するものである。
成図であり、図において、1はイーサネット(Ethe
rnet)又はファースト・イーサネット(FastE
thernet)を用いて構成されたネットワーク、
2,3はネットワーク1に接続され、ホスト計算機4又
はコントローラ5,6とメッセージの通信等を実施する
オペレータステーション(以下、「OPS」という)、
4はネットワーク1に接続され、OPS2,3又はコン
トローラ5,6とメッセージの通信等を実施するホスト
計算機、5,6はネットワーク1に接続され、OPS
2,3又はホスト計算機4とメッセージの通信等を実施
するコントローラである。
1に接続されたホスト計算機4やOPS2等は、互いに
メッセージの通信を実施するが、メッセージがネットワ
ーク1上で衝突すると、メッセージの到達時間が遅延し
たり、メッセージが欠損する等の不具合を生じる。そこ
で、この従来例では、メッセージがネットワーク1上で
衝突する事態を回避するため、トークンパッシング方式
を採用し、ホスト計算機4等は、トークンを獲得した場
合に限り、メッセージを送信することができるようにし
ている。
接続された各計算機に、メッセージを送信することがで
きる送信時間帯を割り当て、同一時間帯に複数の計算機
がメッセージをネットワークに出力するのを防止する技
術が、特開平8−180006号公報に開示されている
が、例えば、送信時間帯を管理する計算機が故障して停
止すると、他の計算機はメッセージの送信が不可能にな
る。
は以上のように構成されているので、ネットワーク1上
でメッセージが衝突する事態を回避することができる
が、例えば、トークンを獲得したホスト計算機4が故障
してトークンを損失すると、以後、ネットワーク1に接
続されたOPS2等がメッセージを送信することができ
なくなる課題があった。なお、トークンの損失を検出し
て、メッセージを再送信するような複雑な機構を付加す
れば、メッセージの送信を再開することができるが、そ
の場合でも、新たにトークンを発生するまでの間は、O
PS2等はメッセージを送信することができない。
めになされたもので、メッセージの衝突に伴うメッセー
ジ到達時間の遅延やメッセージの欠損率を低減すること
ができるとともに、ある計算機が故障しても、他の計算
機はメッセージを送信することができるデータ通信装置
及びデータ通信方法を得ることを目的とする。
信装置は、加算手段の加算結果と受信可能なデータ数を
比較し、その加算結果が受信可能なデータ数を越えない
場合に限り、最も送信周期が短いチャネルの送信キュー
に格納された送信データを他計算機に送信するようにし
たものである。
段の加算結果と送信可能なデータ数を比較し、その加算
結果が送信可能なデータ数を越える場合には、他計算機
に対する送信データの送信を禁止するようにしたもので
ある。
機が自計算機に割り当てた最大受信データ数を記憶する
ようにしたものである。
段の加算結果と受信可能なパケット数を比較し、その加
算結果が受信可能なパケット数を越えない場合に限り、
最も送信周期が短いチャネルの送信キューに格納された
送信データを他計算機に送信するようにしたものであ
る。
段の加算結果と送信可能なパケット数を比較し、その加
算結果が送信可能なパケット数を越える場合には、他計
算機に対する送信データの送信を禁止するようにしたも
のである。
機が自計算機に割り当てた最大受信パケット数を記憶す
るようにしたものである。
ータを送信後、一定時間経過しても他計算機から到達確
認信号が返送されない場合、その送信データを再送する
ようにしたものである。
ータの再送回数が上限回数に到達すると、その送信デー
タの再送を中止するようにしたものである。
ータを分割してパケット化する際、各パケットのヘッダ
によって上書きされる送信データの一部を待避バッファ
に格納する一方、該当パケット送信後、その待避バッフ
ァに格納された送信データの一部を元の領域に戻すよう
にしたものである。
機に送信されたデータ数に、最も送信周期が短いチャネ
ルの送信キューに格納された送信データのデータ数を加
算して、その加算結果と受信可能なデータ数を比較し、
その加算結果が受信可能なデータ数を越えない場合に限
り、最も送信周期が短いチャネルの送信キューに格納さ
れた送信データを他計算機に送信するようにしたもので
ある。
機から送信されたデータ数に送信データのデータ数を加
算して、その加算結果と送信可能なデータ数を比較し、
その加算結果が送信可能なデータ数を越える場合には、
他計算機に対する送信データの送信を禁止するようにし
たものである。
機に送信されたパケット数に、最も送信周期が短いチャ
ネルの送信キューに格納された送信データのパケット数
を加算して、その加算結果と受信可能なパケット数を比
較し、その加算結果が受信可能なパケット数を越えない
場合に限り、最も送信周期が短いチャネルの送信キュー
に格納された送信データを他計算機に送信するようにし
たものである。
機から送信されたパケット数に送信データのパケット数
を加算して、その加算結果と送信可能なパケット数を比
較し、その加算結果が送信可能なパケット数を越える場
合には、他計算機に対する送信データの送信を禁止する
ようにしたものである。
説明する。 実施の形態1.図1はこの発明の実施の形態1によるデ
ータ通信装置を示す構成図であり、図において、11は
イーサネット(Ethernet)又はファースト・イ
ーサネット(FastEthernet)を用いて構成
されたネットワークに接続されたホスト(計算機)、1
2はメッセージをネットワークを通じて他のホストに送
信する際、ライブラリ関数14を用いて送信メッセージ
(送信データ)をミドルウエア13の送信キュー15に
格納する一方、他のホストからメッセージを受信する
際、ライブラリ関数14を用いてミドルウエア13の受
信キュー16から受信メッセージ(受信データ)を取得
するアプリケーションソフトウエアである。
(各ホスト間を1対1に接続する一方向の通信路)を通
じて送信し、同時にチャネルを通じて受信メッセージを
受信するミドルウエア、15は送信メッセージを格納す
る送信キュー、16は受信メッセージを格納する受信キ
ュー、17は自ホストが通信周期時間内に送信可能なバ
イト数(データ数)及びパケット数や、他のホストが通
信周期時間内に受信可能なバイト数(データ数)及びパ
ケット数等を記憶するテーブル(記憶手段)、18は通
信周期時間内に自ホストから送信されたデータのバイト
数及びパケット数を格納するとともに、通信周期時間内
に他ホストhに送信されたデータのバイト数及びパケッ
ト数を格納するメモリ(格納手段)、19は自ホストの
送信能力や他ホストの受信能力を考慮して送信メッセー
ジを送信する送信タスク(加算手段、送信手段、禁止手
段)、20は受信メッセージを受信する受信タスクであ
る。なお、図2は送信タスクのアルゴリズムを示す処理
フロー図であり、図3は受信タスクのアルゴリズムを示
す処理フロー図である。
他のホストにメッセージを送信する場合、ミドルウエア
13の送信タスク19が、自ホストの送信能力や他ホス
トの受信能力を考慮してUDPパケット(送信メッセー
ジ)を送信するが、その際、テーブル17内の送受信能
力テーブル,ホスト管理テーブル及びチャネル管理テー
ブルから必要な情報を取得するので、具体的な動作を説
明する前に、各テーブルの内容を簡単に説明する。
ストの送受信能力に関するパラメータが格納される。パ
ラメータの内容は下記の通りである。 1.T_tick 送信タスクの通信周期であり、例えば、10ミリ秒など
の値が格納される。 2.L_recv 自ホストが通信周期時間内に受信可能な最大バイト数 3.P_recv 自ホストが通信周期時間内に受信可能な最大パケット数 4.L_send 自ホストが通信周期時間内に送信可能な最大バイト数 5.P_send 自ホストが通信周期時間内に送信可能な最大パケット数 6.L_[h]recv 自ホスト以外の各ホスト[h]が自ホストに割り当てた
通信周期時間内に受信可能な最大バイト数 7.P_[h]recv 自ホスト以外の各ホスト[h]が自ホストに割り当てた
通信周期時間内に受信可能な最大パケット数
る識別子hが格納され、また、その識別子hに対応する
IPアドレスが格納される。
る。i=0,1,2,・・・,N)は、各ホスト間を1
対1に接続する一方向の通信路であるが、チャネル管理
テーブルには、各チャネルに関するパラメータ等が格納
される。パラメータの内容は下記の通りである。 1.周期T[i] メッセージの通信周期または最小送信間隔 2.メッセージ長M[i] 送信可能な最大メッセージ長 3.方向(送/受) 自ホストからみたチャネルの通信方向 4.相手ホスト識別子 通信相手のホストの識別子 5.フラグ(なし/送信/確認・再送) チャネルの通信状況を確認するパラメータ 6.送出済seq# 送出済のメッセージのうち、最後に送信されたメッセー
ジのシーケンス番号 7.確認済seq# 確認到達済のメッセージのうち、最後に送信されたメッ
セージのシーケンス番号
セージを他のホストに送信する場合、アプリケーション
ソフトウエア12が、ライブラリ関数14の関数_se
nd()を用いるので、関数_send()を簡単に説
明する。関数_send()の内容は、図7に示す通り
であるが、関数_send()は、送信メッセージを各
チャネル毎に用意された送信キュー15(FIFOキュ
ー)に格納する関数である。
ャネルのチャネル識別子Chiを代入し、引数flag
sには、定数BLOCKまたはNONBLOCKの何れ
かを代入する(BLOCKが代入された場合、関数を呼
び出した時、キュー溢れ等の理由で送信が不可能な場合
には、送信可能になるまで関数呼び出しをブロック(返
さないこと)し、送信完了後に関数を返す。一方、NO
NBLOCKが代入された場合、関数を呼び出した時、
送信が不可能な場合には、エラーを返す)。また、引数
sbufには、sbuf_t構造体へのポインタを代入
し、メンバsizeには、送信メッセージのバイト数を
代入し、メンバdataには、送信メッセージを格納す
る領域へのポインタを代入する。
ュー15に格納されると、送信タスク19が、送信キュ
ー15に格納されたメッセージを他のホストに送信する
が、送信タスク19はT_tick毎に起動され、送信
タスク19は起動されると、まず、一時変数l_sen
d,p_send,l_[h]recv,p_[h]r
ecvの値を初期化するため、零値を代入する(ステッ
プST1)。
期化すると、チャネル管理テーブルを参照することによ
り、全チャネルのうち、自ホストからみて通信方向が
「送信」のチャネルに着目し、「送信」の各チャネルが
送信時刻に到達しているか否かを調査する。そして、送
信時刻に到達していれば、当該チャネルのフラグを「な
し」から「送信」に変更する(ステップST2〜ST
4)。なお、各チャネルの送信時刻は、ホストの起動直
後の時刻,T_tick,これまでの起動回数等から認
識することができる。
を「なし」から「送信」に変更すると、そのフラグに係
るチャネルChiの送信キュー15に未送信のパケット
(送信メッセージを構成するパケットのうち、未だ送信
されていないパケット)が存在するか否かを判断する
(ステップST10〜ST13)。未送信のパケットが
存在しない場合には、当該チャネルに対する送信処理を
実施する必要がないので、次のチャネルの送信キュー1
5に着目するが、未送信のパケットが存在する場合に
は、一時変数l_sendの格納値から自ホストが通信
周期時間内に送信した総バイト数を取得する。また、一
時変数l_[h]recvの格納値から通信周期時間内
に他ホストhに送信した総バイト数を取得するととも
に、一時変数p_[h]recvの格納値から通信周期
時間内に他ホストhに送信した総パケット数を取得す
る。
send等の格納値を取得すると、自ホストが通信周期
時間内に送信した総バイト数に未送信のパケットのバイ
ト数を加算し、その加算結果とL_send(自ホスト
が通信周期時間内に送信可能な最大バイト数)を比較
し、自ホストが現在未送信のパケットを送信する能力が
あるか否かを判断する(ステップST14)。即ち、そ
の加算結果がL_sendを越える場合には、既に、通
信周期時間内に送信可能なバイト数を越えているので、
現在、未送信のパケットを送信する能力がないものと判
断する。
に他ホストhに送信した総バイト数に未送信のパケット
のバイト数を加算し、その加算結果とL_[h]rec
v(他ホストhが自ホストに割り当てた通信周期時間内
に受信可能な最大バイト数)を比較し、他ホストが現在
未送信のパケットを受信する能力があるか否かを判断す
る(ステップST15)。即ち、その加算結果がL_
[h]recvを越える場合には、既に、通信周期時間
内に他ホストhが受信可能なバイト数を越えているの
で、現在、他ホストhが未送信のパケットを受信する能
力がないものと判断する。
内に他ホストhに送信した総パケット数に“1”を加算
し(複数のパケットを同時に送信する場合には、“1”
ではなく、未送信のパケットのパケット数を加算す
る)、その加算結果とP_[h]recv(他ホストh
が自ホストに割り当てた通信周期時間内に受信可能な最
大パケット数)を比較し、他ホストが現在未送信のパケ
ットを受信する能力があるか否かを判断する(ステップ
ST16)。即ち、その加算結果がP_[h]recv
を越える場合には、既に、通信周期時間内に他ホストh
が受信可能なパケット数を越えているので、現在、他ホ
ストhが未送信のパケットを受信する能力がないものと
判断する。
L_send,L_[h]recv,P_[h]rec
vを越えない場合に限り、未送信のパケットを他のホス
トhに送信する(ステップST17)。そして、送信タ
スク19は、未送信のパケットを他のホストhに送信す
ると、一時変数を更新するため、l_send,L_
[h]recvに送信パケットのバイト数を加算し、p
_send,p_[h]recvに“1”を加算する
(ステップST18)。
送信メッセージの最後のパケットである場合には、送信
メッセージの送信が完了したので、チャネルChiのフ
ラグの内容を「送信」から「なし」に変更するととも
に、送信キュー15に格納された送信メッセージを破棄
する(ステップST19)。なお、この時、チャネルC
hiに対する関数_send()の呼び出しでブロック
されているアプリケーションソフトウエアがあれば、そ
のうちの1つのブロックを解除して、送信キュー15に
対する送信メッセージの挿入を許可する。
ネルについての送信が完了すると、処理を終了するが、
最短パケット長L_packet,minのパケットを
送信する能力が、自ホストに残されていない場合には、
送信タスクの処理を終了するため、一時変数p_sen
dとP_send(自ホストが通信周期時間内に送信可
能な最大パケット数)を比較する。そして、一時変数p
_sendがP_sendに達している場合には、自ホ
ストに送信能力が残されていないと判断し、送信タスク
の処理を終了する(ステップST20)。なお、L_s
endから一時変数l_sendを引いた値が、L_p
acket,minより小さいとき、送信タスクの処理
を終了してもよい。
ケット(受信メッセージ)を受信する動作を説明する。
他のホストから送信されたメッセージは、受信タスク2
0が受信するが、まず、受信タスク20は、ネットワー
クからパケットが到着すると起動され(ステップST3
1)、メッセージのシーケンス番号とパケット番号(メ
ッセージ内でのパケットの順番)の整合性を判定する。
なお、パケットには、メッセージのシーケンス番号とパ
ケット番号が付加されており、メッセージ内の最初のパ
ケットには、“0”のパケット番号が割り当てられ、続
くパケットに順次1を加えた値が割り当てられる。
一時バッファに未だパケットが格納されていない場合に
は、受信パケットは、メッセージ内の最初のパケットで
あるので、受信パケットのパケット番号が“0”以外で
あれば、メッセージ内のパケットに欠損があったものと
判断し、受信パケットを破棄して、次のパケットの到着
を待つことにする(ステップST32,ST33)。一
方、受信パケットのパケット番号が“0”であれば、受
信パケットを一時バッファに格納する(ステップST3
4)。
既にパケットが格納されている場合には、受信パケット
のシーケンス番号と一時バッファに格納されているパケ
ットのシーケンス番号が等しく、かつ、受信パケットの
パケット番号と、一時バッファに格納されている最新の
パケットのパケット番号に1を加えた値が等しい必要が
ある。そこで、かかる条件を満たさない場合には、メッ
セージ内のパケットに欠損があったものと判断し、一時
バッファ内のパケットを破棄して、次のパケットの到着
を待つことにする(ステップST35,ST36)。一
方、かかる条件を満たす場合には、受信パケットを一時
バッファに格納する(ステップST37)。
の最後のパケットを受信するまで、上記の処理を繰り返
し(ステップST38)、一時バッファに格納したパケ
ットが最後のパケットの場合には、一時バッファに格納
されたすべてのパケットから元のメッセージの再組立を
実施して(ステップST39)、そのメッセージを受信
キュー16(FIFOキュー)に挿入し、一時バッファ
内のパケットを破棄する(ステップST40)。
ば、予め定められた手順にしたがって最古又は最新のメ
ッセージを破棄する。また、該当チャネルに対する関数
_recv()の呼び出しでブロックされているアプリ
ケーションソフトウエアがあれば、そのうちの1つのブ
ロックを解除して、受信キュー16から受信メッセージ
を取得する処理を許可する。以上の処理を終了すると、
次のパケットの到着を待つことにする(ステップST4
1)。
ュー16に格納されると、アプリケーションソフトウエ
ア12が、ライブラリ関数14の関数_recv()を
用いるので、関数_recv()を簡単に説明する。関
数_recv()の内容は、図7に示す通りであるが、
関数_recv()は、各チャネル毎に用意された受信
キュー16から受信メッセージを読み出す関数である。
ャネルのチャネル識別子Chiを代入し、引数bufに
は、読み出した受信メッセージを格納する領域へのポイ
ンタを代入し、引数limit_sizeには、読み出
すメッセージの最大長を代入し、受信キュー16内の受
信メッセージの長さが、limit_sizeより長い
場合、最初のlimit_sizeバイトが格納され
る。また、引数sizeには、読み出された受信メッセ
ージのサイズが格納され、受信メッセージの長さが、l
imit_sizeより大きい場合には、その値が格納
される。引数flagsには、定数BLOCKまたはN
ONBLOCKの何れかを代入する(BLOCKが代入
された場合で、受信キュー16に受信メッセージが格納
されていない場合には、そのチャネルにメッセージが到
着するまで関数の呼び出しがブロックされる。一方、N
ONBLOCKが代入された場合で、受信キュー16に
受信メッセージが格納されていない場合には、エラーを
返す)。
ージの分割については特に言及しなかったが、必要があ
れば、送信タスク19が、送信メッセージを分割し、U
DPパケットとしてネットワークに出力する。各パケッ
トは、図7に示されたsbuf_t構造体をヘッダとし
て持ち、ヘッダに続けて、それぞれ元のメッセージの内
容の一部(データ部分)を保持する。sbuf_t構造
体のメンバch_id_at_senderは送信端で
のチャネル識別子を示し、メンバch_id_at_r
ecverは受信端でのチャネル識別子を示し、メンバ
addr_senderは送信端のIPアドレスを示
し、メンバmsg_seq_numはメッセージのシー
ケンス番号を示し、メンバpacket_idはメッセ
ージ内でのパケット番号を示し、メンバsizeはパケ
ット中のデータ部分の長さ(バイト数)を示す。なお、
メンバdataにはバイトは割り当てられず、ヘッダ中
にはメンバdataは存在しない。
によれば、他のホストにメッセージを送信する場合、ミ
ドルウエア13の送信タスク19が、自ホストの送信能
力や他ホストの受信能力を考慮してメッセージを送信す
るように構成したので、メッセージの衝突に伴うメッセ
ージ到達時間の遅延やメッセージの欠損率を低減するこ
とができるとともに、あるホストが故障しても、他のホ
ストはメッセージを送信することができる効果を奏す
る。
同期を取らず、メッセージを非同期に送信するので、あ
るホストが故障しても、その故障が他のホストに影響せ
ず、他のホストは自由にメッセージを送信することがで
きるが、各ホストから一定時間(例えば、10ミリ秒)
内に送信される最大バイト数と最大パケット数が保証さ
れると、ネットワークの負荷も一定値以下になることが
保証され、イーサネット上でも、ネットワークの負荷が
一定値以下であれば、メッセージの衝突に伴うメッセー
ジ到達時間の遅延やメッセージの欠損率が低減されるこ
とが知られている(参考文献1)。 参考文献1:Steven L.Beyerman a
nd EdwardJ.Coyle:The Dela
y Characteristics ofCSMA/
CD Networks.IEEE Transact
ion on Communications. Vo
l.36,No.5,pp.553〜563,May
1988.
態2によるデータ通信装置を示す構成図であり、図にお
いて、図1と同一符号は同一または相当部分を示すので
説明を省略する。21は受信タスク20と同様機能を有
する他に、他のホストから到達確認パケット(到達確認
信号)を受信すると、その到達確認パケットを到達確認
用受信キュー22に挿入する受信タスク、22は到達確
認パケットを格納する到達確認用受信キュー、23は到
達確認用受信キュー22から到達確認パケットを取得し
て、その到達確認パケットからチャネル識別子iとメッ
セージのシーケンス番号を読み込み、当該チャネルに対
する確認済シーケンス番号を更新する到達確認タスク、
24は送信タスク19と同様機能を有する他に、メッセ
ージを送信後、チャネル管理テーブル内の送出済シーケ
ンス番号と確認済シーケンス番号を比較し、一定時間経
過しても、シーケンス番号が一致しない場合には、その
メッセージを再送する送信タスク(加算手段、送信手
段、禁止手段)である。なお、図9は送信タスクのアル
ゴリズムを示す処理フロー図であり、図10は受信タス
クのアルゴリズムを示す処理フロー図である。
ント監視制御システムにおいては、コントローラからオ
ペレータステーションに周期的に送られる監視データな
どは、いくつかのメッセージが損失しても、システム全
体に与える影響はあまり大きくない。しかし、プラント
の操作員の指示に伴って、オペレータステーションから
コントローラに送信される設定値の更新指令などは、そ
のメッセージが損失するとシステム全体に大きな影響を
与えることになる。したがって、メッセージの損失が生
じた場合のメッセージの再送や、メッセージの到達確認
を送信側に返送することは重要である。
ク19がメッセージを送信しても、送信側のアプリケー
ションソフトウエア12は、他のホストがメッセージを
受信したか否かを確認することはできず、メッセージを
再送することができない。そこで、この実施の形態2で
は、新たに、到達確認用受信キュー22と到達確認タス
ク23を付加している。
ホストに送信し、他のホストが送信メッセージを受信す
ると、送信側のホストに、送信メッセージを受信したこ
とを示す到達確認パケットを送信する。なお、到達確認
パケットには、チャネル識別子iと当該メッセージのシ
ーケンス番号が付加されている。
側のホストに返送されると、受信タスク21が、その到
達確認パケットを受信して到達確認用受信キュー22に
挿入する(ステップST71)。そして、到達確認パケ
ットが到達確認用受信キュー22に挿入されると、到達
確認タスク23が起動され、到達確認タスク23は、到
達確認用受信キュー22から到達確認パケットを取得し
て、その到達確認パケットからチャネル識別子iと送信
メッセージのシーケンス番号の読み込みを実施する。そ
して、到達確認タスク23は、チャネル識別子iから送
信メッセージに係るチャネルを特定し、そのチャネルに
対する確認済シーケンス番号を送信メッセージのシーケ
ンス番号に変更する。
信後、チャネル管理テーブル内の送出済シーケンス番号
と確認済シーケンス番号を比較し、両者が一致する場合
には(到達確認タスク23が確認済シーケンス番号を送
信メッセージのシーケンス番号に変更した場合)、送信
メッセージが無事受信側のホストに到達したものと判断
するが、一定時間経過しても、両者が一致しない場合に
は、送信メッセージを再送する。ただし、送信メッセー
ジの再送回数が規定回数(上限回数)に到達すると、そ
の送信メッセージの再送を中止して、その旨をアプリケ
ーションソフト12に通知する。
ク24は、送信時刻に到達していないと判断すると(ス
テップST4)、到達確認・再送の時刻に到達している
か否かを判断し、到達していれば、チャネルのフラグの
内容を「到達確認・再送」に変更する(ステップST5
1)。なお、あるチャネルのある送信メッセージに対す
る到達確認・再送の時刻は、送信時刻t_startに
対して下記のようになる。 t_start+T_ack,t_start+2T_
ack,・・・,+N_ack・T_ack ただし、N_ackはこのチャネルに対する到達確認・
再送の規定回数、T_ackは(T/N_ack)を越
えない最大のT_tickの倍数、Tはチャネルの周期
である。上記のような正のT_ackが存在しない場合
には、そのチャネルに対する到達確認・再送は不可能と
する。
向が「送信」で、フラグが「到達確認・再送」のチャネ
ルに対して、以降の処理を実施する。既に、あるメッセ
ージの再送を開始していて、いくつかのパケットを送信
済の場合には、次のパケットの送信処理を実施する(ス
テップST54,ST58)。
ない場合には、該当チャネルの送出済シーケンス番号と
確認済シーケンス番号を比較することにより、到達未確
認のメッセージが存在するかを調べる(ステップST5
5)。両者が一致すれば、このチャネルの処理を終了す
るが、一致しない場合には、その送信メッセージに対し
て到達確認・再送を行った回数が、このチャネルに対す
る到達確認・再送の規定回数N_ackに到達していれ
ば、送信のタイムアウトが発生したものと判断し、アプ
リケーションソフトウエア12へ例外通知を行う(ステ
ップST56)。規定回数に到達していなければ、最後
に送信したメッセージを再送用に用意する(ステップS
T57)。
ッセージから、パケットを1つ取り出して送信を行う。
ステップST59〜ST65では、ステップST14〜
ST20と同様に、パケットを送信することによって自
ホストの送信能力と相手端の受信能力を超過しないかを
判定し、超過しないと判定された場合に限り、パケット
を送信し、一時変数を更新する。また、送信した場合に
は、この周期内の最短長のパケットを未だ送信可能か判
定し、不可能であれば、送信タスク24の処理を終了す
る。
は、送信端でメッセージがいくつかのデータ部分に分割
され、各データ部分の前に図7のsbuf_t構造体の
ヘッダを付加してパケットとしている。元のメッセージ
は主メモリ上の連続した領域に格納されているので、2
個目以降のパケットを生成するためには、下記の何れか
の方法を取る必要がある。 (1)前のパケットのデータ部分にヘッダを上書きす
る。 (2)データ部分を他の領域にコピーし、コピー後のデ
ータ部分にヘッダを付加する。
メッセージを送信後、到達を確認できず、そのメッセー
ジを再送する必要が生じた場合、元のメッセージが必要
となるが、上記(1)の方法では、元のメッセージがヘ
ッダの上書きによって失われるので、(1)の方法をそ
のまま用いることができない。一方、(2)の方法で
は、メッセージのデータ部分の全体を主メモリにコピー
する必要があるため、コピーに時間を要し、ホストのC
PU負荷を増加させるおそれがある。
示すように、上記(1)の方法において、2個目以降の
パケットのヘッダを前のパケットのデータ部分に上書き
する前に、上書きされる部分を退避バッファへコピー
し、パケットを送信後に退避バッファの内容を元の領域
に再コピーすることにより、元のメッセージを残すと同
時に、メッセージ全体を主メモリにコピーするのを防
ぐ。なお、ヘッダの長さはデータ部分の長さに比べて十
分に小さいので、退避バッファへのコピーと、元の領域
への再コピーに要するCPU時間が、データ部分全体を
コピーするCPU時間より十分に短かくなる。
化の機構を示す説明図であり、ステップa)で、ライブ
ラリ関数_send()を呼び出したアプリケーション
ソフトウエア12から送信メッセージが与えられる。な
お、メッセージのデータ部分はsbuf_t構造体のメ
ンバdataで与えられるため、最初のパケットのヘッ
ダを格納するsbuf_t構造体の領域は、予めアプリ
ケーションソフトウエア12から与えられる。ステップ
b)で、最初のパケット#1が生成され、送信が行われ
る。この後、次のパケットのヘッダによって上書きされ
る領域の内容が退避バッファへコピーされる。ステップ
c)で、同様に、パケット#2の生成、送信、退避バッ
ファのコピーが行われる。ステップd)で、最後のパケ
ット#3を送信後、ステップe)で、退避バッファの内
容が元の領域に再コピーされる。
手段の加算結果と受信可能なデータ数を比較し、その加
算結果が受信可能なデータ数を越えない場合に限り、最
も送信周期が短いチャネルの送信キューに格納された送
信データを他計算機に送信するように構成したので、メ
ッセージの衝突に伴うメッセージ到達時間の遅延やメッ
セージの欠損率を低減することができるとともに、ある
計算機が故障しても、他の計算機はメッセージを送信す
ることができる効果がある。
送信可能なデータ数を比較し、その加算結果が送信可能
なデータ数を越える場合には、他計算機に対する送信デ
ータの送信を禁止するように構成したので、送信側のオ
ペレーティングシステムの送信能力を越えた送信データ
の依頼が防止され、送信側の計算機が送信処理以外の処
理を円滑に実施することができる効果がある。
割り当てた最大受信データ数を記憶するように構成した
ので、他計算機が自計算機以外の計算機からデータを受
信する場合にも、他計算機の受信能力を越えたデータ送
信を回避することができる効果がある。
受信可能なパケット数を比較し、その加算結果が受信可
能なパケット数を越えない場合に限り、最も送信周期が
短いチャネルの送信キューに格納された送信データを他
計算機に送信するように構成したので、メッセージの衝
突に伴うメッセージ到達時間の遅延やメッセージの欠損
率を低減することができるとともに、ある計算機が故障
しても、他の計算機はメッセージを送信することができ
る効果がある。
送信可能なパケット数を比較し、その加算結果が送信可
能なパケット数を越える場合には、他計算機に対する送
信データの送信を禁止するように構成したので、送信側
のオペレーティングシステムの送信能力を越えた送信デ
ータの依頼が防止され、送信側の計算機が送信処理以外
の処理を円滑に実施することができる効果がある。
割り当てた最大受信パケット数を記憶するように構成し
たので、他計算機が自計算機以外の計算機からデータを
受信する場合にも、他計算機の受信能力を越えたデータ
送信を回避することができる効果がある。
一定時間経過しても他計算機から到達確認信号が返送さ
れない場合、その送信データを再送するように構成した
ので、送信データを確実に送信することができる効果が
ある。
が上限回数に到達すると、その送信データの再送を中止
するように構成したので、送信不可能な場合に送信処理
を繰り返す無駄な処理を避けることができる効果があ
る。
パケット化する際、各パケットのヘッダによって上書き
される送信データの一部を待避バッファに格納する一
方、該当パケット送信後、その待避バッファに格納され
た送信データの一部を元の領域に戻すように構成したの
で、送信データの到達確認を実施する場合でも、送信デ
ータの送信処理を速やかに実施することができる効果が
ある。
データ数に、最も送信周期が短いチャネルの送信キュー
に格納された送信データのデータ数を加算して、その加
算結果と受信可能なデータ数を比較し、その加算結果が
受信可能なデータ数を越えない場合に限り、最も送信周
期が短いチャネルの送信キューに格納された送信データ
を他計算機に送信するように構成したので、メッセージ
の衝突に伴うメッセージ到達時間の遅延やメッセージの
欠損率を低減することができるとともに、ある計算機が
故障しても、他の計算機はメッセージを送信することが
できる効果がある。
たデータ数に送信データのデータ数を加算して、その加
算結果と送信可能なデータ数を比較し、その加算結果が
送信可能なデータ数を越える場合には、他計算機に対す
る送信データの送信を禁止するように構成したので、送
信側のオペレーティングシステムの送信能力を越えた送
信データの依頼が防止され、送信側の計算機が送信処理
以外の処理を円滑に実施することができる効果がある。
パケット数に、最も送信周期が短いチャネルの送信キュ
ーに格納された送信データのパケット数を加算して、そ
の加算結果と受信可能なパケット数を比較し、その加算
結果が受信可能なパケット数を越えない場合に限り、最
も送信周期が短いチャネルの送信キューに格納された送
信データを他計算機に送信するように構成したので、メ
ッセージの衝突に伴うメッセージ到達時間の遅延やメッ
セージの欠損率を低減することができるとともに、ある
計算機が故障しても、他の計算機はメッセージを送信す
ることができる効果がある。
たパケット数に送信データのパケット数を加算して、そ
の加算結果と送信可能なパケット数を比較し、その加算
結果が送信可能なパケット数を越える場合には、他計算
機に対する送信データの送信を禁止するように構成した
ので、送信側のオペレーティングシステムの送信能力を
越えた送信データの依頼が防止され、送信側の計算機が
送信処理以外の処理を円滑に実施することができる効果
がある。
置を示す構成図である。
図である。
図である。
る。
る。
る。
置を示す構成図である。
図である。
ー図である。
明図である。
る。
メモリ(格納手段)、19,24 送信タスク(加算
手段、送信手段、禁止手段)。
Claims (13)
- 【請求項1】 他計算機が通信周期時間内に受信可能な
データ数を記憶する記憶手段と、通信周期時間内に他計
算機に送信されたデータ数を格納する格納手段と、他の
計算機に対する通信路である複数のチャネルのうち、少
なくとも1以上のチャネルの送信キューに送信データが
格納されると、上記格納手段により格納されたデータ数
に、最も送信周期が短いチャネルの送信キューに格納さ
れた送信データのデータ数を加算する加算手段と、上記
加算手段の加算結果と受信可能なデータ数を比較し、そ
の加算結果が受信可能なデータ数を越えない場合に限
り、最も送信周期が短いチャネルの送信キューに格納さ
れた送信データを他計算機に送信する送信手段とを備え
たデータ通信装置。 - 【請求項2】 自計算機が通信周期時間内に送信可能な
データ数を記憶する記憶手段と、通信周期時間内に自計
算機から送信されたデータ数を格納する格納手段と、送
信キューに送信データが格納されると、上記格納手段に
より格納されたデータ数に送信データのデータ数を加算
する加算手段と、上記加算手段の加算結果と送信可能な
データ数を比較し、その加算結果が送信可能なデータ数
を越える場合には、他計算機に対する送信データの送信
を禁止する禁止手段とを備えたことを特徴とする請求項
1記載のデータ通信装置。 - 【請求項3】 記憶手段は、他計算機が自計算機に割り
当てた最大受信データ数を記憶することを特徴とする請
求項1記載のデータ通信装置。 - 【請求項4】 他計算機が通信周期時間内に受信可能な
パケット数を記憶する記憶手段と、通信周期時間内に他
計算機に送信されたパケット数を格納する格納手段と、
他の計算機に対する通信路である複数のチャネルのう
ち、少なくとも1以上のチャネルの送信キューに送信デ
ータが格納されると、上記格納手段により格納されたパ
ケット数に、最も送信周期が短いチャネルの送信キュー
に格納された送信データのパケット数を加算する加算手
段と、上記加算手段の加算結果と受信可能なパケット数
を比較し、その加算結果が受信可能なパケット数を越え
ない場合に限り、最も送信周期が短いチャネルの送信キ
ューに格納された送信データを他計算機に送信する送信
手段とを備えたデータ通信装置。 - 【請求項5】 自計算機が通信周期時間内に送信可能な
パケット数を記憶する記憶手段と、通信周期時間内に自
計算機から送信されたパケット数を格納する格納手段
と、送信キューに送信データが格納されると、上記格納
手段により格納されたパケット数に送信データのパケッ
ト数を加算する加算手段と、上記加算手段の加算結果と
送信可能なパケット数を比較し、その加算結果が送信可
能なパケット数を越える場合には、他計算機に対する送
信データの送信を禁止する禁止手段とを備えたことを特
徴とする請求項4記載のデータ通信装置。 - 【請求項6】 記憶手段は、他計算機が自計算機に割り
当てた最大受信パケット数を記憶することを特徴とする
請求項4記載のデータ通信装置。 - 【請求項7】 送信手段は、送信データを送信後、一定
時間経過しても他計算機から到達確認信号が返送されな
い場合、その送信データを再送することを特徴とする請
求項1から請求項6のうちのいずれか1項記載のデータ
通信装置。 - 【請求項8】 送信手段は、送信データの再送回数が上
限回数に到達すると、その送信データの再送を中止する
ことを特徴とする請求項7記載のデータ通信装置。 - 【請求項9】 送信データを分割してパケット化する
際、各パケットのヘッダによって上書きされる送信デー
タの一部を待避バッファに格納する一方、該当パケット
送信後、その待避バッファに格納された送信データの一
部を元の領域に戻す待避手段を設けたことを特徴とする
請求項7記載のデータ通信装置。 - 【請求項10】 他計算機が通信周期時間内に受信可能
なデータ数を記憶するとともに、通信周期時間内に他計
算機に送信されたデータ数を格納し、他の計算機に対す
る通信路である複数のチャネルのうち、少なくとも1以
上のチャネルの送信キューに送信データが格納される
と、他計算機に送信されたデータ数に、最も送信周期が
短いチャネルの送信キューに格納された送信データのデ
ータ数を加算して、その加算結果と受信可能なデータ数
を比較し、その加算結果が受信可能なデータ数を越えな
い場合に限り、最も送信周期が短いチャネルの送信キュ
ーに格納された送信データを他計算機に送信するデータ
通信方法。 - 【請求項11】 自計算機が通信周期時間内に送信可能
なデータ数を記憶するとともに、通信周期時間内に自計
算機から送信されたデータ数を格納し、送信キューに送
信データが格納されると、自計算機から送信されたデー
タ数に送信データのデータ数を加算して、その加算結果
と送信可能なデータ数を比較し、その加算結果が送信可
能なデータ数を越える場合には、他計算機に対する送信
データの送信を禁止することを特徴とする請求項10記
載のデータ通信方法。 - 【請求項12】 他計算機が通信周期時間内に受信可能
なパケット数を記憶するとともに、通信周期時間内に他
計算機に送信されたパケット数を格納し、他の計算機に
対する通信路である複数のチャネルのうち、少なくとも
1以上のチャネルの送信キューに送信データが格納され
ると、他計算機に送信されたパケット数に、最も送信周
期が短いチャネルの送信キューに格納された送信データ
のパケット数を加算して、その加算結果と受信可能なパ
ケット数を比較し、その加算結果が受信可能なパケット
数を越えない場合に限り、最も送信周期が短いチャネル
の送信キューに格納された送信データを他計算機に送信
するデータ通信方法。 - 【請求項13】 自計算機が通信周期時間内に送信可能
なパケット数を記憶するとともに、通信周期時間内に自
計算機から送信されたパケット数を格納し、送信キュー
に送信データが格納されると、自計算機から送信された
パケット数に送信データのパケット数を加算して、その
加算結果と送信可能なパケット数を比較し、その加算結
果が送信可能なパケット数を越える場合には、他計算機
に対する送信データの送信を禁止することを特徴とする
請求項12記載のデータ通信方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12257698A JP3415027B2 (ja) | 1998-05-01 | 1998-05-01 | データ通信装置及びデータ通信方法 |
US09/250,708 US6453372B1 (en) | 1998-05-01 | 1999-02-16 | Data communication system for and method of avoiding computer network transmissions of excessive length |
DE1999111951 DE19911951C2 (de) | 1998-05-01 | 1999-03-17 | Datenkommunikationssystem und Datenkommunikationsverfahren, welches eine Nachrichtenkollision umgehen kann |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12257698A JP3415027B2 (ja) | 1998-05-01 | 1998-05-01 | データ通信装置及びデータ通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11317772A JPH11317772A (ja) | 1999-11-16 |
JP3415027B2 true JP3415027B2 (ja) | 2003-06-09 |
Family
ID=14839336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12257698A Expired - Fee Related JP3415027B2 (ja) | 1998-05-01 | 1998-05-01 | データ通信装置及びデータ通信方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6453372B1 (ja) |
JP (1) | JP3415027B2 (ja) |
DE (1) | DE19911951C2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6744765B1 (en) * | 2000-08-24 | 2004-06-01 | Sun Microsystems, Inc. | Mechanism for completing messages in memory |
JP2003087348A (ja) * | 2001-09-14 | 2003-03-20 | Matsushita Graphic Communication Systems Inc | 通信制御方法及び通信制御装置並びにadsl通信装置 |
US8605642B2 (en) * | 2005-07-07 | 2013-12-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for coding and scheduling in packet data communication systems |
US7464121B2 (en) * | 2006-01-06 | 2008-12-09 | International Business Machines Corporation | Apparatus for sending a sequence of asynchronous messages to the same member of a clustered consumer |
JP4919015B2 (ja) * | 2006-07-27 | 2012-04-18 | 横河電機株式会社 | 通信制御装置および通信制御方法 |
US8192287B2 (en) | 2006-11-17 | 2012-06-05 | Nintendo Co., Ltd. | Game apparatus and storage medium storing a game program for conducting data communications with a network |
JP6029643B2 (ja) * | 2014-12-08 | 2016-11-24 | 任天堂株式会社 | ゲーム装置、ゲームシステムおよび制御方法 |
CN105591969A (zh) * | 2015-11-23 | 2016-05-18 | 江苏瑞中数据股份有限公司 | 一种国网环境下消息总线的使用方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60160745A (ja) | 1984-02-01 | 1985-08-22 | Fuji Xerox Co Ltd | 通信制御方式 |
DE3732937A1 (de) * | 1987-09-30 | 1989-04-20 | Philips Patentverwaltung | Schaltungsanordnung zur vermeidung von ueberlast in einem breitband-vermittlungssystem |
US5291486A (en) * | 1991-08-19 | 1994-03-01 | Sony Corporation | Data multiplexing apparatus and multiplexed data demultiplexing apparatus |
JPH05227194A (ja) * | 1992-02-17 | 1993-09-03 | Oki Electric Ind Co Ltd | バッファ読出し方式 |
JPH08180006A (ja) | 1994-12-22 | 1996-07-12 | Hitachi Ltd | ネットワークインタフェースおよび計算機ネットワークシステム |
US5615213A (en) * | 1995-04-13 | 1997-03-25 | International Business Machines Corporation | Message transmission using out-of-band signaling channel |
JP3457792B2 (ja) | 1996-03-08 | 2003-10-20 | 東芝エレベータ株式会社 | スター型データ伝送装置 |
US5920732A (en) * | 1996-07-01 | 1999-07-06 | Apple Computer, Inc. | System for preallocating additional larger buffer sizes in accordance with packet sizes of discarded packets that can't be stored in existing preallocated buffer sizes |
US5920703A (en) * | 1997-02-19 | 1999-07-06 | International Business Machines Corp. | Systems and methods for managing the processing of relatively large data objects in a communications stack |
-
1998
- 1998-05-01 JP JP12257698A patent/JP3415027B2/ja not_active Expired - Fee Related
-
1999
- 1999-02-16 US US09/250,708 patent/US6453372B1/en not_active Expired - Fee Related
- 1999-03-17 DE DE1999111951 patent/DE19911951C2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6453372B1 (en) | 2002-09-17 |
JPH11317772A (ja) | 1999-11-16 |
DE19911951A1 (de) | 1999-11-18 |
DE19911951C2 (de) | 2003-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3413788B2 (ja) | 層間のフロー制御を行う通信プロトコルを持つ通信方法およびデータ通信端末 | |
AU769881B2 (en) | Method and apparatus for discarding packets in a data network having automatic repeat request | |
US5937169A (en) | Offload of TCP segmentation to a smart adapter | |
US5664091A (en) | Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol | |
US4430651A (en) | Expandable and contractible local area network system | |
US4423414A (en) | System and method for name-lookup in a local area network data communication system | |
KR100998546B1 (ko) | Mac 층 리셋 후 노드-b 에서 버퍼링된 데이터의효과적인 복구를 위한 시스템 | |
US5528605A (en) | Delayed acknowledgement in an asymmetric timer based LAN communications protocol | |
US7734978B2 (en) | Communication method enabling use of both a normal acknowledgement scheme and a block acknowledgement scheme | |
US6424870B1 (en) | Parallel processor | |
US6034962A (en) | Communication method with attaching identifiers to receive request and transmit request | |
US5165020A (en) | Terminal device session management protocol | |
Tomlinson | Selecting sequence numbers | |
JP2006287981A (ja) | 網通信システムにおいてデータパケットを伝送するための誤り訂正通信方法 | |
JPH0771125B2 (ja) | データ通信方法およびデータ通信システム | |
JP2002542662A (ja) | フレキシブル無線リンク制御プロトコル | |
JP2002524915A (ja) | 低待ち時間通信用のシステムおよび方法 | |
JPH11143845A (ja) | ネットワークノード間のメッセージ送信用システム及び方法 | |
CN108234087B (zh) | 数据传输方法及发送端 | |
JP2002527935A (ja) | データ通信用方法とシステム | |
JP3415027B2 (ja) | データ通信装置及びデータ通信方法 | |
JPH09160858A (ja) | データ再送方法及びサーバ | |
JPH0552106B2 (ja) | ||
JP2001168907A (ja) | 通信装置 | |
JPH09282296A (ja) | 多重化ノード間通信制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080404 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090404 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100404 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100404 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120404 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120404 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130404 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130404 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140404 Year of fee payment: 11 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |