(57)【特許請求の範囲】
【請求項１】
送信データを格納する再送バッファと、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入する格納位置挿入手段とを有し、該格納位置情報が挿入された送信データを宛先に送信する、第１の通信機と、
前記格納位置情報が挿入された送信データの到達を確認する到達確認部と、前記到達確認部により到達が確認された場合に、前記格納位置情報を含む到達確認情報を生成する到達確認情報生成手段とを有し、前記格納位置情報を含む到達確認情報を前記送信側の通信機に返信する、第２の通信機と、を備え、
前記第１の通信機は、前記第２の通信機から送信された前記格納位置情報を基に、前記再送バッファから到達が確認された前記送信データを削除する制御手段を、さらに有していることを特徴とするデータ通信システム。
【請求項２】
前記第１及び第２の通信機は、切替装置を用いて相互にネットワークにより接続されていることを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
ヘッダ領域とペイロード領域の間に前記送信データの格納位置情報を搭載し、送受信を行なうことを特徴とする請求項１又は２に記載のデータ通信システム。
【請求項４】
送信データを格納する再送バッファと、
該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、受信側の通信機に送信する格納位置挿入手段と、
前記受信側の通信機から受信した到達確認情報に含まれる前記格納位置情報を基に、前記再送バッファから、到達が確認された前記送信データを削除する制御手段と、
を備えたことを特徴とする通信機。
【請求項５】
送信側の第１の通信機において、再送バッファに送信データを格納するとともに、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、該格納位置情報が挿入された送信データを送信するステップと、
受信側の第２の通信機において、前記格納位置情報が挿入された送信データの到達を確認し、前記到達確認部により送信データの到達が確認された場合に、前記格納位置情報を含む到達確認情報を生成し、前記格納位置情報を含む到達確認情報を前記第１の通信機に返信するステップと、
前記第１の通信機側において、前記第２の通信機から送信された前記格納位置情報を基に、前記再送バッファから到達が確認された前記送信データを削除するステップとを有するデータ通信方法。
【請求項６】
通信機としてのコンピュータに、
再送バッファとしてのメモリに送信データを格納する処理と、
該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、受信側の通信機に送信する処理と、
前記受信側の通信機から受信した到達確認情報に含まれる前記格納位置情報を基に、前記メモリから、到達が確認された前記送信データを削除する処理と、を実行させる通信制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信システム、通信機、データ通信方法及び通信制御用プログラムに係わり、特に再送制御を実行する際に処理速度の優れたバッファ管理が可能なデータ通信システム、通信機、データ通信方法及び通信制御用プログラムに関する。
【背景技術】
【０００２】
ローカルエリアネットワーク、ワイドエリアネットワークの構築にはイーサネット（登録商標）が用いられている。イーサネットはベストエフォート型のレイヤ２ネットワークとなっており、帯域制御、再送制御などの信頼性を高める機能はTCP/IPなどの上位レイヤの役割となっている（非特許文献１）。
【０００３】
なお、パケット再送制御方式については、例えば特許文献１に、送信端末と受信端末との間に、送信交換局と受信交換局とを設け、送信交換局は再送バッファを有し、受信交換局から所定の時間以前（タイムアウト以前）に送達確認パケットが到着したときに、送信交換局は再送バッファを解放することの記載がある。
【非特許文献１】奥山 徹 著、TCPのしくみと実装、CQ出版社、2004年10月、第３５頁〜第３９頁，第６０頁〜第６１頁
【特許文献１】特開昭６２−２９９１４２号公報（第２頁左上欄第１３行から右上欄第１８行）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、TCP/IPスタックを通過しないデータをイーサネット（登録商標）を通して高信頼な通信をさせる場合、イーサネット上で信頼性を向上させるしくみが求められる。その場合、TCP/IPのしくみをそのまま用いることにより可能となるが、TCP/IPはソフトウェアで処理することを想定して設計されている。そのため、そのままハードウェアに適用する場合には、回路規模・処理速度の要求から高価なデバイスを使用する必要がある。
【０００５】
本発明の目的は、信頼性を向上させるための到達保障・再送制御の機能に関し、上記課題を解決する方法・装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のデータ通信システムは、送信データを格納する再送バッファと、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入する格納位置挿入手段とを有し、該格納位置情報が挿入された送信データを宛先に送信する、第１の通信機と、前記格納位置情報が挿入された送信データの到達を確認する到達確認部と、前記到達確認部により到達が確認された場合に、前記格納位置情報を含む到達確認情報を生成する到達確認情報生成手段とを有し、前記格納位置情報を含む到達確認情報を前記送信側の通信機に返信する、第２の通信機と、を備え、前記第１の通信機は、前記第２の通信機から送信された前記格納位置情報を基に、前記再送バッファから到達が確認された前記送信データを削除する制御手段を、さらに有していることを特徴とする。
【０００７】
本発明の通信機は、送信データを格納する再送バッファと、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、受信側の通信機に送信する格納位置挿入手段と、前記受信側の通信機から受信した到達確認情報に含まれる前記格納位置情報を基に、前記再送バッファから、到達が確認された前記送信データを削除する制御手段と、を備えたことを特徴とする。
【０００９】
本発明のデータ通信方法は、送信側の第１の通信機において、再送バッファに送信データを格納するとともに、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、該格納位置情報が挿入された送信データを送信するステップと、受信側の第２の通信機において、前記格納位置情報が挿入された送信データの到達を確認し、前記到達確認部により送信データの到達が確認された場合に、前記格納位置情報を含む到達確認情報を生成し、前記格納位置情報を含む到達確認情報を前記第１の通信機に返信するステップと、前記第１の通信機側において、前記第２の通信機から送信された前記格納位置情報を基に、前記再送バッファから到達が確認された前記送信データを削除するステップとを有することを特徴とする。
【００１０】
本発明の通信制御用プログラムは、通信機としてのコンピュータに、再送バッファとしてのメモリに送信データを格納する処理と、該送信データを識別するための識別情報であるシーケンス番号とは別に、該再送バッファにおける該送信データの格納位置である格納位置情報を該送信データに挿入し、受信側の通信機に送信する処理と、前記受信側の通信機から受信した到達確認情報に含まれる前記格納位置情報を基に、前記メモリから、到達が確認された前記送信データを削除する処理と、を実行させることを特徴とする。
【００１２】
本発明では送信側が送信データを送信する際にそのデータの再送バッファへの格納位置情報を送信データに搭載し送信する。受信側は到達確認情報を返送する際、格納位置情報を到達確認情報に搭載し送信側に返送する。格納位置情報を搭載した到達確認情報を受信した送信側は、その格納位置を参照し、再送バッファの解放を行なう。この場合、該当フローの先頭から格納位置までを解放することにより、再送バッファ容量の削減や処理速度の向上を図ることができる。
【発明の効果】
【００１３】
本発明によれば、バッファ解放の処理時間を短縮でき、回路規模や処理速度の実装上の制限を緩めることができる。
【００１４】
その理由は、バッファ解放に必要な情報を送信側から提供し、受信側はそのまま返送し、その情報を受信した送信側は検索することなくバッファ解放を行なえるためである。
【発明を実施するための最良の形態】
【００１５】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。本実施形態では、再送バッファの管理方法として、累積確認応答方式、Go Back N方式を使用している。累積確認応答方式は、受信側が一定数受信したパケットのシーケンス番号が正常な順序になっているかを確認し、次に必要なパケットのシーケンス番号を送信側に通知する方式である。Go Back N方式は送り出したフレームを再送バッファに格納し、受信側からのＡＣＫを待たずに一定量のフレームを送り、ＡＣＫが返信されてきたときに該当フレームを削除する（再送バッファを解放する）、再送の際には受信側が正常に受信できた次のフレームから再送を開始する方式である。
［第１の実施形態］
［1］ 構成の説明
図１は本発明によるデータ通信システムの第１実施形態の構成を示すブロック図である。本実施形態のデータ通信システムは通信機となる送受信機１−１−１と１−２−１から構成され、相互に接続される。ただし説明の都合上、送信側を送受信機１−１−１（第１の通信機となる）、受信側を送受信機１−２−１（第２の通信機となる）とする。本来は送受信機１−１−１と１−２−１は送信側、受信側の区別はなく、お互いに送信側、受信側となりえる。
【００１６】
なお、図１の送受信機１−１−１においては、実線で示したブロックは本実施形態の送信のために必要な構成部を示し、点線で示したブロックは本実施形態の受信のために必要な構成部を示している。一方、図１の送受信機１−２−１においては、実線で示したブロックは本実施形態の受信のために必要な構成部を示し、点線で示したブロックは本実施形態の送信のために必要な構成を示している。
【００１７】
送受信機１−１−１は、再送バッファ１−１−２、シーケンス番号挿入部１−１−３、格納位置挿入部１−１−４、格納位置ベースバッファ制御部１−１−５、シーケンス番号インクリメントカウンタ１−１−６、フレーム解析部１−１−７、受信バッファ１−１−８、到達確認部１−１−９、格納位置込みACK生成部１−１−１０から構成される。
【００１８】
送受信機１−２−１は送受信機１−１−１と同じ構成であり、その機能も同じである。すなわち、送受信機１−２−１は、再送バッファ１−２−２、シーケンス番号挿入部１−２−３、格納位置挿入部１−２−４、格納位置ベースバッファ制御部１−２−５、シーケンス番号インクリメントカウンタ１−２−６、フレーム解析部１−２−７、受信バッファ１−２−８、到達確認部１−２−９、格納位置込みACK生成部１−２−１０から構成される。
【００１９】
上記のように、送受信機１−１−１と送受信機１−２−１とは同じ構成なので、説明の重複を避けるために、以下の説明では、送受信機１−１−１の各構成部についてのみ説明する。送受信機１−１−１の各構成部についての説明が、送受信機１−２−１の各構成部の説明にも適用できることは勿論である。
【００２０】
再送バッファ１−１−２はシーケンス番号挿入部１−１−３、格納位置ベースバッファ制御部１−１−５、シーケンス番号インクリメントカウンタ１−１−６と接続されており、外部より送信データを受け取り、再送制御を行なうために到達確認が行なわれるまでそのデータを格納する。
【００２１】
再送バッファ１−１−２は、送信データをシーケンス番号挿入部１−１−３に送付し、その際にシーケンス番号インクリメントカウンタ１−１−６をインクリメントし、格納位置を格納位置ベースバッファ制御部１−１−５に通知する。再送バッファ１−１−２は、フローごとに区分けされている構成が望ましい。例えば一定サイズごとに区切られたブロック構成になっており、フローごとに動的に割当てる。割当られたブロックにはそのフローが使い終わるまで他のフローが使用できないように排他的に使用する。また、ブロック内の解放した領域についてはそのブロック全体が解放されるまで使用せず、フレームを格納する際には常に前のフレームの後ろ、あるいは新しいブロックに格納するのが望ましい。格納する際には、フレームの最後尾部分に識別ビットを立て、そのビットを立てた位置を格納位置情報として用いる。
【００２２】
シーケンス番号挿入部１−１−３は再送バッファ１−１−２、格納位置挿入部１−１−４、シーケンス番号インクリメントカウンタ１−１−６と接続されており、再送バッファ１−１−２からデータフレームを送信する際にシーケンス番号インクリメントカウンタ１−１−６の値をヘッダ部に挿入し、格納位置挿入部１−１−４に送付する。
【００２３】
格納位置挿入部１−１−４はシーケンス番号挿入部１−１−３、格納位置ベースバッファ制御部１−１−５、送受信機１−２−１と接続されており、格納位置ベースバッファ制御部１−１−５から格納位置情報を受け取り、データフレームのヘッダ部に挿入し、受信側の送受信機１−２−１に送付する。なお、格納位置挿入部はデータ送信機能を有するものとしているがデータ送信部を別に設けてもよい。
【００２４】
格納位置ベースバッファ制御部１−１−５は再送バッファ１−１−２、格納位置挿入部１−１−４、フレーム解析部１−１−７と接続され、データフレーム送信時には、再送バッファ１−１−２より格納位置情報を受け取り格納位置挿入部１−１−４に通知する。ACKフレーム受信時には、フレーム解析部１−１−７からACKフレームに搭載されている格納位置情報を基に、再送バッファ１−１−２の解放（送信データの削除）を行なう。
【００２５】
フレーム解析部１−１−７は送受信機１−２−１、受信バッファ１−１−８と接続されている。受信したフレームがデータフレームかACKフレームかを識別し、データフレームの場合は受信バッファ１−１−８に送付し、ACKフレームの場合は搭載されている格納位置情報を読取り格納位置ベースバッファ制御部１−１−５に通知する。なお、フレーム解析部はデータ受信機能を有するものとしているがデータ受信部を別に設けてもよい。
【００２６】
受信バッファ１−１−８は、フレーム解析部１−１−７、到達確認部１−１−９と接続されており、フレーム解析部１−１−７からのデータフレームを一時保持し、到達確認部１−１−９に引き渡す。
【００２７】
到達確認部１−１−９は受信バッファ１−１−８、格納位置込みACK生成部１−１−１０と接続されており、シーケンス番号を基に到着順序の逆転や、未到達フレームを検出する。正常に受信できており、ACKフレームの送信機会である場合には、格納位置込みACK生成部１−１−１０にデータフレームの格納位置を通知する。
【００２８】
格納位置込みACK生成部１−１−１０は到達確認部１−１−９、再送バッファ１−１−２と接続されており、到達確認部１−１−９からの格納位置情報を基にACKフレーム（確認応答フレーム、到達確認情報となる）を生成し、再送バッファ１−１−２経由で対向の送受信機１−２−１に送信（返信）する。その際、ACKフレームは再送制御対象外のフレームであるため再送バッファ１−１−２にはバッファリングせずにすぐに送信し、シーケンス番号挿入部１−１−３、格納位置挿入部１−１−４も何もせずに通過させ、対向の送受信機１−２−１に送信する。
【００２９】
図２に本実施形態で用いるフレームフォーマットを示す。イーサネット（Ethernet 登録商標）フレームヘッダに続く拡張ヘッダ部分とデータ領域にシーケンス番号および格納位置を搭載する領域を設ける。あるいは図３に示すようにTCP/IPヘッダ部分にはそのままシーケンス番号を搭載し、TCP/IPヘッダに続け拡張ヘッダとして格納位置情報を搭載してもよい。このように、送信データの格納位置情報は、ヘッダ領域とデータ領域（ペイロード領域）との間に搭載する。
[２]動作の説明
図４に本実施形態のデータ通信システムの動作のフローチャートを示す。
【００３０】
送信側の送受信機１−１−１に送信フレームが到着すると（ステップＳ１）、フローごとに格納位置が別れている再送バッファ１−１−２の該当フローに送信フレームを格納する（ステップＳ２）。次に再送バッファ１−１−２から送信フレームを送付する際に、シーケンス番号インクリメントカウンタ１−１−６をインクリメントし、ヘッダ部分にシーケンス番号を挿入する（ステップＳ３）。また、再送バッファ１−１−２から送信フレームを送付する際に、格納位置ベースバッファ制御部１−１−５を通し格納位置挿入部１−１−４に格納位置を通知し、ヘッダに格納位置を挿入する（ステップＳ４）。そして、データフレームを受信側の送受信機１−２−１に送付する（ステップＳ５）。
【００３１】
受信側送受信機１−２−１がデータフレームを受信すると（ステップＳ６）、フレーム解析部１−２−７にてそのフレームの宛先、送信元、フレーム種別、フレームチェックシーケンスを解析する（ステップＳ７）。データフレームの場合は受信バッファ１−２−８に送付して格納し（ステップＳ８）、さらに到達確認部１−２−９にてシーケンス番号を基に正常に受信できているかを確認する（ステップＳ９）。正常に受信できている時、ACKフレームの送信機会で無い場合（ステップＳ１０のＮｏ）は何も行なわず、データを上位レイヤあるいは別装置に送付する。正常に受信できておりACKフレームの送信機会である場合（ステップＳ１０のＹｅｓ）は、そのフレームのヘッダから読み取った格納位置情報（あるいはフレーム解析部１−２−７で読み取っておいた格納位置情報）を基に（ステップＳ１１）、ACKフレームを格納位置込みACK生成部１−２−１０にて生成する（ステップＳ１２）。生成されたACKフレームは再送バッファ１−２−２を経由するが格納はされず、すぐに送信側送受信機１−１−１に送付される（ステップＳ１３）。その際、シーケンス番号挿入部１−２−３、格納位置挿入部１−２−４では何も行なわない。
【００３２】
受信側の送受信機１−２−１から送付されたACKフレームは、送信側の送受信機１−１−１が受信すると（ステップＳ１４）、まずフレーム解析部１−１−７にてそのフレームの宛先、送信元、フレーム種別、フレームチェックシーケンスを解析する（ステップＳ１５）。そして、格納位置を読み取り（ステップＳ１６）、そのACKフレームの該当フローの再送バッファの先頭からACKフレームに搭載されてきた格納位置まで再送バッファ１−１−２を解放する（ステップＳ１７）。
［第２の実施形態］
図５は本発明によるデータ通信システムの第２実施形態の構成を示すブロック図である。本実施形態では、送受信機間を一般のネットワークで使用されるスイッチ４−１（切替装置となる）で接続する。送受信機は第１の実施形態に記述したものと同様であり、他送受信機４−２は第１の実施形態と同じ送受信機を用いても異なる構成の送受信機を用いてもどちらでも構わない。
【００３３】
本実施形態の動作については、データフレームとACKフレームの送受信の際にスイッチ４−１を介して通信を行う点が異なるのみである。スイッチ４−１の動作は一般のネットワークで使用されるスイッチの動作である。
【００３４】
本実施形態による効果は、スイッチを用いることにより複数の送受信機間で通信できる点である。
【００３５】
以上説明した各実施形態の送受信機（通信機となる）は、専用ＩＣ等を用いたハードウェアで構成できるが、送受信機としてのコンピュータを用いたソフトウェアで実現することもできる。すなわち、例えば、図１又は図５の送信側の送受信機１−１−１、送信側の送受信機１−２−１をそれぞれ図６に示すようなコンピュータで構成し、図４で示したフローを記述した通信制御用プログラムにより送受信機の機能を実現することができる。送受信機１−１−１、送信側の送受信機１−２−１は両方ともコンピュータで構成しても、一方をコンピュータで構成してもよい。送受信機の機能を実現する通信制御用プログラムをハードディスク装置等のディスク装置１４やＲＯＭ等の記憶装置（ここではディスク装置を示している）に記憶し、送信データや受信データをバッファとしてのＲＡＭ等のメモリ１２に記憶し、ＣＰＵ１３により図１又は図５に示した送受信機１−１−１又は１−２−１の機能を実現するプログラムが実行される。
【００３６】
通信部１０は格納位置挿入部のデータ送信部、フレーム解析部のデータ受信部に対応するものである。表示部１１はＬＣＤ（液晶表示装置）やＣＲＴ等からなり、通信状況を表示するものである。１５はデータバス等のバスである。
【産業上の利用可能性】
【００３７】
本発明は、再送制御を実行する際に処理速度の優れたバッファ管理が可能なデータ通信システム、通信機、データ通信方法及び通信制御用プログラムに適用される。
【図面の簡単な説明】
【００３８】
【図１】本発明によるデータ通信システムの第１実施形態の構成を示すブロック図である。
【図２】本発明の第１実施形態に用いるフレームフォーマットを示す図である。
【図３】本発明を第１実施形態に用いるフレームフォーマットを示す図である。
【図４】本発明の第１実施形態のデータ通信システム及び送受信機の動作を示すフローチャートである。
【図５】本発明によるデータ通信システムの第２実施形態の構成を示すブロック図である。
【図６】コンピュータの構成例を示すブロック図である。
【符号の説明】
【００３９】
１−１−１  送受信機
１−２−１  送受信機
１−１−２，１−２−２  再送バッファ
１−１−３，１−２−３  シーケンス番号挿入部
１−１−４，１−２−４  格納位置挿入部
１−１−５，１−２−５  格納位置ベースバッファ制御部
１−１−６，１−２−６  シーケンス番号インクリメントカウンタ
１−１−７，１−２−７  フレーム解析部
１−１−８，１−２−８  受信バッファ
１−１−９，１−２−９  到達確認部
１−１−１０，１−２−１０  格納位置込みACK生成部
【図１】
0004894012.tif 000002
【図２】
0004894012.tif 000003
【図３】
0004894012.tif 000004
【図４】
0004894012.tif 000005
【図５】
0004894012.tif 000006
【図６】
0004894012.tif 000007