WO2023181565A1 - 送信装置、方法、及びプログラム - Google Patents

送信装置、方法、及びプログラム Download PDF

Info

Publication number
WO2023181565A1
WO2023181565A1 PCT/JP2022/047782 JP2022047782W WO2023181565A1 WO 2023181565 A1 WO2023181565 A1 WO 2023181565A1 JP 2022047782 W JP2022047782 W JP 2022047782W WO 2023181565 A1 WO2023181565 A1 WO 2023181565A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
packets
delay
communication
transmitting
Prior art date
Application number
PCT/JP2022/047782
Other languages
English (en)
French (fr)
Inventor
恒夫 中田
Original Assignee
株式会社デンソー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社デンソー filed Critical 株式会社デンソー
Priority to CN202280093926.2A priority Critical patent/CN119072911A/zh
Publication of WO2023181565A1 publication Critical patent/WO2023181565A1/ja
Priority to US18/890,598 priority patent/US20250016111A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/624Altering the ordering of packets in an individual queue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/41Flow control; Congestion control by acting on aggregated flows or links

Definitions

  • the present disclosure relates to a transmitting device, a transmitting method, and a transmitting program.
  • Patent Document 1 In order to avoid the effect of load distribution becoming smaller due to such an increase in delay difference between routes, a technique described in Patent Document 1, for example, is disclosed.
  • the scheduled transmission route of each packet to be transmitted is determined based on estimated values of delay and line speed of each route, such that the order of predicted arrival times at the receiving node is the order of the times of arrival at the transmitting node. Decide to be equal.
  • route 1 which has the largest maximum delay allowed for each route, the packet that is not the first among the packets waiting to be transmitted is transmitted. This makes it possible to apply an appropriate load to each route while suppressing delay differences between routes, optimizing communication efficiency.
  • the present disclosure has been made in view of the above points, and when transmitting packets by load balancing over multiple communication routes, even if the route with a small delay becomes faster than expected, the transfer delay on the receiving side will be reduced.
  • the purpose is to suppress
  • a transmitting device is a transmitting device that transmits a plurality of packets via a plurality of communication paths with load distribution, and the plurality of packets arriving from an upper layer are held in a holding unit that holds the plurality of packets in the order of arrival.
  • a predicted delay which is the time required for a packet to arrive at a receiving device when transmitting a packet on each of the plurality of communication paths, is calculated based on the data amount of the packet and the line speed of each of the plurality of communication paths.
  • the communication device includes a selection unit, and a transmission unit that transmits each of the plurality of packets via each of the communication paths selected by the selection unit.
  • the order of arrival is higher than the packet selected based on the predicted delay as a packet to be transmitted from the communication route with the largest delay when transmitting packets of the same amount of data among the plurality of communication routes.
  • the sending program according to the present disclosure is a sending device that sends a plurality of packets to a computer via a plurality of communication paths with load distribution, and holds the plurality of packets arriving from an upper layer in the order of arrival.
  • the present invention is a program for functioning as a selection unit that selects a packet of the plurality of packets, and a transmission unit that transmits each of the plurality of packets via each of the communication paths selected by the selection unit.
  • the transmitting device the transmitting method, and the transmitting program according to the present disclosure, even if a route with a small delay becomes faster than predicted when transmitting a packet by load balancing over multiple communication routes, the transmission on the receiving side Delays can be suppressed.
  • a communication system 100 includes a transmitting device 10 and a receiving device 20.
  • the transmitting device 10 and the receiving device 20 are connected via a communication line 30 and mutually transmit and receive data.
  • the communication line 30 is configured by multiplexing a plurality of communication paths. Note that the number of transmitting devices 10 and receiving devices 20 included in the communication system 100 is not limited to the example in FIG. 1, and two or more transmitting devices 10 and two or more receiving devices 20 may be included.
  • the storage device 46 stores a transmission program for executing transmission processing, which will be described later.
  • the CPU 42 is a central processing unit that executes various programs and controls each component. That is, the CPU 42 reads the program from the storage device 46 and executes the program using the memory 44 as a work area.
  • the CPU 42 controls each of the above components and performs various arithmetic operations according to programs stored in the storage device 46.
  • the memory 44 is comprised of RAM (Random Access Memory) and temporarily stores programs and data as a work area. A part of the memory 44 functions as a transmission queue (holding section).
  • the storage device 46 is configured with a ROM (Read Only Memory), an HDD (Hard Disk Drive), an SSD (Solid State Drive), etc., and stores various programs including an operating system and various data.
  • the input device 48 is a device for performing various inputs, such as a keyboard or a mouse.
  • the output device 50 is a device for outputting various information, such as a display or a printer.
  • a touch panel display may be used as the output device 50 to function as the input device 48.
  • the storage medium reading device 52 reads and stores data stored in various storage media such as a CD (Compact Disc)-ROM, a DVD (Digital Versatile Disc)-ROM, a Blu-ray disc, and a USB (Universal Serial Bus) memory. Writes data to the medium, etc.
  • the communication I/F 54 is an interface for communicating with other devices including the receiving device 20, and uses, for example, a standard such as Ethernet (registered trademark), FDDI, or Wi-Fi (registered trademark).
  • the hardware configuration of the receiving device 20 is generally the same as the hardware configuration of the transmitting device 10 shown in FIG. 2, so a description thereof will be omitted.
  • the storage device 46 of the receiving device 20 stores a receiving program for executing each process of the receiving device 20.
  • the transmitting device 10 includes a calculating section 12, a selecting section 14, and a transmitting section 16. Each functional unit is realized by the CPU 42 shown in FIG.
  • the transmission queue of the transmitting device 10 data waiting to be transmitted that has arrived from the upper layer of the network layer is stored for each packet. These multiple packets are held in the transmission queue in the order of arrival.
  • the packets held in this transmission queue are assigned a sequence number (hereinafter expressed as "[seq]") in the order of arrival.
  • [seq] sequence number
  • the transmission queue is an example of a holding unit of the present disclosure.
  • a portion of the memory 44 of the transmitter 10 functions as a transmit queue.
  • the selection unit 14 selects one communication route from among the plurality of communication paths for transmitting each of the plurality of packets so that each of the plurality of packets held in the transmission queue is received by the receiving device 20 in the order of arrival. At this time, if the communication route with the largest predicted delay value calculated by the calculation unit 12 (hereinafter referred to as "communication route with large delay") is selected, the selection unit 14 selects the A packet whose arrival order is later than the packet selected for transmission based on the calculated predicted delay is selected.
  • a comparative example is a method of selecting a communication path for transmitting each packet based only on predicted delay so that the packets arrive at the receiving device in sequence number order.
  • FIG. 4 shows an example in which sequence numbers of packets to be transmitted over multiple routes are selected based on predicted delays.
  • t in the figure represents time
  • v represents the line speed of the communication path.
  • the time t is shown increasing to the left, and the velocity v is shown increasing upward.
  • the left side is the transmitting side and the right side is the receiving side.
  • the three-dimensional blocks represent packets that have arrived at the transmission queue and are still lined up in sequence number order, and the two-dimensional blocks represent selected packets that have been allocated to multiple routes.
  • the horizontal width of a plane block represents the time required to transmit a packet corresponding to that block
  • the vertical width of a block represents the speed at which packets corresponding to that block are transmitted.
  • route 1 in the figure indicates a communication route with a large delay
  • route 2 indicates a communication route that is not a communication route with a large delay (hereinafter referred to as "a communication route with a small delay").
  • a route for transmitting the packet is selected from a plurality of routes. More specifically, as shown in FIG. 4(a), if the line speed of route 1, which is a route with a large delay, is v, and the line speed of route 2, which is a route with a small delay, is 2v, the data of each packet is If the amounts are the same, the predicted delay for one packet on route 1 is 2t, and the predicted delay for one packet on route 2 is t. Based on the predicted delay of each route, for example, the packets [seq1, seq2] are selected to be transmitted from route 2, and the packets [seq3] are selected to be transmitted from route 1.
  • the packets [seq4, seq5] are selected to be transmitted from route 2, and the packets [seq6] are selected to be transmitted from route 1.
  • packets are transmitted so that the transmission and reception of [seq3] from route 1 ends at the timing when packets [seq1, seq2] are transmitted from path 2 and reception ends.
  • packets are transmitted from route 1 so that the transmission and reception of [seq6] ends.
  • the route for transmitting each packet is selected based on the calculated predicted delay so as to suppress wasted waiting time, that is, so that the packets arrive at the receiving device in the order of their sequence numbers. ing.
  • FIG. 4B shows an example in which the line speed of route 2 is increased from 2v to 4v. That is, on route 2, the predicted delay for one packet is 1/2t.
  • the packets are transmitted in the order of their sequence numbers selected in the same manner as in Figure 4(a)
  • the packets with sequence numbers later than those that have not arrived on route 1 will arrive on route 2 first. Put it away. Therefore, when packets are transferred downstream of the receiving device in sequence number order, the packet that arrived first on route 2 needs to wait for the arrival of the packet whose sequence number is earlier than that packet.
  • This is called Head of Line blocking (hereinafter referred to as "HoLB").
  • HoLB Head of Line blocking
  • the selection unit 14 of the present embodiment selects a packet whose arrival order is later than that of the packet selected for transmission based on the predicted delay calculated by the calculation unit 12. Select. Specifically, as shown in FIG. 5, the selection unit 14 selects the sequence number of the packet selected based on the predicted delay calculated by the calculation unit 12 in route 1, which is a communication path with a large delay. Select packets with sequence numbers with a margin.
  • the selection unit 14 selects the packet shown in FIG. As such, a margin of +2 is provided. As a result, the selection unit 14 selects the packet [seq8] as the packet to be transmitted from route 1, instead of selecting the packet [seq6] in the selection based on the predicted delay. Similarly, the selection unit 14 selects the packet [seq15] to be transmitted from route 1 by giving a margin of +6 in FIG. 5(a) to [seq9] selected based on the predicted delay. selected as.
  • the selection unit 14 selects a packet with a sequence number with a margin to be transmitted from a route with a large delay.
  • this selection method even when route 2 becomes faster, as shown in FIG. 5(b), although HoLB occurs at first, the influence on subsequent packets on route 2 is reduced. As a result, the downstream transfer delay due to HoLB is alleviated compared to the case of FIG. 4(b), which is a comparative example.
  • packets transmitted from route 1 are represented by P1, P2, and P3 in descending order of transmission.
  • variables used for setting margins are defined as variables used for setting margins.
  • the predicted delay difference i is the range of packets that can be transmitted within the allowable delay described later, and is the predicted delay t1 of each packet transmitted from a communication route with a large delay and the prediction of the final packet transmitted from a communication route with a small delay. This is the time determined by the difference from the delay t2 .
  • diagonally shaded blocks represent packets that are transmitted within the allowable delay of each communication path, and dotted blocks represent packets that are transmitted after the transmission of the packet in the diagonally shaded block. The same applies to FIGS. 4, 5, and 8. Note that the timing of this transmission will be described later.
  • offset j is the amount of data obtained by multiplying the predicted delay difference i by the line speed v 2 of the communication path with the small delay. Offset j is expressed by the following formula (2).
  • the no-load offset k is the amount of data obtained by multiplying the predicted delay t 1 of the communication path with a large delay by the line speed v 2 of the communication path with a small delay.
  • the no-load offset k is expressed by the following equation (3).
  • the selection unit 14 converts the value of the margin m calculated using one of equations (4) to (8) into the number of packets, and defines a natural number margin.
  • Equation (4) Alleviates the influence when the delay on route 2 decreases (for example, as shown in FIG. 6(a1), the delay decreases from the time of delay 0 to the arrival of the first packet).
  • Equation (5) Alleviates the influence when the bandwidth of route 2 is expanded (for example, as shown in FIG. 6(a2), the line speed of route 2 is faster than when calculating the predicted delay).
  • Equation (6) Alleviates the influence of band expansion on route 2 after receiving the final packet.
  • Equation (7) Alleviates the influence of further band expansion of route 2 (FIG. 6(a3)) due to the passage of time.
  • Equation (8) Alleviates the effect of further expanding the bandwidth of route 2 due to the passage of time after receiving the final packet.
  • the example in FIG. 5 is an example in which the margin of equation (6) above is added to the sequence numbers of the second and third packets transmitted from route 1. Specifically, between the difference between the predicted delay of each packet and the predicted delay of the final packet [seq4] transmitted from route 2, a value that is twice the number of packets scheduled to arrive from route 2 is set as a margin. It is set. This corresponds to a setting that prevents HoL blocking until the route 2 becomes twice as fast after receiving the packet [seq4].
  • the margin value itself can be calculated using any of the five calculation formulas described above, it may not be possible to convert the calculated value into the number of packets and define the margin as a natural number. For example, as shown in FIG. 7, there is a case where the data amount of each packet is not the same. Therefore, the selection unit 14 defines the margin in terms of data amount and selects packets with sequence numbers based on the margin using the following method.
  • the selection unit 14 selects a predetermined packet when the above difference falls within a predetermined range using one of the following three patterns.
  • the selection unit 14 selects the packets [seq9] for pattern 1, [seq10] for pattern 2, and [seq9] for pattern 3.
  • the selection unit 14 calculates the sum of the margins for each of the small delay communication paths, and sets that value as the final margin.
  • the first packet [seq7], the second packet [seq14], and the third packet [seq21] are selected as the packets to be transmitted on route 1. shall be taken as a thing.
  • the margin of route 2 is calculated to be +2 and the margin of route 3 is +6 for the second packet.
  • the sum of the margins for the second packet on route 1 is 8 (2+6), and the selection unit 14 selects the packet [seq22], which is 8 added to [seq14], as the packet after applying the margin.
  • the transmitter 16 transmits each of the plurality of packets held in the transmission queue via each of the communication paths selected by the selector 14.
  • the transmitter 16 transmits the number of packets that can be transmitted within the set allowable delay.
  • the allowable delay is the maximum value of delay allowed on each route in order to balance load distribution among a plurality of communication routes, and a route with a larger delay is set with a larger allowable delay.
  • the transmitting unit 16 of the transmitting device 10 estimates the no-load delay and line speed (v in FIG. 9) shown in FIG. 9 at the time of starting transmission, and based on these estimates, the delay falls within the allowable delay. Set the maximum amount of data as the window size. Then, the transmitter 16 transmits packets corresponding to the selected window size reflecting the margin.
  • the transmission start timing is the same for route 1 and route 2.
  • packets P1 to P5 are transmitted as packets corresponding to the window size.
  • the first packet transmitted from each route is indicated as P1, the second transmitted packet is indicated as P2, etc. There is.
  • the transmitting unit 16 receives an ACK, which is an acknowledgment of the packet received by the receiving device 20, transmitted from the receiving device 20 at a predetermined timing.
  • Route 1 shown in FIG. 9A shows an example in which the receiving device 20 transmits an ACK to the transmitting device 10 every time two packets are received, but the timing of ACK transmission can be set as appropriate.
  • the transmitter 16 detects that the transmission and reception up to P2 in FIG. 9(a) has been successfully completed, and transmits the next two packets (packets P6 to P7) that are free in the window size. .
  • the transmitter 16 may select the packets previously selected by the selector 14 from each route at each of the above transmission timings, or may transmit the reselected packets at each transmission timing. In the latter case, specifically, the transmitter 16 notifies the selector 14 each time it receives an ACK.
  • the selection unit 14 reselects packets to be transmitted on each route, reflecting a margin based on the predicted delay at the time of receiving the notification.
  • the transmitting unit 16 determines the transmittable amount at the transmission timing after receiving the ACK each time at the transmission timing by re-estimating the line speed at the time of receiving the ACK, etc., instead of the free space in the window. Good too.
  • the receiving device 20 Upon receiving the packet transmitted from the transmitting device 10, the receiving device 20 transmits an ACK to the transmitting device 10 at a predetermined timing. Further, the receiving device 20 transfers the received packets downstream for each route in the order of sequence numbers.
  • the transmitting process shown in FIG. 10 is executed.
  • the transmission process is an example of the transmission method of the present disclosure.
  • step S10 when the calculation unit 12 detects the arrival of a packet to the transmission queue of the transmission device 10, it assigns a sequential sequence number starting from 1 to each packet in the order of arrival.
  • step S12 the calculation unit 12 assigns 1 to a variable n for specifying the sequence number.
  • step S14 the calculation unit 12 determines whether the route for transmitting the packet with sequence number n has not been selected. If the selection has been completed (step S14: NO), the process moves to step S16, the variable n is incremented by 1, and the process returns to step S14. If not selected (step S14: YES), the process moves to step S18.
  • step S18 the calculation unit 12 calculates the predicted delay for each route of the packet with sequence number n.
  • the predicted delay is calculated from the amount of data waiting to be transmitted stored in the transmission queue and the estimated line speed of the communication line 30.
  • step S20 the selection unit 14 determines, based on the predicted delay calculated by the calculation unit 12, whether the route with the longest predicted arrival is the one with the largest delay among the multiple routes. If the route is not a route with a large delay (step S20: NO), the process moves to step S26, where the selection unit 14 selects a route with a small delay as the route for the packet with the sequence number n, and the process moves to step S28. On the other hand, if the route has a large delay (step S20: YES), the process moves to step S22, and the selection unit 14 sets a margin m. Next, in step S24, the selection unit 14 selects a route with a large delay as the route for the packet with sequence number n+m, and proceeds to step S28.
  • step S28 the selection unit 14 determines whether the selection of routes for all packets in the transmission queue has been completed. If there is a packet whose route has not been selected (step S28: NO), the process returns to step S14. If the selection of routes for all packets is completed (step S28: YES), the process moves to step S30, where the transmitter 16 transmits each packet through the route selected by the selector 14, and the process returns to step S10.
  • the transmitting device that transmits a plurality of packets via a plurality of communication routes with load distribution maintains a plurality of packets arriving from an upper layer in the order of arrival. do. Based on the data amount of the packet held in the transmission queue and the line speed of each of the multiple communication routes, the time required for the packet to arrive at the receiving device when transmitting the packet on each of the multiple communication routes. Calculate the predicted delay. Further, the transmitting device selects a communication path for transmitting each of the plurality of packets so that each of the plurality of packets is received by the receiving device in the order in which they arrive at the transmission queue.
  • the transmitting device selects a packet based on the predicted delay as a packet to be transmitted from the communication route with the largest delay among the plurality of communication routes when transmitting packets of the same amount of data. Selects the packet that arrives later in the order of arrival. Then, the transmitting device transmits each of the plurality of packets via each of the selected communication paths.
  • control unit and its method described in the present disclosure may be realized by a dedicated computer comprising a processor programmed to perform one or more functions embodied by a computer program.
  • the apparatus and techniques described in this disclosure may be implemented by a dedicated computer whose processor is comprised of dedicated hardware logic circuits.
  • the apparatus and techniques described in this disclosure may be implemented by one or more special purpose computers configured by a combination of a processor executing a computer program and one or more hardware logic circuits.
  • the computer program may also be stored as instructions executed by a computer on a computer-readable non-transitory tangible storage medium.
  • a transmitting device (10) that transmits a plurality of packets via a plurality of communication routes with load distribution, Sending a packet on each of the plurality of communication paths based on the data amount of the packet held in a holding unit that holds the plurality of packets arriving from an upper layer in the order of arrival and the line speed of each of the plurality of communication paths.
  • a calculation unit (12) that calculates a predicted delay, which is the time required for the packet to arrive at the receiving device when the packet arrives at the receiving device;
  • a selection unit (14) that selects a packet whose arrival order is later than a packet selected based on the predicted delay as a packet to be transmitted from the communication route with the largest delay when transmitting the predicted delay; , a transmitter (16) that transmits each of the plurality of packets via each of the communication paths selected by the selector; a transmitting device including;
  • the selection unit uses the sequence numbers assigned to the packets held in the storage unit in the order of arrival to select a sequence number with a margin for the sequence number of the packet selected based on the predicted delay.
  • the transmitting device according to supplementary note 1, wherein the packet is selected as the packet that arrives later in the order of arrival.
  • the selection unit is configured to select a packet according to a predicted delay difference, which is a difference between a predicted delay of a packet to be transmitted from the communication path with a large delay and a predicted delay of a packet to be transmitted from a communication path with a small delay other than the communication path with a large delay.
  • the transmitting device according to supplementary note 2, which sets the margin of the value.
  • the selection unit defines the margin in terms of the amount of data, and selects the packets sequentially from the next packet of the packet selected based on the predicted delay to a predetermined packet.
  • the predetermined packet is selected as the packet arriving later in the order of arrival when the difference between the total sum of the data amounts of each packet and the data amount defined as the margin is within a predetermined range.

Landscapes

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

Abstract

複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置(10)であって、算出部(12)が、到着順に保持されたパケットのデータ量及び複数の通信経路の各々の回線速度に基づいて、複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出し、選択部(14)が、複数のパケットの各々が到着順に受信装置(20)で受信されるように、複数のパケットの各々を送信する通信経路を選択する際に、複数の通信経路のうち、同一データ量のパケットを送信する場合の予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、予測遅延に基づいて選択されるパケットよりも到着順が後のパケットを選択し、送信部(16)が、複数のパケットの各々を、選択部(14)により選択された通信経路の各々を介して送信する。

Description

送信装置、方法、及びプログラム
 本開示は、送信装置、送信方法、及び送信プログラムに関する。
関連出願への相互参照
 本出願は、2022年3月22日に出願された特許出願番号2022-045816号に基づくものであって、その優先権の利益を主張するものであり、その特許出願の全ての内容が、参照により本明細書に組み入れられる。
 従来、通信の負荷を通信経路間に分散させることで、単一の経路では実現困難である大容量の通信経路を提供する技術が存在する。
 しかし、多重化により帯域は拡大するものの、複数経路のうち最も遅延の大きい経路が送信の律速となってしまうため、遅延の異なる経路を多重化することで遅延が大きくなる場合があるという問題があった。
 このような経路間の遅延差の増加により負荷分散の効果が小さくなることを避けるために、例えば特許文献1に記載される技術が開示されている。特許文献1に開示の技術では、各経路の遅延および回線速度の推定値から、送信する各パケットの予定送信経路を、受信ノードへの到着予測時刻の順番が送信ノードに到着した時刻の順番と等しくなるように決定する。そして、そのうち各経路に許容される最大遅延の大きい経路1では送信待ちパケットのうち先頭ではないパケットを送信する。これにより、経路間の遅延差を抑制しつつ各経路に適正な負荷をかけることが可能となり、通信効率を最適化している。
特許第4488256号公報
 上記従来技術では、経路1の許容遅延が大きいほど、経路1で送信した最後のパケットの到着までに要する時間が長くなるため、その間に経路1以外の経路の通信状態が変化する可能性が高くなる。そのため、経路1以外の経路の回線速度が更に高速化した場合には、受信ノードへのパケット到着順序の解決待ち時間による、受信ノード下流へのパケットの転送遅延が発生するという問題がある。
 本開示は、上記の点に鑑みてなされたものであり、複数の通信経路で負荷分散によりパケットを送信する際に、遅延の小さい経路が予測よりも高速化した場合でも、受信側における転送遅延を抑制することを目的とする。
 本開示に係る送信装置は、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部と、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部と、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部と、を含んで構成されている。
 また、本開示に係る送信方法は、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、算出部が、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出し、選択部が、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択し、送信部が、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信することを含む処理をコンピュータが実行する方法である。
 また、本開示に係る送信プログラムは、コンピュータを、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部と、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部と、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部として機能させるためのプログラムである。
 本開示に係る送信装置、送信方法、及び送信プログラムによれば、複数の通信経路で負荷分散によりパケットを送信する際に、遅延の小さい経路が予測よりも高速化した場合でも、受信側における転送遅延を抑制することができる。
 本開示についての上記目的及びその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、通信システムの概略構成を示すブロック図であり、 図2は、送信装置のハードウェア構成を示すブロック図であり、 図3は、送信装置の機能ブロック図であり、 図4は、通信経路の高速化時の従来の送信を説明するための図であり、 図5は、通信経路の高速化時の本実施形態における送信を説明するための図であり、 図6は、マージンの数値設定方法の一例を説明するための図であり、 図7は、マージンを量で定義する際のマージンの数値設定方法の一例を説明するための図であり、 図8は、通信経路が3以上ある場合のマージンの数値設定方法の一例を説明するための図であり、 図9は、送受信のタイミングの一例を示すシーケンス図であり、 図10は、送信処理の一例を示すフローチャートである。
 以下、本開示の実施形態の一例を、図面を参照しつつ説明する。
 図1に示すように、本実施形態に係る通信システム100は、送信装置10と受信装置20とを含む。送信装置10と受信装置20とは、通信回線30を介して接続され、相互にデータを送受信する。通信回線30は、複数の通信経路を多重化して構成される。なお、通信システム100に含まれる送信装置10及び受信装置20の各々の数は図1の例に限定されず、送信装置10及び受信装置20はそれぞれ2以上含まれていてもよい。
 図2に、送信装置10のハードウェア構成を示す。図2に示すように、送信装置10は、CPU(Central Processing Unit)42、メモリ44、記憶装置46、入力装置48、出力装置50、記憶媒体読取装置52、及び通信I/F(Interface)54を有する。各構成は、バス56を介して相互に通信可能に接続されている。
 記憶装置46には、後述する送信処理を実行するための送信プログラムが格納されている。CPU42は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU42は、記憶装置46からプログラムを読み出し、メモリ44を作業領域としてプログラムを実行する。CPU42は、記憶装置46に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
 メモリ44は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。メモリ44の一部は送信キュー(保持部)として機能する。記憶装置46は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
 入力装置48は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置50は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置50として、タッチパネルディスプレイを採用することにより、入力装置48として機能させてもよい。
 記憶媒体読取装置52は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリなどの各種の記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F54は、受信装置20を含む他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
 受信装置20のハードウェア構成は、図2に示す送信装置10のハードウェア構成と概ね同様であるため、説明を省略する。なお、受信装置20の記憶装置46には、受信装置20の各処理を実行するための受信プログラムが格納されている。
 次に、図3を参照して、本実施形態に係る送信装置10の機能的な構成を説明する。図3に示すように、送信装置10は、算出部12と、選択部14と、送信部16とを含む。各機能部は、図2に示すCPU42によって実現される。
 まず、送信装置10の送信キューには、ネットワーク層の上位層から到着した送信待ちデータがパケット毎に格納される。この複数のパケットは、到着順に送信キューに保持される。この送信キューで保持されたパケットは到着順にシーケンス番号(以下、「[seq] 」で表現する。)が付与される。なお、送信キューは、本開示の保持部の一例である。送信装置10のメモリ44の一部が、送信キューとして機能する。
 算出部12は、送信キューで保持されたパケットが送信装置10から送信されて受信装置20に到着するまでに要する時間である予測遅延を算出する。算出部12は、送信キューで保持されたパケットのデータ量及び複数の通信経路の各々の回線速度に基づいて予測遅延を算出する。
 選択部14は、送信キューで保持されている複数のパケットの各々が到着順に受信装置20で受信されるように、複数のパケットの各々を送信する通信経路を複数から一つ選択する。その際、選択部14は、算出部12で算出された予測遅延の値が最も大きくなる通信経路(以下、「遅延大の通信経路」という。)が選択された場合には、算出部12で算出した予測遅延に基づいて送信を選択されたパケットよりも、到着順が後のパケットを選択する。
 ここで、図4を用いて、本実施形態との比較例におけるパケットの選択方法について説明する。比較例は、受信装置にシーケンス番号順にパケットが到着するように予測遅延にのみ基づいて各パケットを送信する通信経路を選択する方法である。
 図4は、予測遅延に基づいて複数の経路で送信するパケットのシーケンス番号を選択した例を示している。ここで、図中のtは時間を、vは通信経路の回線速度を示す。時間tは左向きに増加し、速度vは上向きに増加するように図中で示している。また、紙面向かって左が送信側であり右が受信側である。立体のブロックは、送信キューに到着しシーケンス番号順に並んだままのパケットを示しており、平面のブロックは、複数経路に割り振られた後の選択後のパケットを示している。また、平面のブロックの横幅は、そのブロックに対応するパケットの送信に要する時間を表しており、ブロックの縦幅は、そのブロックに対応するパケットが送信される速度を表している。この複数の平面のブロックは、受信側に近いほどパケットの到着が早いことも示している。また、図中の経路1とは遅延大の通信経路を示しており、対して経路2とは遅延大の通信経路ではない通信経路(以下、「遅延小の通信経路」という。)を示している。
 図4を参照して、比較例における各パケットを送信する通信経路の選択及び送信について具体的に説明する。
 まず、送信キューの中にシーケンス番号順にパケットが格納されている。次に、パケットを送信する経路を複数の経路から選択する。より具体的には、図4(a)に示すように、遅延大の経路である経路1の回線速度がv、遅延小の経路である経路2の回線速度が2vの場合、各パケットのデータ量が同一であれば、経路1における1パケット分の予測遅延は2t、経路2における1パケット分の予測遅延はtとなる。この各経路の予測遅延に基づいて、例えば、[seq1,seq2]のパケットを経路2から送信し、[seq3]のパケットを経路1から送信するように選択する。続いて、[seq4,seq5]のパケットを経路2から送信し、[seq6]のパケットを経路1から送信するように選択する。これにより、経路2から[seq1,seq2]のパケットが送信され受信が終わるタイミングで、経路1から[seq3]の送受信が終わるようにパケットが送信される。次に経路2から[seq4,seq5]のパケットが送信され受信が終わるタイミングで、経路1から[seq6]の送受信が終わるようにパケットが送信される。
 このように、比較例では、算出された予測遅延に基づいて、待ち時間の無駄を抑制するように、すなわち受信装置にシーケンス番号順にパケットが到着するように、各パケットを送信する経路を選択している。
 しかし、図4(b)のように、実際のパケット送信時において、経路2の回線速度が予測遅延を算出した時点よりも高速化する場合がある。図4(b)では、経路2の回線速度が、2vから4vに高速化した例を示している。すなわち、経路2では、1パケット分の予測遅延が1/2tとなる。この場合、図4(a)と同様の方法で選択されたパケットのシーケンス番号順に送信を行うと、経路1で未到着のパケットよりもシーケンス番号が後のパケットが経路2で先に到着してしまう。そのため、シーケンス番号順に受信装置の下流へパケットを転送する場合、経路2で先に到着したパケットは、そのパケットよりもシーケンス番号が前のパケットの到着を待つ必要がある。これをHead Of Lineブロッキング(以下、「HoLB」という。)という。HoLBが起きる結果、受信装置において、順序解決待ち時間による受信装置から下流への転送遅延が発生する。
 図4(b)の例では、経路1で[seq3]のパケットの送信が完了するまでに、経路2から[seq1,seq2,seq4,seq5]のパケットを送信可能である。しかし、経路1で[seq3]のパケットの送信が完了するまで、経路2で送信された[seq4,seq5]のパケットは転送を待たなくてはならない。つまり、[seq4,seq5]のパケットにHoLBが起きている。同様に、経路2の[seq7]以降のパケットにもHoLBが起きている。このようにHoLBが頻発することや、HoLBによる待ち時間が増大することで、経路2の回線速度の高速化時に下流への転送遅延が起きるという問題が比較例ではある。すなわち、予測遅延に基づく到着順のみを考慮した場合、遅延小の通信経路の高速化時に転送遅延が起きる。
 そこで、本実施形態の選択部14は、遅延大の通信経路が選択された場合には、算出部12で算出した予測遅延に基づいて送信を選択されたパケットよりも、到着順が後のパケットを選択する。具体的には、図5に示すように、選択部14は、遅延大の通信経路である経路1において、算出部12で算出した予測遅延に基づいて選択されるパケットのシーケンス番号に対して、マージンを持たせたシーケンス番号のパケットを選択する。
 例えば、選択部14は、図4(a)と同様の例において、経路1から送信するパケットとして、予測遅延に基づいて選択される[seq6]のパケットに対して、図5(a)に示すように、+2のマージンを持たせる。これにより、選択部14は、予測遅延に基づく選択では[seq6]のパケットを選択するところで、[seq8]のパケットを経路1から送信するパケットとして選択している。同様に、選択部14は、予測遅延に基づいて選択される[seq9]に対して、図5(a)では+6のマージンを持たせることで、[seq15]のパケットを経路1から送信するパケットとして選択している。
 このように、選択部14は、マージンを持たせたシーケンス番号のパケットを遅延大の経路から送信するように選択する。この選択方法により、経路2が高速化した際にも、図5(b)のように、最初こそHoLBは発生するものの、経路2の後続のパケットへの影響は小さくなる。結果として、比較例である図4(b)の場合よりHoLBによる下流への転送遅延は緩和される。
 次に、選択部14におけるマージンの設定方法について説明する。
 図6を参照して、自然数で定義する場合のマージンの具体例について説明する。なお、図6において、経路1から送信するパケットを、送信が早い順にP1、P2、P3で表す。
 まず、マージンの設定に用いる変数として、例えば、以下の3種類の変数を定義する。
 1種類目の変数として、予測遅延差iについて説明する。予測遅延差iとは、後述する許容遅延内で送信可能なパケットの範囲で、遅延大の通信経路から送信する各パケットの予測遅延tと、遅延小の通信経路から送信する最終パケットの予測遅延tとの差で求めた時間である。図6では、斜線のブロックが、各通信経路の許容遅延内に送信されるパ
ケットを表しており、網点のブロックは、斜線のブロックのパケットの送信後に送信されるパケットを表している。図4、図5、及び図8においても同様である。なお、この送信のタイミングについては後述する。
 図6の例では、許容遅延内で送信可能なパケットが、経路1及び経路2ともに3つである場合を表している。また、各パケットの予測遅延は、送信装置10からパケットを送信した時刻を遅延0とし、遅延0の時点から、パケットが受信装置20へ到着するまでの経過時間に相当する。例えば、パケットP3についての予測遅延(P3)は、図6中の実線の両矢印の幅に相当する。この場合、パケットP3についての予測遅延差(P3)は、図6中の点線の両矢印で示すように、経路1のパケットP3の予測遅延(P3)から、経路2のパケット3つ分の予測遅延を引いた時間となる。また、パケットP2についての予測遅延差(P2)も同様に、図6中の破線の両矢印の幅に相当する。予測遅延差iは下記式(1)で表される。
 i[予測遅延差] = t[経路1の予測遅延] - t[経路2の予測遅延] (1)
 2種類目の変数として、オフセットjについて説明する。オフセットjとは、予測遅延差iと遅延小の通信経路の回線速度vとを乗じて求めたデータ量のことである。オフセットjは下記式(2)で表される。
 j[オフセット] = i[予測遅延差] × v[経路2の回線速度] (2)
 3種類目の変数kとして、無負荷時オフセットkについて説明する。無負荷時オフセットkとは、遅延大の通信経路の予測遅延tと遅延小の通信経路の回線速度vとを乗じて求めたデータ量のことである。無負荷時オフセットkは下記式(3)で表される。
 k[無負荷時オフセット] = t[経路1の予測遅延] × v[経路2の回線速度] (3)
 次に、上記の変数i,j,kを用いたマージンの算出について説明する。ここでは、下記式(4)~(8)に示す5つの算出方法を例示する。
 なお、選択部14は、式(4)~(8)において、変数i,j,kは前述の式(1)~(3)で求め、定数aは任意の値を設定する。なお、選択部14は、定数aとして、各式において異なる値を設定してもよい。また、選択部14は、マージンを付加したシーケンス番号が、送信キューに保持されているパケットのシーケンス番号の最大値を超えないように、送信キューに保持されているパケット数に応じて動的に定数aを設定してもよい。
 m = v[経路2の回線速度] × a (4)
 m = k[無負荷時オフセット] × a (5)
 m = j[オフセット] × a (6)
 m = t[経路1の予測遅延] × m (7)
 m = i[予測遅延差] × m (8)
 また、選択部14は、予測遅延差iが一定値以上の場合に、式(4)~(8)のいずれかでマージンmの値を算出し、予測遅延差iが一定値未満の場合には、マージンm=0としてもよい。受信装置20でのパケット到着順序のずれが無視できる程度に小さい場合には、処理負荷の軽減及び効率最適化を優先させるものである。選択部14は、式(4)~(8)のいずれかで算出したマージンmの値をパケット数に換算して、自然数のマージンを定義する。
 また、式(4)~(8)で算出したマージンを適用する場合の各効果は以下のようになる。
 式(4):経路2の遅延減少(例えば、図6(a1)に示すように、遅延0の時点から最初のパケット到達までの遅延減少)時の影響を緩和する。
 式(5):経路2の帯域拡大(例えば、図6(a2)に示すように、予測遅延算出時よりも経路2の回線速度が高速化)時の影響を緩和する。
 式(6):最終パケット受信後の経路2の帯域拡大時の影響を緩和する。
 式(7):時間経過によるさらなる経路2の帯域拡大(図6(a3))時の影響を緩和する。
 式(8):最終パケット受信後の時間経過によるさらなる経路2の帯域拡大時の影響を緩和する。
 図5の例は、経路1から2番目及び3番目に送信するパケットのシーケンス番号に、上記式(6)のマージンを付加した例である。具体的には、それぞれのパケットの予測遅延の、経路2から送信する最終パケット[seq4]の予測遅延との差の間に、経路2から到着予定のパケット数の2倍となる値をマージンとして設定している。これは[seq4]のパケット受信後に経路2が2倍高速化した場合までHoLブロッキングを防ぐ設定に相当する。
 次に、マージンをデータ量で定義する場合について説明する。マージンの値自体は、前述の5つの計算式のいずれかで算出可能であるが、算出した値をパケット数に換算して、マージンを自然数で定義することができない場合がある。例えば、図7に示すように、パケットの各々のデータ量が同一ではない場合である。そのため、選択部14は、マージンをデータ量で定義すると共に、次に示す方法で、マージンに基づくシーケンス番号のパケットを選択する。
 具体的には、選択部14は、予測遅延に基づいて、遅延大の経路で送信するように選択されるマージン非適用時のパケットの次のパケットから順に所定のパケットまでの各パケットのデータ量を加算した総和を求める。図7の例では、マージン非適用時のパケットは[seq5]であり、次のパケットは[seq6]である。次に、選択部14は、前述の5つの計算式のいずれかで求められたマージンとして定義されたデータ量と、前述の総和との差が所定範囲となる場合の所定のパケットを、遅延大の経路から送信するパケットとして選択する。
 選択部14は、上記の差が所定範囲となる場合の所定のパケットを、以下の3パターンのいずれかにより選択する。
 1. マージン(データ量) > 各パケットのデータ量の総和 となる最大のシーケンス番号を選択する。
 2. マージン(データ量) <= 各パケットのデータ量の総和 となる最小のシーケンス番号を選択する。
 3. マージン(データ量)に各パケットのデータ量の総和が最も近くなるシーケンス番号を選択する。
 例えば、図7の場合、選択部14は、パターン1の場合[seq9]、パターン2の場合[seq10]、パターン3の場合[seq9]のパケットを選択する。
 次に、遅延小の通信経路が2以上ある場合のマージンの設定方法を説明する。
 選択部14は、遅延小の通信経路が2以上ある場合に、遅延小の通信経路の各々についてのマージンの総和をとり、その値を最終的なマージンとして設定する。
 図8に示すように、例えば、経路1で送信するパケットとして、マージン適用前では、1番目のパケット[seq7]、2番目のパケット[seq14]、3番目のパケット[seq21]が選択されているものとする。そして、2番目のパケットに対して経路2のマージンが+2、経路3のマージンが+6と算出されたとする。この場合、経路1の2番目のパケットに対するマージンの総和は2+6で8となり、選択部14は、[seq14]に8を足した[seq22]のパケットをマージン適用後のパケットとして選択する。
 送信部16は、送信キューに保持された複数のパケットの各々を、選択部14により選択された通信経路の各々を介して送信する。
 なお、送信部16は、設定された許容遅延内で送信が完了する個数以内のパケットを送信する。許容遅延とは、複数の通信経路間で負荷分散の均衡を図るために、各経路で許容される遅延の最大値であり、遅延大の経路ほど大きな許容遅延が設定される。
 具体的には、送信装置10の送信部16は、送信開始時において、図9に示す無負荷時遅延及び回線速度(図9中のv)を推定し、これらに基づき、許容遅延内に収まる最大のデータ量をウィンドウサイズとして設定する。そして、送信部16は、マージンを反映して選択したウィンドウサイズ分のパケットを送信する。送信開始のタイミングは経路1も経路2も同じである。経路1の例である図9(a)では、ウィンドウサイズ分のパケットとして、パケットP1~P5が送信されている。なお、選択部14で選択後のシーケンス番号、すなわちマージンが反映されたシーケンス番号に基づいて、各経路から1番目に送信されるパケットをP1、2番目に送信されるパケットをP2等として示している。送信部16は、所定のタイミングで受信装置20から送信される、受信装置20で受信したパケットの肯定応答であるACKを受け取る。図9(a)に示す経路1では、受信装置20が2パケット受信する毎にACKを送信装置10へ送信する例を示しているが、ACK送信のタイミングは、適宜設定可能である。送信部16は、ACKを受け取ると、図9(a)ではP2までの送受信が正常に完了したことを検知し、ウィンドウサイズの空きである2パケット分(パケットP6~P7)を次に送信する。
 また、経路2の例である図9(b)でも同様に、送信部16は、送信開始のタイミング及びACK受信後のタイミングでパケットを送信する。図9(b)では、送信開始時のウィンドウサイズが6パケット分であり、受信装置20が3パケット受信する毎にACKを送信装置10へ送信する例を示している。したがって、次以降の送信タイミングには3パケット分の空きがあるため、送信部16は、経路2については、次以降の送信タイミング毎に3パケットずつ送信する。なお、図9において、星印はパケットの送信タイミングを表している。
 送信部16は、上記の各送信タイミングにおいて、選択部14により予め選択されているパケットを各経路から選択してもよいし、送信タイミング毎に再選択されたパケットを送信してもよい。後者の場合、具体的には、送信部16は、ACKを受信する都度、選択部14に通知する。選択部14は、通知を受けた時点での予測遅延等に基づくマージンを反映して、各経路で送信するパケットを再選択する。また、送信部16は、ACK受信後の送信タイミングにおける送信可能量を、ウィンドウの空き量ではなく、ACK受信時の回線速度等を再推定するなどして、送信タイミングの都度決定するようにしてもよい。
 受信装置20は、送信装置10から送信されたパケットを受信すると、所定のタイミングで送信装置10へACKを送信する。また、受信装置20は、経路毎に受信したパケットをシーケンス番号順に下流へ転送する。
 次に、本実施形態に係る通信システム100の作用について説明する。送信装置10において、図10に示す送信処理が実行される。なお、送信処理は、本開示の送信方法の一例である。
 図10を参照して、送信処理について説明する。
 ステップS10で、算出部12が、送信装置10の送信キューへのパケットの到着を検出すると、到着順に各パケットに1から順に連番のシーケンス番号を付与する。次に、ステップS12で、算出部12が、シーケンス番号を特定するための変数nに1を代入する。
 次に、ステップS14で、算出部12が、シーケンス番号nのパケットを送信する経路が未選択か否かを判定する。選択済みの場合(ステップS14:NO)、ステップS16へ移行し、変数nを1インクリメントして、ステップS14に戻る。未選択の場合(ステップS14:YES)、ステップS18へ移行する。
 ステップS18では、算出部12が、シーケンス番号nのパケットの経路毎の予測遅延を算出する。予測遅延は、送信キューに格納された送信待ちデータのデータ量、及び通信回線30の推定回線速度から算出する。
 次に、ステップS20で、選択部14が、算出部12により算出された予測遅延に基づいて、到着予測が早いのは複数経路のうち遅延大の経路か否かを判定する。遅延大の経路ではない場合(ステップS20:NO)、ステップS26へ移行し、選択部14がシーケンス番号nのパケットの経路として遅延小の経路を選択して、ステップS28へ移行する。一方、遅延大の経路である場合(ステップS20:YES)、ステップS22へ移行し、選択部14が、マージンmを設定する。次に、ステップS24で、選択部14が、シーケンス番号n+mのパケットの経路として遅延大の経路を選択し、ステップS28へ移行する。
 ステップS28では、選択部14が、送信キュー内の全パケットの経路の選択を完了したか否かを判定する。経路を未選択のパケットが存在する場合(ステップS28:NO)、ステップS14に戻る。全てのパケットの経路の選択が完了した場合(ステップS28:YES)、ステップS30へ移行し、送信部16が、選択部14で選択した経路で各パケットを送信し、ステップS10に戻る。
 なお、上記送信処理では、送信キュー内の全パケットの経路の選択が完了した段階でパケットを送信する場合について説明したが、所定個のパケットの経路の選択が完了した段階でパケットを送信するようにしてもよい。
 以上説明したように、本実施形態に係る通信システムによれば、複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置が、上位層から到着する複数のパケットを到着順に保持する。そして、送信キューに保持されたパケットのデータ量及び複数の通信経路の各々の回線速度に基づいて、複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する。また、送信装置が、複数のパケットの各々が送信キューへの到着順に受信装置で受信されるように、複数のパケットの各々を送信する通信経路を選択する。この際に、送信装置は、複数の通信経路のうち、同一データ量のパケットを送信する場合の予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、予測遅延に基づいて選択されるパケットよりも到着順が後のパケットを選択する。そして、送信装置が、複数のパケットの各々を、選択した通信経路の各々を介して送信する。これにより、遅延大の通信経路以外の経路の回線速度が更に高速化した場合でも、Head Of Line ブロッキングの頻度を低くし、受信装置へのパケット到着順序の解決待ち時間を削減できるため、受信装置下流へのパケットの転送遅延を抑制できる。
 本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行 するようにプログラムされたプロセッサを構成する専用コンピュータにより、実現されてもよい。あるいは、本開示 に記載の装置及びその手法は、専用ハードウエア論理回路によってプロセッサを構成する専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の装置及びその手法は、コンピュータプログラムを実行するプロセッサと一つ以上のハードウエア論理回路との組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
 本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
 以下に付記項を記載する。
 (付記1)
 複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置(10)であって、
 上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部(12)と、
 前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部(14)と、
 前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部(16)と、
 を含む送信装置。
(付記2)
 前記選択部は、前記保持部に保持されたパケットに前記到着順に付与されるシーケンス番号を用いて、前記予測遅延に基づいて選択されるパケットのシーケンス番号に対してマージンを持たせたシーケンス番号のパケットを、前記到着順が後のパケットとして選択する付記1に記載の送信装置。
(付記3)
 前記選択部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信可能なパケットについての前記予測遅延に基づいて、前記マージンを設定する付記2に記載の送信装置。
(付記4)
 前記選択部は、前記遅延大の通信経路から送信するパケットの予測遅延と、前記遅延大の通信経路以外の遅延小の通信経路から送信するパケットの予測遅延との差である予測遅延差に応じた値の前記マージンを設定する付記2に記載の送信装置。
(付記5)
 前記選択部は、前記複数の通信経路のうち、前記遅延大の通信経路以外の遅延小の通信経路の回線速度に応じた値の前記マージンを設定する付記2に記載の送信装置。
(付記6)
 前記選択部は、前記予測遅延差と前記遅延小の通信経路の回線速度とを乗じて算出したオフセットに応じた値の前記マージンを設定する付記4に記載の送信装置。
(付記7)
 前記選択部は、前記マージンを自然数で定義する付記2~付記6のいずれか1項に記載の送信装置。
(付記8)
 前記選択部は、前記複数のパケットの各々のデータ量が同一ではない場合、前記マージンをデータ量で定義し、前記予測遅延に基づいて選択されるパケットの次のパケットから順に所定のパケットまでの各パケットのデータ量を加算した総和と前記マージンとして定義されたデータ量との差が所定範囲となる場合の前記所定のパケットを、前記到着順が後のパケットとして選択する付記2~付記6のいずれか1項に記載の送信装置。
(付記9)
 前記選択部は、前記遅延大の通信経路以外の遅延小の通信経路が2以上ある場合、前記遅延小の通信経路の各々についてのマージンの総和を、最終的な前記マージンとして設定する付記2~付記8のいずれか1項に記載の送信装置。
(付記10)
 前記送信部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信が完了する個数の前記パケットを送信する付記1~付記9のいずれか1項に記載の送信装置。

Claims (12)

  1.  複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置(10)であって、
     上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部(12)と、
     前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部(14)と、
     前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部(16)と、
     を含む送信装置。
  2.  前記選択部は、前記保持部に保持されたパケットに前記到着順に付与されるシーケンス番号を用いて、前記予測遅延に基づいて選択されるパケットのシーケンス番号に対してマージンを持たせたシーケンス番号のパケットを、前記到着順が後のパケットとして選択する請求項1に記載の送信装置。
  3.  前記選択部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信可能なパケットについての前記予測遅延に基づいて、前記マージンを設定する請求項2に記載の送信装置。
  4.  前記選択部は、前記遅延大の通信経路から送信するパケットの予測遅延と、前記遅延大の通信経路以外の遅延小の通信経路から送信するパケットの予測遅延との差である予測遅延差に応じた値の前記マージンを設定する請求項2に記載の送信装置。
  5.  前記選択部は、前記複数の通信経路のうち、前記遅延大の通信経路以外の遅延小の通信経路の回線速度に応じた値の前記マージンを設定する請求項2に記載の送信装置。
  6.  前記選択部は、前記予測遅延差と前記遅延小の通信経路の回線速度とを乗じて算出したオフセットに応じた値の前記マージンを設定する請求項4に記載の送信装置。
  7.  前記選択部は、前記マージンを自然数で定義する請求項2~請求項6のいずれか1項に記載の送信装置。
  8.  前記選択部は、前記複数のパケットの各々のデータ量が同一ではない場合、前記マージンをデータ量で定義し、前記予測遅延に基づいて選択されるパケットの次のパケットから順に所定のパケットまでの各パケットのデータ量を加算した総和と前記マージンとして定義されたデータ量との差が所定範囲となる場合の前記所定のパケットを、前記到着順が後のパケットとして選択する請求項2~請求項6のいずれか1項に記載の送信装置。
  9.  前記選択部は、前記遅延大の通信経路以外の遅延小の通信経路が2以上ある場合、前記遅延小の通信経路の各々についてのマージンの総和を、最終的な前記マージンとして設定する請求項2~請求項6のいずれか1項に記載の送信装置。
  10.  前記送信部は、前記複数の通信経路間で負荷分散の均衡を図るために設定された値である許容遅延内で送信が完了する個数の前記パケットを送信する請求項1に記載の送信装置。
  11.  複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、
     算出部が、上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出し、
     選択部が、前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択し、
     送信部が、前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する、
     ことを含む処理をコンピュータが実行する送信方法。
  12.  コンピュータを、
     複数のパケットを複数の通信経路を介して負荷分散して送信する送信装置であって、
     上位層から到着する前記複数のパケットを到着順に保持する保持部に保持されたパケットのデータ量及び前記複数の通信経路の各々の回線速度に基づいて、前記複数の通信経路の各々でパケットを送信する場合にパケットが受信装置に到着するまでに要する時間である予測遅延を算出する算出部と、
     前記複数のパケットの各々が前記到着順に前記受信装置で受信されるように、前記複数のパケットの各々を送信する通信経路を選択する際に、前記複数の通信経路のうち、同一データ量のパケットを送信する場合の前記予測遅延が最も大きい遅延大の通信経路から送信するパケットとして、前記予測遅延に基づいて選択されるパケットよりも前記到着順が後のパケットを選択する選択部と、
     前記複数のパケットの各々を、前記選択部により選択された通信経路の各々を介して送信する送信部
     として機能させるための送信プログラム。
PCT/JP2022/047782 2022-03-22 2022-12-23 送信装置、方法、及びプログラム WO2023181565A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202280093926.2A CN119072911A (zh) 2022-03-22 2022-12-23 发送装置、方法以及程序
US18/890,598 US20250016111A1 (en) 2022-03-22 2024-09-19 Transmission device, method, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022045816A JP7567843B2 (ja) 2022-03-22 2022-03-22 送信装置、方法、及びプログラム
JP2022-045816 2022-03-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/890,598 Continuation US20250016111A1 (en) 2022-03-22 2024-09-19 Transmission device, method, and storage medium

Publications (1)

Publication Number Publication Date
WO2023181565A1 true WO2023181565A1 (ja) 2023-09-28

Family

ID=88100466

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/047782 WO2023181565A1 (ja) 2022-03-22 2022-12-23 送信装置、方法、及びプログラム

Country Status (4)

Country Link
US (1) US20250016111A1 (ja)
JP (1) JP7567843B2 (ja)
CN (1) CN119072911A (ja)
WO (1) WO2023181565A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007111331A1 (ja) * 2006-03-29 2007-10-04 Nec Corporation 通信方法、ノード及び制御プログラム
JP2013165510A (ja) * 2013-04-22 2013-08-22 Ntt Communications Kk 伝送装置、伝送路切り替え方法、及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5205819B2 (ja) 2007-06-06 2013-06-05 日本電気株式会社 通信システムおよびそのパケットスケジューリング方法ならびに送信ノード

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007111331A1 (ja) * 2006-03-29 2007-10-04 Nec Corporation 通信方法、ノード及び制御プログラム
JP2013165510A (ja) * 2013-04-22 2013-08-22 Ntt Communications Kk 伝送装置、伝送路切り替え方法、及びプログラム

Also Published As

Publication number Publication date
US20250016111A1 (en) 2025-01-09
JP7567843B2 (ja) 2024-10-16
JP2023139989A (ja) 2023-10-04
CN119072911A (zh) 2024-12-03

Similar Documents

Publication Publication Date Title
CN1689278B (zh) 网络拥塞控制方法和装置
JP5194562B2 (ja) リンク帯域推定装置およびリンク帯域推定方法
JPH04504335A (ja) 渋滞抑止型パケットネットワーク
JP5205819B2 (ja) 通信システムおよびそのパケットスケジューリング方法ならびに送信ノード
CN108282416A (zh) 一种基于数据帧的调度方法和装置
US11329747B2 (en) Scheduling deterministic flows in time synchronized networks
WO2023181565A1 (ja) 送信装置、方法、及びプログラム
KR101251970B1 (ko) 우선순위 큐 기반의 긴급 데이터 전달을 위한 라우팅 방법 및 이를 적용한 네트워크 시스템
JP5450297B2 (ja) デジタルデータ処理操作を分散実行するためのデバイスおよび方法
WO2016132669A1 (ja) 通信装置、通信システム、通信方法
US20090254676A1 (en) Method for transferring data frame end-to-end using virtual synchronization on local area network and network devices applying the same
JP2008010905A (ja) パケット送信時の優先度制御方法及びパケット送信時の優先度制御装置
WO2022259540A1 (ja) 信号転送装置、信号転送方法、及びプログラム
Zhang et al. Efficient data center flow scheduling without starvation using expansion ratio
US20220261298A1 (en) Computer system and program execution method
Azarfar et al. Dynamic selection of priority queueing discipline in cognitive radio networks
US20140201475A1 (en) Information processing system and method of controlling the same
JP6633502B2 (ja) 通信装置
US20240406118A1 (en) Method and apparatus for scheduling
JP7616355B2 (ja) 通信システム、送信装置及び通信方法
JP7563500B2 (ja) 制御決定装置、制御決定方法及びプログラム
US20250030648A1 (en) Communication control apparatus, communication control method, and computer readable medium
WO2023012948A1 (ja) 通信装置、通信システム、及び通信方法
JP2024132486A (ja) 通信装置、通信方法、およびプログラム
JP2014197789A (ja) バスインターフェース装置およびバスシステム

Legal Events

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

Ref document number: 22933692

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202280093926.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE