JP2019161632A - Information processing device, information processing system, and information processing program - Google Patents
Information processing device, information processing system, and information processing program Download PDFInfo
- Publication number
- JP2019161632A JP2019161632A JP2018130948A JP2018130948A JP2019161632A JP 2019161632 A JP2019161632 A JP 2019161632A JP 2018130948 A JP2018130948 A JP 2018130948A JP 2018130948 A JP2018130948 A JP 2018130948A JP 2019161632 A JP2019161632 A JP 2019161632A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- flow
- packet
- information
- unit
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】通信性能を向上させる情報処理装置、情報処理システム及び情報処理プログラムを提供することを目的とする。
【解決手段】スイッチ100は、フロー識別部103、フロー判別処理部104及びキュー切替処理部105を有する。前記フロー識別部103は、複数のパケットを送信する処理のフローを識別する。前記フロー判別処理部104は、前記フローに関する特徴量を取得する。前記キュー切替処理部105は、前記フロー判別処理部104により取得された前記フローに関する前記特徴量を基に前記フローのパケットの送信を制御する。
【選択図】図2An information processing apparatus, an information processing system, and an information processing program for improving communication performance are provided.
A switch includes a flow identification unit, a flow discrimination processing unit, and a queue switching processing unit. The flow identification unit 103 identifies a flow of processing for transmitting a plurality of packets. The flow discrimination processing unit 104 acquires a feature amount related to the flow. The queue switching processing unit 105 controls transmission of packets of the flow based on the feature amount related to the flow acquired by the flow determination processing unit 104.
[Selection] Figure 2
Description
本発明は、情報処理装置、情報処理システム及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus, an information processing system, and an information processing program.
近年、サーバコンピュータやクライアントコンピュータの性能の向上が目覚ましく、これらの性能向上に合わせて通信の高性能化の要望が高まっている。そして、通信の高性能化を実現するために、通信の送信元と送信先とが決められたデータの流れであるフローのレベルの制御が求められている。 In recent years, the performance of server computers and client computers has been remarkably improved, and the demand for higher communication performance has been increasing in accordance with these performance improvements. In order to realize high performance of communication, control of a flow level that is a data flow in which a communication source and a transmission destination are determined is required.
例えば、フローには、ストレージへのアクセスのトラフィックや問い合わせを行うトラフィックなどがある。ストレージへのアクセスの場合、大量のデータが転送されることが多く、大きなパケットを用いてデータが転送されることが多い。これに対して、問い合わせを行う場合、小さなパケットを用いてデータが転送されることが多い。このように、フロー毎にパケットの大きさが異なるため、フローレベルでの制御を行うことでパケット転送の効率を上げることができ、通信性能の向上を実現することができる。 For example, the flow includes traffic for accessing the storage and traffic for inquiring. In the case of access to storage, a large amount of data is often transferred, and data is often transferred using a large packet. On the other hand, when making an inquiry, data is often transferred using small packets. As described above, since the size of the packet is different for each flow, the efficiency of packet transfer can be increased by performing control at the flow level, and the communication performance can be improved.
このようなフローレベルの制御を行う場合に、送信するパケットを蓄えるためのキューをフローに合わせて切り替えることが考えられる。例えば、小さいパケットであればレイテンシを低くすることが求められるため、キューに格納されたパケットが早く処理されることが好ましい。これに対して、大きいパケットであれば、スループットを高くすることが求められるため、キューを空にせずに常にパケットが存在することが好ましい。そこで、例えば、小さいパケットを格納するキューと大きいパケットのキューとを異ならせることが考えられる。 When performing such flow level control, it is conceivable to switch the queue for storing packets to be transmitted in accordance with the flow. For example, since a small packet is required to have a low latency, it is preferable that a packet stored in the queue is processed early. On the other hand, since a large packet is required to increase the throughput, it is preferable that the packet always exists without emptying the queue. Therefore, for example, it is conceivable to make the queue for storing small packets different from the queue for large packets.
このように、フローレベルの制御によりキューを切り替える方法として、ACL(Access Control List)を用いてヘッダ情報を比較し、転送量に応じてキューを切り替える従来技術がある。また、ハッシュ値を用いてフローを特定し、キューにパケットが残っていないフローの振り分け先を負荷の軽いキューに変更する従来技術がある。 As described above, as a method of switching queues by flow level control, there is a conventional technique in which header information is compared using an ACL (Access Control List) and the queues are switched according to the transfer amount. Further, there is a conventional technique in which a flow is specified using a hash value, and a distribution destination of a flow in which no packet remains in the queue is changed to a light-load queue.
しかしながら、ACLを用いてキューを切り替える従来技術では、キューの切り替えを行うための設定を手動で行うことになり、自動化が困難であるとともに高速な切り替えに対応することが困難である。また、フローを特定してパケットがキューに残っていないフローのキューの切り替えを行う従来技術を用いても、フローの種類に応じた自動的なキューの切り替えは行っておらず、柔軟にキューを切り替えることは困難である。 However, in the conventional technology for switching queues using ACL, settings for switching queues are manually performed, and it is difficult to automate and to cope with high-speed switching. Also, even when using the conventional technology that switches the queue of a flow that does not have packets remaining in the queue by specifying the flow, the queue is not automatically switched according to the flow type, and the queue can be flexibly set. It is difficult to switch.
開示の技術は、上記に鑑みてなされたものであって、通信性能を向上させる情報処理装置、情報処理システム及び情報処理プログラムを提供することを目的とする。 The disclosed technology has been made in view of the above, and an object thereof is to provide an information processing apparatus, an information processing system, and an information processing program that improve communication performance.
本願の開示する情報処理装置、情報処理システム及び情報処理プログラムの一つの態様において、フロー識別部は、複数のパケットを送信する処理のフローを識別する。特徴量取得部は、前記フローに関する特徴量を取得する。送信制御部は、前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットの送信を制御する。 In one aspect of the information processing apparatus, the information processing system, and the information processing program disclosed in the present application, the flow identification unit identifies a flow of processing for transmitting a plurality of packets. The feature amount acquisition unit acquires a feature amount related to the flow. The transmission control unit controls transmission of the packet of the flow based on the feature amount acquired by the feature amount acquisition unit.
1つの側面では、本発明は、通信性能を向上させることができる。 In one aspect, the present invention can improve communication performance.
以下に、本願の開示する情報処理装置、情報処理システム及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び情報処理プログラムが限定されるものではない。 Hereinafter, embodiments of an information processing apparatus, an information processing system, and an information processing program disclosed in the present application will be described in detail based on the drawings. The information processing apparatus, the information processing system, and the information processing program disclosed in the present application are not limited by the following embodiments.
図1は、情報処理システムの概略構成図である。図1に示すように本実施例に係る情報処理システム1は、スイッチ100及びサーバ201〜206を有する。
FIG. 1 is a schematic configuration diagram of an information processing system. As illustrated in FIG. 1, the
サーバ201〜206は、それぞれスイッチ100に接続される。そして、サーバ201〜206は、それぞれが相互にスイッチ100を介してパケットの送受信を行う。以下では、サーバ201〜206をそれぞれ区別せずに表す場合、サーバ200という。そして、パケットの送信元のサーバ200を「送信側のサーバ200」と呼び、パケットの送信先のサーバ200を「受信側のサーバ200」と呼ぶ。例えば、サーバ201がサーバ204にパケットを送信する場合、送信側のサーバ200であるサーバ201が「第1通信装置」の一例にあたり、受信側のサーバ200であるサーバ204が「第2通信装置」の一例にあたる。
スイッチ100は、送信側のサーバ200から送信された受信側のサーバ200宛てのパケットを受信する。そして、スイッチ100は、サーバ200に接続されたポートから受信側のサーバ200へ向けて、送信側のサーバ200から送信されたパケットを送信する。
The
ここで、図1では、1台のスイッチ100でサーバ200同士が接続される場合を図示したが、接続形態はこれに限らない、スイッチ100は他の通信機器を介して送信側のサーバ200と受信側のサーバ200とを接続してもよい。また、図1では、6台のサーバ201〜206を図示したが、台数に特に制限は無い。
Here, in FIG. 1, the case where the
ここで、送信側のサーバ200から受信側のサーバ200へのパケット送信によるフローについて説明する。送信側のサーバ200と受信側のサーバ200とは、一連の関連するパケットを送信する通信を行う。このような、一連のパケットを送信する処理を「フロー」と言う。
Here, a flow by packet transmission from the
パケットは、パケットの送受信を制御する情報を含むヘッダと送信するデータを含むペイロードを有する。パケットのヘッダには、フローを識別するための情報であるパケット情報が格納される。ここで、同じフローとして送受信されるパケットのそれぞれには、フローを識別するための情報として同じ情報が格納される。 The packet has a header including information for controlling transmission / reception of the packet and a payload including data to be transmitted. Packet information that is information for identifying a flow is stored in the header of the packet. Here, the same information is stored in each packet transmitted and received as the same flow as information for identifying the flow.
例えば、パケットのヘッダには、宛先アドレス、送信元情報、宛先情報、プロトコル、並びに、送信元ポート番号及び宛先ポート番号などが格納される。例えば、送信元情報は送信元IP(Internet Protocol)などであり、宛先情報は宛先IPなどである。本実施例では、フローを識別する情報として、5−tupleと呼ばれる、送信元IP、宛先IP、送信元ポート番号、宛先ポート番号及びプロトコルの5つの情報を用いる。ただし、フローを識別する情報は、フローとして表される一連のパケットを送信する処理を特定できればよく、他の情報を用いてもよい。 For example, the header of the packet stores a destination address, transmission source information, destination information, protocol, transmission source port number, destination port number, and the like. For example, the transmission source information is a transmission source IP (Internet Protocol) or the like, and the destination information is a destination IP or the like. In this embodiment, five pieces of information called a source, destination IP, source port number, destination port number, and protocol are used as information for identifying a flow. However, the information for identifying the flow may be any information as long as it can identify a process for transmitting a series of packets represented as a flow.
次に、図2を参照して、スイッチ100の詳細について説明する。図2は、実施例に係るスイッチのブロック図である。このスイッチ100が、「情報処理装置」の一例にあたる。
Next, the details of the
スイッチ100は、図2に示すように、受信ポート111〜112、中継処理部102、フロー識別部103、フロー判別処理部104、キュー切替処理部105、データ保持部106、送信キューセット171〜172及び送信ポート181〜182を有する。さらに、データ保持部106は、フロー識別テーブル161、転送量テーブル162及びキュー情報管理テーブル163を有する。
As illustrated in FIG. 2, the
受信ポート111〜112は、同じ機能を有しており、以下では、それぞれを区別しない場合、「受信ポート110」という。また、送信ポート181〜182は、同じ機能を有しており、以下では、それぞれを区別しない場合、「送信ポート180」という。
The
受信ポート111〜112は、図示しないが1つ又はいくつかのサーバ200に接続される。受信ポート111〜112は、接続先の送信側のサーバ200からパケットの入力を受ける。そして、受信ポート111〜112は、入力されたパケットを中継処理部102へ出力する。
The
中継処理部102は、パケットの入力を受信ポート110から受ける。中継処理部102は、ヘッダに格納された宛先情報及び宛先ポートなどの受信側のサーバ200の情報からそのパケットを出力する送信ポート180を決定する。そして、中継処理部102は、決定した送信ポート180の識別子である送信ポートID(IDentifier)とともに送信元IP、宛先IP、送信元ポート番号、宛先ポート番号及びプロトコルを含むパケット情報、並びにパケットをフロー識別部103へ出力する。ここで、パケット情報は、実際にはパケットのヘッダに含まれるため、パケットを送ることでパケット情報も送ることができる。ただし、ここでの説明では、パケット情報が授受されることを明示するため、パケットとともにパケット情報も送信するように説明する。
The
図3は、中継処理部から送信キューセットの間の各地点において受け渡される情報をまとめた図である。図3に示すように、中継処理部102からフロー識別部103へ送信されるパケット送信の制御情報として、パケット情報及び送信ポートIDを含む情報セット121が送信される。
FIG. 3 is a diagram summarizing information transferred at each point between the relay processing unit and the transmission queue set. As illustrated in FIG. 3, an information set 121 including packet information and a transmission port ID is transmitted as control information for packet transmission transmitted from the
図2に戻って説明を続ける。フロー識別テーブル161は、例えば、図4に示したテーブルである。図4は、フロー識別テーブルの一例を表す図である。 Returning to FIG. 2, the description will be continued. The flow identification table 161 is, for example, the table shown in FIG. FIG. 4 is a diagram illustrating an example of a flow identification table.
フロー識別テーブル161は、送信元IP、宛先IP、送信元ポート番号、宛先ポート番号及びプロトコルを含むヘッダ情報、アドレス及び頻度情報が対応付けられて登録される。頻度情報とは、ある時点での各フローに含まれるパケットが送られる頻度を表す。さらに、後述するようにフロー識別テーブル161のアドレスは、フローIDにあたる。 In the flow identification table 161, header information including a source IP, a destination IP, a source port number, a destination port number, and a protocol, an address, and frequency information are registered in association with each other. The frequency information represents the frequency with which a packet included in each flow at a certain time is sent. Furthermore, as will be described later, the address of the flow identification table 161 corresponds to the flow ID.
本実施例に係るフロー識別テーブル161は、情報の内容を与えることで、その情報が格納されたエントリのアドレスを与えるCAM(Content Addressable Memory)である。 The flow identification table 161 according to the present embodiment is a CAM (Content Addressable Memory) that gives the address of the entry in which the information is stored by giving the content of the information.
フロー識別部103は、パケット情報及び送信ポートIDを含む情報セット121を取得する。さらに、フロー識別部103は、パケット本体の入力を受ける。次に、フロー識別部103は、取得したパケット情報に含まれる送信元IP、宛先IP、送信元ポート番号、宛先ポート番号及びプロトコルを含むヘッダ情報を用いてフロー識別テーブル161を検索する。
The
ヘッダ情報に一致するエントリが存在する場合、フロー識別部103は、そのヘッダ情報が表すフローの識別情報であるフローIDとして、そのヘッダ情報に対応するアドレスを取得する。このフローIDが取得したパケットが属するフローの識別子である。さらに、フロー識別部103は、そのフローIDに対応する頻度情報を1つインクリメントする。さらに、フロー識別部103は、一致するエントリが存在したことを表すFoundのメッセージをエントリの検索結果を表すエントリ情報とする。
When there is an entry that matches the header information, the
また、ヘッダ情報に一致するエントリが存在せず、且つ、エントリに空きがある場合、フロー識別部103は、ヘッダ情報を空きエントリに登録し、頻度情報に1を登録する。そして、フロー識別部103は、登録したエントリのアドレスをそのヘッダ情報に対応するフローIDとして取得する。このフローIDが取得したパケットが属するフローの識別子となる。さらに、フロー識別部103は、エントリを新しく生成したことを表すNewのメッセージをエントリ情報とする。
If there is no entry that matches the header information and there is a vacancy in the entry, the
また、ヘッダ情報に一致するエントリが存在せず、且つ、エントリに空きがない場合、フロー識別部103は、エントリが存在しないことを表すNotfoundのメッセージをエントリ情報とする。この場合、フロー識別部103は、フローIDが存在しないことを表す情報をフローIDとしてもよい。
When there is no entry that matches the header information and there is no empty entry, the
その後、フロー識別部103は、パケット本体とともに、図3に示すようにパケット情報、送信ポートID、フローID及びエントリ情報を含む情報セット131をフロー判別処理部104へ出力する。
Thereafter, the
また、フロー識別部103は、フロー識別テーブル161のエントリの管理を一定の周期で行う。具体的には、フロー識別部103は、フロー識別テーブル161のエントリの管理を行う周期を予め記憶する。そして、フロー識別テーブル161のエントリの管理のタイミングが到来すると、フロー識別部103は、フロー識別テーブル161からエントリを1つずつ選択する。
Further, the
そして、フロー識別部103は、選択したエントリにおける頻度情報が0か否かを判定する。頻度情報が0でない場合、フロー識別部103は、選択したエントリの頻度情報を1つデクリメントする。すなわち、フロー識別部103から出力されたパケットは、出力されてから十分な期間が経過すれば送信ポート180から既に出力された可能性が高い。そこで、フロー識別部103は、出力時に1つ増やした頻度情報を1つ減らすことでそのフローに属するスイッチ100内に滞留しているパケットの数を予測することができる。そして、頻度情報が0であればスイッチ100内にそのフローに属するパケットが存在していない蓋然性が高いと予測できる。
Then, the
そこで、頻度情報が0の場合、フロー識別部103は、選択したエントリのフローIDに対応するキューカウンタの値をキュー情報管理テーブル163から取得する。そして、フロー識別部103は、キューカウンタが0か否かを判定する。キューカウンタが0であれば、フロー識別部103は、送信キューセット170の中にそのフローに属するパケットが残っていないことが確認できるので、スイッチ100内にそのフローに属するパケットが存在していないと予測できる。そこで、フロー識別部103は、選択したエントリを削除する。
Therefore, when the frequency information is 0, the
フロー識別部103は、以上の処理をフロー識別テーブル161の全てのエントリに対して行い、フロー識別テーブル161を管理する。これにより、不要なエントリを削除することができ、フロー識別部103は、フロー識別テーブル161を有効に使用することができる。
The
転送量テーブル162は、各フローの転送量を表すテーブルである。図5は、転送量テーブルの一例を表す図である。図5に示すように、転送量テーブル162には、フローIDに対応させて各フローの特徴量として転送量が登録される。図5においてFIDはフローID(Flow ID)を表す。また、本実施例の場合、1つのフローIDに対して全ての送信ポート180のカウンタを1つのエントリで管理する。これは、通信の多くはユニキャスト通信であり、出力先となる送信ポート180は1つに限定されることが多い。そのため、1つのフローIDに対して全ての送信ポート180を1つのエントリで管理してもほとんどの場合は問題にならないことを理由とする。
The transfer amount table 162 is a table representing the transfer amount of each flow. FIG. 5 is a diagram illustrating an example of the transfer amount table. As shown in FIG. 5, the transfer amount is registered in the transfer amount table 162 as the feature amount of each flow in association with the flow ID. In FIG. 5, FID represents a flow ID. In this embodiment, the counters of all
フロー判別処理部104は、パケット本体とともに、図3に示すようにパケット情報、送信ポートID、フローID及びエントリ情報を含む情報セット131の入力をフロー識別部103から受ける。そして、フロー判別処理部104は、取得したエントリ情報を確認する。
The flow
エントリ情報がFoundの場合、フロー判別処理部104は、転送量テーブル162における取得したフローIDに対応するエントリを特定する。そして、フロー判別処理部104は、パケット情報からパケットのサイズを取得して、転送量テーブル162における取得したフローIDに対応するエントリの転送量にパケットの大きさを加算して書き込む。
When the entry information is found, the flow
エントリ情報がNewの場合、フロー判別処理部104は、転送量テーブル162にあらたにフローIDに対応するエントリを作成する。そして、フロー判別処理部104は、転送量を初期化する。その後、フロー判別処理部104は、パケット情報からパケットのサイズを取得して、作成したエントリの転送量にパケットの大きさを書き込む。
When the entry information is New, the flow
次に、エントリ情報がFound又はNewのいずれの場合も、フロー判別処理部104は、パケット情報を確認して、そのパケットの出力キューとして特定キューが指定されているか否かを判定する。ここで、出力キューとは、パケットを入力して保持させ、その後、送信ポート180へ保持させたパケットを出力させるキューを指す。例えば、パケットの優先度が高い場合には、優先的に処理される予め決められた特定キューが出力キューとしてそのパケットに指定される。
Next, regardless of whether the entry information is Found or New, the flow
パケットに特定キューが指定されている場合、フロー判別処理部104は、指定された特定キューを出力キューの候補として指定する候補キューとする。具体的には、フロー判別処理部104は、パケット情報に格納されたパケットの優先度を確認する。例えば、パケットの優先度は0〜7で表される。この場合、数字が大きくなるほど優先度が高い。そして、パケットの優先度が7であれば、フロー判別処理部104は、優先的に処理される特定キューをそのパケットの候補キューとする。
When a specific queue is specified for the packet, the flow
一方、パケットに特定キューが指定されていない場合、フロー判別処理部104は、転送量が予め決められた閾値以上か否かを判定する。転送量が予め決められた閾値以上の場合、フロー判別処理部104は、送信ポート181に接続する送信キューセット170が有する複数のキューの内のロングキューを、そのパケットの候補キューとする。ロングキューとは、転送量の大きいフローに属するパケットを格納するために割り当てられたキューであり、スループットを高くすることを目的とするキューである。送信キューセット170については後で詳細に説明する。このロングキューが、「第1キュー」の一例にあたる。
On the other hand, when the specific queue is not specified for the packet, the flow
これに対して、転送量が予め決められた閾値未満の場合、フロー判別処理部104は、送信ポート181に接続する送信キューセット170が有する複数の送信キューの内のショートキューを、そのパケットの候補キューとする。ショートキューとは、転送量の小さいフローに属するパケットを格納するために割り当てられたキューであり、レイテンシを低くすることを目的とするキューである。このショートキューが、「第2キュー」の一例にあたる。
On the other hand, when the transfer amount is less than a predetermined threshold, the flow
一方、エントリがNotfoundの場合、フロー判別処理部104は、デフォルトのキューを、そのパケットの候補キューとする。
On the other hand, when the entry is Notfound, the flow
その後、フロー判別処理部104は、パケット本体とともに、図3に示すパケット情報、フローID、エントリ情報及び候補キューの識別情報である候補キューIDを含む情報セット141をキュー切替処理部105へ出力する。このフロー判別処理部104が、「特徴量取得部」の一例にあたる。
Thereafter, the flow
キュー情報管理テーブル163は、フロー毎に、そのフローのパケットの出力キューの情報及び各フローに対する出力キューの状態を表すテーブルである。図6は、キュー情報管理テーブルの一例を表す図である。キュー情報管理テーブル163は、フローIDとQ(Que)IDとを対応付けて記憶する。QIDは、各フローIDを有するフローのパケットが送信されたキュー、すなわち各フローIDを有するフローの現在のキューを表す。また、キュー情報管理テーブル163は、フローID毎に、各フローIDを有するフローの現在のキューに格納されたそのフローのパケット数を表すキューカウンタを有する。 The queue information management table 163 is a table representing the output queue information of the packets of the flow and the state of the output queue for each flow for each flow. FIG. 6 is a diagram illustrating an example of the queue information management table. The queue information management table 163 stores a flow ID and a Q (Que) ID in association with each other. The QID represents a queue to which a packet of a flow having each flow ID is transmitted, that is, a current queue of a flow having each flow ID. Further, the queue information management table 163 has a queue counter that represents the number of packets of the flow stored in the current queue of the flow having each flow ID for each flow ID.
キュー切替処理部105は、パケット本体とともに、パケット情報、フローID、エントリ情報及び候補キューIDを含む情報セット141の入力をフロー判別処理部104から受ける。そして、キュー切替処理部105は、エントリ情報を確認する。
The queue
エントリ情報がFoundの場合、キュー切替処理部105は、取得したフローIDの現在のキューのキューIDをキュー情報管理テーブル163から取得する。そして、キュー切替処理部105は、候補キューIDと現在のキューのキューIDが一致するか否かにより、キューの切り替えが発生するか否かを判定する。キューの切り替えが発生しない場合、キュー切替処理部105は、出力キューを候補キューとする。この場合、出力キューを現在のキューのまま維持することになる。
When the entry information is found, the queue switching
一方、キューの切り替えが発生する場合、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する。キューカウンタの値が0であれば、そのフローの現在のキューにそのフローのパケットが残っていないといえる。すなわち、キュー切替処理部105は、そのフローの現在のキューに、そのフローのパケットが残っている状態か否かを判定する。そして、キューカウンタの値が0であれば、現在のキューにパケットが残っていないので、キュー切替処理部105は、そのフローの出力キューを現在のキューから候補キューに変更する。
On the other hand, when queue switching occurs, the queue switching
これに対して、キューカウンタの値が0でなく、現在のキューにパケットが残っている場合、キュー切替処理部105は、そのフローの出力キューを候補キューとされなかった現在のキューのまま維持する。これにより、パケットが特定のキューに残っているにも関わらず他のキューにパケットを格納することを回避することができ、パケットの順序逆転を回避することができる。
On the other hand, when the value of the queue counter is not 0 and the packet remains in the current queue, the queue switching
また、エントリ情報がNewの場合、キュー切替処理部105は、キュー情報管理テーブル163に新たに取得したフローIDを登録して対応するエントリを作成する。さらに、キュー切替処理部105は、生成したエントリのキューカウンタ値を0にして初期化する。そして、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。
When the entry information is New, the queue switching
また、エントリ情報がNotfoundの場合、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。
If the entry information is Notfound, the queue switching
その後、キュー切替処理部105は、そのフローの出力キューとして決定したキューを有する送信キューセット170へパケット、パケット情報及びそのパケットが属するフローのFIDを出力する。さらに、パケットの出力とともに、キュー切替処理部105は、出力したパケットの出力キューのキューIDをパケットの出力先の送信キューセット170へ出力する。また、キュー切替処理部105は、出力したパケットが属するフローのフローID及び加算を指示するコマンドをキュー情報管理テーブル163へ出力する。これにより、キュー切替処理部105は、キュー情報管理テーブル163における指定したフローIDに対応するキューカウンタを1つインクリメントさせる。このキュー切替処理部105が、「送信制御部」の一例にあたる。
Thereafter, the queue switching
図7は、送信キューセットのブロック図である。送信キューセット170は、図7に示すように、セレクタ701、マルチプレクサ703、スケジューラ704及び複数のキュー721〜723を有する。以下では、キュー721〜723のそれぞれを区別しない場合、「キュー720」という。
FIG. 7 is a block diagram of the transmission queue set. As shown in FIG. 7, the transmission queue set 170 includes a
セレクタ701は、パケット情報、フローID及びパケットの入力をキュー切替処理部105から受ける。さらに、セレクタ701は、そのパケットの出力キューを表すキューIDの入力をキュー切替処理部105から受ける。すなわち、セレクタ701は、図3に示すパケット情報、フローID及びキューIDを含む情報セット151、並びに、パケットの入力をキュー切替処理部105から受ける。
The
そして、セレクタ701は、指定されたキューIDを有するキュー720にパケット情報、フローID及びパケットを出力する。
Then, the
キュー切替処理部105から入力されたキューIDで出力キューとして指定されたキュー720は、パケット情報、フローID及びパケットの入力をセレクタ701から受ける。そして、キュー720は、入力されたパケット情報、フローID及びパケットを格納する。その後、キュー720は、取得タイミングの古い順に保持するパケット情報、フローID及びパケットをマルチプレクサ703へ順次出力していく。
The queue 720 specified as the output queue by the queue ID input from the queue switching
スケジューラ704は、マルチプレクサ703が出力するパケットの調停を行う。例えば、スケジューラ704は、ラウンドロビンなどでパケットを出力するキュー720を選択してマルチプレクサ703から出力させる。
The scheduler 704 arbitrates packets output from the
マルチプレクサ703は、スケジューラ704から指定されたキュー720からパケット情報、フローID及びパケットを取得する。そして、マルチプレクサ703は、取得したパケット情報及びパケットを送信ポート180へ出力する。さらに、マルチプレクサ703は、パケットが属するフローのフローIDを、減算を指示するコマンドとともにキュー情報管理テーブル163へ出力する。これにより、送信キューセット170は、キュー情報管理テーブル163における指定したフローIDに対応するキューカウンタを1つデクリメントさせる。
The
図2に戻って説明を続ける。送信ポート180は、パケット情報に含まれる宛先情報で指定された受信側のサーバ200に向けてパケットを送信する。
Returning to FIG. 2, the description will be continued. The
次に、図8を参照して、フロー識別部103によるフローの識別処理の流れについて説明する。図8は、フロー識別部によるフローの識別処理のフローチャートである。
Next, the flow of flow identification processing by the
フロー識別部103は、パケットとともにパケット情報及び送信ポートIDの入力を中継処理部102から受ける。そして、フロー識別部103は、パケット情報を用いてフロー識別テーブル161を検索する(ステップS101)。本実施例では、フロー識別部103は、パケット情報に含まれる送信元IP、宛先IP、送信ポート番号、宛先ポート番号及びプロトコルをフロー識別テーブル161へ出力することで検索を行う。
The
そして、フロー識別部103は、パケットが属するフローに該当するフローを検出する(ステップS102)。本実施例の場合、フロー識別テーブル161がCAMであるので、フロー識別部103は、送信した情報に対応する情報を有するエントリがある場合、そのエントリに対応するフローIDをフロー識別テーブル161から取得する。そして、フローIDを取得することができた場合、フロー識別部103は、該当するフローを検出したと判定する。
Then, the
該当するフローを検出した場合(ステップS102:肯定)、フロー識別部103は、パケットのエントリ情報をFoundとする。さらに、フロー識別部103は、そのフロー識別テーブル161におけるそのフローIDに対応する頻度情報を1つインクリメントする(ステップS103)。
When a corresponding flow is detected (step S102: Yes), the
これに対して、該当するフローを検出しない場合(ステップS102:否定)、フロー識別部103は、フロー識別テーブル161に空エントリが存在するか否かを判定する(ステップS104)。
On the other hand, when a corresponding flow is not detected (No at Step S102), the
空エントリが存在する場合(ステップS104:肯定)、フロー識別部103は、パケットのエントリ情報をNewとする。さらに、フロー識別部103は、フロー識別テーブル161の空エントリにフローの識別情報を登録し、頻度情報を1とする(ステップS105)。そして、フロー識別部103は、登録した空エントリの識別情報をフローIDとして取得する。
When there is an empty entry (step S104: Yes), the
これに対して、空エントリが存在しない場合(ステップS104:否定)、フロー識別部103は、パケットのエントリ情報をNotfoundとする(ステップS106)。この場合、フロー識別部103は、フローIDが存在しないことを表す情報をフローIDとして取得する。
On the other hand, if there is no empty entry (No at Step S104), the
次に、図9を参照して、フロー識別部103によるエントリ管理の流れについて説明する。図9は、フロー識別部によるエントリ管理のフローチャートである。
Next, the flow of entry management by the
フロー識別部103は、判定タイミングが到来したか否かを判定する(ステップS201)。判定タイミングが到来していない場合(ステップS201:否定)、フロー識別部103は、判定タイミングが到来するまで待機する。
The
これに対して、判定タイミングが到来した場合(ステップS201:肯定)、フロー識別部103は、未判定のエントリをフロー識別テーブル161から1つ選択する(ステップS202)。
On the other hand, when the determination timing has arrived (step S201: affirmative), the
そして、フロー識別部103は、選択したエントリにおける頻度情報が0か否かを判定する(ステップS203)。頻度情報が0でない場合(ステップS203:否定)、フロー識別部103は、選択したエントリの頻度情報を1つデクリメントする(ステップS204)。
Then, the
これに対して、頻度情報が0の場合(ステップS203:肯定)、フロー識別部103は、選択したエントリのフローIDに対応するキューカウンタの値をキュー情報管理テーブル163から取得する。そして、フロー識別部103は、キューカウンタが0か否かを判定する(ステップS205)。
On the other hand, if the frequency information is 0 (step S203: Yes), the
キューカウンタが0の場合(ステップS205:肯定)、フロー識別部103は、選択したエントリを削除する(ステップS206)。これに対して、キューカウンタが0でない場合(ステップS205:否定)、フロー識別部103は、ステップS207へ進む。
When the queue counter is 0 (step S205: Yes), the
その後、フロー識別部103は、未判定のエントリが残っているか否かを判定する(ステップS207)。未判定のエントリが残っている場合(ステップS207:肯定)、フロー識別部103は、ステップS202へ戻る。
Thereafter, the
これに対して、未判定のエントリが残っていない場合(ステップS207:否定)、フロー識別部103は、エントリの管理処理を終了する。
On the other hand, when there is no undetermined entry remaining (step S207: No), the
次に、図10を参照して、フロー判別処理部104によるフロー判別処理の流れについて説明する。図10は、フロー判別処理部によるフロー判別処理のフローチャートである。
Next, with reference to FIG. 10, the flow of flow discrimination processing by the flow
フロー判別処理部104は、パケット情報、送信ポートID、フローID及びエントリ情報の入力をフロー識別部103から受ける。そして、フロー判別処理部104は、エントリ情報がFoundか否かを判定する(ステップS301)。エントリ情報がFoundの場合(ステップS301:肯定)、フロー判別処理部104は、ステップS304へ進む。
The flow
これに対して、エントリ情報がFoundでない場合(ステップS301:否定)、フロー判別処理部104は、エントリ情報がNewか否かを判定する(ステップS302)。
On the other hand, when the entry information is not Found (step S301: No), the flow
エントリ情報がNewの場合(ステップS302:肯定)、フロー判別処理部104は、転送量テーブル162に新たに取得したフローIDに対応するエントリを作成して転送量を初期化する(ステップS303)。
When the entry information is New (step S302: Yes), the flow
エントリ情報がFound又はステップS303の後に、フロー判別処理部104は、取得したフローIDに対応する転送量テーブル162の転送量に取得したパケットの大きさを加算して登録する(ステップS304)。
After the entry information is found or after step S303, the flow
その後、フロー判別処理部104は、パケットに特定キューが出力キューとして指定されているか否かを判定する(ステップS305)。
Thereafter, the flow
特定キューが指定されていない場合(ステップS305:否定)、フロー判別処理部104は、取得したフローIDに対応する転送量が閾値以上か否かを判定する(ステップS306)。
When the specific queue is not specified (No at Step S305), the flow
取得したフローIDに対応する転送量が閾値以上の場合(ステップS306:肯定)、フロー判別処理部104は、ロングキューをそのパケットの候補キューとする(ステップS307)。
When the transfer amount corresponding to the acquired flow ID is greater than or equal to the threshold (step S306: Yes), the flow
これに対して、取得したフローIDに対応する転送量が閾値未満の場合(ステップS306:否定)、フロー判別処理部104は、ショートキューをそのパケットの候補キューとする(ステップS308)。
On the other hand, when the transfer amount corresponding to the acquired flow ID is less than the threshold (No at Step S306), the flow
一方、特定キューが指定されている場合(ステップS305:肯定)、フロー判別処理部104は、特定キューをそのパケットの候補キューとする(ステップS309)。
On the other hand, when a specific queue is designated (step S305: Yes), the flow
また、エントリ情報がNewでない場合(ステップS302:否定)、すなわち、エントリ情報がNotfoundの場合、フロー判別処理部104は、デフォルトのキューをそのパケットの候補キューとする(ステップS310)。
When the entry information is not New (step S302: No), that is, when the entry information is Notfound, the flow
次に、図11を参照して、キュー切替処理部105によるキューの切り替え処理の流れについて説明する。図11は、キュー切替処理部によるキューの切り替え処理のフローチャートである。
Next, a flow of queue switching processing by the queue switching
キュー切替処理部105は、パケット情報、フローID、エントリ情報及び候補キューIDの入力をフロー判別処理部104から受ける。そして、キュー切替処理部105は、エントリ情報がFoundか否かを判定する(ステップS401)。
The queue
エントリ情報がFoundの場合(ステップS401:肯定)、キュー切替処理部105は、候補キューと現在のキューのキューIDが同一か否かにより、キューの切り替えが発生するか否かを判定する(ステップS402)。
When the entry information is found (step S401: affirmative), the queue switching
キューの切り替えが発生する場合(ステップS402:肯定)、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する(ステップS403)。
When queue switching occurs (Step S402: Yes), the queue switching
キューカウンタが0の場合(ステップS403:肯定)、キュー切替処理部105は、パケットの出力キューを候補キューに切り替える(ステップS404)。
When the queue counter is 0 (step S403: Yes), the queue switching
これに対して、キューの切り替えが発生しない場合(ステップS402:否定)及びキューカウンタが0でない場合(ステップS403:否定)、キュー切替処理部105は、出力キューを現在のキューに維持する(ステップS406)。
On the other hand, if the queue switching does not occur (step S402: negative) and the queue counter is not 0 (step S403: negative), the queue switching
一方、エントリ情報がFoundでない場合(ステップS401:否定)、キュー切替処理部105は、エントリ情報がNewか否かを判定する(ステップS405)。エントリ情報がNewでない場合(ステップS405:否定)、すなわち、エントリ情報がNotfoundの場合、キュー切替処理部105は、ステップS408に進む。
On the other hand, when the entry information is not Found (No at Step S401), the queue switching
これに対して、エントリ情報がNewの場合(ステップS405:肯定)、キュー切替処理部105は、キュー情報管理テーブル163に取得したフローIDに対応するエントリを作成して作成したエントリを初期化し(ステップS407)、ステップS408に進む。
In contrast, when the entry information is New (step S405: Yes), the queue switching
キュー切替処理部105は、出力キューを候補キューに設定する(ステップS408)。
The queue
次に、図12を参照して、キュー720に対するエンキュー処理の流れについて説明する。図12は、キューに対するエンキュー処理のフローチャートである。 Next, the flow of enqueue processing for the queue 720 will be described with reference to FIG. FIG. 12 is a flowchart of enqueue processing for a queue.
キュー切替処理部15は、出力するパケットが属するフローIDに対応するキュー情報管理テーブル163のエントリのキューカウンタを1つインクリメントする(ステップS501)。 The queue switching processing unit 15 increments the queue counter of the entry of the queue information management table 163 corresponding to the flow ID to which the output packet belongs by one (step S501).
次に、キュー切替処理部15は、キューIDに対応するキュー720にパケット情報、フローID及びパケットをエンキューする(ステップS502)。 Next, the queue switching processing unit 15 enqueues the packet information, the flow ID, and the packet in the queue 720 corresponding to the queue ID (Step S502).
次に、図13を参照して、キュー720に対するデキュー処理の流れについて説明する。図13は、キューに対するデキュー処理のフローチャートである。 Next, the flow of dequeue processing for the queue 720 will be described with reference to FIG. FIG. 13 is a flowchart of dequeue processing for a queue.
キュー720は、パケット情報、フローID及びパケットをデキューして、送信ポート180へ出力する(ステップS601)。 The queue 720 dequeues the packet information, flow ID, and packet, and outputs them to the transmission port 180 (step S601).
その後、キュー720は、フローIDに対応するキュー情報管理テーブル163のエントリのキューカウンタを1つデクリメントする(ステップS602)。 Thereafter, the queue 720 decrements the queue counter of the entry of the queue information management table 163 corresponding to the flow ID by one (step S602).
ここで、本実施例では、候補キューを決定するための特徴量として転送量を用いる場合で説明したが、特徴量はフローの種類を判別できる情報であれば他の情報を用いてもよい。例えば、単位時間あたりの転送量の増分を表す転送量の増加速度を特徴量として用いてもよい。この場合、フロー判別処理部104は、一定期間毎に転送量の増分を測定し、測定結果が予め決められた増分閾値以上の場合はロングキューを候補キューとし、測定結果が増分閾値未満の場合はショートキューを候補キューとする。
Here, in this embodiment, the case where the transfer amount is used as the feature amount for determining the candidate queue has been described. However, other information may be used as the feature amount as long as it is information that can identify the type of flow. For example, an increase rate of the transfer amount representing an increase in the transfer amount per unit time may be used as the feature amount. In this case, the flow
また、本実施例では、特定キュー以外に、ロングキューとショーキューという2種類のキュー720にパケットの送信先を分ける場合で説明したが、キュー720の数及び種類はこれに限らず、フローの種類に応じた分類が可能であれば他の数や種類のキュー720を用いてもよい。 In this embodiment, the packet transmission destination is divided into two types of queues 720, that is, the long queue and the show queue, in addition to the specific queue. However, the number and types of the queues 720 are not limited to this, and the flow As long as classification according to type is possible, other numbers and types of queues 720 may be used.
例えば、フロー識別部103が、パケット情報を用いて、フローの種類として、ストレージトラフィック、ストリーミング及びそれ以外のフローという分類を行う場合を考える。この場合、キュー720は、ストレージトラフィック、ストリーミング及びそれ以外のフローのそれぞれに対応する3種類のキュー720が用意される。そして、キュー切替処理部105は、フロー判別処理部104により判別されたフローの種類に応じてパケットの出力キューを決定する。
For example, consider a case where the
また、これらのキューの構成を組み合わせることも可能である。例えば、キュー720を、優先キューである特定キュー、ストレレージトラフィックにおけるロングキュー及びショートキュー、ストリーミング用のキュー、並びに、それ以外のトラフィックにおけるロングキュー及びショートキューの6本用意してもよい。 It is also possible to combine these queue configurations. For example, six queues 720 may be prepared: a specific queue that is a priority queue, a long queue and a short queue for storage traffic, a queue for streaming, and a long queue and a short queue for other traffic.
以上に説明したように、本実施例に係るスイッチは、パケットを受信すると、パケットが属するフローを識別し、そのフローに関する特徴量に応じて出力キューの候補を決定する。さらに、スイッチは、候補キューにそのフローに属するパケットが残っていない場合に、候補キューに出力キューを切り替えパケットを切替後の出力キューに格納する。これにより、本実施例に係るスイッチは、パケットの順番を守りつつ、フローの特徴量に応じて自動且つ高速度のフローの判別が可能となり、パケットを格納するキューを動的且つ高速で切り替えることができる。したがって、フローレベルでの制御によりキューの切り替えを行うことができ、通信性能を向上させることができる。 As described above, when receiving the packet, the switch according to the present embodiment identifies the flow to which the packet belongs, and determines an output queue candidate according to the feature amount related to the flow. Further, when there are no packets belonging to the flow in the candidate queue, the switch switches the output queue to the candidate queue and stores the packet in the output queue after switching. As a result, the switch according to the present embodiment can automatically and at high speed discriminate the flow according to the feature amount of the flow while keeping the order of the packets, and dynamically and rapidly switch the queue for storing the packets. Can do. Therefore, the queue can be switched by the control at the flow level, and the communication performance can be improved.
特に、本実施例に係るスイッチは、フロー毎の転送量に応じてパケットの出力キューを切り替えることができ、短いパケットと長いパケットとを分別してキューに格納することができる。これにより、低レイテンシが求められるキューと、高スループットが求められるキューとを分けることができ、各フローの特性に応じたキューの選択を行うことで通信性能を向上させることができる。 In particular, the switch according to the present embodiment can switch the output queue of packets according to the transfer amount for each flow, and can separate short packets and long packets and store them in the queue. As a result, queues that require low latency and queues that require high throughput can be separated, and communication performance can be improved by selecting queues according to the characteristics of each flow.
次に、実施例2について説明する。本実施例に係るスイッチは、フロー識別テーブルとしてハッシュ値により検索を行うテーブルを用いることが実施例1と異なる。本実施例に係るスイッチも図2のブロック図で表される。以下の説明では、実施例1と同様の各部の動作については説明を省略する。 Next, Example 2 will be described. The switch according to the present embodiment is different from the first embodiment in that a table that performs a search using a hash value is used as a flow identification table. The switch according to this embodiment is also represented by the block diagram of FIG. In the following description, the description of the operation of each part similar to that of the first embodiment is omitted.
図14は、実施例2に係るフロー識別テーブルの一例を示す図である。図14に示すように、本実施例に係るフロー識別テーブル161は、パケット情報に基づくハッシュ値に対応させたアドレスにヘッダ情報が登録される。例えば、本実施例では、送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルから求めたハッシュ値が用いられる。 FIG. 14 is a diagram illustrating an example of a flow identification table according to the second embodiment. As shown in FIG. 14, in the flow identification table 161 according to the present embodiment, header information is registered at an address corresponding to a hash value based on packet information. For example, in this embodiment, a hash value obtained from the source IP, destination IP, source port, destination port, and protocol is used.
フロー識別部103は、中継処理部102から取得したパケット情報から送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルを取得する。そして、フロー識別部103は、取得した送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルからハッシュ値を求める。
The
次に、フロー識別部103は、算出したハッシュ値をアドレスとしてフロー識別テーブル161を読み出す。そのエントリが使用中であり、読み出したエントリのヘッダ情報がパケットのヘッダ情報と一致する場合、フロー識別部103は、パケットのエントリ情報をFoundとする。また、フロー識別部103は、読み出したエントリのアドレス、すなわちハッシュ値をフローIDとして取得する。さらに、フロー識別部103は、ハッシュ値をアドレスとするエントリの頻度情報を1つインクリメントする。
Next, the
これに対して、ハッシュ値をアドレスとするエントリが未使用の場合、フロー識別部103は、その空きエントリにパケットのヘッダ情報を登録して頻度情報を1とする。そして、フロー識別部103は、パケットのエントリ情報をNewとする。
On the other hand, when the entry having the hash value as an address is unused, the
また、ハッシュ値をアドレスとするエントリが使用中であり、そのエントリのヘッダ情報がパケットのヘッダ情報と一致しない場合、フロー識別部103は、そのエントリの頻度情報が0であるかどうかを判定する。そして、頻度情報が0であった場合、フロー識別部103は、そのエントリに対応するフローIDのキューカウンタの値をキュー情報管理テーブル163から取得する。そして、フロー識別部103は、キューカウンタが0であれば、そのエントリのヘッダ情報を登録して頻度情報を1とする。さらに、フロー識別部103は、パケットのエントリ情報をNewとする。頻度情報が0でない場合、あるいは頻度情報が0であるがキューカウンタが0でない場合、フロー識別部103は、パケットのエントリ情報をNotfoundとする。
If an entry whose address is a hash value is in use and the header information of the entry does not match the header information of the packet, the
これらと並行して、フロー識別部103は、実施例1と同様に、フロー識別テーブル161を定期的にスキャンし、0を最小値として各エントリの頻度情報を1つデクリメントする。
In parallel with these, the
次に、図15を参照して、本実施例に係るフロー識別部103によるフロー識別処理の流れについて説明する。図15は、実施例2に係るフロー識別部によるフロー識別処理のフローチャートである。
Next, the flow of flow identification processing by the
フロー識別部103は、中継処理部102から取得したパケット情報から送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルを取得する。そして、フロー識別部103は、取得した送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルからハッシュ値を算出する(ステップS701)。
The
次に、フロー識別部103は、算出したハッシュ値を用いてフロー識別テーブル161からフローを検索する(ステップS702)。
Next, the
そして、フロー識別部103は、パケットが属するフローに該当するフローがフロー識別テーブル161に登録されているか否かを判定する(ステップS703)。
Then, the
該当するフローが登録済みの場合(ステップS703:肯定)、フロー識別部103は、エントリ情報をFoundとして、頻度情報を1つインクリメントする(ステップS704)。
When the corresponding flow has been registered (step S703: affirmative), the
該当するフローが登録されていない場合(ステップS703:否定)、フロー識別部103は、算出したハッシュ値をアドレスとしてフロー識別テーブル161を読み出し、読み出したエントリが未使用エントリであるかいなかを判定する(ステップS705)。未使用エントリである場合(ステップS705:肯定)、フロー識別部103は、パケットのエントリ情報をNewとする。さらに、フロー識別部103は、空きエントリにハッシュ値を登録して、そのエントリの頻度情報を1とする(ステップS706)。
When the corresponding flow is not registered (step S703: No), the
これに対して、エントリが使用中の場合(ステップS705:否定)、フロー識別部103は、頻度情報が0で且つキューカウンタも0か否かを判定する(ステップS707)。
On the other hand, if the entry is in use (No at Step S705), the
頻度情報が0で且つキューカウンタも0である場合(ステップS707:肯定)、フロー識別部103は、パケットのエントリ情報をNewとする。さらに、フロー識別部103は、空きエントリにハッシュ値を登録して、そのエントリの頻度情報を1とする(ステップS706)。
If the frequency information is 0 and the queue counter is also 0 (step S707: Yes), the
これに対して、頻度情報が0でない、又は、キューカウンタが0でない場合(ステップS707:否定)、フロー識別部103は、パケットのエントリ情報をNotfoundとする(ステップS708)。
On the other hand, when the frequency information is not 0 or the queue counter is not 0 (No at Step S707), the
これらに並行して、フロー識別部103は、フロー識別テーブル161をスキャンし、0と最小値として各エントリの頻度情報を1つデクリメントする。
In parallel with these, the
ここで、本実施例では、フロー識別部103は、パケットを受信した際に空のエントリが無ければその都度、フロー識別テーブル161の管理を行う場合で説明したが、フロー識別テーブル161の管理のタイミングはこれに限らない。例えば、フロー識別部103は、実施例1と同様に一定周期でフロー識別テーブル161の管理を繰り返してもよい。逆に、実施例1において、本実施例で説明したタイミングでフロー識別テーブル161を管理してもよい。
Here, in this embodiment, the
以上に説明したように、本実施例に係るスイッチは、ハッシュ値を用いてパケットが属するフローが登録済みか否かの判定を行う。このように、CAMを用いずにハッシュテーブルを用いてフローを検索する場合であっても、スイッチは、フローレベルでの制御によりキューの切り替えを行うことができ、通信性能を向上させることができる。この場合、通常の大容量メモリでフロー識別テーブルを保持することができ、CAMと比べて、回路規模を小さくすることができ、且つ、消費電力も抑えることができる。 As described above, the switch according to this embodiment determines whether or not the flow to which the packet belongs is registered using the hash value. As described above, even when the flow is searched using the hash table without using the CAM, the switch can switch the queue by the control at the flow level, and the communication performance can be improved. . In this case, the flow identification table can be held by a normal large-capacity memory, the circuit scale can be reduced, and the power consumption can be suppressed as compared with the CAM.
次に、実施例3について説明する。本実施例に係るスイッチは、各フローについて送信ポート毎に異なるエントリを有するキュー情報管理テーブルを用いることが実施例1と異なる。本実施例に係るスイッチも図2のブロック図で表される。以下の説明では、実施例1と同様の各部の動作については説明を省略する。 Next, Example 3 will be described. The switch according to the present embodiment is different from the first embodiment in that a queue information management table having a different entry for each transmission port is used for each flow. The switch according to this embodiment is also represented by the block diagram of FIG. In the following description, the description of the operation of each part similar to that of the first embodiment is omitted.
図16は、実施例3に係るキュー情報管理テーブルの一例を表す図である。本実施例に係るキュー情報管理テーブル163は、1つのフローIDに対応するエントリが送信ポート180毎に登録される。図16は各フローIDに対応して送信ポート181〜182に対応するエントリが登録された状態を表す。ただし、キュー情報管理テーブル163は、には、フローIDに属するパケットの現在のキューとして使用中のキュー720が接続する送信ポート180が登録されていれば、全ての送信ポート181〜182が登録されなくてもよい。
FIG. 16 is a diagram illustrating an example of the queue information management table according to the third embodiment. In the queue information management table 163 according to the present embodiment, an entry corresponding to one flow ID is registered for each
キュー切替処理部105は、キュー情報管理テーブル163を用いて、各送信ポート180に接続される送信キューセット170毎に、パケットの格納状態を管理する。この場合も、キュー切替処理部105は、送信ポート180毎に、現在のキューと候補キューが異なる場合には、そのパケットが属するフローに対応するキューカウンタが0であれば、候補キューを出力キューとする。
The queue
このように、本実施例に係るスイッチは、各フローについて送信ポート毎にエントリを有するキュー情報管理テーブルを用いることで、送信ポート毎の出力キューの切替制御を行うことが可能となる。したがって、本実施例に係るスイッチは、実施例1の場合に比べてより適切なタイミングでキューの切り替えを行うことができ、通信性能をより向上させることができる。 As described above, the switch according to this embodiment can perform output queue switching control for each transmission port by using a queue information management table having an entry for each transmission port for each flow. Therefore, the switch according to the present embodiment can switch the queue at a more appropriate timing than in the case of the first embodiment, and can further improve the communication performance.
図17は、実施例4に係るスイッチのブロック図である。本実施例に係るスイッチ100は、パケット本体はキュー720に送らずに、パケットの位置を示すポインタを送ることが実施例1と異なる。以下の説明では、実施例1と同様の各部の動作については説明を省略する。本実施例に係るスイッチ100は、実施例1の各部に加えて、パケットバッファ191及び制御部192を有する。
FIG. 17 is a block diagram of a switch according to the fourth embodiment. The
受信ポート110は、パケットを受信すると、パケットバッファ191に受信したパケットを格納し、パケットバッファ191におけるパケットの格納場所を示すポインタを取得する。そして、受信ポート110は、パケットの格納場所を示すポインタとともに、中継処理部102にパケット情報を出力する。
When receiving the packet, the reception port 110 stores the received packet in the
中継処理部102、フロー識別部103、フロー判別処理部104、キュー切替処理部105はそれぞれ、パケット本体に代えて、パケットの格納場所を示すポインタを送信する。
Each of the
そして、送信キューセット170における出力キューとされたキュー720には、パケット情報、フローID及びパケットの格納場所を示すポインタが格納される。 The queue 720, which is an output queue in the transmission queue set 170, stores packet information, a flow ID, and a pointer indicating the storage location of the packet.
制御部192は、出力するパケットのパケット情報及びパケットの格納場所を示すポインタの入力を送信キューセット170から受ける。そして、制御部192は、パケットの格納場所を示すポインタを用いてパケットバッファ191に格納されたパケット本体を取得する。そして、制御部192は、パケット情報とパケット本体とを合わせて、パケットを出力した送信キューセット170に対応する送信ポート180へ出力する。
The
以上に説明したように、本実施例に係るスイッチは、パケット本体はキューに流さずにパケットの位置を示すポインタを流して、キューから出力されたポインタに応じてパケット本体を取得して出力する。このように、パケットを他の場所に格納した状態で処理を行っても、実施例1と同様の効果を得ることができる。 As described above, the switch according to the present embodiment flows the pointer indicating the position of the packet without flowing the packet body into the queue, and acquires and outputs the packet body according to the pointer output from the queue. . Thus, even if the processing is performed in a state where the packet is stored in another place, the same effect as in the first embodiment can be obtained.
(ハードウェア構成)
ここで、以上の各実施例で説明したスイッチ100は、例えば、LSI(Large Scale Integration)で実現可能である。例えば、図2及び17で例示したデータ保持部160及び送信キューセット170、並びに、図17で例示したパケットバッファ191は、LSIを用いた記憶装置により実現される。さらに、LSIを用いた記憶装置には、図2及び17で例示された中継処理部102、フロー識別部103、フロー判別処理部104及びキュー切替処理部105、並びに、図17に例示した制御部192の機能を実現するプログラムを含む各種プログラムが格納される。
(Hardware configuration)
Here, the
そして、LSIを用いた制御回路が、記憶装置から各種プログラムを読み出して実行することで、中継処理部102、フロー識別部103、フロー判別処理部104、キュー切替処理部105は及び制御部192の機能を実現する。特に、LSI化されたスイッチ100の場合、実施例4で示した態様を有する場合が多い。
The control circuit using the LSI reads out and executes various programs from the storage device, so that the
ストレージトラフィックをイーサネット(登録商標)で実現する技術として、NVMeoF(Non Volatile Memory express(登録商標) over Fabric)及びRoCE(RDMA(Remote Direct Memory Access ) over Converged Ethernet)といった技術が提案されている。そして、RoCEでは、DCQCN(Data Center Quantized Congestion Notification)という輻輳制御アルゴリズムが用いられることが多い。一方、短時間に通信が集中するマイクロバーストにより、通信性能が低下する現象が発生するおそれがあるため、そのような現象への対応も求められる。 As technologies for realizing storage traffic by Ethernet (registered trademark), technologies such as NVMeoF (Non Volatile Memory express (registered trademark) over Fabric) and RoCE (RDMA (Remote Direct Memory Access) over Converged Ethernet) have been proposed. In RoCE, a congestion control algorithm called DCQCN (Data Center Quantized Congestion Notification) is often used. On the other hand, since there is a possibility that a phenomenon in which communication performance deteriorates due to a microburst in which communication concentrates in a short time, a response to such a phenomenon is also required.
以前は、ネットワークにおける輻輳制御の技術として、キューがいっぱいになった場合に、パケットの破棄を行い、そのパケットの破棄を検出した場合に送信レートを下げているテールドロップと呼ばれる手法が用いられていた。その後、ECN(Explicit Congestion Notification)と呼ばれるネットワークにおける輻輳制御技術が用いられてきた。ECNは以下のような動作で実現される。スイッチが、予めキューの閾値を設定し、キューの長さに応じてパケットにマークを付ける。受信側装置は、パケットにつけられたマークを検出することで輻輳を検知し、送信側装置に輻輳の発生を通知する。送信側装置は、輻輳の発生の通知を受けて送信レートを下げる制御を行う。 In the past, a technique called tail drop has been used as a congestion control technique in networks, where packets are discarded when the queue is full, and the transmission rate is lowered when the discard of the packet is detected. It was. Thereafter, a congestion control technique in a network called ECN (Explicit Congestion Notification) has been used. ECN is realized by the following operation. The switch sets a queue threshold in advance, and marks the packet according to the queue length. The receiving side device detects congestion by detecting a mark attached to the packet, and notifies the transmitting side device of the occurrence of the congestion. The transmission-side apparatus performs control to lower the transmission rate upon receiving notification of occurrence of congestion.
その後、マイクロバーストを抑制する輻輳制御技術として、MA(Microburst Aware)−ECNという技術が提案された。MA−ECNでは、フローの初期時点ではECNの閾値の小さいキューにパケットを送信し、マイクロバーストが発生した際の突入時のスループットを抑えることで、他のフローへの影響を軽減させる。TCP(Transmission Control Protocol)通信では、MA−ECNによってマイクロバースト発生時でも通信スループットの低下が抑えられた。 Thereafter, a technique called MA (Microburst Aware) -ECN has been proposed as a congestion control technique for suppressing microburst. In MA-ECN, packets are transmitted to a queue with a small ECN threshold at the initial point of the flow, and the throughput upon entry when a microburst occurs is suppressed, thereby reducing the influence on other flows. In TCP (Transmission Control Protocol) communication, MA-ECN suppresses a decrease in communication throughput even when a microburst occurs.
しかしながら、RoCEでは、MA−ECNを用いても通信スループットの低下が発生する場合がある。これには、以下のような理由がある。RoCEで用いる輻輳制御方式のDCQCNでは、フローの初期段階から高いレートでパケットを送信し、且つ、キュー長が閾値付近になるように制御がなされる。これは、比較的高い通信レートが求められることと、パケットロスト防ぐためにPFCというフロー制御の技術を用いるためである。この場合、フローの開始時にマイクロバーストが発生した場合にショートキューからの出力が抑制されず、結果的にロングキューからの出力パケットにECNのためのマークが多く付加されてしまい、ロングキューを用いるフローの転送レートが下がってしまうおそれがある。そこで、DCQCNを用いる構成でマイクロバーストの発生時にも転送レートを低下させないことが求められる。 However, in RoCE, even if MA-ECN is used, a decrease in communication throughput may occur. There are the following reasons for this. In DCQCN of the congestion control method used in RoCE, control is performed so that packets are transmitted at a high rate from the initial stage of the flow and the queue length is close to the threshold value. This is because a relatively high communication rate is required and a flow control technique called PFC is used to prevent packet loss. In this case, when a microburst occurs at the start of the flow, the output from the short queue is not suppressed, and as a result, many marks for ECN are added to the output packet from the long queue, and the long queue is used. There is a risk that the transfer rate of the flow will decrease. Therefore, it is required that the transfer rate is not lowered even when a microburst occurs in the configuration using DCQCN.
図18は、輻輳制御を行うスイッチのブロック図である。本実施例に係るスイッチ100は、ショートキューの帯域制御を行うことと、輻輳制御を行い且つロングキューのキュー長によってロングキューの輻輳状態を判定し、輻輳状態でなければショートキューを候補とするパケットであってもロングキューへ回すことが実施例1と異なる。以下の説明では、実施例1と同じ各部の機能については説明を省略する。
FIG. 18 is a block diagram of a switch that performs congestion control. The
ここで、本実施例では、図18に示すように中継処理部102をフロー判別処理部104とキュー切替処理部105との間に配置した。これにより、パケットを出力する送信ポート180の決定処理が実施例1よりも後に移動するが、処理の位置の変更以外の変更はほぼない。すなわち、中継処理部102は、実施例1と同様にフロー識別部103の前に配置してもよい。
Here, in the present embodiment, the
各部の間で受け渡しされるデータは、図19のように示される。図19は、実施例5におけるスイッチの各地点において受け渡される情報をまとめた図である。すなわち、受信ポート110からフロー識別部103へ送信される情報として、パケット情報を含む情報セット211が送信される。また、フロー識別部103からフロー判別処理部104へ送信される情報として、パケット情報、フローID及びエントリ情報を含む情報セット212が送信される。また、フロー判別処理部104から中継処理部102へ送信される情報として、パケット情報、フローID、エントリ情報及び候補キューIDを含む情報セット213が送信される。また、中継処理部102からキュー切替処理部105へ送信される情報として、パケット情報、フローID、エントリ情報、候補キューID及び送信ポートIDを含む情報セット214が送信される。また、キュー切替処理部105から送信キューセット170へ送信される情報として、パケット情報、フローID及びキューIDを含む情報セット215が送信される。
Data exchanged between the units is shown in FIG. FIG. 19 is a diagram summarizing information delivered at each point of the switch in the fifth embodiment. That is, an information set 211 including packet information is transmitted as information transmitted from the reception port 110 to the
本実施例に係るキュー情報管理テーブル163は、図20に示すようにFID、QID及びキューカウンタに加えて、輻輳情報が登録される。図20は、実施例5におけるキュー情報管理テーブルの一例を示す図である。輻輳情報は、対応するQIDを有するキュー720に輻輳が発生しているか否かを表す情報である。ここで本実施例では、全てのポートを1つのエントリで管理したが、キュー情報管理テーブル163に、ポート毎にエントリを登録することも可能である。 In the queue information management table 163 according to the present embodiment, congestion information is registered in addition to the FID, QID, and queue counter as shown in FIG. FIG. 20 is a diagram illustrating an example of the queue information management table in the fifth embodiment. The congestion information is information indicating whether congestion has occurred in the queue 720 having the corresponding QID. Here, in this embodiment, all ports are managed by one entry, but it is also possible to register an entry for each port in the queue information management table 163.
キュー切替処理部105は、パケット本体とともに、パケット情報、フローID、エントリ情報、候補キューID及び送信ポートIDを含む情報セット214の入力を中継処理部102から受ける。そして、キュー切替処理部105は、エントリ情報を確認する。
The queue
エントリ情報がFoundの場合、キュー切替処理部105は、候補キューIDを確認し、候補キューがショートキューか否かを判定する。候補キューがロングキューであれば、キュー切替処理部105は、その候補キューを維持する。
When the entry information is found, the queue switching
これに対して、候補キューがショートキューの場合、キュー切替処理部105は、キュー情報管理テーブル163における各ロングキューの輻輳情報を確認して各ロングキューに輻輳が発生しているか否かを判定する。輻輳が発生していなければ、キュー切替処理部105は、候補キューをロングキューとする。これに対して、輻輳が発生している場合、キュー切替処理部105は、候補キューをショートキューのまま維持する。
On the other hand, when the candidate queue is a short queue, the queue switching
すなわち、キュー切替処理部105は、候補キューがショートキューであっても、ロングキューに輻輳が発生していなければ、ロングキューの転送レートは未だ余裕があるので、パケットをロングキューへ出力する。一方、輻輳が発生している場合、キュー切替処理部105は、ロングキューの転送レートを維持するため、ショートキューにパケットを振り分ける。
That is, even if the candidate queue is a short queue, the queue switching
その後、キュー切替処理部105は、キューの切り替えが発生するか否かを判定する。キューの切り替えが発生しない場合、キュー切替処理部105は、出力キューを候補キューとする。この場合、出力キューを現在のキューのまま維持することになる。
Thereafter, the queue switching
一方、キューの切り替えが発生する場合、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0であれば、そのフローの出力キューを現在のキューから候補キューに変更する。
On the other hand, when queue switching occurs, if the value of the queue counter corresponding to the acquired flow ID in the queue information management table 163 is 0, the queue switching
これに対して、キューカウンタの値が0でない場合、キュー切替処理部105は、そのフローの出力キューを候補キューとされなかった現在のキューのまま維持する。
On the other hand, when the value of the queue counter is not 0, the queue switching
また、エントリ情報がNewの場合、キュー切替処理部105は、キュー情報管理テーブル163に新たに取得したフローIDを登録して対応するエントリを作成する。そして、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。
When the entry information is New, the queue switching
また、エントリ情報がNotfoundの場合、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。
If the entry information is Notfound, the queue switching
その後、キュー切替処理部105は、そのフローの出力キューとして決定したキューを有する送信キューセット170へパケット、パケット情報及びそのパケットが属するフローのFIDを出力する。さらに、パケットの出力とともに、キュー切替処理部105は、出力したパケットの出力キューのキューIDをパケットの出力先の送信キューセット170へ出力する。また、キュー切替処理部105は、出力したパケットが属するフローのフローID及び加算を指示するコマンドをキュー情報管理テーブル163へ出力する。
Thereafter, the queue switching
図21は、実施例5に係る送信キューセットのブロック図である。送信キューセット170は、実施例1と同様に、セレクタ701、マルチプレクサ703、スケジューラ704及び複数のキュー721〜723を有する。
FIG. 21 is a block diagram of a transmission queue set according to the fifth embodiment. Similar to the first embodiment, the transmission queue set 170 includes a
セレクタ701は、パケット情報、フローID及びパケットの入力をキュー切替処理部105から受ける。さらに、セレクタ701は、そのパケットの出力キューを表すキューIDの入力をキュー切替処理部105から受ける。そして、セレクタ701は、指定されたキューIDを有するキュー720にパケット情報、フローID及びパケットを出力する。
The
キュー切替処理部105から入力されたキューIDで出力キューとして指定されたキュー720は、パケット情報、フローID及びパケットの入力をセレクタ701から受ける。そして、キュー720は、入力されたパケット情報、フローID及びパケットを格納する。その後、キュー720は、取得タイミングの古い順に保持するパケット情報、フローID及びパケットをマルチプレクサ703へ順次出力していく。さらに、キュー720は、自己のキュー長と予め決められた輻輳閾値とを比較し、キュー長が閾値以上の場合、輻輳情報として輻輳発生をキュー情報管理テーブル163に登録する。これに対して、キュー長が閾値未満の場合、キュー720は、輻輳情報として輻輳未発生をキュー情報管理テーブル163に登録する。
The queue 720 specified as the output queue by the queue ID input from the queue switching
輻輳制御部109は、各送信キューセット171における輻輳を判定するためのキュー長である輻輳判定閾値を有する。そして、輻輳制御部109は、各送信キューセット171のキュー長を取得する。図18では、図示の都合上、輻輳制御部109と送信キューセット171との間の通信経路を示したが、実際には、輻輳制御部109は、他の送信キューセット170と間にも通信経路を有する。輻輳制御部109は、あるキュー700のキュー長が輻輳判定閾値を超えた場合、そのキュー700から出力されるパケットに輻輳発生を表すマークを付加する。輻輳制御部109がマークを付加することで、スイッチ100を介してパケットの送受信を行うサーバ200は、マークにしたがってパケットの送信量を制御して輻輳を解消することができる。
The
スケジューラ704は、各キュー720のそれぞれの出力帯域についての帯域指定値を予め有する。この帯域指定地が、「所定値」の一例にあたる。そして、スケジューラ704は、各キュー720について、空でければ単位時間の出力データ量である出力帯域を算出する。そして、スケジューラ704は、あるキュー720について、算出した出力帯域が帯域指定値未満の場合、そのキュー720からのパケットの出力を決定する。その後、スケジューラ704は、出力を決定した複数のキュー720に対してマルチプレクサ703が出力するパケットの調停を行う。このスケジューラ704が、「帯域制御部」の一例にあたる。
The scheduler 704 has a band designation value for each output band of each queue 720 in advance. This band designation location is an example of “predetermined value”. Then, for each queue 720, the scheduler 704 calculates an output bandwidth that is the amount of output data per unit time if it is not empty. The scheduler 704 determines the output of a packet from a queue 720 when the calculated output bandwidth is less than the specified bandwidth value. Thereafter, the scheduler 704 arbitrates packets output from the
マルチプレクサ703は、スケジューラ704からの指定にしたがって、パケット情報及びパケットを送信ポート180へ出力する。さらに、マルチプレクサ703は、パケットが属するフローのフローIDを、減算を指示するコマンドとともにキュー情報管理テーブル163へ出力する。
The
次に、図22を参照して、本実施例に係るキュー切替処理部105によるキューの切り替え処理の流れについて説明する。図22は、実施例5に係るキュー切替処理部によるキューの切り替え処理のフローチャートである。
Next, a flow of queue switching processing by the queue switching
キュー切替処理部105は、パケット情報、フローID、エントリ情報、候補キューID及び送信ポートIDの入力を中継処理部102から受ける。そして、キュー切替処理部105は、エントリ情報がFoundか否かを判定する(ステップS801)。
The queue
エントリ情報がFoundの場合(ステップS801:肯定)、キュー切替処理部105は、候補キューがショートキューであり、且つ、輻輳が発生していないロングキューが存在するか否かを判定する。ここで、輻輳が発生していないロングキューとは、キュー長が輻輳閾値未満のロングキューである(ステップS802)。候補キューがロングキューである、又は、輻輳が発生していないロングキューが存在しない場合(ステップS802:否定)、キュー切替処理部105は、ステップS804へ進む。
When the entry information is Found (step S801: Yes), the queue switching
候補キューがショートキューであり、輻輳が発生していないロングキューが存在する場合(ステップS802:肯定)、キュー切替処理部105は、ロングキューを候補キューとする(ステップS803)。
If the candidate queue is a short queue and there is a long queue in which congestion has not occurred (step S802: Yes), the queue switching
次に、キュー切替処理部105は、候補キューと現在のキューのキューIDが同一か否かにより、キューの切り替えが発生するか否かを判定する(ステップS804)。
Next, the
キューの切り替えが発生する場合(ステップS804:肯定)、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する(ステップS805)。
When queue switching occurs (step S804: Yes), the queue switching
キューカウンタが0の場合(ステップS805:肯定)、キュー切替処理部105は、パケットの出力キューを候補キューに切り替える(ステップS806)。
When the queue counter is 0 (step S805: Yes), the queue switching
これに対して、キューの切り替えが発生しない場合(ステップS804:否定)及びキューカウンタが0でない場合(ステップS805:否定)、キュー切替処理部105は、出力キューを現在のキューに維持する(ステップS807)。
On the other hand, when the queue switching does not occur (step S804: negative) and when the queue counter is not 0 (step S805: negative), the queue switching
一方、エントリ情報がFoundでない場合(ステップS801:否定)、キュー切替処理部105は、エントリ情報がNewか否かを判定する(ステップS808)。エントリ情報がNewでない場合(ステップS808:否定)、すなわち、エントリ情報がNotfoundの場合、キュー切替処理部105は、ステップS810に進む。
On the other hand, when the entry information is not Found (No at Step S801), the queue switching
これに対して、エントリ情報がNewの場合(ステップS808:肯定)、キュー切替処理部105は、キュー情報管理テーブル163に取得したフローIDに対応するエントリを作成して作成したエントリを初期化し(ステップS809)、ステップS810に進む。
In contrast, if the entry information is New (step S808: Yes), the queue switching
キュー切替処理部105は、出力キューを候補キューに設定する(ステップS810)。
The queue
以上に説明したように、本実施例に係るスイッチは、ロングキューの輻輳状態からショートキューを候補キューと判定したパケットをロングキューに回すかショートキューに回すかを判定する。その後、スイッチは、予め決められた帯域幅に抑えられるようにデータを出力させるキューを決定する。これにより、ロングキューの出力レートを高く維持することができ、マイクロバーストなどによる急激な輻輳制御の発生を回避することができる。 As described above, the switch according to the present embodiment determines whether a packet for which the short queue is determined as a candidate queue from the congestion state of the long queue is routed to the long queue or the short queue. Thereafter, the switch determines a queue for outputting data so as to be suppressed to a predetermined bandwidth. As a result, the output rate of the long queue can be kept high, and abrupt congestion control due to microburst or the like can be avoided.
次に、実施例6に係るスイッチについて説明する。本実施例に係るスイッチのブロック図も図18で表される。本実施例に係るスイッチ100は、輻輳制御を行い、且つ、DRR(Deficit Round Robin)を用いてパケットを出力させるキュー720のスケジューリングを行うことが実施例5と異なる。以下の説明では、実施例5と同じ各部の機能については説明を省略する。
Next, a switch according to embodiment 6 will be described. A block diagram of the switch according to the present embodiment is also shown in FIG. The
本実施例に係るキュー情報管理テーブル163は、例えば、図6と同様のフォーマットを有する。すなわち、本実施例に係るキュー情報管理テーブル163は、輻輳情報を有さなくてもよい。この場合も、キュー情報管理テーブル163は、ポート毎にエントリを有してもよい。 The queue information management table 163 according to the present embodiment has, for example, the same format as that shown in FIG. That is, the queue information management table 163 according to the present embodiment may not have congestion information. Also in this case, the queue information management table 163 may have an entry for each port.
そして、本実施例に係るキュー切替処理部105は、実施例1と同様の処理を行い、各フローに含まれるパケットの出力キューを決定する。すなわち、キュー切替処理部105は、出力キューの決定に各キュー720の輻輳状態を考慮しなくてもよい。
Then, the queue switching
さらに、本実施例に係る送信キューセット170は、例えば、図7に示す構成を有する。すなわち、本実施例に係る送信キューセット170では、キュー721は、輻輳状態を判定してキュー情報管理テーブル163に登録しなくてもよい。
Furthermore, the transmission queue set 170 according to the present embodiment has, for example, the configuration shown in FIG. That is, in the transmission queue set 170 according to the present embodiment, the
そして、スケジューラ704は、DRRアルゴリズムを用いて、各キュー720の出力帯域が予め指定された割合になるように、パケットを出力させるキュー720を選択する。この処理が、「パケットの送信レートが所定の割合になるように制御する」処理の一例にあたる。ここで本実施例では、DDRアルゴリズムを用いたが、スケジューラ704は、各キューの出力帯域を維持するアルゴリズムであれば他のアルゴリズムを用いてもよく、例えば、WRR(Weighted Round Robin)やWFQ(Weighted Fair Queuing)などを用いてもよい。 Then, the scheduler 704 uses the DRR algorithm to select a queue 720 that outputs a packet so that the output bandwidth of each queue 720 has a predetermined ratio. This process corresponds to an example of a process of “controlling the packet transmission rate to be a predetermined ratio”. In this embodiment, the DDR algorithm is used. However, the scheduler 704 may use another algorithm as long as it maintains the output bandwidth of each queue. For example, WRR (Weighted Round Robin) or WFQ ( Weighted Fair Queuing) may be used.
以上に説明したように、本実施例に係るスイッチは、DRRを用いた帯域制御により、ロングキューにパケットが無い場合に、ショートキューの帯域が制限されずに出力される。これにより、ロングキュー及びショートキューの何れにおいても、データ転送の性能を維持することが可能となる。 As described above, according to the bandwidth control using the DRR, the switch according to this embodiment outputs the short queue bandwidth without being limited when there is no packet in the long queue. This makes it possible to maintain the data transfer performance in both the long queue and the short queue.
図23は、実施例7に係る情報処理システムのブロック図である。本実施例に係る情報処理システム1は、フロー識別の処理及びフロー判別処理をサーバ200が行い、スイッチ100はキュー切替処理を行うことが実施例6と異なる。実施例1と同じ符号を有する各部は特に説明のない限り同じ機能を有する。
FIG. 23 is a block diagram of an information processing system according to the seventh embodiment. The
サーバ200は、通信部221、フロー判別部222、フロー判別テーブル223及び受信バッファ224を有する。
The
通信部221は、通信相手との間で接続を確立する。そして、通信部221は、データの送受信を行いフローを処理する。データ送信時、通信部221は、データをフロー判別部222へ出力する。
The communication unit 221 establishes a connection with the communication partner. Then, the communication unit 221 transmits and receives data and processes the flow. At the time of data transmission, the communication unit 221 outputs the data to the
また、通信部221は、図示を省略するが、スイッチ100の送信ポート181と接続される。そして、通信部221は、送信ポート181から出力されたパケットを受信する。受信したパケットにACK(Acknowledgement)を含む場合、通信部221は、ACKに対するプロトコル処理を実行する。そして、通信部221は、ACKの受信をフロー判別部222へ通知する。また、受信したパケットにデータが含まれる場合、通信部221は、データを受信バッファ224に格納する。データの送受信完了後、通信部221は、接続を切断する。
Further, the communication unit 221 is connected to the
フロー判別テーブル223は、例えば、図24に示すようなプライオリティとフロー種別との対応を表す情報を有する。プライオリティとは、パケットヘッダのVLAN(Virtual Local Area Network)タグに存在するプライオリティのフィールドに登録される値である。図24は、フロー判別テーブルの一例を表す図である。本実施例では、プライオリティは、0〜7の値が存在する。そして、値が3のプライオリティに対応するフロー種別は、転送量の大きいフローを表す「ロング」というフロー種別である。また、値が4のプライオリティに対応するフロー種別は、転送量の小さいフローを表す「ショート」というフロー種別である。それ以外の、値が0〜2及び5〜7のプライオリティに対応するフロー種別は、「その他」のフロー種別を表す。
The flow determination table 223 has information indicating the correspondence between priority and flow type as shown in FIG. 24, for example. The priority is a value registered in a priority field existing in a VLAN (Virtual Local Area Network) tag of the packet header. FIG. 24 is a diagram illustrating an example of a flow determination table. In this embodiment, the priority has values of 0 to 7. The flow type corresponding to the priority with a value of 3 is a flow type of “long” representing a flow with a large transfer amount. The flow type corresponding to the priority with a value of 4 is a flow type of “short” representing a flow with a small transfer amount. The other flow types corresponding to the priorities of
フロー判別部222は、通信部221による通信相手との接続の確立が完了すると、自己が保持するフローの送信量の情報を初期化して0にする。次に、フロー判別部222は、送信するパケットを通信部221から取得する。次に、フロー判別部222は、フローの送信量が予め決められた判別閾値以上か否かを判定する。送信量が判別閾値未満であれば、フロー判別部222は、フロー判別テーブル223からショートのフローに対応するプライオリティを表す値である「3」を取得する。そして、フロー判別部222は、パケットヘッダのVLANタグのプライオリティのフィールドに「3」を登録する。
When the establishment of the connection with the communication partner by the communication unit 221 is completed, the
これに対して、送信量が判別閾値以上の場合、フロー判別部222は、そのフローに属するパケットの前回送信時において使用したキューがショートキューか否かを判定する。前回の送信時にロングキューを使用した場合、フロー判別部222は、フロー判別テーブル223からロングのフローに対応するプライオリティを表す値である「4」を取得する。そして、フロー判別部222は、パケットヘッダのVLANタグのプライオリティのフィールドに「4」を登録する。
On the other hand, when the transmission amount is equal to or greater than the determination threshold, the
これに対して、前回の送信時にショートキューを使用した場合、フロー判別部222は、前回のパケット送信に対するACKの受信の通知を通信部221から受けたか否かを判定する。前回のパケット送信に対するACKの受信の通知を通信部221から受けていない場合、パケットがキュー720に溜まっている可能性があることからパケットの追い越しを防止するため、フロー判別部222は、パケットの送信処理を終了する。
In contrast, when the short queue is used at the previous transmission, the
これに対して、前回のパケット送信に対するACKの受信の通知を通信部221から受けた場合、フロー判別部222は、パケットがキュー720に溜まっている可能性はないと判定する。次に、フロー判別部222は、フロー判別テーブル223からロングのフローに対応するプライオリティを表す値である「4」を取得する。そして、フロー判別部222は、パケットヘッダのVLANタグのプライオリティのフィールドに「4」を登録する。
On the other hand, when a notification of ACK reception for the previous packet transmission is received from the communication unit 221, the
そして、フロー判別部222は、プライオリティフィールドに値が設定されたパケットをスイッチ100へ送信する。さらに、フロー判別部222は、フローの送信量にパケット長を加算する。その後、フロー判別部222は、そのフローに属する次のパケットの送信の処理に移る。このフロー判別部222が、「第1通信装置における送信制御部」の一例にあたる。
Then, the
スイッチ100は、受信ポート110、中継処理部102、キュー切替処理部105、輻輳制御部109、送信キューセット170、送信ポート180及び中継テーブル121を有する。中継テーブル121は、アドレスに対応する送信ポート180の情報が登録される。送信ポート180の情報には、送信ポート180へパケットを出力するキュー700のキューIDや送信ポート180の識別情報などが含まれる。
The
受信ポート110は、プライオリティフィールドに値が設定されたパケットをサーバ220から受信する。そして、受信ポート110は、受信したパケットをフロー判別処理部104へ出力する。
The reception port 110 receives a packet whose value is set in the priority field from the server 220. Then, the reception port 110 outputs the received packet to the flow
フロー判別処理部104は、パケットの入力を受信ポート110から受ける。そして、フロー判別処理部104は、パケットヘッダのプライオリティフィールドに設定された値を取得する。プライオリティフィールドに設定された値が3の場合、フロー判別処理部104は、パケットの出力キューをロングキューとする。また、プライオリティフィールドに設定された値が4の場合、フロー判別処理部104は、パケットの出力キューをショートキューとする。そして、キュー切替処理部105は、出力キューの指定情報とともにパケットを中継処理部102へ出力する。
The flow
中継処理部102は、出力キューの指定情報とともにパケットの入力をフロー判別処理部104から受ける。そして、中継処理部102は、パケットヘッダから宛先のアドレスを取得する。次に、中継処理部102は、取得したアドレスに対応する送信ポート180の情報を中継テーブル121から取得する。その後、中継処理部102は、パケットを送信する送信ポート180の情報及び出力キューの指定情報とともにパケットをキュー切替処理部105へ出力する。
The
キュー切替処理部105は、送信ポート180の情報及び出力キューの指定情報とともにパケットの入力を中継処理部102から受ける。そして、キュー切替処理部105は、送信ポート180の情報で指定された送信キューセット170におけるキュー720のうち、出力キューの指定情報に応じたキュー720へパケットを格納する。
The queue
スケジューラ704は、DRRアルゴリズムを用いて、各キュー720の出力帯域が予め指定された割合になるように、パケットを出力させるキュー720を選択する。ここで本実施例では、DDRアルゴリズムを用いたが、スケジューラ704は、各キューの出力帯域を維持するアルゴリズムであれば他のアルゴリズムを用いてもよく、例えば、WRRやWFQなどを用いてもよい。マルチプレクサ703は、スケジューラ704により選択されたキュー720からパケットを取得して送信ポート180へ出力する。
Using the DRR algorithm, the scheduler 704 selects a queue 720 that outputs a packet so that the output bandwidth of each queue 720 has a predetermined ratio. In this embodiment, the DDR algorithm is used. However, the scheduler 704 may use another algorithm as long as it maintains the output bandwidth of each queue. For example, WRR or WFQ may be used. . The
次に、図25〜27を参照して、本実施例に係るサーバ200によるフロー管理処理の流れについて説明する。図25は、実施例7に係るサーバによるフロー管理の全体的な処理のフローチャートである。図26は、実施例7に係るサーバによる送信処理のフローチャートである。図27は、実施例7に係るサーバによる受信処理のフローチャートである。
Next, a flow of flow management processing by the
図25を参照して、本実施例に係るサーバ200によるフロー管理処理の全体的な流れを説明する。
With reference to FIG. 25, the overall flow of the flow management processing by the
通信部221は、通信相手との間の接続を確立する(ステップS901)。 The communication unit 221 establishes a connection with the communication partner (step S901).
フロー判別部222は、フローの送信量の情報を初期化して0にする(ステップS902)。
The
次に、フロー判別部222は、通信相手にパケットを送信する送信処理を実行する(ステップS903)。
Next, the
その後、通信部221は、通信相手からパケットを受信する受信処理を実行する(ステップS904)。 Thereafter, the communication unit 221 executes reception processing for receiving a packet from the communication partner (step S904).
通信部221は、通信相手との接続を切断するか否かを判定する(ステップS905)。接続を切断しない場合(ステップS905:否定)、フロー管理の処理はステップS903へ戻る。 The communication unit 221 determines whether or not to disconnect the communication partner (step S905). When the connection is not disconnected (No at Step S905), the flow management process returns to Step S903.
これに対して、接続を切断する場合(ステップS905:肯定)、通信部221は、通信相手との接続を切断し通信を終了する(ステップS906)。これにより、フロー管理の処理も終了する。 On the other hand, when the connection is disconnected (step S905: Yes), the communication unit 221 disconnects the connection with the communication partner and ends the communication (step S906). Thereby, the flow management process is also terminated.
次に、図26を参照して、サーバ200におけるパケットの送信処理の流れについて説明する。図26に記載したフローに含まれる各処理は、図25におけるステップS903で実行される処理の一例にあたる。
Next, a flow of packet transmission processing in the
フロー判別部222は、通信部221からパケットの入力を受けたか否かにより、送信パケットがあるか否かを判定する(ステップS911)。送信するパケットがない場合(ステップS911:否定)、フロー判別部222は、パケットの送信処理を終了する。
The
これに対して、送信するパケットがある場合(ステップS911:肯定)、フロー判別部222は、送信量が判別閾値以上か否かを判定する(ステップS912)。送信量が判別閾値未満の場合(ステップS912:否定)、フロー判別部222は、フロー種別を表す情報としてショートの情報をパケットに付加する(ステップS913)。
On the other hand, when there is a packet to be transmitted (step S911: affirmative), the
これに対して、送信量が判別閾値以上の場合(ステップS912:肯定)、フロー判別部222は、そのフローに属するパケットの前回送信時において使用したキューがショートキューか否かを判定する(ステップS914)。前回の送信時にロングキューを使用した場合(ステップS914:否定)、フロー判別部222は、ステップS916へ進む。
On the other hand, when the transmission amount is equal to or greater than the determination threshold (step S912: affirmative), the
これに対して、前回の送信時にショートキューを使用した場合(ステップS914:肯定)、フロー判別部222は、前回のパケット送信に対するACKを受信したか否かを判定する(ステップS915)。前回のパケット送信に対するACKを受信していない場合(ステップS915:否定)、フロー判別部222は、パケットの送信処理を終了する。
On the other hand, when the short queue is used at the previous transmission (step S914: Yes), the
これに対して、前回のパケット送信に対するACKの受信の通知を通信部221から受けた場合(ステップS915:肯定)、フロー種別を表す情報としてロングの情報をパケットに付加する(ステップS916)。 On the other hand, when a notification of ACK reception for the previous packet transmission is received from the communication unit 221 (step S915: affirmative), long information is added to the packet as information indicating the flow type (step S916).
次に、フロー判別部222は、プライオリティフィールドに値が設定されたパケットをスイッチ100へ送信する(ステップS917)。
Next, the
次に、フロー判別部222は、フローの送信量にパケット長を加算する(ステップS918)。その後、フロー判別部222は、ステップS911に戻る。
Next, the
次に、図27を参照して、サーバ200におけるパケットの受信処理の流れについて説明する。図27に記載したフローにおける各処理は、図25におけるステップS904で実行される処理の一例にあたる。
Next, referring to FIG. 27, the flow of packet reception processing in the
通信部221は、受信パケットがあるか否かを判定する(ステップS921)。受信パケットがない場合(ステップS921:否定)、通信部221は、パケットの受信処理を終了する。 The communication unit 221 determines whether there is a received packet (step S921). When there is no received packet (No at Step S921), the communication unit 221 ends the packet reception process.
これに対して、受信パケットがある場合(ステップS921:肯定)、通信部221は、パケットを受信する(ステップS922)。 On the other hand, when there is a received packet (step S921: Yes), the communication unit 221 receives the packet (step S922).
次に、通信部221は、受信したパケットがACKを含むパケットであれば、ACKを含むプロトコル処理を実行する(ステップS923)。そして、通信部221は、ACKの受信をフロー判別部222へ通知する。
Next, if the received packet is a packet including ACK, the communication unit 221 performs protocol processing including ACK (step S923). Then, the communication unit 221 notifies the
次に、通信部221は、受信したパケットにデータが含まれる場合、パケットからデータを取得して受信バッファ224に格納する(ステップS924)。その後、通信部221は、ステップS921へ戻る。 Next, when the received packet includes data, the communication unit 221 acquires the data from the packet and stores it in the reception buffer 224 (step S924). Thereafter, the communication unit 221 returns to Step S921.
以上に説明したように、本実施例に係る情報処理システムは、サーバ側でフローの種別の管理やパケットの追い越し防止の処理を実行し、スイッチ側で輻輳の発生を抑えるキュースケジューリングを実行する。このように、フローの管理処理と輻輳制御の処理をサーバとスイッチで分離しても、ロングキュー及びショートキューの何れにおいても、データ転送の性能を維持することができる。また、本実施例に係る構成の場合、スイッチでは通常の輻輳制御を行うため、特別なスイッチを用意しなくてもよい。そのため、本実施例に係る情報処理システムは導入が容易である。 As described above, the information processing system according to the present exemplary embodiment executes flow scheduling management and packet overtaking prevention processing on the server side, and queue scheduling that suppresses congestion on the switch side. As described above, even if the flow management process and the congestion control process are separated by the server and the switch, the data transfer performance can be maintained in both the long queue and the short queue. In the case of the configuration according to the present embodiment, since the switch performs normal congestion control, it is not necessary to prepare a special switch. Therefore, the information processing system according to the present embodiment can be easily introduced.
図28は、実施例5のスイッチを用いた場合の効果を説明するための図である。グラフ91は、実施例5のスイッチ100を用いない場合のマイクロバースト発生時のスループットの変化を表す。また、グラフ95は、実施例5のスイッチ100を用いた場合のマイクロバースト発生時のスループットの変化を表す。グラフ91及び95ともに縦軸でスループットを表し、横軸で時間を表す。
FIG. 28 is a diagram for explaining the effect when the switch of the fifth embodiment is used. A
グラフ91における線分92がロングキューにおけるスループットを表す。また、線分93がショートキューにおけるスループットを表す。そして、線分94がロングキューとショートキューとを合わせたスループットを表す。
A
線分93に示すように、マイクロバーストの発生によりショートキューでは時々スループットが急上昇する。そして、線分92に示すように、ショートキューにおけるスループットの急上昇に影響を受けて、ロングキューのスループットは、マイクロバースト発生時に降下する。これにより、全体のスループットも、線分94に示すようにマイクロバースト発生時に低下する。
As indicated by a
一方、グラフ95における線分96がロングキューにおけるスループットを表す。また、線分97がショートキューにおけるスループットを表す。そして、線分98がロングキューとショートキューとを合わせたスループットを表す。
On the other hand, a
線分97に示すように、グラフ91と同様に、マイクロバーストの発生によりショートキューでは時々スループットが急上昇する。しかしながら、ショートキューにおけるスループットの急上昇が発生しても、線分96に示すように、ロングキューのスループットは影響をほぼ受けずに速度が維持される。この場合、全体のスループットも、線分98に示すようにマイクロバーストが発生しても速度を維持することができる。ここでは、実施例5のスイッチ100を例にしたが、実施例6及び7のスイッチ100でもほぼ同様の効果を得ることが可能である。したがって、実施例5〜7で説明したスイッチ100を用いることで、DCQCNによる輻輳制御を行っても、マイクロバースト発生時における大きな性能低下を回避することができることが分かる。
As indicated by the
実施例5〜7で説明したスイッチ100の機能も、例えば、LSIで実現可能である。例えば、LSIを用いた記憶装置には、図18及び23で例示された中継処理部102、フロー識別部103、フロー判別処理部104及びキュー切替処理部105の機能を実現するプログラムを含む各種プログラムが格納される。そして、LSIを用いた制御回路が、記憶装置から各種プログラムを読み出して実行することで、中継処理部102、フロー識別部103、フロー判別処理部104及びキュー切替処理部105の機能を実現する。
The function of the
また、実施例7で説明したサーバ200は、CPU(Central Processing Unit)及びメモリを有する。メモリには、例えば、図23で例示した、通信部221及びフロー判別部222の機能を実現するプログラムを含む各種プログラムが格納される。また、メモリは、受信バッファ224の機能を実現する。また、メモリは、フロー判別テーブル223を格納する。CPUは、メモリから各種プログラムを読み出して展開して実行することで、通信部221及びフロー判別部222の機能を実現する。
The
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following supplementary notes are further disclosed with respect to the embodiments including the above examples.
(付記1)前記フローに関する特徴量を取得する特徴量取得部と、
前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットの送信を制御する送信制御部と
を備えたことを特徴とする情報処理装置。
(Supplementary Note 1) A feature amount acquisition unit that acquires a feature amount related to the flow;
An information processing apparatus comprising: a transmission control unit that controls transmission of the packet of the flow based on the feature amount acquired by the feature amount acquisition unit.
(付記2)前記パケットを格納し、格納した前記パケットを順次出力する複数のキューをさらに備え、
前記送信制御部は、前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットを送信するキューを決定し、前記フローの前記パケットを決定した前記キューに送信する
ことを特徴とする付記1に記載の情報処理装置。
(Supplementary note 2) Further comprising a plurality of queues for storing the packets and sequentially outputting the stored packets,
The transmission control unit determines a queue for transmitting the packet of the flow based on the feature amount acquired by the feature amount acquisition unit, and transmits the packet of the flow to the determined queue. The information processing apparatus according to
(付記3)前記送信制御部は、前記フローの前記パケットが前記キューのいずれにも蓄積されていない場合に、前記フローの前記パケットを決定した前記キューに送信することを特徴とする付記2に記載の情報処理装置。
(Supplementary note 3) In the
(付記4)前記送信制御部は、前記特徴量に関する閾値を予め有し、前記フローの前記特徴量が前記閾値以上の場合に第1キューを前記フローの前記パケットを送信するキューと決定し、前記フローの前記特徴量が前記閾値未満の場合に第2キューを前記フローのパケットを送信するキューに決定することを特徴とする付記2又は3に記載の情報処理装置。
(Supplementary Note 4) The transmission control unit previously has a threshold value related to the feature value, and determines the first queue as a queue for transmitting the packet of the flow when the feature value of the flow is equal to or greater than the threshold value. The information processing apparatus according to
(付記5)前記特徴量取得部は、前記特徴量として前記パケットの転送量を取得し、
前記送信制御部は、転送量閾値を予め有し、前記転送量が前記転送量閾値以上の場合に第1キューを前記フローの前記パケットを送信する送信キューと決定し、前記転送量が前記転送量閾値未満の場合に第2キューを前記フローの前記パケットを送信するキューに決定することを特徴とする付記2〜4のいずれか一つに記載の情報処理装置。
(Additional remark 5) The said feature-value acquisition part acquires the transfer amount of the said packet as said feature-value,
The transmission control unit has a transfer amount threshold in advance, and when the transfer amount is equal to or greater than the transfer amount threshold, determines the first queue as a transmission queue for transmitting the packet of the flow, and the transfer amount is the transfer amount The information processing apparatus according to any one of
(付記6)前記パケットの送信レートが所定値以下となるように制御する帯域制御部と、
前記パケットの輻輳を抑制する輻輳制御部とをさらに備え、
前記送信制御部)は、前記特徴量に加えて前記パケットの滞留量を基に、前記パケットを送信するキューを決定する
ことを特徴とする付記1〜5のいずれか一つに記載の情報処理装置。
(Supplementary Note 6) A bandwidth control unit that controls the transmission rate of the packet to be a predetermined value or less;
A congestion control unit that suppresses congestion of the packet;
The information processing according to any one of
(付記7)前記パケットの送信レートが所定の割合になるように制御する帯域制御部と、
前記パケットの輻輳を抑制する輻輳制御部と
をさらに備えたことを特徴とする付記1〜5のいずれか一つに記載の情報処理装置。
(Supplementary Note 7) A bandwidth control unit that controls the transmission rate of the packet to be a predetermined ratio;
The information processing apparatus according to any one of
(付記8)第1通信装置、第2通信装置との間でパケット処理部を介して通信を行う情報処理システムであって、
前記第1通信装置は、前記第2通信装置を送信先とするパケットを前記パケット処理部を介して送信し、
前記第2通信装置は、前記第1通信装置を送信元とするパケットを前記パケット処理部を介して受信し、
前記パケット処理部は、
前記第1通信装置から送信された前記第2通信装置宛の複数のパケットの送信処理のフローを識別するフロー識別部と、
前記フローに関する特徴量を取得する特徴量取得部と、
前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットの前記第2通信装置への送信を制御する送信制御部とを備えた
ことを特徴とする情報処理システム。
(Supplementary note 8) An information processing system for communicating with a first communication device and a second communication device via a packet processing unit,
The first communication device transmits a packet destined for the second communication device via the packet processing unit,
The second communication device receives a packet originating from the first communication device via the packet processing unit,
The packet processing unit
A flow identification unit for identifying a flow of transmission processing of a plurality of packets addressed to the second communication device transmitted from the first communication device;
A feature amount acquisition unit for acquiring a feature amount related to the flow;
An information processing system comprising: a transmission control unit that controls transmission of the packet of the flow to the second communication device based on the feature amount acquired by the feature amount acquisition unit.
(付記9)前記第1通信装置と第2の通信装置との間に設けられたスイッチを備え、
前記スイッチは、前記パケット処理部を備える
ことを特徴とする付記8記載の情報処理システム。
(Supplementary Note 9) A switch is provided between the first communication device and the second communication device.
The information processing system according to appendix 8, wherein the switch includes the packet processing unit.
(付記10)前記第1通信装置と前記第2通信装置との間に設けられたスイッチを備え、
前記第1通信装置は、前記パケット処理部を備え、
前記スイッチは、
前記パケットの送信レートが所定の割合になるように制御する帯域制御部と、
前記パケットの輻輳を抑制する輻輳制御部とを備え、
前記第2通信装置は、前記第1通信装置を送信元とするパケットを前記スイッチから受信する
ことを特徴とする付記8記載の情報処理システム。
(Supplementary Note 10) A switch provided between the first communication device and the second communication device,
The first communication device includes the packet processing unit,
The switch is
A bandwidth controller for controlling the transmission rate of the packet to be a predetermined ratio;
A congestion control unit for suppressing congestion of the packet,
The information processing system according to appendix 8, wherein the second communication device receives a packet originating from the first communication device from the switch.
(付記11)複数のパケットを送信する処理のフローを識別し、
前記フローに関する特徴量を取得し、
取得した前記特徴量を基に前記フローの前記パケットの送信を制御する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
(Appendix 11) Identify the flow of processing to send multiple packets,
Obtaining a feature value for the flow;
An information processing program for causing a computer to execute processing for controlling transmission of the packet of the flow based on the acquired feature amount.
1 情報処理システム
100 スイッチ
102 中継処理部
103 フロー識別部
104 フロー判別処理部
105 キュー切替処理部
106 データ保持部
109 輻輳制御部
110〜112 受信ポート
121 中継テーブル
161 フロー識別テーブル
162 転送量テーブル
163 キュー情報管理テーブル
170〜172 送信キューセット
180〜182 送信ポート
191 パケットバッファ
192 制御部
200〜206 サーバ
221 通信部
222 フロー判別部
223 フロー判別テーブル
224 受信バッファ
701 セレクタ
703 マルチプレクサ
704 スケジューラ
720〜723 キュー
DESCRIPTION OF
Claims (9)
前記フローに関する特徴量を取得する特徴量取得部と、
前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットの送信を制御する送信制御部と
を備えたことを特徴とする情報処理装置。 A flow identification unit for identifying a flow of processing for transmitting a plurality of packets;
A feature amount acquisition unit for acquiring a feature amount related to the flow;
An information processing apparatus comprising: a transmission control unit that controls transmission of the packet of the flow based on the feature amount acquired by the feature amount acquisition unit.
前記送信制御部は、前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットを送信するキューを決定し、前記フローの前記パケットを決定した前記キューに送信する
ことを特徴とする請求項1に記載の情報処理装置。 A plurality of queues for storing the packets and sequentially outputting the stored packets;
The transmission control unit determines a queue for transmitting the packet of the flow based on the feature amount acquired by the feature amount acquisition unit, and transmits the packet of the flow to the determined queue. The information processing apparatus according to claim 1.
前記送信制御部は、転送量閾値を予め有し、前記転送量が前記転送量閾値以上の場合に第1キューを前記フローの前記パケットを送信する送信キューと決定し、前記転送量が前記転送量閾値未満の場合に第2キューを前記フローの前記パケットを送信するキューに決定することを特徴とする請求項2〜4のいずれか一つに記載の情報処理装置。 The feature amount acquisition unit acquires a transfer amount of the packet as the feature amount,
The transmission control unit has a transfer amount threshold in advance, and when the transfer amount is equal to or greater than the transfer amount threshold, determines the first queue as a transmission queue for transmitting the packet of the flow, and the transfer amount is the transfer amount 5. The information processing apparatus according to claim 2, wherein the second queue is determined as a queue that transmits the packet of the flow when the amount is less than a threshold value.
前記パケットの輻輳を抑制する輻輳制御部とをさらに備え、
前記送信制御部は、前記特徴量に加えて前記パケットの滞留量を基に、前記パケットを送信するキューを決定する
ことを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。 A bandwidth control unit for controlling the transmission rate of the packet to be a predetermined value or less;
A congestion control unit that suppresses congestion of the packet;
The information processing according to claim 1, wherein the transmission control unit determines a queue for transmitting the packet based on a retention amount of the packet in addition to the feature amount. apparatus.
前記パケットの輻輳を抑制する輻輳制御部と
をさらに備えたことを特徴とする請求項1〜5のいずれか一つに記載の情報処理装置。 A bandwidth controller for controlling the transmission rate of the packet to be a predetermined ratio;
The information processing apparatus according to claim 1, further comprising: a congestion control unit that suppresses congestion of the packet.
前記第1通信装置は、前記第2通信装置を送信先とするパケットを前記パケット処理部を介して送信し、
前記第2通信装置は、前記第1通信装置を送信元とするパケットを前記パケット処理部を介して受信し、
前記パケット処理部は、
前記第1通信装置から送信された前記第2通信装置宛の複数のパケットの送信処理のフローを識別するフロー識別部と、
前記フローに関する特徴量を取得する特徴量取得部と、
前記特徴量取得部により取得された前記特徴量を基に前記フローの前記パケットの前記第2通信装置への送信を制御する送信制御部とを備えた
ことを特徴とする情報処理システム。 An information processing system that communicates with a first communication device and a second communication device via a packet processing unit,
The first communication device transmits a packet destined for the second communication device via the packet processing unit,
The second communication device receives a packet originating from the first communication device via the packet processing unit,
The packet processing unit
A flow identification unit for identifying a flow of transmission processing of a plurality of packets addressed to the second communication device transmitted from the first communication device;
A feature amount acquisition unit for acquiring a feature amount related to the flow;
An information processing system comprising: a transmission control unit that controls transmission of the packet of the flow to the second communication device based on the feature amount acquired by the feature amount acquisition unit.
前記フローに関する特徴量を取得し、
取得した前記特徴量を基に前記フローの前記パケットの送信を制御する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。 Identify the flow of processing to send multiple packets,
Obtaining a feature value for the flow;
An information processing program for causing a computer to execute processing for controlling transmission of the packet of the flow based on the acquired feature amount.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/272,538 US10855606B2 (en) | 2018-03-07 | 2019-02-11 | Information processing apparatus and information processing system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018040844 | 2018-03-07 | ||
JP2018040844 | 2018-03-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019161632A true JP2019161632A (en) | 2019-09-19 |
JP7251060B2 JP7251060B2 (en) | 2023-04-04 |
Family
ID=67996418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018130948A Active JP7251060B2 (en) | 2018-03-07 | 2018-07-10 | Information processing device, information processing system and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7251060B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024257207A1 (en) * | 2023-06-13 | 2024-12-19 | 日本電信電話株式会社 | Relay device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1132050A (en) * | 1997-07-09 | 1999-02-02 | Hitachi Ltd | Priority control queue control method in ATM switching equipment |
US20150244633A1 (en) * | 2011-03-09 | 2015-08-27 | Juniper Networks, Inc. | Methods and apparatus for path selection within a network based on flow duration |
-
2018
- 2018-07-10 JP JP2018130948A patent/JP7251060B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1132050A (en) * | 1997-07-09 | 1999-02-02 | Hitachi Ltd | Priority control queue control method in ATM switching equipment |
US20150244633A1 (en) * | 2011-03-09 | 2015-08-27 | Juniper Networks, Inc. | Methods and apparatus for path selection within a network based on flow duration |
Non-Patent Citations (1)
Title |
---|
横田健治 ほか: "フローサイズを考慮した優先制御方式", 電子情報通信学会技術研究報告, vol. 第108巻, 第286号, JPN6022004016, 6 November 2008 (2008-11-06), pages 19 - 24, ISSN: 0004861185 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024257207A1 (en) * | 2023-06-13 | 2024-12-19 | 日本電信電話株式会社 | Relay device |
Also Published As
Publication number | Publication date |
---|---|
JP7251060B2 (en) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10855606B2 (en) | Information processing apparatus and information processing system | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
JP4358437B2 (en) | System and method for scheduling and processing message transmissions in a digital data network | |
US8848715B2 (en) | Combined hardware/software forwarding mechanism and method | |
EP1810466B1 (en) | Directional and priority based flow control between nodes | |
US10601713B1 (en) | Methods and network device for performing cut-through | |
US20110307577A1 (en) | Method and system for transmit scheduling for multi-layer network interface controller (nic) operation | |
Wang et al. | Freeway: Adaptively isolating the elephant and mice flows on different transmission paths | |
US8929372B2 (en) | Grid router | |
CN101656674A (en) | Congestion control method and network nodes | |
US7164687B2 (en) | Queue control method and relay apparatus using the method | |
CN114079638B (en) | Data transmission method, device and storage medium for multi-protocol hybrid network | |
US20070053290A1 (en) | Packet attribute based prioritization | |
US7209489B1 (en) | Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing | |
CN112737940A (en) | A method and device for data transmission | |
JP7251060B2 (en) | Information processing device, information processing system and information processing program | |
JP3950907B2 (en) | Communication system and communication method | |
US11032206B2 (en) | Packet-content based WRED protection | |
JPWO2005076550A1 (en) | Relay device, communication system, control circuit, connection device, and computer program | |
JP3950895B2 (en) | Communication system and communication method | |
CN114448903A (en) | A message processing method, device and communication equipment | |
US9922000B2 (en) | Packet buffer with dynamic bypass | |
JP3944515B2 (en) | Communication system and communication method | |
JP6718397B2 (en) | Router device, control method thereof, and program | |
JP2019009630A (en) | Network load distribution device and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210408 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220201 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220328 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221028 |
|
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: 20230221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230306 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7251060 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |