JPH06350648A - データ・パケットを貯蔵する方法及び装置 - Google Patents

データ・パケットを貯蔵する方法及び装置

Info

Publication number
JPH06350648A
JPH06350648A JP26200093A JP26200093A JPH06350648A JP H06350648 A JPH06350648 A JP H06350648A JP 26200093 A JP26200093 A JP 26200093A JP 26200093 A JP26200093 A JP 26200093A JP H06350648 A JPH06350648 A JP H06350648A
Authority
JP
Japan
Prior art keywords
buffer
size
buffers
packet
sequence
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.)
Granted
Application number
JP26200093A
Other languages
English (en)
Other versions
JP2504377B2 (ja
Inventor
Shu-Ping Chang
シュ−ピン・チャン
Ahmed N Tantawy
アーメド・ナスル−エル−ディン・タンタウィ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06350648A publication Critical patent/JPH06350648A/ja
Application granted granted Critical
Publication of JP2504377B2 publication Critical patent/JP2504377B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 バッファ・メモリの利用度とメモリ管理のオ
ーバヘッドとの間で妥当なバランスが保てるようにバッ
ファ・スペースを割り当てる。 【構成】 ネットワーキング装置は複数のバッファを有
する。各バッファはそれぞれのサイズを持っている。複
数のバッファはバッファの複数組に区分される。各組は
それぞれ異なるサイズのバッファを有する。バッファの
組の順序あるシーケンスが定められる。組の1つは順序
あるシーケンスの中の第一の組である。第一組からある
バッファが割り当てられる。データ・パケットの部分が
この割り当てられたバッファに貯蔵される。パケットの
サイズが割り当てられたバッファのサイズより大きいな
らばバッファ組のシーケンス順序に従って別のバッファ
組から次のバッファが割り当てられる。データ・パケッ
トの次の部分がもう一つのバッファに貯蔵されデータ・
パケット全体が受信されるまでこのステップが繰り返さ
れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】ネットワーキング装置(ND)は
ホスト・プロセッサから通信に関係する処理をダウンロ
ードするタスクのような通信タスクを行うためにコンピ
ュータ・ネットワークで用いられている。NDは複数ネ
ットワーク間またはホスト・プロセッサとホスト・プロ
セッサが接続されたネットワークとの間に介在される。
NDは処理装置およびメモリを有し通信に特有なタスク
を実行する。
【0002】ネットワーキング装置、例えばブリッジ、
ルータまたはホスト・ネットワーク・アダプタ等におい
て、データ・パケットは付属するネットワークから受け
取られてバッファに貯蔵される。その後、データ・パケ
ットは加盟している処理装置(NDにそのようなものが
含まれているときには)へ、また処理装置や他のネット
ワークに転送される。データ・パケットを転送する前に
データ・パケットを貯蔵しておくために特殊なバッファ
・メモリが使用される。
【0003】
【従来の技術】入来するパケットのためにバッファ・ス
ペースを割り当て、関係するパケットが転送された後そ
のスペースを解放するために幾つかの方法が用いられて
きた。概略を述べると、メモリ管理作業を簡単にするた
めバッファ・メモリ全体が所定サイズの複数のバッファ
に区分される。2バッファ・メモリ管理方法が広く用い
られてきた。
【0004】第一の方法は単一のサイズのバッファを使
用する。パケットを貯蔵するのに用いられるバッファの
個数は所定の最大数に制限される。あるシステムではデ
ータ・パケット全体を貯蔵するのに1つのバッファが使
用されるが、他のシステムではパケットを貯蔵するのに
複数のバッファが使用される。単一のバッファが使用さ
れる場合にはNDによって受信されるいかなるパケット
をも受容できるのに十分な大きさのサイズが必要であ
る。単一バッファ割り当て方式は非常に簡単であるが
(各パケットに1つのバッファが割り当てられる)、バ
ッファ・メモリの利用度は極めて非効率的である。パケ
ットのサイズが変動する場合にこのことは特にそうであ
る。
【0005】他方、メモリ利用度が低いという問題を克
服するためにバッファ・メモリが小バッファに区分さ
れ、各パケットがパケット全体を受容するのに必要とさ
れる個数のバッファに貯蔵されることもある。しかしな
がら、所与のパケットに対して用いられるバッファ全部
が何らかの形でリンクされてパケットが全体として転送
されるときにパケットを取り出すことができるようにす
る必要があるため、このやりかたはバッファ・メモリ管
理方式を一層複雑にする。
【0006】第二の方法は複数の異なるサイズのバッフ
ァを使用する。バッファ・メモリはそれぞれ所与のサイ
ズを有するバッファの複数の組に区分けされる。各デー
タ・パケットはそのパケットを受容するのに十分な大き
さの単一のバッファに貯蔵される。それぞれの異なる組
は異なるサイズのバッファを有する。しかしながら、こ
の方法は受信データ・パケットの長さがそのヘッダーで
与えられないときには余分な複雑さをもたらす。その場
合、一時貯蔵装置にパケット全体が受け取られてその全
体サイズが判明するまで適切なバッファ・プールを選択
することができない。このことはパケットをバッファに
貯蔵するのに必要な時間を長くする。
【0007】ネットワーキング装置内部のバッファ・メ
モリ割り当て方式はシステムのスループットおよび利用
度に影響を与える重要な因子である。より正確に述べる
と、ND内のバッファ・メモリはバッファ・メモリ管理
装置(例えば加盟している汎用プロセッサまたは特定用
途プロセッサ)によって管理される。バッファの各割り
当ては管理上のオーバヘッドを生じる。バッファ・スペ
ースの割り当てはNDのプロセッサにとって実行するの
に比較的時間を要するプロセスである。割り当てプロセ
スはメモリ管理作業(例えばパケットが受信されるとき
およびパケットが伝送後解放されるときの待ちの管理)
にとってデータ・パケット当たり多くのクロック・サイ
クルを必要とすることがある。さらに受信された1つの
パケットに対して複数のバッファが割り当てられるとき
には、バッファ・メモリ管理装置によって単位時間当た
りに取り扱われるバッファの数に制限があるため、管理
のオーバヘッドも大きくなりシステムのスループットも
損なわれる。
【0008】従来のシステムにおいて、管理のオーバヘ
ッドを低減するために各パケット当たり1つのバッファ
を使用してオーバヘッドを最小にするようにしてきた。
しかしながら、1つのパケットを1つのバッファに受け
入れるためにはバッファのサイズは受信する可能性のあ
る最大のパケットのサイズであることが必要となる。例
えばファイバー配信型のデータ・インタフェース(FD
DI)については4500バイトのバッファが必要とな
る筈である。この場合、所与の環境で小さなパケットが
受信または送信される可能性が高いときにはバッファ・
メモリの実際の利用度は非常に低くなる。NDがバッフ
ァを使い尽くした後NDは更に受信するパケットを貯蔵
することができなくなるのでこのことは問題である。こ
の後のパケットは、たとえバッファ・メモリが未使用ス
ペースを大量に持っていたとしてもその後失われる。
【0009】
【発明が解決しようとする課題】従ってバッファ・メモ
リの利用度とメモリ管理のオーバヘッドとの間で妥当な
バランスが保てるようにバッファ・スペースを割り当て
ることが望まれる。
【0010】
【課題を解決するための手段】本発明はネットワーキン
グ装置においてデータ・パケットを貯蔵するための方法
及び装置において実施される。ネットワーキング装置は
複数のバッファを有する。各バッファはそれぞれのサイ
ズを持っている。
【0011】複数のバッファはバッファの複数組に区分
される。各組はそれぞれ異なるサイズのバッファを有す
る。バッファの組の順序あるシーケンスが定められる。
組の1つは順序あるシーケンスの中の第一の組である。
第一組からあるバッファが割り当てられる。データ・パ
ケットの部分がこの割り当てられたバッファに貯蔵され
る。
【0012】パケットのサイズが割り当てられたバッフ
ァのサイズより大きいならばバッファ組のシーケンス順
序に従って別のバッファ組から次のバッファが割り当て
られる。データ・パケットの次の部分がもう一つのバッ
ファに貯蔵されデータ・パケット全体が受信されるまで
このステップが繰り返される。
【0013】
【実施例】本発明はバッファ・メモリ10(図2に詳細
に示される)を有するネットワーキング装置90(図1
に示される)において実施される。本発明の一面によれ
ばバッファ・メモリ10中の使用可能なスペースはそれ
ぞれのバッファ14、18、24、28、および34の
組12、16、22、26、32に区分される。各組の
中のバッファは互いに同じサイズを有する。各組におけ
るバッファのサイズは何れの他の組のバッファのサイズ
とも異なっている。入来データ・パケットをすべて貯蔵
するようにバッファを割り当てるためにバッファ組の所
定の固定された順序あるシーケンスが用いられる。
【0014】本発明のもう一つの面によれば各パケット
のデータの第一部分がバッファ組のシーケンス中の第一
サイズに等しいサイズの(第一の)割り当てられたバッ
ファ(例えばバッファ14)に貯蔵される。データ・パ
ケットのサイズが割り当てられたバッファのサイズに等
しいかまたはこれより小であるならばこの第一部分のサ
イズはパケットのサイズに等しくされる(パケット全体
が割り当てられたバッファに貯蔵される)。そうでなけ
れば第一部分のサイズが割り当てられたバッファのサイ
ズに等しくされる。
【0015】所与のパケットを貯蔵するのに用いられる
バッファのすべてを予め割り当てる必要はない。パケッ
トが(第1の)割り当てられたバッファよりも大きいと
きにはこの割り当てられたバッファが充満すると直ちに
このパケットを貯蔵するために第2のバッファが割り当
てられる。第2のバッファのサイズはバッファ組のシー
ケンス中の2番目のサイズに等しい。残りのデータのサ
イズ(全データ・パケットから第1部分のサイズを差し
引いたもの)が割り当てられた第2のバッファのサイズ
よりも小さいときには第2部分なサイズはデータの残余
部分と等しくされる。そうでなければ第2部分のサイズ
は割り当てられた第2のバッファのサイズに等しい。第
2バッファが一旦割り当てられるとND90はデータを
第2バッファにに貯蔵し始める。
【0016】パケットが割り当てられた第1及び第2の
バッファの組み合わせのサイズを依然超過するならば、
第2のバッファが充満されると直ちに第3のバッファ
(例えばバッファ28)が割り当てられる。この第3バ
ッファのサイズはバッファ組のシーケンス中の3番目の
サイズと同じ大きさである。パケットの次の部分はこの
第3部分に貯蔵される。この手順はパケット全体がバッ
ファ・メモリに貯蔵されるまで繰り返される。
【0017】バッファの異なる組におけるバッファのサ
イズおよびバッファ組の所定順序のシーケンスはシステ
ムの特定の動作環境に対して観測されまたは予期される
トラッフィクを基準として割り当てられる。
【0018】本発明は図1に示された如きネットワーキ
ング装置(ND)90においてデータ・パケットを貯蔵
するための方法及び装置において実施される。データは
少なくとも1つのネットワーク・インタフェース40a
を介して受信され、あるいは複数のネットワーク・イン
タフェース40a−40nから受信されることもある。
ネットワーク・インタフェースはND90を複数のネッ
トワーク50a−50n(これらはFDDIプロトコ
ル、イサーネット(登録商標)またはトークン・リング
を使用することもある)に結合する。データはまたホス
ト・システム70aに結合されたホスト・インタフェー
ス60aを経由して受信されることもある。例えばホス
ト・インタフェース60aはマイクロチャネル・バスで
あっても良い。また、オプションとして、複数のホスト
・システム70a−70nに結合された複数のホスト・
インタフェース60a−60nを経由して受信されても
良い。
【0019】データはバッファ・メモリ10内に貯蔵さ
れる。これらのデータにはネットワーク50aへの伝送
を待機しているパケット、伝送されたがまだ受信確認さ
れていないパケットおよび受信されたが完全に処理され
おらずその宛先にまだ伝送されていないパケットが含ま
れる。パケットが一旦貯蔵されるとバッファ・メモリ1
0中のデータはホスト・システム70aまたは他のネッ
トワーク50nに伝送される。データはまたホスト70
aからも受信され、バッファ・メモリ10に貯蔵され、
そしてネットワーク50aに送出されまたはホスト・シ
ステム70に返送される。
【0020】ND90で実行されるすべてのソフトウエ
アを稼働させるためにND90内部に処理装置80が存
在していても良い。この処理装置80は、Intel8
0368プロセッサや80960プロセッサのような汎
用マイクロプロセッサ、、ディジタル信号処理装置(D
SP)または特別設計の処理装置であって良い。処理装
置80は、ネットワーク50a−50n、ホスト・シス
テム70a−70nまたは他のデータ源等の可能なすべ
てのパケット発生源からデータ・パケットおよび制御メ
ッセージを受け取る。処理装置80は、ネットワーク5
0aまたはホスト・システム70a等の少なくとも1つ
の指定宛先に少なくとも1つのパケットまたは制御メッ
セージを伝送することによって応答する。
【0021】ND90内では内部接続機能要素30(デ
ータ・バス、スイッチ、等の任意の同等の接続装置であ
って良い)が、処理装置80、バッファ・メモリ10、
バッファ・メモリ管理装置20、ネットワーク・インタ
フェース40a−40nおよびホスト・システム・イン
タフェース60a−60nの間でデータ通路を与える。
ネットワーキング装置90によって受信されたデータ・
パケットはその宛先にこれを送信する前にまたはこれを
棄却する前にバッファ・メモリ10内の1または複数の
バッファ14、18、24、28及び34に貯蔵され
る。
【0022】メモリ・スペース利用度とバッファ管理の
オーバヘッドとの所望のバランスをとるため、バッファ
・メモリ10は少なくとも2つ、そしてもし可能ならば
異なるサイズのバッファの複数組12、16、22、2
6、32に区分される。図2はバッファ・メモリの区分
けを示す。それぞれの組12、16、22、26、32
内のバッファはそれぞれ同じサイズを有する。バッファ
組(またはバッファ組標識)の所定のシーケンスが組の
中の空バッファにデータを貯蔵するときにバッファ割り
当てのために用いられる。各バッファ組に対するバッフ
ァ・サイズの決定はND90が設置されるネットワーク
50a−50nについての作業環境の下で経験的に観測
されるパケット・サイズに基づく。ネットワークのトラ
ッフィックを監視することによりパケット・サイズに対
する確率分布関数が得られる。この分布関数は典型的に
は背景となるネットワークおよび使用されるプロトコル
によって決まる多モード関数である。
【0023】この経験による情報は所望のバッファ・サ
イズおよびバッファ割り当てシーケンスを決めるために
用いられる。複数のネットワーク50a−50nに接続
されたND90においては、それらの特性が相互に非常
に異なっているときには所定のバッファ割り当てシーケ
ンスは接続された各ネットワーク毎に作り込まれる。ネ
ットワークの特性が相互に非常に異なっているときに
は、ネットワーク装置90全体の受信パケット・サイズ
の確率分布関数を用いる代わりに、接続された個々のネ
ットワーク50a−50nについての受信パケット・サ
イズの確率分布関数がそれぞれのネットワーク・インタ
フェース40a−40nについてにシーケンスを決定す
るのに用いられる。
【0024】図2は本発明の実施例に使用するのに適す
る例示的バッファ・メモリ10を示す。バッファ・メモ
リ10はそれぞれのバッファ組12、16、22、2
6、32に割り当てられる5つの異なるサイズのバッフ
ァ14、18、24、28、34を有する。各組12、
16、22、26、32内のバッファ14、18、2
4、28、34は同じ組内の他のバッファと同じサイズ
を有する。各組(例えばくみ12)には他のすべての組
16、22、26、32内のバッファのサイズとは異な
るサイズのバッファが含まれる。例えば組12は128
バイトのバッファ14、組16は256バイトのバッフ
ァ18、組22は512バイトのバッファ24、組26
は1024バイトのバッファ28、そして組32は20
48バイトのバッファ34を含むことができる。
【0025】所定のバッファ割り当てシーケンスはバッ
ファ組の順序リストの形を取る。例えばシーケンスは1
2、32、16、32、12のごとくである。このシー
ケンスはバッファ・メモリ管理装置20内のアレイに貯
蔵されうる。シーケンスの値は所与パケットを貯蔵する
ためにそこから順次にバッファを割り当て得る組を表
す。任意のバッファ組がシーケンス中で1回以上含まれ
て良い。
【0026】図3は本発明に従ってデータを貯蔵する方
法を示すフローダイアグラムである。ステップ100に
おいて、ND90はデータ・パケットの受信に備える。
ステップ108において、接続されたネットワーク50
aからネットワーク・インタフェース40aによってデ
ータ・パケットが受信される。ステップ112におい
て、ネットワーク・インタフェース40aがバッファを
必要とし、複数のバッファの中からバッファが割り当て
られる。適当な組から任意の割り当て可能なバッファが
用いられ得る。割り当てられたバッファは順序シーケン
ス中の第1サイズに等しいサイズを有する。ND90は
データ・パケットの貯蔵に備える。
【0027】ステップ116において、受信データ・パ
ケットの一部が割り当てられたバッファに貯蔵される
間、パケット中の残余のデータがネットワークから受信
される。パケットのサイズが割り当てられたバッファの
サイズに等しいかまたはこれより大であるならばこの貯
蔵された部分は割り当てられたバッファのサイズと等し
いサイズである。パケットのサイズが割り当てられたバ
ッファのサイズより小であるならば、この部分はパケッ
トのサイズと等しいサイズである。
【0028】ステップ120において、受信したパケッ
トが最早データを持っていないならばプロセスは終了す
る。ステップ124において、パケットにまだデータが
あるが割り当てられたバッファが充満しているときには
(つまり、所定シーケンス中の第1バッファのサイズよ
りもパケット・サイズのほうが大であるとき)ステップ
128において次のバッファ・サイズが決定される。こ
の後、所定シーケンス中の次のバッファ・サイズを有す
る次のバッファがステップ112で割り当てられる。
【0029】ステップ112が実行される都度次のバッ
ファが割り当てられるのでこれらバッファのサイズはバ
ッファ組の所定の順序シーケンスに従うものとなる。複
数のバッファから割り当てられたそれぞれ次のバッファ
にデータ・パケットの残余の部分を貯蔵しながらパケッ
トのすべてのデータが貯蔵されるまでステップ112な
いし128が繰り返される。
【0030】図4は図3の方法の変形を示す。図4は第
1バッファを割り当てるためのルックアヘッド割り当て
方式を用いた方法を示す。この方式は各データ・パケッ
トの第1部分に対しより迅速な貯蔵をもたらす可能性が
ある。ステップ204および206において、データ・
パケットが到着する前にバッファ組のシーケンス中の第
1組からバッファが割り当てられる。ステップ208お
よび210において、NDはデータ・パケットの受信を
待つ。
【0031】ステップ216ないし228は図3の方法
におけるステップ116ないし128のそれぞれと同じ
である。ステップ230において、割り当てられた各バ
ッファがデータ・パケットからのデータで充満される都
度複数のバッファから次々とバッファが割り当てられ
る。この後ステップ216に制御が戻り、ここで次のデ
ータがバッファに貯蔵される。
【0032】以下の例は説明の便宜のためになされるも
のであり、本発明の実施可能な形態の範囲を制限するも
のでないことを理解すべきである。更に、バッファ・メ
モリ10の利用度とメモリ管理のオーバヘッドとの間の
最適なバランスは個々のユーザのトラフィック・パター
ン、バッファ・メモリ容量およびメモリ管理装置20の
処理速度に依存するものであることも理解されるべきで
ある。従って、単一の好適なシーケンスというものはな
く、各ユーザ毎に最適の組み合わせは変わるものであ
る。
【0033】図5及び図6は2つの異なるネットワーク
におけるパケット・サイズの分布を示すヒストグラムで
ある。図5はイサーネット・ネットワークで生じうるパ
ケット・サイズのプロファイルを示す。最大のパケット
・サイズは1500バイトである。図5において、パケ
ット・サイズの確率密度関数は双峰分布型である。パケ
ットの殆どは2つの別個の領域の一方に入る。パケット
の多くは256バイト長に達しない。つまりパケットは
線210の左にある。256と1024バイト長の間に
極めて僅かながらパケットがある。残りのパケットの内
殆どは1024バイトと1280バイトの間にある。こ
れらは線220の左側にある。残余のパケットは150
0バイト長に達しない。これらはすべて線220と線2
30との間にある。
【0034】本発明によれば、バッファ組の単純なシー
ケンスは16ー26ー16でも良い(順番に図2の小バ
ッファ、大バッファ、および小バッファを表す)。ここ
で小バッファ組16は256バイトのサイズの小バッフ
ァ18を含む。大バッファ組26は1024バイトのサ
イズの大バッファ28を含む。この順序において順序シ
ーケンスの第1サイズは複数のバッファ中最小のバッフ
ァのサイズである。256バイト以下のサイズのパケッ
トは1個のバッファ18に貯蔵される。256バイト長
と1280バイト長との間のパケットは1個の小バッフ
ァ18と1個の大バッファ28に貯蔵される。1280
バイト長と1500バイト長との間のパケットは第1の
小バッファ18、1個の大バッファ28及び第2の小バ
ッファ18に貯蔵される。
【0035】図6はパケット・サイズが3つの領域に分
布するようなより複雑なトラフィック分布を示すヒスト
グラムである。これらの領域は、小(256バイトより
小)、中(900乃至1500バイト)、および大(3
500乃至4500バイト)である。この型の分布は4
500バイト長までのパケットが伝送されるFDDIネ
ットワークにおいて起こりうる。このようなネットワー
クに対しては幾つかの代替シーケンスが使用される可能
性がある。
【0036】本発明による例示的バッファ・サイズ・シ
ーケンスは小(256バイト)バッファおよび大(20
48バイト)バッファを18ー34ー34ー18の順
(小ー大ー大ー小、即ちSLLS)で使用することがで
きる。これは関連するバッファ組シーケンス16ー32
ー32ー16を用いて割り当てられる。256バイト以
下のパケットは1個の小バッファ18に貯蔵される。2
56ないし2304バイト長のパケットは1個の小バッ
ファ18および1個の大バッファ34に貯蔵される。4
352バイト長までのパケットは1個の小バッファ18
および2個の大バッファ34に貯蔵される。これより大
きなパケットは小バッファ18、2個の大バッファ34
および追加の小バッファ18に貯蔵される。
【0037】もう一つの代替方式は3個のバッファ即
ち、小(256バイト)バッファ18、中(1024バ
イト)バッファ28、および大(2048バイト)バッ
ファ34を使用する方式であって良い。バッファ組シー
ケンスは例えば16ー26ー16ー32ー26(小ー中
ー小ー大ー中、つまりSMSLM)である。256バイ
トまでのパケットは1個の小バッファ18に貯蔵され
る。256ないし1280バイトのパケットは小バッフ
ァ18および中バッファ28に貯蔵される。1280な
いし1536バイトのパケットは1個の小バッファ1
8、1個の中バッファ28、および追加の小バッファ1
8に貯蔵されうる。1536ないし3584バイトのパ
ケットは1個の小バッファ18、1個の中バッファ2
8、追加の小バッファ18、および大バッファ34に貯
蔵される。3584バイトより長いパケットは1個の小
バッファ18、1個の中バッファ28、追加の小バッフ
ァ18、大バッファ34、および追加の中バッファ28
に貯蔵される。このシーケンスは上述のSLLSシーケ
ンスよりも効率的にバッファ・メモリ10のスペースを
使用する。他方、SMSLMシーケンスは2つの理由に
よりSLLSシーケンスより多くのオーバヘッドを必要
とする。第1に、1280ないし2304バイトのパケ
ットはSMSLMシーケンスを用いて3個のバッファに
貯蔵されるのに対してSLLSシーケンスでは2個のバ
ッファに貯蔵されるだけである。第2に、3584バイ
トより長いパケットはSMSLMシーケンスにより5個
のバッファに貯蔵されるがSLLSシケンスでは4個の
バッファに貯蔵されるだけである。
【0038】上述の2つの例は各々バッファ・メモリ1
0の最小サイズのバッファ14に多数のパケットが群集
するようなパケット・サイズ分布を含んでいる。他の型
のトラフィック負荷(図示せず)も同様に可能であり、
この場合、所定の順序シーケンスの最初のバッファ・サ
イズは最大のバッファ・サイズである。例えば、パケッ
ト・サイズがすべて600と1500バイトの間に一様
に分布している場合には、1024バイト・バッファ2
8に始まりこの後512バイト・バッファ24が続く大
ー小(LS)シーケンスを使用することが望ましい。
【0039】本発明に従い、バッファ・メモリ利用度と
バッファ・メモリ管理のオーバヘッドとの間でユーザが
望むバランスを実現するために任意のバッファ・サイズ
及びバッファ組の任意のシーケンスが使用されうること
は当業者にとって明らかであろう。
【0040】
【発明の効果】本発明によりバッファ・メモリの利用度
とメモリ管理のオーバヘッドとの間で妥当なバランスが
保てるようにバッファ・スペースが割り当てられる。
【図面の簡単な説明】
【図1】本発明による例示的ネットワーキング装置のブ
ロック図。
【図2】図1に示したバッファ・メモリのブロック図。
【図3】図1に示したネットワーキング装置を使用する
方法を示すフローダイアグラム。
【図4】図1に示したネットワーキング装置を使用する
別の方法を示すフローダイアグラム。
【図5】図1に示すネットワーキング装置によって処理
されるパケット・サイズの例示的分布を示すヒストグラ
ム。
【図6】図1に示すネットワーキング装置によって処理
されるパケット・サイズのもう一つの例示的分布を示す
ヒストグラム。
【符号の説明】
90:ネットワーキング装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーメド・ナスル−エル−ディン・タンタ ウィ アメリカ合衆国ニューヨーク州、ヨークタ ウン・ハイツ、チェストナット・コート 397番地

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】各々それぞれのサイズを有する複数のバッ
    ファを有するネットワーキング装置においてデータ・パ
    ケットを貯蔵するための方法であって、 各組がそれぞれ異なるサイズのバッファを有するように
    上記複数のバッファを複数の組に区分けするステップ
    と、 バッファの組の順序づけられたシーケンスを作成するス
    テップと、 上記シーケンス中の第1組からバッファを割り当てるス
    テップと、 上記データ・パケットの部分を上記割り当てられたバッ
    ファアに貯蔵するステップと、 上記データ・パケットのサイズが上記割り当てられたバ
    ッファのサイズよりも大であるとき上記シーケンスに従
    って他のバッファ組から次のバッファを割り当てて上記
    データ・パケットの残余の部分を該次のバッファに貯蔵
    するステップと、 より成るデータ・パケットを貯蔵す
    る方法。
  2. 【請求項2】上記シーケンス中の第1組は上記複数のバ
    ッファ中最小のバッファと等しいサイズのバッファを含
    んで成る請求項1記載のデータ・パケットを貯蔵する方
    法。
  3. 【請求項3】上記シーケンス中の第1組は上記複数のバ
    ッファ中最大のバッファと等しいサイズのバッファを含
    んで成る請求項1記載のデータ・パケットを貯蔵する方
    法。
  4. 【請求項4】ネットワーキング装置においてデータ・パ
    ケットを貯蔵するための装置であって、 各組がそれぞれ異なるサイズノバッファを有するバッフ
    ァの複数の組と、 バッファの組の順序づけられたシーケンスを作成する手
    段と、 上記シーケンス中の第1組からバッファを割り当てる手
    段と、 上記データ・パケットの部分を上記割り当てられたバッ
    ファアに貯蔵する手段と、 上記データ・パケットのサイズが上記割り当てられたバ
    ッファのサイズよりも大であるとき上記シーケンスに従
    って他のバッファ組から次のバッファを割り当てて上記
    データ・パケットの残余の部分を該次のバッファに貯蔵
    する手段と、 より成るデータ・パケットを貯蔵する装置。
  5. 【請求項5】上記バッファを割り当てる手段はバッファ
    ・メモリ管理装置を含んで成る請求項4記載のデータ・
    パケットを貯蔵する装置。
JP26200093A 1992-12-14 1993-10-20 デ―タ・パケットを貯蔵する方法及び装置 Expired - Lifetime JP2504377B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/990,162 US5289470A (en) 1992-12-14 1992-12-14 Flexible scheme for buffer space allocation in networking devices
US990162 1992-12-14

Publications (2)

Publication Number Publication Date
JPH06350648A true JPH06350648A (ja) 1994-12-22
JP2504377B2 JP2504377B2 (ja) 1996-06-05

Family

ID=25535848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26200093A Expired - Lifetime JP2504377B2 (ja) 1992-12-14 1993-10-20 デ―タ・パケットを貯蔵する方法及び装置

Country Status (2)

Country Link
US (1) US5289470A (ja)
JP (1) JP2504377B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020066283A (ko) * 2001-02-09 2002-08-14 삼성전자 주식회사 네트웍 메모리 관리 방법 및 그를 이용한 네트웍 드라이브장치

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459455A (en) * 1991-07-29 1995-10-17 Kabushiki Kaisha Toshiba Method and apparatus for data communication between transmission terminal and reception terminal of a network system
GB2268372B (en) * 1992-06-11 1995-11-01 Roke Manor Research Improvements in or relating to data transmission systems
JP3445304B2 (ja) * 1993-03-29 2003-09-08 株式会社東芝 ファイル管理装置
US5761739A (en) * 1993-06-08 1998-06-02 International Business Machines Corporation Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment
JP3594980B2 (ja) * 1993-12-10 2004-12-02 株式会社東芝 ファイル管理方式
WO1995018415A1 (en) * 1993-12-30 1995-07-06 International Business Machines Corporation Queue management in a data processing link
US5812774A (en) * 1994-03-01 1998-09-22 Cabletron Systems, Inc. System for transmitting data packet from buffer by reading buffer descriptor from descriptor memory of network adapter without accessing buffer descriptor in shared memory
US5854898A (en) 1995-02-24 1998-12-29 Apple Computer, Inc. System for automatically adding additional data stream to existing media connection between two end points upon exchange of notifying and confirmation messages therebetween
JP2766216B2 (ja) * 1995-05-08 1998-06-18 甲府日本電気株式会社 情報処理装置
GB2301712B (en) * 1995-06-02 2000-02-23 Dsc Communications Integrated directional antenna
US5742595A (en) * 1995-06-02 1998-04-21 Dsc Communications Corporation Processing CDMA signals
GB2301752B (en) * 1995-06-02 2000-03-29 Dsc Communications Control message transmission in telecommunications systems
GB2301751B (en) * 1995-06-02 2000-02-09 Dsc Communications Control message transmission in telecommunications systems
US5745496A (en) * 1995-06-02 1998-04-28 Dsc Communications Corporation Apparatus and method of establishing a downlink communication path in a wireless telecommunications system
US5915216A (en) * 1995-06-02 1999-06-22 Dsc Communications Corporation Apparatus and method of transmitting and receiving information in a wireless telecommunications system
GB2301737A (en) * 1995-06-02 1996-12-11 Dsc Communications Method of Transmitting Information in a Wireless Telecommunications System
US5809093A (en) * 1995-06-02 1998-09-15 Dsc Communications Corporation Apparatus and method of frame aligning information in a wireless telecommunications system
GB2301735B (en) * 1995-06-02 1999-07-28 Dsc Communications Message handling in a telecommunications network
US5696766A (en) * 1995-06-02 1997-12-09 Dsc Communications Corporation Apparatus and method of synchronizing a transmitter in a subscriber terminal of a wireless telecommunications system
GB2301717B (en) * 1995-06-02 1999-08-11 Dsc Communications Network controller for monitoring the status of a network
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5909427A (en) * 1995-07-19 1999-06-01 Fujitsu Network Communications, Inc. Redundant switch system and method of operation
WO1997010656A1 (en) * 1995-09-14 1997-03-20 Fujitsu Network Communications, Inc. Transmitter controlled flow control for buffer allocation in wide area atm networks
US5778180A (en) * 1995-11-06 1998-07-07 Sun Microsystems, Inc. Mechanism for reducing data copying overhead in protected memory operating systems
US5862140A (en) * 1995-11-21 1999-01-19 Imedia Corporation Method and apparatus for multiplexing video programs for improved channel utilization
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
WO1997026737A1 (en) * 1996-01-16 1997-07-24 Fujitsu Limited A reliable and flexible multicast mechanism for atm networks
US5907717A (en) * 1996-02-23 1999-05-25 Lsi Logic Corporation Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof
US6233704B1 (en) 1996-03-13 2001-05-15 Silicon Graphics, Inc. System and method for fault-tolerant transmission of data within a dual ring network
US5748900A (en) * 1996-03-13 1998-05-05 Cray Research, Inc. Adaptive congestion control mechanism for modular computer networks
US5862313A (en) * 1996-05-20 1999-01-19 Cray Research, Inc. Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
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
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
US6288722B1 (en) * 1996-10-17 2001-09-11 International Business Machines Corporation Frame buffer reconfiguration during graphics processing based upon image attributes
US5873121A (en) * 1996-11-19 1999-02-16 Advanced Micro Devices, Inc. Efficient memory management system for minimizing overhead in storage of data transmitted in a network
US6014727A (en) * 1996-12-23 2000-01-11 Apple Computer, Inc. Method and system for buffering messages in an efficient but largely undivided manner
JPH10289180A (ja) * 1997-02-12 1998-10-27 Canon Inc 通信処理装置及び方法
US6046817A (en) * 1997-05-12 2000-04-04 Lexmark International, Inc. Method and apparatus for dynamic buffering of input/output ports used for receiving and transmitting print data at a printer
US5916309A (en) * 1997-05-12 1999-06-29 Lexmark International Inc. System for dynamically determining the size and number of communication buffers based on communication parameters at the beginning of the reception of message
US5931915A (en) 1997-05-13 1999-08-03 International Business Machines Corporation Method for processing early arrival messages within a multinode asynchronous data communications system
US6073181A (en) * 1997-06-03 2000-06-06 International Business Machines Corporation Multi-buffer error detection for an open data-link interface LAN adapter
US5961606A (en) * 1997-06-30 1999-10-05 Sun Microsystems, Inc. System and method for remote buffer allocation in exported memory segments and message passing between network nodes
US6031624A (en) * 1997-09-08 2000-02-29 Lexmark International, Inc. Method and apparatus for adaptive data buffering in a parallelized printing system
US6088777A (en) * 1997-11-12 2000-07-11 Ericsson Messaging Systems, Inc. Memory system and method for dynamically allocating a memory divided into plural classes with different block sizes to store variable length messages
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US6175862B1 (en) * 1998-06-17 2001-01-16 International Business Machines Corporation Hot objects with sequenced links in web browsers
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6993032B1 (en) * 2000-06-29 2006-01-31 Intel Corporation Buffer arrangements to support differential link distances at full bandwidth
US6775758B2 (en) * 2000-12-21 2004-08-10 Hewlett-Packard Development Company, L.P. Buffer page roll implementation for PCI-X block read transactions
US20030217184A1 (en) * 2000-12-30 2003-11-20 Govindan Nair Method and apparatus for allocating buffers shared among protocol layers in a protocol stack
US20020174362A1 (en) * 2001-03-29 2002-11-21 Ibm Corporation Method and system for network management capable of identifying sources of small packets
US6842800B2 (en) * 2001-08-30 2005-01-11 Marconi Intellectual Property (Ringfence) Inc. System and method for managing configurable buffer sizes
US6851027B2 (en) * 2001-09-17 2005-02-01 Intel Corporation Memory system organized into blocks of different sizes and allocation method therefor
US7003597B2 (en) * 2003-07-09 2006-02-21 International Business Machines Corporation Dynamic reallocation of data stored in buffers based on packet size
US7515584B2 (en) * 2003-09-19 2009-04-07 Infineon Technologies Ag Switching data packets in an ethernet switch
US8423643B2 (en) * 2003-11-19 2013-04-16 International Business Machines Corporation Autonomic assignment of communication buffers by aggregating system profiles
US7146466B2 (en) * 2004-03-23 2006-12-05 International Business Machines System for balancing multiple memory buffer sizes and method therefor
US20060198518A1 (en) * 2004-04-07 2006-09-07 Sony Corporation Information processing device and information processing method
US9489424B2 (en) * 2004-12-20 2016-11-08 Oracle International Corporation Cursor pre-fetching
US20060187963A1 (en) * 2005-02-18 2006-08-24 International Business Machines Corporation Method for sharing single data buffer by several packets
JP4355674B2 (ja) * 2005-03-17 2009-11-04 富士通株式会社 リモートコピー方法及びストレージシステム
US8125904B2 (en) * 2006-05-30 2012-02-28 Broadcom Corporation Method and system for adaptive queue and buffer control based on monitoring and active congestion avoidance in a packet network switch
WO2007139426A1 (en) * 2006-05-31 2007-12-06 Intel Corporation Multiple phase buffer enlargement for rdma data transfer
TWI423032B (zh) * 2009-04-30 2014-01-11 Ralink Technology Corp 提升資料傳輸效能的方法
US9894008B2 (en) * 2014-08-20 2018-02-13 Citrix Systems, Inc. Systems and methods for implementation of jumbo frame over existing network stack
US20170230311A1 (en) * 2016-02-10 2017-08-10 Freescale Semiconductor, Inc. Buffer allocation and use for packet cloning and mangling
CN107797872A (zh) * 2016-09-07 2018-03-13 北京百度网讯科技有限公司 用于传输信息的方法和装置
US10824369B2 (en) * 2018-07-31 2020-11-03 Nutanix, Inc. Elastic method of remote direct memory access memory advertisement
US20230336503A1 (en) * 2022-04-15 2023-10-19 Microsoft Technology Licensing, Llc Receiving packet data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55157181A (en) * 1979-05-25 1980-12-06 Nec Corp Buffer memory control system
US4677616A (en) * 1985-09-11 1987-06-30 At&T Company Flow control scheme for a switching network
US4736369A (en) * 1986-06-13 1988-04-05 International Business Machines Corp. Adaptive session-level pacing
JPS6336348A (ja) * 1986-07-30 1988-02-17 Toshiba Corp バツフアメモリ管理方法
FR2625392B1 (fr) * 1987-12-24 1993-11-26 Quinquis Jean Paul Circuit de gestion de pointeurs d'ecriture de files tampons notamment pour commutateur temporel de paquets auto-acheminables
JPH02117243A (ja) * 1988-10-27 1990-05-01 Toshiba Corp パケット通信装置
US5125096A (en) * 1988-10-31 1992-06-23 International Business Machines Corporation System for implementing to a packet switch protocol for a multinode data communications network utilizing separate data and control paths
JP2736092B2 (ja) * 1989-01-10 1998-04-02 株式会社東芝 バッファ装置
US5189672A (en) * 1989-10-12 1993-02-23 Alcatel Cit Device for regulating the throughput of virtual circuits on an asynchronous time-division multiplex transmission channel
US5014265A (en) * 1989-11-30 1991-05-07 At&T Bell Laboratories Method and apparatus for congestion control in a data network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020066283A (ko) * 2001-02-09 2002-08-14 삼성전자 주식회사 네트웍 메모리 관리 방법 및 그를 이용한 네트웍 드라이브장치

Also Published As

Publication number Publication date
JP2504377B2 (ja) 1996-06-05
US5289470A (en) 1994-02-22

Similar Documents

Publication Publication Date Title
JP2504377B2 (ja) デ―タ・パケットを貯蔵する方法及び装置
US6922408B2 (en) Packet communication buffering with dynamic flow control
JP3734704B2 (ja) パケット分類エンジン
US6529508B1 (en) Methods and apparatus for packet classification with multiple answer sets
US6718393B1 (en) System and method for dynamic distribution of data traffic load through multiple channels
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
JP2565652B2 (ja) インターネットワーキング・パケット経路指定装置
US7248593B2 (en) Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues
EP0993635B1 (en) Method and apparatus for dynamic queue sizing
US6463484B1 (en) Egress port scheduling using memory efficient request storage
US20030177293A1 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US20020069291A1 (en) Dynamic configuration of network devices to enable data transfers
JPH0732398B2 (ja) バス・アクセス制御方法
JP2000235537A (ja) 区分されたデータ・セットを複数のスレッドを介して転送する方法およびシステム
US6081532A (en) Bridging apparatus for traffic filtering in communication networks
CN1348290A (zh) 用于数据交换装置的内部通信协议
US6983334B2 (en) Method and system of tracking missing packets in a multicast TFTP environment
EP1178643B1 (en) Using a centralized server to coordinate assignment of identifiers in a distributed system
US20090213857A1 (en) Method, system, computer program product, and hardware product for ethernet virtualization using an elastic fifo memory to facilitate flow of broadcast traffic to virtual hosts
US7751400B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts
CN112087395B (zh) 一种服务形式的分级流量控制方法
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
CN110601996A (zh) 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法
JP3548051B2 (ja) データ通信装置、方法およびコンピュータ可読記憶媒体
JPH10190734A (ja) パケット転送装置及びパケット転送方法