WO2020031288A1 - 通信装置、通信方法および通信プログラム - Google Patents

通信装置、通信方法および通信プログラム Download PDF

Info

Publication number
WO2020031288A1
WO2020031288A1 PCT/JP2018/029764 JP2018029764W WO2020031288A1 WO 2020031288 A1 WO2020031288 A1 WO 2020031288A1 JP 2018029764 W JP2018029764 W JP 2018029764W WO 2020031288 A1 WO2020031288 A1 WO 2020031288A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
communication flow
flow
bandwidth
value
Prior art date
Application number
PCT/JP2018/029764
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 JP2020535390A priority Critical patent/JP6755437B2/ja
Priority to PCT/JP2018/029764 priority patent/WO2020031288A1/ja
Publication of WO2020031288A1 publication Critical patent/WO2020031288A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions

Definitions

  • the present invention relates to a technique for controlling a transmission band of a communication flow.
  • a case is considered where a plurality of applications (hereinafter, APL) simultaneously communicate between two sites.
  • the two bases are connected by a best effort service network via a gateway device (hereinafter, GW).
  • GW gateway device
  • the communication band required by the communication flow of each APL (hereinafter, required band) and the priority of each APL are given in advance.
  • a necessary band is set as a transmission band of each communication flow in scheduling of a transmission packet.
  • the GW needs to determine the transmission rate (hereinafter, shaping rate) of the entire traffic to the best effort service network. It is appropriate to use the available bandwidth between the two locations as the shaping rate. However, since it is difficult to measure the available bandwidth between the two locations, it is necessary to estimate the available bandwidth, and an estimation error is inevitable. Further, since the available bandwidth between the two locations fluctuates, it is necessary to update the estimated value of the available bandwidth, and if the update is not completed in time, the error in the estimated value of the available bandwidth may increase.
  • the following problem may occur due to an error in the estimated value of the available bandwidth.
  • a possible problem is that, despite the fact that the true available bandwidth is larger than the required bandwidth of the high-priority APL, the reception rate of the communication flow of the high-priority APL becomes smaller than the required bandwidth. Such a problem is called a high priority communication band shortage problem.
  • TCP is an abbreviation for Transmission Control Protocol.
  • a high priority APL sends video stream data to a server.
  • the required bandwidth of this video stream data is 1 Mbps.
  • a low priority APL sends a sensor data stream to a server.
  • the required bandwidth of this sensor data stream is 500 kbps.
  • short-term cross traffic repeatedly occurs in a bottleneck link.
  • a time zone occurs in which the estimated value of the available bandwidth is larger than the true available bandwidth.
  • the two communication flows divide the true available bandwidth into two equal parts according to the TCP congestion control algorithm. For this reason, even when the transmitting GW allocates the required bandwidth to the communication flow of the high-priority APL, a time zone occurs in which the reception rate of the high-priority APL at the receiving GW is less than the required bandwidth.
  • UDP is an abbreviation for User Datagram Protocol.
  • a high priority APL sends stream data to a server.
  • the required bandwidth of this stream data is 500 kbps.
  • a low priority APL sends stream data to a server.
  • the required bandwidth of this stream data is 300 kbps.
  • the available bandwidth of the best effort service network is 600 kbps and the estimated available bandwidth is 700 kbps.
  • the GW performs the minimum bandwidth guarantee type packet scheduling in order to secure the required bandwidth of the high-priority APL.
  • the GW shapes the entire traffic of the packet to be transmitted with the estimated available bandwidth (700 kbps).
  • Patent Document 1 discloses the following method.
  • a transmission band is allocated to each communication flow in consideration of the retransmission data amount.
  • the transmission band is allocated to each communication flow in consideration of the retransmission data amount, and the retransmission data is transferred with priority. This makes it possible to prevent an event that data retransmission is delayed even in a communication flow with a small data communication amount.
  • Patent Document 2 discloses the following method. The application uses the amount of data that the application transmits at the time of executing the job, and information on the priority specified for the job.
  • the data in low-priority business connections is transmitted so that data can be transmitted to the maximum in high-priority business connections.
  • priority control of communication can be realized based on the priority of each task executed by the application.
  • Patent Literature 1 a priority and a required band are not specified for a communication flow. Therefore, it is impossible to increase the probability that the reception rate becomes higher than the required band in a communication flow having a high priority. Therefore, the shortage of the high-priority communication band cannot be solved.
  • a required band is not specified for a communication flow. Further, the communication band is allocated without considering the amount of data received on the receiving side. Therefore, it is impossible to increase the probability that the reception rate becomes higher than the required band in a communication flow having a high priority. Therefore, the shortage of the high-priority communication band cannot be solved.
  • the present invention aims to solve the problem of shortage of high priority communication band.
  • the communication device of the present invention is a communication device that processes a plurality of communication flows generated between one communication partner. A priority is given to each of the plurality of communication flows.
  • the communication device A receiving unit that receives, from the communication partner, a packet indicating a reception rate of the communication partner in communication with the communication partner, An estimating unit that estimates an available band that is a communication band that can be used for communication with the communication partner at each time, When the available bandwidth is newly estimated, based on the reception rate indicated by the received packet, the previous estimated value of the available bandwidth, and the current estimated value of the available bandwidth, the priority is high.
  • a determination unit that determines a guaranteed bandwidth that is a communication bandwidth allocated to each communication flow
  • a transmission unit that uses the current estimated value of the available bandwidth as a shaping rate, allocates a guaranteed bandwidth of each communication flow to each communication flow, and transmits a communication packet in each communication flow to the communication partner.
  • FIG. 1 is a configuration diagram of a communication device 100 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a communication system 200 according to the first embodiment.
  • 5 is a flowchart of a communication method according to the first embodiment.
  • 5 is a flowchart of a notification process according to the first embodiment.
  • 5 is a flowchart of a recording process according to the first embodiment.
  • 5 is a flowchart of an estimation process according to the first embodiment.
  • 5 is a flowchart of a setting process according to the first embodiment.
  • 9 is a flowchart of a setting process according to the second embodiment.
  • 15 is a flowchart of a setting process according to the third embodiment.
  • 15 is a flowchart of a notification process according to the fourth embodiment.
  • FIG. 15 is a flowchart of a notification process according to the fourth embodiment.
  • 15 is a flowchart of a recording process according to the fourth embodiment.
  • 15 is a flowchart of a setting process according to the fourth embodiment.
  • 19 is a flowchart of another example of the setting process according to the fourth embodiment.
  • FIG. 2 is a hardware configuration diagram of a communication device 100 according to each embodiment.
  • Embodiment 1 A mode of handling a communication flow using a protocol for performing retransmission control will be described with reference to FIGS.
  • An example of a protocol for performing retransmission control is TCP.
  • the configuration of the communication device 100 is a computer including hardware such as a processor 101, a memory 102, an auxiliary storage device 103, a receiver 104, and a transmitter 105. These pieces of hardware are connected to each other via signal lines.
  • the processor 101 is an integrated circuit (IC) that performs arithmetic processing, and controls other hardware.
  • the processor 101 is a CPU (Central Processing Unit).
  • the memory 102 is a volatile storage device.
  • the memory 102 is also called a main storage device or a main memory.
  • the memory 102 is a RAM (Random Access Memory).
  • the data stored in the memory 102 is stored in the auxiliary storage device 103 as needed.
  • the auxiliary storage device 103 is a nonvolatile storage device.
  • the auxiliary storage device 103 is a ROM (Read Only Memory), a HDD (Hard Disk Drive), or a flash memory.
  • the data stored in the auxiliary storage device 103 is loaded into the memory 102 as needed.
  • the receiver 104 and the transmitter 105 are realized by, for example, a communication chip or a NIC (Network Interface Card).
  • the communication device 100 includes elements such as a reception unit 110, an estimation unit 120, a determination unit 130, and a transmission unit 140. These elements are realized by software.
  • Receiving section 110 includes a receiving rate measuring section 111 and a receiving processing section 112.
  • Transmission section 140 includes transmission processing section 141 and scheduling section 142.
  • the scheduling unit 142 functions as a transmission packet scheduler.
  • the auxiliary storage device 103 stores a communication program for causing a computer to function as the receiving unit 110, the estimating unit 120, the determining unit 130, and the transmitting unit 140.
  • the communication program is loaded into the memory 102 and executed by the processor 101.
  • the auxiliary storage device 103 stores an OS (Operating System). At least a part of the OS is loaded into the memory 102 and executed by the processor 101. That is, the processor 101 executes the communication program while executing the OS.
  • Data obtained by executing the communication program is stored in a storage device such as the memory 102, the auxiliary storage device 103, a register in the processor 101, or a cache memory in the processor 101.
  • the memory 102 functions as a storage unit 190 that stores various data.
  • another storage device may function as the storage unit 190 instead of or together with the memory 102.
  • the communication device 100 may include a plurality of processors instead of the processor 101.
  • the plurality of processors share the role of the processor 101.
  • the communication program can be recorded (stored) in a computer-readable manner on a non-volatile recording medium such as an optical disk or a flash memory.
  • the configuration of the communication system 200 will be described based on FIG.
  • the communication system 200 includes a communication device 100M, a communication device 100P, and a network 201.
  • the communication device 100M is the communication device 100 that transmits a packet.
  • the transmission of a packet includes the meaning of transferring the packet.
  • the reception rate measurement unit 111M is the reception rate measurement unit 111 provided in the communication device 100M.
  • the reception processing unit 112M is the reception processing unit 112 provided in the communication device 100M.
  • the estimating unit 120M is the estimating unit 120 included in the communication device 100M.
  • the determining unit 130M is the determining unit 130 provided in the communication device 100M.
  • the transmission processing unit 141M is a transmission processing unit 141 provided in the communication device 100M.
  • the scheduling unit 142M is a scheduling unit 142 provided in the communication device 100M.
  • the communication device 100P is the communication device 100 that receives a packet. That is, the communication device 100P is a communication partner of the communication device 100M.
  • the reception rate measurement unit 111P is a reception rate measurement unit 111 provided in the communication device 100P.
  • the reception processing unit 112P is the reception processing unit 112 provided in the communication device 100P.
  • the estimating unit 120P is the estimating unit 120 included in the communication device 100P.
  • the determining unit 130P is the determining unit 130 provided in the communication device 100P.
  • the transmission processing unit 141P is a transmission processing unit 141 provided in the communication device 100P.
  • the scheduling unit 142P is a scheduling unit 142 provided in the communication device 100P.
  • the network 201 is a best effort service network.
  • white arrows indicate a packet flow
  • line arrows indicate a data flow and a control flow.
  • the operation of the communication device 100 corresponds to a communication method.
  • the procedure of the communication method corresponds to the procedure of the communication program.
  • the communication device 100M processes a plurality of communication flows generated with one communication partner (the communication device 100P). A priority is given to each of the plurality of communication flows. Also, a required band is set for each of the plurality of communication flows. The required bandwidth is a communication bandwidth required for communication.
  • the communication flow is a series of data communication performed between two application programs. For example, one application program is executed in the communication device 100M, and the other application program is executed in the communication device 100P.
  • the receiving unit 110 provided in the communication device 100M is referred to as a receiving unit 110M.
  • the transmitting unit 140 provided in the communication device 100M is referred to as a transmitting unit 140M.
  • the receiving unit 110M receives a reception rate packet from a communication partner.
  • the reception rate packet is a packet indicating the reception rate of one or more packets received by the communication partner in the communication with the communication partner.
  • the estimation unit 120M estimates an available band at each time. That is, the estimating unit 120M estimates the available bandwidth at each time.
  • the available band is a communication band that can be used for communication with a communication partner.
  • the determining unit 130M determines the guaranteed bandwidth of each communication flow in descending order of priority based on the following data (1) to (3).
  • the guaranteed bandwidth of the communication flow is a communication band allocated to the communication flow.
  • the guaranteed band of the communication flow is a communication band guaranteed in the communication flow. That is, the guaranteed band of the communication flow means the minimum guaranteed band of the communication flow.
  • transmitting section 140M uses the current estimated value of the available bandwidth as the shaping rate. Also, the transmitting unit 140M allocates the guaranteed bandwidth of each communication flow to each communication flow. Then, transmitting section 140M transmits a communication packet in each communication flow to a communication partner. The communication packet in the communication flow is a packet communicated in the communication flow.
  • the notification process is a process for notifying the communication device 100M of the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P.
  • the notification process is executed by the communication device 100P.
  • the communication device 100P stores a reception counter and a notification trigger history in the storage unit 190P for each communication device 100 that is a communication partner.
  • the storage unit 190P is the storage unit 190 of the communication device 100P.
  • the reception counter is data indicating an integrated value of the size of the received packet.
  • the notification trigger history is data indicating the time and the value of the reception counter for each notification trigger.
  • step S111 when a packet arrives at communication device 100P, reception rate measuring section 111P detects the arrived packet. If a packet has been detected, the process proceeds to step S112. If no packet has been detected, the process proceeds to step S115.
  • step S112 the reception rate measuring unit 111P receives the detected packet.
  • the received packet is called a received packet.
  • the reception rate measurement unit 111P determines the transmission source of the received packet based on the information included in the received packet. For example, the reception rate measurement unit 111P determines the transmission source of the reception packet based on the transmission source address set in the reception packet.
  • step S114 the reception rate measurement unit 111P adds the size of the received packet to the reception counter for the source of the received packet.
  • step S115 the reception rate measurement unit 111P determines whether it is a notification opportunity for any communication partner. For example, when a certain period has elapsed since the previous notification trigger for the communication device 100M, the reception rate measurement unit 111P determines that the communication timing is for the communication device 100M. If it is a notification trigger for any communication partner, the process proceeds to step S116. If it is not a notification opportunity for any communication partner, the process proceeds to step S111.
  • step S116 it is assumed that the communication device 100M is to be notified.
  • the reception rate measurement unit 111P updates the notification trigger history for the communication device 100M. Specifically, the reception rate measurement unit 111P adds a set of the current time and the current value of the reception counter for the communication device 100M to the notification trigger history for the communication device 100M.
  • step S117 the reception rate measurement unit 111P calculates the reception rate for the communication device 100M based on the notification trigger history for the communication device 100M.
  • reception rate measuring section 111P calculates the reception rate for communication device 100M as follows. First, the reception rate measuring unit 111P acquires the time of the previous notification trigger and the value of the reception counter at the previous notification trigger from the notification trigger history for the communication device 100M. The acquired time is called the previous time. The value obtained is referred to as the previous counter value. Further, the reception rate measurement unit 111P acquires the time of the current notification trigger and the value of the reception counter at the current notification trigger from the notification trigger history for the communication device 100M. The acquired time is called the current time. The value obtained is called the current counter value. Next, reception rate measurement section 111P calculates the elapsed time from the previous time to the current time.
  • reception rate measurement unit 111P subtracts the previous counter value from the current counter value.
  • the calculated value is called a difference size.
  • reception rate measuring section 111P divides the difference size by the elapsed time.
  • the calculated value is the reception rate for the communication device 100M.
  • step S118 the reception rate measurement unit 111P passes the reception rate for the communication device 100M to the transmission processing unit 141P.
  • the transmission processing unit 141P generates a packet including a message indicating the reception rate for the communication device 100M by performing the communication protocol processing.
  • the generated packet is called a reception rate packet.
  • step S119 the transmission processing unit 141P passes the reception rate packet to the scheduling unit 142P.
  • Scheduling section 142P performs scheduling for the reception rate packet, and transmits the reception rate packet according to the transmission schedule.
  • the scheduling is performed based on the shaping rate set in the scheduling unit 142P and the guaranteed bandwidth of each communication flow set in the scheduling unit 142P.
  • the reception rate packet reaches the communication device 100M via the network 201.
  • the received packet passes from the reception rate measurement unit 111P to the reception processing unit 112P and is processed by the reception processing unit 112P.
  • the recording process is a process for recording the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P in the communication device 100M.
  • the recording process is executed by the communication device 100M.
  • the communication device 100M stores the reception rate in the storage unit 190M for each communication device 100 that is a communication partner.
  • the storage unit 190M is the storage unit 190 of the communication device 100M.
  • step S121 the reception rate measurement unit 111M receives the reception rate packet transmitted from the communication device 100P via the network 201.
  • step S122 the reception rate measurement unit 111M performs a notification process, similarly to the reception rate measurement unit 111P of the communication device 100P (see FIG. 4).
  • step S123 the reception rate measurement unit 111M passes the reception rate packet to the reception processing unit 112M.
  • the reception processing unit 112M extracts a message from the reception rate packet by performing a communication protocol process.
  • the extracted message indicates the reception rate of the communication device 100P.
  • the reception processing unit 112M passes the extracted message to the determination unit 130.
  • the determination unit 130 extracts the reception rate of the communication device 100P from the message.
  • step S124 determination unit 130 records the reception rate of communication device 100P. Specifically, the determination unit 130 updates the reception rate stored as the reception rate of the communication device 100P with the reception rate extracted from the message.
  • the estimation process will be described based on FIG.
  • the estimation process is a process of estimating an available band in communication between the communication device 100M and the communication device 100P, and is executed by the communication device 100M.
  • the communication device 100M stores the previous estimated value of the available bandwidth and the current estimated value of the available bandwidth in the storage unit 190M for each communication device 100 that is a communication partner.
  • step S131 the estimating unit 120M determines whether it is an estimation opportunity for any communication partner. For example, when a fixed period has elapsed since the previous estimation opportunity for the communication device 100P, the estimation unit 120M determines that the estimation opportunity is for the communication device 100P. If it is an estimation opportunity for any communication partner, the process proceeds to step S132. If it is not an estimation opportunity for any communication partner, the process proceeds to step S131.
  • step S132 it is assumed that this is an estimation trigger for the communication device 100P.
  • the estimating unit 120M estimates an available bandwidth for the communication device 100P. Specifically, estimating section 120M estimates the available bandwidth for communication device 100P by executing a conventional estimation method. For example, the estimating unit 120M estimates the available band for the communication device 100P by executing TCP Friendly Rate Control (TFRC).
  • TFRC TCP Friendly Rate Control
  • step S133 the estimation unit 120M passes the estimated value of the available bandwidth for the communication device 100P to the determination unit 130M.
  • the deciding unit 130M records the estimated value of the available bandwidth for the communication device 100P. Specifically, the determination unit 130M updates the value held as the last available band for the communication device 100P to the value held as the current available band for the communication device 100P. Then, the determining unit 130M updates the value held as the current available bandwidth for the communication device 100P to the estimated value passed from the estimating unit 120M.
  • the setting process will be described with reference to FIG.
  • the setting process is a process for setting a shaping rate and a guaranteed bandwidth of each communication flow, and is executed by the communication device 100M.
  • step S133 (see FIG. 6) has been executed. It is also assumed that a plurality of communication flows have occurred between the communication device 100M and the communication device 100P.
  • “Wo” indicates the previous estimated value of the available bandwidth.
  • “Wn” indicates the remaining available bandwidth of the current estimated value of the available bandwidth.
  • the initial value is the current estimated value of the available bandwidth.
  • “Fi” represents a communication flow having the i-th highest priority.
  • “I” is an integer of 1 or more.
  • “Bi” indicates a required band set for the communication flow Fi.
  • “Si” indicates a guaranteed band for the communication flow Fi.
  • “Ra” indicates the reception rate most recently notified from the communication device 100P.
  • “Di” indicates an integrated value in the last N setting processes (FIG. 7) regarding excess or deficiency of the communication band in the communication flow Fi.
  • “N” is a predetermined integer of 1 or more.
  • Rh indicates an assumed throughput of the communication flow Fi.
  • the assumed throughput is a value used in the setting process (FIG. 7) as the reception throughput of the communication flow Fi.
  • step S141 the determination unit 130M selects one unselected communication flow in descending order of priority.
  • Steps S142 to S147 are executed for the communication flow Fi selected in step S141.
  • step S142 the determination unit 130M compares the reception rate Ra with the previous estimated value Wo of the available band.
  • step S143 the determination unit 130M determines the assumed throughput Ri of the communication flow Fi based on the comparison result and the current guaranteed bandwidth Si.
  • the current guaranteed band Si means a communication band allocated to the communication flow Fi.
  • the determination unit 130M determines the assumed throughput Ri of the communication flow Fi as follows.
  • the determination unit 130M sets a value smaller than the current guaranteed bandwidth Si as the assumed throughput Ri. A value smaller than the current guaranteed band Si will be described later.
  • the determination unit 130M sets the current guaranteed bandwidth Si to the assumed throughput Ri.
  • the determination unit 130M calculates a value smaller than the current guaranteed band Si as follows.
  • the deciding unit 130M selects the smaller value of the current guaranteed bandwidth Si and the average of the current guaranteed bandwidths in the plurality of communication flows.
  • the determination unit 130M divides the reception rate Ra by the previous estimated value Wo of the available band.
  • the determining unit 130M multiplies the value calculated by the division by the selected value.
  • the value calculated by the multiplication is a value smaller than the current guaranteed band Si.
  • a value smaller than the current guaranteed bandwidth Si is set as the assumed throughput Ri.
  • the determination unit 130M multiplies the current guaranteed band Si by the adjustment coefficient Fa.
  • the calculated value is a value smaller than the current guaranteed band Si.
  • the adjustment coefficient Fa is a parameter specified in advance, and is larger than 0 and smaller than 1.
  • a value smaller than the current guaranteed bandwidth Si is set as the assumed throughput Ri.
  • step S144 the determination unit 130M calculates the integrated value Di of excess or deficiency of the communication band in the communication flow Fi based on the assumed throughput Ri of the communication flow Fi, the required band Bi of the communication flow Fi, and the elapsed time Tw. I do.
  • the elapsed time Tw is the time from the previous estimation time of the available bandwidth to the current estimation time of the available bandwidth.
  • the determination unit 130M calculates the integrated value Di as follows.
  • the determination unit 130M compares the assumed throughput Ri with the required bandwidth Bi. When the assumed throughput Ri is smaller than the required bandwidth Bi, the determination unit 130M calculates the shortage Sh of the communication bandwidth in the elapsed time Tw for the communication flow Fi, and adds the shortfall Sh to the integrated value Di.
  • the shortage amount Sh is calculated by multiplying the value calculated by subtracting the assumed throughput Ri from the required bandwidth Bi by the elapsed time Tw.
  • the shortage Sh can be expressed by the following equation.
  • Sh (Bi-Ri) * Tw
  • the integrated value Di can be represented by the following equation.
  • Di Di + Sh
  • the determination unit 130M calculates the excess amount Ov of the communication bandwidth over the elapsed time Tw for the communication flow Fi, and subtracts the excess amount Ov from the integrated value Di.
  • the excess amount Ov is calculated by multiplying the value obtained by subtracting the required bandwidth Bi from the assumed throughput Ri by the elapsed time Tw.
  • the excess amount Ov can be expressed by the following equation.
  • Ov (Ri-Bi) * Tw
  • the integrated value Di can be represented by the following equation.
  • Di Di-Ov
  • step S145 the determining unit 130M determines whether the communication band in the communication flow Fi is excess or deficient based on the integrated value Di of the communication band in the communication flow Fi.
  • the determination unit 130M determines whether the communication band in the communication flow Fi is excessive or insufficient as follows. When the integrated value Di is larger than 0, that is, when the integrated value Di is a positive value, the determination unit 130M determines that the communication band in the communication flow Fi is insufficient. When the integrated value Di is 0 or less, that is, when the integrated value Di is 0 or a negative value, the determination unit 130M determines that the communication band in the communication flow Fi is exceeded.
  • step S146 the determination unit 130M determines the guaranteed bandwidth Si of the communication flow Fi based on the determination result, the required bandwidth Bi of the communication flow Fi, and the remaining available bandwidth Wn. Further, the determining unit 130M initializes the integrated value Di of the communication flow Fi to 0.
  • the determination unit 130M adds the adjustment value Q to the required band Bi.
  • the adjustment value Q is a parameter specified in advance.
  • the calculated value is called an adjustment band.
  • the determining unit 130M selects the smaller value of the adjustment band and the change upper limit Ma as the guaranteed band Si.
  • the determination unit 130M determines the change upper limit Ma as the guaranteed bandwidth Si.
  • the determination unit 130M determines the smaller value of the remaining available bandwidth Wn and the required bandwidth Bi as the guaranteed bandwidth Si.
  • step S147 the determining unit 130M updates the remaining available bandwidth Wn based on the guaranteed bandwidth Si of the communication flow Fi. Specifically, the determination unit 130M updates the remaining available bandwidth Wn by subtracting the guaranteed bandwidth Si from the remaining available bandwidth Wn. However, the lower limit of the remaining available band Wn is set to 0.
  • step S148 the determination unit 130M determines whether there is an unselected communication flow.
  • an unselected communication flow is referred to as an unselected flow. If there is an unselected communication flow, the process proceeds to step S141. If there is no unselected communication flow, the process proceeds to step S149.
  • step S149 the determination unit 130M sets the current estimated value of the available bandwidth as the shaping rate in the scheduling unit 142. Further, the determining unit 130M sets the guaranteed bandwidth Si of each communication flow Fi in the scheduling unit 142.
  • Embodiment 1 *** Effect of Embodiment 1 *** When an event occurs in which the reception rate is lower than the required band, it is possible to integrate the estimated value of the shortage of the reception rate of the communication flow with respect to the required band. For high-priority communication flows, if the integrated value of the estimated value of the shortfall with respect to the required bandwidth of the reception rate is positive, the minimum guaranteed bandwidth value is set to a value larger than the required bandwidth in preference to low-priority communication flows. Can be set. Further, the integrated value of the estimated value of the shortage can be reduced to zero. By these operations, the higher the priority of the communication flow, the shorter the period in which the integrated value of the estimated value of the shortage for the required band of the reception rate is positive.
  • Embodiment 2 FIG. 8 a description will be given of a mode of handling a communication flow using a protocol that does not perform retransmission control, mainly with respect to differences from the first embodiment.
  • An example of a protocol that does not perform retransmission control is UDP.
  • the configuration of communication device 100 is the same as the configuration in Embodiment 1 (see FIG. 1).
  • the configuration of communication system 200 is the same as the configuration in Embodiment 1 (see FIG. 2).
  • the notification process is the same as the process in the first embodiment (see FIG. 4).
  • the recording process is the same as the process in the first embodiment (see FIG. 5).
  • the estimation processing is the same as the processing in the first embodiment (see FIG. 6).
  • the setting process will be described based on FIG. Variables used in the setting process (FIG. 8) will be described.
  • “Wo” indicates the previous estimated value of the available bandwidth.
  • “Wn” indicates the remaining available bandwidth of the current estimated value of the available bandwidth.
  • the initial value is the current estimated value of the available bandwidth.
  • “Fi” represents a communication flow having the i-th highest priority.
  • “I” is an integer of 1 or more.
  • Bi indicates a required band set for the communication flow Fi.
  • Si indicates a guaranteed band for the communication flow Fi.
  • Ra indicates the reception rate most recently notified from the communication device 100P.
  • “P” is a set of comparison values Pv, and includes M comparison values Pv in the M setting processes up to this time.
  • “M” is an integer of 1 or more.
  • the comparison value Pv is a value indicating the magnitude of the previous estimated value of the available bandwidth with respect to the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P.
  • the comparison value Pv is a value calculated by dividing the previous estimated value of the available bandwidth by the reception rate.
  • the comparison value Pv is 1.
  • C is an assumed magnification of an available band with respect to a reception rate of the communication device 100P in communication between the communication device 100M and the communication device 100P.
  • the assumed magnification C indicates how many times the estimated value of the available bandwidth may be higher than the reception rate of the communication device 100P.
  • the assumed magnification C is obtained using the set P as an input.
  • step S241 the determination unit 130M updates the set P of the comparison values Pv based on the previous estimated value Wo of the available band and the reception rate Ra.
  • the determination unit 130M updates the comparison value set P as follows.
  • the deciding unit 130M adds the larger one of the value calculated by dividing the previous estimated value Wo by the reception rate Ra and 1 to the set P as the current comparison value Pv.
  • the determination unit 130M deletes the oldest comparison value Pv from the set P.
  • step S242 the determining unit 130M determines the assumed magnification C based on the set P of comparison values.
  • the determination unit 130M selects the maximum comparison value Pv from the set P, and sets the selected comparison value Pv to the assumed magnification C. That is, the determination unit 130M determines the value of the selected comparison value Pv as the assumed magnification.
  • the determination unit 130M calculates the average of the comparison values Pv in the set P, and sets the calculated average as the assumed magnification C. That is, the determining unit 130M determines the calculated average as the assumed magnification.
  • the determination unit 130M treats the M comparison values Pv included in the set P as time-series data, and applies an autoregressive integrated moving average model (ARIMA model) to the time-series data. Thereby, the determination unit 130M predicts the next comparison value Pv. Then, the determining unit 130M sets the predicted value to the assumed magnification C. That is, the determining unit 130M determines the predicted value as the assumed magnification.
  • ARIMA model autoregressive integrated moving average model
  • step S243 the determining unit 130M selects one unselected communication flow in descending order of priority.
  • Steps S244 and S245 are executed for the communication flow Fi selected in step S243.
  • step S244 the determination unit 130M determines the guaranteed bandwidth Si of the communication flow Fi based on the assumed magnification C, the required bandwidth Bi of the communication flow Fi, and the remaining available bandwidth Wn. Specifically, the determination unit 130M determines the smaller value of the value calculated by multiplying the required bandwidth Bi by the assumed magnification C and the remaining available bandwidth Wn as the guaranteed bandwidth Si.
  • step S245 the determining unit 130M updates the remaining available bandwidth Wn based on the guaranteed bandwidth Si of the communication flow Fi.
  • Step S245 is the same as step S147 in the first embodiment (see FIG. 7).
  • step S246 the determination unit 130M determines whether there is an unselected communication flow.
  • an unselected communication flow is referred to as an unselected flow. If there is an unselected communication flow, the process proceeds to step S243. If there is no unselected communication flow, the process proceeds to step S247.
  • step S247 the determination unit 130M sets the current estimated value of the available bandwidth as the shaping rate in the scheduling unit 142. Further, the determining unit 130M sets the guaranteed bandwidth Si of each communication flow Fi in the scheduling unit 142.
  • Embodiment 3 Referring to FIG. 9, the difference between the first embodiment and the second embodiment regarding the mode for processing both the communication flow using the protocol for performing the retransmission control and the communication flow using the protocol for not performing the retransmission control will be described. Will be described.
  • the configuration of communication device 100 is the same as the configuration in Embodiment 1 (see FIG. 1).
  • the configuration of communication system 200 is the same as the configuration in Embodiment 1 (see FIG. 2).
  • the notification process is the same as the process in the first embodiment (see FIG. 4).
  • the recording process is the same as the process in the first embodiment (see FIG. 5).
  • the estimation processing is the same as the processing in the first embodiment (see FIG. 6).
  • step S341 the determination unit 130M updates the comparison value set P based on the previous estimated value Wo of the available band and the reception rate Ra.
  • step S342 the determining unit 130M updates the assumed ratio C based on the set P of comparison values. Steps S341 and S342 are the same as steps S241 and S242 in the second embodiment (see FIG. 8).
  • step S343 the determination unit 130M selects one unselected communication flow in descending order of priority.
  • Steps S344 to S346 are executed for the communication flow Fi selected in step S343.
  • step S344 the determination unit 130M determines the type of the communication flow Fi. Specifically, determination unit 130M determines whether communication flow Fi is a communication flow for retransmission control or a communication flow for non-retransmission control.
  • the communication flow for retransmission control is a communication flow that uses a protocol for performing retransmission control. That is, the communication flow for retransmission control is the communication flow processed in the first embodiment.
  • the communication flow for non-retransmission control is a communication flow that uses a protocol that does not perform retransmission control. That is, the communication flow for non-retransmission control is the communication flow processed in the second embodiment. If the communication flow Fi is a communication flow for retransmission control, the process proceeds to step S345. If the communication flow Fi is a communication flow for non-retransmission control, the process proceeds to step S346.
  • step S345 the determination unit 130M performs a retransmission control determination process on the communication flow Fi.
  • the determination process for retransmission control is a process for determining the guaranteed bandwidth Si of the communication flow Fi.
  • determining unit 130M performs the determining process (steps S142 to S146) in the first embodiment.
  • step S346 the determination unit 130M performs a non-retransmission control determination process on the communication flow Fi.
  • the determination process for retransmission control is a process for determining the guaranteed bandwidth Si of the communication flow Fi.
  • determination unit 130M performs the determination process (step S244) in the second embodiment.
  • step S347 the determination unit 130M updates the remaining available bandwidth Wn based on the guaranteed bandwidth Si of the communication flow Fi.
  • Step S347 is the same as step S147 in the first embodiment (see FIG. 7).
  • step S348 the determining unit 130M determines whether there is an unselected communication flow.
  • an unselected communication flow is referred to as an unselected flow. If there is an unselected communication flow, the process proceeds to step S343. If there is no unselected communication flow, the process proceeds to step S349.
  • step S349 the determination unit 130M sets the current estimated value of the available bandwidth in the scheduling unit 142 as the shaping rate. Further, the determining unit 130M sets the guaranteed bandwidth Si of each communication flow Fi in the scheduling unit 142.
  • Embodiment 1 or Embodiment 2 can be obtained for both a communication flow using a protocol for performing retransmission control and a communication flow using a protocol for not performing retransmission control.
  • the effect of reducing the frequency of occurrence of the high priority communication band shortage problem in which the reception rate of the high priority communication flow becomes smaller than the required band can be obtained.
  • an effect is obtained that the transmission band allocated to the communication flow having a low priority is not lowered unnecessarily.
  • Embodiment 4 FIG. Embodiments in which the assumed throughput of the communication flow is determined based on the reception rate of the communication partner in the communication flow will be described mainly with reference to FIGS. 10 to 14 in terms of differences from the first and third embodiments.
  • the configuration of communication device 100 is the same as the configuration in Embodiment 1 (see FIG. 1).
  • the configuration of communication system 200 is the same as the configuration in Embodiment 1 (see FIG. 2).
  • the notification process is a process for notifying the communication device 100M of the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P. Further, the notification process is a process for notifying the communication device 100M of the reception rate of the communication device 100P in each communication flow.
  • the notification process is executed by the communication device 100P.
  • the communication device 100P stores a reception counter and a notification trigger history in the storage unit 190P for each communication device 100 that is a communication partner. Further, the communication device 100P stores a reception counter and a notification trigger history in the storage unit 190P for each communication flow.
  • the reception counter is data indicating an integrated value of the size of the received packet.
  • the notification trigger history is data indicating the time and the value of the reception counter for each notification trigger.
  • Steps S4111 to S4114 are the same as steps S111 to S114 in the first embodiment (see FIG. 4).
  • step S4111 when a packet arrives at communication device 100P, reception rate measuring section 111P detects the arrived packet. If a packet has been detected, the process proceeds to step S4112. If no packet has been detected, the process proceeds to step S4121.
  • reception rate measuring section 111P receives the detected packet.
  • the received packet is called a received packet.
  • the reception rate measurement unit 111P determines the transmission source of the received packet based on the information included in the received packet. For example, the reception rate measurement unit 111P determines the transmission source of the reception packet based on the transmission source address set in the reception packet.
  • step S4114 the reception rate measuring unit 111P adds the size of the received packet to the reception counter for the source of the received packet.
  • reception rate measuring section 111P determines a communication flow of the received packet based on information included in the received packet. For example, the reception rate measurement unit 111P determines a communication flow of a received packet based on information such as a source address, a protocol type, a destination port number, and a source port number.
  • step S4116 the reception rate measurement unit 111P adds the size of the received packet to the reception counter for the communication flow of the received packet. After step S4116, processing proceeds to step S4121.
  • the reception rate measuring unit 111P transmits the first reception rate packet to the communication device 100M.
  • the first notification opportunity is an opportunity to notify the receiving party of the reception rate. Steps S4121 to S4125 are the same as steps S115 to S119 in the first embodiment (see FIG. 4).
  • the reception rate measurement unit 111P determines whether it is the second notification opportunity for any communication flow.
  • the second notification trigger is a trigger for notifying the reception rate in the communication flow. For example, when a certain period has elapsed since the previous notification trigger for the communication flow F, the reception rate measurement unit 111P determines that the reception timing measurement unit 111P is the second notification trigger for the communication flow F. If it is the second notification opportunity for any communication flow, the process proceeds to step S4132. If it is the second notification opportunity for any communication flow, the process proceeds to step S4132. If it is not the second notification opportunity for any communication flow, the process proceeds to step S4111.
  • step S ⁇ b> 4132 it is assumed that this is the second notification opportunity for the communication flow F.
  • communication flow F it is assumed that the communication partner of communication device 100P is communication device 100M.
  • the reception rate measurement unit 111P updates the notification trigger history for the communication flow F. Specifically, the reception rate measurement unit 111P adds a set of the current time and the current value of the reception counter for the communication flow F to the notification trigger history for the communication flow F.
  • step S4133 the reception rate measurement unit 111P calculates the reception rate in the communication flow F based on the notification trigger history for the communication flow F.
  • reception rate measuring section 111P calculates the reception rate in communication flow F as follows. First, the reception rate measurement unit 111P acquires the time of the previous notification trigger and the value of the reception counter at the previous notification trigger from the notification trigger history for the communication flow F. The acquired time is called the previous time. The value obtained is referred to as the previous counter value. Further, the reception rate measurement unit 111P acquires the time of the current notification trigger and the value of the reception counter at the current notification trigger from the notification trigger history for the communication flow F. The acquired time is called the current time. The value obtained is called the current counter value. Next, reception rate measurement section 111P calculates the elapsed time from the previous time to the current time.
  • reception rate measurement unit 111P subtracts the previous counter value from the current counter value.
  • the calculated value is called a difference size.
  • reception rate measuring section 111P divides the difference size by the elapsed time.
  • the calculated value is the reception rate in the communication flow F.
  • step S4134 the reception rate measurement unit 111P passes the reception rate in the communication flow F to the transmission processing unit 141P.
  • the transmission processing unit 141P generates a packet including a message indicating the reception rate in the communication flow F by performing the communication protocol processing.
  • the generated packet is called a reception rate packet in the communication flow F.
  • step S4135 the transmission processing unit 141P passes the reception rate packet in the communication flow F to the scheduling unit 142P.
  • the scheduling unit 142P performs scheduling for the reception rate packet in the communication flow F, and transmits the reception rate packet in the communication flow F according to the transmission schedule.
  • the scheduling is performed based on the shaping rate set in the scheduling unit 142P and the guaranteed bandwidth of each communication flow set in the scheduling unit 142P.
  • the reception rate packet in the communication flow F reaches the communication device 100M via the network 201.
  • the received packet passes from the reception rate measurement unit 111P to the reception processing unit 112P and is processed by the reception processing unit 112P.
  • the recording process is a process for recording the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P in the communication device 100M. Further, the recording process is a process for recording the reception rate of the communication device 100P in each communication flow in the communication device 100M.
  • the communication device 100M stores the reception rate in the storage unit 190M for each communication device 100 that is a communication partner. Further, the communication device 100M stores the reception rate in the storage unit 190M for each communication flow.
  • step S421 the reception rate measurement unit 111M receives the reception rate packet transmitted from the communication device 100P via the network 201.
  • the received reception rate packet is the reception rate packet transmitted in step S4125 or the reception rate packet transmitted in step S4135 (see FIG. 11).
  • the reception rate packet transmitted in step S4125 indicates the reception rate of communication device 100P in communication between communication device 100M and communication device 100P.
  • the reception rate packet transmitted in step S4135 indicates the reception rate of communication device 100P in communication flow F.
  • step S422 the reception rate measurement unit 111M performs a notification process as in the reception rate measurement unit 111P of the communication device 100P (see FIGS. 10 and 11).
  • the reception rate measurement unit 111M determines the type of the reception rate indicated in the reception rate packet. For example, the reception rate measuring unit 111M determines the type of the reception rate based on the reception rate type set in the reception rate packet. If the reception rate indicated in the reception rate packet is the reception rate of communication device 100P in communication between communication device 100M and communication device 100P, the process proceeds to step S424. If the reception rate indicated in the reception rate packet is the reception rate of communication device 100P in communication flow F, the process proceeds to step S426.
  • steps S424 and S425 the determination unit 130 records the reception rate of the communication device 100P in the communication between the communication device 100M and the communication device 100P.
  • Steps S424 and S425 are the same as steps S123 and S124 in the first embodiment (see FIG. 5).
  • step S426 the reception rate measurement unit 111M passes the reception rate packet to the reception processing unit 112M.
  • the reception processing unit 112M extracts a message from the reception rate packet by performing a communication protocol process.
  • the extracted message indicates the reception rate of the communication device 100P in the communication flow F.
  • the reception processing unit 112M passes the extracted message to the determination unit 130.
  • the determination unit 130 extracts the reception rate of the communication device 100P in the communication flow F from the message.
  • step S427 the determination unit 130 records the reception rate of the communication device 100P in the communication flow F. Specifically, the determination unit 130 updates the reception rate held as the reception rate of the communication device 100P in the communication flow F to the reception rate extracted from the message.
  • the estimation process is the same as the process in the first embodiment (see FIG. 6).
  • the setting process will be described with reference to FIG.
  • the setting process is a process for setting a shaping rate and a guaranteed bandwidth of each communication flow, and is executed by the communication device 100M.
  • step S441 the determination unit 130M selects one unselected communication flow in descending order of priority.
  • Step S441 is the same as step S141 in the first embodiment.
  • Steps S442 to S446 are executed for the communication flow Fi selected in step S441.
  • step S442 the determination unit 130M determines the assumed throughput Ri of the communication flow Fi based on the reception rate of the communication device 100P in the communication flow Fi. Specifically, the determination unit 130M determines the reception rate held as the latest reception rate of the communication device 100P in the communication flow Fi as the assumed throughput Ri of the communication flow Fi.
  • Steps S443 to S448 are the same as steps S144 to S149 in the first embodiment (see FIG. 7).
  • Embodiment 4 may be implemented in combination with Embodiment 3.
  • the same processing as the setting processing in the third embodiment may be performed. That is, in the fourth embodiment, the setting process shown in FIG. 14 may be performed.
  • processing other than step S345B is as described in the third embodiment (see FIG. 9).
  • Step S345B the determination unit 130M performs a determination process for retransmission control on the communication flow Fi. Specifically, determination unit 130M executes the determination processing (steps S442 to S445) in the fourth embodiment.
  • the communication device 100M plays a role as the communication device 100 on the receiving side, the communication device 100M operates in the same manner as the communication device 100P in each embodiment.
  • the communication device 100P plays the role of the communication device 100 on the transmission side, the communication device 100P operates in the same manner as the communication device 100M in each embodiment.
  • the hardware configuration of the communication device 100 will be described based on FIG.
  • the communication device 100 includes a processing circuit 109.
  • the processing circuit 109 is hardware that implements the reception unit 110, the estimation unit 120, the determination unit 130, the transmission unit 140, and the storage unit 190.
  • the processing circuit 109 may be dedicated hardware or the processor 101 that executes a program stored in the memory 102.
  • the processing circuit 109 is dedicated hardware, the processing circuit 109 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof.
  • ASIC is an abbreviation for Application Specific Integrated Circuit
  • FPGA is an abbreviation for Field Programmable Gate Array.
  • the communication device 100 may include a plurality of processing circuits replacing the processing circuit 109. The plurality of processing circuits share the role of the processing circuit 109.
  • processing circuit 109 some functions may be realized by dedicated hardware, and the remaining functions may be realized by software or firmware.
  • the processing circuit 109 can be realized by hardware, software, firmware, or a combination thereof.
  • 100 communication device 101 processor, 102 memory, 103 auxiliary storage device, 104 receiver, 105 transmitter, 109 processing circuit, 110 receiving unit, 111 receiving rate measuring unit, 112 receiving processing unit, 120 estimating unit, 130 determining unit, 140 transmitting Section, 141 ⁇ transmission processing section, 142 ⁇ scheduling section, 190 # storage section, 200 # communication system, 201 # network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

受信部(110)は、通信相手の受信レートを示すパケットを送信する。推定部(120)は、利用可能帯域を各時刻に推定する。決定部(130)は、受信レートと利用可能帯域の前回の推定値と利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローの保証帯域を決定する。送信部(140)は、利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを通信相手へ送信する。

Description

通信装置、通信方法および通信プログラム
 本発明は、通信フローの送信帯域を制御する技術に関するものである。
 パケット通信において高優先通信帯域不足問題が存在する。
 高優先通信帯域不足問題について以下に説明する。
 2拠点間で複数のアプリケーション(以下、APL)が同時に通信を行う場合を考える。
 2拠点は、ゲートウェイ装置(以下、GW)を介して、ベストエフォートサービスネットワークで接続される。
 各APLの通信フローが必要とする通信帯域(以下、必要帯域)、および、各APLの優先度が、予め与えられている。
 優先度が高いAPL(以下、高優先APL)の通信フローに関して受信レートが必要帯域以上の値となる様に制御するために、送信パケットのスケジューリングにおいて各通信フローの送信帯域として必要帯域を設定する方法が存在する。
 送信パケットのスケジューリングを行うためには、GWが、ベストエフォートサービスネットワークに対するトラフィック全体の送信レート(以下、シェーピングレート)を決める必要がある。シェーピングレートとして、2拠点間の利用可能帯域を使用することが適切である。しかし、2拠点間の利用可能帯域の測定は困難であるため、利用可能帯域を推定する必要があり、推定誤差が避けられない。また、2拠点間の利用可能帯域は変動するため利用可能帯域の推定値を更新する必要があり、更新が間に合わないと利用可能帯域の推定値の誤差が増大する可能性がある。
 送信側GWが送信パケットのスケジューリングを行う際に利用可能帯域の推定値がシェーピングレートとして使用される場合、利用可能帯域の推定値の誤差が原因で次のような問題が起き得る。
 起き得る問題は、真の利用可能帯域が高優先APLの必要帯域より大きいにも関わらず、高優先APLの通信フローの受信レートが必要帯域より小さくなる、という問題である。
 このような問題を高優先通信帯域不足問題と呼ぶ。
 通信フローの種類がTCPである場合について、高優先通信帯域不足問題の具体例を説明する。TCPは、Transmission Control Protocolの略称である。
 高優先APLが映像ストリームデータをサーバに送信すると仮定する。この映像ストリームデータの必要帯域は1Mbpsである。
 低優先APLがセンサデータストリームをサーバに送信すると仮定する。このセンサデータストリームの必要帯域は500kbpsである。
 そして、ボトルネックリンクにおいて、短期間のクロストラフィックが繰り返し発生する状況を仮定する。
 この状況において、利用可能帯域の推定値が真の利用可能帯域よりも大きくなる時間帯が生じる。この場合、TCPの輻輳制御アルゴリズムにより、2つの通信フローが真の利用可能帯域を2等分することとなる。このため、送信側GWが高優先APLの通信フローに必要帯域分の送信帯域を割り当てても、受信側GWでの高優先APLの受信レートが必要帯域未満になる時間帯が生じる。
 通信フローの種類がUDPである場合について、高優先通信帯域不足問題の具体例を説明する。UDPは、User Datagram Protocolの略称である。
 高優先APLがストリームデータをサーバに送信すると仮定する。このストリームデータの必要帯域は500kbpsである。
 低優先APLがストリームデータをサーバに送信すると仮定する。このストリームデータの必要帯域は300kbpsである。
 ベストエフォートサービスネットワークの利用可能帯域が600kbpsであり、利用可能帯域の推定値が700kbpsである、と仮定する。
 この場合、GWは、高優先APLの必要帯域を確保するため、最低帯域保証型パケットスケジューリングを行う。その際に、GWは、送信するパケットのトラフィック全体を利用可能帯域の推定値(700kbps)でシェーピングする。また、GWは、高優先APLの通信フローに最低保証帯域として500kbpsを割り当て、低優先APLの通信フローに最低保証帯域として200kbpを割り当てる。
 真の利用可能帯域は600kbpsであるので、真の利用可能帯域はGWのシェーピングレート(700kbps)より小さい。そのため、ボトルネックリンクにおいて、通信フローの優先度に関係なく、パケットロスが発生する。その結果、高優先APLの通信フローの受信レートが必要帯域未満となる。
 具体的には、高優先APLの通信フローの受信レートは、428.6kbps(=600kbps×(500kbps/700kbps))となる。つまり、高優先APLの通信フローの受信レート(428.6kbps)は必要帯域(500kbps)よりも小さい。
 高優先通信帯域不足問題の解決に関係する従来技術について説明する。
 特許文献1には、次のような方法が開示されている。再送データ量を考慮して各通信フローに送信帯域を割り当てる。または、再送データ量を考慮して各通信フローに送信帯域を割り当てた上で、再送データを優先して転送する。これにより、データ通信量が少ない通信フローでもデータの再送が滞るという事象を防止することが可能となる。
 特許文献2には、次のような方法が開示されている。アプリケーションが業務実行時に送信するデータ量と、業務に対して指定される優先度の情報とを用いる。具体的には、複数アプリケーションが送信する全データ量がネットワークの通信帯域を越えた場合、優先度の高い業務のコネクションにおいて最大限にデータを送信できるように、優先度の低い業務のコネクションにおけるデータの送信量を制限する。これにより、アプリケーションが実行する各業務の優先度に基づいて通信の優先制御を実現することが可能となる。
特開2014-049905号公報 特開2010-245612号公報
 特許文献1の方法では、通信フローに対して優先度と必要帯域とが指定されない。そのため、優先度が高い通信フローにおいて受信レートが必要帯域以上になる確率を高くすることができない。したがって、高優先通信帯域不足問題を解決することができない。
 特許文献2の方法では、通信フローに対して必要帯域が指定されない。また、受信側で受信されたデータの量が考慮されずに、通信帯域の割り当てが行われる。そのため、優先度が高い通信フローにおいて受信レートが必要帯域以上になる確率を高くすることができない。したがって、高優先通信帯域不足問題を解決することができない。
 本発明は、高優先通信帯域不足問題を解決できるようにすることを目的とする。
 本発明の通信装置は、1つの通信相手との間に発生する複数の通信フローを処理する通信装置である。
 前記複数の通信フローのそれぞれに優先度が与えられる。
 前記通信装置は、
 前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信部と、
 前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定部と、
 前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定部と、
 前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信部とを備える。
 本発明によれば、高優先通信帯域不足問題を解決することが可能となる。
実施の形態1における通信装置100の構成図。 実施の形態1における通信システム200の構成図。 実施の形態1における通信方法のフローチャート。 実施の形態1における通知処理のフローチャート。 実施の形態1における記録処理のフローチャート。 実施の形態1における推定処理のフローチャート。 実施の形態1における設定処理のフローチャート。 実施の形態2における設定処理のフローチャート。 実施の形態3における設定処理のフローチャート。 実施の形態4における通知処理のフローチャート。 実施の形態4における通知処理のフローチャート。 実施の形態4における記録処理のフローチャート。 実施の形態4における設定処理のフローチャート。 実施の形態4における設定処理の別例のフローチャート。 各実施の形態における通信装置100のハードウェア構成図。
 実施の形態および図面において、同じ要素または対応する要素には同じ符号を付している。説明した要素と同じ符号が付された要素の説明は適宜に省略または簡略化する。図中の矢印はデータの流れ又は処理の流れを主に示している。
 実施の形態1.
 再送制御を行うプロトコルを使用する通信フローを扱う形態について、図1から図7に基づいて説明する。
 再送制御を行うプロトコルの一例はTCPである。
***構成の説明***
 図1に基づいて、通信装置100の構成を説明する。
 通信装置100は、プロセッサ101とメモリ102と補助記憶装置103とレシーバ104とトランスミッタ105といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
 プロセッサ101は、演算処理を行うIC(Integrated Circuit)であり、他のハードウェアを制御する。例えば、プロセッサ101は、CPU(Central Processing Unit)である。
 メモリ102は揮発性の記憶装置である。メモリ102は、主記憶装置またはメインメモリとも呼ばれる。例えば、メモリ102はRAM(Random Access Memory)である。メモリ102に記憶されたデータは必要に応じて補助記憶装置103に保存される。
 補助記憶装置103は不揮発性の記憶装置である。例えば、補助記憶装置103は、ROM(Read Only Memory)、HDD(Hard Disk Drive)、またはフラッシュメモリである。補助記憶装置103に記憶されたデータは必要に応じてメモリ102にロードされる。
 レシーバ104およびトランスミッタ105は、例えば、通信チップまたはNIC(Network Interface Card)で実現される。
 通信装置100は、受信部110と推定部120と決定部130と送信部140といった要素を備える。これらの要素はソフトウェアで実現される。
 受信部110は、受信レート計測部111と受信処理部112とを含む。
 送信部140は、送信処理部141とスケジューリング部142とを含む。スケジューリング部142は、送信パケットスケジューラとして機能する。
 補助記憶装置103には、受信部110と推定部120と決定部130と送信部140としてコンピュータを機能させるための通信プログラムが記憶されている。通信プログラムは、メモリ102にロードされて、プロセッサ101によって実行される。
 さらに、補助記憶装置103にはOS(Operating System)が記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
 つまり、プロセッサ101は、OSを実行しながら、通信プログラムを実行する。
 通信プログラムを実行して得られるデータは、メモリ102、補助記憶装置103、プロセッサ101内のレジスタ、または、プロセッサ101内のキャッシュメモリといった記憶装置に記憶される。
 メモリ102は、各種データを記憶する記憶部190として機能する。但し、他の記憶装置が、メモリ102の代わりに、又は、メモリ102と共に、記憶部190として機能してもよい。
 通信装置100は、プロセッサ101を代替する複数のプロセッサを備えてもよい。複数のプロセッサは、プロセッサ101の役割を分担する。
 通信プログラムは、光ディスクまたはフラッシュメモリ等の不揮発性の記録媒体にコンピュータ読み取り可能に記録(格納)することができる。
 図2に基づいて、通信システム200の構成を説明する。
 通信システム200は、通信装置100Mと通信装置100Pとネットワーク201とを備える。
 通信装置100Mは、パケットを送信する側の通信装置100である。パケットの送信には、パケットを転送するという意味も含まれる。
 受信レート計測部111Mは、通信装置100Mに備わる受信レート計測部111である。
 受信処理部112Mは、通信装置100Mに備わる受信処理部112である。
 推定部120Mは、通信装置100Mに備わる推定部120である。
 決定部130Mは、通信装置100Mに備わる決定部130である。
 送信処理部141Mは、通信装置100Mに備わる送信処理部141である。
 スケジューリング部142Mは、通信装置100Mに備わるスケジューリング部142である。
 通信装置100Pは、パケットを受信する側の通信装置100である。つまり、通信装置100Pは、通信装置100Mの通信相手である。
 受信レート計測部111Pは、通信装置100Pに備わる受信レート計測部111である。
 受信処理部112Pは、通信装置100Pに備わる受信処理部112である。
 推定部120Pは、通信装置100Pに備わる推定部120である。
 決定部130Pは、通信装置100Pに備わる決定部130である。
 送信処理部141Pは、通信装置100Pに備わる送信処理部141である。
 スケジューリング部142Pは、通信装置100Pに備わるスケジューリング部142である。
 ネットワーク201は、ベストエフォートサービスネットワークである。
 図2において、白抜き矢印はパケットの流れを示し、線矢印はデータの流れ及び制御の流れを示す。
***動作の説明***
 通信装置100の動作は通信方法に相当する。また、通信方法の手順は通信プログラムの手順に相当する。
 通信システム200において、通信装置100Mは、1つの通信相手(通信装置100P)との間に発生する複数の通信フローを処理する。
 複数の通信フローのそれぞれには優先度が与えられる。
 また、複数の通信フローのそれぞれには必要帯域が設定される。必要帯域は、通信に必要な通信帯域である
 通信フローは、2つのアプリケーションプログラム間で行われる一連のデータ通信である。例えば、一方のアプリケーションプログラムは通信装置100Mにおいて実行され、他方のアプリケーションプログラムは通信装置100Pにおいて実行される。
 図3に基づいて、通信方法の概要を説明する。
 通信装置100Mに備わる受信部110を受信部110Mと称する。
 通信装置100Mに備わる送信部140を送信部140Mと称する。
 ステップS101において、受信部110Mは、受信レートパケットを通信相手から受信する。
 受信レートパケットは、通信相手との通信で通信相手によって受信された1つ以上のパケットについての受信レートを示すパケットである。
 ステップS102において、推定部120Mは、利用可能帯域を各時刻に推定する。つまり、推定部120Mは、各時刻における利用可能帯域を推定する。
 利用可能帯域は、通信相手との通信で利用することが可能な通信帯域である。
 ステップS103において、決定部130Mは、利用可能帯域が新たに推定されたときに、以下の(1)から(3)のデータに基づいて、優先度の高い順に、各通信フローの保証帯域を決定する。
 通信フローの保証帯域は、通信フローに割り当てる通信帯域である。言い換えると、通信フローの保証帯域は、通信フローにおいて保証される通信帯域である。つまり、通信フローの保証帯域は、通信フローにおける最低保証帯域を意味する。
 (1)通信相手から受信されたパケットが示す受信レート。
 (2)利用可能帯域の前回の推定値。
 (3)利用可能帯域の今回の推定値。
 ステップS104において、送信部140Mは、利用可能帯域の今回の推定値をシェーピングレートとして使用する。
 また、送信部140Mは、各通信フローの保証帯域を各通信フローに割り当てる。
 そして、送信部140Mは、各通信フローにおける通信パケットを通信相手へ送信する。通信フローにおける通信パケットは、通信フローにおいて通信されるパケットである。
 以下に、通信方法の詳細を説明する。
 図4に基づいて、通知処理を説明する。
 通知処理は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを通信装置100Mに通知するための処理である。通知処理は、通信装置100Pによって実行される。
 通信装置100Pは、通信相手となる通信装置100別に、受信カウンタと通知契機履歴とを記憶部190Pに保持する。記憶部190Pは通信装置100Pの記憶部190である。
 受信カウンタは、受信パケットのサイズの積算値を示すデータである。
 通知契機履歴は、通知契機毎に時刻と受信カウンタの値とを示すデータである。
 ステップS111において、通信装置100Pにパケットが到達した場合、受信レート計測部111Pは、到達したパケットを検出する。
 パケットが検出された場合、処理はステップS112に進む。
 パケットが検出されなかった場合、処理はステップS115に進む。
 ステップS112において、受信レート計測部111Pは、検出したパケットを受信する。受信されたパケットを受信パケットという。
 ステップS113において、受信レート計測部111Pは、受信パケットに含まれる情報に基づいて、受信パケットの送信元を判定する。
 例えば、受信レート計測部111Pは、受信パケットに設定されている送信元アドレスに基づいて、受信パケットの送信元を判定する。
 ステップS114において、受信レート計測部111Pは、受信パケットの送信元用の受信カウンタに受信パケットのサイズを加算する。
 ステップS115において、受信レート計測部111Pは、いずれかの通信相手に対する通知契機であるか判定する。
 例えば、通信装置100Mに対する前回の通知契機から一定周期が経過している場合、受信レート計測部111Pは、通信装置100Mに対する通信契機であると判定する。
 いずれかの通信相手に対する通知契機である場合、処理はステップS116に進む。
 いずれの通信相手に対する通知契機でもない場合、処理はステップS111に進む。
 ステップS116において、通信装置100Mに対する通知契機であると仮定する。
 受信レート計測部111Pは、通信装置100M用の通知契機履歴を更新する。
 具体的には、受信レート計測部111Pは、通信装置100M用の通知契機履歴に、現在時刻と通信装置100M用の受信カウンタの現在値との組を追加する。
 ステップS117において、受信レート計測部111Pは、通信装置100M用の通知契機履歴に基づいて、通信装置100Mに対する受信レートを算出する。
 具体的には、受信レート計測部111Pは、通信装置100Mに対する受信レートを以下のように算出する。
 まず、受信レート計測部111Pは、通信装置100M用の通知契機履歴から、前回の通知契機の時刻と前回の通知契機における受信カウンタの値とを取得する。取得される時刻を前回時刻という。また、取得される値を前回カウンタ値という。
 さらに、受信レート計測部111Pは、通信装置100M用の通知契機履歴から、今回の通知契機の時刻と今回の通知契機における受信カウンタの値とを取得する。取得される時刻を今回時刻という。また、取得される値を今回カウンタ値という。
 次に、受信レート計測部111Pは、前回時刻から今回時刻までの経過時間を算出する。また、受信レート計測部111Pは、今回カウンタ値から前回カウンタ値を減算する。算出される値を差分サイズという。
 そして、受信レート計測部111Pは、差分サイズを経過時間で除算する。算出される値が通信装置100Mに対する受信レートである。
 ステップS118において、受信レート計測部111Pは、通信装置100Mに対する受信レートを送信処理部141Pに渡す。
 送信処理部141Pは、通信プロトコル処理を行うことによって、通信装置100Mに対する受信レートを示すメッセージを含んだパケットを生成する。生成されるパケットを受信レートパケットという。
 ステップS119において、送信処理部141Pは、受信レートパケットをスケジューリング部142Pに渡す。
 スケジューリング部142Pは、受信レートパケットに対するスケジューリングを行い、送信スケジュールに従って受信レートパケットを送信する。スケジューリングは、スケジューリング部142Pに設定されているシェーピングレートとスケジューリング部142Pに設定されている各通信フローの保証帯域とに基づいて行われる。
 受信レートパケットは、ネットワーク201を介して、通信装置100Mに到達する。
 ステップS119の後、処理はステップS111に進む。
 なお、受信パケットは、受信レート計測部111Pから受信処理部112Pに渡り、受信処理部112Pによって処理される。
 図5に基づいて、記録処理を説明する。
 記録処理は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを通信装置100Mに記録するための処理である。記録処理は、通信装置100Mによって実行される。
 通信装置100Mは、通信相手となる通信装置100別に、受信レートを記憶部190Mに保持する。記憶部190Mは通信装置100Mの記憶部190である。
 ステップS121において、受信レート計測部111Mは、ネットワーク201を介して、通信装置100Pから送信された受信レートパケットを受信する。
 ステップS122において、受信レート計測部111Mは、通信装置100Pの受信レート計測部111Pと同じく、通知処理を行う(図4参照)。
 ステップS123において、受信レート計測部111Mは、受信レートパケットを受信処理部112Mへ渡す。
 受信処理部112Mは、通信プロトコル処理を行うことによって、受信レートパケットからメッセージを抽出する。抽出されるメッセージは通信装置100Pの受信レートを示す。
 受信処理部112Mは、抽出したメッセージを決定部130へ渡す。
 決定部130は、メッセージから通信装置100Pの受信レートを抽出する。
 ステップS124において、決定部130は、通信装置100Pの受信レートを記録する。
 具体的には、決定部130は、通信装置100Pの受信レートとして保持されている受信レートをメッセージから抽出した受信レートで更新する。
 図6に基づいて、推定処理を説明する。
 推定処理は、通信装置100Mと通信装置100Pとの間での通信における利用可能帯域を推定する処理であり、通信装置100Mによって実行される。
 通信装置100Mは、通信相手となる通信装置100別に、利用可能帯域の前回の推定値と利用可能帯域の今回の推定値とを記憶部190Mに保持する。
 ステップS131において、推定部120Mは、いずれかの通信相手に対する推定契機であるか判定する。
 例えば、通信装置100Pに対する前回の推定契機から一定定周期が経過している場合、推定部120Mは、通信装置100Pに対する推定契機であると判定する。
 いずれかの通信相手に対する推定契機である場合、処理はステップS132に進む。
 いずれかの通信相手に対する推定契機でない場合、処理はステップS131に進む。
 ステップS132において、通信装置100Pに対する推定契機であると仮定する。
 推定部120Mは、通信装置100Pに対する利用可能帯域を推定する。
 具体的には、推定部120Mは、従来の推定方法を実行することによって、通信装置100Pに対する利用可能帯域を推定する。
 例えば、推定部120Mは、TCP Friendly Rate Control(TFRC)を実行することによって、通信装置100Pに対する利用可能帯域を推定する。
 ステップS133において、推定部120Mは、通信装置100Pに対する利用可能帯域の推定値を決定部130Mに渡す。
 決定部130Mは、通信装置100Pに対する利用可能帯域の推定値を記録する。
 具体的には、決定部130Mは、通信装置100Pに対する前回の利用可能帯域として保持されている値を通信装置100Pに対する今回の利用可能帯域として保持されている値に更新する。そして、決定部130Mは、通信装置100Pに対する今回の利用可能帯域として保持されている値を推定部120Mから渡された推定値に更新する。
 図7に基づいて、設定処理を説明する。
 設定処理は、シェーピングレートと各通信フローの保証帯域とを設定するための処理であり、通信装置100Mによって実行される。
 通信装置100Pに対する利用可能帯域の推定値が推定部120Mから決定部130Mに通知されたものと仮定する。つまり、ステップS133(図6参照)が実行されたものと仮定する。
 また、通信装置100Mと通信装置100Pとの間で複数の通信フローが発生しているものと仮定する。
 設定処理(図7)で使用される変数を説明する。
 「Wo」は、利用可能帯域の前回の推定値を示す。
 「Wn」は、利用可能帯域の今回の推定値のうちの残りの利用可能帯域を示す。初期値は、利用可能帯域の今回の推定値である。
 「Fi」は、優先度がi番目に高い通信フローを表す。「i」は1以上の整数である。
 「Bi」は、通信フローFiに設定される必要帯域を示す。
 「Si」は、通信フローFiに対する保証帯域を示す。
 「Ra」は、直近に通信装置100Pから通知された受信レートを示す。
 「Di」は、通信フローFiにおける通信帯域の過不足についての直近の過去N回の設定処理(図7)における積算値を示す。「N」は、予め決められた1以上の整数である。
 「Ri」は、通信フローFiの想定スループットを示す。想定スループットは、通信フローFiの受信スループットとして設定処理(図7)で使用される値である。
 ステップS141において、決定部130Mは、優先度の高い順に、未選択の通信フローを1つ選択する。
 ステップS142からステップS147は、ステップS141で選択された通信フローFiのために実行される。
 ステップS142において、決定部130Mは、受信レートRaを利用可能帯域の前回の推定値Woと比較する。
 ステップS143において、決定部130Mは、比較結果と現在の保証帯域Siとに基づいて、通信フローFiの想定スループットRiを決定する。
 現在の保証帯域Siは、通信フローFiに割り当てられている通信帯域を意味する。
 具体的には、決定部130Mは、通信フローFiの想定スループットRiを以下のように決定する。
 受信レートRaが利用可能帯域の前回の推定値Woより小さい場合、決定部130Mは、現在の保証帯域Siより小さい値を想定スループットRiに設定する。現在の保証帯域Siより小さい値について後述する。
 受信レートRaが利用可能帯域の前回の推定値Wo以上である場合、決定部130Mは、現在の保証帯域Siを想定スループットRiに設定する。
 現在の保証帯域Siより小さい値の第1の具体例を説明する。
 受信レートRaが利用可能帯域の前回の推定値Woより小さい場合、決定部130Mは、現在の保証帯域Siより小さい値を以下のように算出する。
 決定部130Mは、現在の保証帯域Siと複数の通信フローにおける現在の保証帯域の平均とのうちの小さい方の値を選択する。
 決定部130Mは、受信レートRaを利用可能帯域の前回の推定値Woで除算する。
 そして、決定部130Mは、除算によって算出された値に選択された値を乗算する。乗算によって算出される値が、現在の保証帯域Siより小さい値である。
 現在の保証帯域Siより小さい値が想定スループットRiに設定される。想定スループットRiは、次の式で表すことができる。min(X,Y)は値Xと値Yとのうちの小さい方の値を意味する。
 Ri = (Ra/Wo)*min(現在のSi,(現在のSiの合計/通信フロー数))
 現在の保証帯域Siより小さい値の第2の具体例を説明する。
 決定部130Mは、調整係数Faを現在の保証帯域Siに乗算する。算出される値が、現在の保証帯域Siより小さい値である。調整係数Faは、予め指定されるパラメータであり、0より大きく1より小さい。
 現在の保証帯域Siより小さい値が想定スループットRiに設定される。想定スループットR1は、次の式で表すことができる。
 Ri = Fa*現在のSi
 0 < Fa < 1
 ステップS144において、決定部130Mは、通信フローFiの想定スループットRiと、通信フローFiの必要帯域Biと、経過時間Twとに基づいて、通信フローFiにおける通信帯域の過不足の積算値Diを算出する。
 経過時間Twは、利用可能帯域の前回の推定時刻から利用可能帯域の今回の推定時刻までの時間である。
 具体的には、決定部130Mは、積算値Diを以下のように算出する。
 決定部130Mは、想定スループットRiを必要帯域Biと比較する。
 想定スループットRiが必要帯域Biより小さい場合、決定部130Mは、通信フローFiについて経過時間Twにおける通信帯域の不足量Shを算出し、積算値Diに不足量Shを加算する。
 不足量Shは、必要帯域Biから想定スループットRiを減算して算出される値に経過時間Twを乗算することによって算出される。
 不足量Shは、次の式で表すことができる。
 Sh = (Bi-Ri)*Tw
 積算値Diは、次の式で表すことができる。
 Di = Di+Sh
 想定スループットRiが必要帯域Bi以上である場合、決定部130Mは、通信フローFiについて経過時間Twおける通信帯域の超過量Ovを算出し、積算値Diから超過量Ovを減算する。
 超過量Ovは、想定スループットRiから必要帯域Biを減算して得られる値に経過時間Twを乗算することによって算出される。
 超過量Ovは、次の式で表すことができる。
 Ov = (Ri-Bi)*Tw
 積算値Diは、次の式で表すことができる。
 Di = Di-Ov
 ステップS145において、決定部130Mは、通信フローFiにおける通信帯域の過不足の積算値Diに基づいて、通信フローFiにおける通信帯域の過不足を判定する。
 具体的には、決定部130Mは、通信フローFiにおける通信帯域の過不足を以下のように判定する。
 積算値Diが0より大きい場合、つまり、積算値Diが正の値である場合、決定部130Mは、通信フローFiにおける通信帯域が不足していると判定する。
 積算値Diが0以下である場合、つまり、積算値Diが0または負の値である場合、決定部130Mは、通信フローFiにおける通信帯域が超過していると判定する。
 ステップS146において、決定部130Mは、判定結果と通信フローFiの必要帯域Biと残りの利用可能帯域Wnとに基づいて、通信フローFiの保証帯域Siを決定する。また、決定部130Mは、通信フローFiの積算値Diを0に初期化する。
 具体的には、決定部130Mは、保証帯域Siを以下のように決定する。
 まず、通信フローFiにおける通信帯域が不足している場合、つまり、積算値Diが0より大きい場合について説明する。
 決定部130Mは、必要帯域Biと積算値Diとの合計を算出し、算出した合計と残りの利用可能帯域Wnとのうちの小さい方の値を選択する。選択される値を変更上限Maという。
 そして、決定部130Mは、必要帯域Bi以上で且つ変更上限Ma以下の範囲から保証帯域Siを選択する。
 変更上限Maは、次の式で表すことができる。
 Ma = min(Wn,(Bi+Di))
 保障帯域Siは、次の式で表すことができる。
 Bi ≦ Si ≦ Ma
 選択される保証帯域Siの第1の具体例を説明する。
 決定部130Mは、必要帯域Biに調整値Qを加算する。調整値Qは、あらかじめ指定されるパラメータである。算出される値を調整帯域という。
 そして、決定部130Mは、調整帯域と変更上限Maとのうちの小さい方の値を保証帯域Siとして選択する。
 保証帯域Siは、次の式で表すことができる。
 Si = min((Bi+Q),min(Wn,(Bi+Di)))
 選択される保証帯域Siの第2の具体例を説明する。
 決定部130Mは、変更上限Maを保証帯域Siに決定する。
 保証帯域Siは、次の式で表すことができる。
 Si = min(Wn,(Bi+Di))
 次に、通信フローFiにおける通信帯域が超過している場合、つまり、積算値Diが0以下である場合について説明する。
 決定部130Mは、残りの利用可能帯域Wnと必要帯域Biとのうちの小さい方の値を保証帯域Siに決定する。
 保障帯域Siは、次の式で表すことができる。
 Si = min(Wn,Bi)
 ステップS147において、決定部130Mは、通信フローFiの保証帯域Siに基づいて、残りの利用可能帯域Wnを更新する。
 具体的には、決定部130Mは、残りの利用可能帯域Wnから保証帯域Siを減算することによって、残りの利用可能帯域Wnを更新する。但し、残りの利用可能帯域Wnの下限を0とする。
 残りの利用可能帯域Wnは、次の式で表すことができる。max(X,Y)は、値Xと値Yとのうちの大きい方の値を意味する。
 Wn = max(0,(Wn-Si))
 ステップS148において、決定部130Mは、未選択の通信フローがあるか判定する。図7において、未選択の通信フローを未選択フローと記す。
 未選択の通信フローがある場合、処理はステップS141に進む。
 未選択の通信フローがない場合、処理はステップS149に進む。
 ステップS149において、決定部130Mは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部142に設定する。
 さらに、決定部130Mは、各通信フローFiの保証帯域Siをスケジューリング部142に設定する。
***実施の形態1の効果***
 受信レートが必要帯域を下回る事象が発生した場合に、当該通信フローの受信レートの必要帯域に対する不足分の推定値を積算することができる。
 高優先度の通信フローについて、受信レートの必要帯域に対する不足分の推定値の積算値が正の場合に、低優先度の通信フローよりも優先的に最低保証帯域値を必要帯域より大きい値に設定することができる。また、不足分の推定値の積算値を0に減らすことができる。
 これらの動作により、優先度が高い通信フローほど、受信レートの必要帯域に対する不足分の推定値の積算値が正になる期間を短くすることが可能となる。また、優先度が高い通信フローが使用する送信帯域が必要帯域より大きくなる分量を必要十分な値に抑制することが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしないことも可能となる。
 つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らすことが可能となる。
 実施の形態2.
 再送制御を行わないプロトコルを使用する通信フローを扱う形態について、主に実施の形態1と異なる点を図8に基づいて説明する。
 再送制御を行わないプロトコルの一例はUDPである。
***構成の説明***
 通信装置100の構成は、実施の形態1における構成と同じである(図1参照)。
 通信システム200の構成は、実施の形態1における構成と同じである(図2参照)。
***動作の説明***
 通信方法の概要は、実施の形態1における概要と同じである(図3参照)。
 以下に通信方法の詳細を説明する。
 通知処理は、実施の形態1における処理と同じである(図4参照)。
 記録処理は、実施の形態1における処理と同じである(図5参照)。
 推定処理は、実施の形態1における処理と同じである(図6参照)。
 図8に基づいて、設定処理を説明する。
 設定処理(図8)で使用される変数を説明する。
 「Wo」は、利用可能帯域の前回の推定値を示す。
 「Wn」は、利用可能帯域の今回の推定値のうちの残りの利用可能帯域を示す。初期値は、利用可能帯域の今回の推定値である。
 「Fi」は、優先度がi番目に高い通信フローを表す。「i」は1以上の整数である。
 「Bi」は、通信フローFiに設定される必要帯域を示す。
 「Si」は、通信フローFiに対する保証帯域を示す。
 「Ra」は、直近に通信装置100Pから通知された受信レートを示す。
 「P」は、比較値Pvの集合であり、今回までのM回の設定処理におけるM個の比較値Pvを含む。「M」は、1以上の整数である。
 比較値Pvは、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートに対する利用可能帯域の前回の推定値の大きさを表す値である。
 利用可能帯域の前回の推定値が受信レートより大きい場合、比較値Pvは、利用可能帯域の前回の推定値を受信レートで除算することによって算出される値である。
 利用可能帯域の前回の推定値が受信レート以下である場合、比較値Pvは1である。
 「C」は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートに対する利用可能帯域の想定倍率である。想定倍率Cは、利用可能帯域の推定値が通信装置100Pの受信レートの何倍まで大きくなる可能性があるかを表す。想定倍率Cは、集合Pを入力として求められる。
 ステップS241において、決定部130Mは、利用可能帯域の前回の推定値Woと受信レートRaとに基づいて、比較値Pvの集合Pを更新する。
 具体的には、決定部130Mは、比較値の集合Pを以下のように更新する。
 決定部130Mは、前回の推定値Woを受信レートRaで除算して算出される値と1とのうちの大きい方の値を今回の比較値Pvとして集合Pに追加する。
 集合PにM個以上の比較値Pvが含まれる場合、決定部130Mは、集合Pから最も古い比較値Pvを削除する。
 ステップS242において、決定部130Mは、比較値の集合Pに基づいて、想定倍率Cを決定する。
 想定倍率Cの第1の具体例を説明する。
 決定部130Mは、集合Pから最大の比較値Pvを選択し、選択した比較値Pvを想定倍率Cに設定する。つまり、決定部130Mは、選択した比較値Pvの値を想定倍率に決定する。
 想定倍率Cの第2の具体例を説明する。
 決定部130Mは、集合Pにおける比較値Pvの平均を算出し、算出した平均を想定倍率Cに設定する。つまり、決定部130Mは、算出した平均を想定倍率に決定する。
 想定倍率Cの第3の具体例を説明する。
 決定部130Mは、集合Pに含まれるM個の比較値Pvを時系列データとして扱い、その時系列データに自己回帰和分移動平均モデル(ARIMAモデル)を適用する。これにより、決定部130Mは、次回の比較値Pvを予測する。
 そして、決定部130Mは、予測された値を想定倍率Cに設定する。つまり、決定部130Mは、予測された値を想定倍率に決定する。
 ステップS243において、決定部130Mは、優先度の高い順に、未選択の通信フローを1つ選択する。
 ステップS244およびステップS245は、ステップS243で選択された通信フローFiのために実行される。
 ステップS244において、決定部130Mは、想定倍率Cと通信フローFiの必要帯域Biと残りの利用可能帯域Wnとに基づいて、通信フローFiの保証帯域Siを決定する。
 具体的には、決定部130Mは、想定倍率Cを必要帯域Biに乗算して算出される値と残りの利用可能帯域Wnとのうちの小さい方の値を保証帯域Siに決定する。
 保証帯域Siは、次の式で表すことができる。
 Si = min(Wn,(C*Bi))
 ステップS245において、決定部130Mは、通信フローFiの保証帯域Siに基づいて、残りの利用可能帯域Wnを更新する。
 ステップS245は、実施の形態1におけるステップS147と同じである(図7参照)。
 ステップS246において、決定部130Mは、未選択の通信フローがあるか判定する。図8において、未選択の通信フローを未選択フローと記す。
 未選択の通信フローがある場合、処理はステップS243に進む。
 未選択の通信フローがない場合、処理はステップS247に進む。
 ステップS247において、決定部130Mは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部142に設定する。
 さらに、決定部130Mは、各通信フローFiの保証帯域Siをスケジューリング部142に設定する。
***実施の形態2の効果***
 利用可能帯域の推定値が受信レートの何倍(以下、X倍)になるかを推定することができる。
 利用可能帯域の推定値が受信レートのX倍になった場合、高優先度の通信フローに必要帯域のX倍の送信帯域を割り当てることができる。つまり、通信フローの受信レートが送信帯域の1/X倍になるという前提の下、高優先度の通信フローに対して、低優先度の通信フローよりも優先的に、必要帯域のX倍の送信帯域を割り当てることができる。
 これらの動作により、優先度が高い通信フローほど、受信レートが必要帯域を下回る頻度を減らすことが可能となる。また、優先度が高い通信フローが使用する送信帯域が必要帯域より大きくなる分量を必要十分な値に抑制することが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしないことも可能となる。
 つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らすことが可能となる。
 実施の形態3.
 再送制御を行うプロトコルを使用する通信フローと再送制御を行わないプロトコルを使用する通信フローとの両方を処理する形態について、実施の形態1および実施の形態2と異なる点を図9に基づいて主に説明する。
***構成の説明***
 通信装置100の構成は、実施の形態1における構成と同じである(図1参照)。
 通信システム200の構成は、実施の形態1における構成と同じである(図2参照)。
***動作の説明***
 通信方法の概要は、実施の形態1における概要と同じである(図3参照)。
 以下に通信方法の詳細を説明する。
 通知処理は、実施の形態1における処理と同じである(図4参照)。
 記録処理は、実施の形態1における処理と同じである(図5参照)。
 推定処理は、実施の形態1における処理と同じである(図6参照)。
 図9に基づいて、設定処理を説明する。
 ステップS341において、決定部130Mは、利用可能帯域の前回の推定値Woと受信レートRaとに基づいて、比較値の集合Pを更新する。
 ステップS342において、決定部130Mは、比較値の集合Pに基づいて、想定比Cを更新する。
 ステップS341およびステップS342は、実施の形態2におけるステップS241およびステップS242と同じである(図8参照)。
 ステップS343において、決定部130Mは、優先度の高い順に、未選択の通信フローを1つ選択する。
 ステップS344からステップS346は、ステップS343で選択された通信フローFiのために実行される。
 ステップS344において、決定部130Mは、通信フローFiの種類を判定する。
 具体的には、決定部130Mは、通信フローFiが再送制御用の通信フローと非再送制御用の通信フローとのいずれであるかを判定する。
 再送制御用の通信フローは、再送制御を行うプロトコルを使用する通信フローである。つまり、再送制御用の通信フローは、実施の形態1において処理される通信フローである。
 非再送制御用の通信フローは、再送制御を行わないプロトコルを使用する通信フローである。つまり、非再送制御用の通信フローは、実施の形態2において処理される通信フローである。
 通信フローFiが再送制御用の通信フローである場合、処理はステップS345に進む。
 通信フローFiが非再送制御用の通信フローである場合、処理はステップS346に進む。
 ステップS345において、決定部130Mは、通信フローFiに対して再送制御用の決定処理を行う。
 再送制御用の決定処理は、通信フローFiの保証帯域Siを決定するための処理である。
 具体的には、決定部130Mは、実施の形態1における決定処理(ステップS142からステップS146)を実行する。
 ステップS346において、決定部130Mは、通信フローFiに対して非再送制御用の決定処理を行う。
 再送制御用の決定処理は、通信フローFiの保証帯域Siを決定するための処理である。
 具体的には、決定部130Mは、実施の形態2における決定処理(ステップS244)を実行する。
 ステップS347において、決定部130Mは、通信フローFiの保証帯域Siに基づいて、残りの利用可能帯域Wnを更新する。
 ステップS347は、実施の形態1におけるステップS147と同じである(図7参照)。
 ステップS348において、決定部130Mは、未選択の通信フローがあるか判定する。図9において、未選択の通信フローを未選択フローと記す。
 未選択の通信フローがある場合、処理はステップS343に進む。
 未選択の通信フローがない場合、処理はステップS349に進む。
 ステップS349において、決定部130Mは、利用可能帯域の今回の推定値をシェーピングレートとしてスケジューリング部142に設定する。
 さらに、決定部130Mは、各通信フローFiの保証帯域Siをスケジューリング部142に設定する。
***実施の形態3の効果***
 再送制御を行うプロトコルを使用する通信フローと再送制御を行わないプロトコルを使用する通信フローとのいずれについても、実施の形態1または実施の形態2の効果を奏することができる。
 つまり、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らす効果が得られる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしない効果が得られる。
 実施の形態4.
 通信フローにおける通信相手の受信レートに基づいて通信フローの想定スループットを決定する形態について、実施の形態1および実施の形態3と異なる点を図10から図14に基づいて主に説明する。
***構成の説明***
 通信装置100の構成は、実施の形態1における構成と同じである(図1参照)。
 通信システム200の構成は、実施の形態1における構成と同じである(図2参照)。
***動作の説明***
 通信方法の概要は、実施の形態1における概要と同じである(図3参照)。
 以下に通信方法の詳細を説明する。
 図10および図11に基づいて、通知処理を説明する。
 通知処理は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを通信装置100Mに通知するための処理である。さらに、通知処理は、各通信フローにおける通信装置100Pの受信レートを通信装置100Mに通知するための処理である。通知処理は、通信装置100Pによって実行される。
 通信装置100Pは、通信相手となる通信装置100別に、受信カウンタと通知契機履歴とを記憶部190Pに保持する。さらに、通信装置100Pは、通信フロー別に、受信カウンタと通知契機履歴とを記憶部190Pに保持する。
 受信カウンタは、受信パケットのサイズの積算値を示すデータである。
 通知契機履歴は、通知契機毎に時刻と受信カウンタの値とを示すデータである。
 ステップS4111からステップS4114は、実施の形態1におけるステップS111からステップS114と同じである(図4参照)。
 ステップS4111において、通信装置100Pにパケットが到達した場合、受信レート計測部111Pは、到達したパケットを検出する。
 パケットが検出された場合、処理はステップS4112に進む。
 パケットが検出されなかった場合、処理はステップS4121に進む。
 ステップS4112において、受信レート計測部111Pは、検出したパケットを受信する。受信されたパケットを受信パケットという。
 ステップS4113において、受信レート計測部111Pは、受信パケットに含まれる情報に基づいて、受信パケットの送信元を判定する。
 例えば、受信レート計測部111Pは、受信パケットに設定されている送信元アドレスに基づいて、受信パケットの送信元を判定する。
 ステップS4114において、受信レート計測部111Pは、受信パケットの送信元用の受信カウンタに受信パケットのサイズを加算する。
 ステップS4115において、受信レート計測部111Pは、受信パケットに含まれる情報に基づいて、受信パケットの通信フローを判定する。
 例えば、受信レート計測部111Pは、送信元アドレスとプロトコル種別と宛先ポート番号と送信元ポート番号といった情報に基づいて、受信パケットの通信フローを判定する。
 ステップS4116において、受信レート計測部111Pは、受信パケットの通信フロー用の受信カウンタに受信パケットのサイズを加算する。
 ステップS4116の後、処理はステップS4121に進む。
 ステップS4121からステップS4125において、通信装置100M(通信相手)に対する第1通知契機である場合、受信レート計測部111Pは、第1受信レートパケットを通信装置100Mへ送信する。
 第1通知契機は、通信相手に対する受信レートを通知する契機である。
 ステップS4121からステップS4125は、実施の形態1におけるステップS115からステップS119と同じである(図4参照)。
 ステップS4131において、受信レート計測部111Pは、いずれかの通信フローについての第2通知契機であるか判定する。
 第2通知契機は、通信フローにおける受信レートを通知する契機である。
 例えば、通信フローFについての前回の通知契機から一定周期が経過している場合、受信レート計測部111Pは、通信フローFについての第2通知契機であると判定する。
 いずれかの通信フローについての第2通知契機である場合、処理はステップS4132に進む。
 いずれかの通信フローについての第2通知契機である場合、処理はステップS4132に進む。
 いずれの通信フローについての第2通知契機でもない場合、処理はステップS4111に進む。
 ステップS4132において、通信フローFについての第2通知契機であると仮定する。また、通信フローFにおいて、通信装置100Pの通信相手が通信装置100Mであると仮定する。
 受信レート計測部111Pは、通信フローF用の通知契機履歴を更新する。
 具体的には、受信レート計測部111Pは、通信フローF用の通知契機履歴に、現在時刻と通信フローF用の受信カウンタの現在値との組を追加する。
 ステップS4133において、受信レート計測部111Pは、通信フローF用の通知契機履歴に基づいて、通信フローFにおける受信レートを算出する。
 具体的には、受信レート計測部111Pは、通信フローFにおける受信レートを以下のように算出する。
 まず、受信レート計測部111Pは、通信フローF用の通知契機履歴から、前回の通知契機の時刻と前回の通知契機における受信カウンタの値とを取得する。取得される時刻を前回時刻という。また、取得される値を前回カウンタ値という。
 さらに、受信レート計測部111Pは、通信フローF用の通知契機履歴から、今回の通知契機の時刻と今回の通知契機における受信カウンタの値とを取得する。取得される時刻を今回時刻という。また、取得される値を今回カウンタ値という。
 次に、受信レート計測部111Pは、前回時刻から今回時刻までの経過時間を算出する。また、受信レート計測部111Pは、今回カウンタ値から前回カウンタ値を減算する。算出される値を差分サイズという。
 そして、受信レート計測部111Pは、差分サイズを経過時間で除算する。算出される値が通信フローFにおける受信レートである。
 ステップS4134において、受信レート計測部111Pは、通信フローFにおける受信レートを送信処理部141Pに渡す。
 送信処理部141Pは、通信プロトコル処理を行うことによって、通信フローFにおける受信レートを示すメッセージを含んだパケットを生成する。生成されるパケットを通信フローFにおける受信レートパケットという。
 ステップS4135において、送信処理部141Pは、通信フローFにおける受信レートパケットをスケジューリング部142Pに渡す。
 スケジューリング部142Pは、通信フローFにおける受信レートパケットに対するスケジューリングを行い、送信スケジュールに従って通信フローFにおける受信レートパケットを送信する。スケジューリングは、スケジューリング部142Pに設定されているシェーピングレートとスケジューリング部142Pに設定されている各通信フローの保証帯域とに基づいて行われる。
 通信フローFにおける受信レートパケットは、ネットワーク201を介して、通信装置100Mに到達する。
 ステップS4135の後、処理はステップS4111に進む。
 なお、受信パケットは、受信レート計測部111Pから受信処理部112Pに渡り、受信処理部112Pによって処理される。
 図12に基づいて、記録処理を説明する。
 記録処理は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを通信装置100Mに記録するための処理である。さらに、記録処理は、各通信フローにおける通信装置100Pの受信レートを通信装置100Mに記録するための処理である。
 通信装置100Mは、通信相手となる通信装置100別に、受信レートを記憶部190Mに保持する。さらに、通信装置100Mは、通信フロー別に、受信レートを記憶部190Mに保持する。
 ステップS421において、受信レート計測部111Mは、ネットワーク201を介して、通信装置100Pから送信された受信レートパケットを受信する。
 受信される受信レートパケットは、ステップS4125で送信される受信レートパケットまたはステップS4135で送信される受信レートパケットである(図11参照)。
 ステップS4125で送信される受信レートパケットは、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを示す。
 ステップS4135で送信される受信レートパケットは、通信フローFにおける通信装置100Pの受信レートを示す。
 ステップS422において、受信レート計測部111Mは、通信装置100Pの受信レート計測部111Pと同じく、通知処理を行う(図10および図11を参照)。
 ステップS423において、受信レート計測部111Mは、受信レートパケットに示される受信レートの種類を判定する。
 例えば、受信レート計測部111Mは、受信レートパケットに設定される受信レート種別に基づいて、受信レートの種類を判定する。
 受信レートパケットに示される受信レートが通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートである場合、処理はステップS424に進む。
 受信レートパケットに示される受信レートが通信フローFにおける通信装置100Pの受信レートである場合、処理はステップS426に進む。
 ステップS424およびステップS425において、決定部130は、通信装置100Mと通信装置100Pとの通信における通信装置100Pの受信レートを記録する。
 ステップS424およびステップS425は、実施の形態1におけるステップS123およびステップS124と同じである(図5参照)。
 ステップS426において、受信レート計測部111Mは、受信レートパケットを受信処理部112Mへ渡す。
 受信処理部112Mは、通信プロトコル処理を行うことによって、受信レートパケットからメッセージを抽出する。抽出されるメッセージは通信フローFにおける通信装置100Pの受信レートを示す。
 受信処理部112Mは、抽出したメッセージを決定部130へ渡す。
 決定部130は、メッセージから通信フローFにおける通信装置100Pの受信レートを抽出する。
 ステップS427において、決定部130は、通信フローFにおける通信装置100Pの受信レートを記録する。
 具体的には、決定部130は、通信フローFにおける通信装置100Pの受信レートとして保持されている受信レートをメッセージから抽出した受信レートに更新する。
 推定処理は、実施の形態1における処理と同じである(図6参照)。
 図13に基づいて、設定処理を説明する。
 設定処理は、シェーピングレートと各通信フローの保証帯域とを設定するための処理であり、通信装置100Mによって実行される。
 ステップS441において、決定部130Mは、優先度の高い順に、未選択の通信フローを1つ選択する。
 ステップS441は、実施の形態1におけるステップS141と同じである。
 ステップS442からステップS446は、ステップS441で選択された通信フローFiのために実行される。
 ステップS442において、決定部130Mは、通信フローFiにおける通信装置100Pの受信レートに基づいて、通信フローFiの想定スループットRiを決定する。
 具体的には、決定部130Mは、通信フローFiにおける通信装置100Pの直近の受信レートとして保持されている受信レートを通信フローFiの想定スループットRiに決定する。
 ステップS443からステップS448は、実施の形態1におけるステップS144からステップS149と同じである(図7参照)。
***実施の形態4の効果***
 受信レートの必要帯域に対する不足分の積算値の精度を高くすることが可能となる。そのため、高優先通信フローの受信レートが必要帯域より小さくなる高優先通信帯域不足問題の発生頻度を減らす効果の精度を高めることが可能となる。さらに、優先度が低い通信フローに割り当てる送信帯域を必要以上に低くしない効果の精度を高めることが可能となる。
***他の構成***
 実施の形態4は実施の形態3と組み合わせて実施されてもよい。
 具体的には、実施の形態4において、実施の形態3における設定処理と同様の処理が行われてもよい。つまり、実施の形態4において、図14に示す設定処理が行われてもよい。
 図14に示す設定処理において、ステップS345B以外の処理は、実施の形態3で説明した通りである(図9参照)。
 ステップS345Bにおいて、決定部130Mは、通信フローFiに対して再送制御用の決定処理を行う。
 具体的には、決定部130Mは、実施の形態4における決定処理(ステップS442からステップS445)を実行する。
***実施の形態の補足***
 通信装置100Mが受信側の通信装置100としての役割を果たす場合、通信装置100Mは、各実施の形態における通信装置100Pと同様に動作する。
 通信装置100Pが送信側の通信装置100としての役割を果たす場合、通信装置100Pは、各実施の形態における通信装置100Mと同様に動作する。
 図15に基づいて、通信装置100のハードウェア構成を説明する。
 通信装置100は処理回路109を備える。
 処理回路109は、受信部110と推定部120と決定部130と送信部140と記憶部190とを実現するハードウェアである。
 処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
 処理回路109が専用のハードウェアである場合、処理回路109は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらの組み合わせである。
 ASICはApplication Specific Integrated Circuitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
 通信装置100は、処理回路109を代替する複数の処理回路を備えてもよい。複数の処理回路は、処理回路109の役割を分担する。
 処理回路109において、一部の機能が専用のハードウェアで実現されて、残りの機能がソフトウェアまたはファームウェアで実現されてもよい。
 このように、処理回路109はハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせで実現することができる。
 実施の形態は、好ましい形態の例示であり、本発明の技術的範囲を制限することを意図するものではない。実施の形態は、部分的に実施してもよいし、他の形態と組み合わせて実施してもよい。フローチャート等を用いて説明した手順は、適宜に変更してもよい。
 100 通信装置、101 プロセッサ、102 メモリ、103 補助記憶装置、104 レシーバ、105 トランスミッタ、109 処理回路、110 受信部、111 受信レート計測部、112 受信処理部、120 推定部、130 決定部、140 送信部、141 送信処理部、142 スケジューリング部、190 記憶部、200 通信システム、201 ネットワーク。

Claims (15)

  1.  1つの通信相手との間に発生する複数の通信フローを処理する通信装置であって、
     前記複数の通信フローのそれぞれに優先度が与えられ、
     前記通信装置は、
     前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信部と、
     前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定部と、
     前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定部と、
     前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信部と
    を備える通信装置。
  2.  前記複数の通信フローのそれぞれが、再送制御を行うプロトコルを使用する通信フローであり、
     前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
     前記決定部は、
     優先度の高い順に1つずつ通信フローを選択し、
     前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値と比較し、比較結果と選択された通信フローに割り当てられている保証帯域とに基づいて、選択された通信フローの想定スループットを決定し、
     選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
     選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
     選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
    請求項1に記載の通信装置。
  3.  前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
     前記決定部は、
     前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
     前記値集合に含まれる1つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
     優先度の高い順に1つずつ通信フローを選択し、
     選択した通信フローが再送制御を行うプロトコルを使用する通信フローである場合、再送制御用の決定処理によって、選択された通信フローの保証帯域を決定し、
     選択した通信フローが再送制御を行わないプロトコルを使用する通信フローである場合、前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
     前記再送制御用の決定処理は、
     前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値と比較し、比較結果と選択された通信フローに割り当てられている保証帯域とに基づいて、選択された通信フローの想定スループットを決定し、
     選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
     選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定する処理である
    請求項1に記載の通信装置。
  4.  前記複数の通信フローのそれぞれが、再送制御を行うプロトコルを使用する通信フローであり、
     前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
     前記受信部は、さらに、それぞれの通信フローにおける前記通信相手の受信レートを示すパケットを前記通信相手から受信し、
     前記決定部は、
     優先度の高い順に1つずつ通信フローを選択し、
     選択された通信フローにおける前記通信相手の前記受信レートに基づいて、選択された通信フローの想定スループットを決定し、
     選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
     選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
     選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
    請求項1に記載の通信装置。
  5.  前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
     前記受信部は、さらに、それぞれの通信フローにおける前記通信相手の受信レートを示すパケットを前記通信相手から受信し、
     前記決定部は、
     前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
     前記値集合に含まれる1つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
     優先度の高い順に1つずつ通信フローを選択し、
     選択した通信フローが再送制御を行うプロトコルを使用する通信フローである場合、再送制御用の決定処理によって、選択された通信フローの保証帯域を決定し、
     選択した通信フローが再送制御を行わないプロトコルを使用する通信フローである場合、前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
     前記再送制御用の決定処理は、
     選択された通信フローにおける前記通信相手の前記受信レートに基づいて、選択された通信フローの想定スループットを決定し、
     選択された通信フローの想定スループットと、選択された通信フローの必要帯域と、前記利用可能帯域の前回の推定時刻から前記利用可能帯域の今回の推定時刻までの経過時間とに基づいて、選択された通信フローにおける通信帯域の過不足の積算値を算出し、
     選択された通信フローにおける通信帯域の過不足の積算値に基づいて、選択された通信フローにおける通信帯域の過不足を判定し、判定結果と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定する処理である
    請求項1に記載の通信装置。
  6.  選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値より小さい、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域と再送制御を行う通信フローに割り当てられている保証帯域の平均とのうちの小さい方の値を選択し、前記通信相手との通信における前記通信相手の前記受信レートを前記利用可能帯域の前回の推定値で除算し、除算によって算出された値に選択された値を乗算し、乗算によって算出された値を選択された通信フローの想定スループットに決定し、
     選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値以上、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域を選択された通信フローの想定スループットに決定する
    請求項2または請求項3に記載の通信装置。
  7.  選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値より小さい、という結果である場合、前記決定部は、選択された通信フローに割り当てられている保証帯域に0より大きく1より小さい調整係数を乗算し、算出された値を選択された通信フローの想定スループットに決定し、
     選択された通信フローが再送制御を行うプロトコルを使用する通信フローであり、前記比較結果が、前記通信相手との通信における前記通信相手の前記受信レートが前記利用可能帯域の前回の推定値以上、という結果である場合、選択された通信フローに割り当てられている保証帯域を選択された通信フローの想定スループットに決定する
    請求項2または請求項3に記載の通信装置。
  8.  選択された通信フローが再送制御を行うプロトコルを使用する通信フローである場合、前記判定結果が、選択された通信フローにおける通信帯域が不足している、という結果である場合、前記決定部は、選択された通信フローの必要帯域と前記積算値との合計を算出し、算出した合計と前記残りの利用可能帯域とのうちの小さい方の値を変更上限として選択し、選択された通信フローの必要帯域に調整値を加算し、加算によって算出された値と前記変更上限とのうちの小さい方の値を選択された通信フローの保証帯域に決定する
    請求項2から請求項5のいずれか1項に記載の通信装置。
  9.  選択された通信フローが再送制御を行うプロトコルを使用する通信フローである場合、前記判定結果が、選択された通信フローにおける通信帯域が不足している、という結果である場合、前記決定部は、選択された通信フローの必要帯域と前記積算値との合計を算出し、算出した合計と前記残りの利用可能帯域とのうちの小さい方の値を選択された通信フローの保証帯域に決定する
    請求項2から請求項5のいずれか1項に記載の通信装置。
  10.  前記複数の通信フローのそれぞれが、再送制御を行わないプロトコルを使用する通信フローであり、
     前記複数の通信フローのそれぞれに、通信に必要な通信帯域である必要帯域が設定され、
     前記決定部は、
     前記通信相手との通信における前記通信相手の前記受信レートに対する前記利用可能帯域の前回の推定値の大きさを表す比較値を値集合に追加し、
     前記値集合に含まれる1つ以上の比較値に基づいて、前記通信相手との通信における前記通信相手の受信レートに対する前記利用可能帯域の想定倍率を決定し、
     優先度の高い順に1つずつ通信フローを選択し、
     前記想定倍率と選択された通信フローの必要帯域と前記利用可能帯域の今回の推定値のうちの残りの利用可能帯域とに基づいて、選択された通信フローの保証帯域を決定し、
     選択された通信フローの保証帯域に基づいて、前記残りの利用可能帯域を更新する
    請求項1に記載の通信装置。
  11.  前記決定部は、前記1つ以上の比較値から最大の比較値を選択し、選択した比較値を前記想定倍率に決定する
    請求項3、請求項5または請求項10に記載の通信装置。
  12.  前記決定部は、前記1つ以上の比較値の平均を算出し、算出した平均を前記想定倍率に決定する
    請求項3、請求項5または請求項10に記載の通信装置。
  13.  前記決定部は、前記1つ以上の比較値に自己回帰和分移動平均モデルを適用することによって次回の比較値を予測し、予測された値を前記想定倍率に決定する
    請求項3、請求項5または請求項10に記載の通信装置。
  14.  1つの通信相手との間に発生する複数の通信フローを処理する通信方法であって、
     前記複数の通信フローのそれぞれに優先度が与えられ、
     受信部が、前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信処理と、
     推定部が、前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定処理と、
     決定部が、前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定処理と、
     送信部が、前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信処理と
    を備える通信方法。
  15.  1つの通信相手との間に発生する複数の通信フローを処理する通信プログラムであって、
     前記複数の通信フローのそれぞれに優先度が与えられ、
     前記通信相手との通信における前記通信相手の受信レートを示すパケットを前記通信相手から受信する受信処理と、
     前記通信相手との通信で利用することが可能な通信帯域である利用可能帯域を各時刻に推定する推定処理と、
     前記利用可能帯域が新たに推定されたときに、受信されたパケットが示す受信レートと前記利用可能帯域の前回の推定値と前記利用可能帯域の今回の推定値とに基づいて、優先度の高い順に、各通信フローに割り当てる通信帯域である保証帯域を決定する決定処理と、
     前記利用可能帯域の今回の推定値をシェーピングレートとして使用し、各通信フローの保証帯域を各通信フローに割り当て、各通信フローにおける通信パケットを前記通信相手へ送信する送信処理と
    をコンピュータに実行させるための通信プログラム。
PCT/JP2018/029764 2018-08-08 2018-08-08 通信装置、通信方法および通信プログラム WO2020031288A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020535390A JP6755437B2 (ja) 2018-08-08 2018-08-08 通信装置、通信方法および通信プログラム
PCT/JP2018/029764 WO2020031288A1 (ja) 2018-08-08 2018-08-08 通信装置、通信方法および通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/029764 WO2020031288A1 (ja) 2018-08-08 2018-08-08 通信装置、通信方法および通信プログラム

Publications (1)

Publication Number Publication Date
WO2020031288A1 true WO2020031288A1 (ja) 2020-02-13

Family

ID=69414583

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/029764 WO2020031288A1 (ja) 2018-08-08 2018-08-08 通信装置、通信方法および通信プログラム

Country Status (2)

Country Link
JP (1) JP6755437B2 (ja)
WO (1) WO2020031288A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016646A (ja) * 2000-05-22 2002-01-18 Trw Inc 衛星通信ネットワークにおけるリアル・タイム・スケジューリング方法および装置
WO2013128874A1 (ja) * 2012-03-01 2013-09-06 日本電気株式会社 ネットワークシステムとトラヒック制御方法とノード装置
WO2014068812A1 (ja) * 2012-10-30 2014-05-08 日本電気株式会社 制御装置、通信システム、通信制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016646A (ja) * 2000-05-22 2002-01-18 Trw Inc 衛星通信ネットワークにおけるリアル・タイム・スケジューリング方法および装置
WO2013128874A1 (ja) * 2012-03-01 2013-09-06 日本電気株式会社 ネットワークシステムとトラヒック制御方法とノード装置
WO2014068812A1 (ja) * 2012-10-30 2014-05-08 日本電気株式会社 制御装置、通信システム、通信制御方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Also Published As

Publication number Publication date
JP6755437B2 (ja) 2020-09-16
JPWO2020031288A1 (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
US9419907B2 (en) I/O driven rate adaptation
US11316795B2 (en) Network flow control method and network device
JP4703063B2 (ja) ネットワーク輻輳を緩和する方法およびシステム
US6876952B1 (en) Methods and apparatus for maintaining queues
US7280477B2 (en) Token-based active queue management
US20080298240A1 (en) Node availability prediction-based grid network congestion control device and method therefor
US7969881B2 (en) Providing proportionally fair bandwidth allocation in communication systems
US10439943B2 (en) Adaptive and dynamic quality of service/quality of experience enforcement
US9007901B2 (en) Method and apparatus providing flow control using on-off signals in high delay networks
US20060203855A1 (en) Communication control system and communication control method
US8570864B2 (en) Kernel awareness of physical environment
JP5553933B2 (ja) パケット処理ラインカードにおけるエネルギー消費を低減するための方法
US8149694B2 (en) Enforcing fairness in ad hoc mesh networks
CA2309527C (en) Method and apparatus for managing communications between nodes in a bi-directional ring network
US10044632B2 (en) Systems and methods for adaptive credit-based flow
US20240098155A1 (en) Systems and methods for push-based data communications
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
Liebeherr et al. Rate allocation and buffer management for differentiated services
EP2545684B1 (en) Capacity adaptation between service classes in a packet network.
US20170250929A1 (en) Method and apparatus for active queue management for wireless networks using shared wireless channel
JP6755437B2 (ja) 通信装置、通信方法および通信プログラム
Uthra et al. A probabilistic approach for predictive congestion control in wireless sensor networks
Hayes et al. A framework for less than best effort congestion control with soft deadlines
Liebeherr et al. Buffer management and scheduling for enhanced differentiated services
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치

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: 18929446

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020535390

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: 18929446

Country of ref document: EP

Kind code of ref document: A1