Packet transfer apparatus and storage system
11 claims: 3 independent, 8 dependent
- 1ネットワークを介して、第一及び第二の装置に接続されたパケット転送装置において、 パケットを前記第一の装置から受信する入力部と、 前記パケットを保持するパケット記憶部と、 前記パケットをパケット記憶部に格納するパケット処理部と、 前記パケットがデータの送信に関するものであるか否かを判定するパケット判定部と、 前記パケットに関して送信されるデータの量を解析するパケット解析部と、 前記解析されたデータの量に基づいて、前記パケットの送信を制御する転送制御部と、 前記受信パケットを前記第二の装置に送信する出力部と、 を備え、 前記パケット解析部は、 前記第一の装置から前記第二の装置へ送信され且つデータの送信に関するパケットについて、該パケットに関して送信されるデータの量を解析し、 その他の前記パケットについては、該パケットに関して送信されるデータの量を0とすることを特徴とする パケット転送装置。
- 2前記パケット記憶部は、 前記パケット判定部においてデータの送信に関するものであると判定されたパケットを保持する帯域制御パケット記憶部と、 前記パケット判定部においてデータの送信に関するものでないと判定された受信パケットを保持する非帯域制御パケット部と、 を備えることを特徴とする請求項1に記載のパケット転送装置。
- 3前記パケット判定部は、前記第一の装置が前記第二の装置にデータの送信を要求する読み出しパケット又は前記第2の装置が前記第1の装置にデータの送信を許可する転送許可パケットを、前記データの送信に関するパケットであると判定することを特徴とする請求項1に記載のパケット転送装置。
- 4前記パケット処理部は、 受信パケットがデータの送信に関するものであるか否かを、帯域制御フラグを参照して判定し、 該受信パケットを、前記帯域制御パケット記憶部または前記非帯域制御パケット記憶部のいずれで保持するかを決定することを特徴とする請求項2に記載のパケット転送装置。
- 5前記転送制御部は、 前記パケット解析部によって解析されたデータの量に基づいて、データの送信に関するパケットの送信時刻を計算し、 前記計算された送信時刻になると、該パケットを前記パケット記憶部から読み出して、前記出力部に送ることを特徴とする請求項1に記載のパケット転送装置。
- 6前記転送制御部は、 前記パケット解析部によって解析されたデータの量に基づいて、データの送信に関するパケットの送信時刻を計算し、 前記計算された送信時刻になっていないと、データの送信に関しないパケットを前記パケット記憶部から読み出すことを特徴とする請求項1に記載のパケット転送装置。
- 7前記転送制御部は、 該データの送信に関するパケットより後に、前記第一の装置からデータの送信に関しないパケットを受信した場合は、 前記計算された送信時刻になっていないと、該データの送信に関しないパケットを前記パケット記憶部から読み出さないことを特徴とする請求項6に記載のパケット転送装置。
- 8前記第二の装置へ送信する単位時間当たりのデータの量を制御するトラヒックシェーピング部を備えることを特徴とする請求項1に記載のパケット転送装置。
- 9ネットワークを介して、ストレージ装置に接続された第一のパケット転送装置と、ユーザ端末に接続された第二のパケット転送装置とを含み、前記第一のパケット転送装置と前記第二のパケット転送装置とが接続されて構成されるストレージシステムにおいて、 前記第一のパケット転送装置は、 パケットを前記ユーザ端末から受信する入力部と、 前記パケットを保持するパケット記憶部と、 前記パケットをパケット記憶部に格納するパケット処理部と、 前記パケットが前記ユーザ端末からの読み出し要求であるか否かを判定するパケット判定部と、 前記読み出し要求パケットが送信を要求するデータの量を解析するパケット解析部と、 前記解析されたデータの量に基づいて、前記読み出し要求パケットの送信を制御する転 送制御部と、 前記受信パケットを送信する出力部と、を備え、 前記パケット解析部は、 前記第一の装置から前記第二の装置へ送信され且つデータの送信に関するパケットについて、該パケットに関して送信されるデータの量を解析し、 その他の前記パケットについては、該パケットに関して送信されるデータの量を0とすることを特徴とするストレージシステム。
- 10ネットワークを介して、ストレージ装置に接続された第一のパケット転送装置と、ユーザ端末に接続された第二のパケット転送装置とを含み、前記第一のパケット転送装置と前記第二のパケット転送装置とが接続されて構成されるストレージシステムにおいて、 前記第一のパケット転送装置は、 パケットを前記ストレージ装置から受信する入力部と、 前記パケットを保持するパケット記憶部と、 前記パケットをパケット記憶部に格納するパケット処理部と、 前記パケットが前記ストレージ装置からの転送許可であるか否かを判定するパケット判定部と、 前記転送許可パケットが送信を要求するデータの量を解析するパケット解析部と、 前記解析されたデータの量に基づいて、前記転送許可パケットの送信を制御する転送制御部と、 前記受信パケットを送信する出力部と、を備え、 前記パケット解析部は、 前記第一の装置から前記第二の装置へ送信され且つデータの送信に関するパケットについて、該パケットに関して送信されるデータの量を解析し、 その他の前記パケットについては、該パケットに関して送信されるデータの量を0とすることを特徴とするストレージシステム。
- 11前記第二のパケット転送装置は、前記ストレージ装置へ送信される単位時間当たりのデータの量を制御するトラヒックシェーピング部を備えることを特徴とする請求項10に記載のストレージシステム。
Independent claims11
264 paragraphs, as filed
The present invention relates to a packet transfer device for transferring packets, and more particularly to a technique for controlling a band for transferring packets.
In recent years, a storage-centric network system that stores data in a user terminal in a storage in a data center at a remote location has been attracting attention. The storage-centric network system can avoid the risk of business interruption because data is not lost even if the user terminal is destroyed by a natural disaster, fire, corporate terrorism, or the like.
Storage-centric network systems usually communicate via iSCSI (Internet Small Computer Systems Interface). This allows the user terminal to access the storage via the IP network. Access includes reading (RD) and writing (WR) of data.
ISCSI is a protocol for sending and receiving SCSI (Small Computer System Interface) commands via an IP network. SCSI is a standard for connecting terminals such as personal computers and peripheral devices such as storage.
Here, an outline of the processing of the storage-centric network system will be described.
FIG. 24 is an explanatory diagram of a read process of a conventional storage-centric network system.
In this figure, the user terminal 100 is guaranteed to use the contracted bandwidth concluded with the wide area network operator. Then, when the edge switches 103-1 and 103-2 detect the traffic amount exceeding the contracted band, the edge switches 103-1 and 103-2 discard the packets exceeding the contracted band.
Next, the read process of the storage-centric network system will be described.
First, the user terminal 100 requesting the reading of data sends the RD request 200 of the iSCSI command to the storage 105. The storage 105 that has received the RD request 200 stores the corresponding RD data in the RD data packet 201 and transmits it to the user terminal 100.
However, the traffic amount of the transmitted RD data packet 201 may exceed the contracted bandwidth. In this case, the RD data packet 201 that exceeds the contracted bandwidth is discarded in the middle route by the bandwidth control 203 or the like of the edge switch 103-2.
FIG. 25 is an explanatory diagram of a write process of a conventional storage-centric network system.
The user terminal 100 requesting the writing of data sends the data WR request 300 of the iSCSI command to the storage 105. Upon receiving the WR request 300, the storage 105 transmits an iSCSI packet R2T (Ready to Transfer) 301 to the user terminal 100 when the data is ready to be written. The user terminal 100 that has received the R2T301 stores the corresponding WR data in the WR data packet 302 and transmits it to the storage 105.
However, the traffic amount of the transmitted WR data packet 302 may exceed the contracted bandwidth. In this case, the WR data packet 302 that exceeds the contracted bandwidth is discarded in the middle route by the bandwidth control 304 of the edge switch 103-1 or the like.
In this way, in a storage-centric network system, packets are discarded when the amount of traffic is high. This packet discard reduces the utilization efficiency of the storage-centric network system, and further reduces the throughput. Therefore, the storage-centric network system needs to solve the problem of packet discard.
As a conventional technique for preventing packet discard, a technique for providing a traffic shaping unit in the packet transfer device 104 is known (see, for example, Patent Document 1). The traffic shaping unit controls the packet transfer interval so that the traffic amount of the wide area network does not exceed the contracted bandwidth.
Specifically, first, the traffic shaping unit stores the packet transmitted from the user terminal in its own packet buffer. Next, the traffic shaping unit measures the amount of data of the packet read from the packet buffer. Then, the traffic shaping unit controls the amount of data exceeding the contracted band so as not to be read from the packet buffer based on the measured amount of data.<patcit num="1"><text>Japanese Unexamined Patent Publication No. 2000-349763</text></patcit><nplcit num="1"><text>J.Satran, 4 others, RFC3720-Internet Small Computer Systems Interface (iSCSI), [online], Internet <URL: http://www.faqs.org/rfcs/rfc3720.html></text></nplcit>
<p> In the prior art, all packets that exceed the contracted bandwidth are held in the packet buffer. Therefore, the packet buffer of the traffic shaping unit needs to have the buffer amount calculated by the following equation (1) so that the packets do not overflow.</p><p> Buffer amount = number of user terminals x maximum window size ... (1)</p><p> The maximum wind size is 64 kilobytes by default, but it can be expanded up to 1 gigabyte by using the window scale option. The maximum window size should match the value of the required RD length included in the RD request in order to improve throughput.</p><p> For example, if the maximum window size is 256 kilobytes and the number of user terminals is 100, the packet buffer needs 25.6 megabytes. As the number of user terminals further increases, a large-capacity packet buffer is required.</p><p> As described above, when the packet transfer device is provided with a large-capacity buffer, the cost increases and the expandability becomes poor.</p><p> Therefore, an object of the present invention is to provide a packet transfer device that does not require a large-capacity buffer.</p>
<p> In the packet transfer device connected to the first and second devices via a network, the present invention includes an input unit that receives a packet from the first device, a packet storage unit that holds the packet, and the packet transfer device. A packet processing unit that stores packets in a packet storage unit, a packet determination unit that determines whether or not the packet is related to data transmission, and a packet analysis unit that analyzes the amount of data transmitted with respect to the packet. , A transfer control unit that controls the transmission of the packet based on the amount of the analyzed data, and an output unit that transmits the received packet to the second device.<u style="single">The packet analysis unit analyzes the amount of data transmitted with respect to the packet transmitted from the first device to the second device and related to the transmission of data, and for the other packets. , The amount of data transmitted for the packet is 0</u>It is characterized by that.</p>
<p> According to the present invention, the packet transfer device can appropriately control the bandwidth without providing a large-capacity buffer.</p>
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(First Embodiment) FIG. 1 is a block diagram of a storage-centric network system according to the first embodiment of the present invention.
The storage-centric network system of the first embodiment will be described as an example when the IPv4 protocol is used as the third layer protocol of the OSI (Open Systems Interconnection) reference model, but other third layers such as the IPv6 protocol will be described. You may use the protocol.
Further, the storage-centric network system of the first embodiment will be described by taking the case of using the iSCSI protocol as an example, but a protocol other than iSCSI may be used. However, the protocol other than iSCSI to be used is a protocol in which the size of the requested data can be obtained by sending a command for requesting data from the user terminal.
The storage-centric network system consists of a user site 108, edge switches 103-1 and 103-2, a data center 109 and a management console 107.
At the user site 108, a LAN (Local Area Network) is constructed by the LAN switch 101 and n user terminals 100-i (i = 1 to n). The LAN switch 101 is connected to the edge switch 103-1 of the wide area network 102.
The user terminal 100 reads and writes data to and from the storage 105 in the data center 109. The LAN switch 101 forwards the received packet. Specifically, when the received packet is destined for the inside of the user site 108, the LAN switch 101 transfers the packet to the destination user terminal 100. On the other hand, if the received packet is destined for the outside of the user site 108, the packet is forwarded to the edge switch 103-1.
In the data center 109, an IP-SAN (Internet Protocol Storage Area Network) is constructed by the packet transfer device 104 and n storages 105-i (i = 1 to n). The packet transfer device 104 is connected to the edge switch 103-2 of the wide area network 102.
The storage 105 is a RAID device composed of a disk control device and a disk drive, JBOD (Just Bunch Of Disks), or the like, and stores data of the user terminal 100.
Although the details will be described later, the packet transfer device 104 transfers the received packet while controlling the bandwidth of the wide area network 102.
The management console 107 is a computer connected to the packet transfer device 104 and manages the packet transfer device 104. The packet transfer device 104 and the management console 107 may be connected via a network.
The edge switch 103-1 on the user site 108 side and the edge switch 103-2 on the data center 109 side are connected by a wide area network 102 to which the bandwidth guarantee service is applied. The user site 108 is guaranteed to use the contracted bandwidth concluded with the wide area network operator in the wide area network 102.
The edge switches 103-1 and 103-2 are provided with a UPC (User Parameter Control). The UPC monitors whether the traffic volume of the wide area network is within the contracted bandwidth. As a result, when the UPC detects a traffic amount exceeding the contracted bandwidth, the UPC discards the packet exceeding the contracted bandwidth.
Next, a process in which the user terminal 100 reads the data in the storage 105 will be described.
First, the user terminal 100 requesting the reading of data sends the RD request of the iSCSI command to the storage 105. The RD request includes the requested RD length. The request RD length is the size of the data requested by the user terminal 100 to read from the storage 105.
The storage 105 that has received the RD request reads the corresponding RD data from the storage. Then, the storage 105 stores the read RD data in the RD data packet and transmits it to the user terminal 100. However, when the size of the RD data exceeds the network route MTU (Maximum Transfer Unit), the storage 105 stores the RD data in a plurality of RD data packets and transmits the RD data.
Here, packet discard during data read processing in a conventional storage-centric network system will be described.
The size of the RD request data is about 106 bytes. On the other hand, the data size of the RD data varies depending on the data requested by the user terminal 100, but is usually from several tens of kilobytes to several hundreds of kilobytes or more.
Therefore, in the wide area network 102, even if the traffic amount of the RD request is within the contract band, the traffic amount of the RD data packet may exceed the contract band. The RD data packet that exceeds the contracted bandwidth is discarded in the middle route by the bandwidth control of the edge switch 103-2.
Next, a process in which the user terminal 100 writes data to the storage 105 will be described.
First, the user terminal 100 requesting the writing of data sends the data WR request of the iSCSI command to the storage 105.
Upon receiving the WR request, the storage 105 prepares to write data. When the preparation is completed, the storage 105 transmits an iSCSI packet R2T (Ready to Transfer) to the user terminal 100. R2T contains the required WR length. The required WR length is the size of data that Storage 105 can accept at one time.
The user terminal 100 that has received the R2T stores the WR data satisfying the required WR length of the R2T in the WR data packet and transmits it to the storage 105. However, when the WR data exceeds the network path MTU, the user terminal 100 stores the WR data in a plurality of WR data packets and transmits the WR data.
Here, packet discard during data write processing in a conventional storage-centric network system will be described.
As in the case of data reading, the data size of the WR request and R2T is small, and the data size of the WR data packet 302 is large.
Therefore, in the wide area network 102, even if the WR request and the traffic amount of R2T are within the contract band, the traffic amount of the WR data packet may exceed the contract band. The WR data packet that exceeds the contracted bandwidth is discarded in the middle route by the bandwidth control of the edge switch 103-1.
In this way, in the conventional storage-centric network system, packets have been discarded. Discarding this packet is a problem for the following reasons.
iSCSI uses TCP as the lower layer protocol. TCP is a protocol that controls data transfer between a transmitting terminal and a receiving terminal. Packets discarded on the way are retransmitted by TCP. However, the retransmission packet generated by the packet discard worsens the congestion of the wide area network 102, and thus reduces the utilization efficiency of the storage-centric network system.
In addition, TCP uses cwnd (Congestion Window) to control the transfer of packets. cwnd is the maximum size of data that can be transmitted when a packet is transferred from a transmitting terminal to a receiving terminal. cwnd is one segment at the start of communication. Then, if the communication is performed without discarding the packet, the cwnd increases to the furd window size. However, cwnd decreases when packets are dropped along the way.
Here, the throughput of data transfer using TCP is cwnd / RTT (Round Trip Time). Therefore, packet discard reduces cwnd and thus reduces throughput.
In this way, packet discard reduces the utilization efficiency of the storage-centric network system, and further reduces the throughput.
Next, a packet used for communication of the storage-centric network system of the present embodiment will be described.
FIG. 2 is a configuration diagram of an iSCSI packet according to the first embodiment of the present invention.
The iSCSI packet 600 includes an IP header unit 601, a TCP header unit 602, an iSCSI header unit 607, and a user data unit 608.
The IP header unit 601 includes a source IP address 603 and a destination IP address 604. The source IP address 603 is the address of the terminal that transmits the packet. The destination IP address 604 is the address of the terminal that receives the packet.
The TCP header section 602 includes a source port number 605 and a destination port number 606. Source port number 605 indicates the protocol or application of the terminal that sends the packet. Destination port number 606 indicates the protocol or application of the terminal that receives the packet.
The iSCSI header unit 607 is configured as shown in FIG. 3 or 4, and indicates the type of command of the packet and the like. The user data unit 608 stores the main data of the packet.
FIG. 3 is a configuration diagram of an iSCSI header unit 607 of an RD request or a WR request transmitted by the user terminal 100 according to the first embodiment of the present invention.
The RD request is a packet in which the user terminal 100 requests the storage 105 to read data. The WR request is a packet in which the user terminal 100 requests the storage 105 to write data.
The iSCSI header portion 607 of the RD request or WR request includes an opcode 701, a Read (R) bit 702, a Write (W) bit 703, and a request data length 704.
The opcode 701 is the type of the iSCSI command of the packet, and 0x1 indicating the SCSI command is stored.
1 is stored in the R bit 702 when the packet is an RD request. 1 is stored in the W bit 703 when the packet is a WR request. The request data length 704 stores the request RD length when the packet is an RD request, and stores the WR request data length when the packet is a WR request.
The request RD length is the size of the data requested by the user terminal 100 to read from the storage 105. The WR request data length is the size of the data that the user terminal 100 requests to write to the storage 105.
FIG. 4 is a configuration diagram of the iSCSI header portion 607 of the R2T transmitted by the storage 105 of the first embodiment of the present invention.
The R2T is a packet for notifying that the storage 105 is ready to write data.
The iSCSI header section 607 of the R2T includes an opcode 701 and a required WR length 801. The opcode 701 is a type of iSCSI command and stores 0x31 indicating R2T. The request WR length 801 is the size of data that the storage 105 can accept from the user terminal 100 at one time.
FIG. 5 is a configuration diagram of packets inside the packet transfer device 104 according to the first embodiment of the present invention.
An internal header portion 1000 is added to the iSCSI packet 600 inside the packet transfer device 104.
The internal header section 1000 includes an input line number 1001, an output line number 1002, a band control flag 1003, a user identification number 1004, a request data length 1005, an RD flag 1006, and an R2T flag 1007.
The input line number 1001 is an identifier of the line to which the packet is input. The output line number 1002 is an identifier of the line on which the packet is output. The bandwidth control flag 1003 indicates whether or not the packet is bandwidth-controlled.
The user identification number 1004 is an identifier of the user site 108 to which the user terminal 100 that transmitted the packet belongs. The request data length 1005 stores the request RD length when the packet is an RD request, and stores the request WR length when the packet is R2T. The RD flag 1006 indicates whether or not the source IP address 603 of the packet is stored in the RD control table described later in FIG. The R2T flag 1007 indicates whether or not the destination IP address 604 of the packet is stored in the R2T table described later in FIG.
FIG. 6 is a block diagram of the packet transfer device 104 according to the first embodiment of the present invention.
The packet transfer device 104 includes an input line 411, a packet reception circuit 401, a band control unit 402, a route search circuit 403, a device control unit 405, a packet transmission circuit 404, and an output line 412.
N input lines 411 are provided and are lines for inputting packets to the packet receiving circuit 401 from the outside. N packet receiving circuits 401 are provided in the same number as the input lines, and perform packet reception processing. One packet receiving circuit 401 may be provided for each of the plurality of input lines 411.
The band control unit 402 transmits the packet to the route search circuit 403 while controlling the transmission interval. The detailed configuration of the band control unit 402 will be described with reference to FIG. Route search circuit 40<u style="single">3</u>Has an internal route search table (not shown) and searches for output lines that send packets. The route search table is composed of the destination IP address 604 and the output line 412 numbers corresponding to the destination IP address 604.
The device control unit 405 sets the contract band information of the wide area network 102, the netmask information of the user site 108, and the like to the band control unit 402 via the signal lines 413 and 415. Further, the device control unit 405 sets the packet route search information and the like in the route search circuit 403 via the signal line 414. These pieces of information are input to the device control unit 405 from the management console 107.
There are n output lines 412, which are lines that transmit packets from the packet transmission circuit to the outside. The same number of n packet transmission circuits 404 as the output line 412 are provided, and packets are transmitted and processed and sent to the output line 412. One packet transmission circuit 404 may be provided for each of the plurality of output lines 412.
Next, the processing of the packet transfer device 104 when the packet is received will be briefly described.
The packet transmitted from the outside is input to the packet receiving circuit 401 via the input line 411. When the packet receiving circuit 401 receives the packet, the packet receiving circuit 401 adds the internal header portion 1000 to the packet. Initial values are set for each element constituting the added internal header portion 1000.
Next, the packet receiving circuit 401 stores the line number of the input line 411 that received the packet in the input line number 1001 of the added internal header unit 1000. Then, the packet receiving circuit 401 sends the packet to the band control unit 402.
The bandwidth control unit 402 determines whether the received packet is a bandwidth control packet or a non-bandwidth control packet with reference to the bandwidth control flag 1003.
When the band control unit 402 determines that the packet is a band control packet, the band control unit 402 sends the packet to the route search circuit 403 while controlling the transmission interval so that packet loss does not occur.
On the other hand, when the band control unit 402 determines that the packet is a non-band control packet, the band control unit 402 immediately sends the packet to the route search circuit 403.
When the route search circuit 403 receives a packet, it refers to the destination IP address 604 of the packet and searches the route search table for the output line 412 that transmits the packet. The route search circuit 403 stores the searched output line 412 number in the output line number 1002 of the internal header unit 1000. Then, the route search circuit 403 sends the packet to the packet transmission circuit 404 connected to the searched output line 412.
When the packet transmission circuit 404 receives the packet, the packet transmission circuit 404 extracts the output line number 1002 of the internal header unit 1000. Next, the packet transmission circuit 404 deletes the internal header portion 1000 of the packet. Then, the packet transmission circuit 404 transmits the packet to the outside via the output line 412 of the extracted output line number 1002.
FIG. 7 is a block diagram of the band control unit 402 according to the first embodiment of the present invention.
The bandwidth control unit 402 includes a packet processing unit 500 and a packet scheduling unit 510.
The packet processing unit 500 includes a packet determination unit 501 and a packet buffer unit 502. The packet determination unit 501 determines the type of the packet received from the packet reception circuit 401 and sends it to the packet buffer unit 502. Further, the packet determination unit 501 includes the RD control table described in FIG. 8 and the R2T control table described in FIG. 9, and these are based on the information sent from the device control unit 405 via the signal line 415. Update the table. The packet buffer unit 502 holds the packet received from the packet determination unit 501 for each user identification number 1004.
The packet scheduling unit 510 includes a packet transmission queue determination unit 511, a binary tree sorting circuit 512, and a user sorting information memory 514. The packet transmission queue determination unit 511 determines the transmission order of the packets held by the packet buffer unit 502. The packet transmission queue determination unit 511 sets various information for determining the transmission order via the signal line 413.
The binary tree sort circuit 512 determines the user terminal 100 to transmit the packet earliest. The user sorting information memory 514 stores information used by the binary tree sort circuit 512.
FIG. 8 is a configuration diagram of an RD control table included in the packet determination unit 501 according to the first embodiment of the present invention.
The RD control table 900 includes a source IP address group 901, a netmask 902, a user identification number 903, and a control band 904.
The source IP address group 901 is the IP address of the user site 108 to which the user terminal 100 that sends the RD request belongs. The netmask 902 separates the IP address of the user site 108 to which the user terminal 100 belongs from the packet source IP address 603. The user identification number 903 is an identifier of the user site 108 to which the user terminal 100 belongs. The control band 904 is a contract band of the wide area network 102 concluded at the user site 108 to which the user terminal 100 belongs.
FIG. 9 is a configuration diagram of an R2T control table included in the packet determination unit 501 according to the first embodiment of the present invention.
The R2T table 1700 includes a destination IP address group 1701, a netmask 1702, a user identification number 1703 and a control band 1704.
The destination IP address group 1701 is the IP address of the user site 108 to which the user terminal 100 that receives R2T belongs. The netmask 1702 separates the IP address of the user site 108 to which the user terminal 100 belongs from the destination IP address 604 of the packet. The user identification number 1703 is an identifier of the user site 108 to which the user terminal 100 belongs. The control band 1704 is a contract band of the wide area network 102 concluded at the user site 108 to which the user terminal 100 belongs.
FIG. 10 is a block diagram of the packet buffer unit 502 according to the first embodiment of the present invention.
The packet buffer unit 502 includes a buffer write control circuit 2001, a non-band control queue buffer 2002, a band control queue buffer 2003, a buffer read control circuit 2004, and a packet buffer address memory 2005.
The buffer write control circuit 2001 stores the packet received from the packet determination unit 501 in the non-bandwidth control queue buffer 2002 or the bandwidth control queue buffer 2003.
The non-bandwidth control queue buffer 2002 includes one queue corresponding to the user identification number 0 and temporarily holds the non-bandwidth control packet. The bandwidth control queue buffer 2003 is composed of virtual queue groups classified by user identification number, and temporarily holds bandwidth control packets. The virtual queue group is composed of a plurality of virtual queues used for each user terminal 100. The virtual queue group may be composed of virtual queues shared by a plurality of user terminals 100 belonging to the same user site 108, or may be composed of one virtual queue.
The buffer read control circuit 2004 reads a packet from the non-bandwidth control queue buffer 2002 or the bandwidth control queue buffer 2003. The packet buffer address memory 2005 stores the packet buffer addresses of the non-bandwidth control queue buffer 2002 and the bandwidth control queue buffer 2003 that hold packets.
FIG. 11 is a block diagram of the packet transmission queue determination unit 511 according to the first embodiment of the present invention.
The packet transmission queue determination unit 511 is composed of a request distribution unit 2101, a transmission request queue 2102, a transmission queue selection unit 2103, and a transmission time calculation unit 2104.
The transmission request queue 2102 is provided in a number corresponding to the total of the user identification number 903 and the user identification number 1703, and the transmission request 524 is stored for each user identification number 903 and 1703. The transmission request 524 requests permission to transmit the packet held by the packet buffer unit 502.
Further, each transmission request queue 2102 includes a bandwidth control queue and a non-bandwidth control queue. The bandwidth control queue stores the transmission request 524 in which "1" is stored in the bandwidth control flag 1003. The non-bandwidth control queue stores the send request 524 in which "0" is stored in the bandwidth control flag 1003.
The request distribution unit 2101 stores the transmission request 524 received from the packet buffer unit 502 in the transmission request queue 2102.
Specifically, when the request distribution unit 2101 receives the transmission request 524, the request distribution unit 2101 determines the value of the bandwidth control flag 1003 of the transmission request 524. When "1" is stored in the bandwidth control flag 1003, the request distribution unit 2101 stores the transmission request 524 in the bandwidth control queue of the transmission request queue 2102 corresponding to the user identification number 1004. Next, the request distribution unit 2101 transmits the user identification number 1004 and the request data length 1005 to the binary tree sort circuit 512 and the transmission time calculation unit 2104.
On the other hand, the bandwidth control hula<u style="single">Gu</u>When "0" is stored in 1003, the request distribution unit 2101 stores the transmission request 524 in the non-bandwidth control queue of the transmission request queue 2102 corresponding to the user identification number 1004. In this case, the request distribution unit 2101 does not transmit the user identification number 1004 and the request data length 1005 to the binary tree sort circuit 512 and the transmission time calculation unit 2104.
The transmission time calculation unit 2104 calculates the transmission time of the transmission request 524 in which "1" is stored in the bandwidth control flag 1003, and instructs the transmission queue selection unit 2103 of the transmission time. The transmission queue selection unit 2103 selects the transmission request 524 for which transmission is permitted from the transmission request queue 2102.
FIG. 12 is an explanatory diagram of the user sorting information memory 514 according to the first embodiment of the present invention.
The user sorting information memory 514 stores user sorting information. The user sorting information includes the user identification number 1100, the scheduled transmission time 1101 and the VLD 1102.
The user identification number 1100 is an identifier of the user site 108 to which the user terminal 100 belongs. The scheduled transmission time 1101 is the time when the transmission queue selection unit 2103 is scheduled to read the transmission request 524 from the bandwidth control queue of the user identification number of the record. The VLD1102 stores "1" when the transmission request 524 is held in the bandwidth control queue.
The entries with addresses "1000" to "1111" are user information areas, and the entries with addresses "0000" to "0111" are sorting information areas. In the user information area, the sorting information of users 0 to 7 is stored in the order of the user identification number 1100 by the binary tree sorting circuit 512. In the sorting information area, information for selecting the user with the earliest scheduled transmission time (provisional transmission user) is stored by the binary tree sort circuit 512.
Next, the sorting process in which the binary tree sort circuit 512 stores the value in the user sorting information memory 514 will be described.
FIG. 13 is an explanatory diagram of the sorting process of the binary tree sorting circuit 512 according to the first embodiment of the present invention.
This figure shows a binary tree structure. There are entries at the apex (root), bifurcation point, and tip (leaf) of the binary tree in this figure. The entry located at the root of the bifurcated tree is called the root entry, and the entry located at the leaf is called the leaf entry. In addition, the entry on the root side of any entry is called the parent entry, and the two entries on the leaf side are called child entries. In the entry, the user identification number, the actual scheduled transmission time, and the VLD are stored in this order from the top.
First, the binary tree sort circuit 512 stores the user identification numbers, actual transmission scheduled times, and VLDs of all user terminals 100 in the leaf entries 1430 to 1437 of the user information area.
Next, the binary tree sort circuit 512 selects one of the child entries under the parent entry. Then, the binary tree sort circuit 512 stores the information of the selected entry in the parent entry.
Specifically, the binary tree sort circuit 512 stores the value selected from leaf entries 1430 to 1437 in entries 1420 to 1423. Next, the values selected from entries 1420 to 1423 are stored in entries 1410 and 1411. Then, the value selected from entries 1410 and 1411 is stored in entry 1400.
The binary tree sort circuit 512 selects one of the child entries according to the following rules (1) to (3).
(1) The binary tree sort circuit 512 selects a child entry whose VLD is "1" when the VLD of one child entry is "1" and the VLD of the other child entry is "0".
For example, the child entries under entry 1422 are entry 1434 and entry 1435. The binary tree sort circuit 512 selects entry 1435 with a VLD of "1" from entries 1434 and 1435.
(2) The binary tree sort circuit 512 selects the child entry with the earliest scheduled transmission time when the VLDs of the child entries are both 1. The binary tree sort circuit 512 selects the one with the younger user identification number when the VLDs of the child entries are both "1" and the scheduled transmission times are the same.
For example, the child entries under entry 1420 are entry 1430 and entry 1431. When the binary tree sort circuit 512 compares the entry 1430 and the entry 1431, the VLDs are both 1, so the entry 1431 with the earlier actual transmission time is selected.
(3) The binary tree sort circuit 512 selects the child entry with the earliest scheduled actual transmission time when the VLDs of the child entries are both 0. The binary tree sort circuit 512 selects the one with the younger user identification number when the VLDs of the child entries are both "0" and the scheduled transmission times are the same.
For example, the child entries under entry 1421 are entry 1432 and entry 1433. The binary tree sort circuit 512 selects entry 1432, which has an earlier actual transmission time, because both VLDs are "0" when comparing entry 1432 and entry 1433.
The binary tree sort circuit 512 determines the provisional transmission user by storing the entries in order from the leaf entry according to the above rules.
Next, the management of the address of the user sorting information memory 514 will be described. Here, the number of users will be described as M (= 2 to the mth power). The address is indicated by a binary number (m + 1 bit).
The address of the root of the dichotomy of the user sorting information memory 514 is "000 ... 001". Also, for the entry with the address "xyy ... yyz", the address of the parent entry is "0xy ... yyy", and the addresses of the child entries are "yyy ... yz0" and "yyy ... yz1". And. The address of the leaf entry is from "100 ... 000" to "111 ... 111".
As described above, by managing the address of the user sorting information memory 514, it is possible to easily configure an address generation circuit for accessing the user sorting information memory 514. This is because the entry with the address "xyy ... yy0" can be compared with the address "xyy ... yy1" and the comparison result can be written in the entry with the address "0xy ... yyy".
Next, the sorting process of the binary tree sort circuit 512 when the scheduled transmission time of the user 4 is updated to 1 from the state of FIG. 13 will be described.
FIG. 14 is an explanatory diagram of the sorting process of the binary tree sort circuit 512 after updating the scheduled transmission time according to the first embodiment of the present invention.
First, the binary tree sort circuit 512 rewrites entry 1434 of user 4 whose scheduled transmission time has been updated. Specifically, the binary tree sort circuit 512 rewrites the actual transmission scheduled time of entry 1434 to "1" and rewrites the VLD to "1".
Next, the binary tree sort circuit 512 updates other than leaf entries 1430 to 1437. However, the binary tree sort circuit 512 does not need to update all the entries, only the entries of the route from the rewritten leaf entry 1434 to the root entry 1400. In this figure, the binary tree sort circuit 512 has updated entry 1434, entry 1422, entry 1411 and entry 1400 according to the rules described above.
As described above, the binary tree sort circuit 512 updates the provisional transmission user when the scheduled transmission time is updated.
Next, the process until the band control unit 402 receives the packet and transmits it will be described.
FIG. 15 is a flowchart of processing of the packet determination unit 501 according to the first embodiment of the present invention.
First, when a packet (input packet) is received, the source port number 605 and the destination port number 606 of the TCP header unit 602 are extracted. Based on the extracted source port number 605 and destination port number 606, it is determined whether or not the input packet is an iSCSI packet (1801).
If the input packet is an iSCSI packet, it is determined whether the source IP address 603 of the input packet is stored in the RD control table 900 (1802).
Specifically, the source IP address 603 is extracted from the input packet. Next, the logical product of the extracted source IP address 603 and the netmask 902 of the RD control table 900 is calculated. Then, it is determined whether or not the calculated logical product is stored in the source IP address group 901 of the RD control table 900.
When a record containing the calculated logical product is found in the RD control table 900, the user identification number 903 of that record is extracted. Next, the extracted user identification number 903 is stored in the user identification number 1004, and further, 1 is stored in the RD flag 1006 (1803).
Next, it is determined whether or not the input packet is an RD request by referring to the opcode 701 and the R bit 702 (1804). In the case of the iSCSI command, if 0x1 is stored in the operation code 701 and 1 is stored in the R bit 702, the input packet is determined to be an RD request.
When the input packet is an RD request, 1 is stored in the bandwidth control flag 1003 (1805). Next, the request data length 704 is extracted from the iSCSI header 607 of the input packet (1806).
Next, the extracted request data length 704 is stored in the request data length 1005 (1807). Then, the input packet is transferred to the packet buffer unit 502 (1808), and the process is terminated.
On the other hand, if the input packet is not an RD request in step 1804, 0 is stored in the bandwidth control flag 1003 (1809). Next, since the input packet is a non-bandwidth control packet, the request data length is set to 0 (1810) and stored in the request data length 1005 (1807). Then, the input packet is transferred to the packet buffer unit 502 (1808), and the process is terminated.
On the other hand, if the calculated AND cannot be found in the RD control table 900 in step 1802, it is determined whether or not the destination IP address 604 of the input packet is stored in the R2T control table 1700 (1811).
Specifically, the destination IP address 604 is extracted from the input packet. Next, the logical product of the extracted destination IP address 604 and the netmask 1702 of the R2T control table 1700 is calculated. Then, it is determined whether or not the calculated logical product is stored in the destination IP address 1701 of the R2T control table 1700.
When a record containing the calculated logical product is found in the R2T control table 1700, the user identification number 1703 of that record is extracted. Next, the extracted user identification number 1703 is stored in the user identification number 1004, and further, 1 is stored in the R2T flag 1007 (1812).
It then refers to opcode 701 to determine if the input packet is R2T (1813). In the case of the iSCSI command, if 0x31 is stored in the opcode 701, the input packet is judged to be R2T.
If the input packet is R2T, 1 is stored in the bandwidth control flag 1003 (1814). Next, the request WR length 801 is extracted from the iSCSI header 607 of the input packet (1815).
Next, the extracted request WR length 801 is stored in the request data length 1005 (1816). Then, the input packet is transferred to the packet buffer unit 502 (1817), and the process is terminated.
On the other hand, if the input packet is not R2T in step 1813, 0 is stored in the bandwidth control flag 1003 (1818). Next, since the input packet is a non-bandwidth control packet, the request data length is set to 0 (1819) and stored in the request data length 1005 (1816). Then, the packet determination unit 501 transfers the input packet to the packet buffer unit 502 (1817), and ends the process.
On the other hand, if the input packet is not an iSCSI packet in step 1801, or if the destination IP address 604 is not stored in the R2T control table 1700 in step 1811, bandwidth control is not required, so user identification number 1004, RD flag. Store 0 in 1006 and R2T flag 1007, respectively (1820).
Next, 0 is stored in the bandwidth control flag 1003 (1821). Next, 0 is stored in the request data length 1005 (1822). Then, the input packet is transferred to the packet buffer unit 502 (1823), and the process is terminated.
As described above, the packet determination unit 501 determines the type of the input packet, and stores the value corresponding to the determined type in the internal header unit 1000. That is, if the input packet is an iSCSI RD request or an iSCSI R2T, the packet determination unit 501 needs to control the bandwidth, so the bandwidth control flag 1003 is set to "1" and the requested data length 1005 is set to the data length. To do. Otherwise<u style="single">Is</u>Since bandwidth control is not required, set "0" to the bandwidth control flag 1003 and the required data length 1005.
In step 1803, the packet determination unit 501 stores the user identification number 903 corresponding to the source IP address 603 in the user identification number 1004. Therefore, the packet buffer unit 502 holds the input packet in the queue of the user identification number 1004 regardless of whether the input packet is a bandwidth control packet or a non-bandwidth control packet. This prevents the order of packets sent from the same source IP address 903 from being swapped within the packet transfer device 104.
Here, the reason for preventing the change of the packet order in the present embodiment will be described.
Packets sent from the same source terminal are likely to belong to the same TCP flow (packets with the same source IP address 603, destination IP address 604, source port number 605, and destination port number 606). The TCP header part 602 of the packet contains a sequence number. The sequence number indicates the order in which packets belonging to the same TCP flow are transmitted from the transmitting terminal. When the receiving terminal receives the packet, it refers to the sequence number and determines whether or not the packets arrive in order. If the packets do not arrive in order, the receiving terminal may not be able to receive the packets accurately and may discard the packets. Therefore, in the present embodiment, the order of packets of the same TCP flow is not allowed to be changed.
Similarly, in step 1812, the packet determination unit 501 stores the user identification number 1703 corresponding to the destination IP address in the user identification number 1004. This prevents the order of packets sent to the same destination IP address 604 from being swapped within the packet transfer device 104.
FIG. 16 is a flowchart of processing of the buffer write control circuit 2001 according to the first embodiment of the present invention.
First, when a packet is received from the packet determination unit 501, the user identification number 1004 is extracted from the received packet. Next, it is determined whether or not the extracted user identification number 1004 is 0 (2401).
When the identification number 1004 is 0, the packet is stored in the non-bandwidth control queue buffer 2002 (2402). Then, when the packet is stored, the process ends (2404).
On the other hand, if the user identification number 1004 is not "0", a virtual queue group in which the extracted user identification number 1004 and the user identification number in the bandwidth control queue buffer 2003 match is selected, and the virtual queue is selected from the virtual queues. , Store packets (2403).
Specifically, check the RD flag 1006 and R2T flag 1007 of the received packet. When 1 is stored in the RD flag, the buffer write control circuit 2001 selects a virtual queue for storing the packet based on the source IP address 603. On the other hand, when "1" is stored in the R2T flag, the buffer write control circuit 2001 selects a virtual queue for storing the packet based on the destination IP address 604. By selecting the virtual queue for storing packets in this way, it is possible to prevent the order of packets of the same TCP flow from being changed.
The packet is then stored in the selected virtual queue in the bandwidth control queue buffer 2003.
Then, when the packet is stored, the process ends (2404).
FIG. 17 is a flowchart of processing of the buffer read control circuit 2004 according to the first embodiment of the present invention.
First, it is determined whether or not the transmission permission signal 523 has been received from the transmission queue selection unit 2103 (2501).
When the transmission permission signal 523 is received, the packet is read from the virtual queue or the non-bandwidth control queue buffer 2002 (queue) in the bandwidth control queue buffer 2003 based on the received transmission permission signal 523 (2502). Specifically, the packet buffer address is extracted from the transmission permission signal 523. Next, the packet is read from the queue corresponding to the extracted packet buffer address.
Then, the read packet is transmitted to the route search circuit 405.
Next, when the packet is transmitted, the transmission start signal 525 is transmitted to the transmission queue selection unit 2103 (2503). The transmission start signal 525 is a signal requesting the transmission permission signal 523.
On the other hand, if the transmission permission signal 523 is not received in step 2501, the process proceeds to step 2504 as it is.
It then determines if the beginning of any queue has been updated (2504). Note that updating the head of a queue means that a packet is input to an empty queue or a packet at the head of a queue holding a plurality of packets is read.
When the head of the queue is updated, the bandwidth control flag 1003, the user identification number 1004, and the request data length 1005 are extracted from the head packet held in the updated queue. Next, the packet buffer address of the updated queue is acquired from the packet buffer address memory 2005. Next, the extracted bandwidth control flag 1003, user identification number 1004, request data length 1005, and acquired packet buffer address are set as transmission request 524. Then, the transmission request 524 is transmitted to the transmission queue selection unit 2103 (2505), and the process is terminated (2506).
On the other hand, if the head of the queue has not been updated in step 2504, the process ends as it is (2506).
FIG. 18 is a flowchart of processing of the packet scheduling unit 510 at the time of receiving a packet according to the first embodiment of the present invention.
First, the request distribution unit 2101 in the packet transmission queue determination unit 511 receives the transmission request 524 from the buffer read control circuit 2004 (1202).
Upon receiving the transmission request 524, the request distribution unit 2101 determines whether or not "1" is stored in the bandwidth control flag 1003 included in the transmission request 524 (1208).
When "1" is stored in the bandwidth control flag, the request distribution unit 2101 stores the transmission request 524 in the bandwidth control queue in the transmission request queue 2102 corresponding to the user identification number 1004. Further, the request distribution unit 2101 transmits the stored transmission request 524 user identification number 1004 and request data length 1005 to the bifurcated sort circuit 512 and the transmission time calculation unit 2104.
The transmission time calculation unit 2104 receives the user identification number 1004 and the request data length 1005. Then, the transmission time calculation unit 2104 reads the received user sorting information of the user identification number 1004 from the user sorting information memory 514. The user sorting information includes the scheduled transmission time 1101 and VLD1102. The transmission time calculation unit 2104 determines whether or not VLD1102 included in the read sorting information is 1 (1203).
When VLD1102 is 1, the transmission time calculation unit 2104 ends the process without changing the scheduled transmission time 1101 (1204) (1211). This is because if the scheduled transmission time 1101 is changed when VLD1102 is "1", the contracted bandwidth cannot be protected.
On the other hand, when VLD1102 is 0, the transmission time calculation unit 2104 determines whether or not the read scheduled transmission time 1101 is the last (1205).
If the scheduled transmission time 1101 is in the future, the transmission time calculation unit 2104 ends the process without changing the scheduled transmission time 1101 (1204) (1211). This is because if the scheduled transmission time 1101 is in the future and the scheduled transmission time 1101 is updated, the contracted bandwidth cannot be protected.
If the scheduled transmission time 1101 is not in the future, the transmission time calculation unit 2104 updates the scheduled transmission time 1101 (1206). The scheduled new transmission time to be updated is calculated by the following formula (2).
Scheduled new transmission time = current time +1 ... (2)
By calculating the new scheduled time in this way, the packet can be transmitted immediately.
Next, the transmission time calculation unit 2104 changes the VLD to 1. Then, the user identification number 1004, the new transmission scheduled time, and the VLD are transmitted to the binary tree sort circuit 512.
The binary tree sort circuit 512 receives the user identification number 1004, the new scheduled transmission time, and the VLD. Then, the binary tree sort circuit 512 stores the new transmission scheduled time and the VLD in the entry corresponding to the user identification number 1004 of the user sorting memory 514. Then, the binary tree sort circuit 512 determines the user who transmits the packet earliest among the users (provisional transmission user) by performing user sorting (1207), and ends the process.
On the other hand, if "1" is not stored in the bandwidth control flag in step 1208, the request distribution unit 2101 stores the transmission request 524 in the non-bandwidth control queue in the transmission request queue 2102 corresponding to the user identification number 1004. ..
The transmit request queue 2102 then determines whether the non-bandwidth control queue before storing the transmit request 524 was empty (1210).
Send<u style="single">Request queue</u>When the 2102 determines that the non-bandwidth control queue is empty, the 2102 transmits a scheduling request to the transmission queue selection unit 2103.
Upon receiving the scheduling request, the transmission queue selection unit 2103 uses a round robin algorithm to select one of the non-bandwidth control queues storing the transmission request 524 (1209). Then, the transmission queue selection unit 2103 sets the transmission request 524 held at the head of the selected non-bandwidth control queue as a provisional transmission request.
If the transmission queue selection unit 2103 receives the transmission start signal 525 when the transmission request selection signal is not received from the transmission time calculation unit 2104, the transmission queue selection unit 2103 transmits the provisional transmission request as the packet transmission permission 523.
On the other hand, if it is determined in step 1210 that the non-bandwidth control queue is not empty, this process ends as it is (1211). In this case, since the number of non-bandwidth control queues storing the transmission request 524 is not changed, it is not necessary to change the provisional transmission request.
FIG. 19 is a flowchart of processing of the packet scheduling unit 510 at the time of packet transmission according to the first embodiment of the present invention.
First, the transmission time calculation unit 2104 determines whether or not the provisional transmission user is in a transmittable state (1301). The transmittable state is a state in which the scheduled transmission time of the provisional transmission user is in the past or at the same time with respect to the current time.
If the provisional transmission user is not in the transmittable state, the transmission time calculation unit 2104 waits until the provisional transmission user becomes in the transmittable state due to a change in the scheduled transmission time or the passage of time.
On the other hand, when the transmission is possible, the transmission time calculation unit 2104 transmits the transmission request selection signal to the transmission queue selection unit 2103. The transmission request selection signal includes the user identification number of the provisional transmission user.
The transmission queue selection unit 2103 receives the transmission request selection signal. Next, the transmission queue selection unit 2103 extracts the user identification number from the received transmission request selection signal. Next, the transmission queue selection unit 2103 reads the transmission request 524 from the bandwidth control queue corresponding to the extracted user identification number. Next, the transmission queue selection unit 2103 extracts the user identification number 1004 and the request data length 1005 from the read transmission request 524.
Next, the transmission queue selection unit 2103 acquires whether or not the transmission request 524 is held from the read bandwidth control queue. Next, the transmission queue selection unit 2103 transmits to the transmission time calculation unit 2104 whether or not the extracted user identification number 1004, the request data length 1005, and the acquired transmission request 524 are retained. The transmission time calculation unit 2104 receives this information.
Next, the transmission queue selection unit 2103 determines whether or not the transmission start signal 525 has been received from the buffer read control circuit 2004 (1302).
If the transmission queue selection unit 2103 has not received the transmission activation signal 525, the transmission queue selection unit 2103 waits until the transmission activation signal 525 is received.
On the other hand, when the transmission queue selection unit 2103 receives the transmission start signal 525, it transmits the read transmission request 524 as the transmission permission signal 523 to the buffer read control circuit 2004.
Next, the transmission time calculation unit 2104, which has received the user identification number 1004, the request data length 1005, and the presence / absence of holding the transmission request 524, calculates the new scheduled transmission time (1304). The new scheduled transmission time is calculated by the following equation (3), for example, by storing the time interval when transmitting 1-byte data.
Scheduled new transmission time = Scheduled transmission time this time + Time interval x Number of bytes of request data length ... (3)
In addition, the scheduled new transmission time requires that each user's bandwidth be judged to be compliant in the compliance / excess judgment of the Continuous State Leaky Bucket Algorithm described in Chapter 4.4.2 of The ATM Forum Specification version 4.0. You may. This leaky bucket algorithm will be described with reference to FIG.
The transmission time calculation unit 2104 transmits the obtained new scheduled transmission time, whether or not the received transmission request 524 is retained, and the user identification number 1004 to the binary tree sort circuit 512.
When the binary tree sort circuit 512 receives the new transmission scheduled time, the presence / absence of holding the transmission request 524, and the user identification number 1004, the binary tree sort circuit 512 stores these information in the user sorting information memory 514. Then, the binary tree sort circuit 512 determines the user who transmits the packet earliest among the users (provisional transmission user) by performing user sorting (1305), and ends the process (1306).
FIG. 20 is a flowchart of a process in which the transmission time calculation unit 2104 of the first embodiment of the present invention obtains a new scheduled transmission time using the leaky bucket algorithm.
The leaky bucket algorithm is represented by a model of a perforated leak bucket with a certain capacity. A certain amount of water leaks through the holes in the bucket. The leaked fixed amount corresponds to the contracted band of the user in the process of obtaining the scheduled transmission time.
When reading the RD request, water corresponding to the required data length of the read RD request is poured into the bucket. The bucket has the capacity to hold the amount of water equivalent to the contracted zone. In other words, the leaky bucket algorithm determines that data is being transferred in compliance with the contract bandwidth before the bucket overflows, and when water overflows from the bucket, data that exceeds the contract bandwidth is transferred. judge.
Hereinafter, the process of obtaining a specific transmission time will be described.
Read packet k of the RD request at time ta (k) (1901).
Next, the following equation (4) is calculated (1902).
X'= X- (ta (k) -LCT) (4)
The LCT is the time when the RD request was last read. ta (k)-LCT corresponds to the amount of water leaking from the bucket. X corresponds to the water level in the bucket when the previous RD request was read and completed. Therefore, the calculated X'corresponds to the current water level in the bucket.
Next, it is determined whether X'is negative (1903). If X'is not negative, proceed directly to step 1905.
On the other hand, if X'is negative, it modifies X'to 0 (1904).
Next, the following equation (5) is calculated (1905).
X = X'+ I (5)
In addition, I is the data amount of RD data and corresponds to the amount of water added. X corresponds to the water level in the bucket when the RD request is read.
Next, it is determined whether or not X> L (1906). L corresponds to the capacity of the bucket.
When X> L, the scheduled new transmission time is calculated by the following equation (6) (1907).
Scheduled new transmission time = ta (k) + (XL) (6)
If you send an RD request immediately when X> L, the storage 105 will exceed the contract bandwidth and send RD data. By calculating the new scheduled transmission time using Eq. (6), the amount of water leaking from the bucket and the amount of water added to the bucket match, so the contract bandwidth is not exceeded.
When X L, the scheduled new transmission time is calculated by the following equation (7) (1908).
Scheduled new transmission time = ta (k) +1 (7)
When X L, the contracted bandwidth is not exceeded even if the RD request is read immediately. Therefore, the scheduled new transmission time is set immediately after the current time ta (k) when the RD request is read.
As described above, the scheduled new transmission time can be obtained by using the leaky bucket algorithm. The transmission time calculation unit 2104 can also obtain the new transmission scheduled time of R2T in the same manner as the RD request.
The packet transfer device 104 of the first embodiment of the present invention can control the bandwidth without holding the RD data and the WR data in the packet buffer unit 502. Therefore, the packet transfer device 104 can reduce the buffer amount.
Further, the packet transfer device 104 transfers the RD request and the R2T at a timing that does not exceed the user's contracted bandwidth. Therefore, the storage 105 and the user terminal 100 do not transmit excessive data, and the data transfer resource can be effectively used.
The conventional packet transfer device needs to be provided on the user side and the storage side in order to control the bandwidth of the RD data and the WR data. However, the packet transfer device 104 of the first embodiment of the present invention can control the bandwidth of the RD data and the WR data by one unit.
Further, the storage 105 becomes a disk array control device having a bandwidth control IF by including the packet transfer device 104 inside.
(Second embodiment) The packet transfer device 104 of the second embodiment can incorporate a plurality of network interfaces into the chassis type switch.
FIG. 21 is a packet transfer device 104 according to a second embodiment of the present invention.
The packet transfer device 104 of the second embodiment is composed of a bandwidth control network interface 1620, a non-bandwidth control network interface 1621, a switch unit 1601, and a setting information storage unit 1602.
The switch 1601 extracts the output line number 1002 of the internal header portion 1000 from the received packet. Then, the switch 1601 transfers the packet to the bandwidth control network interface 1620 or the non-bandwidth control network interface 1621 including the output line 412 of the extracted output line number 1002.
The setting information storage unit 1602 stores the information used by the interface control unit 1607.
Bandwidth control The network interface 1620 routes packets while controlling the bandwidth. Non-bandwidth control network interface 1621 routes packets without controlling bandwidth.
Bandwidth control network interface 1620 is from input line 411, packet reception circuit 401, bandwidth control unit 402, route search circuit 1603, packet transmission circuit 404, output line 412, interface control unit 1607, switch transmission circuit 1605, and switch reception circuit 1606. It is composed. The input line 411, the packet receiving circuit 401, the bandwidth control unit 402, and the packet transmitting circuit 40.<u style="single">4</u>And output circuit 4<u style="single">12</u>Is the same configuration and operation as in the first embodiment. The same configurations as those in the first embodiment are designated by the same reference numerals, and the description thereof will be omitted.
The switch transmission circuit 1605 is a route search circuit.<u style="single">16</u>The packet received from 03 is forwarded to the switch unit 1061. The switch reception circuit 1606 is a route search circuit for packets received from the switch unit 1061.<u style="single">16</u>Forward to 03.
The interface control unit 1607 includes a band control unit 402 and a route search circuit.<u style="single">16</u>Set various information in 03. The various information includes contract bandwidth information of the user site 108, packet route search information, netmask information of the user site 108, and the like. The interface control unit 1607 acquires various information to be set from the setting information storage unit 1602 (1610).
The route search circuit 1603 searches for the route of the received packet. Specifically, when the route search circuit 1603 receives a packet, it extracts the destination IP address 604 of the packet. Next, the route search circuit 1603 searches the route search table for the output line 412 that transmits the extracted packet of the destination IP address 604. Next, the route search circuit 1603 stores the searched output line 412 number in the output line number 1002 of the internal header unit 1000. Next, in the route search circuit 1603, the searched output line 412<u style="single">Non-bandwidth control</u>If the output line 412 is on the network interface 1621, the packet is sent to the switch transmission circuit 1605. On the other hand, in the route search circuit 1603, the searched output line 412<u style="single">Bandwidth control</u>If the output line 412 is on the network interface 1620, the packet is sent to the packet transmission circuit 404 connected to the output line 412.
The non-bandwidth control network interface 1621 has a configuration in which the band control unit 402 is removed from the band control network interface 1620, and detailed description thereof will be omitted. Therefore, the packet receiving circuit 401 and the route search circuit 1603 are directly connected.
Although the bandwidth control network interface 1620 and the non-bandwidth control network interface 1621 are shown one by one, a plurality of the bandwidth control network interface 1620 and the non-bandwidth control network interface 1621 may be provided.
According to this second embodiment, the bandwidth control of the storage data can be performed in the network interface of the chassis type switch having abundant expandability.
(Third embodiment) A third embodiment of the present invention includes a traffic shaping unit in the LAN switch 101 and the packet transfer device 104. The third embodiment can be applied to both the first and second embodiments. Here, a case where it is applied to the second embodiment will be described.
FIG. 22 is a block diagram of a storage-centric network system according to a third embodiment of the present invention.
The storage-centric network system of the third embodiment includes a traffic shaping unit 2202 in the LAN switch 101. Other configurations are the same as in the second embodiment. However, the configuration of the storage-centric network system of the second embodiment is the same as that of the first embodiment (FIG. 1) except for the configuration of the packet transfer device 104.
The traffic shaping unit 2202 uses a traffic shaping function (see, for example, Patent Document 1) to control the bandwidth of all packets transferred to the wide area network 102.
FIG. 23 is a block diagram of the packet transfer device 104 according to the third embodiment of the present invention.
The packet transfer device 104 of the third embodiment includes a traffic shaping unit 2201 between the route search circuit 1603 and the packet transmission circuit 404 in the bandwidth control network interface 1620. Other than that, the configuration is the same as that of the packet transfer device 104 of the second embodiment. The same configurations as those of the second embodiment are designated by the same reference numerals, and the description thereof will be omitted.
The traffic shaping unit 2201 uses the traffic shaping function to control the bandwidth of all packets transferred to the wide area network.
When the third embodiment is applied to the packet transfer device 104 of the first embodiment, a traffic shaping unit 2201 is provided between the route search circuit 403 and the packet transmission circuit 404.
The data transfer device 104 of the first or second embodiment controls the transfer amount of the RD data and the WR data by controlling the transfer interval of the RD request and the R2T. However, when the RD data or the WR data is divided into a plurality of IP packets and transferred, the data transfer device 104 cannot control the transfer interval of the divided IP packets.
The edge switch 103 monitors the amount of data transferred to the wide area network using the UPC. The UPC monitors the amount of packets flowing into the wide area network per unit time to see if the traffic amount is within the contracted bandwidth. At this time, the unit time for monitoring may be set short.
In this case, even if the data transfer device 104 of the first or second embodiment transfers the RD request or R2T within the contract band, the edge switch 103 exceeds the contract band by the traffic amount per unit time. There is a possibility to judge. When the edge switch 103 determines that the contracted bandwidth has been exceeded, the edge switch 103 discards the packet.
In order to prevent this, it is effective to provide the traffic shaping units 2201 and 2202 in the storage-centric network system.
However, as mentioned above, the packet buffer may overflow only with the traffic shaping units 2201 and 2202.
Therefore, in the third embodiment, the unit time for monitoring is set short by using the data transfer device 104 of the first or second embodiment in combination with the traffic shaping units 2201 and 2202. Even if it prevents packets from being dropped.
Since the data transfer device 104 transfers the RD request and the R2T while controlling the transmission interval, the packet buffers of the traffic shaping units 2201 and 2202 do not overflow.
The traffic shaping unit 2201 may be provided as a separate device outside the packet transfer device 104. Similarly, the traffic control unit 2202 may be provided as a separate device outside the LAN switch 101.
<figref num="1">It is a block diagram of the storage centric network system of 1st Embodiment of this invention.</figref><figref num="2">It is a block diagram of the iSCSI packet of the 1st Embodiment of this invention.</figref><figref num="3">It is a block diagram of the iSCSI header part of the RD request or WR request transmitted by the user terminal of the 1st Embodiment of this invention.</figref><figref num="4">It is a block diagram of the iSCSI header part of R2T transmitted by the storage of 1st Embodiment of this invention.</figref><figref num="5">It is a block diagram of the packet inside the packet transfer apparatus of 1st Embodiment of this invention.</figref><figref num="6">It is a block diagram of the packet transfer apparatus of 1st Embodiment of this invention.</figref><figref num="7">It is a block diagram of the band control part of the 1st Embodiment of this invention.</figref><figref num="8">It is a block diagram of the RD control table provided in the packet determination part of the 1st Embodiment of this invention.</figref><figref num="9">It is a block diagram of the R2T control table provided in the packet determination part of the 1st Embodiment of this invention.</figref><figref num="10">It is a block diagram of the packet buffer part of the 1st Embodiment of this invention.</figref><figref num="11">It is a block diagram of the packet transmission queue determination part of the 1st Embodiment of this invention.</figref><figref num="12">It is explanatory drawing of the user sorting information memory of 1st Embodiment of this invention.</figref><figref num="13">It is explanatory drawing of the sorting process of the binary tree sort circuit of 1st Embodiment of this invention.</figref><figref num="14">It is explanatory drawing of the sorting process of the binary tree sort circuit after the scheduled transmission time update of 1st Embodiment of this invention.</figref><figref num="15">It is a flowchart of the process of the packet determination part of the 1st Embodiment of this invention.</figref><figref num="16">It is a flowchart of the process of the buffer write control circuit of 1st Embodiment of this invention.</figref><figref num="17">It is a flowchart of the process of the buffer read-out control circuit of 1st Embodiment of this invention.</figref><figref num="18">It is a flowchart of the process of the packet scheduling part at the time of receiving the packet of the 1st Embodiment of this invention.</figref><figref num="19">It is a flowchart of the process of the packet scheduling part at the time of packet transmission of the 1st Embodiment of this invention.</figref><figref num="20">It is a flowchart of the process which the transmission time calculation unit of 1st Embodiment of this invention obtains a new transmission scheduled time using a leaky bucket algorithm.</figref><figref num="21">It is a block diagram of the packet transfer apparatus of the 2nd Embodiment of this invention.</figref><figref num="22">It is a block diagram of the storage centric network system of the 3rd Embodiment of this invention.</figref><figref num="23">It is a block diagram of the packet transfer apparatus of the 3rd Embodiment of this invention.</figref><figref num="24">It is explanatory drawing of the read process of the conventional storage centric network system.</figref><figref num="25">It is explanatory drawing of the writing process of the conventional storage centric network system.</figref>
Code description
100 user terminal 101 LAN switch 102 Wide area network 103-1 Edge switch 103-2 Edge switch 104 Packet transfer device 105 storage 107 Management Console 108 User Site 109 data center 401 packet reception circuit 402 Bandwidth control unit 403 route search circuit 404 packet transmission circuit 405 Device control unit 411 input line 412 output line 500 packet processing unit 501 packet judgment unit 502 Packet buffer 510 Packet Scheduling Unit 511 Packet transmission queue determination unit 512 Binary sort circuit 514 User sorting information memory
25 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25
Every citation, both waysCites: the store holds 2 of 3
| Document | Relation | Office |
|---|---|---|
| JP2004056728A | Cites | Japan |
| JP2001211207A | Cites | Japan |
| 高瀬 誠由 他,iSCSIデータトラヒックに適したシェーパの検討,電子情報通信学会2004年通信ソサイエティ大会講演論文集2,社団法人電子情報通信学会,2004年 9月 8日,第200ページ,B-7-61 | Non-patent | – |
4 members in 2 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 2004295847 | Japan | A | |
| JP20040295847 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| US2006077915A1 | United States of America | A1 | |
| JP2006109299A | Japan | A | |
| JP4409401B2This record | Japan | B2 | |
| US8094558B2 | United States of America | B2 |
12 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Cancellation because of no payment of annual feesLAPS | LAPS | |
| Renewal fee payment (event date is renewal date of database)FPAY | FPAY | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Written amendmentJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 4409401
- Publication, DOCDB
- 4409401
- Publication, EPODOC
- JP4409401B
- Application
- 295847
- Application, DOCDB
- 2004295847
- Application, EPODOC
- JP20040295847
Titles2
- Japanese
- パケット転送装置及びストレージシステム
- English
- Packet transfer device and storage system
Classification
- CPC, 3
- H04L47/10
- H04L47/20
- H04L47/21
- IPC, 4
- H04L12 56
- H04L29 08
- H04L47 22
- H04L47 52
