WO2013088521A1 - 中継装置および中継方法 - Google Patents

中継装置および中継方法 Download PDF

Info

Publication number
WO2013088521A1
WO2013088521A1 PCT/JP2011/078829 JP2011078829W WO2013088521A1 WO 2013088521 A1 WO2013088521 A1 WO 2013088521A1 JP 2011078829 W JP2011078829 W JP 2011078829W WO 2013088521 A1 WO2013088521 A1 WO 2013088521A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
unit
packet
relay device
information processing
Prior art date
Application number
PCT/JP2011/078829
Other languages
English (en)
French (fr)
Inventor
裕 関野
千佳広 出口
直樹 前沢
嘉樹 奥村
敏宏 友▲崎▼
浩章 渡邉
秀幸 根木
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/078829 priority Critical patent/WO2013088521A1/ja
Publication of WO2013088521A1 publication Critical patent/WO2013088521A1/ja
Priority to US14/300,359 priority patent/US20140294015A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Definitions

  • the present invention relates to a relay device and a relay method.
  • a technology of a relay device that, when receiving a plurality of data, determines a priority order for transmitting each data, and transfers the data in order from the highest priority data.
  • a relay device that, when receiving a plurality of data to be transmitted from the same port, selects each data by a round robin method and transmits the data in the selected order.
  • FIG. 9 is a diagram for explaining a network in which a plurality of relay apparatuses relay data.
  • the network illustrated in FIG. 9 includes three relay apparatuses # 1 to # 3 and five information processing apparatuses # 1 to # 5.
  • relay apparatuses # 1 to # 3 are sequentially connected, and information processing apparatus # 1 and information processing apparatus # 2 are connected to relay apparatus # 1.
  • the information processing apparatus # 3 is connected to the relay apparatus # 2
  • the information processing apparatus # 4 and the information processing apparatus # 5 are connected to the relay apparatus # 3.
  • FIG. 10 is a diagram for explaining an example of the relay apparatus.
  • the relay apparatus # 2 includes a port input unit 30, a port input unit 31, a priority order determination unit 32, and a port output unit 33.
  • the port input unit 30 is an input unit of the port # 1 connected to the information processing device # 3, and receives data from the information processing device # 3.
  • the port input unit 31 is an input unit of the port # 2 connected to the relay device # 3, and receives data from the relay device # 3.
  • the priority determining unit 32 selects the port # 1 or the port # 2 by the round robin method, and selects the selected port.
  • the data received by the input unit is output to the port output unit.
  • the port output unit 33 is an output unit of the port # 0 to which the relay device # 1 is connected, and transmits the data acquired from the priority determining unit 32 to the relay device # 1.
  • each relay device # 1 to # 3 when each relay device # 1 to # 3 receives data to be transmitted using the same port, the relay devices # 1 to # 3 select data to be transmitted in a round robin method, and perform processing for transmitting the data in the selected order. Run independently. For example, the relay device # 3 receives data destined for the information processing device # 1 from the information processing device # 4 and the information processing device # 5. In such a case, since relay device # 3 transmits each data using the same port, the relay device # 3 arbitrates the received data and transmits data that has won the arbitration to relay device # 2.
  • relay device # 2 receives data destined for the information processing device # 1 from the information processing device # 3 and the relay device # 3
  • the relay device # 2 arbitrates the received data, and receives the data that has won the arbitration. Transmit to relay device # 1.
  • the relay apparatus # 1 receives data destined for the information processing apparatus # 1 from the information processing apparatus # 2 and the relay apparatus # 2
  • the relay apparatus # 1 arbitrates the received data, and receives the data that has won the arbitration. Transmit to information processing apparatus # 1.
  • FIG. 11 is a diagram for explaining data transmission / reception between information processing apparatuses.
  • the information processing apparatus # 5 transmits data with the information processing apparatus # 1 as a destination, and the information processing apparatus # 1 transmits a response to the information processing apparatus # 5.
  • the information processing apparatus # 5 transmits the transfer data to the information processing apparatus # 1. Then, the data is transferred to the information processing apparatus # 1 via the three relay apparatuses # 1 to # 3. And information processing apparatus # 1 transmits a response with respect to information processing apparatus # 5, when data are received. Then, the response transmitted by the information processing apparatus # 1 is transferred to the information processing apparatus # 5 via the three relay apparatuses # 1 to # 3.
  • an object of the present invention is to equalize communication time between information processing apparatuses.
  • it is a relay device that receives data.
  • a relay device updates the value indicating the accumulation waiting time included in the received data as time passes. Then, the relay device compares values indicating the accumulated time for waiting for arbitration included in each received data, and selects data to be transmitted according to the comparison result. Then, the relay device transmits the selected data to another device.
  • communication time between information processing apparatuses can be equalized.
  • FIG. 1 is a diagram for explaining the communication system according to the first embodiment.
  • FIG. 2A is a schematic diagram illustrating an example of a packet transmitted by the information processing apparatus according to the first embodiment.
  • FIG. 2B is a diagram for explaining an example of a header.
  • FIG. 2C is a diagram for explaining an example of a payload.
  • FIG. 3 is a schematic diagram illustrating the functional configuration of the relay apparatus according to the first embodiment.
  • FIG. 4 is a diagram for explaining an example of processing for updating the priority order data.
  • FIG. 5 is a diagram for explaining an example of a process for transmitting a packet.
  • FIG. 6 is a diagram for explaining an example of time required for communication.
  • FIG. 1 is a diagram for explaining the communication system according to the first embodiment.
  • FIG. 2A is a schematic diagram illustrating an example of a packet transmitted by the information processing apparatus according to the first embodiment.
  • FIG. 2B is a diagram for explaining an example of a header.
  • FIG. 2C
  • FIG. 7 is a flowchart for explaining an example of a flow of processing executed by the relay device according to the first embodiment.
  • FIG. 8 is a flowchart illustrating the flow of processing executed when the information processing apparatus and the relay apparatus according to the first embodiment receive a packet.
  • FIG. 9 is a diagram for explaining a network in which a plurality of relay apparatuses relay data.
  • FIG. 10 is a diagram for explaining an example of the relay apparatus.
  • FIG. 11 is a diagram for explaining data transmission / reception between information processing apparatuses.
  • FIG. 1 is a diagram for explaining the communication system according to the first embodiment.
  • the communication system 1 includes a plurality of information processing apparatuses 2 to 6 and a plurality of relay apparatuses 7, 8, and 10.
  • the relay device 7 is connected to the relay device 10, and the relay device 10 is connected to the relay device 8. Further, the information processing devices 2 and 3 are connected to the relay device 7, the information processing device 4 is connected to the relay device 10, and the information processing devices 5 and 6 are connected to the relay device 8. Has been.
  • each of the information processing devices 2 to 6 transmits and receives data via the relay devices 7, 8, and 10. That is, the information processing device 2 and the information processing device 3 perform data transmission / reception via the relay device 7, and the information processing device 2 and the information processing device 4 perform data transmission / reception via the relay devices 7, 10. Do.
  • the information processing device 2 and the information processing device 5 or the information processing device 2 and the information processing device 6 transmit and receive data via the relay devices 7, 8, and 10.
  • each of the information processing apparatuses 2 to 6 transmits and receives a packet storing data.
  • a packet is transmitted from each information processing device 3 to 6 to information processing device 2, that is, each information processing device 3 to 6 and information processing device 2 transmit and receive data.
  • An example of performing is described.
  • the relay devices 7 and 8 are assumed to perform the same function as the relay device 10, and the description thereof is omitted.
  • the IP Internet Protocol
  • the priority order of the data to be transmitted A packet including priority order data indicating Each of the information processing apparatuses 2 to 6 transmits the generated packet to the relay apparatus connected to itself.
  • FIG. 2A is a schematic diagram illustrating an example of a packet transmitted by the information processing apparatus according to the first embodiment.
  • FIG. 2B is a figure for demonstrating an example of a header.
  • FIG. 2C is a diagram for explaining an example of a payload.
  • each of the information processing apparatuses 2 to 6 transmits a packet having a header and a payload.
  • priority order data, a destination address, and a payload length are stored in the header of the packet.
  • the priority order data is information indicating the priority order of transmitting packets.
  • each of the information processing apparatuses 2 to 6 stores an arbitrary numerical value set in advance in the packet as priority order data. Further, as will be described later, each of the relay apparatuses 7, 8, and 10 decrements the priority order data every predetermined time. For this reason, the priority order data indicates the accumulation of the time that the packet waits for arbitration in the relay apparatuses 2, 8, and 10.
  • each relay device 7, 8, 10 determines that a timeout has occurred. Therefore, each of the information processing apparatuses 2 to 6 stores the time until a timeout occurs as priority order data.
  • the destination address is the IP address of the information processing apparatus that is the destination of the packet.
  • the payload length is information indicating the payload capacity of the packet.
  • the packet payload stores a transmission source PC (Personal Computer) number, a data serial number, and data of the information processing apparatus that is the transmission source.
  • the transmission source PC number is a number that uniquely indicates the information processing apparatus that has generated the packet
  • the data serial number is information indicating the number of data stored in the packet.
  • FIG. 3 is a schematic diagram illustrating the functional configuration of the relay apparatus according to the first embodiment.
  • FIG. 3 shows the functions of the input ports at the ports # 1 and # 2 and the output port at the port # 0 among the plurality of ports # 0 to # 2 of the relay apparatus 10. That is, the relay apparatus 10 has the same functional configuration as that of FIG. 3 with the ports # 0 to # 2 as output destinations for the ports # 0 to # 2.
  • the relay device 10 includes a port input unit 11, a subtraction unit 12, a port input unit 13, a subtraction unit 14, a port output unit 15, and a priority order determination unit 20.
  • the port input unit 11 is an input unit of the port # 1 connected to the information processing apparatus 4
  • the port input unit 13 is an input unit of the port # 2 connected to the relay apparatus 8.
  • the port # 0 output unit is an output unit of a port connected to the relay device 7.
  • the subtraction unit 12 is associated with port # 1, and the subtraction unit 14 is associated with port # 2.
  • the port input unit 11 includes a valid output unit 11a.
  • the port input unit 13 includes a valid output unit 13a
  • the port output unit 15 includes a valid output unit 15a and an output buffer 15b.
  • the priority order determination unit 20 includes an arbitration unit 21, an output control unit 26, and a selector 25.
  • the arbitrating unit 21 includes a timer unit 22, a comparing unit 23, and a determining unit 24.
  • the output control unit 26 includes a priority order data rewriting unit 28 and a packet assembly unit 27.
  • the relay apparatus 10 has a plurality of ports in addition to the ports # 0 to # 2, and each port has an input unit and a subtracting unit associated therewith.
  • the processing executed by the relay device 10 will be described.
  • the port input unit 13 performs the same processing as the port input unit 11 and will not be described.
  • the subtraction unit 14 performs the same processing as that of the subtraction unit 12, and a description thereof is omitted.
  • the port input unit 11 is an input unit of port # 1 connected to the information processing device 4 and receives a packet transmitted by the information processing device 4. Further, when receiving the packet, the port input unit 11 holds the received packet and sets a valid bit “on” indicating that the packet is held in the valid output unit 11a.
  • the port input unit 11 acquires the value of the priority data of the packet and outputs the acquired value of the priority data to the subtraction unit 12. Further, when the port input unit 11 acquires Acknowledge from the determination unit 24, the port input unit 11 outputs the held packet to the selector 25 of the priority order determination unit 20. Further, when the packet is output, the port input unit 11 clears the valid bit set in the valid output unit 11a and clears the value held by the subtracting unit 12.
  • the valid output unit 11 a When the valid bit is set by the port input unit 11, the valid output unit 11 a outputs a signal indicating that the packet has been received to the determination unit 24. That is, the valid output unit 11a outputs a signal indicating “on” to the determination unit 24 when the valid bid “on” is set, and outputs a signal indicating “off” when the valid bit is cleared. .
  • the subtraction unit 12 updates the priority order data of the packet received by the port # 1 every predetermined time. Specifically, the subtraction unit 12 acquires the priority order data of the packet received by the port # 1 from the port input unit 11. In such a case, the subtraction unit 12 holds the value of the acquired priority order data and outputs the stored data value to the comparison unit 23 and the selector 25. Further, when the subtracting unit 12 receives a signal instructing updating from the timer unit 22, the subtracting unit 12 decrements the held value by one. Then, the subtraction unit 12 outputs a new value to the comparison unit 23.
  • a line indicating the connection between the subtraction unit 12 and the selector 25 is omitted in order to prevent the drawing from becoming complicated.
  • the port output unit 15 is an output unit of the port # 0 connected to the relay device 7.
  • the port output unit 15 holds the received packet in the output buffer 15b.
  • the port output unit 15 sets a valid bit in the valid output unit 15a.
  • the port output unit 15 transmits the packet held in the output buffer 15b to the relay device 7.
  • the port output unit 15 clears the valid bit set in the valid output unit 15a.
  • the valid output unit 15a outputs a signal indicating “on” to the determination unit 24 when the valid bit is set, and outputs “off” when the valid bit is cleared.
  • the signal shown is output to the determination unit 24.
  • the arbitration unit 21 arbitrates received packets when each port receives a packet at the same time.
  • the timer unit 22 transmits a signal instructing the subtraction units 12 and 14 to update at a predetermined time interval. Note that the timer unit 22 transmits a signal instructing updating to all the subtracting units associated with the ports of the relay apparatus 10 that are not shown in FIG.
  • the comparison unit 23 compares the priority data included in the packets received by each port. Then, the comparison unit 23 outputs the comparison result to the determination unit 24. Specifically, the comparison unit 23 acquires priority order data from the subtraction unit associated with each port. Then, the comparison unit 23 compares the acquired priority data, identifies the priority data having the smallest value, and determines the port that has received the packet including the identified priority data.
  • the comparison unit 23 notifies the determination unit 24 of the determined port.
  • the comparison unit 23 notifies the determination unit 24 of the plurality of ports that have received the packet having the smallest value of the priority data.
  • the determination unit 24 acquires a signal indicating that a packet has been received from the valid output units 11a and 13a included in the input unit of each port. Further, the determination unit 24 acquires the comparison result of the priority order data included in the packet received by each port from the comparison unit 23. Further, the determination unit 24 determines whether the output of the valid output unit 15 a included in the port output unit 15 is “on” or “off”. That is, the determination unit 24 determines whether or not the port output unit 15 is transmitting a packet.
  • the determination unit 24 determines that the output of the valid output unit 15a included in the port output unit 15 is “off”, that is, when the port output unit 15 does not transmit a packet. That is, the determination unit 24 outputs Acknowledge to the reception unit of the port notified as a comparison result from the comparison unit 23 among the ports that output a signal indicating that the packet has been received. Further, the determination unit 24 notifies the selector 25 of the port that has output the Acknowledge.
  • the determination unit 24 executes the following processing. That is, the determination unit 24 selects one port in a round robin manner from the ports whose valid bits are “on” and notified from the comparison unit 23. Then, the determination unit 24 outputs an Acknowledge to the receiving unit of the selected port and notifies the selector 25 of the selected port.
  • the selector 25 transmits the packet received by the port notified from the determination unit 24 among the ports of the relay apparatus 10 to the output control unit 26. Further, the selector 25 outputs the value output from the subtracting unit corresponding to the port notified from the determining unit 24, that is, the value of the priority order data to the output control unit 26. For example, when the selector 25 is notified of the port # 1 from the determination unit 24, the selector 25 transmits the packet output from the port input unit 11 to the output control unit 26, and at the same time the subtraction unit 12 associated with the port # 1. Is transmitted to the output control unit 26.
  • the packet assembly unit 27 When the packet assembly unit 27 receives a packet from the port input unit 11 or the port input unit 13 via the selector 25, the packet assembly unit 27 holds the received packet.
  • the packet assembling unit 27 outputs the packet to the port output unit 15 when the priority data rewriting unit 28 updates the held priority data of the packet.
  • the priority data rewriting unit 28 acquires priority data from the subtracting units 12 and 14 associated with all the ports of the relay device 10 via the selector. That is, the priority order data rewriting unit 28 acquires priority order data that reflects the time during which the packet received by the packet assembly unit 27 waits during the arbitration process in the relay device 10. Then, the priority data rewriting unit 28 updates the packet priority data held by the packet assembling unit 27 to the value of the acquired priority data.
  • the port input unit 11, the valid output unit 11a, the subtraction unit 12, the port input unit 13, the valid output unit 13a, the subtraction unit 14, the port output unit 15, the valid output unit 15a, and the output buffer 15b are electronic circuits.
  • the priority order determination unit 20, the arbitration unit 21, the timer unit 22, the comparison unit 23, the determination unit 24, the selector 25, the output control unit 26, the packet assembly unit 27, and the priority order data rewriting unit 28 are electronic circuits.
  • an integrated circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array), or CPU (Central Processing Unit) or MPU (Micro Processing Unit) is applied.
  • FIG. 4 is a diagram for explaining an example of processing for updating the priority order data.
  • FIG. 4 an example in which a packet received by port # 1 is transmitted will be described.
  • the subtraction unit 12 includes a counter circuit having Data1 and Data2 as data input terminals.
  • the output of the valid output unit 11a is “off”, that is, when no valid is set in the valid output unit 11a, the counter circuit outputs the value input from the Data1 terminal from the Q terminal.
  • the counter circuit when the output of the valid output unit 11a changes from “off” to “on”, the counter circuit outputs the value input from the Data2 terminal from the Q terminal. Further, when a signal is input to the T terminal connected to the timer unit 22, the counter circuit decrements the input value by 1 and outputs it from the Q terminal.
  • the port input unit 11 receives a packet from the information processing apparatus 4 as illustrated in FIG. Then, as shown in FIG. 4B, the port input unit 11 outputs the value of the priority order data to the Data2 terminal of the counter circuit, and sets the valid bid in the valid output unit 11a.
  • the output of the valid output unit 11a changes from “off” to “on”, so that the counter circuit of the subtraction unit 12 receives the input of the Data2 terminal, that is, the port input.
  • the value of the priority order data received by the unit 11 is acquired.
  • the counter circuit of the subtraction unit 12 outputs the acquired value to the comparison unit 23 and the selector 25 as shown in (D) of FIG.
  • the counter circuit of the subtracting unit 12 outputs the output to the Data1 terminal as shown in FIG. That is, the counter circuit of the subtracting unit 12 holds the value of the priority order data.
  • the counter circuit of the subtraction unit 12 receives a signal from the timer unit 22 at predetermined intervals as shown in FIG. For this reason, the counter circuit of the subtracting unit 12 outputs a value obtained by decrementing the held value by one every predetermined time. Here, since the output of the Q terminal is also transmitted to the Data 1 terminal, the counter circuit holds the value after the decrement. As described above, the subtraction unit 12 reflects the time that the packet received by the port input unit 11 waits for arbitration in the priority order data.
  • the comparison unit 23 compares the values of the priority order data acquired from the subtraction units 12 and 14 associated with each port, identifies the port associated with the subtraction unit that has notified the smallest value, 4, the identified port is notified to the determination unit 24. For example, when the value notified from the subtracting unit 12 is “3” and the value notified from the subtracting unit 14 is “5”, the comparing unit 23 sets the port # associated with the subtracting unit 12. 1 is notified to the determination unit 24.
  • the determination unit 24 receives the port of the notified port # 1 as illustrated in (H) of FIG. Acknowledge is output to the input unit 11. Further, the determination unit 24 notifies the selector 25 of the port # 1 as indicated by (I) in FIG.
  • the port input unit 11 outputs the received packet to the selector 25 as shown in (J) of FIG.
  • the selector 25 since the selector 25 receives the notification of the port # 1 from the determination unit 24, the selector 25 outputs the packet output from the port input unit 11 to the output control unit 26 as shown in (K) in FIG. Further, the selector 25 outputs to the output control unit 26 the priority order data reflecting the value output by the subtracting unit 12 associated with the port # 1, that is, the time for which the relay device 10 waits for arbitration.
  • the relay device 10 determines that the priority data value is “0” as a result of the decrementing unit 12 decrementing the priority data value, or the priority data value is less than or equal to a predetermined threshold value. In case of counter underflow, the following processing is executed. That is, the relay apparatus 10 transmits a signal or a packet indicating that a packet received by the port # 1 associated with the subtracting unit 12 has timed out from the port # 1 to the packet transmission source. In addition, the process which transmits the signal and packet which show that the relay apparatus 10 timed out performs the process similar to a prior art, and abbreviate
  • FIG. 5 is a diagram for explaining an example of a process for transmitting a packet.
  • the determination unit 24 sends the port # to the selector 25 as shown in (M) of FIG. 1 is notified.
  • the selector 25 transmits the packet output from the port input unit 11 of the port # 1 to the packet assembly unit 27 of the output control unit 26.
  • the selector 25 transmits the priority order data reflecting the output of the subtraction unit 12 associated with the port # 1, that is, the time when the packet waits for arbitration in the relay device 10, to the priority data rewriting unit 28.
  • the priority order data rewriting unit 28 rewrites the priority order data of the packet held by the packet assembling unit 27 with the priority order data acquired from the subtracting unit 12 as shown in (O) of FIG. The Thereafter, the packet assembling unit 27 outputs the packet to the output buffer 15b of the port output unit 15 as shown in (P) of FIG.
  • FIG. 6 is a diagram for explaining an example of the time taken for communication.
  • the information processing apparatuses 2 to 6 are described as PCs 2 to 6, and the relay apparatuses 7, 8, and 10 are described as SW (Switch) 7, 8, and 10.
  • SW Switch
  • the timing executed by each relay device 7, 8, 10 is taken in the horizontal direction, and the packet acquired by each relay device 7, 8, 10 is written in the vertical direction.
  • the packets received by the relay device 8 from the information processing devices 5 and 6 and the packets received by the relay device 10 from the information processing device 4 and the relay device 8 are described from above. . Subsequently, the packet received by the relay device 7 from the information processing device 3 and the relay device 10 and the packet received by the information processing device 2 are described.
  • each of the information processing apparatuses 3 to 6 transmits a packet having priority data “10” and a payload of each packet “2”.
  • each of the relay apparatuses 7, 8, and 10 decrements the priority order data by 1 at each timing.
  • the relay device 8 receives packets from the information processing devices 5 and 6. Then, the relay device 8 selects the packet received from the information processing device 5 by the round robin method as shown in (Q) of FIG. The selected packet is transmitted to the relay device 10 as indicated by the arrow in FIG.
  • the relay device 8 decrements the priority data of the packet received from the information processing device 6 by 1 to “9”. Further, at the second timing, the relay device 8 waits without transmitting a packet because the port of the relay device 10 that is the transmission destination of the packet is filled.
  • the relay device 10 receives the packet transmitted from the relay device 8. Further, the relay device 10 receives a packet from the information processing device 4. In such a case, since the priority data of each packet is the same, the relay device 10 selects the packet received from the information processing device 4 in round robin and transmits it to the relay device 7. Note that, at the third timing, the relay apparatus 10 waits as it is because the port of the transmission destination relay apparatus 7 is filled and a new packet cannot be transmitted.
  • the relay device 10 transmits the packet having the smallest priority data to the relay device 7, as shown in (T) of FIG. Also, as shown in FIG. 6 (U), at the fifth timing, the relay device 7 receives the packet with the smallest priority data, that is, the packet received from the relay device 10 at the fourth timing. Send to 2.
  • each relay device 7, 8, 10 forwards the packet as indicated by the solid line arrow in FIG. 6.
  • each of the relay devices 7, 8, 10 transfers the packet output from the information processing device 6 as indicated by the dotted arrow in FIG. 6.
  • the information processing apparatus 2 receives the packets transmitted by the information processing apparatuses 3 to 6 equally.
  • the information processing apparatus 2 determines that the packets output by the information processing apparatus 3 are halved when the relay apparatuses 7, 8, and 10 perform packet arbitration by the round robin method. Will be received. For this reason, the relay devices 7, 8, 10 cannot equalize the communication time between the information processing devices 2-6.
  • each relay device 7, 8, 10 arbitrates a packet to be transmitted according to priority data indicating the accumulation of the time that each packet waits for arbitration.
  • the relay apparatuses 7, 8, 10 can equalize the time required for communication between the information processing apparatuses 2-6 in the example shown in FIG.
  • each information processing device 7-6 The average time required for communication between can be expressed by “ ⁇ (1 / P) ⁇ T”. That is, the time required for communication between the information processing apparatuses 2 to 6 is the sum of “(1 / P) ⁇ T” in the relay apparatuses 7, 8, and 10 through which the packet passes.
  • each relay apparatus 7, 8, 10 selects a packet to be transmitted by the round robin method, the probability that each relay apparatus 7, 8, 10 is selected for each packet is 1 ⁇ 2.
  • the average time required for communication between the information processing device 2 and the information processing devices 5 and 6 is “(1 / 0.5) ⁇ T + (1 / 0.5) ⁇ T + (1 / 0.5)”.
  • ⁇ T 6T ”.
  • each relay device 7, 8, 10 decrements the priority data of each packet every predetermined time and transmits a packet including the least priority data
  • each relay device 7, 8, 10 The establishment of sending a packet is as follows.
  • the relay device 8 transmits the packet output from the information processing devices 5 and 6 with a probability of 1/2. Further, since the relay apparatus 10 preferentially transmits packets with a longer accumulation waiting time for arbitration, the packet output by the information processing apparatus 4 is transmitted with 1/3 establishment, and the packet output by the relay apparatus 8 is transmitted. Send with 2/3 establishment. Further, since the relay device 7 preferentially transmits a packet with a longer accumulation waiting time for arbitration, the packet output by the information processing device 3 is transmitted with the establishment of 1/4, and the packet output by the relay device 10 is transmitted. Send with 3/4 establishment.
  • the average time required for communication between the information processing device 2 and the information processing devices 5 and 6 is “(1 / 0.5) ⁇ T + (1 / 0.66) ⁇ T + (1 / 0.75)”.
  • ⁇ T 4.83T ”.
  • the relay devices 7, 8, and 10 can equalize the time required for communication between the information processing devices 2 to 6.
  • the relay apparatus 7 when the users of the information processing apparatuses 3 to 6 perform packet communication with the information processing apparatus 2 using packet communication that is charged according to the time required for communication, the relay apparatus 7 is used. , 8, 10 can make the amount charged to the users of the information processing apparatuses 3 to 6 fair.
  • the relay devices 7, 8, and 10 since the relay devices 7, 8, and 10 preferentially transmit packets that have a longer accumulated waiting time for arbitration, as a result of preventing packet timeout, information that has a long communication distance even when the communication system 1 is congested. Communication between processing devices can be performed smoothly.
  • FIG. 7 is a flowchart for explaining an example of a flow of processing executed by the relay device according to the first embodiment.
  • the flow of processing executed by the relay device 10 when a packet output using the port # 0 is received will be described.
  • the relay device 10 determines whether or not a new packet has been received by the port input unit 11 or the port input unit 13 (step S101). When it is determined that the packet has been received (Yes at Step S101), the relay device 10 sets the priority data of the newly received packet in the subtracter (Step S102).
  • the relay device 10 determines whether or not the valid output from the valid output unit 15a of the port output unit 15 is “on” (step S104). When the relay device 10 determines that the valid output from the valid output unit 15a of the port output unit 15 is “off” (No at Step S104), the relay device 10 performs the following processing.
  • the relay device 10 compares the priority data set in the subtraction units 12 and 14, and selects the packet data having the smallest value of the priority data (step S105). Next, the relay device 10 updates the priority data of the selected packet data to the priority data set in the subtracter (step S106). Then, the relay device 10 sets “on” in the valid output unit 15a, and transmits the packet with the updated priority data to the relay device 7 (step S107).
  • the relay device 10 determines whether or not a predetermined time has elapsed since the priority data was updated (step S104). S108).
  • the relay device 10 determines that a certain time has elapsed since the priority order data was updated (Yes in step S108)
  • the relay device 10 decrements the value held by the subtracting units 12 and 14 associated with each port by one. (Step S109). Note that if the relay apparatus 10 determines that a certain time has elapsed since the priority order data was updated (No at Step S108), the relay apparatus 10 skips the process at Step S109.
  • the relay device 10 determines whether or not the output of the packet has ended (step S110). If the output of the packet has ended (Yes in step S110), the valid bit of the valid output unit 15a is set to “off”. (Step S111). Thereafter, the relay device 10 determines again whether a new packet has been received by the port input unit 11 or the port input unit 13 (step S101). If the packet output has not ended (No at Step S110), the relay device 10 skips the process at Step S111 and has received a new packet at the port input unit 11 or the port input unit 13 again. It is determined whether or not (step S101).
  • step S101 determines whether there is a packet in the port input unit 11 or the port input unit 13 (No in step S101), whether there is a packet in the port input unit 11 or the port input unit 13 It is determined whether or not (step S103). When there is a packet in the port input unit 11 or the port input unit 13 (Yes in step S103), the relay device 10 determines whether or not the valid output from the valid output unit 15a of the port output unit 15 is “on”. Is determined (step S104).
  • the relay device 10 again determines whether or not a new packet has been received by the port input unit 11 or the port input unit 13. It discriminate
  • FIG. 8 is a flowchart illustrating the flow of processing executed when the information processing apparatus and the relay apparatus according to the first embodiment receive a packet.
  • the information processing apparatus 4 sets priority order data for the packet (step S201), and transmits the packet to the relay apparatus 10 (step S202).
  • the port # 1 receives the packet (step S203).
  • the relay device 10 extracts priority order data from the received packet and sets it in the subtraction unit 12 (step S204).
  • the subtraction unit 12 notifies the priority order data to the arbitration unit 21 (step S205).
  • the arbitrating unit 21 confirms the in-use status of the port output unit 15 (step S206), and determines whether or not the port # 0 is in use (step S207).
  • the arbitration unit 21 determines that the port # 0 is not in use (No at Step S207)
  • the arbitration unit 21 returns Acknowledge to the subtraction unit 12 or 14 having the smaller priority order data (Step S208).
  • the input unit of the port that has returned Acknowledge outputs the packet to the priority determining unit 20 (step S209).
  • the output control unit 26 included in the priority order determination unit 20 rewrites the packet priority data to the priority data of the subtraction unit and outputs it to the port output unit 15 (step S210). And the port output part 15 outputs a packet to the relay apparatus 7 (step S211). At this time, the port output unit 15 sets the busy status to busy (step S212). That is, the port output unit 15 sets “on” in the valid output unit 15a.
  • the transmission destination is the information processing apparatus (Yes at Step S213)
  • the information processing apparatus as the transmission destination receives the packet (Step S214), and the processing is ended.
  • the transmission destination is a relay device (No at Step S213)
  • the transmission destination relay device executes the process of Step S203.
  • Step S207 the relay device 10 checks the elapsed time (Step S215), and determines whether or not a certain time has elapsed since the priority data was updated. Is discriminated (step S216). And when fixed time passes (step S216 affirmation), the relay apparatus 10 decrements the priority order data of each subtraction part 12 and 14 (step S217).
  • the relay device 10 skips the process of step S217 if the predetermined time has not elapsed (No at step S216).
  • the port output unit 15 sets the in-use status to “unused” when a new packet can be transmitted, and sets the in-use status to “in use” otherwise (step S218). That is, the port output unit 15 sets “off” in the valid output unit 15a when the packet can be transmitted, and sets “on” in the valid output unit 15a when the packet cannot be transmitted.
  • the arbitrating unit 21 confirms the busy status of the port output unit 15 (step S206).
  • the relay device 10 has a plurality of ports that receive packets including priority order data indicating the accumulated time for waiting for arbitration. Further, the relay device 10 updates the priority order data stored in the received packet every predetermined time. Then, the relay device 10 selects a packet to be transmitted according to the comparison result of the priority order data of the received packet, and transmits the selected packet.
  • the relay apparatus 10 can equalize the time required for communication between the information processing apparatuses 2 to 6.
  • the relay device 10 equalizes the time when the packet storing the response arrives at the transmission destination even when data transmission / reception and response transmission / reception are executed in the communication between the information processing devices 2 to 6. Can be.
  • the relay device 10 decrements the priority order data stored in the received packet every predetermined time. And the relay apparatus 10 selects as a packet which transmits the packet with the smallest priority data among the received packets. Therefore, the relay device 10 can easily determine the time until the packet to be transmitted times out.
  • the relay device 10 when there are a plurality of packets having the smallest priority data, that is, when the values of the plurality of priority data are the same and this value is the smallest value, the relay device 10 performs the following processing. Execute. That is, the relay device 10 selects a packet to be transmitted from the packets with the lowest priority data by the round robin method. For this reason, the relay apparatus 10 can relay a packet appropriately, without deadlocking.
  • the relay device 10 when the packet priority data falls below a predetermined threshold, the relay device 10 notifies the information processing device that is the packet transmission source of a timeout. Therefore, the relay device 10 can quickly notify the information processing devices 2 to 6 of the timeout.
  • the relay device 10 described above decrements the priority data of each packet at a predetermined time interval, and selects the packet having the smallest value of the priority data as a packet to be transmitted.
  • the embodiment is not limited to this.
  • the relay device 10 may increment the priority data of each packet at a predetermined time interval and transmit a packet having the highest priority data value. Also, when executing such processing, the relay device 10 determines a packet whose priority data value is greater than a predetermined threshold value, and times out the information processing device that is the transmission source of the determined packet. Will be sent.
  • the relay device 10 when the relay device 10 increments the priority order data and transmits a packet having the highest priority order data value, the relay device 10 easily identifies the accumulation of time that each packet waits for arbitration. can do. In addition, when updating the value of the priority order data, the relay device 10 may update the priority order data not only by incrementing or decrementing but also using an arbitrary mathematical expression.
  • Each packet described above has priority data in the header.
  • the embodiment is not limited to this, and the priority order data may be provided at an arbitrary position other than the header.
  • Each of the information processing apparatuses 2 to 6 described above transmits a packet storing the same value as priority order data of a packet to be transmitted.
  • the embodiment is not limited to this.
  • the information processing apparatuses 2 to 6 can preferentially transmit packets with higher priority than other packets by storing low priority data in advance.
  • the priority data of the packet may be determined by an OS (Operating System) executed by each of the information processing apparatuses 2 to 6 and is arbitrarily set by a function or apparatus existing below the OS. Also good. Further, each of the information processing apparatuses 2 to 6 may set priority order data having a value corresponding to the degree of congestion of the communication system 1.
  • OS Operating System
  • the relay devices 7, 8, and 10 described above are not only for communication using TCP (Transmission Control Protocol) / IP (Internet Protocol) but also for example between devices such as PCIe (Peripheral Components Interconnect bus Express) It can also be applied to connections. That is, the relay apparatuses 7, 8, and 10 can be applied to a system that performs communication using any method as long as priority data can be stored in a packet.
  • TCP Transmission Control Protocol
  • IP Internet Protocol
  • PCIe Peripheral Components Interconnect bus Express

Landscapes

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

Abstract

 中継装置(10)は、パケットを情報処理装置(4)、または、中継装置(8)から受信する。また、中継装置(10)は、受信したパケットに含まれる調停待ちの累積時間を示す優先順位データの値を時間の経過に応じて更新する。そして、中継装置(10)は、受信した各パケットに含まれる優先順位データの値の比較結果に応じて、送信するパケットを選択する。そして、中継装置(10)は、選択したパケットを中継装置(7)へ送信する。

Description

中継装置および中継方法
 本発明は、中継装置および中継方法に関する。
 従来、複数のデータを受信すると、各データを送信する優先順位を決定し、優先順位が高いデータから順に転送する中継装置の技術が知られている。このような中継装置の一例として、同一のポートから送信する複数のデータを受信すると、各データをラウンドロビン方式で選択し、選択した順にデータを送信する中継装置が知られている。
 以下、このような中継装置を複数有するネットワークの一例について説明する。図9は、複数の中継装置がデータの中継を行うネットワークを説明するための図である。例えば、図9に例示するネットワークは、3つの中継装置#1~#3と5つの情報処理装置#1~#5を有する。
 なお、図9に例示するネットワークでは、中継装置#1~#3が順に接続され、中継装置#1に情報処理装置#1と情報処理装置#2とが接続される。また、図9に例示するネットワークでは、中継装置#2に情報処理装置#3が接続され、中継装置#3に情報処理装置#4と情報処理装置#5とが接続される。
 次に、中継装置が実行する調停処理について説明する。図10は、中継装置の一例を説明するための図である。図10に示す例では、中継装置#2は、ポート入力部30、ポート入力部31、優先順位決定部32、ポート出力部33を有する。ポート入力部30は、情報処理装置#3と接続されたポート#1の入力部であり、情報処理装置#3からデータを受信する。また、ポート入力部31は、中継装置#3と接続されたポート#2の入力部であり、中継装置#3からデータを受信する。
 優先順位決定部32は、ポート入力部30およびポート入力部31が中継装置#1に送信するデータを受信した場合には、ラウンドロビン方式でポート#1又はポート#2を選択し、選択したポートの入力部が受信したデータをポート出力部に出力する。また、ポート出力部33は、中継装置#1が接続されたポート#0の出力部であり、優先順位決定部32から取得したデータを中継装置#1に送信する。
 このようなネットワークにおいて、各中継装置#1~#3は、同一のポートを用いて送信するデータを受信すると、ラウンドロビン方式で送信するデータを選択し、選択した順にデータを送信する処理をそれぞれ独立して実行する。例えば、中継装置#3は、情報処理装置#4と情報処理装置#5とから、情報処理装置#1を宛先とするデータを受信する。このような場合には、中継装置#3は、同一のポートを用いて各データを送信するため、受信したデータの調停を行い、調停に勝ったデータを中継装置#2へ送信する。
 同様に、中継装置#2は、情報処理装置#3と中継装置#3とから、情報処理装置#1を宛先とするデータを受信すると、受信したデータの調停を行い、調停に勝ったデータを中継装置#1へ送信する。同様に、中継装置#1は、情報処理装置#2と中継装置#2とから、情報処理装置#1を宛先とするデータを受信すると、受信したデータの調停を行い、調停に勝ったデータを情報処理装置#1へ送信する。
 また、各情報処理装置#1~#5は、データを往復させる通信を行う場合がある。例えば、図11は、情報処理装置間のデータの送受信を説明するための図である。なお、図11に示す例では、情報処理装置#5が情報処理装置#1を宛先としてデータを送信し、情報処理装置#1が情報処理装置#5に応答を送信する。
 例えば、情報処理装置#5は、転送データを情報処理装置#1に対して送信する。すると、データは、3つの中継装置#1~#3を介して、情報処理装置#1に転送される。そして、情報処理装置#1は、データを受信した場合には、応答を情報処理装置#5に対して送信する。すると、情報処理装置#1が送信した応答は、3つの中継装置#1~#3を介して、情報処理装置#5に転送される。
特開平07-219891号公報 特開2002-055944号公報
 しかし、上述したラウンドロビン方式でデータの調停を行う技術では、各中継装置がデータを送信する順序をそれぞれ独立して決定するので、各情報処理装置間の通信を中継する中継装置の数に応じて、各情報処理装置間の通信時間が変化する。この結果、各情報処理装置間の通信時間が不均衡になるという問題がある。
 例えば、情報処理装置#2は、1つの中継装置#1を介して、情報処理装置#1にデータを送信するので、1回の調停待ちが発生する。しかし、情報処理装置#5は、3つの中継装置#1~#3を介して、情報処理装置#1にデータを送信するので、3回の調停待ちが発生する。このため、情報処理装置#1と情報処理装置#2とが通信を行う場合と、情報処理装置#1と情報処理装置#5とが通信を行う場合とでは、データの送信と応答との送受信に要する時間が均等にならない。
 1つの側面では、本発明は、各情報処理装置間の通信時間の均等化を図ることを目的とする。
 1つの側面では、データを受信する中継装置である。このような中継装置は、受信したデータに含まれる調停待ちの累積時間を示す値を、時間の経過に応じて更新する。そして、中継装置は、受信した各データに含まれる調停待ちの累積時間を示す値の比較し、比較した結果に応じて、送信するデータを選択する。そして、中継装置は、選択したデータを他の装置へ送信する。
 1実施形態によれば、各情報処理装置間の通信時間の均等化を図ることができる。
図1は、実施例1に係る通信システムを説明するための図である。 図2Aは、実施例1に係る情報処理装置が送信するパケットの一例を説明するための図である。 図2Bは、ヘッダの一例を説明するための図である。 図2Cは、ペイロードの一例を説明するための図である。 図3は、実施例1に係る中継装置の機能構成を説明するための図である。 図4は、優先順位データを更新する処理の一例を説明するための図である。 図5は、パケットを送信する処理の一例を説明するための図である。 図6は、通信にかかる時間の一例を説明するための図である。 図7は、実施例1に係る中継装置が実行する処理の流れの一例を説明するためのフローチャートである。 図8は、実施例1に係る情報処理装置と中継装置がパケットを受信した際に実行する処理の流れを説明するフローチャートである。 図9は、複数の中継装置がデータの中継を行うネットワークを説明するための図である。 図10は、中継装置の一例を説明するための図である。 図11は、情報処理装置間のデータの送受信を説明するための図である。
 以下に添付図面を参照して本願に係る中継装置および中継方法について説明する。
 以下の実施例1では、図1を用いて、中継装置を有する通信システムの一例を説明する。図1は、実施例1に係る通信システムを説明するための図である。図1に示す例では、通信システム1は、複数の情報処理装置2~6と、複数の中継装置7、8、10を有する。
 また、図1に示す例では、中継装置7は、中継装置10と接続されており、中継装置10は、中継装置8と接続されている。また、中継装置7には、情報処理装置2、3が接続されており、中継装置10には、情報処理装置4が接続されており、中継装置8には、情報処理装置5、6が接続されている。
 このような通信システム1においては、各情報処理装置2~6は、中継装置7、8、10を介して、データの送受信を行う。すなわち、情報処理装置2と情報処理装置3とは、中継装置7を介してデータの送受信を行い、情報処理装置2と情報処理装置4とは、中継装置7、10を介してデータの送受信を行う。また、情報処理装置2と情報処理装置5、又は、情報処理装置2と情報処理装置6とは、中継装置7、8、10を介してデータの送受信を行う。
 なお、以下の説明においては、各情報処理装置2~6は、データを格納したパケットを送受信するものとする。また、以下の説明においては、各情報処理装置3~6から情報処理装置2に対して、パケットが送信される例、すなわち、各情報処理装置3~6と情報処理装置2とがデータの送受信を行う例について説明する。また、以下の説明においては、中継装置7、8は、中継装置10と同様の機能を発揮するものとして、説明を省略する。
 各情報処理装置2~6は、データの他の情報処理装置へ送信する場合には、送信先となる情報処理装置のIP(Internet Protocol)アドレスと、送信するデータと、送信するデータの優先順位を示す優先順位データとを含むパケットを生成する。そして、各情報処理装置2~6は、自身と接続する中継装置に対して、生成したパケットを送信する。
 ここで、図2A~2Cを用いて、各情報処理装置2~6が送信するパケットの一例について説明する。図2Aは、実施例1に係る情報処理装置が送信するパケットの一例を説明するための図である。また、図2Bは、ヘッダの一例を説明するための図である。図2Cは、ペイロードの一例を説明するための図である。
 図2Aに示すように、各情報処理装置2~6は、ヘッダとペイロードとを有するパケットを送信する。ここで、パケットのヘッダには、図2Bに示すように、優先順位データと宛先アドレスとペイロード長とが格納される。ここで、優先順位データとは、パケットを送信する優先順位を示す情報である。
 例えば、各情報処理装置2~6は、あらかじめ設定された任意の数値を優先順位データとしてパケットに格納する。また、後述するように、各中継装置7、8、10は、所定の時間おきに、優先順位データをデクリメントする。このため、優先順位データとは、パケットが中継装置2、8、10において調停を待った時間の累積を示すこととなる。
 また、後述するように、各中継装置7、8、10は、優先順位データが「0」になると、タイムアウトが発生したと判別する。このため、各情報処理装置2~6は、優先順位データとして、タイムアウトが発生するまでの時間を格納する。
 また、宛先アドレスとは、パケットの宛先となる情報処理装置のIPアドレスである。ペイロード長とは、パケットのペイロードの容量を示す情報である。また、図2Cに示すように、パケットのペイロードには、送信元なる情報処理装置の送信元PC(Personal Computer)番号、データ通し番号、データが格納される。ここで、送信元PC番号とは、パケットを生成した情報処理装置を一意に示す番号であり、データ通し番号とは、パケットに格納されたデータがいくつ目のデータであるかを示す情報である。
 次に、図3を用いて、中継装置10の一例について説明する。図3は、実施例1に係る中継装置の機能構成を説明するための図である。なお、図3は、中継装置10が有する複数のポート#0~#2のうち、ポート#1、#2における入力ポートと、ポート#0における出力ポートの機能を示したものである。すなわち、中継装置10は、各ポート#0~#2ごとに、各ポート#0~#2を出力先とした図3と同様の機能構成を有するものとする。
 例えば、図3に示す例では、中継装置10は、ポート入力部11、減算部12、ポート入力部13、減算部14、ポート出力部15、優先順位決定部20を有する。ここで、ポート入力部11は、情報処理装置4と接続されたポート#1の入力部であり、ポート入力部13は、中継装置8と接続されたポート#2の入力部である。また、ポート#0出力部は、中継装置7と接続されたポートの出力部である。
 また、減算部12は、ポート#1と対応付けられており、減算部14は、ポート#2と対応付けられている。また、図3に示す例では、ポート入力部11は、バリッド出力部11aを有する。ポート入力部13も同様に、バリッド出力部13aを有し、ポート出力部15は、バリッド出力部15a、出力バッファ15bを有する。また、優先順位決定部20は、調停部21、出力制御部26、セレクタ25を有する。また、調停部21は、タイマ部22、比較部23、決定部24を有する。また、出力制御部26は、優先順位データ書換部28、パケット組み立て部27を有する。なお、図3では省略したが、中継装置10は、ポート#0~#2以外にも複数のポートを有し、各ポートに入力部と、対応付けられた減算部を有するものとする。
 以下、中継装置10が実行する処理について説明する。なお、ポート入力部13は、ポート入力部11と同様の処理を実行するものとして、説明を省略する。また、減算部14は、減算部12と同様の処理を実行するものとして、説明を省略する。
 ポート入力部11は、情報処理装置4と接続されたポート#1の入力部であり、情報処理装置4が送信したパケットを受信する。また、ポート入力部11は、パケットを受信した場合には、受信したパケットを保持するとともに、パケットを保持した旨を示すバリッドビット「on」をバリッド出力部11aにセットする。
 また、ポート入力部11は、パケットの優先順位データの値を取得し、取得した優先順位データの値を減算部12に出力する。また、ポート入力部11は、決定部24からAcknowledgeを取得した場合には、保持したパケットを優先順位決定部20のセレクタ25に出力する。また、ポート入力部11は、パケットを出力した場合には、バリッド出力部11aにセットしたバリッドビットをクリアするとともに、減算部12が保持する値をクリアする。
 バリッド出力部11aは、ポート入力部11によってバリッドビットがセットされた場合には、パケットを受信した旨を示す信号を決定部24に出力する。つまり、バリッド出力部11aは、バリッドビッド「on」がセットされると、「on」を示す信号を決定部24に出力し、バリッドビットがクリアされると、「off」を示す信号を出力する。
 減算部12は、所定の時間おきに、ポート#1が受信したパケットの優先順位データを更新する。具体的には、減算部12は、ポート入力部11から、ポート#1が受信したパケットの優先順位データを取得する。このような場合には、減算部12は、取得した優先順位データの値を保持するとともに、比較部23とセレクタ25に対して保持したデータの値を出力する。また、減算部12は、タイマ部22から更新を指示する信号を受信した場合には、保持した値を1デクリメントする。そして、減算部12は、新たな値を比較部23に出力する。
 なお、図3に示す例では、図面が煩雑になるのを防ぐため、減算部12とセレクタ25との接続を示す線については省略する。
 ポート出力部15は、中継装置7と接続されたポート#0の出力部であり、出力制御部26から送信するパケットを受信した場合には、受信したパケットを出力バッファ15bに保持する。また、ポート出力部15は、パケットを保持した場合には、バリッド出力部15aにバリッドビットをセットする。
 そして、ポート出力部15は、出力バッファ15bに保持させたパケットを中継装置7に送信する。また、ポート出力部15は、パケットを中継装置7に送信した場合には、バリッド出力部15aにセットしたバリッドビットをクリアする。
 なお、バリッド出力部15aは、他のバリッド出力部11aと同様に、バリッドビットがセットされると「on」を示す信号を決定部24に出力し、バリッドビットがクリアされると「off」を示す信号を決定部24に出力する。
 次に、優先順位決定部20が実行する処理について説明する。調停部21は、各ポートが同時期にパケットを受信した場合には、受信したパケットの調停を行う。タイマ部22は、所定の時間間隔で、減算部12、14に更新を指示する信号を送信する。なお、タイマ部22は、図3において記載を省略した中継装置10が有するポートと対応付けられた全ての減算部に対して更新を指示する信号を送信する。
 比較部23は、各ポートが受信したパケットが含む優先順位データを比較する。そして、比較部23は、比較結果を決定部24に出力する。具体的には、比較部23は、各ポートと対応付けられた減算部から、優先順位データを取得する。そして、比較部23は、取得した優先順位データを比較し、最も少ない値の優先順位データを識別し、識別した優先順位データを含むパケットを受信したポートを判別する。
 その後、比較部23は、判別したポートを決定部24に通知する。なお、比較部23は、最も少ない値の優先順位データが複数存在する場合は、優先順位データが最も少ない値であるパケットを受信した複数のポートを決定部24に通知する。
 決定部24は、各ポートの入力部が有するバリッド出力部11a、13aからパケットを受信した旨を示す信号を取得する。また、決定部24は、各ポートが受信したパケットが含む優先順位データの比較結果を比較部23から取得する。また、決定部24は、ポート出力部15が有するバリッド出力部15aの出力が「on」であるか「off」であるかを判別する。すなわち、決定部24は、ポート出力部15がパケットを送信しているか否かを判別する。
 そして、決定部24は、ポート出力部15が有するバリッド出力部15aの出力が「off」であると判別した場合、すなわち、ポート出力部15がパケットの送信を行っていない場合には、以下の処理を実行する。すなわち、決定部24は、パケットを受信した旨を示す信号を出力するポートのうち、比較部23から比較結果として通知されたポートの受信部に対してAcknowledgeを出力する。また、決定部24は、Acknowledgeを出力したポートをセレクタ25に通知する。
 また、決定部24は、複数のポートを通知されていた場合には、以下の処理を実行する。すなわち、決定部24は、バリッドビットが「on」であるポートであって、かつ、比較部23から通知されたポートから、1つのポートをラウンドロビン方式で選択する。そして、決定部24は、選択したポートの受信部に対してAcknowledgeを出力するとともに、選択したポートをセレクタ25に通知する。
 セレクタ25は、中継装置10が有する各ポートのうち、決定部24から通知されたポートが受信したパケットを出力制御部26に伝送する。また、セレクタ25は、決定部24から通知されたポートと対応する減算部が出力する値、すなわち、優先順位データの値を出力制御部26に出力する。例えば、セレクタ25は、決定部24からポート#1を通知された場合には、ポート入力部11が出力するパケットを出力制御部26に伝送するとともに、ポート#1と対応付けられた減算部12が出力する優先順位データを出力制御部26に伝送する。
 パケット組み立て部27は、セレクタ25を介してポート入力部11またはポート入力部13からパケットを受信すると、受信したパケットを保持する。そして、パケット組み立て部27は、保持したパケットの優先順位データを優先順位データ書換部28が更新した場合には、パケットをポート出力部15に出力する。
 優先順位データ書換部28は、セレクタを介して、中継装置10が有する全てのポートと対応付けられた減算部12、14から優先順位データを取得する。すなわち、優先順位データ書換部28は、パケット組み立て部27が受信したパケットが中継装置10における調停処理の間、待機した時間が反映された優先順位データを取得する。そして、優先順位データ書換部28は、パケット組み立て部27が保持するパケットの優先順位データを取得した優先順位データの値に更新する。
 例えば、ポート入力部11、バリッド出力部11a、減算部12、ポート入力部13、バリッド出力部13a、減算部14、ポート出力部15、バリッド出力部15a、出力バッファ15bとは、電子回路である。また、優先順位決定部20、調停部21、タイマ部22、比較部23、決定部24、セレクタ25、出力制御部26、パケット組み立て部27、優先順位データ書換部28とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
 次に、図4を用いて、中継装置10がパケットの優先順位データを更新する処理の具体例について説明する。図4は、優先順位データを更新する処理の一例を説明するための図である。なお、以下の説明においては、ポート#1が受信したパケットを送信する例について説明する。
 例えば、図4に示す例では、減算部12は、データの入力端子としてData1、Data2を有するカウンタ回路を有する。このカウンタ回路は、バリッド出力部11aの出力が「off」、すなわち、バリッド出力部11aにバリッドがセットされていない場合は、Data1端子から入力された値をQ端子から出力する。
 また、カウンタ回路は、バリッド出力部11aの出力が「off」から「on」に変化した場合は、Data2端子から入力された値をQ端子から出力する。また、カウンタ回路は、タイマ部22と接続されたT端子に信号が入力されると、入力された値を1デクリメントして、Q端子から出力する。
 以下、減算部14がこのようなカウンタ回路を有する例について説明する。例えば、ポート入力部11は、図4中(A)に示すように、情報処理装置4からパケットを受信する。すると、ポート入力部11は、図4中(B)に示すように、カウンタ回路のData2端子に優先順位データの値を出力するとともに、バリッド出力部11aにバリッドビッドをセットする。
 すると、図4中(C)に示すように、バリッド出力部11aの出力が「off」から「on」へと変化するので、減算部12のカウンタ回路は、Data2端子の入力、すなわち、ポート入力部11が受信した優先順位データの値を取得する。そして、減算部12のカウンタ回路は、図4中(D)に示すように、取得した値を比較部23とセレクタ25とに出力する。また、減算部12のカウンタ回路は、図4中(E)に示すように、出力をData1端子にも出力する。すなわち、減算部12のカウンタ回路は、優先順位データの値を保持することとなる。
 ここで、減算部12のカウンタ回路は、図4中(F)に示すように、所定の時間おきに、タイマ部22から信号を受信する。このため、減算部12のカウンタ回路は、所定の時間おきに、保持した値を1デクリメントした値を出力する。ここで、Q端子の出力は、Data1端子にも伝送されるので、カウンタ回路は、デクリメント後の値を保持することとなる。このように、減算部12は、ポート入力部11が受信したパケットが調停待ちした時間を優先順位データに反映させる。
 また、比較部23は、各ポートと対応付けられた減算部12、14から取得した優先順位データの値を比較し、最も少ない値を通知した減算部と対応付けられたポートを識別し、図4中(G)に示すように、識別したポートを決定部24に通知する。例えば、比較部23は、減算部12から通知された値が「3」であり、減算部14から通知された値が「5」である場合には、減算部12と対応付けられたポート#1を決定部24に通知する。
 決定部24は、バリッド出力部15aの出力が「off」であり、かつ、比較部23からポートの通知を取得すると、図4中(H)に示すように、通知されたポート#1のポート入力部11にAcknowledgeを出力する。また、決定部24は、図4中(I)に示すように、セレクタ25にポート#1を通知する。
 すると、ポート入力部11は、図4中(J)に示すように、受信したパケットをセレクタ25に出力する。ここで、セレクタ25は、決定部24からポート#1の通知を受付けているため、図4中(K)に示すように、ポート入力部11が出力したパケットを出力制御部26に出力する。また、セレクタ25は、ポート#1と対応付けられた減算部12が出力した値、すなわち、中継装置10において調停待ちした時間が反映された優先順位データを出力制御部26に出力する。
 なお、中継装置10は、減算部12が優先順位データの値をデクリメントした結果「0」となった場合や、優先順位データの値が所定の閾値以下となった場合、優先順位データの値がカウンタアンダーフローとなった場合等は、以下の処理を実行する。すなわち、中継装置10は、減算部12と対応付けられたポート#1が受信したパケットがタイムアウトした旨を示す信号やパケットを、ポート#1からパケットの送信元へ送信する。なお、中継装置10がタイムアウトした旨を示す信号やパケットを送信する処理は、従来技術と同様の処理を実行するものとして、詳細な説明を省略する。
 次に、図5を用いて、新たな優先順位データを格納したパケットを送信する処理の具体例について説明する。図5は、パケットを送信する処理の一例を説明するための図である。例えば、決定部24は、図5中(L)に示すように、バリッド出力部15aの出力が「off」となった場合は、図5中(M)に示すように、セレクタ25にポート#1を通知する。
 このような場合には、図5中(N)で示すように、セレクタ25は、ポート#1のポート入力部11が出力したパケットを、出力制御部26のパケット組み立て部27に伝送する。また、セレクタ25は、ポート#1と対応付けられた減算部12の出力、すなわち、パケットが中継装置10において調停待ちした時間が反映された優先順位データを優先順位データ書換部28に伝送する。
 このような場合には、優先順位データ書換部28は、図5中(O)に示すように、パケット組み立て部27が保持したパケットの優先順位データを減算部12から取得した優先順位データに書換える。その後、パケット組み立て部27は、図5中(P)に示すように、パケットをポート出力部15の出力バッファ15bに出力する。
 次に、図6を用いて、各情報処理装置2~6の通信にかかる時間の一例について説明する。なお、図6に示す例では、各情報処理装置3~6が、情報処理装置2を宛先とするパケットを送信し続ける例について説明する。
 図6は、通信にかかる時間の一例を説明するための図である。なお、図6に示す例では、各情報処理装置2~6をPC2~6と記載し、各中継装置7、8、10をSW(Switch)7、8、10と記載した。また、図6に示す例では、各中継装置7、8、10が実行するタイミングを横方向にとり、縦方向に各中継装置7、8、10が取得するパケットを記載した。
 具体的には、図6に示す例では、上方向から、中継装置8が情報処理装置5、6から受信するパケット、中継装置10が情報処理装置4と中継装置8から受信するパケットを記載した。続いて、中継装置7が情報処理装置3と中継装置10から受信するパケット、情報処理装置2が受信するパケットを記載した。
 また、図6に示す例では、各パケットが含む優先順位データ、パケットの宛先、ペイロード長、パケットを出力した情報処理装置、各情報処理装置が出力したパケットの通し番号を記載した。なお、図6に示す例では、各情報処理装置3~6は、優先順位データを「10」とし、各パケットのペイロードを「2」としたパケットを送信するものとする。また、各中継装置7、8、10は、各タイミングにおいて、優先順位データを1デクリメントするものとする。
 例えば、最初のタイミングにおいては、中継装置8は、情報処理装置5、6からパケットを受信する。すると、中継装置8は、受信したパケットの優先順位データが「10」で同一であるため、図6中(Q)に示すように、情報処理装置5から受信したパケットをラウンドロビン方式で選択し、図6中の矢印で示すように選択したパケットを中継装置10に送信する。
 また、図6中(R)に示すように、中継装置8は、情報処理装置6から受信したパケットの優先順位データを1デクリメントし「9」とする。また、2番目のタイミングにおいて、中継装置8は、パケットの送信先となる中継装置10のポートが埋まっているため、パケットの送信を行わずに待機する。
 また、図6中(S)に示すように、中継装置10は、中継装置8から送信されたパケットを受信する。また、中継装置10は、情報処理装置4からパケットを受信する。このような場合には、各パケットの優先順位データが同一であるため、中継装置10は、情報処理装置4から受信したパケットをラウンドロビンで選択し、中継装置7に送信する。なお、中継装置10は、3番目のタイミングにおいて、送信先の中継装置7のポートが埋まっており、新たなパケットを送信できないため、そのまま待機する。
 また、4番目のタイミングにおいて、中継装置8のポートが空くため、中継装置10は、図6中(T)に示すように、優先順位データがより最も小さいパケットを中継装置7へ送信する。また、図6中(U)に示すように、5番目のタイミングにおいて、中継装置7は、優先順位データが最も小さいパケット、すなわち、4番目のタイミングにおいて中継装置10から受信したパケットを情報処理装置2へと送信する。
 つまり、図6に示す例では、各中継装置7、8、10は、図6中の実線矢印で示すように、パケットをそれぞれ転送する。この結果、例えば、各中継装置7、8、10は、図6中の点線矢印で示すように、情報処理装置6が出力したパケットを転送することとなる。ここで、図6中(V)に示すように、情報処理装置2は、各情報処理装置3~6が送信したパケットを均等に受信することとなる。
 すなわち、情報処理装置2は、各中継装置7、8、10がそれぞれ独立してラウンドロビン方式でパケットの調停を行った場合には、情報処理装置3が出力したパケットを1/2の割合で受信することとなる。このため、各中継装置7、8、10は、各情報処理装置2~6間の通信時間を均等にできない。
 しかし、図6に示すように、各中継装置7、8、10は、各パケットが調停待ちした時間の累積を示す優先順位データに応じて、送信するパケットの調停を行う。この結果、各中継装置7、8、10は、図6中に示す例では、各情報処理装置2~6間の通信に要する時間を均等にできる。
 以下、中継装置7、8、10が、各情報処理装置2~6間の通信に要する時間を均等にできる点について、具体例を用いて説明する。例えば、各中継装置7、8、10をパケットが通過するのに要する時間をTとし、各中継装置7、8、10でパケット調停に勝利する確立をPとすると、各情報処理装置2~6の間の通信に要する平均時間は、「Σ(1/P)×T」で示すことができる。つまり、各情報処理装置2~6の間の通信に要する時間は、パケットが通過する各中継装置7、8、10における「(1/P)×T」の総和となる。
 また、各中継装置7、8、10がラウンドロビン方式で送信するパケットを選択する場合には、各中継装置7、8、10において各パケットが選択される確立は、1/2となる。この結果、情報処理装置2と情報処理装置3との間の通信に要する平均時間は、「(1/0.5)×T=2T」となる。
 また、情報処理装置2と情報処理装置4との間の通信に要する平均時間は、「(1/0.5)×T+(1/0.5)×T=4T」となる。また、情報処理装置2と情報処理装置5、6との間の通信に要する平均時間は、「(1/0.5)×T+(1/0.5)×T+(1/0.5)×T=6T」となる。
 一方、各中継装置7、8、10が各パケットの優先順位データを所定の時間おきにデクリメントするとともに、最も少ない優先順位データを含むパケットを送信する場合には、各中継装置7、8、10がパケットを送信する確立は以下のようになる。
 すなわち、中継装置8は、情報処理装置5、6が出力したパケットを1/2の確立で送信する。また、中継装置10は、調停待ちの累積時間が長いパケットほど、優先して送信するので、情報処理装置4が出力したパケットを1/3の確立で送信し、中継装置8が出力したパケットを2/3の確立で送信する。また、中継装置7は、調停待ちの累積時間が長いパケットほど、優先して送信するので、情報処理装置3が出力したパケットを1/4の確立で送信し、中継装置10が出力したパケットを3/4の確立で送信する。
 この結果、情報処理装置2と情報処理装置3との間の通信に要する平均時間は、「(1/0.25)×T=4T」となる。また、情報処理装置2と情報処理装置4との間の通信に要する平均時間は、「(1/0.33)×T+(1/0.75)×T=4.33T」となる。また、情報処理装置2と情報処理装置5、6との間の通信に要する平均時間は、「(1/0.5)×T+(1/0.66)×T+(1/0.75)×T=4.83T」となる。このように、中継装置7、8、10は、各情報処理装置2~6間の通信に要する時間を均等にすることができる。
 このため、例えば、各情報処理装置3~6の利用者が、通信に要した時間に応じて課金されるパケット通信を用いて、情報処理装置2とパケット通信を行う際にも、中継装置7、8、10は、各情報処理装置3~6の利用者への課金額を公平にできる。また、中継装置7、8、10は、調停待ちの累積時間が長いパケットほど、優先して送信するので、パケットのタイムアウトを防ぐ結果、通信システム1が混雑した場合にも、通信距離が遠い情報処理装置間の通信を円滑に行なえる。
 次に図7を用いて、中継装置10が実行する処理の流れについて説明する。図7は、実施例1に係る中継装置が実行する処理の流れの一例を説明するためのフローチャートである。なお、図7に示す例では、ポート#0を用いて出力するパケットを受信した際に、中継装置10が実行する処理の流れについて説明する。
 例えば、中継装置10は、ポート入力部11またはポート入力部13に新たなパケットを受信したか否かを判別する(ステップS101)。そして、中継装置10は、パケットを受信したと判別した場合には(ステップS101肯定)、新たに受信したパケットの優先順位データを減算器にセットする(ステップS102)。
 次に、中継装置10は、ポート出力部15のバリッド出力部15aが出力するバリッドが「on」であるか否かを判別する(ステップS104)。そして、中継装置10は、ポート出力部15のバリッド出力部15aが出力するバリッドが「off」であると判別した場合は(ステップS104否定)、以下の処理を実行する。
 すなわち、中継装置10は、減算部12、14にセットされた優先順位データを比較し、優先順位データの値が最も少ないパケットデータを選択する(ステップS105)。次に、中継装置10は、選択したパケットデータの優先順位データを、減算器にセットされた優先順位データに更新する(ステップS106)。そして、中継装置10は、バリッド出力部15aに「on」をセットし、優先順位データを更新したパケットを中継装置7に送信する(ステップS107)。
 一方、中継装置10は、バリッド出力部15aの出力が「on」であると判別した場合(ステップS104肯定)、優先順位データを更新してから一定時間が経過したか否かを判別する(ステップS108)。そして、中継装置10は、優先順位データを更新してから一定時間が経過したと判別した場合は(ステップS108肯定)、各ポートと対応付けられた減算部12、14が保持する値を1デクリメントする(ステップS109)。なお、中継装置10は、優先順位データを更新してから一定時間が経過したと判別した場合は(ステップS108否定)、ステップS109の処理をスキップする。
 次に、中継装置10は、パケットの出力が終了したか否かを判別し(ステップS110)、パケットの出力が終了した場合は(ステップS110肯定)、バリッド出力部15aのバリッドビットを「off」にする(ステップS111)。その後、中継装置10は、再度、ポート入力部11またはポート入力部13に新たなパケットを受信したか否かを判別する(ステップS101)。なお、中継装置10は、パケットの出力が終了していない場合は(ステップS110否定)、ステップS111の処理をスキップし、再度、ポート入力部11またはポート入力部13に新たなパケットを受信したか否かを判別する(ステップS101)。
 また、中継装置10は、ポート入力部11またはポート入力部13に新たなパケットを受信していないと判別した場合は(ステップS101否定)、ポート入力部11またはポート入力部13にパケットがあるか否かを判別する(ステップS103)。そして、中継装置10は、ポート入力部11またはポート入力部13にパケットがある場合は(ステップS103肯定)、ポート出力部15のバリッド出力部15aが出力するバリッドが「on」であるか否かを判別する(ステップS104)。
 また、中継装置10は、ポート入力部11およびポート入力部13にパケットがない場合は(ステップS103否定)、再度、ポート入力部11またはポート入力部13に新たなパケットを受信したか否かを判別する(ステップS101)。
 次に、図8を用いて、中継装置10が情報処理装置4からパケットを受信した際に実行する処理の流れについて説明する。図8は、実施例1に係る情報処理装置と中継装置がパケットを受信した際に実行する処理の流れを説明するフローチャートである。例えば情報処理装置4は、パケットに優先順位データを設定し(ステップS201)、パケットを中継装置10に送信する(ステップS202)。
 すると、中継装置10は、ポート#1がパケットを受信する(ステップS203)。次に、中継装置10は、受信したパケットから優先順位データを取り出し、減算部12に設定する(ステップS204)。このような場合には、減算部12は、優先順位データを調停部21に通知する(ステップS205)。そして、調停部21は、ポート出力部15の使用中ステータスを確認し(ステップS206)、ポート#0が使用中であるか否かを判別する(ステップS207)。
 また、調停部21は、ポート#0が使用中ではないと判別した場合は(ステップS207否定)、減算部12、14のうち、優先順位データが小さいほうにAcknowledgeを返す(ステップS208)。次に、Acknowledgeが返ったポートの入力部は、優先順位決定部20にパケットを出力する(ステップS209)。
 このような場合は、優先順位決定部20が有する出力制御部26は、パケットの優先順位データを減算部の優先順位データに書換えて、ポート出力部15に出力する(ステップS210)。そして、ポート出力部15は、中継装置7にパケットを出力する(ステップS211)。この際、ポート出力部15は、使用中ステータスを使用中にする(ステップS212)。すなわち、ポート出力部15は、バリッド出力部15aに「on」を設定する。
 ここで、送信先が情報処理装置である場合は(ステップS213肯定)、送信先となる情報処理装置がパケットを受信して(ステップS214)、処理が終了となる。一方、送信先が中継装置である場合は(ステップS213否定)、送信先の中継装置が、ステップS203の処理を実行することとなる。
 一方、中継装置10は、ポート#0が使用中である場合は(ステップS207肯定)、経過した時間を確認し(ステップS215)、優先順位データを更新してから一定時間が経過したか否かを判別する(ステップS216)。そして、中継装置10は、一定時間が経過した場合は(ステップS216肯定)、各減算部12、14の優先順位データをデクリメントする(ステップS217)。
 なお、中継装置10は、一定時間が経過していない場合は(ステップS216否定)、ステップS217の処理をスキップする。また、ポート出力部15は、新たなパケットを送信できる状態の場合は、使用中ステータスを未使用にし、それ以外の場合は、使用中ステータスを使用中にする(ステップS218)。つまり、ポート出力部15は、パケットを送信できる場合は、バリッド出力部15aに「off」をセットし、パケットを送信できない場合は、バリッド出力部15aに「on」をセットする。その後、調停部21は、ポート出力部15の使用中ステータスを確認する(ステップS206)。
[中継装置10の効果]
 上述したように、中継装置10は、調停待ちの累積時間を示す優先順位データを含むパケットを受信する複数のポートを有する。また、中継装置10は、受信したパケットに格納されていた優先順位データを所定の時間おきに更新する。そして、中継装置10は、受信したパケットの優先順位データの比較結果に応じて、送信するパケットを選択し、選択したパケットを送信する。
 このため、中継装置10は、各情報処理装置2~6間の通信に要する時間を均等にすることができる。また、中継装置10は、各情報処理装置2~6間の通信において、データの送受信と応答の送受信とが実行される際にも、応答が格納されたパケットが送信先に到着する時間を均等にすることができる。
 また、中継装置10は、所定の時間おきに、受信したパケットに格納されていた優先順位データをデクリメントする。そして、中継装置10は、受信したパケットのうち、優先順位データが最も小さいパケットを送信するパケットとして選択する。このため、中継装置10は、送信するパケットがタイムアウトするまでの時間を容易に判別することができる。
 また、中継装置10は、優先順位データが最も小さいパケットが複数存在する場合、すなわち、複数の優先順位データの値が同一であり、かつ、この値が最も小さい値である場合は、以下の処理を実行する。すなわち、中継装置10は、優先順位データが最も小さいパケットから、送信するパケットをラウンドロビン方式で選択する。このため、中継装置10は、デッドロックすることなく、パケットを適切に中継することができる。
 また、中継装置10は、パケットの優先順位データが所定の閾値以下となった場合は、パケットの送信元となる情報処理装置に対して、タイムアウトを通知する。このため、中継装置10は、各情報処理装置2~6に対して、迅速にタイムアウトを通知することができる。
 これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)優先順位データの更新について
 上述した中継装置10は、各パケットの優先順位データを所定の時間間隔でデクリメントし、優先順位データの値が最も少ないパケットを送信するパケットとして選択した。しかし、実施例は、これに限定されるものではない。
 例えば、中継装置10は、各パケットの優先順位データを所定の時間間隔でインクリメントし、優先順位データの値が最も多いパケットを送信することとしてもよい。また、このような処理を実行する場合は、中継装置10は、優先順位データの値が所定の閾値よりも多くなったパケットを判別し、判別したパケットの送信元となる情報処理装置へタイムアウトを送信することとなる。
 中継装置10は、このように、優先順位データをインクリメントし、優先順位データの値が最も多いパケットを送信した場合には、中継装置10は、各パケットが調停待ちした時間の累積を容易に識別することができる。なお、中継装置10は、優先順位データの値を更新する場合は、インクリメント、または、デクリメントするだけではなく、任意の数式を用いて優先順位データを更新することとしてもよい。
(2)パケットの構成例について
 上述した各パケットは、ヘッダに優先順位データを有していた。しかし、実施例はこれに限定されるものではなく、ヘッダ以外にも任意の位置に優先順位データを有することとしてもよい。
(3)優先順位データの初期値について
 上述した各情報処理装置2~6は、送信するパケットの優先順位データとして、同一の値を格納したパケットを送信した。しかし、実施例はこれに限定されるものではない。例えば、各情報処理装置2~6は、優先して送信するパケットについては、予め低い値の優先順位データを格納することで、他のパケットよりも優先して送信させることができる。
 なお、パケットの優先順位データは、各情報処理装置2~6が実行するOS(Operating System)が決定してもよく、OSよりも下層に存在する機能や装置が任意に設定するものであってもよい。また、各情報処理装置2~6は、通信システム1の混雑具合に応じた値の優先順位データを設定することとしてもよい。
(4)中継装置について
 上述した中継装置7、8、10は、TCP(Transmission Control Protocol)/IP(Internet Protocol)による通信だけではなく、例えば、PCIe(Peripheral Components Interconnect bus Express)などのデバイス間の接続にも適用することができる。すなわち、中継装置7、8、10は、パケットに優先順位データを格納することができれば、任意の手法を用いて通信を行うシステムに適用することができる。
 1 通信システム
 2~6 情報処理装置
 7、8、10 中継装置
 11、13、30、31 ポート入力部
 11a、13a、15a バリッド出力部
 12、14 減算部
 15、33 ポート出力部
 15b 出力バッファ
 20 優先順位決定部
 21 調停部
 22 タイマ部
 23 比較部
 24 決定部
 25 セレクタ
 26 出力制御部
 27 パケット組み立て部
 28 優先順位データ書換部
 32 優先順位決定部

Claims (8)

  1.  データを受信する複数の受信部と、
     前記複数の受信部が受信した各データに含まれる調停待ちの累積時間を示す値を、時間の経過に応じて更新する更新部と、
     前記各データに含まれる調停待ちの累積時間を示す値の比較結果に応じて、送信するデータを選択する選択部と、
     前記選択部が選択したデータを他の装置へ送信する送信部と
     を有することを特徴とする中継装置。
  2.  前記更新部は、時間の経過に応じて、各データに含まれる調停待ちの累積時間を示す値をインクリメントし、
     前記選択部は、前記各データに含まれる調停待ちの累積時間を示す値が最も多いデータを送信するデータとして選択することを特徴とする請求項1に記載の中継装置。
  3.  前記選択部は、前記各データに含まれる調停待ちの累積時間を示す値が最も多いデータが複数存在する場合には、当該複数のデータから送信するデータをラウンドロビンで選択することを特徴とする請求項2に記載の中継装置。
  4.  前記複数の受信部が受信した各データに含まれる調停待ちの累積時間を示す値が所定の閾値以上であるか否かを判別する判別部と、
     いずれかのデータについて調停待ちの累積時間を示す値が所定の閾値以上であると前記判別部が判別した場合には、当該調停待ちの累積時間が所定の閾値以上であるデータの送信元に対して、タイムアウトを通知する通知部と
     をさらに有することを特徴とする請求項2または3に記載の中継装置。
  5.  前記更新部は、時間の経過に応じて、各データに含まれる調停待ちの累積時間を示す値をデクリメントし、
     前記選択部は、前記各データに含まれる調停待ちの累積時間を示す値が最も少ないデータを送信するデータとして選択することを特徴とする請求項1に記載の中継装置。
  6.  前記選択部は、前記各データに含まれる調停待ちの累積時間を示す値が最も少ないデータが複数存在する場合には、当該複数のデータから送信するデータをラウンドロビンで選択することを特徴とする請求項5に記載の中継装置。
  7.  前記複数の受信部が受信した各データに含まれる調停待ちの累積時間を示す値が所定の閾値以下であるか否かを判別する判別部と、
     いずれかのデータについて調停待ちの累積時間を示す値が処置の閾値以下であると前記判別部が判別した場合には、当該データの送信元となる情報処理装置に対して、タイムアウトを通知する通知部と
     をさらに有することを特徴とする請求項5または6に記載の中継装置。
  8.  データを受信する複数の受信装置を有し、各受信装置が受信したデータの中継を行う中継装置が実行するデータ中継方法において、
     前記複数の受信装置が受信した各データに含まれる調停待ちの累積時間を示す値を、時間の経過に応じて更新し、
     前記各データに含まれる調停待ちの累積時間を示す値の比較結果に応じて、送信するデータを選択し、
     前記選択したデータを他の装置へ送信する
     処理を実行することを特徴とする中継方法。
PCT/JP2011/078829 2011-12-13 2011-12-13 中継装置および中継方法 WO2013088521A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2011/078829 WO2013088521A1 (ja) 2011-12-13 2011-12-13 中継装置および中継方法
US14/300,359 US20140294015A1 (en) 2011-12-13 2014-06-10 Relay device and relay method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/078829 WO2013088521A1 (ja) 2011-12-13 2011-12-13 中継装置および中継方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/300,359 Continuation US20140294015A1 (en) 2011-12-13 2014-06-10 Relay device and relay method

Publications (1)

Publication Number Publication Date
WO2013088521A1 true WO2013088521A1 (ja) 2013-06-20

Family

ID=48612008

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/078829 WO2013088521A1 (ja) 2011-12-13 2011-12-13 中継装置および中継方法

Country Status (2)

Country Link
US (1) US20140294015A1 (ja)
WO (1) WO2013088521A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02166549A (ja) * 1988-12-21 1990-06-27 Mitsubishi Electric Corp 共有メモリ制御装置
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269157B2 (en) * 2001-04-10 2007-09-11 Internap Network Services Corporation System and method to assure network service levels with intelligent routing
JP2004147275A (ja) * 2002-08-30 2004-05-20 Matsushita Electric Ind Co Ltd パケット送信スケジューリング方法および基地局装置
US7852836B2 (en) * 2003-11-19 2010-12-14 Cray Inc. Reduced arbitration routing system and method
US8121115B2 (en) * 2006-07-10 2012-02-21 Telefonaktiebolaget Lm Ericsson (Publ) Compressed delay packet transmission scheduling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02166549A (ja) * 1988-12-21 1990-06-27 Mitsubishi Electric Corp 共有メモリ制御装置
WO2010086906A1 (ja) * 2009-02-02 2010-08-05 富士通株式会社 調停装置

Also Published As

Publication number Publication date
US20140294015A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
US10708199B2 (en) Heterogeneous packet-based transport
WO2020236278A1 (en) System and method for facilitating data request management in a network interface controller (nic)
KR101941416B1 (ko) 네트워킹 기술들
JP5629954B2 (ja) 少なくとも部分的なフレーム送信に対して割り込みが可能な装置、方法、およびプログラム
JP2010161546A (ja) ネットワーク中継装置およびパケット振り分け方法
EP3588915A1 (en) Coalescing small payloads
JPH03174848A (ja) コンピュータ回路網における遅延ベース混雑回避方法及び装置
US20140281099A1 (en) METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS
US9001841B2 (en) Communication control device, parallel computer system, and communication control method
EP3726787A1 (en) Data stream sending method, device and system
WO2019080866A1 (zh) 数据传输方法、设备及计算机存储介质
JP2009260654A (ja) 中継装置およびパケット中継方法
WO2003034249A1 (en) Tagging and arbitration mechanism in an input/output node of a computer system
TWI555358B (zh) Communication frame transfer device and communication system
CN116868553A (zh) 用于管理端点资源和拥塞缓解的数据中心网络上的动态网络接收器驱动的数据调度
WO2018157819A1 (zh) 多子流网络传输方法及装置
JP2014204403A (ja) スイッチ装置、パケット制御方法及びデータ通信システム
WO2013088521A1 (ja) 中継装置および中継方法
JPWO2013088521A1 (ja) 中継装置および中継方法
US8174969B1 (en) Congestion management for a packet switch
JP4630231B2 (ja) パケット処理システム、パケット処理方法、およびプログラム
EP3376719B1 (en) Arbitrating data packets
US9910822B2 (en) Network interface for a SoC comprising an improved communication controller
JP5024493B1 (ja) 集積回路及び電子機器
JP5949312B2 (ja) 並列計算機システム、データ転送装置及び並列計算機システムの制御方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11877336

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013548994

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11877336

Country of ref document: EP

Kind code of ref document: A1