JP5919727B2 - バッファ管理のためのプログラム、中継装置及び制御方法 - Google Patents

バッファ管理のためのプログラム、中継装置及び制御方法 Download PDF

Info

Publication number
JP5919727B2
JP5919727B2 JP2011234899A JP2011234899A JP5919727B2 JP 5919727 B2 JP5919727 B2 JP 5919727B2 JP 2011234899 A JP2011234899 A JP 2011234899A JP 2011234899 A JP2011234899 A JP 2011234899A JP 5919727 B2 JP5919727 B2 JP 5919727B2
Authority
JP
Japan
Prior art keywords
buffer
communication type
frame
unit
amount
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.)
Active
Application number
JP2011234899A
Other languages
English (en)
Other versions
JP2013093761A (ja
Inventor
和樹 兵頭
和樹 兵頭
長武 白木
長武 白木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011234899A priority Critical patent/JP5919727B2/ja
Priority to US13/610,168 priority patent/US9008109B2/en
Publication of JP2013093761A publication Critical patent/JP2013093761A/ja
Application granted granted Critical
Publication of JP5919727B2 publication Critical patent/JP5919727B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/155Ground-based stations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames

Description

本技術は、中継装置におけるバッファの管理技術に関する。
情報システムの運用及び管理の簡素化等を目的として、異なる特性を持つネットワークを統合することがある。以下では、複数のネットワークを統合することにより構築されたネットワークを統合ネットワークと呼ぶ。
近年では、例えばLAN(Local Area Network)とSAN(Storage Area Network)との統合が行われている。但し、LANとSANとを統合するにあたっては、基盤となる技術が異なることが問題となる。例えば、LANにおいて標準的に使用される規格はイーサネット(Ethernet)(登録商標である)であり、SANにおいて標準的に使用される規格はファイバーチャネル(Fibre Channel)である。そこで、LANとSANとの統合にあたっては、例えばFCoE(Fibre Channel over Ethernet)及びDCB(Data Center Bridging)等の技術が利用される。
LANとSANとの統合により構築された統合ネットワークにおいては、フレームの欠落に対する許容度が異なる複数種別の通信が行われることがある。例えばFCoEには、フレームが欠落するとストレージアクセスの性能が極端に低下するという特性がある。一方、動画や音声のストリーミングには、ある程度のフレームの欠落は許容されるが、欠落が著しいと動画や音声が途中で途切れるなど、品質が劣化するという特性がある。また、サーバ間の通信で利用されるTCP(Transmission Control Protocol)には、フレームが欠落しても再送を行う仕組みがある。
従来、中継装置におけるフレームの欠落を防止するための技術として、Pauseフレームを利用したフロー制御が知られている。この技術では、ネットワークスイッチが保持するバッファの使用量が上限に近くなり、これ以上フレームを受信するとフレームの欠落が発生する可能性がある場合に、フレームの送信元に対してPauseフレームを送信し、フレームの送信を停止させる。この技術では、送信元の装置がポート毎に送信を停止するため、欠落を許容するフレームの送信までも停止されることがあるという問題がある。
一方、DCBで規定されるPFC(Priority-based Flow Control)では、イーサネットで規定される8種類のプライオリティ毎にフロー制御を行うため、フレームの欠落に弱い通信種別(フローとも呼ばれる)のみフレームの送信を停止することができる。しかし、単純にこのような制御を行うと、特定のフローのみが頻繁に送信停止されてしまうことがある。
フロー制御に関しては、ポート毎に送信停止時間を定める従来技術も存在する。しかし、この技術は、フロー制御を行うか否かを判断する基準が単純であるため、フロー制御を適切に行えない場合がある。
また、フロー毎にバッファの使用制限を設け、制限を超えた場合にフレームを廃棄するEPD(Early Packet Drop:早期パケット廃棄)という従来技術が存在する。この技術によれば、特定のフローのフレームがバッファを占有することで他のフローのフレームの通過を妨げたり、例えばWRR(Weighted Round Robin)やETS(Enhanced Transmission Selection)等による帯域制御を妨げる事態(すなわちHOLブロッキング(Head-Of-Line Blocking))を回避することができる。
しかし、EPDにおいては、フレーム廃棄のための閾値を適切に設定しなければ、バッファ溢れの防止と帯域保証とを両立することが難しい。例えば、閾値を大きくするとバッファが溢れやすくなるのに対し、閾値を小さくするとEPDが有効であるフローのフレーム廃棄が起きやすくなり、著しい性能低下を引き起こす場合がある。
EPDに関しては、共通バッファの使用を監視し、フレームの到着時点でのバッファの使用量に基づいて閾値を決める技術がある。しかし、このような技術では適切な制御を行えない場合がある。例えば、バッファの使用量は多いものの、通信は輻輳無く行われているフローがある場合には、本来は下げるべきでないのに閾値を下げてしまうことになる。
また、送信バッファと受信バッファとの間にスプールメモリを設け、各ポートに対して割り当てるスプールメモリ内のバッファ数を、各ポートの通信状況(バッファの使用率)によって決定する従来技術が存在する。しかし、この技術では、ある時点におけるバッファの使用率に基づいて割り当てるバッファ数を決定するため、上記従来技術と同様の問題が生じうる。
また、バッファ内パケット数の増減数に基づき将来のバッファ内パケット数の増減数を予測し、この予測値に基づいてバッファオーバーフロー検出のための閾値を決定する技術が存在する。しかし、この技術は、WRRやETS等による帯域制御に適用することはできない。
特開2000−209250号公報 特表2000−510308号公報 特開2008−271017号公報 特開2004−104192号公報
従って、本技術の目的は、一側面では、複数種別の通信が行われるネットワークにおいて、通信品質の劣化を抑制するための技術を提供することである。
本技術の第1の態様に係る中継装置は、(A)受信したフレームを格納する第1バッファと、(B)受信したフレームを第1バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる第1バッファの使用量が当該通信種別について設定されている第1の閾値を超えるか判断し、超えると判断した場合には当該受信したフレームを廃棄する廃棄部と、(C)少なくとも2以上の時点について通信種別毎に第1バッファの使用量を算出し、第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、(D)第1バッファの使用量の変化を表す数値に基づき、通信種別毎に第1の閾値を算出し、廃棄部に対して設定する設定部とを有する。
本技術の第2の態様に係る中継装置は、(E)受信したフレームを格納する第1バッファと、(F)少なくとも2以上の時点について通信種別毎に第1バッファの使用量を算出し、第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、(G)第1バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての第1の閾値を通信種別毎に算出する第2算出部と、(H)受信したフレームを第1バッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された第1の閾値以下である場合に、当該受信したフレームを第1バッファに格納する制御部とを有する。
本技術の第3の態様に係る中継装置は、(I)受信したフレームを格納するバッファと、(J)少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、バッファの使用量の変化を表す数値を通信種別毎に算出する算出部と、(K)バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断する判断部と、(L)判断部が第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する出力部とを有する。
複数種別の通信が行われるネットワークにおいて、通信品質の劣化を抑制することができるようになる。
図1は、第1の実施の形態の中継装置の機能ブロック図である。 図2は、第1の実施の形態の中継装置が行う処理の処理フローを示す図である。 図3は、第2の実施の形態の中継装置の機能ブロック図である。 図4は、第2の実施の形態の中継装置が行う処理の処理フローを示す図である。 図5は、第3の実施の形態の中継装置の機能ブロック図である。 図6は、第3の実施の形態の中継装置が行う処理の処理フローを示す図である。 図7は、第4の実施の形態の中継装置の機能ブロック図である。 図8は、監視部が行う処理の処理フローを示す図である。 図9は、バッファデータ格納部に格納されている使用量テーブルの一例を示す図である。 図10は、フロー制御部が行う処理の処理フローを示す図である。 図11は、判定処理の処理フローを示す図である。 図12は、第5の実施の形態の中継装置の機能ブロック図である。 図13は、流量決定部が行う処理の処理フローを示す図である。 図14は、算出処理の処理フローを示す図である。 図15は、バッファ使用量の変化について説明するための図である。 図16は、計測部が行う処理の処理フローを示す図である。 図17は、スケジューリング部が行う処理の処理フローを示す図である。 図18は、フロー制御部が行う処理の処理フローを示す図である。 図19は、第6の実施の形態の中継装置の機能ブロック図である。 図20は、第7の実施の形態の中継装置の機能ブロック図である。 図21は、バッファデータ格納部に格納されている使用量テーブルの一例を示す図である。 図22は、検出部が行う処理の処理フローを示す図である。 図23Aは、重み付け処理部が行う処理の処理フローを示す図である。 図23Bは、閾値算出部が行う処理の処理フローを示す図である。 図24は、閾値の算出方法について説明するための図である。 図25は、閾値の算出方法について説明するための図である。 図26は、バッファ使用量の変化と閾値の算出との関係を説明するための図である。 図27は、送信スケジューリング部が行う処理の処理フローを示す図である。 図28は、廃棄部が行う処理の処理フローを示す図である。 図29は、第8の実施の形態の中継装置の機能ブロック図である。 図30は、廃棄部が行う処理の処理フローを示す図である。 図31は、第9の実施の形態の中継装置の機能ブロック図である。
[実施の形態1]
図1に、第1の実施の形態の中継装置の機能ブロック図を示す。第1の実施の形態の中継装置は、例えば統合ネットワークを介して受信したフレームを宛先の装置へ転送するための中継装置である。中継装置は、第1バッファ201と、第1算出部203と、設定部205と、廃棄部207とを有する。
第1算出部203は、第1バッファ201の使用量及び当該使用量の変化を表す数値を算出する処理等を行い、処理結果を設定部205に出力する。設定部205は、第1算出部203からの処理結果に基づき第1の閾値を算出し、廃棄部207に対して設定する。廃棄部207は、設定された第1の閾値に基づき、受信したフレームを廃棄又は第1バッファ201に格納する。
次に、第1の実施の形態における中継装置の動作を図2を用いて説明する。まず、第1算出部203は、少なくとも2以上の時点について通信種別毎に第1バッファ201の使用量を算出し、記憶装置に格納する(図2:ステップS1001)。通信種別は、例えばフレームのヘッダに含まれる情報により決定される。
また、第1算出部203は、ステップS1001において算出された使用量を用いて、第1バッファ201の使用量の変化を表す数値を通信種別毎に算出し、記憶装置に格納する(ステップS1003)。例えば、最新の使用量と所定時刻前における使用量との差を算出する。
そして、設定部205は、第1算出部203によって算出された、第1バッファ201の使用量の変化を表す数値に基づき、フレーム廃棄のための第1の閾値を通信種別毎に算出し、廃棄部207に対して設定する(ステップS1005)。例えば、第1バッファ201の使用量が増加している通信種別について、当該通信種別について既に設定されている第1の閾値よりも小さい第1の閾値を算出する。また、第1バッファ201の使用量が減少している通信種別について、当該通信種別について既に設定されている第1の閾値以上の第1の閾値を算出する。
そして、廃棄部207は、受信したフレームを第1バッファ201に格納すると当該フレームの通信種別と一致する通信種別のフレームによる第1バッファ201の使用量が、当該通信種別について算出された第1の閾値を超えるか判断する(ステップS1007)。第1の閾値を超えないと判断した場合(ステップS1007:Noルート)、廃棄部207は、受信したフレームを第1バッファ201に格納し(ステップS1009)、処理を終了する。一方、第1の閾値を越えると判断した場合(ステップS1007:Yesルート)、廃棄部207は、受信したフレームを廃棄し(ステップS1011)、処理を終了する。
以上のような処理を実施すれば、通信種別毎にフレーム廃棄が抑制されるように制御されると共に、バッファ溢れが生じにくくなる。よって、通信品質の劣化を抑制できるようになる。
[実施の形態2]
図3に、第2の実施の形態の中継装置の機能ブロック図を示す。第2の実施の形態の中継装置は、例えば統合ネットワークを介して受信したフレームを宛先の装置へ転送するための中継装置である。中継装置は、第1バッファ301と、第1算出部303と、第2算出部305と、制御部307とを有する。
第1算出部303は、第1バッファ301の使用量及び当該使用量の変化を表す数値を算出する処理等を行い、処理結果を第2算出部305に出力する。第2算出部305は、第1算出部303からの処理結果に基づき閾値を算出し、制御部307に出力する。制御部307は、第2算出部305から受け取った閾値に基づき、第1バッファ301へのフレームの流入データ量を制御する。
次に、第2の実施の形態における中継装置の動作を図4を用いて説明する。まず、第1算出部303は、少なくとも2以上の時点について通信種別毎に第1バッファ301の使用量を算出し、記憶装置に格納する(図4:ステップS1021)。通信種別は、例えばフレームのヘッダに含まれる情報により決定される。
また、第1算出部303は、ステップS1021において算出された使用量を用いて、第1バッファ301の使用量の変化を表す数値を通信種別毎に算出し、記憶装置に格納する(ステップS1023)。例えば、最新の使用量と所定時刻前における使用量との差を算出する。
そして、第2算出部305は、第1算出部303によって算出された、第1バッファ301の使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての第1の閾値を通信種別毎に算出し、制御部307に出力する(ステップS1025)。例えば、第1バッファ301の使用量が増加している通信種別についての第1の閾値が、第1バッファ301の使用量が減少している通信種別についての第1の閾値よりも小さくなるようにする。
そして、制御部307は、受信したフレームを第1バッファ301に格納したとしても当該フレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が第1の閾値以下であるか判断する(ステップS1027)。第1の閾値以下であると判断した場合(ステップS1027:Yesルート)、制御部307は、受信したフレームを第1バッファ301に格納し(ステップS1029)、処理を終了する。一方、第1の閾値以下ではないと判断した場合(ステップS1027:Noルート)、制御部307は、受信したフレームを第1バッファ301に格納せずに、例えば第1バッファ301とは別に予備的に設けられたバッファ(図示しない)に待機させ(ステップS1031)、処理を終了する。
以上のような処理を実施すれば、バッファ使用量の変化に対して適切な流入データ量が設定されるので、バッファ溢れに対して柔軟に対処することができるようになる。これにより、通信品質の劣化を抑制できるようになる。
[実施の形態3]
図5に、第3の実施の形態の中継装置の機能ブロック図を示す。第3の実施の形態の中継装置は、例えば統合ネットワークを介して受信したフレームを宛先の装置へ転送するための中継装置である。中継装置は、バッファ401と、算出部403と、判断部405と、出力部407とを有する。
算出部403は、バッファ401の使用量及び当該使用量の変化を表す数値を算出する処理等を行い、処理結果を判断部405に出力する。判断部405は、算出部403からの処理結果に基づき、フレームの送信を停止させるかを判断し、フレームの送信を停止させる場合には、出力部407に停止要求の送信を指示する。出力部407は、判断部405からの要求に基づき、フレームの送信の停止を要求する停止要求を出力する。
次に、第3の実施の形態における中継装置の動作を図6を用いて説明する。まず、算出部403は、少なくとも2以上の時点について通信種別毎にバッファ401の使用量を算出し、記憶装置に格納する(図6:ステップS1041)。通信種別は、例えばフレームのヘッダに含まれる情報により決定される。
また、算出部403は、ステップS1041において算出された使用量を用いて、バッファ401の使用量の変化を表す数値を通信種別毎に算出し、記憶装置に格納する(ステップS1043)。例えば、最新の使用量と所定時刻前における使用量との差を算出する。
そして、判断部405は、算出部403によって算出された、バッファ401の使用量の変化を表す数値に基づき、通信種別毎に、当該通信種別に係るフレームの送信を停止させるか判断する(ステップS1045)。例えば、バッファ401の使用量が著しく増加している通信種別については、当該通信種別に係るフレームの送信を停止させる。フレームの送信を停止させないと判断した場合(ステップS1045:Noルート)、処理を終了する。
一方、フレームの送信を停止させると判断した場合(ステップS1045:Yesルート)、判断部405は、停止要求の送信を出力部407に指示する。ここでは、第1の通信種別に係るフレームの送信を停止するとする。これに応じ、出力部407は、第1の通信種別に係るフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別に係るフレームの送信元の装置宛に出力する(ステップS1047)。なお、出力部407から出力されたフレームは、中継装置のポート(図示しない)を介してフレームの送信元の装置宛に送信される。そして処理を終了する。
以上のような処理を実施すれば、通信種別毎のバッファ使用量の変化に応じて適切にフレームの送信が停止されるので、バッファ溢れを抑制できるようになる。これにより、通信品質の劣化を抑制できるようになる。
[実施の形態4]
図7に、第4の実施の形態の中継装置の機能ブロック図を示す。第4の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、共有バッファ1051と、選択部1071及び1073と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、フロー制御部1151とを含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対してフローを識別するための情報を付与し、共有バッファ1051に格納する。選択部1071は、入力されたフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。フロー制御部1151は、バッファデータ格納部1131に格納されているデータに基づきフロー制御を行うか判断し、フロー制御を行う場合にはPauseフレームを生成し、選択部1071及び1073に出力する。
受信ポート1013の機能は受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。選択部1073の機能は、選択部1071の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
なお、本実施の形態において、フローは、例えばフレームに含まれる通信プロトコルの情報、プライオリティの情報及びVLAN(Virtual Local Area Network)の情報等に基づき決定される。他の実施の形態においても同様とする。
次に、図8乃至図11を用いて、図7に示した中継装置の動作について説明する。
まず、監視部1111は、共有バッファ1051にフレームの入力又は出力があったか判断する(図8:ステップS1)。すなわち、共有バッファ1051の使用量が変化したか判断する。
共有バッファ1051にフレームの入力又は出力がない場合(ステップS1:Noルート)、共有バッファ1051の使用量を改めて算出しなくてもよいので、ステップS13の処理に移行する。一方、共有バッファ1051にフレームの入力又は出力があった場合(ステップS1:Yesルート)、監視部1111は、共有バッファ1051の使用量をフロー毎に算出し、記憶装置に格納する(ステップS3)。また、監視部1111は、共有バッファ1051の使用量の合計を算出し、記憶装置に格納する(ステップS5)。
そして、監視部1111は、前回共有バッファ1051の使用量の変化量を算出したときから所定時間が経過したかを判断する(ステップS7)。ステップS7における所定時間は、変化量計算を行う時間間隔である。
前回共有バッファ1051の使用量の変化量を算出したときから所定時間が経過していない場合(ステップS7:Noルート)、まだ変化量の算出を行わなくてもよいので、ステップS13の処理に移行する。一方、前回共有バッファ1051の使用量の変化量を算出したときから所定時間が経過した場合(ステップS7:Yesルート)、監視部1111は、共有バッファ1051の使用量の変化量をフロー毎に算出し、バッファデータ格納部1131における使用量テーブルに格納する(ステップS9)。また、監視部1111は、共有バッファ1051の使用量の変化量の合計を算出し、バッファデータ格納部1131における使用量テーブルに格納する(ステップS11)。
図9に、バッファデータ格納部1131に格納されている使用量テーブルの一例を示す。図9の例では、各時刻における使用量及び使用量の変化量が各フローについて格納されている。
そして、監視部1111は、処理の終了指示があった場合には処理を終了する(ステップS13:Yesルート)。処理を終了しない場合には(ステップS13:Noルート)、引き続き処理を実行するため、ステップS1の処理に戻る。
以上のようにして、共有バッファ1051の使用量の変化量をフロー毎に算出する。
次に、図10及び図11を用いて、フロー制御部1151が行う処理について説明する。まず、フロー制御部1151は、ステップS3及びS5において算出された使用量又はステップS9及びS11において算出された使用量の変化量を用いて、共有バッファ1051の使用量が変化したか判断する(図10:ステップS21)。例えば、使用量の変化量が予め設定された閾値を超えている場合には、使用量が変化したとみなす。
共有バッファ1051の使用量が変化していない場合(ステップS21:Noルート)、ステップS25の処理に移行する。一方、共有バッファの使用量が変化した場合(ステップS21:Yesルート)、フロー制御部1151は、バッファデータ格納部1131に格納されている使用量テーブルを用いて判定処理を実施する(ステップS23)。判定処理については、図11を用いて説明する。
まず、フロー制御部1151は、バッファ残量R>所定の閾値THであるか判断する(図11:ステップS31)。ステップS31においては、バッファの容量Bからバッファ使用量の合計ΣUを差し引くことによりバッファ残量Rを算出する。THは、バッファ残量についての所定の閾値である。以下では、フローfのバッファ使用量をU[f]とし、フローfによるバッファ使用量の変化量をD[f]とし、共有バッファ1051へのフローfの単位時間当たりの流入データ量をG[f]とする。
バッファ残量R>所定の閾値THである場合(ステップS31:Yesルート)、フロー制御部1151は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS37)。共有バッファ1051の残量に余裕があるためである。ここで、Maxはワイヤーレート(すなわち、回線の理論上の最大通信速度)である。
一方、バッファ残量R>所定の閾値THではない場合(ステップS31:Noルート)、フロー制御部1151は、ΣD<0であるか判断する(ステップS33)。すなわち、共有バッファ1051の使用量が減っているか判断する。
ΣD<0である場合(ステップS33:Yesルート)、フロー制御部1151は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS37)。共有バッファ1051の合計の使用量が減少傾向にあるため、共有バッファ1051への単位時間当たりの流入データ量が増えたとしてもバッファ溢れが生じにくいからである。
一方、ΣD<0ではない場合(ステップS33:Noルート)、フロー制御部1151は、D[f]<0であるか判断する(ステップS35)。すなわち、フローfのバッファ使用量が減っているか判断する。
D[f]<0である場合(ステップS35:Yesルート)、フロー制御部1151は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS37)。フローfによる共有バッファ1051の使用量が減少傾向にあるため、フローfについての単位時間当たりの流入データ量が増えたとしてもバッファ溢れが生じにくいからである。
一方、D[f]<0ではない場合(ステップS35:Noルート)、フロー制御部1151は、フローfについての流入データ量G[f]をG[f]=Max*R/Bと設定する(ステップS39)。すなわち、バッファの残量Rが少ないほど小さい流入データ量を割り当てるようにする。
そして、フロー制御部1151は、ステップS37又はS39において設定された流入データ量G[f]がG[f]<Tを満たすか判断する(ステップS40)。ここで、Tは流入データ量についての所定の閾値である。G[f]<Tを満たさない場合(ステップS40:Noルート)、フローfについてフレームの送信を停止させなくてもよいので、元の処理に戻る。一方、G[f]<Tを満たす場合(ステップS40:Yesルート)、フロー制御部1151は、フローfについてのフレームの送信元の装置に対してフレームの送信停止を要求するPauseフレームを生成し、当該送信元の装置宛に出力する(ステップS41)。本実施の形態においては、選択部1071又は1073に出力する。そして元の処理に戻る。
なお、以上説明した判定処理は、バッファの使用量に変化があったフローのみについて行うようにしてもよいし、各々のフローについて行うようにしてもよい。
図10の説明に戻り、制御部1151は、処理の終了指示があった場合には処理を終了する(ステップS25:Yesルート)。処理を終了しない場合には(ステップS25:Noルート)、引き続き処理を実行するため、ステップS21の処理に戻る。
以上のような処理を実施することにより、フロー毎のバッファ使用量の変化に応じて、適切なフロー制御を行うことができるようになる。これにより、共有バッファ1051のオーバーフローが発生することを抑制できる。また、EPDとは異なりフレームを廃棄しないため、フレームを廃棄することが好ましくないフロー(例えばFCoE)にも対処することができる。さらに、共有バッファをポート毎に分割するわけではないため、共有バッファを有効に利用できる。
[実施の形態5]
図12に、第5の実施の形態の中継装置の機能ブロック図を示す。第5の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、入力バッファ1211及び1213と、フロー制御部1231及び1233と、計測部1251及び1253と、共有バッファ1051と、選択部1071及び1073と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、流量決定部1171と、スケジューリング部1191とを含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対して、フローを識別するための情報を付与し、入力バッファ1211に格納する。フロー制御部1231は、入力バッファ1211の使用量に基づきフロー制御を行うか判断し、フロー制御を行う場合にはPauseフレームを生成し、選択部1071に出力する。計測部1251は、入力バッファ1211から共有バッファ1051へ流入するフレームのデータ量をフロー毎に管理する。選択部1071は、入力されたフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。流量決定部1171は、バッファデータ格納部1131に格納されているデータに基づき、単位時間当たりに入力バッファ1211及び1213から共有バッファ1051に流入するフレームのデータ量をフロー毎に算出し、スケジューリング部1191に出力する。スケジューリング部1191は、入力バッファ1211及び1213から共有バッファ1051に流入するフレームの順序を管理する。
受信ポート1013の機能は受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。入力バッファ1213の機能は、入力バッファ1211の機能と同様である。フロー制御部1233の機能は、フロー制御部1231の機能と同様である。計測部1253の機能は、計測部1251の機能と同様である。選択部1073の機能は、選択部1071の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
次に、図12に示した中継装置の動作について説明する。但し、監視部1111の処理は実施の形態4で説明したものと同じであるので説明を省略する。
まず、図13を用いて、流量決定部1171が行う処理について説明する。流量決定部1171は、ステップS3及びS5において算出された使用量又はステップS9及びS11において算出された使用量の変化量を用いて、共有バッファ1051の使用量が変化したか判断する(図13:ステップS42)。例えば、使用量の変化量が予め設定された閾値を超えている場合には、使用量が変化したとみなす。
共有バッファの使用量が変化していない場合(ステップS41:Noルート)、ステップS45処理に移行する。一方、共有バッファの使用量が変化した場合(ステップS41:Yesルート)、流量決定部1171は、バッファデータ格納部1131に格納されている使用量テーブルを用いて算出処理を実施する(ステップS43)。算出処理については、図14を用いて説明する。
まず、流量決定部1171は、バッファ残量R>所定の閾値THであるか判断する(図14:ステップS51)。ステップS51においては、バッファの容量Bからバッファ使用量の合計ΣUを差し引くことによりバッファ残量Rを算出する。THは、バッファ残量についての所定の閾値である。以下では、フローfのバッファ使用量をU[f]とし、フローfによるバッファ使用量の変化量をD[f]とし、共有バッファ1051へのフローfの単位時間当たりの流入データ量をG[f]とする。
バッファ残量R>所定の閾値THである場合(ステップS51:Yesルート)、流量決定部1171は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS57)。共有バッファ1051の残量に余裕があるためである。ここで、Maxはワイヤーレートである。
一方、バッファ残量R>所定の閾値THではない場合(ステップS51:Noルート)、流量決定部1171は、ΣD<0であるか判断する(ステップS53)。すなわち、共有バッファ1051の使用量が減っているか判断する。
ΣD<0である場合(ステップS53:Yesルート)、流量決定部1171は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS57)。共有バッファ1051の合計の使用量が減少傾向にあるため、共有バッファ1051への単位時間当たりの流入データ量が増えたとしてもバッファ溢れが生じにくいからである。
一方、ΣD<0ではない場合(ステップS53:Noルート)、流量決定部1171は、D[f]<0であるか判断する(ステップS55)。すなわち、フローfのバッファ使用量が減っているか判断する。
D[f]<0である場合(ステップS55:Yesルート)、流量決定部1171は、フローfについての流入データ量G[f]をG[f]=Maxと設定する(ステップS57)。フローfによる共有バッファ1051の使用量が減少傾向にあるため、フローfについての単位時間当たりの流入データ量が増えたとしてもバッファ溢れが生じにくいからである。そして元の処理に戻る。
一方、D[f]<0ではない場合(ステップS55:Noルート)、流量決定部1171は、フローfについての流入データ量G[f]をG[f]=Max*R/Bと設定する(ステップS59)。すなわち、バッファの残量Rが少ないほど小さい流入データ量を割り当てるようにする。そして元の処理に戻る。
なお、以上説明した算出処理は、バッファの使用量に変化があったフローのみについて行うようにしてもよいし、各々のフローについて行うようにしてもよい。
図15を用いて、第5の実施の形態における流入データ量の制御について説明する。図15においては、斜線が付された長方形の高さが高いほどバッファ使用量が多いことを示している。図15の上段は、現在のバッファ使用量が過去よりも多いことを示しており、図15の下段は、現在のバッファ使用量が過去よりも少ないことを示している。例えば図15の上段に示すように、バッファ使用量が増加している場合、今後もバッファ使用量が増加して、未来において現在よりも多いバッファ使用量になる可能性が高いと考えられる。このような場合においては、バッファへの流入データ量を少なくしなければバッファ溢れを生じる可能性が高くなってしまう。従って、本実施の形態においては、バッファ使用量が増加している場合にはワイヤーレートよりも小さい流入データ量G[f]を設定している。
逆に、図15の下段に示すように、バッファ使用量が減少している場合、今後もバッファ使用量が減少して、未来において現在よりも少ないバッファ使用量になる可能性が高いと考えられる。このような場合においては、バッファへの流入データ量を多くしてもバッファ溢れを生じにくい。従って、本実施の形態においては、バッファ使用量が減少している場合には流入データ量G[f]をワイヤーレートに設定している。
図13の説明に戻り、流量決定部1171は、処理の終了指示があった場合には処理を終了する(ステップS45:Yesルート)。処理を終了しない場合には(ステップS45:Noルート)、引き続き処理を実行するため、ステップS42の処理に戻る。
次に、図16及び図17を用いて、流量決定部1171によって算出された流入データ量になるようにフレームの流入を制御する処理について説明する。ここでは、計測部1251の処理を例にして説明する。
まず、計測部1251は、流入データ量を算出するための所定時間が経過したか判断する(図16:ステップS61)。
流入データ量を算出するための所定時間が経過していない場合(ステップS61:Noルート)、ステップS65の処理に移行する。一方、流入データ量を算出するための所定時間が経過した場合(ステップS61:Yesルート)、計測部1251は、各フローについての流量カウンタから所定値を減算する(ステップS63)。
そして、計測部1251は、新たに入力バッファ1211からフレームが出力されたか判断する(ステップS65)。入力バッファ1211からフレームが出力されていない場合(ステップS65:Noルート)、ステップS69の処理に移行する。一方、入力バッファ1211からフレームが出力された場合(ステップS65:Yesルート)、出力されたフレームのフローについて、出力されたフレームのデータ量を流量カウンタに加算する(ステップS67)。
そして、計測部1251は、処理の終了指示があった場合には処理を終了する(ステップS69:Yesルート)。処理を終了しない場合には(ステップS69:Noルート)、引き続き処理を実行するため、ステップS61の処理に戻る。
このようにして、共有バッファ1051への流入データ量をフロー毎に管理する。そして、流量カウンタの値及びフレームの転送状況についての情報は、計測部1251からスケジューリング部1191に適宜通知される。
一方、スケジューリング部1191は、所定のアルゴリズム(例えばラウンドロビン)によって、共有バッファ1051にフレームを出力するフロー(ここでは、フローfとする)を特定する(図17:ステップS71)。
そして、スケジューリング部1191は、特定されたフローfのフレームを共有バッファ1051に出力中であるか判断する(ステップS73)。フローfのフレームを共有バッファ1051に出力中である場合には(ステップS73:Yesルート)、フローfのフレームをさらに共有バッファ1051に出力することはできないので、ステップS71の処理に戻る。
一方、フローfのフレームを共有バッファ1051に出力中ではない場合には(ステップS73:Noルート)、フローfのフレームを共有バッファ1051に出力可能であるか判断する(ステップS75)。ステップS75においては、共有バッファ1051への出力待ちとなっているフローfのフレームが有るか判断する。
フローfのフレームを共有バッファ1051に出力可能ではない場合(ステップS75:Noルート)、ステップS81の処理に移行する。一方、フローfのフレームを共有バッファ1051に出力可能である場合(ステップS75:Yesルート)、スケジューリング部1191は、F[f]<G[f]であるか判断する(ステップS77)。ここで、F[f]は、計測部1251及び1253によって計測された、フローfについての流量カウンタの値である。G[f]は、流量決定部1171によって算出された、フローfについての流入データ量である。
F[f]<G[f]ではない場合(ステップS77:Noルート)、共有バッファ1051にフレームを出力することはできないため、ステップS81の処理に移行する。一方、F[f]<G[f]である場合(ステップS77:Yesルート)、スケジューリング部1191は、フローfのフレームを共有バッファ1051に出力する(ステップS79)。
そして、スケジューリング部1191は、処理の終了指示があった場合には処理を終了する(ステップS81:Yesルート)。処理を終了しない場合には(ステップS81:Noルート)、引き続き処理を実行するため、ステップS71の処理に戻る。
このような処理を実施することにより、決定された流入データ量を超えないように、フロー毎に流入データ量を制御することができるようになる。
次に、図18を用いて、フロー制御部1231及び1233が行う処理について説明する。ここでは、フロー制御部1231の処理を例にして説明する。
まず、フロー制御部1231は、未処理のフローを1つ特定する(図18:ステップS91)。
そして、フロー制御部1231は、特定されたフローについて入力バッファ1211の使用量を算出し、使用量が閾値を超えているか判断する(ステップS93)。ステップS93において利用する閾値は、フロー毎に予め設定されているとする。
使用量が閾値を超えていない場合(ステップS93:Noルート)、ステップS97の処理に移行する。一方、使用量が閾値を超えている場合(ステップS93:Yesルート)、フロー制御部1231は、当該フローのフレームの送信元の装置に対してフレームの送信を停止することを要求するPauseフレームを生成し、選択部1071に出力する(ステップS95)。
そして、フロー制御部1231は、未処理のフローが有るか判断する(ステップS97)。未処理のフローが有る場合(ステップS97:Yesルート)、次のフローについて処理するため、ステップS91の処理に戻る。一方、未処理のフローが無い場合(ステップS97:Noルート)、処理を終了する。
なお、未処理のフローが無くなった場合には、処理済みのフローを再度未処理の状態であるとみなして、繰返し処理を実施するようにしてもよい。
このような処理を実施することにより、入力バッファ1211を占有するフローのフレームの送信を停止させることができるようになる。
このように、本実施の形態では、フロー毎のバッファ使用量の変化に応じて、適切な流入データ量を設定することができるようになる。これにより、共有バッファ1051のオーバーフローが発生することを抑制できると共に、帯域を制限しすぎることを抑制することができる。また、EPDとは異なりフレームを廃棄しないため、フレームを廃棄することが好ましくないフロー(例えばFCoE)にも対処することができる。さらに、共有バッファをポート毎に分割するわけではないため、共有バッファを有効に利用できる。
また、本実施の形態では、共有バッファとは別に設けられた入力バッファの使用の状況に応じて、フレームの送信を停止させている。これにより、通信状況の変化に対してより柔軟に対応することができるようになる。
[実施の形態6]
図19に、第6の実施の形態の中継装置の機能ブロック図を示す。第6の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、分配部1261及び1263と、入力バッファ1211乃至1217と、フロー制御部1231及び1233と、計測部1251乃至1257と、選択部1271及び1273と、共有バッファ1051と、選択部1071及び1073と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、流量決定部1171と、スケジューリング部1191とを含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対して、フローを識別するための情報を付与し、分配部1261に出力する。分配部1261は、フローを識別するための情報に応じて、フレームを入力バッファ1211又は入力バッファ1213に格納する。フロー制御部1231は、入力バッファ1211及び入力バッファ1213の使用量に基づきフロー制御を行うか判断し、フロー制御を行う場合にはPauseフレームを生成し、選択部1071に出力する。計測部1251は、入力バッファ1211から共有バッファ1051に流入するフレームのデータ量を計測すると共に、フレームを選択部1271に出力する。選択部1071は、入力されたフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。流量決定部1171は、バッファデータ格納部1131に格納されているデータに基づき、単位時間当たりに入力バッファ1211及び1213から共有バッファ1051に流入するフレームのデータ量をフロー毎に算出し、スケジューリング部1191に出力する。スケジューリング部1191は、入力バッファ1211及び1213から共有バッファ1051に流入するフレームの順序を管理する。
受信ポート1013の機能は、受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。入力バッファ1213乃至1217の機能は、入力バッファ1211の機能と同様である。フロー制御部1233の機能は、フロー制御部1231の機能と同様である。計測部1253乃至1257の機能は、計測部1251の機能と同様である。選択部1273の機能は、選択部1271の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
本実施の形態の監視部1111の処理は第4の実施の形態で説明したものと同じであるので、説明を省略する。また、流量決定部1171、スケジューリング部1191、計測部1251及びフロー制御部1231の処理は第5の実施の形態で説明したものと同じであるので、説明を省略する。
本実施の形態の中継装置は、このような構成を採用しているので、第5の実施の形態の中継装置と同様の効果を有する。また、本実施の形態においては、フロー毎に入力バッファが設けられており、各入力バッファには、異なる1の計測部が対応付けられている。このような構成を採用することで、フロー毎の流入データ量の管理を行いやすくなるので、中継装置内においてより効率的にフレームを処理することができるようになっている。
[実施の形態7]
図20に、第7の実施の形態の中継装置の機能ブロック図を示す。第7の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、廃棄部1291及び1293と、共有バッファ1051と、送信スケジューリング部1391及び1393と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、検出部1311と、重み付け処理部1351と、閾値算出部1371を含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対して、フローを識別するための情報を付与し、廃棄部1291に出力する。廃棄部1291は、フロー毎に設定された閾値に基づきフレームを廃棄し、廃棄しないフレームを共有バッファ1051に格納する。送信スケジューリング部1391は、入力された重み付け値及び所定のアルゴリズムに基づきフレームの送信順序を決定し、決定された送信順序に従ってフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。検出部1311は、バッファデータ格納部1131に格納されているデータを用いて、共有バッファ1051の使用量が変化したことを検出する。そして、検出部1311は、共有バッファ1051の使用量の変化を検出した場合には、重み付け処理部1351及び閾値算出部1371に処理を指示する。重み付け処理部1351は、バッファデータ格納部1131に格納されているデータに基づき、フレーム送信の優先度を表す重み付け値をフロー毎に算出し、送信スケジューリング部1391に出力する。閾値算出部1371は、バッファデータ格納部1131に格納されているデータに基づき、共有バッファ1051の使用量についての閾値をフロー毎に算出し、廃棄部1291及び1293に出力する。
受信ポート1013の機能は、受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。廃棄部1293の機能は、廃棄部1291の機能と同様である。送信スケジューリング部1393の機能は、送信スケジューリング部1391の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
次に、図20に示した中継装置の動作について説明する。但し、監視部1111の処理については第4の実施の形態で説明したものと同様であるので、説明を省略する。なお、第7の実施の形態では、バッファデータ格納部1131における使用量テーブルには図21に示すようなデータが格納される。図21の例では、各時刻における使用量及び使用量の変化量が各フローについて格納されている。また、EPDの列には、EPDが有効であるか否かを示すデータが格納されている。EPDの列に格納されているデータが「ON」であるフローは、廃棄部1291及び1293による廃棄の対象となるフローであり、EPDの列に格納されているデータが「OFF」であるフローは、廃棄部1291及び1293による廃棄の対象ではないフローである。
まず、図22を用いて、検出部1311が行う処理について説明する。検出部1311は、ステップS3及びS5において算出された使用量又はステップS9及びS11において算出された使用量の変化量を用いて、共有バッファ1051の使用量が変化したか判断する(図22:ステップS101)。例えば、使用量の変化量が予め設定された閾値を超えている場合には、使用量が変化したとみなす。共有バッファ1051の使用量が変化していない場合(ステップS101:Noルート)、ステップS103の処理に移行する。
一方、共有バッファ1051の使用量が変化した場合(ステップS101:Yesルート)、検出部1311は、重み付け処理部1351及び閾値算出部1371に対し、共有バッファ1051の使用量に変化があったことを通知する(ステップS102)。
そして、検出部1311は、処理の終了指示があった場合には処理を終了する(ステップS103:Yesルート)。処理を終了しない場合には(ステップS103:Noルート)、引き続き処理を実行するため、ステップS101の処理に戻る。
ここで、図23A及び図23Bを用いて、重み付け処理部1351及び閾値算出部1371によって行われる処理について説明する。
まず、重み付け処理部1351は、共有バッファ1051の使用量の変化があったことを検出部1311から通知されたかを判断する(図23A:ステップS104)。共有バッファ1051の使用量の変化があったことを検出部1311から通知されていない場合(ステップS104:Noルート)、ステップS106の処理に移行する。
一方、共有バッファ1051の使用量の変化があったことを検出部1311から通知された場合(ステップS104:Yesルート)、重み付け処理部1351は、バッファデータ格納部1131に格納されている使用量テーブルを用いて、フロー毎に重み付け値を算出する。そして、重み付け処理部1351は、算出した重み付け値を送信スケジューリング部1391及び1393に出力する(ステップS103)。例えば、共有バッファ1051の使用量が増加しているフローほど大きな重み付け値を割り当て、共有バッファ1051の使用量が減少しているフローほど小さな重み付け値を割り当てるように、各フローについての重み付け値を算出する。このようにすることで、共有バッファ1051を占有してしまう可能性が高いフローのフレームを、優先的に送信する。
そして、重み付け処理部1351は、処理の終了指示があった場合には処理を終了する(ステップS106:Yesルート)。処理を終了しない場合には(ステップS106:Noルート)、引き続き処理を実行するため、ステップS104の処理に戻る。
一方、閾値算出部1371は、共有バッファ1051の使用量の変化があったことを検出部1311から通知されたかを判断する(図23B:ステップS107)。共有バッファ1051の使用量の変化があったことを検出部1311から通知されていない場合(ステップS107:Noルート)、ステップS109の処理に移行する。
共有バッファ1051の使用量の変化があったことを検出部1311から通知された場合(ステップS107:Yesルート)、閾値算出部1371は、バッファデータ格納部1131に格納されている使用量テーブルを用いて、共有バッファ1051の使用量についての閾値をフロー毎に算出し、廃棄部1291及び1293に出力する(ステップS108)。
そして、閾値算出部1371は、処理の終了指示があった場合には処理を終了する(ステップS109:Yesルート)。処理を終了しない場合には(ステップS109:Noルート)、引き続き処理を実行するため、ステップS107の処理に戻る。
なお、ステップS108においては、例えば以下のようにして閾値を算出する。まず、閾値算出部1371は、時刻tにおける閾値の最大値Ted_Max及び最小値Ted_Minを以下の式により算出する。
Ted_Min=CBmax/(NCBact+1)
Ted_Max=CBmax/NCBact
ここで、CBmaxは共有バッファ1051の容量であり、NCBactは時刻tにおいて共有バッファ1051を使用しているフローの数である。
そして、Ted(f)tmpを以下のように定義する。
Ted(f)tmp=Ted(f)−(Ted(f)×ΔPCB(f))
ここで、Ted(f)は時刻tにおけるフローfの閾値であり、ΔPCB(f)はフローfの共有バッファ1051の使用率PCB(f)の変化量である。
そして、閾値算出部1371は、時刻tの次の時刻におけるフローfの閾値Ted(f)nextを以下の式により算出する。
Ted(f)next=max(Ted_min,min(Ted_max,Ted(f)tmp))
ここで、max(a,b)はaとbのうち大きいものを求める演算式であり、min(a,b)はaとbのうち小さいものを求める演算式である。
但し、ΔPCB(f)が負であり且つTed(f)next<Ted(f)である場合には、Ted(f)next=Ted(f)とする。
例えば図21に示したようなデータが使用量テーブルに格納されている場合に、Ted_Min及びTed_Maxを計算すると、図24に示すようになる。図24は、t乃至tの各時刻について、Ted_Min及びTed_Maxの値を示している。図24が示すように、共有バッファ1051を使用しているフローの数が多いほど、Ted_Min及びTed_Maxは小さくなる。なお、CBmax=5000とする。
そして、図21に示したようなデータが使用量テーブルに格納されている場合に各フローについて閾値を算出すると、図25に示すようになる。図25は、t乃至tの各時刻についての、フロー毎の閾値を示している。図25において、矢印は、1つ前の時刻と同じ値であることを示している。フロー2については、EPDが有効ではないので、閾値は算出されていない。なお、閾値の初期値を3000としている。
このように、本実施の形態においては、共有バッファ1051の使用量の変化に応じて、閾値を動的に設定している。例えば図15の上段に示すように、バッファの使用量が増加しているフローについては、そのフローによるバッファの占有を防ぐため、既に設定されている値より小さい閾値が設定されるようになる。一方、例えば図15の下段に示すように、バッファの使用量が減少しているフローについては、そのフローについては閾値を小さくすると通信品質を劣化させてしまうおそれがあるため、既に設定されている値のまま或いはその値より大きい閾値が設定されるようになる。
また、上で述べた算出方法においては、各フローのバッファ使用量の変化だけでなく、バッファ使用量の合計の変化も加味されている。例えば図26に示すように、バッファ使用量の合計が増加しており、フロー1によるバッファ使用量が減少しており、フロー2によるバッファ使用量は変化が無く、フロー3によるバッファ使用量が増加している状況があるとする。このような場合には、フロー1及びフロー2については、これらのフローによるバッファ使用量がバッファ使用量の合計に占める割合が減少しているため、既に設定されている値のまま或いはその値より大きい閾値が設定されるようになる。一方で、フロー3については、フロー3によるバッファ使用量がバッファ使用量の合計に占める割合が増加しているため、既に設定されている値よりも小さい閾値が設定されるようになる。
以上のような処理を実施することにより、共有バッファ1051の使用量の変化に応じて、フレームの送信順序の決定及びフレーム廃棄のための閾値の算出をフロー毎に適切に行うことができるようになる。
次に、図27を用いて、重み付け処理部1351から重み付け値を受け取った送信スケジューリング部1391及び1393が行う処理について説明する。ここでは、送信スケジューリング部1391が行う処理を例にして説明する。
まず、送信スケジューリング部1391は、送信待ちのフレームが共有バッファ1051に有るか判断する(図27:S131)。送信待ちのフレームが共有バッファ1051に無い場合(ステップS131:Noルート)、ステップS137の処理に移行する。
一方、送信待ちのフレームが共有バッファ1051に有る場合(ステップS131:Yesルート)、送信スケジューリング部1391は、所定のスケジューリングアルゴリズム及び重み付け値に基づき、フレームを送信するフローを特定する(ステップS133)。例えば、所定のスケジューリングアルゴリズムによって決定された送信順序を表す数値に対し、重み付け値を加算することにより、フローの送信順序を決定する。なお、スケジューリングアルゴリズムとして、例えばラウンドロビンを用いることができる。
そして、送信スケジューリング部1391は、決定されたフローのフレームを送信ポート1091に出力する(ステップS135)。
送信スケジューリング部1391は、処理の終了指示があった場合には処理を終了する(ステップS137:Yesルート)。処理を終了しない場合には(ステップS137:Noルート)、引き続き処理を実行するため、ステップS131の処理に戻る。
このような処理を実施することにより、フロー毎のバッファ使用量の変化に応じて共有バッファ1051からフレームを出力することができるようになる。
次に、図28を用いて、廃棄部1291及び1293が行う処理について説明する。ここでは、廃棄部1291が行う処理を例にして説明する。
まず、廃棄部1291は、共有バッファ1051への出力待ちのフレームが有るか判断する(図28:ステップS151)。出力待ちのフレームが無い場合(ステップS151:Noルート)、ステップS165の処理に移行する。一方、出力待ちのフレームが有る場合(ステップS151:Yesルート)、廃棄部1291は、出力待ちのフレームのフローについて、EPDが有効であるか判断する(ステップS153)。ステップS153においては、例えばEPDが有効か否かを示すデータがフロー毎に登録されたテーブル(図示せず)を用いて判断する。
EPDが有効である場合(ステップS153:Yesルート)、廃棄部1291は、出力待ちのフレームのフローと一致するフローのフレームによる共有バッファ1051の使用量が、当該フローについて設定された閾値を超えているか判断する(ステップS155)。
設定された閾値を超えている場合(ステップS155:Yesルート)、フレームを共有バッファ1051に格納すると共有バッファ1051が溢れる可能性が高くなるので、廃棄部1291はフレームを廃棄する(ステップS157)。そしてステップS165の処理に移行する。設定された閾値を超えていない場合(ステップS155:Noルート)、フレームを共有バッファ1051に格納しても問題は無いので、廃棄部1291はフレームを共有バッファ1051に出力する(ステップS159)。そしてステップS165の処理に移行する。
一方、ステップS153において、EPDが有効ではない場合(ステップS153:Noルート)、廃棄部1291は、出力待ちのフレームを共有バッファ1051に出力可能であるか判断する(ステップS161)。ステップS161においては、フレームを共有バッファ1051に出力すると共有バッファ1051が溢れないか判断する。
出力待ちのフレームを共有バッファ1051に出力可能ではない場合(ステップS161:Noルート)、廃棄部1291は、フレームを廃棄する(ステップS157)。一方、出力待ちのフレームを共有バッファ1051に出力可能である場合(ステップS161:Yesルート)、廃棄部1291は、フレームを共有バッファ1051に出力する(ステップS163)。そしてステップS165の処理に移行する。
そして、廃棄部1291は、処理の終了指示があった場合には処理を終了する(ステップS165:Yesルート)。処理を終了しない場合には(ステップS165:Noルート)、引き続き処理を実行するため、ステップS151の処理に戻る。
以上のようにすれば、共有バッファの使用量の変化に応じて設定された閾値に基づき、フレームの廃棄を行うことができるようになる。
このように、本実施の形態では、共有バッファ1051の使用量の変化に応じて閾値が設定されるため、EPDによるフレームの廃棄が抑制されると共に、共有バッファ1051が溢れることを抑制できるようになる。従って、ある程度フレームの廃棄が許容されるフローに対して特に有効である。さらに、共有バッファ1051をポート毎に分割するわけではないため、共有バッファ1051を有効に利用できる。
[実施の形態8]
図29に、第8の実施の形態の中継装置の機能ブロック図を示す。第8の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、入力バッファ1211及び1213と、廃棄部1291及び1293と、共有バッファ1051と、送信スケジューリング部1391及び1393と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、検出部1311と、重み付け処理部1351と、閾値算出部1371とを含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対して、フローを識別するための情報を付与し、入力バッファ1211に格納する。廃棄部1291は、フロー毎に設定された閾値に基づきフレームを廃棄し、廃棄しないフレームを共有バッファ1051に格納する。送信スケジューリング部1391は、入力された重み付け値及び所定のアルゴリズムに基づきフレームの送信順序を決定し、決定された送信順序に従ってフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。検出部1311は、バッファデータ格納部1131に格納されているデータを用いて、共有バッファ1051の使用量が変化したことを検出する。そして、検出部1311は、共有バッファ1051の使用量の変化を検出した場合には、重み付け処理部1351及び閾値算出部1371に処理を指示する。重み付け処理部1351は、バッファデータ格納部1131に格納されているデータに基づき、フレーム送信の優先度を表す重み付け値をフロー毎に算出し、送信スケジューリング部1391に出力する。閾値算出部1371は、バッファデータ格納部1131に格納されているデータに基づき、共有バッファ1051の使用量についての閾値をフロー毎に算出し、廃棄部1291及び1293に出力する。
受信ポート1013の機能は、受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。入力バッファ1213の機能は、入力バッファ1211の機能と同様である。廃棄部1293の機能は、廃棄部1291の機能と同様である。送信スケジューリング部1393の機能は、送信スケジューリング部1391の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
次に、図29に示した中継装置の動作について説明する。但し、監視部1111の処理は第4の実施の形態で説明したものと同じであるので、説明を省略する。また、検出部1311及び重み付け処理部1351の処理は第7の実施の形態で説明したものと同じであるので、説明を省略する。
そこで、図30を用いて、廃棄部1291及び1293が行う処理について説明する。ここでは、廃棄部1291の処理を例にして説明する。
まず、廃棄部1291は、共有バッファ1051への出力待ちのフレームが有るか判断する(図30:ステップS181)。出力待ちのフレームが無い場合(ステップS181:Noルート)、ステップS193の処理に移行する。一方、出力待ちのフレームが有る場合(ステップS181:Yesルート)、廃棄部1291は、出力待ちのフレームのフローについて、EPDが有効であるか判断する(ステップS183)。ステップS183においては、例えばEPDが有効か否かを示すデータがフロー毎に登録されたテーブル(図示せず)を用いて判断する。
EPDが有効である場合(ステップS183:Yesルート)、廃棄部1291は、出力待ちのフレームのフローと一致するフローのフレームによる共有バッファ1051の使用量が、当該フローについて設定された閾値を超えているか判断する(ステップS185)。
設定された閾値を超えている場合(ステップS185:Yesルート)、フレームを共有バッファ1051に格納すると共有バッファ1051が溢れる可能性が高くなるので、廃棄部1291はフレームを廃棄する(ステップS187)。そしてステップS193の処理に移行する。設定された閾値を超えていない場合(ステップS185:Noルート)、フレームを共有バッファ1051に格納しても問題は無いので、廃棄部1291はフレームを共有バッファ1051に出力する(ステップS189)。そしてステップS193の処理に移行する。
一方、ステップS183において、EPDが有効ではない場合(ステップS183:Noルート)、廃棄部1291は、出力待ちのフレームを共有バッファ1051に出力可能であるか判断する(ステップS191)。ステップS191においては、フレームを共有バッファ1051に出力すると共有バッファ1051が溢れないか判断する。
出力待ちのフレームを共有バッファ1051に出力可能ではない場合(ステップS191:Noルート)、廃棄部1291は、フレームを入力バッファ1211に格納したままにし、ステップS193の処理に移行する。
一方、出力待ちのフレームを共有バッファ1051に出力可能である場合(ステップS191:Yesルート)、廃棄部1291は、フレームを共有バッファ1051に出力する(ステップS189)。そしてステップS193の処理に移行する。
そして、廃棄部1291は、処理の終了指示があった場合には処理を終了する(ステップS193:Yesルート)。処理を終了しない場合には(ステップS193:Noルート)、引き続き処理を実行するため、ステップS181の処理に戻る。
以上のようにすれば、共有バッファの使用量の変化に応じて設定された閾値に基づき、フレームの廃棄を行うことができるようになる。また、EPDが有効でないフローのフレームを共有バッファに出力できない場合に、入力バッファに待機させておくことができるので、フレームの廃棄を抑制することができるようになる。
また、本実施の形態の中継装置は、このような構成を採用しているので、第7の実施の形態の中継装置と同様の効果を有する。
[実施の形態9]
図31に、第9の実施の形態の中継装置の機能ブロック図を示す。第9の実施の形態の中継装置は、例えばレイヤ2のスイッチである。中継装置は、受信ポート1011及び1013と、分類部1031及び1033と、分配部1261及び1263と、入力バッファ1211乃至1217と、廃棄部1291乃至1297と、共有バッファ1051と、送信スケジューリング部1391及び1393と、送信ポート1091及び1093と、監視部1111と、バッファデータ格納部1131と、検出部1311と、重み付け処理部1351と、閾値算出部1371とを含む。
受信ポート1011は、受信したフレームを分類部1031に出力する。分類部1031は、入力されたフレームに対して、フローを識別するための情報を付与し、分配部1261に出力する。分配部1261は、フローを識別するための情報に応じて、フレームを入力バッファ1211又は入力バッファ1213に格納する。廃棄部1291は、フロー毎に設定された閾値に基づきフレームを廃棄し、廃棄しないフレームを共有バッファ1051に格納する。送信スケジューリング部1391は、入力された重み付け値及び所定のアルゴリズムに基づきフレームの送信順序を決定し、決定された送信順序に従ってフレームを送信ポート1091に出力する。送信ポート1091は、入力されたフレームを宛先の装置に送信する。監視部1111は、共有バッファ1051の使用量をフロー毎に算出する。また、監視部1111は、共有バッファ1051の使用量の変化量を算出し、バッファデータ格納部1131に格納する。検出部1311は、バッファデータ格納部1131に格納されているデータを用いて、共有バッファ1051の使用量が変化したことを検出する。そして、検出部1311は、共有バッファ1051の使用量の変化を検出した場合には、重み付け処理部1351及び閾値算出部1371に処理を指示する。重み付け処理部1351は、バッファデータ格納部1131に格納されているデータに基づき、フレーム送信の優先度を表す重み付け値をフロー毎に算出し、送信スケジューリング部1391に出力する。閾値算出部1371は、バッファデータ格納部1131に格納されているデータに基づき、共有バッファ1051の使用量についての閾値をフロー毎に算出し、廃棄部1291乃至1297に出力する。
受信ポート1013の機能は、受信ポート1011の機能と同様である。分類部1033の機能は、分類部1031の機能と同様である。分配部1263の機能は、分配部1261の機能と同様である。入力バッファ1213乃至1217の機能は、入力バッファ1211の機能と同様である。廃棄部1293乃至1297の機能は、廃棄部1291の機能と同様である。送信スケジューリング部1393の機能は、送信スケジューリング部1391の機能と同様である。送信ポート1093の機能は、送信ポート1091の機能と同様である。
本実施の形態の監視部1111の処理は第4の実施の形態で説明したものと同じであるので、説明を省略する。また、検出部1311及び重み付け処理部1351の処理は第7の実施の形態で説明したものと同じであるので、説明を省略する。さらに、廃棄部1291乃至1297の処理は第8の実施の形態で説明したものと同じであるので、説明を省略する。
本実施の形態の中継装置は、このような構成を採用しているので、第8の実施の形態の中継装置と同様の効果を有する。また、本実施の形態においては、フロー毎に入力バッファが設けられており、各入力バッファには、異なる1の廃棄部が対応付けられている。このような構成を採用することで、フロー毎のフレームの廃棄を行いやすくなるので、中継装置内においてより効率的にフレームを処理することができるようになっている。
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明した中継装置の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上で述べた実施の形態においては、フレームの送信順序を決定する際のアルゴリズムとしてラウンドロビンを使用しているが、他のアルゴリズムを使用してもよい。
また、各処理部及びバッファ等の数は、上で示した数に限られない。
また、上で述べた実施の形態においては、フロー毎にフレームを処理しているが、例えば分類部がフレームに対してポートを識別するための情報を付与することにより、ポート毎にフレームを処理するようにしてもよい。
また、第4乃至第6の実施の形態で述べた流入量制御と、第7乃至第9の実施の形態で述べたパケットの廃棄の閾値の制御とを併用してもよい。これによって、共有バッファの管理をより柔軟に行うことができるようになる。
以上述べた本技術の実施の形態をまとめると以下のようになる。
本実施の形態の第1の態様に係る中継装置は、(A)受信したフレームを格納する第1バッファと、(B)受信したフレームを第1バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる第1バッファの使用量が当該通信種別について設定されている第1の閾値を超えるか判断し、超えると判断した場合には当該受信したフレームを廃棄する廃棄部と、(C)少なくとも2以上の時点について通信種別毎に第1バッファの使用量を算出し、第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、(D)第1バッファの使用量の変化を表す数値に基づき、通信種別毎に第1の閾値を算出し、廃棄部に対して設定する設定部とを有する。
このようにすれば、通信種別毎にフレーム廃棄が抑制されるように制御されると共に、バッファ溢れが生じにくくなる。よって、通信品質の劣化を抑制できるようになる。
また、上で述べた設定部が、(d1)第1バッファの使用量が増加している通信種別について、当該通信種別について既に設定されている第1の閾値よりも小さい第1の閾値を算出し、第1バッファの使用量が減少している通信種別について、当該通信種別について既に設定されている第1の閾値以上の第1の閾値を算出するようにしてもよい。このようにすれば、使用量が増加している通信種別がバッファを占有してバッファ溢れの発生を抑制できると共に、使用量が減少している通信種別についてはフレームの廃棄による通信品質の劣化を抑制できるようになる。
また、本中継装置が、(E)第1バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断する判断部と、(F)判断部により、第1の通信種別のフレームの送信を停止させると判断された場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する出力部とをさらに有してもよい。このようにすれば、例えばバッファ使用量の増加が著しい通信種別及びフレームの廃棄に対する許容度が低い通信種別(例えばFCoE)に対しても適切に対処することができるようになる。
また、本中継装置が、(G)第1バッファの使用量の変化を表す数値に基づき、送信の優先度を通信種別毎に算出する第2算出部と、(H)送信の優先度に基づき、第1バッファに格納されているフレームの送信スケジュールを決定する決定部とをさらに有してもよい。これにより、特定の通信種別によるバッファの占有等を抑制できるようになる。
また、本中継装置が、(I)受信したフレームを格納する第2バッファをさらに有し、第2バッファから出力されたフレームが、第1バッファに入力されるようにしてもよい。そして、上で述べた出力部が、(f1)受信したフレームを格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる第2バッファの使用量が当該通信種別について設定されている第2の閾値を超えるか判断し、(f2)第2の閾値を超えると判断した場合、当該受信したフレームの送信元の装置宛にフレームの送信を停止することを要求する停止要求を出力するようにしてもよい。これにより、通信状況の変化に対してより柔軟に対処することができるようになる。
また、上で述べた第2バッファ及び廃棄部の数が複数であってもよい。そして、受信したフレームは、当該フレームの通信種別に応じて複数の第2バッファのいずれかに格納され、複数の第2バッファの各々には、複数の廃棄部のうち異なる1の廃棄部が対応付けられていてもよい。通信種別毎のフレームの廃棄及び送信停止の判断を効率的に行うことができるようになる。
本実施の形態の第2の態様に係る中継装置は、(J)受信したフレームを格納する第1バッファと、(K)少なくとも2以上の時点について通信種別毎に第1バッファの使用量を算出し、第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、(L)第1バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての第1の閾値を通信種別毎に算出する第2算出部と、(M)受信したフレームを第1バッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された第1の閾値以下である場合に、当該受信したフレームを第1バッファに格納する制御部とを有する。
このようにすれば、バッファ使用量の変化に対して適切な流入データ量が設定されるようになるので、バッファ溢れに対して柔軟に対処することができるようになる。これにより、通信品質の劣化を抑制できるようになる。なお、流入データ量の制限を行うので、フレームの廃棄に対する許容度が低い通信種別(例えばFCoE)に対しても有効である。
また、上で述べた第2算出部は、第1バッファの使用量が増加している通信種別についての第1の閾値が第1バッファの使用量が減少している通信種別についての第1の閾値よりも小さくなるように、通信種別毎に第1の閾値を算出するようにしてもよい。このようにすれば、使用量が増加している通信種別がバッファを占有することによるバッファ溢れを抑制できると共に、使用量が減少している通信種別の帯域を制限しすぎることを抑制できるようになる。
また、本中継装置が、(N)受信したフレームを第1バッファよりも先に格納する第2バッファと、(O)受信したフレームを第2バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる第2バッファの使用量が当該通信種別について設定されている第2の閾値を超えるか判断し、超えると判断した場合には当該受信したフレームの送信元の装置宛にフレームの送信を停止することを要求する停止要求を出力する出力部とをさらに有してもよい。これにより、通信状況の変化に対してより柔軟に対処することができるようになる。
また、上で述べた第2バッファの数が複数であり、受信したフレームは、当該フレームの通信種別に応じて複数の第2バッファのいずれかに格納されるようにしてもよい。このようにすれば、通信種別毎の流入データ量の管理及び送信停止の判断をより効率的に行うことができるようになる。
本実施の形態の第3の態様に係る中継装置は、(P)受信したフレームを格納するバッファと、(Q)少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、バッファの使用量の変化を表す数値を通信種別毎に算出する算出部と、(R)バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断する判断部と、(S)判断部が第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する出力部とを有する。
このようにすれば、通信種別毎のバッファ使用量の変化に応じて適切にフレームの送信を停止させることができる。これにより、バッファ溢れを抑制し、通信品質の劣化を抑制できるようになる。
本実施の形態の第1の態様に係る制御方法は、(T)少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、バッファの使用量の変化を表す数値を通信種別毎に算出し、(U)バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、(V)受信したフレームをバッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによるバッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄する処理を含む。
本実施の形態の第2の態様に係る制御方法は、(W)少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、バッファの使用量の変化を表す数値を通信種別毎に算出し、(X)バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての閾値を算出し、(Y)受信したフレームをバッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された閾値以下である場合に、当該受信したフレームをバッファに格納する処理を含む。
本実施の形態の第3の態様に係る制御方法は、(Z)少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、バッファの使用量の変化を表す数値を通信種別毎に算出し、(AA)バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断し、(AB)第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する処理を含む。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
受信したフレームを格納する第1バッファと、
受信したフレームを前記第1バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる前記第1バッファの使用量が当該通信種別について設定されている第1の閾値を超えるか判断し、超えると判断した場合には当該受信したフレームを廃棄する廃棄部と、
少なくとも2以上の時点について通信種別毎に前記第1バッファの使用量を算出し、前記第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、
前記第1バッファの使用量の変化を表す数値に基づき、通信種別毎に前記第1の閾値を算出し、前記廃棄部に対して設定する設定部と、
を有する中継装置。
(付記2)
前記設定部が、前記第1バッファの使用量が増加している通信種別について、当該通信種別について既に設定されている第1の閾値よりも小さい第1の閾値を算出し、前記第1バッファの使用量が減少している通信種別について、当該通信種別について既に設定されている第1の閾値以上の第1の閾値を算出する
付記1記載の中継装置。
(付記3)
前記第1バッファの使用量の変化を表す数値に基づき、送信の優先度を通信種別毎に算出する第2算出部と、
前記送信の優先度に基づき、前記第1バッファに格納されているフレームの送信スケジュールを決定する決定部と、
をさらに有する付記1又は2記載の中継装置。
(付記4)
受信したフレームを格納する第1バッファと、
少なくとも2以上の時点について通信種別毎に前記第1バッファの使用量を算出し、前記第1バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、
前記第1バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての第1の閾値を通信種別毎に算出する第2算出部と、
受信したフレームを前記第1バッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された第1の閾値以下である場合に、当該受信したフレームを前記第1バッファに格納する制御部と、
を有する中継装置。
(付記5)
前記第2算出部は、前記第1バッファの使用量が増加している通信種別についての第1の閾値が前記第1バッファの使用量が減少している通信種別についての第1の閾値よりも小さくなるように、通信種別毎に前記第1の閾値を算出する
付記4記載の中継装置。
(付記6)
受信したフレームを前記第1バッファよりも先に格納する第2バッファと、
受信したフレームを前記第2バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる前記第2バッファの使用量が当該通信種別について設定されている第2の閾値を超えるか判断し、
前記第2の閾値を超えると判断した場合、当該受信したフレームの送信元の装置宛にフレームの送信を停止することを要求する停止要求を出力する出力部と、
をさらに有する付記4又は5記載の中継装置。
(付記7)
前記第2バッファの数が複数であり、
受信したフレームは、当該フレームの通信種別に応じて複数の第2バッファのいずれかに格納される
付記6記載の中継装置。
(付記8)
受信したフレームを格納するバッファと、
少なくとも2以上の時点について通信種別毎に前記バッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出する算出部と、
前記バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断する判断部と、
前記判断部が第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する出力部と、
を有する中継装置。
(付記9)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄する
処理を、コンピュータに実行させるためのプログラム。
(付記10)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄する
処理を、コンピュータが実行する制御方法。
(付記11)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての閾値を算出し、
受信したフレームを前記バッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された閾値以下である場合に、当該受信したフレームを前記バッファに格納する
処理を、コンピュータに実行させるためのプログラム。
(付記12)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、単位時間当たりのフレームの流入データ量についての閾値を算出し、
受信したフレームを前記バッファに格納したとしても当該受信したフレームの通信種別と一致する通信種別のフレームの単位時間当たりの流入データ量が当該受信したフレームの通信種別について算出された閾値以下である場合に、当該受信したフレームを前記バッファに格納する
処理を、コンピュータが実行する制御方法。
(付記13)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断し、
第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する
処理を、コンピュータに実行させるためのプログラム。
(付記14)
少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
前記バッファの使用量の変化を表す数値に基づき、通信種別毎に当該通信種別のフレームの送信を停止させるか判断し、
第1の通信種別のフレームの送信を停止させると判断した場合に、当該第1の通信種別のフレームの送信を停止することを要求する停止要求を生成し、当該第1の通信種別のフレームの送信元の装置宛に出力する
処理を、コンピュータが実行する制御方法。
201 第1バッファ 203 第1算出部
205 設定部 207 廃棄部
301 第1バッファ 303 第1算出部
305 第2算出部 307 制御部
401 バッファ 403 算出部
405 判断部 407 出力部
1011,1013 受信ポート
1031,1033 分類部
1051 共有バッファ
1071,1073 選択部
1091,1093 送信ポート
1111 監視部 1131 バッファデータ格納部
1151 フロー制御部 1171 流量決定部
1191 スケジューリング部
1211,1213 入力バッファ
1231,1233 フロー制御部
1251,1253 計測部
1261,1263 分配部
1271,1273 選択部
1291,1293 廃棄部
1311 検出部 1351 重み付け処理部
1371 閾値算出部
1391,1393 送信スケジューリング部

Claims (6)

  1. 受信したフレームを格納するバッファと、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる前記バッファの使用量が当該通信種別について設定されている閾値を超えるか判断し、超えると判断した場合には当該受信したフレームを廃棄する廃棄部と、
    少なくとも2以上の時点について通信種別毎に前記バッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、
    前記バッファの使用量の変化を表す数値に基づき、通信種別毎に前記閾値を算出し、前記廃棄部に対して設定する設定部と、
    を有し、
    前記設定部が、前記バッファの使用量が増加している通信種別について、当該通信種別について既に設定されている閾値よりも小さい閾値を算出し、前記バッファの使用量が減少している通信種別について、当該通信種別について既に設定されている閾値以上の閾値を算出する
    継装置。
  2. 受信したフレームを格納するバッファと、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別に一致する通信種別のフレームによる前記バッファの使用量が当該通信種別について設定されている閾値を超えるか判断し、超えると判断した場合には当該受信したフレームを廃棄する廃棄部と、
    少なくとも2以上の時点について通信種別毎に前記バッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出する第1算出部と、
    前記バッファの使用量の変化を表す数値に基づき、通信種別毎に前記閾値を算出し、前記廃棄部に対して設定する設定部と、
    記バッファの使用量の変化を表す数値に基づき、送信の優先度を通信種別毎に算出する第2算出部と、
    前記送信の優先度に基づき、前記バッファに格納されているフレームの送信スケジュールを決定する決定部と、
    を有る中継装置。
  3. 少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
    前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄する
    処理を、コンピュータに実行させ
    前記閾値を通信種別毎に算出する処理において、
    前記バッファの使用量が増加している通信種別について、当該通信種別について既に設定されている閾値より小さい閾値を算出し、前記バッファの使用量が減少している通信種別について、当該通信種別について既に設定されている閾値以上の閾値を算出する
    プログラム。
  4. 少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
    前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄する
    処理を、コンピュータが実行し、
    前記閾値を通信種別毎に算出する処理において、
    前記バッファの使用量が増加している通信種別について、当該通信種別について既に設定されている閾値より小さい閾値を算出し、前記バッファの使用量が減少している通信種別について、当該通信種別について既に設定されている閾値以上の閾値を算出する
    制御方法。
  5. 少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
    前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄し、
    前記バッファの使用量の変化を表す数値に基づき、送信の優先度を通信種別毎に算出し、
    前記送信の優先度に基づき、前記バッファに格納されているフレームの送信スケジュールを決定する
    処理を、コンピュータに実行させるためのプログラム。
  6. 少なくとも2以上の時点について通信種別毎にバッファの使用量を算出し、前記バッファの使用量の変化を表す数値を通信種別毎に算出し、
    前記バッファの使用量の変化を表す数値に基づき、フレーム廃棄のための閾値を通信種別毎に算出し、
    受信したフレームを前記バッファに格納すると当該受信したフレームの通信種別と一致する通信種別のフレームによる前記バッファの使用量が当該受信したフレームの通信種別について設定されている閾値を超える場合、当該受信したフレームを廃棄し、
    前記バッファの使用量の変化を表す数値に基づき、送信の優先度を通信種別毎に算出し、
    前記送信の優先度に基づき、前記バッファに格納されているフレームの送信スケジュールを決定する
    処理を、コンピュータが実行する制御方法。
JP2011234899A 2011-10-26 2011-10-26 バッファ管理のためのプログラム、中継装置及び制御方法 Active JP5919727B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011234899A JP5919727B2 (ja) 2011-10-26 2011-10-26 バッファ管理のためのプログラム、中継装置及び制御方法
US13/610,168 US9008109B2 (en) 2011-10-26 2012-09-11 Buffer management of relay device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011234899A JP5919727B2 (ja) 2011-10-26 2011-10-26 バッファ管理のためのプログラム、中継装置及び制御方法

Publications (2)

Publication Number Publication Date
JP2013093761A JP2013093761A (ja) 2013-05-16
JP5919727B2 true JP5919727B2 (ja) 2016-05-18

Family

ID=48172395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011234899A Active JP5919727B2 (ja) 2011-10-26 2011-10-26 バッファ管理のためのプログラム、中継装置及び制御方法

Country Status (2)

Country Link
US (1) US9008109B2 (ja)
JP (1) JP5919727B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8305890B2 (en) * 2008-09-15 2012-11-06 At&T Intellectual Property I, L.P. Method and apparatus for prioritizing voice over internet protocol signaling messages
KR102207986B1 (ko) * 2013-06-24 2021-01-26 주식회사 케이티 무선랜 시스템에서 트래픽 제어 방법 및 장치
KR20150072512A (ko) * 2013-12-19 2015-06-30 한국전자통신연구원 단방향 지연을 제어하는 프레임 전송 방법 및 장치
EP3629558B1 (en) 2014-12-04 2021-07-28 Sony Group Corporation Data processing apparatus, data processing method, and program
US9946819B2 (en) * 2015-01-06 2018-04-17 International Business Machines Corporation Simulating a large network load
US10979935B2 (en) * 2016-12-19 2021-04-13 Telefonaktiebolaget Lm Ericsson (Publ) Method of controlling traffic flows in a radio communications network, remote node and radio communications network
JP6992271B2 (ja) * 2017-04-06 2022-01-13 株式会社デンソー 無線通信端末
JP7000808B2 (ja) * 2017-11-14 2022-01-19 富士通株式会社 情報処理装置、情報処理方法およびプログラム

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5268900A (en) * 1991-07-05 1993-12-07 Codex Corporation Device and method for implementing queueing disciplines at high speeds
US5901140A (en) * 1993-10-23 1999-05-04 International Business Machines Corporation Selective congestion control mechanism for information networks
JP2820098B2 (ja) * 1996-02-06 1998-11-05 日本電気株式会社 バッファ管理システム
US6034945A (en) 1996-05-15 2000-03-07 Cisco Technology, Inc. Method and apparatus for per traffic flow buffer management
US5901147A (en) * 1996-08-30 1999-05-04 Mmc Networks, Inc. Apparatus and methods to change thresholds to control congestion in ATM switches
JPH10322338A (ja) * 1997-05-14 1998-12-04 Nippon Telegr & Teleph Corp <Ntt> Atmブロック転送ノード
US6496515B2 (en) * 1997-05-26 2002-12-17 Alcatel Method for prioritised data transmission and data transmission arrangement
JP2000209250A (ja) 1999-01-13 2000-07-28 Hitachi Cable Ltd スイッチングハブにおけるフロ―制御方式
JP3107077B2 (ja) * 1999-02-22 2000-11-06 住友電気工業株式会社 通信方法及び通信装置
CA2279728A1 (en) * 1999-08-06 2001-02-06 Spacebridge Networks Corporation Soft, prioritized early packet discard (spepd) system
JP4484317B2 (ja) * 2000-05-17 2010-06-16 株式会社日立製作所 シェーピング装置
US7082163B2 (en) * 2000-11-20 2006-07-25 Matsushita Electric Industrial Co., Ltd. Picture coding method, picture coding apparatus and image relaying apparatus
US7180857B2 (en) * 2000-11-24 2007-02-20 Matsushita Electric Industrial Co., Ltd Apparatus and method for flow control
WO2002045322A2 (en) * 2000-11-29 2002-06-06 Pulsent Corporation Method and apparatus for combining dedicated and shared networks for efficient data transmission
JP3526269B2 (ja) * 2000-12-11 2004-05-10 株式会社東芝 ネットワーク間中継装置及び該中継装置における転送スケジューリング方法
GB0031535D0 (en) * 2000-12-22 2001-02-07 Nokia Networks Oy Traffic congestion
US20020126673A1 (en) * 2001-01-12 2002-09-12 Nirav Dagli Shared memory
US20020141427A1 (en) * 2001-03-29 2002-10-03 Mcalpine Gary L. Method and apparatus for a traffic optimizing multi-stage switch fabric network
JP2002330165A (ja) * 2001-04-27 2002-11-15 Fujitsu Ltd 輻輳制御装置
US20030016625A1 (en) * 2001-07-23 2003-01-23 Anees Narsinh Preclassifying traffic during periods of oversubscription
US7212534B2 (en) * 2001-07-23 2007-05-01 Broadcom Corporation Flow based congestion control
US7215639B2 (en) * 2001-08-31 2007-05-08 4198638 Canada Inc. Congestion management for packet routers
US8125902B2 (en) * 2001-09-27 2012-02-28 Hyperchip Inc. Method and system for congestion avoidance in packet switching devices
KR100429897B1 (ko) * 2001-12-13 2004-05-03 한국전자통신연구원 공유 버퍼형 스위치의 적응 버퍼 배분 방법 및 이에사용되는 스위치
US7545814B2 (en) * 2002-02-28 2009-06-09 Nokia Corporation Method and system for dynamic remapping of packets for a router
US6957369B2 (en) * 2002-05-30 2005-10-18 Corrigent Systems Ltd. Hidden failure detection
US8149703B2 (en) * 2002-06-26 2012-04-03 Qualcomm Atheros, Inc. Powerline network bridging congestion control
JP2004104192A (ja) 2002-09-05 2004-04-02 Toyo Commun Equip Co Ltd バッファオーバーフロー検出方法および回路
US7274665B2 (en) * 2002-09-30 2007-09-25 Intel Corporation Packet storm control
US7286511B2 (en) * 2002-11-07 2007-10-23 Koninklijke Philips Electronics N.V. System and method for an IEEE 802.11 access point to prevent traffic suffering bad link quality from affecting other traffic
US7792118B2 (en) * 2003-06-19 2010-09-07 Polytechnic University Switch module memory structure and per-destination queue flow control for use in a switch
US7508763B2 (en) * 2003-09-04 2009-03-24 Hewlett-Packard Development Company, L.P. Method to regulate traffic congestion in a network
US8018851B1 (en) * 2004-06-30 2011-09-13 Marvell Israel (Misl) Ltd. Flow control for multiport PHY
US8879388B2 (en) * 2006-05-30 2014-11-04 Broadcom Corporation Method and system for intrusion detection and prevention based on packet type recognition in a network
JP4664243B2 (ja) * 2006-06-29 2011-04-06 富士通株式会社 通信装置
US7693070B2 (en) * 2007-03-15 2010-04-06 International Business Machines Corporation Congestion reducing reliable transport packet retry engine
JP2008271017A (ja) 2007-04-18 2008-11-06 Fujitsu Ltd ファブリックスイッチ、バッファ容量制御方法、およびバッファ容量制御プログラム
JP4388124B2 (ja) * 2008-04-25 2009-12-24 株式会社東芝 サーバ装置、通信システム及びページング実行方法
US7978607B1 (en) * 2008-08-29 2011-07-12 Brocade Communications Systems, Inc. Source-based congestion detection and control
EP2359544A1 (en) * 2008-11-11 2011-08-24 Telefonaktiebolaget L M Ericsson (publ) Method and device for enabling indication of congestion in a telecommunications network
US20110130099A1 (en) * 2009-05-22 2011-06-02 Qualcomm Incorporated Systems, apparatus and methods for distributed scheduling to facilitate interference management
JP4726978B2 (ja) * 2009-09-14 2011-07-20 中国電力株式会社 輻輳制御装置及び輻輳制御方法
KR101163750B1 (ko) * 2010-10-21 2012-07-10 광주과학기술원 다수 플로우의 쓰루풋 공평성을 관리하는 플로우 제어 노드, 송신 노드, 플로우 제어 방법 및 전송률 제어 방법
JP5601193B2 (ja) * 2010-12-22 2014-10-08 富士通株式会社 ネットワーク中継システム、ネットワーク中継装置、輻輳状態通知方法、及びプログラム

Also Published As

Publication number Publication date
US9008109B2 (en) 2015-04-14
US20130107890A1 (en) 2013-05-02
JP2013093761A (ja) 2013-05-16

Similar Documents

Publication Publication Date Title
JP5919727B2 (ja) バッファ管理のためのプログラム、中継装置及び制御方法
US11784920B2 (en) Algorithms for use of load information from neighboring nodes in adaptive routing
JP5659125B2 (ja) 中継装置、中継方法
US8520522B1 (en) Transmit-buffer management for priority-based flow control
US20180331965A1 (en) Control channel usage monitoring in a software-defined network
TWI543568B (zh) 用於分封交換網路的系統及其方法、在分封交換網路中用於接收資料包的交換機中的方法
US10165031B2 (en) Methods and systems for incremental calculation of latency variation
JP2014517571A (ja) 階層型スケジューリングおよびシェーピング
US20210344600A1 (en) Congestion Control Measures in Multi-Host Network Adapter
JP7127743B2 (ja) 通信装置、通信方法及びプログラム
CN114531399B (zh) 一种内存阻塞平衡方法、装置、电子设备和存储介质
KR102371485B1 (ko) 이더넷 기반 네트워크 내 트래픽 제어 방법
KR20060097538A (ko) Ip 망에서의 서비스 품질 향상을 위한 패킷 트래픽 관리장치 및 그 방법
JP2016122960A (ja) 管理システム、ネットワーク管理方法、ネットワークシステム
JP2015149537A (ja) 経路制御装置及びシステム及び方法
US11962490B2 (en) Systems and methods for per traffic class routing
JP6802763B2 (ja) 中継装置及び帯域制御方法
US20150049770A1 (en) Apparatus and method
CN110519553B (zh) 视频流转发控制方法、装置、电子设备及可读存储介质
CN117714381A (zh) Sdn数据中心网络下具有流感知的公平拥塞控制方法及设备
JP2019161632A (ja) 情報処理装置、情報処理システム及び情報処理プログラム
Rani et al. Literature Survey for Improving Quality of Service for Multimedia Applications
JP2005260430A (ja) 可変ポリシング制御機能を有するパケット中継装置
JP2016165091A (ja) 通信装置および通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150616

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160217

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160226

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160328

R150 Certificate of patent or registration of utility model

Ref document number: 5919727

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150