[go: up one dir, main page]

JP2019161632A - Information processing device, information processing system, and information processing program - Google Patents

Information processing device, information processing system, and information processing program Download PDF

Info

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
Application number
JP2018130948A
Other languages
Japanese (ja)
Other versions
JP7251060B2 (en
Inventor
長武 白木
Nagatake Shiraki
長武 白木
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 US16/272,538 priority Critical patent/US10855606B2/en
Publication of JP2019161632A publication Critical patent/JP2019161632A/en
Application granted granted Critical
Publication of JP7251060B2 publication Critical patent/JP7251060B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信性能を向上させる情報処理装置、情報処理システム及び情報処理プログラムを提供することを目的とする。
【解決手段】スイッチ100は、フロー識別部103、フロー判別処理部104及びキュー切替処理部105を有する。前記フロー識別部103は、複数のパケットを送信する処理のフローを識別する。前記フロー判別処理部104は、前記フローに関する特徴量を取得する。前記キュー切替処理部105は、前記フロー判別処理部104により取得された前記フローに関する前記特徴量を基に前記フローのパケットの送信を制御する。
【選択図】図2
An 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.

特開2010−161546号公報JP 2010-161546 A

しかしながら、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.

図1は、情報処理システムの概略構成図である。FIG. 1 is a schematic configuration diagram of an information processing system. 図2は、実施例に係るスイッチのブロック図である。FIG. 2 is a block diagram of the switch according to the embodiment. 図3は、中継処理部から送信キューセットの間の各地点において受け渡される情報をまとめた図である。FIG. 3 is a diagram summarizing information transferred at each point between the relay processing unit and the transmission queue set. 図4は、フロー識別テーブルの一例を表す図である。FIG. 4 is a diagram illustrating an example of a flow identification table. 図5は、転送量テーブルの一例を表す図である。FIG. 5 is a diagram illustrating an example of the transfer amount table. 図6は、キュー情報管理テーブルの一例を表す図である。FIG. 6 is a diagram illustrating an example of the queue information management table. 図7は、送信キューセットのブロック図である。FIG. 7 is a block diagram of the transmission queue set. 図8は、フロー識別部によるフローの識別処理のフローチャートである。FIG. 8 is a flowchart of the flow identification process by the flow identification unit. 図9は、フロー識別部によるエントリ管理のフローチャートである。FIG. 9 is a flowchart of entry management by the flow identification unit. 図10は、フロー判別処理部によるフロー判別処理のフローチャートである。FIG. 10 is a flowchart of the flow discrimination processing by the flow discrimination processing unit. 図11は、キュー切替処理部によるキューの切り替え処理のフローチャートである。FIG. 11 is a flowchart of queue switching processing by the queue switching processing unit. 図12は、キューに対するエンキュー処理のフローチャートである。FIG. 12 is a flowchart of enqueue processing for a queue. 図13は、キューに対するデキュー処理のフローチャートである。FIG. 13 is a flowchart of dequeue processing for a queue. 図14は、実施例2に係るフロー識別テーブルの一例を示す図である。FIG. 14 is a diagram illustrating an example of a flow identification table according to the second embodiment. 図15は、実施例2に係るフロー識別部によるフロー識別処理のフローチャートである。FIG. 15 is a flowchart of the flow identification process performed by the flow identification unit according to the second embodiment. 図16は、実施例3に係るキュー情報管理テーブルの一例を表す図である。FIG. 16 is a diagram illustrating an example of the queue information management table according to the third embodiment. 図17は、実施例4に係るスイッチのブロック図である。FIG. 17 is a block diagram of a switch according to the fourth embodiment. 図18は、輻輳制御を行うスイッチのブロック図である。FIG. 18 is a block diagram of a switch that performs congestion control. 図19は、実施例5におけるスイッチの各地点において受け渡される情報をまとめた図である。FIG. 19 is a diagram summarizing information delivered at each point of the switch in the fifth embodiment. 図20は、実施例5におけるキュー情報管理テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of the queue information management table in the fifth embodiment. 図21は、実施例5に係る送信キューセットのブロック図である。FIG. 21 is a block diagram of a transmission queue set according to the fifth embodiment. 図22は、実施例5に係るキュー切替処理部によるキューの切り替え処理のフローチャートである。FIG. 22 is a flowchart of the queue switching process performed by the queue switching processing unit according to the fifth embodiment. 図23は、実施例7に係る情報処理システムのブロック図である。FIG. 23 is a block diagram of an information processing system according to the seventh embodiment. 図24は、フロー判別テーブルの一例を表す図である。FIG. 24 is a diagram illustrating an example of a flow determination table. 図25は、実施例7に係るサーバによるフロー管理の全体的な処理のフローチャートである。FIG. 25 is a flowchart of overall processing of flow management by a server according to the seventh embodiment. 図26は、実施例7に係るサーバによる送信処理のフローチャートである。FIG. 26 is a flowchart of the transmission process performed by the server according to the seventh embodiment. 図27は、実施例7に係るサーバによる受信処理のフローチャートである。FIG. 27 is a flowchart of the reception process performed by the server according to the seventh embodiment. 図28は、実施例5のスイッチを用いた場合の効果を説明するための図である。FIG. 28 is a diagram for explaining the effect when the switch of the fifth embodiment is used.

以下に、本願の開示する情報処理装置、情報処理システム及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム及び情報処理プログラムが限定されるものではない。   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 information processing system 1 according to the present embodiment includes a switch 100 and servers 201 to 206.

サーバ201〜206は、それぞれスイッチ100に接続される。そして、サーバ201〜206は、それぞれが相互にスイッチ100を介してパケットの送受信を行う。以下では、サーバ201〜206をそれぞれ区別せずに表す場合、サーバ200という。そして、パケットの送信元のサーバ200を「送信側のサーバ200」と呼び、パケットの送信先のサーバ200を「受信側のサーバ200」と呼ぶ。例えば、サーバ201がサーバ204にパケットを送信する場合、送信側のサーバ200であるサーバ201が「第1通信装置」の一例にあたり、受信側のサーバ200であるサーバ204が「第2通信装置」の一例にあたる。   Servers 201 to 206 are each connected to the switch 100. The servers 201 to 206 transmit and receive packets to and from each other via the switch 100. Hereinafter, when the servers 201 to 206 are expressed without being distinguished from each other, they are referred to as servers 200. The packet transmission source server 200 is referred to as a “transmission side server 200”, and the packet transmission destination server 200 is referred to as a “reception side server 200”. For example, when the server 201 transmits a packet to the server 204, the server 201 that is the server 200 on the transmission side is an example of “first communication device”, and the server 204 that is the server 200 on the reception side is “second communication device”. This is an example.

スイッチ100は、送信側のサーバ200から送信された受信側のサーバ200宛てのパケットを受信する。そして、スイッチ100は、サーバ200に接続されたポートから受信側のサーバ200へ向けて、送信側のサーバ200から送信されたパケットを送信する。   The switch 100 receives a packet addressed to the receiving server 200 transmitted from the transmitting server 200. Then, the switch 100 transmits the packet transmitted from the transmission-side server 200 from the port connected to the server 200 to the reception-side server 200.

ここで、図1では、1台のスイッチ100でサーバ200同士が接続される場合を図示したが、接続形態はこれに限らない、スイッチ100は他の通信機器を介して送信側のサーバ200と受信側のサーバ200とを接続してもよい。また、図1では、6台のサーバ201〜206を図示したが、台数に特に制限は無い。   Here, in FIG. 1, the case where the servers 200 are connected to each other by one switch 100 is illustrated, but the connection form is not limited to this, and the switch 100 is connected to the server 200 on the transmission side via another communication device. A server 200 on the receiving side may be connected. In FIG. 1, six servers 201 to 206 are illustrated, but the number of servers is not particularly limited.

ここで、送信側のサーバ200から受信側のサーバ200へのパケット送信によるフローについて説明する。送信側のサーバ200と受信側のサーバ200とは、一連の関連するパケットを送信する通信を行う。このような、一連のパケットを送信する処理を「フロー」と言う。   Here, a flow by packet transmission from the server 200 on the transmission side to the server 200 on the reception side will be described. The server 200 on the transmission side and the server 200 on the reception side perform communication for transmitting a series of related packets. Such a process of transmitting a series of packets is called “flow”.

パケットは、パケットの送受信を制御する情報を含むヘッダと送信するデータを含むペイロードを有する。パケットのヘッダには、フローを識別するための情報であるパケット情報が格納される。ここで、同じフローとして送受信されるパケットのそれぞれには、フローを識別するための情報として同じ情報が格納される。   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 switch 100 will be described with reference to FIG. FIG. 2 is a block diagram of the switch according to the embodiment. This switch 100 is an example of an “information processing apparatus”.

スイッチ100は、図2に示すように、受信ポート111〜112、中継処理部102、フロー識別部103、フロー判別処理部104、キュー切替処理部105、データ保持部106、送信キューセット171〜172及び送信ポート181〜182を有する。さらに、データ保持部106は、フロー識別テーブル161、転送量テーブル162及びキュー情報管理テーブル163を有する。   As illustrated in FIG. 2, the switch 100 includes reception ports 111 to 112, a relay processing unit 102, a flow identification unit 103, a flow determination processing unit 104, a queue switching processing unit 105, a data holding unit 106, and transmission queue sets 171 to 172. And transmission ports 181 to 182. Further, the data holding unit 106 includes a flow identification table 161, a transfer amount table 162, and a queue information management table 163.

受信ポート111〜112は、同じ機能を有しており、以下では、それぞれを区別しない場合、「受信ポート110」という。また、送信ポート181〜182は、同じ機能を有しており、以下では、それぞれを区別しない場合、「送信ポート180」という。   The reception ports 111 to 112 have the same function. Hereinafter, the reception ports 111 to 112 are referred to as “reception ports 110” unless they are distinguished from each other. In addition, the transmission ports 181 to 182 have the same function. Hereinafter, the transmission ports 181 to 182 are referred to as “transmission port 180” unless they are distinguished from each other.

受信ポート111〜112は、図示しないが1つ又はいくつかのサーバ200に接続される。受信ポート111〜112は、接続先の送信側のサーバ200からパケットの入力を受ける。そして、受信ポート111〜112は、入力されたパケットを中継処理部102へ出力する。   The reception ports 111 to 112 are connected to one or several servers 200 (not shown). The reception ports 111 to 112 receive packet input from the connection-side transmission server 200. Then, the reception ports 111 to 112 output the input packet to the relay processing unit 102.

中継処理部102は、パケットの入力を受信ポート110から受ける。中継処理部102は、ヘッダに格納された宛先情報及び宛先ポートなどの受信側のサーバ200の情報からそのパケットを出力する送信ポート180を決定する。そして、中継処理部102は、決定した送信ポート180の識別子である送信ポートID(IDentifier)とともに送信元IP、宛先IP、送信元ポート番号、宛先ポート番号及びプロトコルを含むパケット情報、並びにパケットをフロー識別部103へ出力する。ここで、パケット情報は、実際にはパケットのヘッダに含まれるため、パケットを送ることでパケット情報も送ることができる。ただし、ここでの説明では、パケット情報が授受されることを明示するため、パケットとともにパケット情報も送信するように説明する。   The relay processing unit 102 receives a packet input from the reception port 110. The relay processing unit 102 determines the transmission port 180 that outputs the packet from the information of the receiving server 200 such as the destination information and the destination port stored in the header. Then, the relay processing unit 102 flows the packet information including the source IP, the destination IP, the source port number, the destination port number and the protocol, and the packet together with the transmission port ID (IDentifier) which is the identifier of the determined transmission port 180 The data is output to the identification unit 103. Here, since the packet information is actually included in the header of the packet, the packet information can also be sent by sending the packet. However, in this description, in order to clearly indicate that packet information is exchanged, the packet information is also transmitted together with the packet.

図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 relay processing unit 102 to the flow identification unit 103.

図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 flow identification unit 103 acquires an information set 121 including packet information and a transmission port ID. Furthermore, the flow identification unit 103 receives an input of the packet body. Next, the flow identification unit 103 searches the flow identification table 161 using header information including the source IP, destination IP, source port number, destination port number, and protocol included in the acquired packet information.

ヘッダ情報に一致するエントリが存在する場合、フロー識別部103は、そのヘッダ情報が表すフローの識別情報であるフローIDとして、そのヘッダ情報に対応するアドレスを取得する。このフローIDが取得したパケットが属するフローの識別子である。さらに、フロー識別部103は、そのフローIDに対応する頻度情報を1つインクリメントする。さらに、フロー識別部103は、一致するエントリが存在したことを表すFoundのメッセージをエントリの検索結果を表すエントリ情報とする。   When there is an entry that matches the header information, the flow identification unit 103 acquires an address corresponding to the header information as a flow ID that is identification information of the flow represented by the header information. This flow ID is an identifier of the flow to which the acquired packet belongs. Furthermore, the flow identification unit 103 increments the frequency information corresponding to the flow ID by one. Further, the flow identification unit 103 uses a Found message indicating that a matching entry exists as entry information indicating an entry search result.

また、ヘッダ情報に一致するエントリが存在せず、且つ、エントリに空きがある場合、フロー識別部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 flow identification unit 103 registers the header information in the vacant entry and registers 1 in the frequency information. Then, the flow identification unit 103 acquires the address of the registered entry as a flow ID corresponding to the header information. This flow ID becomes the identifier of the flow to which the acquired packet belongs. Further, the flow identification unit 103 uses, as entry information, a New message indicating that a new entry has been generated.

また、ヘッダ情報に一致するエントリが存在せず、且つ、エントリに空きがない場合、フロー識別部103は、エントリが存在しないことを表すNotfoundのメッセージをエントリ情報とする。この場合、フロー識別部103は、フローIDが存在しないことを表す情報をフローIDとしてもよい。   When there is no entry that matches the header information and there is no empty entry, the flow identification unit 103 uses a Notfound message indicating that there is no entry as entry information. In this case, the flow identification unit 103 may use information indicating that no flow ID exists as the flow ID.

その後、フロー識別部103は、パケット本体とともに、図3に示すようにパケット情報、送信ポートID、フローID及びエントリ情報を含む情報セット131をフロー判別処理部104へ出力する。   Thereafter, the flow identification unit 103 outputs the information set 131 including the packet information, the transmission port ID, the flow ID, and the entry information together with the packet body to the flow discrimination processing unit 104 as shown in FIG.

また、フロー識別部103は、フロー識別テーブル161のエントリの管理を一定の周期で行う。具体的には、フロー識別部103は、フロー識別テーブル161のエントリの管理を行う周期を予め記憶する。そして、フロー識別テーブル161のエントリの管理のタイミングが到来すると、フロー識別部103は、フロー識別テーブル161からエントリを1つずつ選択する。   Further, the flow identification unit 103 manages entries in the flow identification table 161 at regular intervals. Specifically, the flow identification unit 103 stores in advance a cycle for managing entries in the flow identification table 161. Then, when the management timing of entries in the flow identification table 161 comes, the flow identification unit 103 selects one entry from the flow identification table 161 one by one.

そして、フロー識別部103は、選択したエントリにおける頻度情報が0か否かを判定する。頻度情報が0でない場合、フロー識別部103は、選択したエントリの頻度情報を1つデクリメントする。すなわち、フロー識別部103から出力されたパケットは、出力されてから十分な期間が経過すれば送信ポート180から既に出力された可能性が高い。そこで、フロー識別部103は、出力時に1つ増やした頻度情報を1つ減らすことでそのフローに属するスイッチ100内に滞留しているパケットの数を予測することができる。そして、頻度情報が0であればスイッチ100内にそのフローに属するパケットが存在していない蓋然性が高いと予測できる。   Then, the flow identification unit 103 determines whether or not the frequency information in the selected entry is zero. When the frequency information is not 0, the flow identification unit 103 decrements the frequency information of the selected entry by one. That is, the packet output from the flow identification unit 103 is highly likely to have already been output from the transmission port 180 if a sufficient period has elapsed since it was output. Therefore, the flow identification unit 103 can predict the number of packets remaining in the switch 100 belonging to the flow by reducing the frequency information increased by one at the time of output by one. If the frequency information is 0, it can be predicted that there is a high probability that no packet belonging to the flow exists in the switch 100.

そこで、頻度情報が0の場合、フロー識別部103は、選択したエントリのフローIDに対応するキューカウンタの値をキュー情報管理テーブル163から取得する。そして、フロー識別部103は、キューカウンタが0か否かを判定する。キューカウンタが0であれば、フロー識別部103は、送信キューセット170の中にそのフローに属するパケットが残っていないことが確認できるので、スイッチ100内にそのフローに属するパケットが存在していないと予測できる。そこで、フロー識別部103は、選択したエントリを削除する。   Therefore, when the frequency information is 0, the flow identification unit 103 acquires the value of the queue counter corresponding to the flow ID of the selected entry from the queue information management table 163. Then, the flow identification unit 103 determines whether or not the queue counter is 0. If the queue counter is 0, the flow identification unit 103 can confirm that no packet belonging to the flow remains in the transmission queue set 170, and therefore no packet belonging to the flow exists in the switch 100. Can be predicted. Therefore, the flow identification unit 103 deletes the selected entry.

フロー識別部103は、以上の処理をフロー識別テーブル161の全てのエントリに対して行い、フロー識別テーブル161を管理する。これにより、不要なエントリを削除することができ、フロー識別部103は、フロー識別テーブル161を有効に使用することができる。   The flow identification unit 103 performs the above processing on all entries of the flow identification table 161 and manages the flow identification table 161. Thereby, unnecessary entries can be deleted, and the flow identification unit 103 can use the flow identification table 161 effectively.

転送量テーブル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 transmission ports 180 are managed by one entry for one flow ID. In many cases, communication is unicast communication, and the number of transmission ports 180 serving as an output destination is often limited to one. Therefore, the reason is that even if all the transmission ports 180 are managed by one entry for one flow ID, in most cases, there is no problem.

フロー判別処理部104は、パケット本体とともに、図3に示すようにパケット情報、送信ポートID、フローID及びエントリ情報を含む情報セット131の入力をフロー識別部103から受ける。そして、フロー判別処理部104は、取得したエントリ情報を確認する。   The flow discrimination processing unit 104 receives the input of the information set 131 including the packet information, the transmission port ID, the flow ID, and the entry information as shown in FIG. Then, the flow determination processing unit 104 confirms the acquired entry information.

エントリ情報がFoundの場合、フロー判別処理部104は、転送量テーブル162における取得したフローIDに対応するエントリを特定する。そして、フロー判別処理部104は、パケット情報からパケットのサイズを取得して、転送量テーブル162における取得したフローIDに対応するエントリの転送量にパケットの大きさを加算して書き込む。   When the entry information is found, the flow determination processing unit 104 identifies an entry corresponding to the acquired flow ID in the transfer amount table 162. Then, the flow determination processing unit 104 acquires the size of the packet from the packet information, adds the size of the packet to the transfer amount of the entry corresponding to the acquired flow ID in the transfer amount table 162, and writes it.

エントリ情報がNewの場合、フロー判別処理部104は、転送量テーブル162にあらたにフローIDに対応するエントリを作成する。そして、フロー判別処理部104は、転送量を初期化する。その後、フロー判別処理部104は、パケット情報からパケットのサイズを取得して、作成したエントリの転送量にパケットの大きさを書き込む。   When the entry information is New, the flow determination processing unit 104 newly creates an entry corresponding to the flow ID in the transfer amount table 162. Then, the flow determination processing unit 104 initializes the transfer amount. Thereafter, the flow discrimination processing unit 104 acquires the packet size from the packet information, and writes the packet size in the transfer amount of the created entry.

次に、エントリ情報がFound又はNewのいずれの場合も、フロー判別処理部104は、パケット情報を確認して、そのパケットの出力キューとして特定キューが指定されているか否かを判定する。ここで、出力キューとは、パケットを入力して保持させ、その後、送信ポート180へ保持させたパケットを出力させるキューを指す。例えば、パケットの優先度が高い場合には、優先的に処理される予め決められた特定キューが出力キューとしてそのパケットに指定される。   Next, regardless of whether the entry information is Found or New, the flow determination processing unit 104 checks the packet information and determines whether or not a specific queue is designated as the output queue of the packet. Here, the output queue refers to a queue that inputs and holds a packet, and then outputs the held packet to the transmission port 180. For example, when the priority of a packet is high, a predetermined specific queue that is preferentially processed is designated as the output queue for that packet.

パケットに特定キューが指定されている場合、フロー判別処理部104は、指定された特定キューを出力キューの候補として指定する候補キューとする。具体的には、フロー判別処理部104は、パケット情報に格納されたパケットの優先度を確認する。例えば、パケットの優先度は0〜7で表される。この場合、数字が大きくなるほど優先度が高い。そして、パケットの優先度が7であれば、フロー判別処理部104は、優先的に処理される特定キューをそのパケットの候補キューとする。   When a specific queue is specified for the packet, the flow determination processing unit 104 sets the specified specific queue as a candidate queue that is specified as an output queue candidate. Specifically, the flow determination processing unit 104 confirms the priority of the packet stored in the packet information. For example, the priority of a packet is represented by 0-7. In this case, the higher the number, the higher the priority. If the priority of the packet is 7, the flow determination processing unit 104 sets the specific queue to be preferentially processed as the candidate queue for the packet.

一方、パケットに特定キューが指定されていない場合、フロー判別処理部104は、転送量が予め決められた閾値以上か否かを判定する。転送量が予め決められた閾値以上の場合、フロー判別処理部104は、送信ポート181に接続する送信キューセット170が有する複数のキューの内のロングキューを、そのパケットの候補キューとする。ロングキューとは、転送量の大きいフローに属するパケットを格納するために割り当てられたキューであり、スループットを高くすることを目的とするキューである。送信キューセット170については後で詳細に説明する。このロングキューが、「第1キュー」の一例にあたる。   On the other hand, when the specific queue is not specified for the packet, the flow determination processing unit 104 determines whether or not the transfer amount is equal to or greater than a predetermined threshold. When the transfer amount is equal to or greater than a predetermined threshold, the flow determination processing unit 104 sets a long queue among a plurality of queues included in the transmission queue set 170 connected to the transmission port 181 as a candidate queue for the packet. The long queue is a queue assigned to store packets belonging to a flow with a large transfer amount, and is a queue intended to increase the throughput. The transmission queue set 170 will be described in detail later. This long queue is an example of a “first queue”.

これに対して、転送量が予め決められた閾値未満の場合、フロー判別処理部104は、送信ポート181に接続する送信キューセット170が有する複数の送信キューの内のショートキューを、そのパケットの候補キューとする。ショートキューとは、転送量の小さいフローに属するパケットを格納するために割り当てられたキューであり、レイテンシを低くすることを目的とするキューである。このショートキューが、「第2キュー」の一例にあたる。   On the other hand, when the transfer amount is less than a predetermined threshold, the flow determination processing unit 104 assigns a short queue of the plurality of transmission queues included in the transmission queue set 170 connected to the transmission port 181 to the packet. A candidate queue. The short queue is a queue assigned to store packets belonging to a flow with a small transfer amount, and is a queue for the purpose of reducing latency. This short queue is an example of a “second queue”.

一方、エントリがNotfoundの場合、フロー判別処理部104は、デフォルトのキューを、そのパケットの候補キューとする。   On the other hand, when the entry is Notfound, the flow determination processing unit 104 sets the default queue as a candidate queue for the packet.

その後、フロー判別処理部104は、パケット本体とともに、図3に示すパケット情報、フローID、エントリ情報及び候補キューの識別情報である候補キューIDを含む情報セット141をキュー切替処理部105へ出力する。このフロー判別処理部104が、「特徴量取得部」の一例にあたる。   Thereafter, the flow discrimination processing unit 104 outputs to the queue switching processing unit 105 an information set 141 including the packet information, the flow ID, the entry information, and the candidate queue ID that is the identification information of the candidate queue, as shown in FIG. . The flow discrimination processing unit 104 is an example of a “feature amount acquisition unit”.

キュー情報管理テーブル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 switching processing unit 105 receives an input of the information set 141 including packet information, flow ID, entry information, and candidate queue ID from the flow discrimination processing unit 104 together with the packet body. Then, the queue switching processing unit 105 confirms the entry information.

エントリ情報がFoundの場合、キュー切替処理部105は、取得したフローIDの現在のキューのキューIDをキュー情報管理テーブル163から取得する。そして、キュー切替処理部105は、候補キューIDと現在のキューのキューIDが一致するか否かにより、キューの切り替えが発生するか否かを判定する。キューの切り替えが発生しない場合、キュー切替処理部105は、出力キューを候補キューとする。この場合、出力キューを現在のキューのまま維持することになる。   When the entry information is found, the queue switching processing unit 105 acquires the queue ID of the current queue of the acquired flow ID from the queue information management table 163. Then, the queue switching processing unit 105 determines whether or not queue switching occurs depending on whether or not the candidate queue ID matches the queue ID of the current queue. When queue switching does not occur, the queue switching processing unit 105 sets the output queue as a candidate queue. In this case, the output queue is maintained as the current queue.

一方、キューの切り替えが発生する場合、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する。キューカウンタの値が0であれば、そのフローの現在のキューにそのフローのパケットが残っていないといえる。すなわち、キュー切替処理部105は、そのフローの現在のキューに、そのフローのパケットが残っている状態か否かを判定する。そして、キューカウンタの値が0であれば、現在のキューにパケットが残っていないので、キュー切替処理部105は、そのフローの出力キューを現在のキューから候補キューに変更する。   On the other hand, when queue switching occurs, the queue switching processing unit 105 determines whether or not the value of the queue counter corresponding to the acquired flow ID in the queue information management table 163 is zero. If the value of the queue counter is 0, it can be said that no packet of the flow remains in the current queue of the flow. That is, the queue switching processing unit 105 determines whether or not the packet of the flow remains in the current queue of the flow. If the value of the queue counter is 0, no packet remains in the current queue, and the queue switching processing unit 105 changes the output queue of the flow from the current queue to the candidate queue.

これに対して、キューカウンタの値が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 processing unit 105 maintains the output queue of the flow as the current queue that has not been set as the candidate queue. To do. Thereby, it is possible to avoid storing the packet in another queue even though the packet remains in the specific queue, and to avoid reversal of the order of the packets.

また、エントリ情報がNewの場合、キュー切替処理部105は、キュー情報管理テーブル163に新たに取得したフローIDを登録して対応するエントリを作成する。さらに、キュー切替処理部105は、生成したエントリのキューカウンタ値を0にして初期化する。そして、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。   When the entry information is New, the queue switching processing unit 105 registers the newly acquired flow ID in the queue information management table 163 and creates a corresponding entry. Further, the queue switching processing unit 105 initializes the queue counter value of the generated entry to zero. Then, the queue switching processing unit 105 sets the output queue of the flow as a candidate queue.

また、エントリ情報がNotfoundの場合、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。   If the entry information is Notfound, the queue switching processing unit 105 sets the output queue of the flow as a candidate queue.

その後、キュー切替処理部105は、そのフローの出力キューとして決定したキューを有する送信キューセット170へパケット、パケット情報及びそのパケットが属するフローのFIDを出力する。さらに、パケットの出力とともに、キュー切替処理部105は、出力したパケットの出力キューのキューIDをパケットの出力先の送信キューセット170へ出力する。また、キュー切替処理部105は、出力したパケットが属するフローのフローID及び加算を指示するコマンドをキュー情報管理テーブル163へ出力する。これにより、キュー切替処理部105は、キュー情報管理テーブル163における指定したフローIDに対応するキューカウンタを1つインクリメントさせる。このキュー切替処理部105が、「送信制御部」の一例にあたる。   Thereafter, the queue switching processing unit 105 outputs the packet, packet information, and the FID of the flow to which the packet belongs to the transmission queue set 170 having the queue determined as the output queue of the flow. Further, along with the output of the packet, the queue switching processing unit 105 outputs the queue ID of the output packet output queue to the transmission queue set 170 that is the output destination of the packet. Further, the queue switching processing unit 105 outputs the flow ID of the flow to which the output packet belongs and a command instructing addition to the queue information management table 163. As a result, the queue switching processing unit 105 increments the queue counter corresponding to the specified flow ID in the queue information management table 163 by one. The queue switching processing unit 105 is an example of a “transmission control unit”.

図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 selector 701, a multiplexer 703, a scheduler 704, and a plurality of queues 721 to 723. Hereinafter, when the queues 721 to 723 are not distinguished from each other, they are referred to as “queues 720”.

セレクタ701は、パケット情報、フローID及びパケットの入力をキュー切替処理部105から受ける。さらに、セレクタ701は、そのパケットの出力キューを表すキューIDの入力をキュー切替処理部105から受ける。すなわち、セレクタ701は、図3に示すパケット情報、フローID及びキューIDを含む情報セット151、並びに、パケットの入力をキュー切替処理部105から受ける。   The selector 701 receives packet information, flow ID, and packet input from the queue switching processing unit 105. Further, the selector 701 receives an input of a queue ID representing the output queue of the packet from the queue switching processing unit 105. That is, the selector 701 receives from the queue switching processing unit 105 the packet information, the information set 151 including the flow ID and the queue ID shown in FIG.

そして、セレクタ701は、指定されたキューIDを有するキュー720にパケット情報、フローID及びパケットを出力する。   Then, the selector 701 outputs the packet information, the flow ID, and the packet to the queue 720 having the designated queue ID.

キュー切替処理部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 processing unit 105 receives the packet information, the flow ID, and the packet input from the selector 701. The queue 720 stores the input packet information, flow ID, and packet. Thereafter, the queue 720 sequentially outputs to the multiplexer 703 packet information, flow IDs, and packets held in the order of acquisition timing.

スケジューラ704は、マルチプレクサ703が出力するパケットの調停を行う。例えば、スケジューラ704は、ラウンドロビンなどでパケットを出力するキュー720を選択してマルチプレクサ703から出力させる。   The scheduler 704 arbitrates packets output from the multiplexer 703. For example, the scheduler 704 selects a queue 720 that outputs a packet by round robin or the like and causes the multiplexer 703 to output it.

マルチプレクサ703は、スケジューラ704から指定されたキュー720からパケット情報、フローID及びパケットを取得する。そして、マルチプレクサ703は、取得したパケット情報及びパケットを送信ポート180へ出力する。さらに、マルチプレクサ703は、パケットが属するフローのフローIDを、減算を指示するコマンドとともにキュー情報管理テーブル163へ出力する。これにより、送信キューセット170は、キュー情報管理テーブル163における指定したフローIDに対応するキューカウンタを1つデクリメントさせる。   The multiplexer 703 acquires packet information, a flow ID, and a packet from the queue 720 specified from the scheduler 704. Then, the multiplexer 703 outputs the acquired packet information and packet to the transmission port 180. Further, the multiplexer 703 outputs the flow ID of the flow to which the packet belongs to the queue information management table 163 together with a command for instructing subtraction. As a result, the transmission queue set 170 decrements one queue counter corresponding to the specified flow ID in the queue information management table 163.

図2に戻って説明を続ける。送信ポート180は、パケット情報に含まれる宛先情報で指定された受信側のサーバ200に向けてパケットを送信する。   Returning to FIG. 2, the description will be continued. The transmission port 180 transmits a packet to the server 200 on the receiving side specified by the destination information included in the packet information.

次に、図8を参照して、フロー識別部103によるフローの識別処理の流れについて説明する。図8は、フロー識別部によるフローの識別処理のフローチャートである。   Next, the flow of flow identification processing by the flow identification unit 103 will be described with reference to FIG. FIG. 8 is a flowchart of the flow identification process by the flow identification unit.

フロー識別部103は、パケットとともにパケット情報及び送信ポートIDの入力を中継処理部102から受ける。そして、フロー識別部103は、パケット情報を用いてフロー識別テーブル161を検索する(ステップS101)。本実施例では、フロー識別部103は、パケット情報に含まれる送信元IP、宛先IP、送信ポート番号、宛先ポート番号及びプロトコルをフロー識別テーブル161へ出力することで検索を行う。   The flow identification unit 103 receives the packet information and the transmission port ID from the relay processing unit 102 together with the packet. Then, the flow identification unit 103 searches the flow identification table 161 using the packet information (step S101). In this embodiment, the flow identification unit 103 performs a search by outputting the source IP, destination IP, transmission port number, destination port number, and protocol included in the packet information to the flow identification table 161.

そして、フロー識別部103は、パケットが属するフローに該当するフローを検出する(ステップS102)。本実施例の場合、フロー識別テーブル161がCAMであるので、フロー識別部103は、送信した情報に対応する情報を有するエントリがある場合、そのエントリに対応するフローIDをフロー識別テーブル161から取得する。そして、フローIDを取得することができた場合、フロー識別部103は、該当するフローを検出したと判定する。   Then, the flow identification unit 103 detects a flow corresponding to the flow to which the packet belongs (step S102). In this embodiment, since the flow identification table 161 is a CAM, the flow identification unit 103 acquires the flow ID corresponding to the entry from the flow identification table 161 when there is an entry having information corresponding to the transmitted information. To do. If the flow ID can be acquired, the flow identification unit 103 determines that the corresponding flow has been detected.

該当するフローを検出した場合(ステップS102:肯定)、フロー識別部103は、パケットのエントリ情報をFoundとする。さらに、フロー識別部103は、そのフロー識別テーブル161におけるそのフローIDに対応する頻度情報を1つインクリメントする(ステップS103)。   When a corresponding flow is detected (step S102: Yes), the flow identification unit 103 sets the packet entry information to Found. Further, the flow identification unit 103 increments the frequency information corresponding to the flow ID in the flow identification table 161 by one (step S103).

これに対して、該当するフローを検出しない場合(ステップS102:否定)、フロー識別部103は、フロー識別テーブル161に空エントリが存在するか否かを判定する(ステップS104)。   On the other hand, when a corresponding flow is not detected (No at Step S102), the flow identification unit 103 determines whether there is an empty entry in the flow identification table 161 (Step S104).

空エントリが存在する場合(ステップS104:肯定)、フロー識別部103は、パケットのエントリ情報をNewとする。さらに、フロー識別部103は、フロー識別テーブル161の空エントリにフローの識別情報を登録し、頻度情報を1とする(ステップS105)。そして、フロー識別部103は、登録した空エントリの識別情報をフローIDとして取得する。   When there is an empty entry (step S104: Yes), the flow identification unit 103 sets the packet entry information to New. Further, the flow identification unit 103 registers the flow identification information in the empty entry of the flow identification table 161, and sets the frequency information to 1 (step S105). Then, the flow identification unit 103 acquires the identification information of the registered empty entry as a flow ID.

これに対して、空エントリが存在しない場合(ステップS104:否定)、フロー識別部103は、パケットのエントリ情報をNotfoundとする(ステップS106)。この場合、フロー識別部103は、フローIDが存在しないことを表す情報をフローIDとして取得する。   On the other hand, if there is no empty entry (No at Step S104), the flow identifying unit 103 sets the entry information of the packet as Notfound (Step S106). In this case, the flow identification unit 103 acquires information indicating that no flow ID exists as a flow ID.

次に、図9を参照して、フロー識別部103によるエントリ管理の流れについて説明する。図9は、フロー識別部によるエントリ管理のフローチャートである。   Next, the flow of entry management by the flow identification unit 103 will be described with reference to FIG. FIG. 9 is a flowchart of entry management by the flow identification unit.

フロー識別部103は、判定タイミングが到来したか否かを判定する(ステップS201)。判定タイミングが到来していない場合(ステップS201:否定)、フロー識別部103は、判定タイミングが到来するまで待機する。   The flow identification unit 103 determines whether the determination timing has arrived (step S201). When the determination timing has not arrived (No at Step S201), the flow identification unit 103 waits until the determination timing arrives.

これに対して、判定タイミングが到来した場合(ステップS201:肯定)、フロー識別部103は、未判定のエントリをフロー識別テーブル161から1つ選択する(ステップS202)。   On the other hand, when the determination timing has arrived (step S201: affirmative), the flow identification unit 103 selects one undetermined entry from the flow identification table 161 (step S202).

そして、フロー識別部103は、選択したエントリにおける頻度情報が0か否かを判定する(ステップS203)。頻度情報が0でない場合(ステップS203:否定)、フロー識別部103は、選択したエントリの頻度情報を1つデクリメントする(ステップS204)。   Then, the flow identification unit 103 determines whether or not the frequency information in the selected entry is 0 (step S203). When the frequency information is not 0 (No at Step S203), the flow identification unit 103 decrements the frequency information of the selected entry by one (Step S204).

これに対して、頻度情報が0の場合(ステップS203:肯定)、フロー識別部103は、選択したエントリのフローIDに対応するキューカウンタの値をキュー情報管理テーブル163から取得する。そして、フロー識別部103は、キューカウンタが0か否かを判定する(ステップS205)。   On the other hand, if the frequency information is 0 (step S203: Yes), the flow identification unit 103 acquires the value of the queue counter corresponding to the flow ID of the selected entry from the queue information management table 163. Then, the flow identification unit 103 determines whether or not the queue counter is 0 (step S205).

キューカウンタが0の場合(ステップS205:肯定)、フロー識別部103は、選択したエントリを削除する(ステップS206)。これに対して、キューカウンタが0でない場合(ステップS205:否定)、フロー識別部103は、ステップS207へ進む。   When the queue counter is 0 (step S205: Yes), the flow identification unit 103 deletes the selected entry (step S206). On the other hand, when the queue counter is not 0 (No at Step S205), the flow identifying unit 103 proceeds to Step S207.

その後、フロー識別部103は、未判定のエントリが残っているか否かを判定する(ステップS207)。未判定のエントリが残っている場合(ステップS207:肯定)、フロー識別部103は、ステップS202へ戻る。   Thereafter, the flow identification unit 103 determines whether or not an undetermined entry remains (step S207). When an undetermined entry remains (Step S207: Yes), the flow identification unit 103 returns to Step S202.

これに対して、未判定のエントリが残っていない場合(ステップS207:否定)、フロー識別部103は、エントリの管理処理を終了する。   On the other hand, when there is no undetermined entry remaining (step S207: No), the flow identification unit 103 ends the entry management process.

次に、図10を参照して、フロー判別処理部104によるフロー判別処理の流れについて説明する。図10は、フロー判別処理部によるフロー判別処理のフローチャートである。   Next, with reference to FIG. 10, the flow of flow discrimination processing by the flow discrimination processing unit 104 will be described. FIG. 10 is a flowchart of the flow discrimination processing by the flow discrimination processing unit.

フロー判別処理部104は、パケット情報、送信ポートID、フローID及びエントリ情報の入力をフロー識別部103から受ける。そして、フロー判別処理部104は、エントリ情報がFoundか否かを判定する(ステップS301)。エントリ情報がFoundの場合(ステップS301:肯定)、フロー判別処理部104は、ステップS304へ進む。   The flow discrimination processing unit 104 receives input of packet information, transmission port ID, flow ID, and entry information from the flow identification unit 103. Then, the flow determination processing unit 104 determines whether or not the entry information is found (step S301). When the entry information is Found (step S301: Yes), the flow determination processing unit 104 proceeds to step S304.

これに対して、エントリ情報がFoundでない場合(ステップS301:否定)、フロー判別処理部104は、エントリ情報がNewか否かを判定する(ステップS302)。   On the other hand, when the entry information is not Found (step S301: No), the flow determination processing unit 104 determines whether the entry information is New (step S302).

エントリ情報がNewの場合(ステップS302:肯定)、フロー判別処理部104は、転送量テーブル162に新たに取得したフローIDに対応するエントリを作成して転送量を初期化する(ステップS303)。   When the entry information is New (step S302: Yes), the flow determination processing unit 104 creates an entry corresponding to the newly acquired flow ID in the transfer amount table 162 and initializes the transfer amount (step S303).

エントリ情報がFound又はステップS303の後に、フロー判別処理部104は、取得したフローIDに対応する転送量テーブル162の転送量に取得したパケットの大きさを加算して登録する(ステップS304)。   After the entry information is found or after step S303, the flow determination processing unit 104 adds the size of the acquired packet to the transfer amount of the transfer amount table 162 corresponding to the acquired flow ID and registers it (step S304).

その後、フロー判別処理部104は、パケットに特定キューが出力キューとして指定されているか否かを判定する(ステップS305)。   Thereafter, the flow determination processing unit 104 determines whether or not a specific queue is designated as an output queue for the packet (step S305).

特定キューが指定されていない場合(ステップS305:否定)、フロー判別処理部104は、取得したフローIDに対応する転送量が閾値以上か否かを判定する(ステップS306)。   When the specific queue is not specified (No at Step S305), the flow determination processing unit 104 determines whether or not the transfer amount corresponding to the acquired flow ID is equal to or greater than the threshold (Step S306).

取得したフロー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 determination processing unit 104 sets the long queue as a candidate queue for the packet (step S307).

これに対して、取得したフロー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 determination processing unit 104 sets the short queue as a candidate queue for the packet (Step S308).

一方、特定キューが指定されている場合(ステップS305:肯定)、フロー判別処理部104は、特定キューをそのパケットの候補キューとする(ステップS309)。   On the other hand, when a specific queue is designated (step S305: Yes), the flow determination processing unit 104 sets the specific queue as a candidate queue for the packet (step S309).

また、エントリ情報が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 determination processing unit 104 sets the default queue as a candidate queue for the packet (step S310).

次に、図11を参照して、キュー切替処理部105によるキューの切り替え処理の流れについて説明する。図11は、キュー切替処理部によるキューの切り替え処理のフローチャートである。   Next, a flow of queue switching processing by the queue switching processing unit 105 will be described with reference to FIG. FIG. 11 is a flowchart of queue switching processing by the queue switching processing unit.

キュー切替処理部105は、パケット情報、フローID、エントリ情報及び候補キューIDの入力をフロー判別処理部104から受ける。そして、キュー切替処理部105は、エントリ情報がFoundか否かを判定する(ステップS401)。   The queue switching processing unit 105 receives input of packet information, flow ID, entry information, and candidate queue ID from the flow determination processing unit 104. The queue switching processing unit 105 determines whether the entry information is found (step S401).

エントリ情報がFoundの場合(ステップS401:肯定)、キュー切替処理部105は、候補キューと現在のキューのキューIDが同一か否かにより、キューの切り替えが発生するか否かを判定する(ステップS402)。   When the entry information is found (step S401: affirmative), the queue switching processing unit 105 determines whether or not queue switching occurs depending on whether or not the candidate queue and the queue ID of the current queue are the same (step S401). S402).

キューの切り替えが発生する場合(ステップS402:肯定)、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する(ステップS403)。   When queue switching occurs (Step S402: Yes), the queue switching processing unit 105 determines whether or not the value of the queue counter corresponding to the acquired flow ID in the queue information management table 163 is 0 (Step S403). .

キューカウンタが0の場合(ステップS403:肯定)、キュー切替処理部105は、パケットの出力キューを候補キューに切り替える(ステップS404)。   When the queue counter is 0 (step S403: Yes), the queue switching processing unit 105 switches the packet output queue to the candidate queue (step S404).

これに対して、キューの切り替えが発生しない場合(ステップ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 processing unit 105 maintains the output queue in the current queue (step S403). S406).

一方、エントリ情報が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 processing unit 105 determines whether the entry information is New (Step S405). If the entry information is not New (step S405: No), that is, if the entry information is Notfound, the queue switching processing unit 105 proceeds to step S408.

これに対して、エントリ情報がNewの場合(ステップS405:肯定)、キュー切替処理部105は、キュー情報管理テーブル163に取得したフローIDに対応するエントリを作成して作成したエントリを初期化し(ステップS407)、ステップS408に進む。   In contrast, when the entry information is New (step S405: Yes), the queue switching processing unit 105 initializes the created entry by creating an entry corresponding to the acquired flow ID in the queue information management table 163 ( Step S407) and the process proceeds to Step S408.

キュー切替処理部105は、出力キューを候補キューに設定する(ステップS408)。   The queue switching processing unit 105 sets the output queue as a candidate queue (step S408).

次に、図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 discrimination processing unit 104 measures the increment of the transfer amount at regular intervals, and when the measurement result is equal to or greater than a predetermined increment threshold, the long queue is set as a candidate queue, and the measurement result is less than the increment threshold. Uses the short queue as a candidate queue.

また、本実施例では、特定キュー以外に、ロングキューとショーキューという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 flow identification unit 103 classifies storage traffic, streaming, and other flows as the types of flows using packet information. In this case, as the queue 720, three types of queues 720 corresponding to storage traffic, streaming, and other flows are prepared. The queue switching processing unit 105 determines a packet output queue according to the type of flow determined by the flow determination processing unit 104.

また、これらのキューの構成を組み合わせることも可能である。例えば、キュー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 flow identification unit 103 acquires the source IP, destination IP, source port, destination port, and protocol from the packet information acquired from the relay processing unit 102. Then, the flow identification unit 103 obtains a hash value from the acquired transmission source IP, destination IP, transmission source port, destination port, and protocol.

次に、フロー識別部103は、算出したハッシュ値をアドレスとしてフロー識別テーブル161を読み出す。そのエントリが使用中であり、読み出したエントリのヘッダ情報がパケットのヘッダ情報と一致する場合、フロー識別部103は、パケットのエントリ情報をFoundとする。また、フロー識別部103は、読み出したエントリのアドレス、すなわちハッシュ値をフローIDとして取得する。さらに、フロー識別部103は、ハッシュ値をアドレスとするエントリの頻度情報を1つインクリメントする。   Next, the flow identification unit 103 reads the flow identification table 161 using the calculated hash value as an address. When the entry is in use and the header information of the read entry matches the header information of the packet, the flow identification unit 103 sets the entry information of the packet as Found. Further, the flow identification unit 103 acquires the address of the read entry, that is, the hash value as a flow ID. Further, the flow identification unit 103 increments the frequency information of the entry having the hash value as an address by one.

これに対して、ハッシュ値をアドレスとするエントリが未使用の場合、フロー識別部103は、その空きエントリにパケットのヘッダ情報を登録して頻度情報を1とする。そして、フロー識別部103は、パケットのエントリ情報をNewとする。   On the other hand, when the entry having the hash value as an address is unused, the flow identification unit 103 registers the packet header information in the empty entry and sets the frequency information to 1. Then, the flow identification unit 103 sets the packet entry information to New.

また、ハッシュ値をアドレスとするエントリが使用中であり、そのエントリのヘッダ情報がパケットのヘッダ情報と一致しない場合、フロー識別部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 flow identification unit 103 determines whether the frequency information of the entry is zero. . If the frequency information is 0, the flow identification unit 103 acquires the value of the queue counter of the flow ID corresponding to the entry from the queue information management table 163. If the queue counter is 0, the flow identification unit 103 registers the header information of the entry and sets the frequency information to 1. Furthermore, the flow identification unit 103 sets the packet entry information to New. When the frequency information is not 0, or when the frequency information is 0 but the queue counter is not 0, the flow identification unit 103 sets the packet entry information as Notfound.

これらと並行して、フロー識別部103は、実施例1と同様に、フロー識別テーブル161を定期的にスキャンし、0を最小値として各エントリの頻度情報を1つデクリメントする。   In parallel with these, the flow identification unit 103 periodically scans the flow identification table 161 and decrements the frequency information of each entry by one with 0 as the minimum value, as in the first embodiment.

次に、図15を参照して、本実施例に係るフロー識別部103によるフロー識別処理の流れについて説明する。図15は、実施例2に係るフロー識別部によるフロー識別処理のフローチャートである。   Next, the flow of flow identification processing by the flow identification unit 103 according to the present embodiment will be described with reference to FIG. FIG. 15 is a flowchart of the flow identification process performed by the flow identification unit according to the second embodiment.

フロー識別部103は、中継処理部102から取得したパケット情報から送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルを取得する。そして、フロー識別部103は、取得した送信元IP、宛先IP、送信元ポート、宛先ポート及びプロトコルからハッシュ値を算出する(ステップS701)。   The flow identification unit 103 acquires the source IP, destination IP, source port, destination port, and protocol from the packet information acquired from the relay processing unit 102. Then, the flow identification unit 103 calculates a hash value from the acquired transmission source IP, destination IP, transmission source port, destination port, and protocol (step S701).

次に、フロー識別部103は、算出したハッシュ値を用いてフロー識別テーブル161からフローを検索する(ステップS702)。   Next, the flow identification unit 103 searches for a flow from the flow identification table 161 using the calculated hash value (step S702).

そして、フロー識別部103は、パケットが属するフローに該当するフローがフロー識別テーブル161に登録されているか否かを判定する(ステップS703)。   Then, the flow identification unit 103 determines whether or not a flow corresponding to the flow to which the packet belongs is registered in the flow identification table 161 (step S703).

該当するフローが登録済みの場合(ステップS703:肯定)、フロー識別部103は、エントリ情報をFoundとして、頻度情報を1つインクリメントする(ステップS704)。   When the corresponding flow has been registered (step S703: affirmative), the flow identification unit 103 increments the frequency information by one with the entry information as Found (step S704).

該当するフローが登録されていない場合(ステップS703:否定)、フロー識別部103は、算出したハッシュ値をアドレスとしてフロー識別テーブル161を読み出し、読み出したエントリが未使用エントリであるかいなかを判定する(ステップS705)。未使用エントリである場合(ステップS705:肯定)、フロー識別部103は、パケットのエントリ情報をNewとする。さらに、フロー識別部103は、空きエントリにハッシュ値を登録して、そのエントリの頻度情報を1とする(ステップS706)。   When the corresponding flow is not registered (step S703: No), the flow identification unit 103 reads the flow identification table 161 using the calculated hash value as an address, and determines whether the read entry is an unused entry. (Step S705). When the entry is an unused entry (step S705: Yes), the flow identification unit 103 sets the entry information of the packet as New. Furthermore, the flow identification unit 103 registers a hash value in the empty entry and sets the frequency information of the entry to 1 (step S706).

これに対して、エントリが使用中の場合(ステップS705:否定)、フロー識別部103は、頻度情報が0で且つキューカウンタも0か否かを判定する(ステップS707)。   On the other hand, if the entry is in use (No at Step S705), the flow identification unit 103 determines whether the frequency information is 0 and the queue counter is also 0 (Step S707).

頻度情報が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 flow identification unit 103 sets the packet entry information to New. Furthermore, the flow identification unit 103 registers a hash value in the empty entry and sets the frequency information of the entry to 1 (step S706).

これに対して、頻度情報が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 flow identifying unit 103 sets the packet entry information as Notfound (Step S708).

これらに並行して、フロー識別部103は、フロー識別テーブル161をスキャンし、0と最小値として各エントリの頻度情報を1つデクリメントする。   In parallel with these, the flow identification unit 103 scans the flow identification table 161 and decrements the frequency information of each entry by 1 as 0 and the minimum value.

ここで、本実施例では、フロー識別部103は、パケットを受信した際に空のエントリが無ければその都度、フロー識別テーブル161の管理を行う場合で説明したが、フロー識別テーブル161の管理のタイミングはこれに限らない。例えば、フロー識別部103は、実施例1と同様に一定周期でフロー識別テーブル161の管理を繰り返してもよい。逆に、実施例1において、本実施例で説明したタイミングでフロー識別テーブル161を管理してもよい。   Here, in this embodiment, the flow identification unit 103 has been described as managing the flow identification table 161 each time there is no empty entry when receiving a packet. The timing is not limited to this. For example, the flow identification unit 103 may repeat the management of the flow identification table 161 at a constant cycle as in the first embodiment. Conversely, in the first embodiment, the flow identification table 161 may be managed at the timing described in the present embodiment.

以上に説明したように、本実施例に係るスイッチは、ハッシュ値を用いてパケットが属するフローが登録済みか否かの判定を行う。このように、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 transmission port 180. FIG. 16 shows a state in which entries corresponding to the transmission ports 181 to 182 are registered corresponding to each flow ID. However, in the queue information management table 163, all the transmission ports 181 to 182 are registered if the transmission port 180 to which the queue 720 in use is connected as the current queue of the packet belonging to the flow ID is registered. It does not have to be.

キュー切替処理部105は、キュー情報管理テーブル163を用いて、各送信ポート180に接続される送信キューセット170毎に、パケットの格納状態を管理する。この場合も、キュー切替処理部105は、送信ポート180毎に、現在のキューと候補キューが異なる場合には、そのパケットが属するフローに対応するキューカウンタが0であれば、候補キューを出力キューとする。   The queue switching processing unit 105 uses the queue information management table 163 to manage the packet storage state for each transmission queue set 170 connected to each transmission port 180. Also in this case, if the current queue and the candidate queue are different for each transmission port 180, the queue switching processing unit 105 sets the candidate queue as the output queue if the queue counter corresponding to the flow to which the packet belongs is 0. And

このように、本実施例に係るスイッチは、各フローについて送信ポート毎にエントリを有するキュー情報管理テーブルを用いることで、送信ポート毎の出力キューの切替制御を行うことが可能となる。したがって、本実施例に係るスイッチは、実施例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 switch 100 according to the present embodiment is different from the first embodiment in that the packet body is not sent to the queue 720 but a pointer indicating the position of the packet is sent. In the following description, the description of the operation of each part similar to that of the first embodiment is omitted. The switch 100 according to the present embodiment includes a packet buffer 191 and a control unit 192 in addition to the components of the first embodiment.

受信ポート110は、パケットを受信すると、パケットバッファ191に受信したパケットを格納し、パケットバッファ191におけるパケットの格納場所を示すポインタを取得する。そして、受信ポート110は、パケットの格納場所を示すポインタとともに、中継処理部102にパケット情報を出力する。   When receiving the packet, the reception port 110 stores the received packet in the packet buffer 191 and obtains a pointer indicating the packet storage location in the packet buffer 191. Then, the reception port 110 outputs packet information to the relay processing unit 102 together with a pointer indicating the storage location of the packet.

中継処理部102、フロー識別部103、フロー判別処理部104、キュー切替処理部105はそれぞれ、パケット本体に代えて、パケットの格納場所を示すポインタを送信する。   Each of the relay processing unit 102, the flow identification unit 103, the flow discrimination processing unit 104, and the queue switching processing unit 105 transmits a pointer indicating a packet storage location instead of the packet body.

そして、送信キューセット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 control unit 192 receives from the transmission queue set 170 the packet information of the packet to be output and the pointer indicating the packet storage location. Then, the control unit 192 acquires the packet main body stored in the packet buffer 191 using a pointer indicating the packet storage location. Then, the control unit 192 combines the packet information and the packet body, and outputs the packet information to the transmission port 180 corresponding to the transmission queue set 170 that has output the packet.

以上に説明したように、本実施例に係るスイッチは、パケット本体はキューに流さずにパケットの位置を示すポインタを流して、キューから出力されたポインタに応じてパケット本体を取得して出力する。このように、パケットを他の場所に格納した状態で処理を行っても、実施例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 switch 100 described in each of the above embodiments can be realized by, for example, an LSI (Large Scale Integration). For example, the data holding unit 160 and the transmission queue set 170 illustrated in FIGS. 2 and 17 and the packet buffer 191 illustrated in FIG. 17 are realized by a storage device using an LSI. Further, the storage device using the LSI includes the relay processing unit 102, the flow identification unit 103, the flow discrimination processing unit 104, the queue switching processing unit 105 exemplified in FIGS. 2 and 17, and the control unit exemplified in FIG. Various programs including programs for realizing the functions of 192 are stored.

そして、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 relay processing unit 102, the flow identification unit 103, the flow discrimination processing unit 104, the queue switching processing unit 105, and the control unit 192 Realize the function. In particular, the LSI switch 100 often has the mode shown in the fourth embodiment.

ストレージトラフィックをイーサネット(登録商標)で実現する技術として、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 switch 100 according to the embodiment performs bandwidth control of the short queue, performs congestion control, determines the congestion state of the long queue based on the queue length of the long queue, and selects the short queue as a candidate if the congestion state is not present Even in the case of a packet, it is different from the first embodiment in that the packet is routed to a long queue. In the following description, the description of the functions of the same parts as those in the first embodiment will be omitted.

ここで、本実施例では、図18に示すように中継処理部102をフロー判別処理部104とキュー切替処理部105との間に配置した。これにより、パケットを出力する送信ポート180の決定処理が実施例1よりも後に移動するが、処理の位置の変更以外の変更はほぼない。すなわち、中継処理部102は、実施例1と同様にフロー識別部103の前に配置してもよい。   Here, in the present embodiment, the relay processing unit 102 is disposed between the flow determination processing unit 104 and the queue switching processing unit 105 as shown in FIG. Thereby, although the determination process of the transmission port 180 that outputs the packet moves after the first embodiment, there is almost no change other than the change of the position of the process. That is, the relay processing unit 102 may be disposed in front of the flow identification unit 103 as in the first embodiment.

各部の間で受け渡しされるデータは、図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 flow identification unit 103. Further, as information transmitted from the flow identification unit 103 to the flow discrimination processing unit 104, an information set 212 including packet information, a flow ID, and entry information is transmitted. Further, as information transmitted from the flow discrimination processing unit 104 to the relay processing unit 102, an information set 213 including packet information, flow ID, entry information, and candidate queue ID is transmitted. Also, as information transmitted from the relay processing unit 102 to the queue switching processing unit 105, an information set 214 including packet information, flow ID, entry information, candidate queue ID, and transmission port ID is transmitted. Further, as information transmitted from the queue switching processing unit 105 to the transmission queue set 170, an information set 215 including packet information, a flow ID, and a queue ID is transmitted.

本実施例に係るキュー情報管理テーブル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 switching processing unit 105 receives, from the relay processing unit 102, an information set 214 including packet information, flow ID, entry information, candidate queue ID, and transmission port ID together with the packet body. Then, the queue switching processing unit 105 confirms the entry information.

エントリ情報がFoundの場合、キュー切替処理部105は、候補キューIDを確認し、候補キューがショートキューか否かを判定する。候補キューがロングキューであれば、キュー切替処理部105は、その候補キューを維持する。   When the entry information is found, the queue switching processing unit 105 checks the candidate queue ID and determines whether the candidate queue is a short queue. If the candidate queue is a long queue, the queue switching processing unit 105 maintains the candidate queue.

これに対して、候補キューがショートキューの場合、キュー切替処理部105は、キュー情報管理テーブル163における各ロングキューの輻輳情報を確認して各ロングキューに輻輳が発生しているか否かを判定する。輻輳が発生していなければ、キュー切替処理部105は、候補キューをロングキューとする。これに対して、輻輳が発生している場合、キュー切替処理部105は、候補キューをショートキューのまま維持する。   On the other hand, when the candidate queue is a short queue, the queue switching processing unit 105 checks the congestion information of each long queue in the queue information management table 163 and determines whether or not congestion occurs in each long queue. To do. If congestion does not occur, the queue switching processing unit 105 sets the candidate queue as a long queue. On the other hand, when congestion has occurred, the queue switching processing unit 105 maintains the candidate queue as a short queue.

すなわち、キュー切替処理部105は、候補キューがショートキューであっても、ロングキューに輻輳が発生していなければ、ロングキューの転送レートは未だ余裕があるので、パケットをロングキューへ出力する。一方、輻輳が発生している場合、キュー切替処理部105は、ロングキューの転送レートを維持するため、ショートキューにパケットを振り分ける。   That is, even if the candidate queue is a short queue, the queue switching processing unit 105 outputs a packet to the long queue because the transfer rate of the long queue is still sufficient if there is no congestion in the long queue. On the other hand, when congestion occurs, the queue switching processing unit 105 distributes packets to the short queue in order to maintain the long queue transfer rate.

その後、キュー切替処理部105は、キューの切り替えが発生するか否かを判定する。キューの切り替えが発生しない場合、キュー切替処理部105は、出力キューを候補キューとする。この場合、出力キューを現在のキューのまま維持することになる。   Thereafter, the queue switching processing unit 105 determines whether or not queue switching occurs. When queue switching does not occur, the queue switching processing unit 105 sets the output queue as a candidate queue. In this case, the output queue is maintained as the current queue.

一方、キューの切り替えが発生する場合、キュー切替処理部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 processing unit 105 sets the output queue of the flow from the current queue. Change to a candidate queue.

これに対して、キューカウンタの値が0でない場合、キュー切替処理部105は、そのフローの出力キューを候補キューとされなかった現在のキューのまま維持する。   On the other hand, when the value of the queue counter is not 0, the queue switching processing unit 105 maintains the output queue of the flow as the current queue that has not been set as the candidate queue.

また、エントリ情報がNewの場合、キュー切替処理部105は、キュー情報管理テーブル163に新たに取得したフローIDを登録して対応するエントリを作成する。そして、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。   When the entry information is New, the queue switching processing unit 105 registers the newly acquired flow ID in the queue information management table 163 and creates a corresponding entry. Then, the queue switching processing unit 105 sets the output queue of the flow as a candidate queue.

また、エントリ情報がNotfoundの場合、キュー切替処理部105は、そのフローの出力キューを候補キューに設定する。   If the entry information is Notfound, the queue switching processing unit 105 sets the output queue of the flow as a candidate queue.

その後、キュー切替処理部105は、そのフローの出力キューとして決定したキューを有する送信キューセット170へパケット、パケット情報及びそのパケットが属するフローのFIDを出力する。さらに、パケットの出力とともに、キュー切替処理部105は、出力したパケットの出力キューのキューIDをパケットの出力先の送信キューセット170へ出力する。また、キュー切替処理部105は、出力したパケットが属するフローのフローID及び加算を指示するコマンドをキュー情報管理テーブル163へ出力する。   Thereafter, the queue switching processing unit 105 outputs the packet, packet information, and the FID of the flow to which the packet belongs to the transmission queue set 170 having the queue determined as the output queue of the flow. Further, along with the output of the packet, the queue switching processing unit 105 outputs the queue ID of the output packet output queue to the transmission queue set 170 that is the output destination of the packet. Further, the queue switching processing unit 105 outputs the flow ID of the flow to which the output packet belongs and a command instructing addition to the queue information management table 163.

図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 selector 701, a multiplexer 703, a scheduler 704, and a plurality of queues 721 to 723.

セレクタ701は、パケット情報、フローID及びパケットの入力をキュー切替処理部105から受ける。さらに、セレクタ701は、そのパケットの出力キューを表すキューIDの入力をキュー切替処理部105から受ける。そして、セレクタ701は、指定されたキューIDを有するキュー720にパケット情報、フローID及びパケットを出力する。   The selector 701 receives packet information, flow ID, and packet input from the queue switching processing unit 105. Further, the selector 701 receives an input of a queue ID representing the output queue of the packet from the queue switching processing unit 105. Then, the selector 701 outputs the packet information, the flow ID, and the packet to the queue 720 having the designated queue ID.

キュー切替処理部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 processing unit 105 receives the packet information, the flow ID, and the packet input from the selector 701. The queue 720 stores the input packet information, flow ID, and packet. Thereafter, the queue 720 sequentially outputs to the multiplexer 703 packet information, flow IDs, and packets held in the order of acquisition timing. Further, the queue 720 compares its own queue length with a predetermined congestion threshold, and if the queue length is equal to or greater than the threshold, the occurrence of congestion is registered in the queue information management table 163 as congestion information. On the other hand, when the queue length is less than the threshold, the queue 720 registers that no congestion has occurred in the queue information management table 163 as the congestion information.

輻輳制御部109は、各送信キューセット171における輻輳を判定するためのキュー長である輻輳判定閾値を有する。そして、輻輳制御部109は、各送信キューセット171のキュー長を取得する。図18では、図示の都合上、輻輳制御部109と送信キューセット171との間の通信経路を示したが、実際には、輻輳制御部109は、他の送信キューセット170と間にも通信経路を有する。輻輳制御部109は、あるキュー700のキュー長が輻輳判定閾値を超えた場合、そのキュー700から出力されるパケットに輻輳発生を表すマークを付加する。輻輳制御部109がマークを付加することで、スイッチ100を介してパケットの送受信を行うサーバ200は、マークにしたがってパケットの送信量を制御して輻輳を解消することができる。   The congestion control unit 109 has a congestion determination threshold that is a queue length for determining congestion in each transmission queue set 171. The congestion control unit 109 acquires the queue length of each transmission queue set 171. In FIG. 18, for convenience of illustration, the communication path between the congestion control unit 109 and the transmission queue set 171 is shown. However, actually, the congestion control unit 109 communicates with other transmission queue sets 170. Have a route. When the queue length of a certain queue 700 exceeds the congestion determination threshold, the congestion control unit 109 adds a mark indicating the occurrence of congestion to a packet output from the queue 700. When the congestion control unit 109 adds a mark, the server 200 that transmits and receives a packet via the switch 100 can control the amount of packet transmission according to the mark to eliminate the congestion.

スケジューラ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 multiplexer 703 for the plurality of queues 720 whose output has been determined. The scheduler 704 is an example of a “bandwidth control unit”.

マルチプレクサ703は、スケジューラ704からの指定にしたがって、パケット情報及びパケットを送信ポート180へ出力する。さらに、マルチプレクサ703は、パケットが属するフローのフローIDを、減算を指示するコマンドとともにキュー情報管理テーブル163へ出力する。   The multiplexer 703 outputs the packet information and the packet to the transmission port 180 according to the designation from the scheduler 704. Further, the multiplexer 703 outputs the flow ID of the flow to which the packet belongs to the queue information management table 163 together with a command for instructing subtraction.

次に、図22を参照して、本実施例に係るキュー切替処理部105によるキューの切り替え処理の流れについて説明する。図22は、実施例5に係るキュー切替処理部によるキューの切り替え処理のフローチャートである。   Next, a flow of queue switching processing by the queue switching processing unit 105 according to the present embodiment will be described with reference to FIG. FIG. 22 is a flowchart of the queue switching process performed by the queue switching processing unit according to the fifth embodiment.

キュー切替処理部105は、パケット情報、フローID、エントリ情報、候補キューID及び送信ポートIDの入力を中継処理部102から受ける。そして、キュー切替処理部105は、エントリ情報がFoundか否かを判定する(ステップS801)。   The queue switching processing unit 105 receives input of packet information, flow ID, entry information, candidate queue ID, and transmission port ID from the relay processing unit 102. Then, the queue switching processing unit 105 determines whether or not the entry information is found (step S801).

エントリ情報がFoundの場合(ステップS801:肯定)、キュー切替処理部105は、候補キューがショートキューであり、且つ、輻輳が発生していないロングキューが存在するか否かを判定する。ここで、輻輳が発生していないロングキューとは、キュー長が輻輳閾値未満のロングキューである(ステップS802)。候補キューがロングキューである、又は、輻輳が発生していないロングキューが存在しない場合(ステップS802:否定)、キュー切替処理部105は、ステップS804へ進む。   When the entry information is Found (step S801: Yes), the queue switching processing unit 105 determines whether the candidate queue is a short queue and there is a long queue in which congestion has not occurred. Here, the long queue in which no congestion occurs is a long queue whose queue length is less than the congestion threshold (step S802). If the candidate queue is a long queue or there is no long queue in which congestion has not occurred (No at Step S802), the queue switching processing unit 105 proceeds to Step S804.

候補キューがショートキューであり、輻輳が発生していないロングキューが存在する場合(ステップ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 processing unit 105 sets the long queue as a candidate queue (step S803).

次に、キュー切替処理部105は、候補キューと現在のキューのキューIDが同一か否かにより、キューの切り替えが発生するか否かを判定する(ステップS804)。   Next, the queue switching processor 105 determines whether or not queue switching occurs depending on whether or not the candidate queue and the current queue have the same queue ID (step S804).

キューの切り替えが発生する場合(ステップS804:肯定)、キュー切替処理部105は、キュー情報管理テーブル163における取得したフローIDに対応するキューカウンタの値が0か否かを判定する(ステップS805)。   When queue switching occurs (step S804: Yes), the queue switching processing unit 105 determines whether or not the value of the queue counter corresponding to the acquired flow ID in the queue information management table 163 is 0 (step S805). .

キューカウンタが0の場合(ステップS805:肯定)、キュー切替処理部105は、パケットの出力キューを候補キューに切り替える(ステップS806)。   When the queue counter is 0 (step S805: Yes), the queue switching processing unit 105 switches the packet output queue to the candidate queue (step S806).

これに対して、キューの切り替えが発生しない場合(ステップ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 processing unit 105 maintains the output queue in the current queue (step S805). S807).

一方、エントリ情報が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 processing unit 105 determines whether the entry information is New (Step S808). If the entry information is not New (step S808: No), that is, if the entry information is Notfound, the queue switching processing unit 105 proceeds to step S810.

これに対して、エントリ情報がNewの場合(ステップS808:肯定)、キュー切替処理部105は、キュー情報管理テーブル163に取得したフローIDに対応するエントリを作成して作成したエントリを初期化し(ステップS809)、ステップS810に進む。   In contrast, if the entry information is New (step S808: Yes), the queue switching processing unit 105 initializes the created entry by creating an entry corresponding to the acquired flow ID in the queue information management table 163 ( Step S809) and the process proceeds to Step S810.

キュー切替処理部105は、出力キューを候補キューに設定する(ステップS810)。   The queue switching processing unit 105 sets the output queue as a candidate queue (step S810).

以上に説明したように、本実施例に係るスイッチは、ロングキューの輻輳状態からショートキューを候補キューと判定したパケットをロングキューに回すかショートキューに回すかを判定する。その後、スイッチは、予め決められた帯域幅に抑えられるようにデータを出力させるキューを決定する。これにより、ロングキューの出力レートを高く維持することができ、マイクロバーストなどによる急激な輻輳制御の発生を回避することができる。   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 switch 100 according to the present embodiment is different from the fifth embodiment in that it performs congestion control and performs scheduling of a queue 720 for outputting packets using DRR (Deficit Round Robin). In the following description, description of functions of the same parts as those in the fifth embodiment is omitted.

本実施例に係るキュー情報管理テーブル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 processing unit 105 according to the present embodiment performs the same processing as in the first embodiment, and determines an output queue of packets included in each flow. That is, the queue switching processing unit 105 does not need to consider the congestion state of each queue 720 in determining the output queue.

さらに、本実施例に係る送信キューセット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 queue 721 does not need to determine the congestion state and register it in the queue information management table 163.

そして、スケジューラ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 information processing system 1 according to the present embodiment is different from the sixth embodiment in that the server 200 performs flow identification processing and flow determination processing, and the switch 100 performs queue switching processing. Each part having the same reference numeral as in the first embodiment has the same function unless otherwise specified.

サーバ200は、通信部221、フロー判別部222、フロー判別テーブル223及び受信バッファ224を有する。   The server 200 includes a communication unit 221, a flow determination unit 222, a flow determination table 223, and a reception buffer 224.

通信部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 flow determination unit 222.

また、通信部221は、図示を省略するが、スイッチ100の送信ポート181と接続される。そして、通信部221は、送信ポート181から出力されたパケットを受信する。受信したパケットにACK(Acknowledgement)を含む場合、通信部221は、ACKに対するプロトコル処理を実行する。そして、通信部221は、ACKの受信をフロー判別部222へ通知する。また、受信したパケットにデータが含まれる場合、通信部221は、データを受信バッファ224に格納する。データの送受信完了後、通信部221は、接続を切断する。   Further, the communication unit 221 is connected to the transmission port 181 of the switch 100 although not shown. Then, the communication unit 221 receives the packet output from the transmission port 181. When the received packet includes an ACK (Acknowledgement), the communication unit 221 executes a protocol process for the ACK. Then, the communication unit 221 notifies the flow determination unit 222 that ACK has been received. If the received packet includes data, the communication unit 221 stores the data in the reception buffer 224. After the data transmission / reception is completed, the communication unit 221 disconnects the connection.

フロー判別テーブル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 values 0 to 2 and 5 to 7 represent “other” flow types.

フロー判別部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 flow determination unit 222 initializes the information on the transmission amount of the flow held by itself to zero. Next, the flow determination unit 222 acquires a packet to be transmitted from the communication unit 221. Next, the flow determination unit 222 determines whether the flow transmission amount is equal to or greater than a predetermined determination threshold. If the transmission amount is less than the determination threshold, the flow determination unit 222 acquires “3” that is a value representing the priority corresponding to the short flow from the flow determination table 223. Then, the flow determination unit 222 registers “3” in the priority field of the VLAN tag in the packet header.

これに対して、送信量が判別閾値以上の場合、フロー判別部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 flow determination unit 222 determines whether the queue used at the previous transmission of the packet belonging to the flow is a short queue. When the long queue is used at the previous transmission, the flow determination unit 222 acquires “4”, which is a value representing the priority corresponding to the long flow, from the flow determination table 223. Then, the flow determination unit 222 registers “4” in the priority field of the VLAN tag in the packet header.

これに対して、前回の送信時にショートキューを使用した場合、フロー判別部222は、前回のパケット送信に対するACKの受信の通知を通信部221から受けたか否かを判定する。前回のパケット送信に対するACKの受信の通知を通信部221から受けていない場合、パケットがキュー720に溜まっている可能性があることからパケットの追い越しを防止するため、フロー判別部222は、パケットの送信処理を終了する。   In contrast, when the short queue is used at the previous transmission, the flow determination unit 222 determines whether or not the communication unit 221 has received an ACK reception notification for the previous packet transmission. If the notification of ACK reception for the previous packet transmission is not received from the communication unit 221, the packet may be accumulated in the queue 720. The transmission process ends.

これに対して、前回のパケット送信に対する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 flow determination unit 222 determines that there is no possibility that the packet is accumulated in the queue 720. Next, the flow determination unit 222 acquires “4” that is a value representing the priority corresponding to the long flow from the flow determination table 223. Then, the flow determination unit 222 registers “4” in the priority field of the VLAN tag in the packet header.

そして、フロー判別部222は、プライオリティフィールドに値が設定されたパケットをスイッチ100へ送信する。さらに、フロー判別部222は、フローの送信量にパケット長を加算する。その後、フロー判別部222は、そのフローに属する次のパケットの送信の処理に移る。このフロー判別部222が、「第1通信装置における送信制御部」の一例にあたる。   Then, the flow determination unit 222 transmits a packet having a value set in the priority field to the switch 100. Furthermore, the flow determination unit 222 adds the packet length to the flow transmission amount. Thereafter, the flow determination unit 222 proceeds to a process for transmitting the next packet belonging to the flow. The flow determination unit 222 corresponds to an example of “a transmission control unit in the first communication device”.

スイッチ100は、受信ポート110、中継処理部102、キュー切替処理部105、輻輳制御部109、送信キューセット170、送信ポート180及び中継テーブル121を有する。中継テーブル121は、アドレスに対応する送信ポート180の情報が登録される。送信ポート180の情報には、送信ポート180へパケットを出力するキュー700のキューIDや送信ポート180の識別情報などが含まれる。   The switch 100 includes a reception port 110, a relay processing unit 102, a queue switching processing unit 105, a congestion control unit 109, a transmission queue set 170, a transmission port 180, and a relay table 121. In the relay table 121, information of the transmission port 180 corresponding to the address is registered. The information of the transmission port 180 includes the queue ID of the queue 700 that outputs a packet to the transmission port 180, the identification information of the transmission port 180, and the like.

受信ポート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 discrimination processing unit 104.

フロー判別処理部104は、パケットの入力を受信ポート110から受ける。そして、フロー判別処理部104は、パケットヘッダのプライオリティフィールドに設定された値を取得する。プライオリティフィールドに設定された値が3の場合、フロー判別処理部104は、パケットの出力キューをロングキューとする。また、プライオリティフィールドに設定された値が4の場合、フロー判別処理部104は、パケットの出力キューをショートキューとする。そして、キュー切替処理部105は、出力キューの指定情報とともにパケットを中継処理部102へ出力する。   The flow discrimination processing unit 104 receives a packet input from the reception port 110. Then, the flow discrimination processing unit 104 acquires the value set in the priority field of the packet header. When the value set in the priority field is 3, the flow discrimination processing unit 104 sets the packet output queue as a long queue. When the value set in the priority field is 4, the flow determination processing unit 104 sets the packet output queue as a short queue. Then, the queue switching processing unit 105 outputs the packet together with the output queue designation information to the relay processing unit 102.

中継処理部102は、出力キューの指定情報とともにパケットの入力をフロー判別処理部104から受ける。そして、中継処理部102は、パケットヘッダから宛先のアドレスを取得する。次に、中継処理部102は、取得したアドレスに対応する送信ポート180の情報を中継テーブル121から取得する。その後、中継処理部102は、パケットを送信する送信ポート180の情報及び出力キューの指定情報とともにパケットをキュー切替処理部105へ出力する。   The relay processing unit 102 receives a packet input from the flow discrimination processing unit 104 together with output queue designation information. Then, the relay processing unit 102 acquires a destination address from the packet header. Next, the relay processing unit 102 acquires information on the transmission port 180 corresponding to the acquired address from the relay table 121. Thereafter, the relay processing unit 102 outputs the packet to the queue switching processing unit 105 together with the information of the transmission port 180 that transmits the packet and the designation information of the output queue.

キュー切替処理部105は、送信ポート180の情報及び出力キューの指定情報とともにパケットの入力を中継処理部102から受ける。そして、キュー切替処理部105は、送信ポート180の情報で指定された送信キューセット170におけるキュー720のうち、出力キューの指定情報に応じたキュー720へパケットを格納する。   The queue switching processing unit 105 receives the packet input from the relay processing unit 102 together with the transmission port 180 information and the output queue designation information. Then, the queue switching processing unit 105 stores the packet in the queue 720 corresponding to the output queue designation information among the queues 720 in the transmission queue set 170 designated by the information of the transmission port 180.

スケジューラ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 multiplexer 703 acquires a packet from the queue 720 selected by the scheduler 704 and outputs the packet to the transmission port 180.

次に、図25〜27を参照して、本実施例に係るサーバ200によるフロー管理処理の流れについて説明する。図25は、実施例7に係るサーバによるフロー管理の全体的な処理のフローチャートである。図26は、実施例7に係るサーバによる送信処理のフローチャートである。図27は、実施例7に係るサーバによる受信処理のフローチャートである。   Next, a flow of flow management processing by the server 200 according to the present embodiment will be described with reference to FIGS. FIG. 25 is a flowchart of overall processing of flow management by a server according to the seventh embodiment. FIG. 26 is a flowchart of the transmission process performed by the server according to the seventh embodiment. FIG. 27 is a flowchart of the reception process performed by the server according to the seventh embodiment.

図25を参照して、本実施例に係るサーバ200によるフロー管理処理の全体的な流れを説明する。   With reference to FIG. 25, the overall flow of the flow management processing by the server 200 according to the present embodiment will be described.

通信部221は、通信相手との間の接続を確立する(ステップS901)。   The communication unit 221 establishes a connection with the communication partner (step S901).

フロー判別部222は、フローの送信量の情報を初期化して0にする(ステップS902)。   The flow discriminating unit 222 initializes the information of the flow transmission amount to 0 (step S902).

次に、フロー判別部222は、通信相手にパケットを送信する送信処理を実行する(ステップS903)。   Next, the flow determination unit 222 executes transmission processing for transmitting a packet to the communication partner (step S903).

その後、通信部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 server 200 will be described with reference to FIG. Each process included in the flow described in FIG. 26 corresponds to an example of a process executed in step S903 in FIG.

フロー判別部222は、通信部221からパケットの入力を受けたか否かにより、送信パケットがあるか否かを判定する(ステップS911)。送信するパケットがない場合(ステップS911:否定)、フロー判別部222は、パケットの送信処理を終了する。   The flow determination unit 222 determines whether there is a transmission packet based on whether a packet is input from the communication unit 221 (step S911). If there is no packet to be transmitted (No at Step S911), the flow determination unit 222 ends the packet transmission process.

これに対して、送信するパケットがある場合(ステップS911:肯定)、フロー判別部222は、送信量が判別閾値以上か否かを判定する(ステップS912)。送信量が判別閾値未満の場合(ステップS912:否定)、フロー判別部222は、フロー種別を表す情報としてショートの情報をパケットに付加する(ステップS913)。   On the other hand, when there is a packet to be transmitted (step S911: affirmative), the flow determination unit 222 determines whether or not the transmission amount is equal to or greater than a determination threshold (step S912). When the transmission amount is less than the determination threshold (No at Step S912), the flow determination unit 222 adds short information to the packet as information indicating the flow type (Step S913).

これに対して、送信量が判別閾値以上の場合(ステップ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 flow determination unit 222 determines whether the queue used at the previous transmission of the packet belonging to the flow is a short queue (step S912). S914). When the long queue is used at the previous transmission (step S914: No), the flow determination unit 222 proceeds to step S916.

これに対して、前回の送信時にショートキューを使用した場合(ステップ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 flow determination unit 222 determines whether an ACK for the previous packet transmission is received (step S915). When the ACK for the previous packet transmission has not been received (No at Step S915), the flow determination unit 222 ends the packet transmission process.

これに対して、前回のパケット送信に対する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 flow determination unit 222 transmits a packet in which a value is set in the priority field to the switch 100 (step S917).

次に、フロー判別部222は、フローの送信量にパケット長を加算する(ステップS918)。その後、フロー判別部222は、ステップS911に戻る。   Next, the flow determination unit 222 adds the packet length to the flow transmission amount (step S918). Thereafter, the flow determination unit 222 returns to step S911.

次に、図27を参照して、サーバ200におけるパケットの受信処理の流れについて説明する。図27に記載したフローにおける各処理は、図25におけるステップS904で実行される処理の一例にあたる。   Next, referring to FIG. 27, the flow of packet reception processing in the server 200 will be described. Each process in the flow described in FIG. 27 corresponds to an example of a process executed in step S904 in FIG.

通信部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 flow determination unit 222 that ACK has been received.

次に、通信部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 graph 91 represents a change in throughput when a microburst occurs when the switch 100 of the fifth embodiment is not used. A graph 95 represents a change in throughput when a microburst occurs when the switch 100 according to the fifth embodiment is used. In both graphs 91 and 95, the vertical axis represents throughput and the horizontal axis represents time.

グラフ91における線分92がロングキューにおけるスループットを表す。また、線分93がショートキューにおけるスループットを表す。そして、線分94がロングキューとショートキューとを合わせたスループットを表す。   A line segment 92 in the graph 91 represents the throughput in the long queue. A line segment 93 represents the throughput in the short queue. A line segment 94 represents the combined throughput of the long queue and the short queue.

線分93に示すように、マイクロバーストの発生によりショートキューでは時々スループットが急上昇する。そして、線分92に示すように、ショートキューにおけるスループットの急上昇に影響を受けて、ロングキューのスループットは、マイクロバースト発生時に降下する。これにより、全体のスループットも、線分94に示すようにマイクロバースト発生時に低下する。   As indicated by a line segment 93, the throughput sometimes rapidly increases in the short queue due to the occurrence of the microburst. Then, as indicated by a line segment 92, the throughput of the long queue drops when a microburst occurs, affected by the rapid increase in throughput of the short queue. As a result, the overall throughput also decreases when a microburst occurs, as indicated by line segment 94.

一方、グラフ95における線分96がロングキューにおけるスループットを表す。また、線分97がショートキューにおけるスループットを表す。そして、線分98がロングキューとショートキューとを合わせたスループットを表す。   On the other hand, a line segment 96 in the graph 95 represents the throughput in the long queue. A line segment 97 represents the throughput in the short queue. A line segment 98 represents the combined throughput of the long queue and the short queue.

線分97に示すように、グラフ91と同様に、マイクロバーストの発生によりショートキューでは時々スループットが急上昇する。しかしながら、ショートキューにおけるスループットの急上昇が発生しても、線分96に示すように、ロングキューのスループットは影響をほぼ受けずに速度が維持される。この場合、全体のスループットも、線分98に示すようにマイクロバーストが発生しても速度を維持することができる。ここでは、実施例5のスイッチ100を例にしたが、実施例6及び7のスイッチ100でもほぼ同様の効果を得ることが可能である。したがって、実施例5〜7で説明したスイッチ100を用いることで、DCQCNによる輻輳制御を行っても、マイクロバースト発生時における大きな性能低下を回避することができることが分かる。   As indicated by the line segment 97, as in the graph 91, the throughput sometimes increases rapidly in the short queue due to the occurrence of the microburst. However, even if a rapid increase in throughput occurs in the short queue, as shown by the line 96, the throughput of the long queue is almost unaffected and the speed is maintained. In this case, the overall throughput can be maintained even if a microburst occurs as indicated by the line segment 98. Here, the switch 100 of the fifth embodiment is taken as an example, but the switch 100 of the sixth and seventh embodiments can obtain substantially the same effect. Therefore, it can be seen that by using the switch 100 described in the fifth to seventh embodiments, a large performance degradation when a microburst occurs can be avoided even if congestion control is performed by DCQCN.

実施例5〜7で説明したスイッチ100の機能も、例えば、LSIで実現可能である。例えば、LSIを用いた記憶装置には、図18及び23で例示された中継処理部102、フロー識別部103、フロー判別処理部104及びキュー切替処理部105の機能を実現するプログラムを含む各種プログラムが格納される。そして、LSIを用いた制御回路が、記憶装置から各種プログラムを読み出して実行することで、中継処理部102、フロー識別部103、フロー判別処理部104及びキュー切替処理部105の機能を実現する。   The function of the switch 100 described in the fifth to seventh embodiments can also be realized by an LSI, for example. For example, the storage device using the LSI includes various programs including programs for realizing the functions of the relay processing unit 102, the flow identification unit 103, the flow discrimination processing unit 104, and the queue switching processing unit 105 illustrated in FIGS. Is stored. The control circuit using the LSI reads out and executes various programs from the storage device, thereby realizing the functions of the relay processing unit 102, the flow identification unit 103, the flow discrimination processing unit 104, and the queue switching processing unit 105.

また、実施例7で説明したサーバ200は、CPU(Central Processing Unit)及びメモリを有する。メモリには、例えば、図23で例示した、通信部221及びフロー判別部222の機能を実現するプログラムを含む各種プログラムが格納される。また、メモリは、受信バッファ224の機能を実現する。また、メモリは、フロー判別テーブル223を格納する。CPUは、メモリから各種プログラムを読み出して展開して実行することで、通信部221及びフロー判別部222の機能を実現する。   The server 200 described in the seventh embodiment includes a CPU (Central Processing Unit) and a memory. In the memory, for example, various programs including programs that realize the functions of the communication unit 221 and the flow determination unit 222 illustrated in FIG. 23 are stored. Further, the memory implements the function of the reception buffer 224. The memory also stores a flow discrimination table 223. The CPU implements the functions of the communication unit 221 and the flow determination unit 222 by reading out various programs from the memory, developing them, and executing them.

以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。   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 appendix 1.

(付記3)前記送信制御部は、前記フローの前記パケットが前記キューのいずれにも蓄積されていない場合に、前記フローの前記パケットを決定した前記キューに送信することを特徴とする付記2に記載の情報処理装置。 (Supplementary note 3) In the supplementary note 2, the transmission control unit transmits the packet of the flow to the determined queue when the packet of the flow is not accumulated in any of the queues. The information processing apparatus described.

(付記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 appendix 2 or 3, wherein when the feature amount of the flow is less than the threshold, the second queue is determined as a queue for transmitting the packet of the flow.

(付記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 appendices 2 to 4, wherein the second queue is determined as a queue for transmitting the packet of the flow when the amount is less than a threshold value.

(付記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 appendices 1 to 5, 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.

(付記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 appendices 1 to 5, further comprising: a congestion control unit that suppresses congestion of the packet.

(付記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 SYMBOLS 1 Information processing system 100 Switch 102 Relay processing part 103 Flow identification part 104 Flow discrimination | determination part 105 Queue switching process part 106 Data holding part 109 Congestion control part 110-112 Reception port 121 Relay table 161 Flow identification table 162 Transfer amount table 163 Queue Information management table 170 to 172 Transmission queue set 180 to 182 Transmission port 191 Packet buffer 192 Control unit 200 to 206 Server 221 Communication unit 222 Flow determination unit 223 Flow determination table 224 Reception buffer 701 Selector 703 Multiplexer 704 Scheduler 720 to 723 Queue

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.
前記送信制御部は、前記フローの前記パケットが前記キューのいずれにも蓄積されていない場合に、前記フローの前記パケットを決定した前記キューに送信することを特徴とする請求項2に記載の情報処理装置。   The information according to claim 2, wherein the transmission control unit transmits the packet of the flow to the determined queue when the packet of the flow is not accumulated in any of the queues. Processing equipment. 前記送信制御部は、前記特徴量に関する閾値を予め有し、前記フローの前記特徴量が前記閾値以上の場合に第1キューを前記フローの前記パケットを送信するキューと決定し、前記フローの前記特徴量が前記閾値未満の場合に第2キューを前記フローのパケットを送信するキューに決定することを特徴とする請求項2又は3に記載の情報処理装置。   The transmission control unit has a threshold related to the feature amount in advance, and determines the first queue as a queue for transmitting the packet of the flow when the feature amount of the flow is equal to or greater than the threshold, and the flow of the flow The information processing apparatus according to claim 2 or 3, wherein when the feature amount is less than the threshold value, the second queue is determined as a queue for transmitting the packet of the flow. 前記特徴量取得部は、前記特徴量として前記パケットの転送量を取得し、
前記送信制御部は、転送量閾値を予め有し、前記転送量が前記転送量閾値以上の場合に第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通信装置との間でパケット処理部を介して通信を行う情報処理システムであって、
前記第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.
JP2018130948A 2018-03-07 2018-07-10 Information processing device, information processing system and information processing program Active JP7251060B2 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024257207A1 (en) * 2023-06-13 2024-12-19 日本電信電話株式会社 Relay device

Citations (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
横田健治 ほか: "フローサイズを考慮した優先制御方式", 電子情報通信学会技術研究報告, vol. 第108巻, 第286号, JPN6022004016, 6 November 2008 (2008-11-06), pages 19 - 24, ISSN: 0004861185 *

Cited By (1)

* Cited by examiner, † Cited by third party
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