JP3198547B2 - 受信装置のバッファ管理方法 - Google Patents
受信装置のバッファ管理方法Info
- Publication number
- JP3198547B2 JP3198547B2 JP21714091A JP21714091A JP3198547B2 JP 3198547 B2 JP3198547 B2 JP 3198547B2 JP 21714091 A JP21714091 A JP 21714091A JP 21714091 A JP21714091 A JP 21714091A JP 3198547 B2 JP3198547 B2 JP 3198547B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- data packet
- packet
- sequence number
- 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
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、ネットワークから入来
したデータパケットを受信バッファへ格納し、ホストへ
配信する受信装置において、受信バッファを管理するた
めの受信装置のバッファ管理方法に関する。
したデータパケットを受信バッファへ格納し、ホストへ
配信する受信装置において、受信バッファを管理するた
めの受信装置のバッファ管理方法に関する。
【0002】
【従来の技術】近年、パケット交換通信においては、F
DDI、ATM等の出現により、ネットワークの高速化
が図られている。このような状況下で、ネットワークか
ら入来したパケットを処理して、ホストへ配信する受信
装置の高速化が、急務となっている。
DDI、ATM等の出現により、ネットワークの高速化
が図られている。このような状況下で、ネットワークか
ら入来したパケットを処理して、ホストへ配信する受信
装置の高速化が、急務となっている。
【0003】従来のパケット交換通信における、受信装
置が低速である理由の一つにはそのバッファ管理方法が
挙げられる。従来の受信装置のバッファ管理方法は通常
ソフトウェアで実現されており、おおむね(図11)の
ような構造を持っている。
置が低速である理由の一つにはそのバッファ管理方法が
挙げられる。従来の受信装置のバッファ管理方法は通常
ソフトウェアで実現されており、おおむね(図11)の
ような構造を持っている。
【0004】以下、図面を参照しながら従来の受信装置
のバッファ管理方法について説明すると、(図11)で
29はメモリ内におけるパケットの位置と順序番号を管
理する構造体のキューである。これは構造体3001か
ら300nおよび構造体31より成る。3001から3
00nまでの各構造体がそれぞれ第1のパケットから第
nのパケットに対応している。これらはポインタによっ
て前後の順序番号を持つ構造体とリンクしている。構造
体31は、構造体3001へのポインタおよび構造体3
00nへのポインタを有することによってキュー全体を
管理している。3201から320mは使用していない
構造体の列である。これらは3001から300nまで
の構造体と同様の構造を持ち、互いにリンクしている。
一般に、キュー29とパケットが格納されている受信バ
ッファ3とは同一のメモリ上にある。34はパケットヘ
ッダ処理プログラムである。
のバッファ管理方法について説明すると、(図11)で
29はメモリ内におけるパケットの位置と順序番号を管
理する構造体のキューである。これは構造体3001か
ら300nおよび構造体31より成る。3001から3
00nまでの各構造体がそれぞれ第1のパケットから第
nのパケットに対応している。これらはポインタによっ
て前後の順序番号を持つ構造体とリンクしている。構造
体31は、構造体3001へのポインタおよび構造体3
00nへのポインタを有することによってキュー全体を
管理している。3201から320mは使用していない
構造体の列である。これらは3001から300nまで
の構造体と同様の構造を持ち、互いにリンクしている。
一般に、キュー29とパケットが格納されている受信バ
ッファ3とは同一のメモリ上にある。34はパケットヘ
ッダ処理プログラムである。
【0005】入来したパケットは受信バッファ3へ格納
される。各パケットの物理的な位置には相互になんらの
関係もない。それと同時に構造体3201が、3202
から320mまでの列から外される。構造体3201に
は到着したパケットの受信バッファ3における先頭アド
レスと、パケット長(または最後尾のアドレス)が書き
込まれる。ヘッダ処理プログラム33によってヘッダが
処理された後、構造体3201にはパケットの順序番号
が書き込まれ、先頭アドレスはデータ部の先頭アドレス
に書き換えられる。つぎに構造体3001から300n
の列を検索していき、リンクが順序番号順となるように
3201を挿入する。
される。各パケットの物理的な位置には相互になんらの
関係もない。それと同時に構造体3201が、3202
から320mまでの列から外される。構造体3201に
は到着したパケットの受信バッファ3における先頭アド
レスと、パケット長(または最後尾のアドレス)が書き
込まれる。ヘッダ処理プログラム33によってヘッダが
処理された後、構造体3201にはパケットの順序番号
が書き込まれ、先頭アドレスはデータ部の先頭アドレス
に書き換えられる。つぎに構造体3001から300n
の列を検索していき、リンクが順序番号順となるように
3201を挿入する。
【0006】
【発明が解決しようとする課題】しかし、上述した従来
のバッファ管理方法では、メモリ上のデータの位置に物
理的な相関がないため、ホストへデータを配信しようと
したときに、メモリ・アクセスに多くの時間を要する。
また、順序通りに到着したパケットも順序違いのパケッ
トも同一のキューで管理するために、構造体の検索や挿
入を伴い、これが負荷の原因となる。
のバッファ管理方法では、メモリ上のデータの位置に物
理的な相関がないため、ホストへデータを配信しようと
したときに、メモリ・アクセスに多くの時間を要する。
また、順序通りに到着したパケットも順序違いのパケッ
トも同一のキューで管理するために、構造体の検索や挿
入を伴い、これが負荷の原因となる。
【0007】本発明は、従来の受信装置と同等の機能を
持ち、かつ、メモリ・アクセス時間が短縮され、検索や
挿入に伴う負荷が減少するようなバッファ管理方法を提
供することを目的とする。
持ち、かつ、メモリ・アクセス時間が短縮され、検索や
挿入に伴う負荷が減少するようなバッファ管理方法を提
供することを目的とする。
【0008】
【課題を解決するための手段】本発明のバッファ管理方
法は、上記目的を達成するために、第1の手段として、
順序番号を有するパケットを交換する通信システムの受
信装置において、前記受信装置は、データパケット解析
装置と、受信バッファと前記受信バッファを管理する受
信バッファ管理装置とを有し、前記データパケット解析
装置は、入来したデータパケットの送受信者を規定する
コンテクストと前記データパケットの順序番号をと認識
し、前記データパケットのデータ部とヘッダ部とを分離
し、前記受信バッファは、前記データ部を格納する複数
のメモリを有し、前記受信バッファ管理装置は、前記受
信バッファを、それぞれ複数の前記各メモリを含むいく
つかのメモリブロックに分け、一つの前記メモリブロッ
クを一つの前記コンテクストと関連付け、一つの前記メ
モリブロックの中の前記各メモリ内に含まれているデー
タを管理し、前記データパケットが順序通りに到着して
いる間は、前記データパケットの前記コンテクストに対
応する前記メモリブロック内の前記各メモリへ前記デー
タパケットの前記データ部を順序番号順に物理的に整列
させて格納することを特徴とするバッファ管理方法を用
いる。
法は、上記目的を達成するために、第1の手段として、
順序番号を有するパケットを交換する通信システムの受
信装置において、前記受信装置は、データパケット解析
装置と、受信バッファと前記受信バッファを管理する受
信バッファ管理装置とを有し、前記データパケット解析
装置は、入来したデータパケットの送受信者を規定する
コンテクストと前記データパケットの順序番号をと認識
し、前記データパケットのデータ部とヘッダ部とを分離
し、前記受信バッファは、前記データ部を格納する複数
のメモリを有し、前記受信バッファ管理装置は、前記受
信バッファを、それぞれ複数の前記各メモリを含むいく
つかのメモリブロックに分け、一つの前記メモリブロッ
クを一つの前記コンテクストと関連付け、一つの前記メ
モリブロックの中の前記各メモリ内に含まれているデー
タを管理し、前記データパケットが順序通りに到着して
いる間は、前記データパケットの前記コンテクストに対
応する前記メモリブロック内の前記各メモリへ前記デー
タパケットの前記データ部を順序番号順に物理的に整列
させて格納することを特徴とするバッファ管理方法を用
いる。
【0009】また、第2の手段として、第1の手段に加
えて、データパケット解析装置が、入来したデータパケ
ットのデータ部の長さを認識し、受信バッファ管理装置
が、受信バッファの中の前記受信バッファ管理装置が管
理している各メモリブロック内の各メモリを一つの遅着
データ用メモリと複数の正常データ用メモリに分けて管
理し、前記メモリブロック内の前記各正常データ用メモ
リの中でただ一つの前記正常データ用メモリに対して書
き込み許可が与えられ、前記受信バッファ管理装置に
は、前記各メモリブロック内の、前記遅着データ用メモ
リと前記各正常データ用メモリの管理情報が登録され、
入来した前記データパケットの前記コンテクストに対応
する前記メモリブロックを検出し、前記データパケット
が、1)順序通りに到着したとき、前記メモリブロック
内の前記書き込み許可をもつ第1の正常データ用メモリ
が、11)前記データ部を格納するに十分な容量を持っ
ているならば、前記第1の正常データ用メモリへ前記デ
ータ部を格納し、12)前記データ部を格納するに十分
な容量を持っていないならば、前記第1の正常データ用
メモリとは別の第2の正常データ用メモリへ前記書き込
み許可を移し、前記第2の正常データ用メモリへデータ
を格納し、2)前記データパケットが、早着パケットな
らば、前記第1の正常データ用メモリとは別の前記第2
の正常データ用メモリへ前記書き込み許可を移し、前記
第2の正常データ用メモリへデータを格納し、3)前記
データパケットが、遅着パケットならば、前記遅着デー
タ用メモリへ前記データ部を格納し、いずれの場合も、
前記受信バッファ管理装置が管理する情報を更新するこ
とを特徴とするバッファ管理方法を用いる。
えて、データパケット解析装置が、入来したデータパケ
ットのデータ部の長さを認識し、受信バッファ管理装置
が、受信バッファの中の前記受信バッファ管理装置が管
理している各メモリブロック内の各メモリを一つの遅着
データ用メモリと複数の正常データ用メモリに分けて管
理し、前記メモリブロック内の前記各正常データ用メモ
リの中でただ一つの前記正常データ用メモリに対して書
き込み許可が与えられ、前記受信バッファ管理装置に
は、前記各メモリブロック内の、前記遅着データ用メモ
リと前記各正常データ用メモリの管理情報が登録され、
入来した前記データパケットの前記コンテクストに対応
する前記メモリブロックを検出し、前記データパケット
が、1)順序通りに到着したとき、前記メモリブロック
内の前記書き込み許可をもつ第1の正常データ用メモリ
が、11)前記データ部を格納するに十分な容量を持っ
ているならば、前記第1の正常データ用メモリへ前記デ
ータ部を格納し、12)前記データ部を格納するに十分
な容量を持っていないならば、前記第1の正常データ用
メモリとは別の第2の正常データ用メモリへ前記書き込
み許可を移し、前記第2の正常データ用メモリへデータ
を格納し、2)前記データパケットが、早着パケットな
らば、前記第1の正常データ用メモリとは別の前記第2
の正常データ用メモリへ前記書き込み許可を移し、前記
第2の正常データ用メモリへデータを格納し、3)前記
データパケットが、遅着パケットならば、前記遅着デー
タ用メモリへ前記データ部を格納し、いずれの場合も、
前記受信バッファ管理装置が管理する情報を更新するこ
とを特徴とするバッファ管理方法を用いる。
【0010】また、第3の手段として、第1の手段に加
えて、前記データパケット解析装置が、入来したデータ
パケットのデータ部の長さを認識し、前記受信バッファ
管理装置には、各メモリブロックの中の、各メモリ内に
含まれる最後のデータの順序番号が最終順序番号として
登録され、入来した前記データパケットのコンテクスト
に対応する前記メモリブロックを検出し、前記データパ
ケットの順序番号と前記受信バッファ管理装置に登録さ
れている前記メモリブロック内の前記各メモリの前記最
終順序番号を比較した結果、1)前記メモリブロック内
に、前記データパケットの順序番号と連続する前記最終
順序番号をもつメモリが存在するとき、前記メモリを第
1のメモリとしたとき、前記第1のメモリが、11)前
記データ部を格納するに十分な容量を持っているなら
ば、前記第1のメモリへ前記データ部を格納し、12)
前記データ部を格納するに十分な容量を持っていないな
らば、前記メモリブロック内の前記第1のメモリとは異
なる、データを含んでいない第2のメモリへデータを格
納し、2)前記メモリブロック内に、前記データパケッ
トの順序番号と連続する前記最終順序番号を持つメモリ
が存在しないとき、前記メモリブロック内のデータを含
んでいないメモリへ前記データ部を格納し、いずれの場
合も、前記受信バッファ管理装置が管理する情報を更新
することを特徴とするバッファ管理方法を用いる。
えて、前記データパケット解析装置が、入来したデータ
パケットのデータ部の長さを認識し、前記受信バッファ
管理装置には、各メモリブロックの中の、各メモリ内に
含まれる最後のデータの順序番号が最終順序番号として
登録され、入来した前記データパケットのコンテクスト
に対応する前記メモリブロックを検出し、前記データパ
ケットの順序番号と前記受信バッファ管理装置に登録さ
れている前記メモリブロック内の前記各メモリの前記最
終順序番号を比較した結果、1)前記メモリブロック内
に、前記データパケットの順序番号と連続する前記最終
順序番号をもつメモリが存在するとき、前記メモリを第
1のメモリとしたとき、前記第1のメモリが、11)前
記データ部を格納するに十分な容量を持っているなら
ば、前記第1のメモリへ前記データ部を格納し、12)
前記データ部を格納するに十分な容量を持っていないな
らば、前記メモリブロック内の前記第1のメモリとは異
なる、データを含んでいない第2のメモリへデータを格
納し、2)前記メモリブロック内に、前記データパケッ
トの順序番号と連続する前記最終順序番号を持つメモリ
が存在しないとき、前記メモリブロック内のデータを含
んでいないメモリへ前記データ部を格納し、いずれの場
合も、前記受信バッファ管理装置が管理する情報を更新
することを特徴とするバッファ管理方法を用いる。
【0011】さらに第4の手段として、第2の手段に加
えて、データパケット解析装置が、入来したデータパケ
ットが送信元メッセージの最後に位置するかどうかを判
定し、入来した前記データパケットが対応するメモリブ
ロック内の第1の正常データ用メモリに格納され、か
つ、前記データパケットが送信元メッセージの最後に位
置しするならば、前記データパケットを格納した前記第
1の正常データ用メモリとは別の第2の正常データ用メ
モリへ、書き込み許可を移すことを特徴とする請求項2
記載のバッファ管理方法を用いる。
えて、データパケット解析装置が、入来したデータパケ
ットが送信元メッセージの最後に位置するかどうかを判
定し、入来した前記データパケットが対応するメモリブ
ロック内の第1の正常データ用メモリに格納され、か
つ、前記データパケットが送信元メッセージの最後に位
置しするならば、前記データパケットを格納した前記第
1の正常データ用メモリとは別の第2の正常データ用メ
モリへ、書き込み許可を移すことを特徴とする請求項2
記載のバッファ管理方法を用いる。
【0012】また第5の手段として、第3の手段に加え
て、データパケット解析装置が、入来したデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
し、受信バッファ管理装置が各メモリブロック内の各メ
モリが書き込み可能かどうかを管理し、入来した前記デ
ータパケットが対応する前記メモリブロック内の前記メ
モリの一つへ格納され、かつ、前記データパケットが送
信元メッセージの最後に位置したならば、前記データパ
ケットを格納した前記メモリを書き込み不可能とするこ
とを特徴とするバッファ管理方法を用いる。
て、データパケット解析装置が、入来したデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
し、受信バッファ管理装置が各メモリブロック内の各メ
モリが書き込み可能かどうかを管理し、入来した前記デ
ータパケットが対応する前記メモリブロック内の前記メ
モリの一つへ格納され、かつ、前記データパケットが送
信元メッセージの最後に位置したならば、前記データパ
ケットを格納した前記メモリを書き込み不可能とするこ
とを特徴とするバッファ管理方法を用いる。
【0013】
【作用】本発明のバッファ管理方法は、上記手段によ
り、次のようにして、上記目的を達成する。
り、次のようにして、上記目的を達成する。
【0014】第1の手段により、受信バッファをいくつ
かのメモリに分割して管理し、入来してきたデータパケ
ットをデータパケット解析装置によって、そのヘッダ部
から、コンテクスト、パケットの順序番号を認識し、順
序通りならばそのデータ部を前記コンテクストに関連す
るメモリブロック内の各メモリへ順序番号順に物理的に
整列するように格納する。
かのメモリに分割して管理し、入来してきたデータパケ
ットをデータパケット解析装置によって、そのヘッダ部
から、コンテクスト、パケットの順序番号を認識し、順
序通りならばそのデータ部を前記コンテクストに関連す
るメモリブロック内の各メモリへ順序番号順に物理的に
整列するように格納する。
【0015】第2の手段により、第1の手段に加えて、
データパケット解析装置が、入来したデータパケットの
ヘッダ部から、そのコンテクスト、パケットの順序番
号、パケットに含まれるデータの長さを認識し、その
後、ヘッダ部とデータ部を切り離す。このデータ部だけ
が次のような手順で受信バッファへ格納される。
データパケット解析装置が、入来したデータパケットの
ヘッダ部から、そのコンテクスト、パケットの順序番
号、パケットに含まれるデータの長さを認識し、その
後、ヘッダ部とデータ部を切り離す。このデータ部だけ
が次のような手順で受信バッファへ格納される。
【0016】受信バッファ管理装置を参照して、認識し
たコンテクストと一致するメモリブロックを検出する。
さらに、そのメモリブロック内の書き込み許可を持つ正
常データ用メモリを検出し、その管理情報を得る。格納
しようとしているデータが順序通りに到着したデータで
あり、かつ、書き込み許可を持つ正常データ用メモリに
このデータを格納するに十分なメモリ残量があれば、そ
のまま格納する。十分なメモリ残量がないか、データが
早着パケットによるものの場合は、次の正常データ用メ
モリに書き込み許可を移し、このメモリにデータを格納
する。遅着パケットによるデータは遅着データ用メモリ
に格納する。いずれの場合も、受信バッファ管理装置が
管理している情報を更新する。
たコンテクストと一致するメモリブロックを検出する。
さらに、そのメモリブロック内の書き込み許可を持つ正
常データ用メモリを検出し、その管理情報を得る。格納
しようとしているデータが順序通りに到着したデータで
あり、かつ、書き込み許可を持つ正常データ用メモリに
このデータを格納するに十分なメモリ残量があれば、そ
のまま格納する。十分なメモリ残量がないか、データが
早着パケットによるものの場合は、次の正常データ用メ
モリに書き込み許可を移し、このメモリにデータを格納
する。遅着パケットによるデータは遅着データ用メモリ
に格納する。いずれの場合も、受信バッファ管理装置が
管理している情報を更新する。
【0017】第3の手段により、第1の手段に加えて、
データパケット解析装置が、入来したパケットのヘッダ
部から、そのコンテクスト、パケットの順序番号、パケ
ットに含まれるデータの長さを認識し、その後、ヘッダ
部とデータ部を切り離す。このデータ部だけが次のよう
な手順で受信バッファへ格納される。
データパケット解析装置が、入来したパケットのヘッダ
部から、そのコンテクスト、パケットの順序番号、パケ
ットに含まれるデータの長さを認識し、その後、ヘッダ
部とデータ部を切り離す。このデータ部だけが次のよう
な手順で受信バッファへ格納される。
【0018】受信バッファ管理装置を参照して、認識し
たコンテクストと一致するメモリブロックを検出する。
前記メモリブロック内の各メモリの中に、前記データパ
ケットの順序番号と連続する最終順序番号をもつメモリ
があり、かつ、そのメモリに前記データパケットのデー
タ部を格納するに十分なメモリ残量があれば、そのまま
格納する。前記データパケットの順序番号と連続する最
終順序番号を持つメモリが存在しないか、存在してもそ
のメモリに前記データパケットのデータ部を格納するに
十分なメモリ残量がない場合は、前記メモリブロック内
の使用中でない別のメモリに前記データ部を格納する。
たコンテクストと一致するメモリブロックを検出する。
前記メモリブロック内の各メモリの中に、前記データパ
ケットの順序番号と連続する最終順序番号をもつメモリ
があり、かつ、そのメモリに前記データパケットのデー
タ部を格納するに十分なメモリ残量があれば、そのまま
格納する。前記データパケットの順序番号と連続する最
終順序番号を持つメモリが存在しないか、存在してもそ
のメモリに前記データパケットのデータ部を格納するに
十分なメモリ残量がない場合は、前記メモリブロック内
の使用中でない別のメモリに前記データ部を格納する。
【0019】第4の手段により、第2の手段に加えて、
データパケット解析装置が、入来してきたデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
する。前記データパケットのデータ部が対応するメモリ
ブロックの正常データ用メモリに格納され、かつ、メッ
セージの最後に位置するならば、前記データ部を格納し
た正常データ用メモリとは別の正常データ用メモリへ書
き込み許可を移す。
データパケット解析装置が、入来してきたデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
する。前記データパケットのデータ部が対応するメモリ
ブロックの正常データ用メモリに格納され、かつ、メッ
セージの最後に位置するならば、前記データ部を格納し
た正常データ用メモリとは別の正常データ用メモリへ書
き込み許可を移す。
【0020】第5の手段により、第3の手段に加えて、
データパケット解析装置が、入来してきたデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
する。前記データパケットのデータ部がメモリに格納さ
れ、かつ、メッセージの最後に位置するならば、前記デ
ータ部を格納したメモリを書き込み不可能とする。
データパケット解析装置が、入来してきたデータパケッ
トが送信元メッセージの最後に位置するかどうかを判定
する。前記データパケットのデータ部がメモリに格納さ
れ、かつ、メッセージの最後に位置するならば、前記デ
ータ部を格納したメモリを書き込み不可能とする。
【0021】
【実施例】以下本発明の一実施例について、図面を参照
しながら説明する。
しながら説明する。
【0022】(図1)において1はパケット入力装置、
2はデータパケット解析装置である。3は受信バッファ
であり、301から30nまでのメモリから構成されて
いる。4は受信バッファ管理装置であり、各コンテクス
トに対して、コンテクスト番号と、そのコンテクストに
関連する各メモリブロックの管理情報とを対応させる管
理テーブル401を管理している。管理テーブルの横
幅、すなわち各項目のビット長は、32ビットとする。
5はデータパケット以外のパケットを処理する制御用パ
ケット処理装置であり、6は受信バッファ内のデータを
ホストへ配信するデータ配信装置である。
2はデータパケット解析装置である。3は受信バッファ
であり、301から30nまでのメモリから構成されて
いる。4は受信バッファ管理装置であり、各コンテクス
トに対して、コンテクスト番号と、そのコンテクストに
関連する各メモリブロックの管理情報とを対応させる管
理テーブル401を管理している。管理テーブルの横
幅、すなわち各項目のビット長は、32ビットとする。
5はデータパケット以外のパケットを処理する制御用パ
ケット処理装置であり、6は受信バッファ内のデータを
ホストへ配信するデータ配信装置である。
【0023】ここで、管理テーブルの各項目の横幅を3
2ビットに設定しているが、これにより、現状の全ての
プロトコルの順序番号が表現可能となっている。さら
に、現状の単体メモリ容量は表現可能である。新たなプ
ロトコルの出現やメモリ容量の増加にともない64ビッ
トや128ビットに設定することも可能である。
2ビットに設定しているが、これにより、現状の全ての
プロトコルの順序番号が表現可能となっている。さら
に、現状の単体メモリ容量は表現可能である。新たなプ
ロトコルの出現やメモリ容量の増加にともない64ビッ
トや128ビットに設定することも可能である。
【0024】(図2)は本実施例における管理テーブル
401の一つのメモリブロックに対する管理情報を示
す。(図2)で7は次に受信を期待するデータの順序番
号である。8はテーブル内において遅着データ用メモリ
を管理する情報が記載されている位置へのポインタであ
る。例えばこれが14に設定されているならば、これは
ポインタ8から14項目目より遅着データ用メモリを管
理する情報が記載されていることを示す。9は書き込み
許可を得ている正常データ用メモリを管理する情報への
ポインタである。これがゼロに設定されているときは書
き込み許可が無効であると判断される。すなわち、受信
バッファ内のデータがホストに配信されるまで、受信バ
ッファがこれ以上のデータを受け付けないと判断され
る。1001は第1の正常データ用メモリのメモリ番号
を表す。1002と1003はそれぞれ、1001のメ
モリに格納されているデータの最初と最後のデータの順
序番号を表し、1004は1001のメモリ残量を表
す。1002と1003が等しいとき、このメモリは使
用されていないと判断される。1101から1104、
および1201から1204まではそれぞれ第2、第3
の正常データ用メモリに関する情報で、1001から1
004とほぼ同様である。ここでは3つの正常データ用
メモリを管理する管理テーブルの例を示している。13
は遅着データ用メモリのメモリ番号を示す。1301は
遅着データ用メモリが格納しているデータの中の先頭の
順序番号である。1302はこの先頭の順序番号を持つ
パケットからのデータを管理する情報が記載されている
項目へのポインタである。遅着データ用メモリにデータ
が含まれていないとき、このポインタ1302をゼロに
セットする。1303は遅着データ用メモリのメモリ残
量を表す。1401、1402、1403、1404は
それぞれ次の順序番号を持つデータを記載する情報への
ポインタ、遅着データ用メモリの一パケット分データの
順序番号、このパケットの遅着データ用メモリにおける
先頭アドレス、およびデータ長を指す。1501以降も
同様である。遅着データ用メモリに関するこの管理方法
は従来例で説明したキュー管理方法とほぼ同様である。
401の一つのメモリブロックに対する管理情報を示
す。(図2)で7は次に受信を期待するデータの順序番
号である。8はテーブル内において遅着データ用メモリ
を管理する情報が記載されている位置へのポインタであ
る。例えばこれが14に設定されているならば、これは
ポインタ8から14項目目より遅着データ用メモリを管
理する情報が記載されていることを示す。9は書き込み
許可を得ている正常データ用メモリを管理する情報への
ポインタである。これがゼロに設定されているときは書
き込み許可が無効であると判断される。すなわち、受信
バッファ内のデータがホストに配信されるまで、受信バ
ッファがこれ以上のデータを受け付けないと判断され
る。1001は第1の正常データ用メモリのメモリ番号
を表す。1002と1003はそれぞれ、1001のメ
モリに格納されているデータの最初と最後のデータの順
序番号を表し、1004は1001のメモリ残量を表
す。1002と1003が等しいとき、このメモリは使
用されていないと判断される。1101から1104、
および1201から1204まではそれぞれ第2、第3
の正常データ用メモリに関する情報で、1001から1
004とほぼ同様である。ここでは3つの正常データ用
メモリを管理する管理テーブルの例を示している。13
は遅着データ用メモリのメモリ番号を示す。1301は
遅着データ用メモリが格納しているデータの中の先頭の
順序番号である。1302はこの先頭の順序番号を持つ
パケットからのデータを管理する情報が記載されている
項目へのポインタである。遅着データ用メモリにデータ
が含まれていないとき、このポインタ1302をゼロに
セットする。1303は遅着データ用メモリのメモリ残
量を表す。1401、1402、1403、1404は
それぞれ次の順序番号を持つデータを記載する情報への
ポインタ、遅着データ用メモリの一パケット分データの
順序番号、このパケットの遅着データ用メモリにおける
先頭アドレス、およびデータ長を指す。1501以降も
同様である。遅着データ用メモリに関するこの管理方法
は従来例で説明したキュー管理方法とほぼ同様である。
【0025】以上のように構成された受信装置のバッフ
ァ管理方法を(図3)のフローチャートを用いて説明す
る。
ァ管理方法を(図3)のフローチャートを用いて説明す
る。
【0026】まずステップ1でパケットの入来を待ち、
入来してきたら、ステップ2でパケット入力装置1がデ
ータパケットかどうかを判定する。データパケットでな
ければ、ステップ201で制御用パケット処理装置5を
起動して、このパケットを処理する。データパケットで
あれば、ステップ3でデータパケット解析装置2がパケ
ットの宛先コンテクスト、順序番号、データ部の長さを
検出し、ステップ4でデータパケット解析装置2がヘッ
ダ部とデータ部を分離する。ステップ5でこの宛先コン
テクストが受信バッファ管理装置4の管理テーブル40
1に登録されているかどうかを判定する。登録されてい
れば、管理テーブル401からこの宛先コンテクストに
対応する、次に受信を期待する順序番号7を参照する。
入来してきたら、ステップ2でパケット入力装置1がデ
ータパケットかどうかを判定する。データパケットでな
ければ、ステップ201で制御用パケット処理装置5を
起動して、このパケットを処理する。データパケットで
あれば、ステップ3でデータパケット解析装置2がパケ
ットの宛先コンテクスト、順序番号、データ部の長さを
検出し、ステップ4でデータパケット解析装置2がヘッ
ダ部とデータ部を分離する。ステップ5でこの宛先コン
テクストが受信バッファ管理装置4の管理テーブル40
1に登録されているかどうかを判定する。登録されてい
れば、管理テーブル401からこの宛先コンテクストに
対応する、次に受信を期待する順序番号7を参照する。
【0027】ステップ6でこの順序番号7とパケットの
順序番号から、再送等による遅着パケットかどうかを判
定する。もし遅着パケットならば、ステップ601で二
重到着パケットでないかおよび遅着データ用メモリが入
力パケットのデータ部を格納するのに十分なメモリ残量
を持っているかどうかを判定し、二重到着でなくメモリ
残量が十分であれば、ステップ602でこのメモリへパ
ケットのデータ部を格納し、ステップ10で管理テーブ
ル401の遅着データ用メモリに関する管理情報を更新
する。
順序番号から、再送等による遅着パケットかどうかを判
定する。もし遅着パケットならば、ステップ601で二
重到着パケットでないかおよび遅着データ用メモリが入
力パケットのデータ部を格納するのに十分なメモリ残量
を持っているかどうかを判定し、二重到着でなくメモリ
残量が十分であれば、ステップ602でこのメモリへパ
ケットのデータ部を格納し、ステップ10で管理テーブ
ル401の遅着データ用メモリに関する管理情報を更新
する。
【0028】遅着パケットでなければ、ステップ7で早
着パケットかどうかを判定する。ここで早着パケットと
は次に受信を期待するパケットの順序番号よりも大きい
順序番号を持つパケットを意味する。早着パケットであ
れば、ステップ801で次の正常データ用メモリが使用
中かどうかを判定する。ここで「次」とは巡回序数によ
る。例えば正常データ用メモリが4つあれば、4番目の
正常データ用メモリの「次」は1番目の正常データ用メ
モリである。これ以降、「次のメモリ」という記述はこ
のようなことを指す。使用中でなければ、ステップ80
2でこの「次の正常データ用メモリ」に書き込み許可を
移し、ステップ803でこのメモリにデータを格納し、
ステップ10で管理テーブル401の管理情報を更新す
る。ステップ801の判定の結果、使用中であれば、ス
テップ80101で書き込み許可を無効にして、ステッ
プ10で管理テーブル401の管理情報を更新する。
着パケットかどうかを判定する。ここで早着パケットと
は次に受信を期待するパケットの順序番号よりも大きい
順序番号を持つパケットを意味する。早着パケットであ
れば、ステップ801で次の正常データ用メモリが使用
中かどうかを判定する。ここで「次」とは巡回序数によ
る。例えば正常データ用メモリが4つあれば、4番目の
正常データ用メモリの「次」は1番目の正常データ用メ
モリである。これ以降、「次のメモリ」という記述はこ
のようなことを指す。使用中でなければ、ステップ80
2でこの「次の正常データ用メモリ」に書き込み許可を
移し、ステップ803でこのメモリにデータを格納し、
ステップ10で管理テーブル401の管理情報を更新す
る。ステップ801の判定の結果、使用中であれば、ス
テップ80101で書き込み許可を無効にして、ステッ
プ10で管理テーブル401の管理情報を更新する。
【0029】遅着でも早着でもなければ、ステップ8で
書き込み許可を与えられている正常データ用メモリがデ
ータを格納するのに十分なメモリ容量を持っているかを
判定し、メモリ容量が十分であれば、ステップ9でその
まま格納して、ステップ10で管理テーブルを更新す
る。メモリ容量が十分でなければ、ステップ801以降
の処理を行う。
書き込み許可を与えられている正常データ用メモリがデ
ータを格納するのに十分なメモリ容量を持っているかを
判定し、メモリ容量が十分であれば、ステップ9でその
まま格納して、ステップ10で管理テーブルを更新す
る。メモリ容量が十分でなければ、ステップ801以降
の処理を行う。
【0030】(図4)は本実施例に基づくバッファ管理
の具体例である。(図4)で16はコンテクスト3に関
連付けられているメモリブロックであり、1601から
1604はこのメモリブロック内の正常データ用メモリ
である。1605は遅着データ用メモリである。170
1から1704は各メモリ内にある1パケット分のデー
タ部を表し、各データ部の右端に書かれている数字はこ
のデータ部の順序番号である。18はこのコンテクスト
に対する管理情報テーブルである。今、書き込み許可は
1602に与えられ、1602のメモリ残量は200、
次に到着を期待するデータの順序番号は301である。
19は入来して、データパケット解析装置2により、コ
ンテクスト3宛てであることが認識されたデータパケッ
トのデータ部である。19はその順序番号とデータ長に
よって、どのメモリに格納されるかが決まる。(1)順
序番号が301でデータ長が200以下の時は1602
へ格納される。(2)順序番号が301だが、データ長
が201以上かまたは順序番号が302以上(早着)の
時は1603に格納され、書き込み許可が1603へ移
動する。(3)順序番号が301以下(遅着)の時は二
重到着かどうかがチェックされ、1605へ格納され
る。
の具体例である。(図4)で16はコンテクスト3に関
連付けられているメモリブロックであり、1601から
1604はこのメモリブロック内の正常データ用メモリ
である。1605は遅着データ用メモリである。170
1から1704は各メモリ内にある1パケット分のデー
タ部を表し、各データ部の右端に書かれている数字はこ
のデータ部の順序番号である。18はこのコンテクスト
に対する管理情報テーブルである。今、書き込み許可は
1602に与えられ、1602のメモリ残量は200、
次に到着を期待するデータの順序番号は301である。
19は入来して、データパケット解析装置2により、コ
ンテクスト3宛てであることが認識されたデータパケッ
トのデータ部である。19はその順序番号とデータ長に
よって、どのメモリに格納されるかが決まる。(1)順
序番号が301でデータ長が200以下の時は1602
へ格納される。(2)順序番号が301だが、データ長
が201以上かまたは順序番号が302以上(早着)の
時は1603に格納され、書き込み許可が1603へ移
動する。(3)順序番号が301以下(遅着)の時は二
重到着かどうかがチェックされ、1605へ格納され
る。
【0031】このように本実施例によれば、順序通りの
パケットのデータは受信バッファ3内の正常データ用メ
モリへ物理的に整列して格納されるので、データ配信装
置6によって受信バッファ3のデータをホストへ配信す
るときのメモリ・アクセス時間を短縮できる。また遅着
データのみをキューで管理するので検索や挿入にともな
う負荷を軽減することが可能である。また、早着パケッ
トならば、正常データ用メモリを切り替えてデータ部を
格納し、遅着パケットならば遅着データ用メモリへデー
タ部を格納するという単純なアルゴリズムを用いている
ので、管理テーブルを参照する際の負荷が少ない。
パケットのデータは受信バッファ3内の正常データ用メ
モリへ物理的に整列して格納されるので、データ配信装
置6によって受信バッファ3のデータをホストへ配信す
るときのメモリ・アクセス時間を短縮できる。また遅着
データのみをキューで管理するので検索や挿入にともな
う負荷を軽減することが可能である。また、早着パケッ
トならば、正常データ用メモリを切り替えてデータ部を
格納し、遅着パケットならば遅着データ用メモリへデー
タ部を格納するという単純なアルゴリズムを用いている
ので、管理テーブルを参照する際の負荷が少ない。
【0032】つぎに本発明の第2の実施例について(図
5)、(図6)および(図7)を参照しながら説明す
る。なお、(図1)に示して説明した構成については同
じ構成を用いるので、その詳細な説明は省略する。
5)、(図6)および(図7)を参照しながら説明す
る。なお、(図1)に示して説明した構成については同
じ構成を用いるので、その詳細な説明は省略する。
【0033】本実施例では、前述の第1の実施例と管理
テーブル401に記載される情報が異なるので、それに
ついて(図5)を参照しながら詳しく説明する。(図
5)は管理テーブル401の一つのメモリブロックに対
する記載事項を表す。(図5)で7は次に受信を期待す
る順序番号である。20は次に受信を期待する順序番号
7と連続する順序番号のデータを最後尾に格納している
メモリの管理情報へのポインタである。2101は受信
バッファ管理装置4が第1の正常データ用メモリとして
管理しているメモリのメモリ番号を示し、2102、2
103はそれぞれ2101で示されるメモリの最初と最
後に含まれるデータの順序番号を示す。2201から2
204、2301から2304および2401以降はそ
れぞれ第2、第3および第4以降のメモリに関する管理
情報であり、2101から2104と同様である。
テーブル401に記載される情報が異なるので、それに
ついて(図5)を参照しながら詳しく説明する。(図
5)は管理テーブル401の一つのメモリブロックに対
する記載事項を表す。(図5)で7は次に受信を期待す
る順序番号である。20は次に受信を期待する順序番号
7と連続する順序番号のデータを最後尾に格納している
メモリの管理情報へのポインタである。2101は受信
バッファ管理装置4が第1の正常データ用メモリとして
管理しているメモリのメモリ番号を示し、2102、2
103はそれぞれ2101で示されるメモリの最初と最
後に含まれるデータの順序番号を示す。2201から2
204、2301から2304および2401以降はそ
れぞれ第2、第3および第4以降のメモリに関する管理
情報であり、2101から2104と同様である。
【0034】(図6)は本実施例のバッファ管理方法に
対するフローチャートであるが、これは、第1の実施例
において(図4)で示して説明したフローチャートとス
テップ6以降だけが異なる。ステップ6で対応するコン
テクストに関連する管理テーブル401の管理情報を参
照して、到着したデータパケットの順序番号が次に期待
するパケットの順序番号7と一致するかどうかを判定す
る。一致するならば、管理テーブル401のポインタ2
0から、次に期待する順序番号7を期待しているメモリ
の管理情報を見て、ステップ7でそのメモリが入来した
データパケットのデータ部を格納するに十分なメモリ残
量を有しているかどうかを判定する。メモリ残量が十分
であれば、ステップ8でそのメモリへデータ部を格納
し、ステップ9で管理テーブルを更新する。
対するフローチャートであるが、これは、第1の実施例
において(図4)で示して説明したフローチャートとス
テップ6以降だけが異なる。ステップ6で対応するコン
テクストに関連する管理テーブル401の管理情報を参
照して、到着したデータパケットの順序番号が次に期待
するパケットの順序番号7と一致するかどうかを判定す
る。一致するならば、管理テーブル401のポインタ2
0から、次に期待する順序番号7を期待しているメモリ
の管理情報を見て、ステップ7でそのメモリが入来した
データパケットのデータ部を格納するに十分なメモリ残
量を有しているかどうかを判定する。メモリ残量が十分
であれば、ステップ8でそのメモリへデータ部を格納
し、ステップ9で管理テーブルを更新する。
【0035】ステップ6で次に期待する順序番号7とデ
ータパケットの順序番号が一致しなかった場合は、ポイ
ンタ20で指し示されているメモリ以外のメモリ管理情
報のうち最後の順序番号を参照していき、ステップ60
1で、入来したデータパケットの順序番号と連続するも
のがあるかどうかを判定する。そのようなメモリがなけ
れば、ステップ60101で二重到着かどうかを判定
し、二重到着でなければ、ステップ701で空のメモリ
があるかどうかを判定する。空のメモリがあれば、ステ
ップ702でそのメモリへデータ部を格納する。
ータパケットの順序番号が一致しなかった場合は、ポイ
ンタ20で指し示されているメモリ以外のメモリ管理情
報のうち最後の順序番号を参照していき、ステップ60
1で、入来したデータパケットの順序番号と連続するも
のがあるかどうかを判定する。そのようなメモリがなけ
れば、ステップ60101で二重到着かどうかを判定
し、二重到着でなければ、ステップ701で空のメモリ
があるかどうかを判定する。空のメモリがあれば、ステ
ップ702でそのメモリへデータ部を格納する。
【0036】ポインタ20で指し示されているメモリ以
外のメモリ管理情報のうち最後の順序番号を参照した結
果、ステップ601で、入来したデータパケットの順序
番号と連続するものがあると判定されたならば、ステッ
プ602でそのメモリがデータ部を格納するのに十分な
メモリ残量を有しているかどうかを判定し、メモリ残量
が十分であれば、ステップ603でそのメモリへ、デー
タ部を格納し、ステップ9で管理テーブルを更新する。
ステップ602とステップ7でそれぞれのメモリが十分
なメモリ残量を持っていないと判定されたならば、ステ
ップ701以降の処理を行なう。
外のメモリ管理情報のうち最後の順序番号を参照した結
果、ステップ601で、入来したデータパケットの順序
番号と連続するものがあると判定されたならば、ステッ
プ602でそのメモリがデータ部を格納するのに十分な
メモリ残量を有しているかどうかを判定し、メモリ残量
が十分であれば、ステップ603でそのメモリへ、デー
タ部を格納し、ステップ9で管理テーブルを更新する。
ステップ602とステップ7でそれぞれのメモリが十分
なメモリ残量を持っていないと判定されたならば、ステ
ップ701以降の処理を行なう。
【0037】(図7)は本実施例に基づくバッファ管理
の具体例である。(図7)で25はコンテクスト2に関
連付けられているメモリブロックであり、2501から
2504はこのメモリブロック内の第1から第4のメモ
リである。2601から2604は各メモリ内にある1
パケット分のデータ部を表し、各データ部の右端に書か
れている数字はこのデータ部の順序番号である。27は
このコンテクストに対する管理情報テーブルである。
今、次に受信を期待する順序番号は301であり、この
順序番号を期待するメモリはメモリ2502である。メ
モリ2502のメモリ残量は200である。28は入来
して、データパケット解析装置2により、コンテクスト
2宛てであることが認識されたパケットのデータ部であ
る。28はその順序番号とデータ長によって、どのメモ
リに格納されるかが決まる。(1)順序番号が301で
データ長が200以下の時はメモリ2502へ格納され
る。(2)順序番号が301だが、データ長が201以
上かまたは順序番号が302以上(早着)の時は250
3に格納される。(3)順序番号が301以下(遅着)
の時は二重到着かどうかがチェックされ、二重到着でな
ければ2503へ格納される。
の具体例である。(図7)で25はコンテクスト2に関
連付けられているメモリブロックであり、2501から
2504はこのメモリブロック内の第1から第4のメモ
リである。2601から2604は各メモリ内にある1
パケット分のデータ部を表し、各データ部の右端に書か
れている数字はこのデータ部の順序番号である。27は
このコンテクストに対する管理情報テーブルである。
今、次に受信を期待する順序番号は301であり、この
順序番号を期待するメモリはメモリ2502である。メ
モリ2502のメモリ残量は200である。28は入来
して、データパケット解析装置2により、コンテクスト
2宛てであることが認識されたパケットのデータ部であ
る。28はその順序番号とデータ長によって、どのメモ
リに格納されるかが決まる。(1)順序番号が301で
データ長が200以下の時はメモリ2502へ格納され
る。(2)順序番号が301だが、データ長が201以
上かまたは順序番号が302以上(早着)の時は250
3に格納される。(3)順序番号が301以下(遅着)
の時は二重到着かどうかがチェックされ、二重到着でな
ければ2503へ格納される。
【0038】このように本実施例によれば、すべてのデ
ータパケットのデータ部を物理的に順序番号通りに整列
して受信バッファ3の各メモリへ格納することができる
ので、第1の実施例と同様にデータ配信装置6によって
受信バッファ3のデータをホストへ配信するときのメモ
リ・アクセス時間を短縮できる。また、メモリをキュー
で管理する必要がなく、キューの検索や挿入にともなう
負荷をなくすことができる。しかし、第1の実施例と比
べて、入来した順序通りでないデータパケットのデータ
部を格納するメモリを選択する際に、管理テーブル40
1を参照してからデータを格納するために、これによる
負荷は第1の実施例と比較すると大きくなっている。
ータパケットのデータ部を物理的に順序番号通りに整列
して受信バッファ3の各メモリへ格納することができる
ので、第1の実施例と同様にデータ配信装置6によって
受信バッファ3のデータをホストへ配信するときのメモ
リ・アクセス時間を短縮できる。また、メモリをキュー
で管理する必要がなく、キューの検索や挿入にともなう
負荷をなくすことができる。しかし、第1の実施例と比
べて、入来した順序通りでないデータパケットのデータ
部を格納するメモリを選択する際に、管理テーブル40
1を参照してからデータを格納するために、これによる
負荷は第1の実施例と比較すると大きくなっている。
【0039】つぎに本発明の第3の実施例について(図
8)を参照しながら説明する。なお、(図1)に示して
説明した構成については同じ構成を用いるので、その詳
細な説明は省略する。また本実施例における管理テーブ
ル401の登録事項は実施例1で(図2)に示して説明
した事項と同一であるので、その説明も省略する。(図
8)は本実施例のバッファ管理方法を示すフローチャー
トである。(図8)は第1の実施例における(図3)の
フローチャートと、ステップ10以降が異なる。
8)を参照しながら説明する。なお、(図1)に示して
説明した構成については同じ構成を用いるので、その詳
細な説明は省略する。また本実施例における管理テーブ
ル401の登録事項は実施例1で(図2)に示して説明
した事項と同一であるので、その説明も省略する。(図
8)は本実施例のバッファ管理方法を示すフローチャー
トである。(図8)は第1の実施例における(図3)の
フローチャートと、ステップ10以降が異なる。
【0040】ステップ9およびステップ803でメモリ
へデータを格納した後、ステップ10で入来したデータ
パケットが送信元メッセージの終わりに位置するかどう
かを判定する。メッセージの終わりに位置するならば、
ステップ1001で次の正常データ用メモリが使用中で
あるかどうかを判定し、使用中であれば、ステップ10
0101で書き込み許可を無効にして、ステップ11で
管理テーブル401を更新する。使用中でなければ、ス
テップ1002で書き込み許可を次の正常データ用メモ
リに移して、ステップ11で管理テーブル401を更新
する。
へデータを格納した後、ステップ10で入来したデータ
パケットが送信元メッセージの終わりに位置するかどう
かを判定する。メッセージの終わりに位置するならば、
ステップ1001で次の正常データ用メモリが使用中で
あるかどうかを判定し、使用中であれば、ステップ10
0101で書き込み許可を無効にして、ステップ11で
管理テーブル401を更新する。使用中でなければ、ス
テップ1002で書き込み許可を次の正常データ用メモ
リに移して、ステップ11で管理テーブル401を更新
する。
【0041】このように、本実施例によれば、順序通り
に到着したパケットは送信元メッセージごとに各メモリ
へ格納される。これにより、ホストへデータを配信する
際、メモリごとに配信すればメッセージごとに配信した
こととなり、配信の高速化が図られる。この効果は1メ
ッセージ当りのデータ量が大きいほど高い。例えば、大
容量のファイル転送や、画像伝送等に大きな効果を発揮
する。
に到着したパケットは送信元メッセージごとに各メモリ
へ格納される。これにより、ホストへデータを配信する
際、メモリごとに配信すればメッセージごとに配信した
こととなり、配信の高速化が図られる。この効果は1メ
ッセージ当りのデータ量が大きいほど高い。例えば、大
容量のファイル転送や、画像伝送等に大きな効果を発揮
する。
【0042】つぎに本発明の第4の実施例について(図
9)および(図10)を参照しながら説明する。なお、
(図1)に示して説明した構成については同じ構成を用
いるので、その詳細な説明は省略する。
9)および(図10)を参照しながら説明する。なお、
(図1)に示して説明した構成については同じ構成を用
いるので、その詳細な説明は省略する。
【0043】本実施例では第2の実施例と管理テーブル
401に登録されている事項が一部異なる。これを(図
9)を用いて説明する。(図9)は第2の実施例の説明
で用いた(図5)と、各メモリに対するデータ格納不許
可フラグが追加された点だけが異なる。(図9)で21
05、2205、2305はそれぞれ、第1、第2、第
3のメモリの格納不許可フラグである。第4以降のメモ
リに対しても同様にこのフラグが設定される。このフラ
グが1にセットされているメモリにはこれ以上のデータ
を格納することができない。通常、このフラグが立って
いるメモリの最後には送信元メッセージの最後に位置す
るパケットのデータ部が格納されている。
401に登録されている事項が一部異なる。これを(図
9)を用いて説明する。(図9)は第2の実施例の説明
で用いた(図5)と、各メモリに対するデータ格納不許
可フラグが追加された点だけが異なる。(図9)で21
05、2205、2305はそれぞれ、第1、第2、第
3のメモリの格納不許可フラグである。第4以降のメモ
リに対しても同様にこのフラグが設定される。このフラ
グが1にセットされているメモリにはこれ以上のデータ
を格納することができない。通常、このフラグが立って
いるメモリの最後には送信元メッセージの最後に位置す
るパケットのデータ部が格納されている。
【0044】(図10)は本実施例のバッファ管理方法
を示すフローチャートである。(図10)は第2の実施
例における(図6)のフローチャートと、ステップ9以
降が異なる。ステップ8、ステップ702およびステッ
プ603でメモリへデータを格納した後、ステップ9で
入来したデータパケットが送信元メッセージの終わりに
位置するかどうかを判定する。メッセージの終わりに位
置するならば、ステップ901でデータを格納したメモ
リの格納不許可フラグを立て、これ以上のデータがその
メモリに格納されないようにする。その後、ステップ1
0で管理テーブル401の管理情報を更新する。特に、
格納不許可フラグを立てたメモリが(図9)のポインタ
20で指しているメモリと同じメモリであれば、ステッ
プ10の管理情報の更新の中で、ポインタ20をデータ
を格納していない空のメモリへ移す。
を示すフローチャートである。(図10)は第2の実施
例における(図6)のフローチャートと、ステップ9以
降が異なる。ステップ8、ステップ702およびステッ
プ603でメモリへデータを格納した後、ステップ9で
入来したデータパケットが送信元メッセージの終わりに
位置するかどうかを判定する。メッセージの終わりに位
置するならば、ステップ901でデータを格納したメモ
リの格納不許可フラグを立て、これ以上のデータがその
メモリに格納されないようにする。その後、ステップ1
0で管理テーブル401の管理情報を更新する。特に、
格納不許可フラグを立てたメモリが(図9)のポインタ
20で指しているメモリと同じメモリであれば、ステッ
プ10の管理情報の更新の中で、ポインタ20をデータ
を格納していない空のメモリへ移す。
【0045】本実施例は、第2の実施例と第4の実施例
の効果を併せた効果を有する。すなわち、入来したデー
タパケットのデータ部が受信バッファ内のメモリへ物理
的に整列し、かつ、各メモリが各送信元メッセージの1
メッセージ分を格納することができる。このため、パケ
ットの順序違い到着による検索、挿入の負荷がなくな
り、さらに、メッセージごとにホストへ配信することが
できるため、ホスト配信時間の高速化が図れる。しか
し、入来したデータパケットのデータ部を挿入するメモ
リを選択する際のアルゴリズムが第2の実施例に比べて
も複雑になっており、その負荷は増えている。
の効果を併せた効果を有する。すなわち、入来したデー
タパケットのデータ部が受信バッファ内のメモリへ物理
的に整列し、かつ、各メモリが各送信元メッセージの1
メッセージ分を格納することができる。このため、パケ
ットの順序違い到着による検索、挿入の負荷がなくな
り、さらに、メッセージごとにホストへ配信することが
できるため、ホスト配信時間の高速化が図れる。しか
し、入来したデータパケットのデータ部を挿入するメモ
リを選択する際のアルゴリズムが第2の実施例に比べて
も複雑になっており、その負荷は増えている。
【0046】
【発明の効果】以上説明した通り本発明によれば、順序
通りのパケットを整列してバッファへ格納することで、
ホストへデータを配信する際のメモリ・アクセス時間を
短縮できる。またキューによる管理を極力なくしている
ので、順序番号の検索や挿入にともなう負荷を軽減する
ことができる。
通りのパケットを整列してバッファへ格納することで、
ホストへデータを配信する際のメモリ・アクセス時間を
短縮できる。またキューによる管理を極力なくしている
ので、順序番号の検索や挿入にともなう負荷を軽減する
ことができる。
【0047】この効果は接続しているネットワークの信
頼性が高いほど大きい。信頼性が高いと、到着したパケ
ットはほとんど順序通りであり、順序違いのパケットに
対して行われる処理をほとんどする必要がなくなる。
頼性が高いほど大きい。信頼性が高いと、到着したパケ
ットはほとんど順序通りであり、順序違いのパケットに
対して行われる処理をほとんどする必要がなくなる。
【図1】本発明の一実施例のバッファ管理方法を使用す
る受信装置の要部の構成を示すブロック図
る受信装置の要部の構成を示すブロック図
【図2】同実施例の管理テーブルの説明図
【図3】同実施例の管理方法を表すフローチャート
【図4】同実施例の具体例の説明図
【図5】同第2の実施例の管理テーブルの説明図
【図6】同実施例の管理方法を表すフローチャート
【図7】同実施例の具体例の説明図
【図8】同第3の実施例の管理方法を表すフローチャー
ト
ト
【図9】同第4の実施例の管理テーブルの説明図
【図10】同実施例の管理方法を表すフローチャート
【図11】従来例のバッファ管理方法の説明図
1 パケット入力装置 2 データパケット解析装置 3 受信バッファ 301〜30n 受信バッファ中のメモリ 4 受信バッファ管理装置 401 管理テーブル 5 制御用パケット処理装置 6 データ配信装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 寺島 理江子 大阪府門真市大字門真1006番地 松下電 器産業株式会社内 (56)参考文献 特開 昭61−172461(JP,A) 特開 平3−126346(JP,A) 特開 昭63−46032(JP,A) 特開 昭62−177647(JP,A) (58)調査した分野(Int.Cl.7,DB名) H04L 12/56 H04L 12/28 H04L 13/08
Claims (4)
- 【請求項1】 順序番号を有するパケットを交換する通
信システムの受信装置において、 前記受信装置は、データパケット解析装置と、受信バッ
ファと、前記受信バッファを管理する受信バッファ管理
装置とを有し、 前記データパケット解析装置は、入来したデータパケッ
トの送受信者を規定するコンテクストと前記データパケ
ットの順序番号をと認識し、前記データパケットのデー
タ部とヘッダ部とを分離し、 前記受信バッファは、前記データ部を格納する複数のメ
モリを有し、 前記受信バッファ管理装置は、前記受信バッファを、そ
れぞれ複数の前記各メモリを含むいくつかのメモリブロ
ックに分け、一つの前記メモリブロックを一つの前記コ
ンテクストと関連付け、一つの前記メモリブロックの中
の前記各メモリ内に含まれているデータを管理し、 前記データパケットが順序通りに到着している間は、前
記データパケットの前記コンテクストに対応する前記メ
モリブロック内の前記各メモリへ前記データパケットの
前記データ部を順序番号順に物理的に整列させて格納す
ることを特徴とする受信装置のバッファ管理方法。 - 【請求項2】 データパケット解析装置が、入来したデ
ータパケットのデータ部の長さを認識し、 受信バッファ管理装置が、受信バッファの中の前記受信
バッファ管理装置が管理している各メモリブロック内の
各メモリを一つの遅着データ用メモリと複数の正常デー
タ用メモリに分けて管理し、 前記メモリブロック内の前記各正常データ用メモリの中
でただ一つの前記正常データ用メモリに対して書き込み
許可が与えられ、 前記受信バッファ管理装置には、前記各メモリブロック
内の、前記遅着データ用メモリと前記各正常データ用メ
モリの管理情報が登録され、 入来した前記データパケットの前記コンテクストに対応
する前記メモリブロックを検出し、前記データパケット
が、 1)順序通りに到着したとき、 前記メモリブロック内の前記書き込み許可をもつ第1の
正常データ用メモリが、 11)前記データ部を格納するに十分な容量を持ってい
るならば、前記第1の正常データ用メモリへ前記データ
部を格納し、 12)前記データ部を格納するに十分な容量を持ってい
ないならば、前記第1の正常データ用メモリとは別の第
2の正常データ用メモリへ前記書き込み許可を移し、前
記第2の正常データ用メモリへデータを格納し、 2)前記データパケットが、早着パケットならば、前記
第1の正常データ用メモリとは別の前記第2の正常デー
タ用メモリへ前記書き込み許可を移し、前記第2の正常
データ用メモリへデータを格納し、 3)前記データパケットが、遅着パケットならば、前記
遅着データ用メモリへ前記データ部を格納し、 いずれの場合も、前記受信バッファ管理装置が管理する
情報を更新することを特徴とする請求項1記載の受信装
置のバッファ管理方法。 - 【請求項3】 前記データパケット解析装置が、入来し
たデータパケットのデータ部の長さを認識し、 前記受信バッファ管理装置には、各メモリブロックの中
の、各メモリ内に含まれる最後のデータの順序番号が最
終順序番号として登録され、 入来した前記データパケットのコンテクストに対応する
前記メモリブロックを検出し、前記データパケットの順
序番号と前記受信バッファ管理装置に登録されている前
記メモリブロック内の前記各メモリの前記最終順序番号
を比較した結果、 1)前記メモリブロック内に、前記データパケットの順
序番号と連続する前記最終順序番号をもつメモリが存在
するとき、前記メモリを第1のメモリとしたとき、 前記第1のメモリが、 11)前記データ部を格納するに十分な容量を持ってい
るならば、前記第1のメモリへ前記データ部を格納し、 12)前記データ部を格納するに十分な容量を持ってい
ないならば、前記メモリブロック内の前記第1のメモリ
とは異なる、データを含んでいない第2のメモリへデー
タを格納し、 2)前記メモリブロック内に、前記データパケットの順
序番号と連続する前記最終順序番号を持つメモリが存在
しないならば、前記メモリブロック内のデータを含んで
いないメモリへ前記データ部を格納し、 いずれの場合も、前記受信バッファ管理装置が管理する
情報を更新することを特徴とする請求項1記載のバッフ
ァ管理方法。 - 【請求項4】データパケット解析装置が、入来したデー
タパケットが送信元メッセージの最後に位置するかどう
かを判定し、 入来した前記データパケットが対応するメモリブロック
内の第1の正常データ用メモリに格納され、かつ、前記
データパケットが送信元メッセージの最後に位置するな
らば、 前記データパケットを格納した前記第1の正常データ用
メモリとは別の第2の正常データ用メモリへ、書き込み
許可を移すことを特徴とする請求項2記載の受信装置の
バッファ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21714091A JP3198547B2 (ja) | 1991-08-28 | 1991-08-28 | 受信装置のバッファ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21714091A JP3198547B2 (ja) | 1991-08-28 | 1991-08-28 | 受信装置のバッファ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0556079A JPH0556079A (ja) | 1993-03-05 |
JP3198547B2 true JP3198547B2 (ja) | 2001-08-13 |
Family
ID=16699485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21714091A Expired - Fee Related JP3198547B2 (ja) | 1991-08-28 | 1991-08-28 | 受信装置のバッファ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3198547B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628369B2 (en) * | 2018-03-19 | 2020-04-21 | Toshiba Memory Corporation | Header improvements in packets accessing contiguous addresses |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5541995A (en) * | 1994-04-18 | 1996-07-30 | Apple Computer Inc. | Method and apparatus for decoding non-sequential data packets |
JP2000020327A (ja) * | 1998-06-26 | 2000-01-21 | Digital Vision Laboratories:Kk | 分散処理装置とその方法およびネットワークシステム |
JP3250532B2 (ja) | 1998-11-24 | 2002-01-28 | 日本電気株式会社 | データ送受信システム、データ受信装置、及びデータ受信方法 |
JP4559237B2 (ja) * | 2005-01-07 | 2010-10-06 | 株式会社エヌ・ティ・ティ・ドコモ | ルーティング方法及び移動端末 |
JP5393699B2 (ja) | 2008-12-19 | 2014-01-22 | パナソニック株式会社 | 送信端末及び受信端末 |
JP2011164755A (ja) * | 2010-02-05 | 2011-08-25 | Fujitsu Ltd | データ変換装置、データ変換方法及びプログラム |
-
1991
- 1991-08-28 JP JP21714091A patent/JP3198547B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628369B2 (en) * | 2018-03-19 | 2020-04-21 | Toshiba Memory Corporation | Header improvements in packets accessing contiguous addresses |
Also Published As
Publication number | Publication date |
---|---|
JPH0556079A (ja) | 1993-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6788671B2 (en) | Method and apparatus for managing the flow of data within a switching device | |
US7957288B2 (en) | Method and system of efficient packet reordering | |
US7813342B2 (en) | Method and apparatus for writing network packets into computer memory | |
EP1629644B1 (en) | Method and system for maintenance of packet order using caching | |
US5909440A (en) | High speed variable length best match look-up in a switching device | |
CA2274962C (en) | High speed variable length best match look-up in a switching device | |
US6775281B1 (en) | Method and apparatus for a four-way hash table | |
US6571313B1 (en) | Memory for information search through prefix analysis, in particular for building routing tables for nodes of high speed communication networks, such as the internet network | |
US5940597A (en) | Method and apparatus for periodically updating entries in a content addressable memory | |
WO2003067799A2 (en) | System and method for packet storage and retrieval | |
US20060174058A1 (en) | Recirculation buffer for semantic processor | |
US20030016689A1 (en) | Switch fabric with dual port memory emulation scheme | |
US20030121030A1 (en) | Method for implementing dual link list structure to enable fast link-list pointer updates | |
US7480308B1 (en) | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly | |
US6738838B2 (en) | Network switch having descriptor cache and method thereof | |
JP3198547B2 (ja) | 受信装置のバッファ管理方法 | |
US7113516B1 (en) | Transmit buffer with dynamic size queues | |
US7400623B2 (en) | Method and apparatus for managing medium access control (MAC) address | |
JPH09326807A (ja) | 共有セルメモリ型atm交換制御方法及び共有セルメモリ型atm交換スイッチ | |
US20050089013A1 (en) | Packet transfer path control apparatus and control program therefor | |
US6343289B1 (en) | Efficient search and organization of a forwarding database or the like | |
US20060165055A1 (en) | Method and apparatus for managing the flow of data within a switching device | |
US20050129014A1 (en) | Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof | |
US5144621A (en) | Common bus communication system with reduced interface memories | |
JPH07111507A (ja) | データ受信方式及び通信制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080615 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090615 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |