WO2023242912A1 - 集線装置、通信システム、制御方法およびプログラム - Google Patents
集線装置、通信システム、制御方法およびプログラム Download PDFInfo
- Publication number
- WO2023242912A1 WO2023242912A1 PCT/JP2022/023653 JP2022023653W WO2023242912A1 WO 2023242912 A1 WO2023242912 A1 WO 2023242912A1 JP 2022023653 W JP2022023653 W JP 2022023653W WO 2023242912 A1 WO2023242912 A1 WO 2023242912A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- stream
- packet
- transmission start
- start timing
- train
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
Definitions
- the present invention relates to a line concentrator, a communication system, a control method, and a program technology.
- Wireless scheduling used in conventional technology allocates bandwidth fairly to transmitting terminals, so even when transmitting burst traffic such as video traffic, multiple transmitting terminals are given permission to transmit alternately. give.
- bursty means that the transmission data does not continue to be generated for a long time, but the amount of data when it occurs is large.
- FIG. 1 is a block diagram showing an example of the configuration of a communication system.
- the communication system includes multiple transmitting terminals and receiving terminals. A plurality of transmitting terminals and receiving terminals are connected via a communication network. Bottlenecks exist in communication networks.
- FIG. 2 and 3 show a situation where data transmission timings from a plurality of transmitting terminals are almost the same.
- FIG. 2 shows temporal changes in the amount of data transmitted from a plurality of transmitting terminals.
- FIG. 3 shows the time evolution of queue lengths at nodes in a communication network. The amount of data transmitted in a communication network repeatedly increases and decreases, and the queue length at a node also increases and decreases repeatedly. Therefore, although congestion may occur momentarily, the communication network is not congested on average.
- nodes in a communication network monitor queue lengths to detect congestion.
- an increase in the queue length that is, congestion cannot be detected.
- the congestion is notified and the transmission rate is reduced every time the queue length exceeds a threshold, the transmission rate will drop more than necessary. .
- the data quality eg, video quality
- the present invention aims to provide a technology that can suppress congestion in a communication network while alleviating a decrease in transmission rate.
- One aspect of the present invention is a line concentrator that receives streams transmitted from multiple transmitting terminals, the streams transmitted from the multiple transmitting terminals being grouped in advance, and packets included in streams belonging to the group.
- a first derivation unit that derives a transmission start timing in which the reception period of a group does not overlap within the group; and a first derivation unit that derives a transmission start timing that does not overlap within the group; and a first derivation unit that derives a transmission start timing that does not overlap within the group.
- the line concentrator includes a second derivation unit that derives a transmission start timing that is not expected, and an instruction unit that instructs the transmission terminal to the transmission start timing derived by the second derivation unit.
- One aspect of the present invention is a communication system including a plurality of transmitting terminals and a line concentrator that receives streams transmitted from the transmitting terminals, wherein the line concentrator receives streams transmitted from the plurality of transmitting terminals in advance.
- the reception period of a group of packets that are grouped and included in a stream belonging to the group is determined by a first derivation unit that derives a transmission start timing that does not overlap within the group, and a transmission start timing derived by the first derivation unit.
- the transmitting terminal is a communication system that starts transmission at a transmission start timing instructed by the instruction section.
- One aspect of the present invention is a communication system including a concentrator that receives streams transmitted from a plurality of transmitting terminals, and a congestion control device, wherein the congestion control device receives streams transmitted from a plurality of transmitting terminals, and a congestion control device that receives streams transmitted from a plurality of transmitting terminals.
- Streams received by the concentrator are grouped in advance, and a first derivation unit that derives transmission start timings in which the reception periods of packets included in streams belonging to the group do not overlap within the group; and the first derivation unit a second derivation unit that derives a transmission start timing in which the reception period of a packet group to be transmitted does not overlap in different groups based on the transmission start timing derived by the second derivation unit;
- a communication system includes an instruction unit that instructs a terminal.
- One aspect of the present invention is a control method for a concentrator that receives streams transmitted from a plurality of transmitting terminals, in which the streams transmitted from the plurality of transmitting terminals are grouped in advance, and the streams belonging to the group are A first derivation step of deriving a transmission start timing that does not overlap within the group and a reception period of a packet group to be transmitted are different depending on the transmission start timing derived by the first derivation step.
- the present invention is a control method comprising: a second derivation step of deriving transmission start timings that do not overlap in groups; and an instruction step of instructing the transmitting terminal to transmit the transmission start timings derived in the second derivation step.
- One aspect of the present invention is a program for causing a computer to function as a line concentrator that receives streams transmitted from a plurality of transmitting terminals, the computer being configured to group streams transmitted from a plurality of transmitting terminals in advance.
- a first derivation unit that derives a transmission start timing that does not overlap within the group, and the reception period of a group of packets included in a stream belonging to a group is transmitted according to the transmission start timing derived by the first derivation unit.
- a second derivation unit that derives a transmission start timing in which reception periods of packet groups to be received do not overlap in different groups; and an instruction unit that instructs the transmission terminal to transmit the transmission start timing derived by the second derivation unit.
- FIG. 1 is a block diagram showing an example of a configuration of a communication system. It is a timing chart for explaining the problem. It is a timing chart for explaining the problem. 1 is a block diagram schematically showing a configuration example of a communication system according to an embodiment of the present invention.
- FIG. 3 is a conceptual diagram for explaining one stream received by the line concentrator according to the embodiment of the present invention.
- FIG. 2 is a conceptual diagram for explaining an overview of congestion control according to an embodiment of the present invention.
- FIG. 2 is a conceptual diagram for explaining an overview of congestion control according to an embodiment of the present invention.
- FIG. 1 is a block diagram schematically showing a configuration example of a line concentrator according to an embodiment of the present invention.
- FIG. 1 is a block diagram showing an example of a hardware configuration of a congestion controller according to an embodiment of the present invention.
- FIG. FIG. 2 is a block diagram showing an example of a functional configuration of a congestion controller according to an embodiment of the present invention.
- FIG. 2 is a conceptual diagram showing an example of a stream identification table according to an embodiment of the present invention.
- 3 is a flowchart illustrating an example of stream information acquisition processing according to an embodiment of the present invention.
- FIG. 3 is a conceptual diagram for explaining an example of stream information acquisition processing according to an embodiment of the present invention.
- FIG. 7 is a conceptual diagram for explaining a modification of stream information acquisition processing according to the embodiment of the present invention.
- 3 is a flowchart showing processing related to feedback control processing according to an embodiment of the present invention.
- FIG. 3 is a conceptual diagram for explaining an example of overlap determination processing according to an embodiment of the present invention. It is a flowchart which shows the 1st example of feedback control processing concerning an embodiment of the present invention.
- FIG. 3 is a conceptual diagram showing an example of a feedback control table according to an embodiment of the present invention. It is a flowchart which shows the 2nd example of feedback control processing concerning an embodiment of the present invention.
- FIG. 7 is a conceptual diagram showing another example of the feedback control table according to the embodiment of the present invention.
- FIG. 7 is a conceptual diagram for explaining a third example of feedback control processing according to an embodiment of the present invention.
- FIG. 2 is a conceptual diagram showing an example of a stream identification table according to an embodiment of the present invention.
- FIG. 2 is a conceptual diagram showing an example of a stream bandwidth table according to an embodiment of the present invention. It is a flowchart which shows the 3rd example of feedback control processing concerning an embodiment of the present invention.
- FIG. 2 is a conceptual diagram for explaining an application example of a line concentrator according to an embodiment of the present invention.
- FIG. 3 is a diagram illustrating a configuration example of a congestion control program in an application example of a line concentrator. It is a figure which shows an example of a stream identification table. It is a figure showing an example of a feedback control table.
- 3 is a flowchart showing the flow of processing of a congestion control program.
- 3 is a flowchart showing the flow of processing of a congestion control program.
- FIG. 3 is a diagram showing a feedback control table.
- FIG. 3 is a diagram showing a feedback control table.
- FIG. 3 is a diagram showing a feedback control table.
- 1 is a diagram showing a first configuration example of a communication system;
- FIG. 2 is a diagram showing a second configuration example of a communication system.
- FIG. 4 is a block diagram schematically showing a configuration example of the communication system 1 according to the present embodiment.
- the communication system 1 includes a plurality of transmitting devices 10 and at least one receiving device 20.
- the plurality of transmitting devices 10 and receiving devices 20 are connected to each other via a communication network.
- Each transmitting device 10 transmits a stream to the receiving device 20.
- the stream is, for example, a video stream.
- the receiving device 20 receives the stream transmitted from the transmitting device 10 via the communication network. Note that there are bottleneck links in the communication network.
- the communication system 1 further includes a line concentrator 30 installed in the communication network.
- the line concentrator 30 is interposed between the transmitting device 10 and the receiving device 20.
- the line concentrator 30 is a switch.
- the line concentrator 30 receives multiple streams transmitted from each of the multiple transmitting devices. Then, the line concentrator 30 transmits each received stream to the receiving device 20.
- the line concentrator 30 includes a "congestion controller 100" that performs congestion control as necessary. An overview of congestion control by the congestion controller 100 will be described below. 6
- FIG. 5 is a conceptual diagram for explaining one stream ST that the line concentrator 30 receives from the transmitter 10.
- Stream ST is composed of a large number of packets.
- Packet interval ⁇ is the time interval between the beginning of one packet and the beginning of the next packet.
- a packet group (a series of packets) in which the packet interval ⁇ is less than or equal to the certain time ⁇ is hereinafter referred to as a “packet train PT”.
- the fixed time ⁇ is 100 ⁇ s.
- the train start time ts and the train end time te are the start time and end time of one packet train PT, respectively.
- the train duration TD is the duration of one packet train PT, and is the time from the train start time ts to the train end time te.
- the train interval TI is the time interval between two consecutive packet trains PT. That is, the train interval TI is the difference in train start time ts between one packet train PT and the next packet train PT.
- the congestion controller 100 Based on the header information of the received packet, the congestion controller 100 identifies (specifies) the stream ST to which the received packet belongs. Then, the congestion controller 100 recognizes the packet train PT for each stream ST. In other words, the congestion controller 100 recognizes the train start time ts, train end time te, and train duration TD for each stream ST.
- the congestion controller 100 obtains the train interval TI for each stream ST. For example, the congestion controller 100 calculates the train interval TI based on the recognition result (train start time ts) of consecutive packet trains PT. As another example, the congestion controller 100 may obtain information on the train interval TI in advance from media information written based on a protocol such as SIP (Session Initiation Protocol) or RTCP (Real-time Transport Control Protocol).
- SIP Session Initiation Protocol
- RTCP Real-time Transport Control Protocol
- the congestion controller 100 estimates the reception period RP of the future packet train PT for each stream ST. More specifically, the congestion controller 100 estimates the train start time ts of the next and subsequent packet trains PT based on the recognition result (train start time ts) of the packet train PT and the train interval TI. The train start time ts estimated for the future packet train PT is hereinafter referred to as "estimated train start time tse.” Furthermore, the congestion controller 100 estimates the reception period RP of the future packet train PT based on the estimated train start time tse and the train duration TD (see FIG. 5).
- the congestion controller 100 determines whether the estimated reception periods RP of the plurality of streams ST overlap. If the estimated reception periods RP of multiple streams ST overlap, the congestion controller 100 predicts the occurrence of congestion and performs congestion control to suppress the congestion. Congestion control according to the present embodiment requests (instructs) the transmitting device 10 to "change the transmission timing" instead of "reducing the transmission rate.”
- the congestion controller 100 selects at least one "target stream ST_t" from among the multiple streams ST in which overlap has occurred.
- the target stream ST_t is the target for which the reception period RP is shifted.
- the congestion controller 100 instructs the transmitting device 10 transmitting the target stream ST_t to change the transmission timing of the packet train PT.
- the congestion controller 100 transmits (feedback) feedback information instructing to change the transmission timing to the transmitting device 10 transmitting the target stream ST_t.
- FIG. 6 shows, as an example, estimated reception periods RP for each of three types of streams ST_1, ST_2, and ST_3 received by the line concentrator 30.
- the estimated reception periods RP of stream ST_1 and stream ST_2 overlap, and the estimated reception periods RP of stream ST_2 and stream ST_3 overlap.
- the congestion controller 100 selects stream ST_2 as the target stream ST_t. Then, the congestion controller 100 instructs the transmitting device 10 transmitting the stream ST_2 to change the transmission timing of the packet train PT.
- the congestion controller 100 calculates the shift amount of the reception period RP necessary to eliminate the overlap of the reception period RP with respect to the stream ST_2. Then, the congestion controller 100 instructs the transmitting device 10 transmitting the stream ST_2 to delay the transmission timing of the packet train PT by the shift amount. This more reliably prevents congestion from occurring.
- the congestion controller 100 may simply instruct a change in the transmission timing of the packet train PT without calculating the shift amount. For example, the congestion controller 100 instructs to delay the transmission timing by a certain period of time. Thereafter, if the overlap is still not resolved, the congestion controller 100 issues instructions (feedback) again. By repeatedly giving instructions (feedback), it is expected that overlaps will be resolved and congestion will be suppressed.
- the line concentrator 30 in the communication network includes the congestion controller 100.
- the congestion controller 100 recognizes the packet train PT, obtains the train interval TI, and estimates the reception period RP of the future packet train PT. If the estimated reception periods RP of multiple streams ST overlap, the congestion controller 100 selects at least one target stream ST_t from the multiple streams ST. Then, the congestion controller 100 instructs the transmitting device 10 transmitting the target stream ST_t to change the transmission timing of the packet train PT. This suppresses the occurrence of overlap and suppresses the occurrence of congestion in the communication network. As a result, increases in queuing delay and packet loss in bottleneck links are also suppressed. These things are preferable from the viewpoint of communication quality.
- an instruction is given to "change the transmission timing" instead of "reducing the transmission rate.” Therefore, it is possible to suppress congestion in the communication network without reducing the transmission rate. Suppressing congestion without reducing the transmission rate is preferable from the viewpoint of network utilization efficiency. Also, since the transmission rate is not reduced, the desired data quality of the application is ensured. For example, it is not necessary to reduce the image quality or resolution of the video stream, and it is possible to ensure desired video quality.
- FIG. 8 is a block diagram schematically showing a configuration example of the line concentrator 30 according to this embodiment.
- the line concentrator 30 includes a lower transmitting/receiving section 31, a higher transmitting/receiving section 32, and a switching processing section 33.
- the lower transmitting/receiving section 31 is connected to the communication network on the transmitting device 10 side.
- the upper transmitter/receiver 32 is connected to the communication network on the receiving device 20 side.
- the switching processing unit 33 performs switching processing to transfer main signal packets. For example, the switching processing unit 33 receives a packet transmitted from the transmitting device 10 via the lower transmitting/receiving unit 31. Then, the switching processing section 33 transfers the received packet to the receiving device 20 side via the upper-level transmitting/receiving section 32.
- the switching processing section 33 includes a matching processing section 34.
- the matching processing unit 34 has a matching table in which stream identifiers of specific streams are registered. Examples of stream identifiers include combinations of source address, source port, destination address, destination port, and protocol.
- the matching processing unit 34 identifies (specifies) the stream ST to which the received packet belongs by comparing the header information of the received packet with the matching table.
- the line concentrator 30 further includes the congestion controller 100 described above.
- the congestion controller 100 performs congestion control as necessary.
- the congestion controller 100 may include a matching processing section 34.
- the main processing by the congestion controller 100 is performed independently of the main signal transfer by the switching processing section 33. Therefore, the processing by the congestion controller 100 does not affect the transfer of the main signal by the switching processing section 33.
- FIG. 9 is a block diagram showing an example of the hardware configuration of the congestion controller 100.
- the congestion controller 100 includes one or more processors 110 (hereinafter simply referred to as “processors 110") and one or more storage devices 120 (hereinafter simply referred to as “storage devices 120").
- the processor 110 performs various information processing.
- the processor 110 includes a CPU (Central Processing Unit).
- the storage device 120 stores various information necessary for processing by the processor 110. Examples of the storage device 120 include volatile memory, nonvolatile memory, HDD (Hard Disk Drive), SSD (Solid State Drive), and the like.
- a stream identification table 210, a feedback control table 220, etc. are stored in the storage device 120.
- the stream identification table 210 and feedback control table 220 will be described later.
- the congestion control program 130 is a computer program executed by the processor 110.
- the functions of the congestion controller 100 are realized by the processor 110 executing the congestion control program 130.
- the congestion control program 130 is stored in the storage device 120.
- the congestion control program 130 may be recorded on a computer-readable recording medium.
- the congestion control program 130 may be provided to the congestion controller 100 via a network.
- the congestion controller 100 may be realized using hardware such as an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), or an FPGA (Field Programmable Gate Array).
- FIG. 10 is a block diagram showing an example of the functional configuration of the congestion controller 100.
- the congestion controller 100 includes a storage section 200, a stream information acquisition section 300, and a feedback control section 400 as functional blocks.
- the storage unit 200 corresponds to the storage device 120 and stores a stream identification table 210, a feedback control table 220, and the like.
- the stream information acquisition unit 300 executes stream information acquisition processing.
- the stream information acquisition section 300 includes the above-mentioned matching processing section 34.
- Feedback control section 400 executes feedback control processing.
- the stream information acquisition unit 300 recognizes, for each stream ST, a packet train PT in which the packet interval ⁇ is equal to or less than a certain time ⁇ . Further, the stream information acquisition unit 300 acquires stream information indicating the characteristics of the stream ST to which the packet train PT belongs, based on the information of the recognized packet train PT. The stream information acquisition unit 300 then registers the acquired stream information in the stream identification table 210.
- FIG. 11 is a conceptual diagram showing an example of the stream identification table 210.
- the stream identification table 210 has a separate entry for each stream ST. Each entry includes a stream number, a stream identifier, a previous train start time, a train size, an average packet interval, a train duration TD, a train interval TI, etc. Examples of stream identifiers include combinations of source address, source port, destination address, destination port, and protocol.
- the previous train start time is the train start time ts of the previously recognized packet train PT.
- the train size is the amount of data included in one packet train PT.
- the average packet interval is the average packet interval ⁇ within one packet train PT.
- the train duration TD is the duration of one packet train PT, and is the time from the train start time ts to the train end time te.
- FIG. 12 is a flowchart illustrating an example of stream information acquisition processing.
- FIG. 13 is a conceptual diagram for explaining an example of stream information acquisition processing.
- the matching processing unit 34 of the stream information acquisition unit 300 receives packets of multiple streams ST.
- the matching processing unit 34 receives the packet (step S310; Yes)
- the process proceeds to step S320.
- the process proceeds to step S340.
- the matching processing unit 34 identifies the stream ST to which the received packet belongs. Specifically, the matching processing unit 34 has a matching table in which stream identifiers of specific streams are registered.
- the specific stream is, for example, a stream with a specific priority.
- the priority is defined, for example, by a CoS (Class Of Service) value in the header.
- the matching processing unit 34 identifies (specifies) the stream ST to which the received packet belongs by comparing the header information of the received packet with the matching table.
- the stream information acquisition unit 300 refers to the stream identification table 210 and checks whether there is an entry related to the identified stream ST. If an entry regarding the identified stream ST has not yet been created, the stream information acquisition unit 300 adds a new entry regarding the identified stream ST to the stream identification table 210. Furthermore, the stream information acquisition unit 300 writes the stream identifier of the identified stream ST into a new entry (see FIG. 11).
- the matching processing unit 34 has a counter that counts the number of received packets for each stream ST. In step S330, the matching processing unit 34 increments the counter value regarding the stream ST identified in step S320. After that, the process returns to step S310.
- step S340 the matching processing unit 34 determines for each stream ST whether a certain period of time ⁇ (eg, 100 ⁇ s) has elapsed since the previous packet reception. If the predetermined time period ⁇ has not elapsed since the previous packet reception (step S340; No), the process returns to step S310. On the other hand, when a certain period of time ⁇ has elapsed since the previous packet reception for a certain stream ST (step S340; Yes), the matching processing unit 34 ends counting regarding the stream ST. The process regarding the stream ST then proceeds to step S350.
- a certain period of time ⁇ eg, 100 ⁇ s
- step S350 the stream information acquisition unit 300 recognizes the packet train PT.
- a series of packets received from the start of counting to the end of counting corresponds to one packet train PT.
- the train start time ts and the train end time te are the recognized start time and end time of the packet train PT.
- step S360 the stream information acquisition unit 300 acquires stream information indicating the characteristics of the stream ST to which the packet train PT belongs, based on the information of the recognized packet train PT. Then, the stream information acquisition unit 300 registers the acquired stream information in the stream identification table 210 (see FIG. 11).
- the train duration time TD is the time from the train start time ts to the train end time te of the packet train PT.
- the train duration TD is 18.97 ms.
- the train size is the amount of data included in the packet train PT. For example, if the packet train PT includes 7906 packets and the size of each packet is 1518 bytes, the train size is 12 MB.
- the train size may indicate the packet size and the number of received packets instead of the data amount.
- the average packet interval is the average packet interval ⁇ within the packet train PT.
- the average packet interval is calculated by "train duration TD/(counter value at the end of counting - counter value at the start of counting)".
- the train interval TI is the time interval between two consecutive packet trains PT.
- the train interval TI is calculated from the train start time ts of the previously recognized packet train PT and the train start time ts of the currently recognized packet train PT. In the example shown in FIG. 11, the train interval TI is 100 ms.
- FIG. 14 is a conceptual diagram for explaining a modification of the stream information acquisition process.
- the matching processing unit 34 acquires the total number of received packets and the total number of received bytes within a predetermined measurement period for each stream ST as statistical information.
- the measurement periods may be synchronized between the plurality of streams ST, or may be staggered for load distribution.
- the stream information acquisition unit 300 acquires stream information based on statistical information in a predetermined measurement period.
- the train duration TD is the sum of a series of measurement periods in which the total number of consecutively received packets exceeds a certain amount.
- the train size is the sum of the total number of received bytes in a series of measurement periods in which the total number of consecutively received packets exceeds a certain amount.
- the train interval TI is the sum of a series of measurement periods in which the total number of consecutively received packets is less than or equal to a certain amount.
- the matching processing section 34 may be separate from the stream information acquisition section 300. In that case, the matching processing section 34 notifies the stream information acquisition section 300 of the result of the matching process. At this time, the matching processing unit 34 does not necessarily need to notify the results of matching processing for all packets.
- the matching processing section 34 may notify the stream information acquisition section 300 of only a part of the result of the matching process in summary. For example, the matching processing unit 34 determines the count start timing, the number of received packets (counter value) and the number of received bytes at the time of the count start, the count end timing, and the number of received packets (counter value) and the number of received bytes at the time of the count end.
- the stream information acquisition unit 300 may also be notified.
- the matching processing unit 34 notifies the stream information acquisition unit 300 only of statistical information in a predetermined measurement period.
- the stream information acquisition section 300 acquires stream information based on the information notified from the matching processing section 34.
- FIG. 15 is a flowchart showing processing related to feedback control processing according to this embodiment.
- step S410 the feedback control unit 400 estimates the reception period RP of the future packet train PT for each stream ST. Then, the feedback control unit 400 determines whether the respective estimated reception periods RP of the plurality of streams ST overlap. If there is an overlap (step S410; Yes), the feedback control unit 400 performs feedback control processing (step S420). In other cases (step S410; No), the processing in the current cycle ends.
- step S410 the overlap determination process (step S410) and the feedback control process (step S420) will be explained in more detail.
- Step S410 overlap determination process
- the feedback control unit 400 estimates the reception period RP of the future packet train PT based on the stream identification table 210.
- the stream identification table 210 includes the previous train start time ts, train duration time TD, and train interval TI.
- the feedback control unit 400 estimates the estimated train start time tse of the future packet train PT based on the previous train start time ts and the train interval TI. Further, the feedback control unit 400 estimates the reception period RP of the future packet train PT based on the estimated train start time tse and the train duration TD (see FIG. 5). Further, the feedback control unit 400 determines whether the respective estimated reception periods RP of the plurality of streams ST overlap.
- FIG. 16 is a conceptual diagram for explaining an example of overlap determination processing.
- the control period is the greatest common divisor of the respective train intervals TI of the plurality of streams ST.
- the feedback control unit 400 calculates the offset OS from the start of the control period to the estimated reception period RP (estimated train start time tse) of the packet train PT for each stream ST.
- the offset OS for stream ST_1 is 15ms
- the offset OS for stream ST_2 is 14ms.
- the feedback control unit 400 determines whether the estimated reception periods RP of the plurality of streams ST overlap based on the offset OS and the estimated reception period RP.
- Step S420 feedback control process 4-2-1.
- FIG. 17 is a flowchart showing a first example of the feedback control process (step S420).
- the feedback control unit 400 selects the target stream ST_t from among the multiple streams ST in which overlap has occurred.
- the target stream ST_t is the target for which the reception period RP is shifted.
- the feedback control unit 400 selects one with a relatively low priority among the plurality of streams ST as the target stream ST_t. That is, when the plurality of streams ST include a first stream and a second stream having a lower priority than the first stream, the feedback control unit 400 selects the second stream as the target stream ST_t.
- the feedback control unit 400 may select the one with the lowest priority as the target stream ST_t.
- the priority is defined, for example, by a CoS (Class Of Service) value in the header.
- step S423 the feedback control unit 400 transmits (feedback) feedback information FB to the transmitting device 10 that is transmitting the target stream ST_t.
- Feedback information FB instructs to change the transmission timing of packet train PT.
- the feedback information FB instructs to delay the transmission timing of the packet train PT by a certain period of time.
- the feedback control unit 400 writes the results of feedback control into the feedback control table 220.
- FIG. 18 shows an example of the feedback control table 220.
- the feedback control table 220 has separate entries for each stream ST. Each entry includes a stream number, feedback execution time, offset OS before feedback, and offset OS after feedback.
- the target stream ST_t is stream ST_2.
- the offset OS regarding stream ST_2 changes from 14 ms to 20 ms.
- the feedback control unit 400 transmits the feedback information FB again. By repeatedly performing the feedback control process, overlaps are eliminated and congestion occurrence is suppressed.
- FIG. 19 is a flowchart showing a second example of the feedback control process (step S420). Step S422 is the same as in the first example described above.
- step S424 the feedback control unit 400 calculates the shift amount of the reception period RP necessary to eliminate the overlap of the reception period RP with respect to the target stream ST_t. At this time, the feedback control unit 400 may determine the amount of shift so that the free time between the post-shift reception period RP and the reception period RP of another stream is as small as possible.
- step S425 the feedback control unit 400 transmits (feedback) feedback information FB to the transmitting device 10 that is transmitting the target stream ST_t.
- the feedback information FB includes the shift amount calculated in step S424, and instructs to delay the transmission timing of the packet train PT by the shift amount. Furthermore, the feedback control unit 400 writes the results of feedback control into the feedback control table 220.
- FIG. 20 shows an example of the feedback control table 220. Descriptions that overlap with those in FIG. 18 will be omitted as appropriate.
- each entry further includes a "shift amount".
- the offset OS before feedback for streams ST_1 and ST_2 is 15 ms and 14 ms, respectively.
- the train duration time TD is 18.97 ms (see FIG. 11)
- the overlap is eliminated by delaying the transmission timing of the packet train PT of stream ST_2 by, for example, 20 ms. Therefore, the shift amount is calculated to be 20 ms.
- the offset OS regarding stream ST_2 changes from 14 ms to 34 ms.
- the "total reception rate" of multiple streams ST during the period in which overlap occurs is considered. If the total reception rate exceeds the link rate of the output port (upper transmitter/receiver 32) of the line concentrator 30, the feedback controller 400 selects the target stream ST_t and transmits the feedback information FB.
- FIG. 22 shows an example of the stream identification table 210.
- the stream identification table 210 further indicates the output port to which the packet of each stream ST is output.
- the output ports for streams ST_1, ST_2, and ST_3 are the same OP1.
- FIG. 23 shows an example of the stream bandwidth table 230.
- the stream band table 230 has separate entries for each stream ST. Each entry includes stream number, output port, offset OS before feedback, train duration TD, and average reception rate. Such a stream band table 230 is stored in the storage device 120. Stream bandwidth table 230 may be included in feedback control table 220.
- the average reception rate of each stream ST is 4.86 Gbps. It is assumed that the link rate of the output port OP1 is 10 Gbps. In this case, the total reception rate of ST_1, ST_2, and ST_3 during the period in which overlap occurs exceeds the link rate of output port OP1. Therefore, the feedback control unit 400 selects the target stream ST_t and performs feedback control. In the example shown in FIG. 21, stream ST_3 is selected as the target stream ST_t. The feedback control unit 400 transmits (feedback) feedback information FB to the transmitting device 10 that is transmitting the stream ST_3.
- FIG. 24 is a flowchart summarizing the third example of the feedback control process (step S420).
- step S421 the feedback control unit 400 determines whether the total reception rate of the plurality of streams ST during the period in which overlap occurs exceeds the link rate of the output port. If the total reception rate exceeds the link rate of the output port (step S421; Yes), the process proceeds to step S422. On the other hand, if the total reception rate does not exceed the link rate of the output port (step S421; No), step S420 ends.
- step S422 the feedback control unit 400 selects the target stream ST_t from among the multiple streams ST in which overlap has occurred. For example, the feedback control unit 400 selects at least one target stream ST_t based on the stream bandwidth table 230 so that the total reception rate is equal to or less than the link rate of the output port. That is, the feedback control unit 400 selects at least one target stream ST_t so that the excess of the total reception rate is eliminated.
- step S424 and step S425 similarly to the second example described above.
- the feedback control unit 400 may execute step S423 in the same manner as in the first example described above.
- feedback control is executed when the total reception rate of multiple streams ST during the period in which overlap occurs exceeds the link rate of the output port. This prevents feedback control from being executed more than necessary. Therefore, network usage efficiency is prevented from decreasing unnecessarily.
- Application Example FIG. 25 is a conceptual diagram for explaining an application example of the line concentrator 30 according to this embodiment.
- the transmitting device 10 includes a camera 11.
- the camera 11 performs imaging processing and periodically transmits low compression rate image data or uncompressed image data.
- the camera 11 includes an encoding section 12, an imaging timing control section 13, and a wired communication section 14.
- the imaging timing control unit 13 can variably set the imaging timing. For example, the camera 11 outputs 10 images per second from the wired communication unit 14.
- the image size per sheet is 12 MB (4,000 pixels x 3,000 pixels x 8-bit color).
- the camera 11 is connected to the wireless terminal 15.
- the wireless terminal 15 transmits image data output from the camera 11 to the wireless base station 40.
- the wireless terminal 15 includes a wired communication section 16 and a wireless communication section 17.
- the wired communication section 14 of the camera 11 and the wired communication section 16 of the wireless terminal 15 are connected using 5GBase-T.
- the wireless communication unit 17 performs wireless communication with the wireless base station 40. For example, communication at a wireless peak rate of 5 Gbps is possible. It is assumed that interference between accommodation areas can be ignored by using beamforming or by geographically dividing areas.
- the wireless base station 40 and the wireless aggregation station 50 are connected by a 10 Gbps optical communication network.
- the wireless aggregation station 50 and the line concentrator 30 are also connected via a 10 Gbps optical communication network.
- image data is periodically transmitted from the plurality of cameras 11. Therefore, temporary congestion may occur periodically.
- the line concentrator 30 performs congestion control as necessary and transmits feedback information FB to the camera 11.
- the imaging timing control unit 13 of the camera 11 that has received the feedback information FB changes the imaging timing according to the feedback information FB. This is equivalent to changing the transmission timing of image data. As a result, congestion in the communication network is suppressed.
- FIG. 26 is a diagram showing a configuration example of the congestion control program 130 in an application example of the line concentrator 30 shown in FIG. 25.
- This congestion control program 130 shows the configuration of the congestion control program among the configurations shown in FIG. Note that in the case of the configuration shown in FIG. 26, instead of the stream information acquisition section 300 in FIG. It is provided as having.
- the congestion control program 130 includes a classifier 510, a stream identification section 520, a media identification section 530, an arrival timing identification section 540, and a congestion feedback section 550.
- connection negotiation using SIP Session Initiation Protocol
- SDP Session Description Protocol
- the classifier 510 identifies the priority and sends header information including the frame size and arrival time to the stream identification unit 520.
- the stream identification unit 520 identifies the stream from the camera 1 based on the source IP address, source L4 port number, destination IP address, destination L4 port number, and protocol number of the video data transmitted from each camera 11. Identify the stream from camera 2.
- the stream identification unit 520 registers the identified content in the stream identification table 210.
- the media identification unit 530 counts the number of consecutive packets in which the time between the beginnings of packets is 100 us or less from the header information of the identified stream, and calculates 7906 packets (each 1518 bytes) per packet train. ) is registered in the stream identification table 210.
- the media identification unit 530 similarly determines that the interval between packet trains is 100 ms based on the difference between the first packet arriving after more than 100 us and the reception time described as the beginning of the previous packet train. is registered in the stream identification table 210.
- FIG. 27 is a diagram showing an example of the stream identification table 210 in which various information is registered.
- FIG. 27 shows, as an example, a stream identification table when two streams are received.
- the source is A and the destination is B.
- the receiving port is P and the sending port is P2.
- the source is C and the destination is B.
- the receiving port is P3 and the transmitting port is P2.
- the train sizes of stream 1 and stream 2 are both 12 MB.
- the average packet interval of both stream 1 and stream 2 is 2.4 us.
- the train intervals of stream 1 and stream 2 are both 100 ms.
- the train durations of stream 1 and stream 2 are both 18.97 seconds.
- the arrival timing identification unit 540 refers to the stream identification table 210 and calculates the arrival offset time of each stream based on the control period that is the greatest common divisor of the train intervals of each stream. As an example, assume that the arrival offset time of stream 1 is 15 ms from the beginning of the control period, and the arrival offset time of stream 2 is 14 ms.
- the arrival timing identification unit 540 detects that the train arrival end of stream 2 overlaps with the train start time of stream 1.
- the congestion feedback unit 550 transmits feedback information (reset command) to the IP address of the camera 11 that is the transmission source of stream 2, and sets the time Ts3 at which the feedback was transmitted. It is registered in the feedback control table 220.
- FIG. 28 is a diagram showing an example of the feedback control table 220 in which various information is registered.
- the pre-feedback offset is 15 ms.
- the arrival offset time of stream 2 is 14 ms.
- the pre-feedback offset is 12 ms.
- the feedback sent to camera 11 of stream 2 shows that the post-feedback offset of stream 2 is 20 ms.
- the congestion feedback unit 550 does not perform control. On the other hand, if duplication is detected again after sending the feedback, the congestion feedback unit 550 calculates the sending time based on the feedback control table so as not to overlap with the offset time of other streams, and sends the feedback again. . By doing so, congestion due to duplication of multiple streams can be avoided.
- step S501 YES
- step S502 the classifier 510 identifies the priority (step S502).
- step S503 the priority is a predetermined high priority (step S503). If the priority is not high priority (step S503: NO), the process ends. On the other hand, if the priority is high (step S503: YES), the classifier 510 identifies the stream to which the received packet belongs (step S504).
- the stream identification unit 520 refers to the stream identification table 210, and if an entry related to the identified stream ST exists, counts (increments) the number of received packets (step S504), and returns to step S501. On the other hand, if an entry related to the identified stream does not exist, an entry is created, the number of received packets corresponding to the entry is counted (step S505), and the process returns to step S501.
- step S501 determines for each stream whether a certain period of time ⁇ (e.g. 100 ⁇ s) has elapsed since the previous packet reception. (Step S506). If the predetermined time period ⁇ has not elapsed since the previous packet reception (step S506; No), the process returns to step S501. On the other hand, when a certain period of time ⁇ has elapsed since the previous packet reception for a certain stream (step S506; Yes), the stream identification unit 520 ends counting for the stream. Thereby, the stream identification unit 520 recognizes the packet train PT (step S507).
- a certain period of time ⁇ e.g. 100 ⁇ s
- the stream identification unit 520 Based on the information of the recognized packet train, the stream identification unit 520 acquires stream information indicating the characteristics of the stream ST to which the packet train belongs. The stream identification unit 520 then registers the obtained stream information in the stream identification table 210 (step S508), and ends the process.
- the arrival timing identification unit 540 checks the stream identification table 210 (step S601), and determines whether duplication is detected (step S602). If the arrival timing identifying unit 540 does not detect overlap (step S602: NO), the process ends. On the other hand, if duplication is detected (step S602: YES), the congestion feedback unit 550 creates the feedback control table 220 (step S603), and transmits the feedback information to the IP address of the camera 11 that is the transmission source (step S604), the process ends.
- FIG. 31 is a diagram showing a configuration example of the feedback control section 400 in the second embodiment.
- the feedback control section 400 includes a stream identification section 610, a scheduler identification section 620, an arrival timing identification section 630, a first feedback section 640, a second feedback section 650, and an instruction section 660.
- the stream identification unit 610 identifies the stream identifier, previous train start time, train size, average packet interval, train duration, and train interval.
- the scheduler identification unit 620 identifies the scheduler of the stream.
- the arrival timing identification unit 630 identifies the arrival timing of the packet train.
- the first feedback unit 640 derives transmission start timings in which the reception periods of packet trains included in streams belonging to the same scheduler do not overlap within the group.
- the first feedback unit 640 is an example of a first derivation unit.
- the second feedback unit 650 derives a transmission start timing in which the reception period of the packet train transmitted according to the transmission start timing derived by the first feedback unit 640 does not overlap between different schedulers.
- the second feedback unit 650 is an example of a second derivation unit.
- the instruction unit 660 instructs the camera 11 (transmission terminal) about the transmission start timing derived by the second feedback unit 650.
- FIG. 32 is a diagram showing an example of deriving the first feedback section 640 and the second feedback section 650.
- the train labeled "1" is a stream 1 train.
- the train labeled “2” is a stream 2 train.
- the train labeled “3” is a stream 3 train.
- the train labeled “4” is a stream 4 train.
- Stream 1 and stream 2 belong to the same scheduler (referred to as “scheduler 1").
- Stream 3 and stream 4 belong to the same scheduler (referred to as “scheduler 2").
- "before feedback” described in FIG. 32 indicates a packet train before derivation by the first feedback unit 640 (of course, also before derivation by the second feedback unit 650). “After the first feedback” indicates a packet train that is transmitted at the timing derived by the first feedback unit 640. “After the second feedback” indicates a packet train that is transmitted at the timing derived by the second feedback unit 650.
- the previous train start time ts1 in stream 1 is assumed to be 15 ms.
- the previous train start time ts2 in stream 2 is assumed to be 16 ms.
- the previous train start time ts3 in stream 3 is assumed to be 26 ms.
- the previous train start time ts4 in stream 4 is assumed to be 28 ms.
- FIG. 33 is a diagram showing an example of the stream identification table 210.
- FIG. 33 shows a stream identification table when the four streams shown in FIG. 32 are received.
- the source is A and the destination is B.
- the receiving port is P and the sending port is P2.
- the source is C and the destination is B.
- the receiving port is P3 and the transmitting port is P2.
- the train sizes of stream 1 and stream 2 are both 12 MB.
- the average packet interval of both stream 1 and stream 2 is 2.4 us.
- the train intervals of stream 1 and stream 2 are both 100 ms.
- the train durations of stream 1 and stream 2 are both 18.97 seconds.
- the scheduler identifier indicates the scheduler to which it belongs. Stream 1 and stream 2 belong to the same scheduler, and their scheduler identifiers are both 1.
- the source is D and the destination is B.
- the receiving port is P and the sending port is P2.
- the source is E and the destination is B.
- the receiving port is P3 and the transmitting port is P2.
- the train sizes of stream 3 and stream 4 are both 12 MB.
- the average packet interval of both stream 3 and stream 4 is 2.4 us.
- the train intervals of stream 3 and stream 4 are both 100 ms.
- the train durations of stream 3 and stream 4 are both 18.97 seconds.
- Stream 3 and stream 4 belong to the same scheduler, and their scheduler identifiers are both 2.
- FIG. 34, FIG. 35, and FIG. 36 are diagrams showing the feedback control table 220.
- a new item called "adjustment value” is provided in the feedback control table 220 shown in FIGS. 34, 35, and 36.
- This adjustment value indicates a value adjusted by the first feedback section 640 and the second feedback section 650.
- the feedback control table 220 shown in FIG. 34 is the feedback control table 220 "before feedback” in FIG. 32.
- the feedback control table 220 shown in FIG. 35 is the feedback control table 220 "after the first feedback” in FIG. 33. This is the feedback control table 220 “after the second feedback” in FIG. 34.
- the first feedback unit 640 derives a transmission start timing at which the reception period of the packet trains included in the stream belonging to the scheduler 1 does not overlap within the scheduler. At this time, the offset time values are derived for streams 2 and 4, which have large offset time values.
- the first feedback unit 640 derives transmission start timings at which the reception periods of packet trains included in streams belonging to scheduler 2 do not overlap within the scheduler.
- the post-feedback offset of stream 2 becomes 65 ms, and the adjustment value becomes 49 ms. Further, the post-feedback offset of stream 4 is 76 ms, and the adjustment value is 48 ms. By doing so, congestion within the same scheduler can be suppressed.
- the second feedback unit 650 derives a transmission start timing in which the reception periods of the packet trains transmitted according to the transmission start timing derived by the first feedback unit 640 do not overlap in different groups.
- the second feedback unit 650 derives the transmission start timing so that the packet trains 3 and 4 do not overlap.
- the offset for stream 1 is 15ms.
- the offset for stream 2 is 65ms.
- the offset for stream 3 is 26ms.
- the offset for stream 4 is 76ms.
- the duration of the packet train is 18.97ms.
- the second feedback unit 650 calculates the duration of the packet train by adding 18.97 ms to the offset of the packet train of stream 1, which is 15 ms. .97ms or later.
- the post-feedback offset is 33.97 ms, and the adjustment value in this case is 7.97 ms.
- the second feedback unit 650 adds 18.97 ms to the offset of the packet train of stream 2, 65 ms, so that the packet train of stream 4 does not overlap with the packet train of stream 2. 84.97ms or later.
- the post-feedback offset is 84.97 ms, and the adjustment value in this case is 8.97 ms.
- the instruction unit 660 instructs the camera 11 corresponding to stream 2 to transmit the image capturing timing delayed by 49 ms.
- the instruction unit 660 instructs the camera 11 corresponding to stream 3 to transmit the image at a timing delayed by 7.97 ms.
- FIG. 37 is a flowchart showing the flow of processing in the second embodiment.
- the first feedback unit 640 checks the stream identification table 210 (step S701), and determines whether there is any overlap (step S702). If there is no overlap (step S702: NO), the process ends.
- step S702 If there is overlap (step S702: YES), the first feedback unit 640 derives transmission start timings that do not overlap within the scheduler as described above (step S703).
- step S703 the second feedback unit 650 derives transmission start timings that do not overlap between different schedulers as described above (step S704).
- the instruction unit 660 instructs the camera 11 about the derived transmission start timing (step S705), and ends the process. The camera 11 starts transmission at the transmission start timing instructed by the instruction section 660.
- each packet train does not overlap, and the entire bandwidth is allocated to one packet train. Congestion can be suppressed.
- the congestion controller (congestion control device) is provided inside the line concentrator 30. It may be provided externally. Two communication system configuration examples 1 and 2 in which the congestion controller function is provided outside the line concentrator will be described.
- FIG. 38 is a diagram showing a configuration example 1 of each device when the congestion controller function is provided outside the line concentrator.
- the line concentrator 30 includes the stream information acquisition section 300 and the stream identification table 210 described above. That is, the line concentrator 30 only has the function of identifying streams.
- a congestion controller 500 provided outside the line concentrator 30 includes the feedback control section 400 and feedback control table 220 described above.
- the line concentrator 30 identifies streams and configures a stream identification table 210 so that the congestion controller 500 can refer to it. Furthermore, the congestion controller 500 transmits feedback information to the transmitting device 10 via the line concentrator 30. When the transmitting device 10 receives the feedback information, the adjustment unit adjusts the transmission timing according to the feedback information. With this configuration, it becomes possible to perform control similar to the configuration in FIG. 4.
- FIG. 39 is a diagram showing a configuration example 2 of each device when the congestion controller function is provided outside the line concentrator.
- Configuration example 2 shows a configuration example using the functions shown in FIG. 31.
- the line concentrator 30 includes the stream information identification section 610 and the stream identification table 210 described above. That is, the line concentrator 30 only has the function of identifying streams.
- the congestion controller 500 provided outside the line concentrator 30 includes the above-described scheduler identification section 620, arrival timing identification section 630, first feedback section 640, second feedback section 650, instruction section 660, and feedback control table 220. Equipped with
- the line concentrator 30 identifies streams and configures a stream identification table 210 so that the congestion controller 500 can refer to it. Furthermore, the first feedback unit 640 in the congestion controller 500 derives transmission start timings in which the reception periods of packet trains included in streams belonging to the same scheduler do not overlap within the group. The second feedback unit 650 derives a transmission start timing in which the reception period of the packet train transmitted according to the transmission start timing derived by the first feedback unit 640 does not overlap between different schedulers. The instruction unit 660 instructs the transmission start timing derived by the second feedback unit 650 to the transmission terminal 10 via the line concentrator 30. When the transmitting device 10 receives the feedback information, the adjustment unit adjusts the transmission timing according to the feedback information. With this configuration, it becomes possible to perform the same control as the configuration in FIG. 31.
- the line concentrator identifies streams, but the congestion controller 500 may also identify streams.
- the congestion controller receives the stream transmitted by the transmitting device as it is from the concentrator, and identifies the stream. Furthermore, the congestion controller discards data other than data necessary for feedback among the data in the stream. In this case, it is only necessary to provide the concentrator 30 with a function of transmitting a stream to the congestion controller and a function of transmitting feedback information from the congestion controller to the transmitter.
- the first feedback section 640, the second feedback section 650, and the instruction section 660 may be configured using a processor such as a CPU (Central Processing Unit) and a memory.
- the first feedback section 640, the second feedback section 650, and the instruction section 660 function as the first feedback section 640, the second feedback section 650, and the instruction section 660 when the processor executes the program.
- all or part of each function of the first feedback unit 640, second feedback unit 650, and instruction unit 660 may be implemented using an ASIC (Application Specific Integrated Circuit), a PLD (Programmable Logic Device), an FPGA (Field Programmable Gate Array), etc. It may also be realized using hardware.
- the above program may be recorded on a computer-readable recording medium.
- Computer-readable recording media include portable media such as flexible disks, magneto-optical disks, ROMs, CD-ROMs, semiconductor storage devices (for example, SSDs: Solid State Drives), and hard disks and semiconductor storages built into computer systems. It is a storage device such as a device.
- the above program may be transmitted via a telecommunications line.
- the present invention is applicable to a line concentrator that receives information from multiple transmitting terminals.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本発明の一態様は、複数の送信端末から送信されるストリームを受信する集線装置であって、複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、を備えた集線装置である。
Description
本発明は、集線装置、通信システム、制御方法およびプログラムの技術に関する。
従来技術で用いられる無線スケジューリング(Proportional Fair)は、送信端末に公平に帯域を割り当てるため、映像トラフィックのようにバースト的なトラフィックを送信する際にも、複数の送信端末に対して交互に送信許可を与える。ここで「バースト的」とは、送信データの発生が長時間継続しないが、発生時のデータ量が大きいことを意味する。
"(4)データリンクレイヤ/物理レイヤにおける高効率パケットアクセス技術", NTT DoCoMoテクニカルジャーナル, VOL.11 No.2. https://www.docomo.ne.jp/binary/pdf/corporate/technology/rd/technical_journal/bn/vol11_2/vol11_2_032jp.pdf
IETF RFC 3550, "RTP: A Transport Protocol for Real-Time Applications".https://www.rfc-editor.org/rfc/rfc3550.txt
IETF RFC6679, "Explicit Congestion Notification (ECN) for RTP over UDP".https://www.rfc-editor.org/rfc/rfc6679.txt
図1は、通信システムの構成例を示すブロック図である。通信システムは、複数の送信端末と受信端末を含んでいる。複数の送信端末と受信端末は、通信ネットワークを介して接続されている。通信ネットワークには、ボトルネックリンクが存在する。
図2及び図3は、複数の送信端末からのデータ送信タイミングがほぼ同じである状況を示している。図2は、複数の送信端末から送信されるデータ量の時間変化を示している。図3は、通信ネットワーク中のノードにおけるキュー長の時間変化を示している。通信ネットワーク中の伝送データ量は増減を繰り返し、ノードにおけるキュー長も増減を繰り返す。そのため、瞬間的に輻輳が発生する可能性はあるが、平均的には通信ネットワークは混雑していない。
従来のECNによれば、通信ネットワーク中のノードは、キュー長を監視して輻輳を検知する。しかしながら、図3に示されるように、キュー長監視タイミングによっては、キュー長増加、すなわち、輻輳を検知することができない可能性がある。また、平均的には通信ネットワークは混雑していないにもかかわらず、キュー長が閾値を超える度に輻輳発生を通知して送信レートを減少させると、送信レートが必要以上に低下することになる。このことは、ネットワーク利用効率の低下を意味する。また、本来アプリケーションが必要としていたデータ品質(例:映像品質)を達成できなくなる可能性がある。
このように、複数の送信端末から映像トラフィックの送信タイミングが重複した際には、1つの画像を構成するデータを送り切るまでに、大きなスケジューリング遅延が発生してしまうという課題があった。
上記事情に鑑み、本発明は、送信レートの低下を軽減しつつ、通信ネットワークにおける輻輳を抑制することができる技術の提供を目的としている。
本発明の一態様は、複数の送信端末から送信されるストリームを受信する集線装置であって、複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、を備えた集線装置である。
本発明の一態様は、複数の送信端末と、前記送信端末から送信されるストリームを受信する集線装置を含む通信システムであって、前記集線装置は、複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、を備え、前記送信端末は、前記指示部により指示された送信開始タイミングで送信を開始する通信システムである。
本発明の一態様は、複数の送信端末から送信されるストリームを受信する集線装置と、輻輳制御装置とを含む通信システムであって、前記輻輳制御装置は、複数の送信端末から送信され、前記集線装置が受信するストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、を備えた通信システムである。
本発明の一態様は、複数の送信端末から送信されるストリームを受信する集線装置の制御方法であって、複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出ステップと、前記第1導出ステップにより導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出ステップと、前記第2導出ステップにより導出された送信開始タイミングを前記送信端末に指示する指示ステップと、を備えた制御方法である。
本発明の一態様は、コンピュータを、複数の送信端末から送信されるストリームを受信する集線装置として機能させるためのプログラムであって、前記コンピュータを、複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、して機能させるためのプログラムである。
本発明により、送信レートの低下を軽減しつつ、通信ネットワークにおける輻輳を抑制することができる。
添付図面を参照して、本発明の実施の形態を説明する。
(第1実施形態)
1.概要図4は、本実施の形態に係る通信システム1の構成例を概略的に示すブロック図である。通信システム1は、複数の送信装置10と少なくとも一つの受信装置20を含んでいる。複数の送信装置10と受信装置20は、通信ネットワークを介して互いに接続されている。各送信装置10は、受信装置20にストリームを送信する。ストリームは、例えば映像ストリームである。受信装置20は、通信ネットワークを介して、送信装置10から送信されたストリームを受信する。尚、通信ネットワークには、ボトルネックリンクが存在する。
1.概要図4は、本実施の形態に係る通信システム1の構成例を概略的に示すブロック図である。通信システム1は、複数の送信装置10と少なくとも一つの受信装置20を含んでいる。複数の送信装置10と受信装置20は、通信ネットワークを介して互いに接続されている。各送信装置10は、受信装置20にストリームを送信する。ストリームは、例えば映像ストリームである。受信装置20は、通信ネットワークを介して、送信装置10から送信されたストリームを受信する。尚、通信ネットワークには、ボトルネックリンクが存在する。
通信システム1は、更に、通信ネットワーク中に設置された集線装置30を含んでいる。集線装置30は、送信装置10と受信装置20との間に介在している。例えば、集線装置30は、スイッチである。集線装置30は、複数の送信装置のそれぞれから送信される複数のストリームを受信する。そして、集線装置30は、受信した各ストリームを受信装置20に送信する。
本実施の形態に係る集線装置30は、必要に応じて輻輳制御を行う「輻輳コントローラ100」を含んでいる。以下、輻輳コントローラ100による輻輳制御の概要を説明する。6
図5は、集線装置30が送信装置10から受信する一つのストリームSTを説明するための概念図である。ストリームSTは、多数のパケットにより構成されている。「パケット間隔α」は、あるパケットの先頭と次のパケットの先頭との間の時間間隔である。パケット間隔αが一定時間β以下であるパケット群(一連のパケット)を、以下、「パケットトレインPT」と呼ぶ。例えば、一定時間βは100μsである。トレイン開始時刻ts及びトレイン終了時刻teは、それぞれ、1つのパケットトレインPTの開始時刻及び終了時刻である。トレイン継続時間TDは、1つのパケットトレインPTの継続時間であり、トレイン開始時刻tsからトレイン終了時刻teまでの時間である。トレイン間隔TIは、連続する2つのパケットトレインPTの間の時間間隔である。つまり、トレイン間隔TIは、あるパケットトレインPTとその次のパケットトレインPTとの間のトレイン開始時刻tsの差である。
輻輳コントローラ100は、受信パケットのヘッダ情報に基づいて、その受信パケットが属するストリームSTを識別(特定)する。そして、輻輳コントローラ100は、各ストリームST毎にパケットトレインPTを認識する。言い換えれば、輻輳コントローラ100は、各ストリームST毎に、トレイン開始時刻ts、トレイン終了時刻te、及びトレイン継続時間TDを認識する。
また、輻輳コントローラ100は、各ストリームST毎にトレイン間隔TIを取得する。例えば、輻輳コントローラ100は、連続するパケットトレインPTの認識結果(トレイン開始時刻ts)に基づいて、トレイン間隔TIを算出する。他の例として、輻輳コントローラ100は、SIP(SessionInitiation Protocol)、RTCP(Real-time Transport Control Protocol)等のプロトコルに基いて記載されたメディア情報からトレイン間隔TIの情報をあらかじめ取得してもよい。
更に、輻輳コントローラ100は、各ストリームSTについて、将来のパケットトレインPTの受信期間RPを推定する。より詳細には、輻輳コントローラ100は、パケットトレインPTの認識結果(トレイン開始時刻ts)とトレイン間隔TIに基づいて、次回以降のパケットトレインPTのトレイン開始時刻tsを推定する。将来のパケットトレインPTについて推定したトレイン開始時刻tsを、以下、「推定トレイン開始時刻tse」と呼ぶ。更に、輻輳コントローラ100は、推定トレイン開始時刻tseとトレイン継続時間TDに基づいて、将来のパケットトレインPTの受信期間RPを推定する(図5参照)。
更に、輻輳コントローラ100は、複数のストリームSTのそれぞれの推定受信期間RPがオーバーラップするか否かを判定する。複数のストリームSTの推定受信期間RPのオーバーラップがある場合、輻輳コントローラ100は、輻輳発生を予想し、その輻輳を抑制するために輻輳制御を行う。本実施の形態に係る輻輳制御は、送信装置10に対して、「送信レートの低下」ではなく「送信タイミングの変更」を要求(指示)する。
より詳細には、輻輳コントローラ100は、オーバーラップが発生している複数のストリームSTの中から少なくとも一つの「対象ストリームST_t」を選択する。対象ストリームST_tは、受信期間RPをシフトさせる対象である。そして、輻輳コントローラ100は、対象ストリームST_tを送信している送信装置10に対して、パケットトレインPTの送信タイミングを変更するよう指示する。具体的には、輻輳コントローラ100は、送信タイミングの変更を指示するフィードバック情報を、対象ストリームST_tを送信している送信装置10に送信(フィードバック)する。
図6は、一例として、集線装置30が受信する3種類のストリームST_1、ST_2、ST_3のそれぞれに関する推定受信期間RPを示している。図6に示される例では、ストリームST_1とストリームST_2の推定受信期間RPがオーバーラップしており、また、ストリームST_2とストリームST_3の推定受信期間RPがオーバーラップしている。輻輳コントローラ100は、例えば、ストリームST_2を対象ストリームST_tとして選択する。そして、輻輳コントローラ100は、ストリームST_2を送信している送信装置10に対して、パケットトレインPTの送信タイミングを変更するよう指示する。
例えば図7に示されるように、輻輳コントローラ100は、ストリームST_2に関して、受信期間RPのオーバーラップを解消するために必要な受信期間RPのシフト量を算出する。そして、輻輳コントローラ100は、ストリームST_2を送信している送信装置10に対して、パケットトレインPTの送信タイミングを当該シフト量だけ遅らせるよう指示する。これにより、輻輳発生がより確実に回避される。
他の例として、輻輳コントローラ100は、シフト量を算出することなく、単にパケットトレインPTの送信タイミングの変更だけを指示してもよい。例えば、輻輳コントローラ100は、送信タイミングを一定時間だけ遅らせることを指示する。その後、依然としてオーバーラップが解消されない場合、輻輳コントローラ100は再度指示(フィードバック)を行う。指示(フィードバック)を繰り返し行うことにより、オーバーラップが解消され、輻輳発生が抑制されることが期待される。
以上に説明されたように、本実施の形態によれば、通信ネットワーク中の集線装置30が輻輳コントローラ100を備える。輻輳コントローラ100は、受信する各ストリームSTについて、パケットトレインPTを認識し、トレイン間隔TIを取得し、将来のパケットトレインPTの受信期間RPを推定する。複数のストリームSTの推定受信期間RPのオーバーラップがある場合、輻輳コントローラ100は、それら複数のストリームSTの中から少なくとも一つの対象ストリームST_tを選択する。そして、輻輳コントローラ100は、対象ストリームST_tを送信している送信装置10に対して、パケットトレインPTの送信タイミングを変更するよう指示する。これにより、オーバーラップの発生が抑制され、通信ネットワークにおける輻輳発生が抑制される。その結果、ボトルネックリンクにおけるキューイング遅延の増加やパケットロスも抑制される。これらのことは、通信品質の観点から好ましい。
特に、本実施の形態によれば、「送信レートの低下」ではなく「送信タイミングの変更」が指示される。従って、送信レートを低下させることなく、通信ネットワークにおける輻輳を抑制することが可能となる。送信レートを低下させることなく輻輳を抑制することは、ネットワーク利用効率の観点から好ましい。また、送信レートが減少しないため、アプリケーションの所望のデータ品質が確保される。例えば、映像ストリームの画質や解像度を低下させる必要はなく、所望の映像品質を確保することが可能となる。
以下、本実施の形態に係る輻輳制御について更に詳しく説明する。
2.構成例図8は、本実施の形態に係る集線装置30の構成例を概略的に示すブロック図である。集線装置30は、下位送受信部31、上位送受信部32、及びスイッチング処理部33を含んでいる。下位送受信部31は、送信装置10側の通信ネットワークと接続される。上位送受信部32は、受信装置20側の通信ネットワークと接続される。
スイッチング処理部33は、主信号のパケットを転送するスイッチング処理を行う。例えば、スイッチング処理部33は、送信装置10から送信されるパケットを下位送受信部31を介して受信する。そして、スイッチング処理部33は、受信パケットを上位送受信部32を介して受信装置20側に転送する。
また、スイッチング処理部33は、マッチング処理部34を含んでいる。マッチング処理部34は、特定のストリームのストリーム識別子が登録されたマッチングテーブルを有する。ストリーム識別子としては、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、及びプロトコルの組み合わせが例示される。マッチング処理部34は、受信パケットのヘッダ情報をマッチングテーブルと照合することによって、その受信パケットが属するストリームSTを識別(特定)する。
集線装置30は、更に、上述の輻輳コントローラ100を含んでいる。輻輳コントローラ100は、必要に応じて輻輳制御を行う。輻輳コントローラ100は、マッチング処理部34を含んでいてもよい。
尚、輻輳コントローラ100による主な処理は、スイッチング処理部33による主信号の転送とは独立に行われる。よって、輻輳コントローラ100による処理は、スイッチング処理部33による主信号の転送に影響を与えない。
図9は、輻輳コントローラ100のハードウェア構成例を示すブロック図である。輻輳コントローラ100は、1又は複数のプロセッサ110(以下、単に「プロセッサ110」と呼ぶ)、及び1又は複数の記憶装置120(以下、単に「記憶装置120」と呼ぶ)を含んでいる。
プロセッサ110は、各種情報処理を行う。例えば、プロセッサ110は、CPU(Central Processing Unit)を含んでいる。記憶装置120は、プロセッサ110による処理に必要な各種情報を格納する。記憶装置120としては、揮発性メモリ、不揮発性メモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、等が例示される。
記憶装置120には、ストリーム識別テーブル210、フィードバック制御テーブル220、等が格納される。ストリーム識別テーブル210及びフィードバック制御テーブル220については後述される。
輻輳制御プログラム130は、プロセッサ110によって実行されるコンピュータプログラムである。プロセッサ110が輻輳制御プログラム130を実行することにより、輻輳コントローラ100の機能が実現される。輻輳制御プログラム130は、記憶装置120に格納される。輻輳制御プログラム130は、コンピュータ読み取り可能な記録媒体に記録されてもよい。輻輳制御プログラム130は、ネットワーク経由で輻輳コントローラ100に提供されてもよい。
輻輳コントローラ100は、ASIC(Application Specific IntegratedCircuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。
図10は、輻輳コントローラ100の機能構成例を示すブロック図である。輻輳コントローラ100は、機能ブロックとして、記憶部200、ストリーム情報取得部300、及びフィードバック制御部400を含んでいる。記憶部200は、記憶装置120に相当し、ストリーム識別テーブル210、フィードバック制御テーブル220、等を格納する。ストリーム情報取得部300は、ストリーム情報取得処理を実行する。ストリーム情報取得部300は、上述のマッチング処理部34を含んでいる。フィードバック制御部400は、フィードバック制御処理を実行する。
以下、本実施の形態に係るストリーム情報取得部300及びフィードバック制御部400による処理について説明する。
3.ストリーム情報取得処理ストリーム情報取得部300は、各ストリームSTについて、パケット間隔αが一定時間β以下であるパケットトレインPTを認識する。更に、ストリーム情報取得部300は、認識したパケットトレインPTの情報に基づいて、当該パケットトレインPTが属するストリームSTの特徴を示すストリーム情報を取得する。そして、ストリーム情報取得部300は、取得したストリーム情報をストリーム識別テーブル210に登録する。
図11は、ストリーム識別テーブル210の一例を示す概念図である。ストリーム識別テーブル210は、ストリームST毎に別々のエントリを有する。各エントリは、ストリーム番号、ストリーム識別子、前トレイン開始時刻、トレインサイズ、平均パケット間隔、トレイン継続時間TD、トレイン間隔TI、等を含んでいる。ストリーム識別子としては、送信元アドレス、送信元ポート、宛先アドレス、宛先ポート、及びプロトコルの組み合わせが例示される。前トレイン開始時刻は、前回認識されたパケットトレインPTのトレイン開始時刻tsである。トレインサイズは、1つのパケットトレインPTに含まれるデータ量である。平均パケット間隔は、1つのパケットトレインPT内の平均的なパケット間隔αである。トレイン継続時間TDは、1つのパケットトレインPTの継続時間であり、トレイン開始時刻tsからトレイン終了時刻teまでの時間である。
図12は、ストリーム情報取得処理の一例を示すフローチャートである。図13は、ストリーム情報取得処理の一例を説明するための概念図である。
ストリーム情報取得部300のマッチング処理部34は、複数のストリームSTのパケットを受信する。マッチング処理部34がパケットを受信すると(ステップS310;Yes)、処理は、ステップS320に進む。パケットを受信しない期間(ステップS310;No)、処理は、ステップS340に進む。
ステップS320において、マッチング処理部34は、受信パケットが属するストリームSTを識別する。具体的には、マッチング処理部34は、特定のストリームのストリーム識別子が登録されたマッチングテーブルを有する。特定のストリームは、例えば、特定の優先度のストリームである。優先度は、例えば、ヘッダ内のCoS(Class Of Service)値によって規定される。マッチング処理部34は、受信パケットのヘッダ情報をマッチングテーブルと照合することによって、その受信パケットが属するストリームSTを識別(特定)する。
ストリーム情報取得部300は、ストリーム識別テーブル210を参照し、識別したストリームSTに関するエントリが存在するか否かチェックする。識別したストリームSTに関するエントリが未だ作成されていない場合、ストリーム情報取得部300は、識別したストリームSTに関する新たなエントリをストリーム識別テーブル210に追加する。更に、ストリーム情報取得部300は、識別したストリームSTのストリーム識別子を新たなエントリに書き込む(図11参照)。
また、マッチング処理部34は、各ストリームST毎に受信パケット数をカウントするカウンタを有する。ステップS330において、マッチング処理部34は、ステップS320において識別したストリームSTに関するカウンタ値をインクリメントする。その後、処理は、ステップS310に戻る。
ステップS340において、マッチング処理部34は、各ストリームST毎に、前回のパケット受信から一定時間β(例:100μs)が経過したか否かを判定する。前回のパケット受信から一定時間βが経過していない場合(ステップS340;No)、処理は、ステップS310に戻る。一方、あるストリームSTに関して、前回のパケット受信から一定時間βが経過した場合(ステップS340;Yes)、マッチング処理部34は、当該ストリームSTに関するカウントを終了する。そして、当該ストリームSTに関する処理は、ステップS350に進む。
ステップS350において、ストリーム情報取得部300は、パケットトレインPTを認識する。図13に示されるように、カウント開始からカウント終了までに受信した一連のパケットが1つのパケットトレインPTに相当する。トレイン開始時刻ts及びトレイン終了時刻teは、認識したパケットトレインPTの開始時刻及び終了時刻である。
ステップS360において、ストリーム情報取得部300は、認識したパケットトレインPTの情報に基づいて、当該パケットトレインPTが属するストリームSTの特徴を示すストリーム情報を取得する。そして、ストリーム情報取得部300は、取得したストリーム情報をストリーム識別テーブル210に登録する(図11参照)。
トレイン継続時間TDは、パケットトレインPTのトレイン開始時刻tsからトレイン終了時刻teまでの時間である。図11に示される例では、トレイン継続時間TDは、18.97msである。
トレインサイズは、パケットトレインPTに含まれるデータ量である。例えば、パケットトレインPTが7906個のパケットを含み、各パケットのサイズが1518byteである場合、トレインサイズは12MBである。トレインサイズは、データ量の代わりに、パケットサイズと受信パケット数を示していてもよい。
平均パケット間隔は、パケットトレインPT内の平均的なパケット間隔αである。例えば、平均パケット間隔は、「トレイン継続時間TD/(カウント終了時のカウンタ値-カウント開始時のカウンタ値)」により算出される。図11に示される例では、平均パケット間隔は2.4μs(=18.97ms/7906)である。
トレイン間隔TIは、連続する2つのパケットトレインPTの間の時間間隔である。トレイン間隔TIは、前回認識されたパケットトレインPTのトレイン開始時刻tsと今回認識されたパケットトレインPTのトレイン開始時刻tsから算出される。図11に示される例では、トレイン間隔TIは100msである。
図14は、ストリーム情報取得処理の変形例を説明するための概念図である。変形例では、マッチング処理部34は、各ストリームSTについて、所定の測定期間内の合計受信パケット数と合計受信バイト数を統計情報として取得する。測定期間は、複数のストリームST間で同期していてもよいし、負荷分散のためにずれていてもよい。ストリーム情報取得部300は、所定の測定期間における統計情報に基づいて、ストリーム情報を取得する。例えば、トレイン継続時間TDは、連続して合計受信パケット数が一定量を超える一連の測定期間の和である。トレインサイズは、連続して合計受信パケット数が一定量を超える一連の測定期間における合計受信バイト数の和である。トレイン間隔TIは、連続して合計受信パケット数が一定量以下となる一連の測定期間の和である。
マッチング処理部34は、ストリーム情報取得部300とは別であってもよい。その場合、マッチング処理部34は、マッチング処理の結果をストリーム情報取得部300に通知する。このとき、マッチング処理部34は、必ずしも全てのパケットに対するマッチング処理の結果を通知する必要はない。マッチング処理部34は、マッチング処理の結果の一部だけを要約的にストリーム情報取得部300に通知してもよい。例えば、マッチング処理部34は、カウント開始タイミング、カウント開始時の受信パケット数(カウンタ値)と受信バイト数、カウント終了タイミング、及びカウント終了時の受信パケット数(カウンタ値)と受信バイト数を、ストリーム情報取得部300に通知してもよい。図14で示された変形例の場合、マッチング処理部34は、所定の測定期間における統計情報だけをストリーム情報取得部300に通知する。ストリーム情報取得部300は、マッチング処理部34から通知される情報に基づいて、ストリーム情報を取得する。
4.フィードバック制御処理図15は、本実施の形態に係るフィードバック制御処理に関連する処理を示すフローチャートである。
ステップS410において、フィードバック制御部400は、各ストリームSTについて、将来のパケットトレインPTの受信期間RPを推定する。そして、フィードバック制御部400は、複数のストリームSTのそれぞれの推定受信期間RPがオーバーラップするか否かを判定する。オーバーラップがある場合(ステップS410;Yes)、フィードバック制御部400は、フィードバック制御処理を行う(ステップS420)。それ以外の場合(ステップS410;No)、今回のサイクルにおける処理は終了する。
以下、オーバーラップ判定処理(ステップS410)及びフィードバック制御処理(ステップS420)について更に詳しく説明する。
4-1.ステップS410(オーバーラップ判定処理)フィードバック制御部400は、ストリーム識別テーブル210に基づいて、将来のパケットトレインPTの受信期間RPを推定する。図11で例示されたように、ストリーム識別テーブル210は、前回のトレイン開始時刻ts、トレイン継続時間TD、及びトレイン間隔TIを含んでいる。フィードバック制御部400は、前回のトレイン開始時刻tsとトレイン間隔TIに基づいて、将来のパケットトレインPTの推定トレイン開始時刻tseを推定する。更に、フィードバック制御部400は、推定トレイン開始時刻tseとトレイン継続時間TDに基づいて、将来のパケットトレインPTの受信期間RPを推定する(図5参照)。更に、フィードバック制御部400は、複数のストリームSTのそれぞれの推定受信期間RPがオーバーラップするか否かを判定する。
図16は、オーバーラップ判定処理の一例を説明するための概念図である。制御周期は、複数のストリームSTのそれぞれのトレイン間隔TIの最大公約数である。フィードバック制御部400は、各ストリームSTについて、制御周期の開始からパケットトレインPTの推定受信期間RP(推定トレイン開始時刻tse)までのオフセットOSを算出する。例えば、ストリームST_1に関するオフセットOSは15msであり、ストリームST_2に関するオフセットOSは14msである。フィードバック制御部400は、オフセットOSと推定受信期間RPに基づいて、複数のストリームSTのそれぞれの推定受信期間RPがオーバーラップするか否かを判定する。
4-2.ステップS420(フィードバック制御処理)4-2-1.第1の例図17は、フィードバック制御処理(ステップS420)の第1の例を示すフローチャートである。
ステップS422において、フィードバック制御部400は、オーバーラップが発生している複数のストリームSTの中から対象ストリームST_tを選択する。対象ストリームST_tは、受信期間RPをシフトさせる対象である。例えば、フィードバック制御部400は、複数のストリームSTのうち優先度が比較的低いものを対象ストリームST_tとして選択する。つまり、複数のストリームSTが第1ストリームと第1ストリームよりも優先度の低い第2ストリームを含む場合、フィードバック制御部400は、第2ストリームの方を対象ストリームST_tとして選択する。フィードバック制御部400は、優先度が最も低い一つを対象ストリームST_tとして選択してもよい。優先度は、例えば、ヘッダ内のCoS(Class Of Service)値によって規定される。
ステップS423において、フィードバック制御部400は、対象ストリームST_tを送信している送信装置10にフィードバック情報FBを送信(フィードバック)する。フィードバック情報FBは、パケットトレインPTの送信タイミングを変更するよう指示する。例えば、フィードバック情報FBは、パケットトレインPTの送信タイミングを一定時間だけ遅らせることを指示する。更に、フィードバック制御部400は、フィードバック制御の実績をフィードバック制御テーブル220に書き込む。
図18は、フィードバック制御テーブル220の一例を示している。フィードバック制御テーブル220は、ストリームST毎に別々のエントリを有する。各エントリは、ストリーム番号、フィードバック実施時刻、フィードバック前のオフセットOS、及びフィードバック後のオフセットOSを含んでいる。図18に示される例では、対象ストリームST_tはストリームST_2である。フィードバック制御の結果、ストリームST_2に関するオフセットOSは、14msから20msに変わる。
フィードバック制御処理の後にオーバーラップが再度検知された場合、フィードバック制御部400は、フィードバック情報FBを再度送信する。フィードバック制御処理を繰り返し行うことにより、オーバーラップが解消され、輻輳発生が抑制される。
4-2-2.第2の例図19は、フィードバック制御処理(ステップS420)の第2の例を示すフローチャートである。ステップS422は、上述の第1の例の場合と同様である。
ステップS424において、フィードバック制御部400は、対象ストリームST_tに関して、受信期間RPのオーバーラップを解消するために必要な受信期間RPのシフト量を算出する。このとき、フィードバック制御部400は、シフト後の受信期間RPと他のストリームの受信期間RPとの間の空き時間がなるべく小さくなるように、シフト量を決定してもよい。
ステップS425において、フィードバック制御部400は、対象ストリームST_tを送信している送信装置10にフィードバック情報FBを送信(フィードバック)する。フィードバック情報FBは、ステップS424において算出されたシフト量を含んでおり、パケットトレインPTの送信タイミングをシフト量だけ遅らせるよう指示する。更に、フィードバック制御部400は、フィードバック制御の実績をフィードバック制御テーブル220に書き込む。
図20は、フィードバック制御テーブル220の一例を示している。図18における説明と重複する説明は適宜省略する。図20に示される例では、各エントリは、更に「シフト量」を含んでいる。ストリームST_1、ST_2に関するフィードバック前のオフセットOSは、それぞれ、15ms、14msである。トレイン継続時間TDが18.97ms(図11参照)である場合、ストリームST_2のパケットトレインPTの送信タイミングを例えば20ms遅らせることにより、オーバーラップは解消される。よって、シフト量は20msと算出される。フィードバック制御の結果、ストリームST_2に関するオフセットOSは、14msから34msに変わる。
第2の例によれば、シフト量を算出し、シフト量を明示的に通知することによって、輻輳発生をより確実に回避することが可能となる。
4-2-3.第3の例フィードバック制御処理の第3の例では、オーバーラップが発生する期間における複数のストリームSTの「合計受信レート」が考慮される。その合計受信レートが集線装置30の出力ポート(上位送受信部32)のリンクレートを超過している場合、フィードバック制御部400は、対象ストリームST_tを選択して、フィードバック情報FBを送信する。
一例として、図21に示される3種類のストリームST_1、ST_2、ST_3について考える。それらストリームST_1、ST_2、ST_3の推定受信期間RPのオーバーラップがある。
図22は、ストリーム識別テーブル210の例を示している。図22に示される例では、ストリーム識別テーブル210は、更に、各ストリームSTのパケットが出力される出力ポートを示している。ストリームST_1、ST_2、ST_3に関する出力ポートは同じOP1である。
図23は、ストリーム帯域テーブル230の一例を示している。ストリーム帯域テーブル230は、ストリームST毎に別々のエントリを有する。各エントリは、ストリーム番号、出力ポート、フィードバック前のオフセットOS、トレイン継続時間TD、及び平均受信レートを含んでいる。このようなストリーム帯域テーブル230は、記憶装置120に格納される。ストリーム帯域テーブル230は、フィードバック制御テーブル220に含まれていてもよい。
各ストリームSTの平均受信レートは4.86Gbpsである。出力ポートOP1のリンクレートは10Gbpsであるとする。この場合、オーバーラップが発生する期間におけるST_1、ST_2、ST_3の合計受信レートは、出力ポートOP1のリンクレートを超過している。よって、フィードバック制御部400は、対象ストリームST_tを選択してフィードバック制御を実施する。図21に示される例では、ストリームST_3が対象ストリームST_tとして選択される。フィードバック制御部400は、ストリームST_3を送信している送信装置10にフィードバック情報FBを送信(フィードバック)する。
図24は、フィードバック制御処理(ステップS420)の第3の例を要約的に示すフローチャートである。
ステップS421において、フィードバック制御部400は、オーバーラップが発生する期間における複数のストリームSTの合計受信レートが出力ポートのリンクレートを超過するか否かを判定する。合計受信レートが出力ポートのリンクレートを超過する場合(ステップS421;Yes)、処理は、ステップS422に進む。一方、合計受信レートが出力ポートのリンクレートを超過しない場合(ステップS421;No)、ステップS420は終了する。
ステップS422において、フィードバック制御部400は、オーバーラップが発生している複数のストリームSTの中から対象ストリームST_tを選択する。例えば、フィードバック制御部400は、ストリーム帯域テーブル230に基づいて、合計受信レートが出力ポートのリンクレート以下となるように少なくとも1つの対象ストリームST_tを選択する。つまり、フィードバック制御部400は、合計受信レートの超過が解消されるように少なくとも1つの対象ストリームST_tを選択する。
その後、フィードバック制御部400は、上述の第2の例の場合と同様にステップS424及びステップS425を実行する。あるいは、フィードバック制御部400は、上述の第1の例の場合と同様にステップS423を実行してもよい。
以上に説明されたように、第3の例によれば、オーバーラップが発生する期間における複数のストリームSTの合計受信レートが出力ポートのリンクレートを超過する場合にフィードバック制御が実行される。これにより、必要以上にフィードバック制御が実行されることが防止される。よって、ネットワーク利用効率が不必要に低下することが防止される。
5.適用例図25は、本実施の形態に係る集線装置30の適用例を説明するための概念図である。
送信装置10は、カメラ11を含んでいる。カメラ11は、撮像処理を行い、低圧縮率の画像データ、あるいは、非圧縮の画像データを定期的に送信する。カメラ11は、符号化部12、撮像タイミング制御部13、及び有線通信部14を含んでいる。撮像タイミング制御部13は、撮像タイミングを可変設定することができる。例えば、カメラ11は、1秒間に10枚の画像を有線通信部14から出力する。1枚あたりの画像サイズは12MB(4,000画素×3,000画素×8bit色)である。
カメラ11は、無線端末15と接続される。無線端末15は、カメラ11から出力される画像データを無線基地局40に送信する。無線端末15は、有線通信部16と無線通信部17を含んでいる。例えば、カメラ11の有線通信部14と無線端末15の有線通信部16は、5GBase-Tで接続される。無線通信部17は、無線基地局40と無線通信を行う。例えば、無線ピークレート5Gbpsでの通信が可能である。尚、ビームフォーミングを利用することにより、あるいは、地理的にエリアを分けることにより、収容エリア間の干渉は無視できるとする。
無線基地局40と無線集約局50との間は10Gbpsの光通信ネットワークにより接続される。無線集約局50と集線装置30の間も10Gbpsの光通信ネットワークにより接続される。
以上に説明された通信ネットワークにおいて、複数のカメラ11から周期的に画像データが送信される。従って、一時的な輻輳が周期的に発生する可能性がある。集線装置30は、必要に応じて、輻輳制御を行い、フィードバック情報FBをカメラ11に送信する。フィードバック情報FBを受信したカメラ11の撮像タイミング制御部13は、そのフィードバック情報FBに従って撮像タイミングを変化させる。これは、画像データの送信タイミングを変化させることと等価である。その結果、通信ネットワークにおける輻輳発生が抑制される。
図26は、図25に示される集線装置30の適用例における輻輳制御プログラム130の構成例を示す図である。この輻輳制御プログラム130は、図9で示した構成のうちの輻輳制御プログラムの構成を示している。なお、図26に示される構成の場合、図10におけるストリーム情報取得部300に代えて、クラシファイア(Classifier)510、ストリーム識別部520、およびメディア識別部530がストリーム情報取得部300と同様の機能を有するものとして設けられている。
輻輳制御プログラム130は、クラシファイア510、ストリーム識別部520、メディア識別部530、到着タイミング識別部540、および輻輳フィードバック部550で構成される。
図26に示す構成例では、映像データの到着に先立って、SIP(Session Initiation Protocol)/SDP(Session Description Protocol)による接続ネゴシエーションが、カメラ11と上位装置の間で行われる例について説明する。
集線装置30が高優先度の映像データを受信すると、クラシファイア510は、優先度を識別し、フレームサイズや到着時刻を含むヘッダ情報をストリーム識別部520に送る。ストリーム識別部520は、各カメラ11から送信された映像データの、送信元IPアドレス・送信元L4ポート番号、送信先IPアドレス、送信先L4ポート番号、プロトコル番号から、カメラ1からのストリームと、カメラ2からのストリームを識別する。ストリーム識別部520は、識別した内容をストリーム識別テーブル210に登録する。
メディア識別部530は、識別されたストリームのヘッダ情報から、パケットの先頭とパケットの先頭の間の時間が、100us以下で連続したパケットの数をカウントし、1パケットトレインあたり、7906パケット(各1518byte)であることを、ストリーム識別テーブル210に登録する。
また、メディア識別部530は、識別されたストリームのヘッダ情報から、同様に100usを超えて最初に到着するパケットと、前パケットトレインの先頭として記載した受信時刻の差からパケットトレイン間の間隔が100msであることをストリーム識別テーブル210に登録する。
図27は、各種情報が登録されたストリーム識別テーブル210の一例を示す図である。図27には、一例として2つのストリームを受信した場合のストリーム識別テーブルを示している。ストリーム1のストリームは、送信元がAで、送信先がBである。受信ポートがPで、送信ポートがP2である。ストリーム2のストリームは、送信元がCで、送信先がBである。受信ポートがP3で、送信ポートがP2である。ストリーム1とストリーム2のトレインサイズはいずれも12MBである。ストリーム1とストリーム2の平均パケット間隔はいずれも2.4usである。ストリーム1とストリーム2のトレイン間隔はいずれも100msである。ストリーム1とストリーム2のトレイン継続時間はいずれも18.97秒である。
到着タイミング識別部540は、ストリーム識別テーブル210を参照し、各ストリームのトレイン間隔の最大公約数となる制御周期を基準として、各ストリームの到着オフセット時刻を算出する。一例として、ストリーム1の到着オフセット時刻が、制御周期の先頭から15msで、ストリーム2の到着オフセット時刻が14msであるとする。
この場合、到着タイミング識別部540がストリーム識別テーブル210を参照すると、到着タイミング識別部540は、ストリーム2のトレイン到着終了が、ストリーム1のトレイン開始時刻と重複することを検知する。
到着タイミング識別部540が重複を検知すると、輻輳フィードバック部550は、ストリーム2の送信元であるカメラ11のIPアドレス宛に、フィードバック情報(リセット命令)を送信し、フィードバックを送信した時刻Ts3を、フィードバック制御テーブル220に登録する。
図28は、各種情報が登録されたフィードバック制御テーブル220の一例を示す図である。上述したように、ストリーム1の到着オフセット時刻が、制御周期の先頭から15msであるので、フィードバック前オフセットは15msとなっている。同様に、ストリーム2の到着オフセット時刻が14msであるので、フィードバック前オフセットは12msとなっている。ストリーム2のカメラ11に送信したフィードバックにより、ストリーム2のフィードバック後オフセットが20msであることが示さている。
フィードバック送信後に、到着タイミング識別部540でストリーム1とストリーム2の重複が解消されていれば、輻輳フィードバック部550は制御を行わない。一方、フィードバック送信後に再度重複が検知された場合には、輻輳フィードバック部550は、フィードバック制御テーブルにもとづいて、他のストリームのオフセット時刻と重複しないように送信時刻を算出し、再度フィードバックを送信する。このようにすることで、複数ストリームの重複による輻輳を回避できる。
図29、図30は、図26に示した輻輳制御プログラム130の処理の流れを示すフローチャートである。集線装置30がパケットを受信すると(ステップS501:YES)、クラシファイア510は、優先度を識別する(ステップS502)。クラシファイア510は、優先度が予め定められた高優先度か否かを判定する(ステップS503)。優先度が高優先度ではない場合には(ステップS503:NO)、処理を終了する。一方、優先度が高優先度である場合には(ステップS503:YES)、クラシファイア510は、受信パケットが属するストリームを識別する(ステップS504)。
ストリーム識別部520は、ストリーム識別テーブル210を参照し、識別したストリームSTに関するエントリが存在すれば受信パケット数をカウント(インクリメント)し(ステップS504)、ステップS501に戻る。一方、識別したストリームに関するエントリが存在すしなければエントリを作成し、そのエントリに対応する受信パケット数をカウントし(ステップS505)、ステップS501に戻る。
集線装置30がパケットを受信していない場合(ステップS501:NO)、ストリーム識別部520は、各ストリーム毎に、前回のパケット受信から一定時間β(例:100μs)が経過したか否かを判定する(ステップS506)。前回のパケット受信から一定時間βが経過していない場合(ステップS506;No)、処理は、ステップS501に戻る。一方、あるストリームに関して、前回のパケット受信から一定時間βが経過した場合(ステップS506;Yes)、ストリーム識別部520は、当該ストリームに関するカウントを終了する。これにより、ストリーム識別部520は、パケットトレインPTを認識する(ステップS507)。
ストリーム識別部520は、認識したパケットトレインの情報に基づいて、当該パケットトレインが属するストリームSTの特徴を示すストリーム情報を取得する。そして、ストリーム識別部520は、取得したストリーム情報をストリーム識別テーブル210に登録し(ステップS508)、処理を終了する。
図30において、到着タイミング識別部540は、ストリーム識別テーブル210を確認し(ステップS601)、重複を検知したか否かを判定する(ステップS602)。到着タイミング識別部540が重複を検知していない場合には(ステップS602:NO)、処理を終了する。一方、重複を検知すると(ステップS602:YES)、輻輳フィードバック部550は、フィードバック制御テーブル220を作成し(ステップS603)、フィードバック情報を送信元であるカメラ11のIPアドレス宛に送信して(ステップS604)、処理を終了する。
(第2実施形態)
次に、ストリームを、そのストリームが送信される基地局ごとにグループ化するとともに、カメラ11の撮像タイミングを、集線装置から明示的に指定する例について説明する。なお、以下の説明では、「グループ」を「スケジューラ」と表現する。また、説明を簡単にするために、撮影タイミングと送信タイミングは同じタイミングとして説明する。図31は、第2実施形態におけるフィードバック制御部400の構成例を示す図である。フィードバック制御部400は、ストリーム識別部610、スケジューラ識別部620、到着タイミング識別部630、第1フィードバック部640、第2フィードバック部650、および指示部660で構成される。
次に、ストリームを、そのストリームが送信される基地局ごとにグループ化するとともに、カメラ11の撮像タイミングを、集線装置から明示的に指定する例について説明する。なお、以下の説明では、「グループ」を「スケジューラ」と表現する。また、説明を簡単にするために、撮影タイミングと送信タイミングは同じタイミングとして説明する。図31は、第2実施形態におけるフィードバック制御部400の構成例を示す図である。フィードバック制御部400は、ストリーム識別部610、スケジューラ識別部620、到着タイミング識別部630、第1フィードバック部640、第2フィードバック部650、および指示部660で構成される。
ストリーム識別部610は、ストリーム識別子、前トレイン開始時刻、トレインサイズ、平均パケット間隔、トレイン継続時間、およびトレイン間隔を識別する。スケジューラ識別部620は、ストリームのスケジューラを識別する。到着タイミング識別部630は、パケットトレインの到着タイミングを識別する。第1フィードバック部640は、同一のスケジューラに属するストリームに含まれるパケットトレインの受信期間が、グループ内で重複しない送信開始タイミングを導出する。第1フィードバック部640は第1導出部の一例である。第2フィードバック部650は、第1フィードバック部640により導出された送信開始タイミングによって送信されるパケットトレインの受信期間が、異なるスケジューラ間で重複しない送信開始タイミングを導出する。第2フィードバック部650は第2導出部の一例である。指示部660は、第2フィードバック部650により導出された送信開始タイミングをカメラ11(送信端末)に指示する。
図32は、第1フィードバック部640、および第2フィードバック部650の導出例を示す図である。図32において、「1」と記載されたトレインは、ストリーム1のトレインである。「2」と記載されたトレインは、ストリーム2のトレインである。「3」と記載されたトレインは、ストリーム3のトレインである。「4」と記載されたトレインは、ストリーム4のトレインである。
ストリーム1とストリーム2は、同一のスケジューラ(「スケジューラ1」とする)に属する。ストリーム3とストリーム4は、同一のスケジューラ(「スケジューラ2」とする)に属する。また、図32に記載された「フィードバック前」とは、第1フィードバック部640による導出前(当然に第2フィードバック部650による導出前でもある)のパケットトレインを示す。「第1フィードバック後」とは、第1フィードバック部640による導出されたタイミングで送信された場合のパケットトレインを示す。「第2フィードバック後」とは、第2フィードバック部650による導出されたタイミングで送信された場合のパケットトレインを示す。
ストリーム1における前トレイン開始時刻ts1は15msとする。ストリーム2における前トレイン開始時刻ts2は16msとする。ストリーム3における前トレイン開始時刻ts3は26msとする。ストリーム4における前トレイン開始時刻ts4は28msとする。
図33は、ストリーム識別テーブル210の一例を示す図である。図33には、図32に示す4つのストリームを受信した場合のストリーム識別テーブルを示している。ストリーム1のストリームは、送信元がAで、送信先がBである。受信ポートがPで、送信ポートがP2である。ストリーム2のストリームは、送信元がCで、送信先がBである。受信ポートがP3で、送信ポートがP2である。ストリーム1とストリーム2のトレインサイズはいずれも12MBである。ストリーム1とストリーム2の平均パケット間隔はいずれも2.4usである。ストリーム1とストリーム2のトレイン間隔はいずれも100msである。ストリーム1とストリーム2のトレイン継続時間はいずれも18.97秒である。スケジューラ識別子は、属するスケジューラを示す。ストリーム1とストリーム2は同じスケジューラに属し、そのスケジューラ識別子はいずれも1である。
ストリーム3のストリームは、送信元がDで、送信先がBである。受信ポートがPで、送信ポートがP2である。ストリーム4のストリームは、送信元がEで、送信先がBである。受信ポートがP3で、送信ポートがP2である。ストリーム3とストリーム4のトレインサイズはいずれも12MBである。ストリーム3とストリーム4の平均パケット間隔はいずれも2.4usである。ストリーム3とストリーム4のトレイン間隔はいずれも100msである。ストリーム3とストリーム4のトレイン継続時間はいずれも18.97秒である。ストリーム3とストリーム4は同じスケジューラに属し、そのスケジューラ識別子はいずれも2である。
図34、図35、図36は、フィードバック制御テーブル220を示す図である。図34、図35、図36に示されるフィードバック制御テーブル220には、新たに「調整値」という項目が設けられる。この調整値は、第1フィードバック部640および第2フィードバック部650により調整された値を示す。図34に示されるフィードバック制御テーブル220は、図32における「フィードバック前」におけるフィードバック制御テーブル220である。図35に示されるフィードバック制御テーブル220は、図33における「第1フィードバック後」におけるフィードバック制御テーブル220である。図34における「第2フィードバック後」におけるフィードバック制御テーブル220である。
これを踏まえ、再び図32を用いて説明する。第1フィードバック部640は、スケジューラ1に属するストリームに含まれるパケットトレインの受信期間が、スケジューラ内で重複しない送信開始タイミングを導出する。この際、オフセット時刻の数値が大きいストリーム2とストリーム4に対して、それぞれ導出する。
スケジューラ1における導出方法は、ts1+(トレイン間隔/同一スケジューラに属するストリーム数)を算出することで導出する。ts1=15msで、トレイン間隔は100msで同一スケジューラに属するストリーム数は2であるので、パケットトレイン2の送信タイミングを15ms+100/2ms=15ms+50ms=65msとする。
同様に、第1フィードバック部640は、スケジューラ2に属するストリームに含まれるパケットトレインの受信期間が、スケジューラ内で重複しない送信開始タイミングを導出する。導出方法は、ts3+(トレイン間隔/同一スケジューラに属するストリーム数)を算出することで導出する。ts3=26msで、トレイン間隔は100msで同一スケジューラに属するストリーム数は2であるので、パケットトレイン4の送信タイミングを26ms+100/2ms=26ms+50ms=76msとする。
これにより、図35に示されるように、ストリーム2のフィードバック後オフセットは65msとなり、調整値は49msとなる。また、ストリーム4のフィードバック後オフセットは76msとなり、調整値は48msとなる。このようにすることで、同一スケジューラ内での輻輳を抑制できる。
次いで、第2フィードバック部650は、第1フィードバック部640により導出された送信開始タイミングによって送信されるパケットトレインの受信期間が、異なるグループで重複しない送信開始タイミングを導出する。
図32に示されるように、第1フィードバック後では、パケットトレイン3はパケットトレイン1に重複し、パケットトレイン4はパケットトレイン2に重複する。そこで、第2フィードバック部650は、パケットトレイン3、4を重複しないように送信開始タイミングを導出する。
具体的に説明する。ストリーム1のオフセットは15msである。ストリーム2のオフセットは65msである。ストリーム3のオフセットは26msである。ストリーム4のオフセットは76msである。そして、パケットトレインの継続時間は18.97msである。
そこで、第2フィードバック部650は、ストリーム3のパケットトレインがストリーム1のパケットトレインと重ならないように、ストリーム1のパケットトレインのオフセットである15msにパケットトレインの継続時間は18.97msを加えた33.97ms以降とする。ここでは、フィードバック後オフセットを33.97msとし、この場合の調整値は7.97msとなる。
同様に、第2フィードバック部650は、ストリーム4のパケットトレインがストリーム2のパケットトレインと重ならないように、ストリーム2のパケットトレインのオフセットである65msにパケットトレインの継続時間は18.97msを加えた84.97ms以降とする。ここでは、フィードバック後オフセットを84.97msとし、この場合の調整値は8.97msとなる。
以上より、指示部660は、ストリーム2に対応するカメラ11に撮影タイミングを49ms遅らせた送信タイミングを指示する。指示部660は、ストリーム3に対応するカメラ11に撮影タイミングを7.97ms遅らせた送信タイミングを指示する。ストリーム4に対応するカメラ11に撮影タイミングを56.97(=48+8.97)ms遅らせた送信タイミングを指示する。このようにすることで、全体での輻輳を抑制できる。
図37は、第2実施形態における処理の流れを示すフローチャートである。図37において、第1フィードバック部640は、ストリーム識別テーブル210を確認し(ステップS701)、重複があるか否かを判定する(ステップS702)。重複がない場合には(ステップS702:NO)、処理を終了する。
重複がある場合には(ステップS702:YES)、第1フィードバック部640は、上述したようにスケジューラ内で重複しない送信開始タイミングを導出する(ステップS703)。次いで、第2フィードバック部650は、上述したように異なるスケジューラ間で重複しない送信開始タイミングを導出する(ステップS704)。指示部660は、導出された送信開始タイミングをカメラ11に指示し(ステップS705)、処理を終了する。カメラ11は、指示部660により指示された送信開始タイミングで送信を開始する。
このように、カメラ11の撮像タイミングを、集線装置30における輻輳が発生しないように明示的に指定することで、集線装置30において瞬時的な輻輳が発生しなくなる。さらに、カメラ11から集線装置30に到着するまでにバッファリングされることで発生する遅延も回避することができる。
また、受信期間が重複しない送信開始タイミングを導出することで、各パケットトレインは重複しないことから、1つのパケットトレインに全帯域が割り当てられることから、送信レートの低下を軽減しつつ、通信ネットワークにおける輻輳を抑制することができる。
以上説明した実施形態では、図4や図31に示されるように、集線装置30の内部に輻輳コントローラ(輻輳制御装置)が設けられた実施形態について説明したが、輻輳コントローラの機能は集線装置の外部に設けられてもよい。輻輳コントローラの機能を集線装置の外部に設けた2つの通信システムの構成例1、2について説明する。
(通信システムの構成例1)図38は、輻輳コントローラの機能を集線装置の外部に設けた場合の各装置における構成例1を示す図である。集線装置30は、上述したストリーム情報取得部300、およびストリーム識別テーブル210を備える。すなわち、集線装置30ではストリームを識別する機能のみを備える。そして、集線装置30の外に設けられた輻輳コントローラ500が、上述したフィードバック制御部400、およびフィードバック制御テーブル220を備える。
図38に示されるように、集線装置30は、ストリームを識別し、ストリーム識別テーブル210を輻輳コントローラ500が参照可能なように構成する。また、輻輳コントローラ500は、集線装置30を介して送信装置10にフィードバック情報を送信する。送信装置10は、フィードバック情報を受信すると、フィードバック情報に応じて、調整部が送信タイミングを調整する。このように構成することで、図4の構成と同様の制御を行うことが可能となる。
(通信システムの構成例2)図39は、輻輳コントローラの機能を集線装置の外部に設けた場合の各装置における構成例2を示す図である。構成例2では、図31に示した機能を用いた構成例を示す。集線装置30は、上述したストリーム情報識別部610、およびストリーム識別テーブル210を備える。すなわち、集線装置30ではストリームを識別する機能のみを備える。そして、集線装置30の外に設けられた輻輳コントローラ500が、上述したスケジューラ識別部620、到着タイミング識別部630、第1フィードバック部640、第2フィードバック部650、指示部660、およびフィードバック制御テーブル220を備える。
図39に示されるように、集線装置30は、ストリームを識別し、ストリーム識別テーブル210を輻輳コントローラ500が参照可能なように構成する。また、輻輳コントローラ500における第1フィードバック部640は、同一のスケジューラに属するストリームに含まれるパケットトレインの受信期間が、グループ内で重複しない送信開始タイミングを導出する。第2フィードバック部650は、第1フィードバック部640により導出された送信開始タイミングによって送信されるパケットトレインの受信期間が、異なるスケジューラ間で重複しない送信開始タイミングを導出する。指示部660は、第2フィードバック部650により導出された送信開始タイミングを集線装置30を介して送信端末10に指示する。送信装置10は、フィードバック情報を受信すると、フィードバック情報に応じて、調整部が送信タイミングを調整する。このように構成することで、図31の構成と同様の制御を行うことが可能となる。
上述した構成例1、2では、ストリームの識別を集線装置が行っているが、ストリームの識別も輻輳コントローラ500が行ってもよい。この場合、集線装置から輻輳コントローラは送信装置が送信したストリームをそのまま受信し、ストリームの識別を行う。また、輻輳コントローラは、ストリーム内のデータのうち、フィードバックに必要なデータ以外のデータは破棄する。この場合、集線装置30に輻輳コントローラへストリームを送信する機能と、輻輳コントローラから送信装置にフィードバック情報を送信する機能を設けるだけでよい。
第1フィードバック部640、第2フィードバック部650、指示部660は、CPU(Central Processing Unit)等のプロセッサーとメモリーとを用いて構成されてもよい。この場合、第1フィードバック部640、第2フィードバック部650、指示部660は、プロセッサーがプログラムを実行することによって、第1フィードバック部640、第2フィードバック部650、指示部660として機能する。なお、第1フィードバック部640、第2フィードバック部650、指示部660の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されても良い。上記のプログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM、半導体記憶装置(例えばSSD:Solid State Drive)等の可搬媒体、コンピュータシステムに内蔵されるハードディスクや半導体記憶装置等の記憶装置である。上記のプログラムは、電気通信回線を介して送信されてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明は、複数の送信端末から情報を受信する集線装置などに適用可能である。
30…集線装置、400…フィードバック制御部、610…ストリーム識別部、620…スケジューラ識別部、630…到着タイミング識別部、640…第1フィードバック部、650…第2フィードバック部、660…指示部
Claims (7)
- 複数の送信端末から送信されるストリームを受信する集線装置であって、
複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、
前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、
前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、
を備えた集線装置。 - 前記パケット群は、ストリームにおいて送信されるパケット間隔が一定時間以下であるパケットで構成される請求項1に記載の集線装置。
- 受信する各ストリームについて、パケット間隔が一定時間以下であるパケット群を認識し、前記各ストリームについて、連続する2つのパケット群の間の時間間隔を取得し、前記各ストリームについて、前記認識したパケット群と前記時間間隔に基づいて、将来のパケット群の受信期間を推定する請求項1または請求項2に記載の集線装置。
- 複数の送信端末と、前記送信端末から送信されるストリームを受信する集線装置を含む通信システムであって、
前記集線装置は、
複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、
前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、
前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、
を備え、
前記送信端末は、前記指示部により指示された送信開始タイミングで送信を開始する通信システム。 - 複数の送信端末から送信されるストリームを受信する集線装置と、輻輳制御装置とを含む通信システムであって、
前記輻輳制御装置は、
複数の送信端末から送信され、前記集線装置が受信するストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、
前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、
前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、
を備えた通信システム。 - 複数の送信端末から送信されるストリームを受信する集線装置の制御方法であって、
複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出ステップと、
前記第1導出ステップにより導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出ステップと、
前記第2導出ステップにより導出された送信開始タイミングを前記送信端末に指示する指示ステップと、
を備えた制御方法。 - コンピュータを、複数の送信端末から送信されるストリームを受信する集線装置として機能させるためのプログラムであって、
前記コンピュータを、
複数の送信端末から送信されるストリームは予めグループ化されており、グループに属するストリームに含まれるパケット群の受信期間が、グループ内で重複しない送信開始タイミングを導出する第1導出部と、
前記第1導出部により導出された送信開始タイミングによって送信されるパケット群の受信期間が、異なるグループで重複しない送信開始タイミングを導出する第2導出部と、
前記第2導出部により導出された送信開始タイミングを前記送信端末に指示する指示部と、
して機能させるためのプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2022/023653 WO2023242912A1 (ja) | 2022-06-13 | 2022-06-13 | 集線装置、通信システム、制御方法およびプログラム |
| JP2024527915A JP7748011B2 (ja) | 2022-06-13 | 2022-06-13 | 集線装置、通信システム、制御方法およびプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2022/023653 WO2023242912A1 (ja) | 2022-06-13 | 2022-06-13 | 集線装置、通信システム、制御方法およびプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023242912A1 true WO2023242912A1 (ja) | 2023-12-21 |
Family
ID=89192525
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2022/023653 Ceased WO2023242912A1 (ja) | 2022-06-13 | 2022-06-13 | 集線装置、通信システム、制御方法およびプログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP7748011B2 (ja) |
| WO (1) | WO2023242912A1 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1051410A (ja) * | 1996-07-29 | 1998-02-20 | Matsushita Electric Ind Co Ltd | ストリーム多重化方法及びその装置 |
| JP2012231445A (ja) * | 2011-04-11 | 2012-11-22 | Toshiba Corp | パケット配信装置およびパケット配信方法 |
| WO2018020559A1 (ja) * | 2016-07-25 | 2018-02-01 | 三菱電機株式会社 | 光ネットワークの光端局装置および上りスケジューリング方式 |
-
2022
- 2022-06-13 JP JP2024527915A patent/JP7748011B2/ja active Active
- 2022-06-13 WO PCT/JP2022/023653 patent/WO2023242912A1/ja not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH1051410A (ja) * | 1996-07-29 | 1998-02-20 | Matsushita Electric Ind Co Ltd | ストリーム多重化方法及びその装置 |
| JP2012231445A (ja) * | 2011-04-11 | 2012-11-22 | Toshiba Corp | パケット配信装置およびパケット配信方法 |
| WO2018020559A1 (ja) * | 2016-07-25 | 2018-02-01 | 三菱電機株式会社 | 光ネットワークの光端局装置および上りスケジューリング方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7748011B2 (ja) | 2025-10-02 |
| JPWO2023242912A1 (ja) | 2023-12-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2642704B1 (en) | Reducing headroom | |
| US9325628B2 (en) | Packet handling method, forwarding device and system | |
| US20060203730A1 (en) | Method and system for reducing end station latency in response to network congestion | |
| US20070280111A1 (en) | Method and system for adaptive queue and buffer control based on monitoring and active congestion avoidance in a packet network switch | |
| US10439940B2 (en) | Latency correction between transport layer host and deterministic interface circuit | |
| US8189463B2 (en) | Method for realizing backpressure of masses of ports and device thereof | |
| JP5347836B2 (ja) | 通信装置および通信方法 | |
| CN110868359B (zh) | 一种网络拥塞控制方法 | |
| WO2020108020A1 (zh) | 拥塞控制的处理方法、报文转发装置及报文接收装置 | |
| US11425592B2 (en) | Packet latency reduction in mobile radio access networks | |
| US10638347B2 (en) | Method, device and computer storage medium for transmitting a control message | |
| CN114629847B (zh) | 基于可用带宽分配的耦合多流tcp拥塞控制方法 | |
| EP3641273B1 (en) | Edge node control | |
| WO2016008399A1 (en) | Flow control | |
| CN109995608A (zh) | 网络速率计算方法和装置 | |
| JP7748011B2 (ja) | 集線装置、通信システム、制御方法およびプログラム | |
| US8155074B1 (en) | Methods and systems for improving performance of applications using a radio access network | |
| JP7544276B2 (ja) | 集線装置、輻輳制御方法、及び輻輳制御プログラム | |
| CN114765585A (zh) | 一种服务质量检测方法、报文处理方法及装置 | |
| JP4890285B2 (ja) | ネットワーク中継装置 | |
| JP7485018B2 (ja) | コンテンツ配信システム | |
| KR102672112B1 (ko) | 네트워크 본딩 시스템 | |
| Yang et al. | Cross-Layer Assisted Early Congestion Control for Cloud VR Applications in 5G Edge Networks | |
| Xu et al. | MPVSched: Multipath Transmissions and Video Frame Scheduling for Content Delivery Networks | |
| CN115914106A (zh) | 一种用于网络流量转发的自适应缓冲算法 |
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: 22946732 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024527915 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22946732 Country of ref document: EP Kind code of ref document: A1 |