[go: up one dir, main page]

JP7482098B2 - COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS - Google Patents

COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS Download PDF

Info

Publication number
JP7482098B2
JP7482098B2 JP2021161496A JP2021161496A JP7482098B2 JP 7482098 B2 JP7482098 B2 JP 7482098B2 JP 2021161496 A JP2021161496 A JP 2021161496A JP 2021161496 A JP2021161496 A JP 2021161496A JP 7482098 B2 JP7482098 B2 JP 7482098B2
Authority
JP
Japan
Prior art keywords
streams
stream
substreams
packet
lost
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.)
Active
Application number
JP2021161496A
Other languages
Japanese (ja)
Other versions
JP2023051054A (en
Inventor
陽登 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2021161496A priority Critical patent/JP7482098B2/en
Publication of JP2023051054A publication Critical patent/JP2023051054A/en
Application granted granted Critical
Publication of JP7482098B2 publication Critical patent/JP7482098B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本発明は、複数のストリームを使用してデータを送受信する技術に関する。 The present invention relates to a technology for transmitting and receiving data using multiple streams.

ネットワークを介したデータの送受信のためにTCP(伝送制御プロトコル)が使用されている。TCPによるデータの送受信においては輻輳制御が行われる。具体的には、データを受信する通信装置(以下、受信装置)は、データを送信する通信装置(以下、送信装置)からのパケットの受信状況をACK又はNACKで送信装置に通知する。なお、ACKはパケットを正常に受信していることを示し、NACKは損失パケットが生じたことを示す。なお、損失パケットとは、受信装置が正常に受信しなかったパケット、つまり、受信装置に到達しなかったパケットと、受信装置に到達したが誤りが発生していたパケットと、を含む。 TCP (Transmission Control Protocol) is used to send and receive data over a network. Congestion control is performed when sending and receiving data using TCP. Specifically, a communication device that receives data (hereafter referred to as a receiving device) notifies the communication device that transmits the data (hereafter referred to as a transmitting device) of the reception status of packets from the transmitting device by using ACK or NACK. Note that ACK indicates that a packet has been received normally, and NACK indicates that a lost packet has occurred. Note that a lost packet includes a packet that was not received normally by the receiving device, that is, a packet that did not arrive at the receiving device, and a packet that arrived at the receiving device but contained an error.

輻輳制御において、送信装置はウィンドウサイズを管理する。ウィンドウサイズは、送信装置が、受信装置からのACKを受信することなく送信できるパケット数を規定する。送信装置は、受信装置から報告される受信状況、つまり、ACK又はNACKに基づきウィンドウサイズを増減させる。一般的に、送信装置は、NACKを受信するとウィンドウサイズを減少させ、ACKのみを受信している間、所定のアルゴリズムに従いウィンドウサイズを増加させる。ウィンドウサイズに応じて送信装置が送信するパケット数がネットワークの状態に応じて調整され、輻輳制御が実現される。非特許文献1は、CUBICと呼ばれる輻輳制御方法を開示している。非特許文献1によると、送信装置は、ACKのみを受信している間、3次元関数に従いウィンドウサイズを増加させている。 In congestion control, the transmitting device manages the window size. The window size specifies the number of packets that the transmitting device can transmit without receiving an ACK from the receiving device. The transmitting device increases or decreases the window size based on the reception status reported by the receiving device, i.e., ACK or NACK. Generally, the transmitting device decreases the window size when it receives a NACK, and increases the window size according to a predetermined algorithm while only an ACK is being received. The number of packets transmitted by the transmitting device according to the window size is adjusted according to the network state, thereby achieving congestion control. Non-Patent Document 1 discloses a congestion control method called CUBIC. According to Non-Patent Document 1, the transmitting device increases the window size according to a three-dimensional function while only an ACK is being received.

また、非特許文献2は、送信装置から受信装置へのデータ送信速度を増加させるため、複数のストリームを使用してデータを送受信するMPTCP(Multi-Path TCP)を開示している。MPTCPにおいては、ストリーム毎に輻輳制御が行われる。なお、ストリームは、コネクション又はパスとも呼ばれ得る。 Non-Patent Document 2 also discloses MPTCP (Multi-Path TCP), which transmits and receives data using multiple streams in order to increase the data transmission speed from a transmitting device to a receiving device. In MPTCP, congestion control is performed for each stream. Note that a stream may also be called a connection or a path.

"CUBIC:A New TCP-Friendly High-Speed TCP Variant",ACM SIGOPS Operating Systems Review,Volume42 Issue5,2008年7月"CUBIC: A New TCP-Friendly High-Speed TCP Variant", ACM SIGOPS Operating Systems Review, Volume 42 Issue 5, July 2008 IEEE/ACM Transactions on Networking(Volume:14,Issue:6,Dec.2006),"Multi-Path TCP: A Joint Congestion Control and Routing Scheme to Exploit Path Diversity in the Internet"IEEE/ACM Transactions on Networking (Volume: 14, Issue: 6, December 2006), "Multi-Path TCP: A Joint Congestion Control and Routing Scheme to Exploit Path Diversity in the Internet"

非特許文献2に記載の様に、複数のストリームを使用することで、単一のストリームを使用してデータを送信することと比較して、より高いデータ送信速度(スループット)を達成することができる。しかしながら、各ストリームにおいて損失パケットが発生することを考慮すると、さらに高いスループットを達成するためには膨大な量のストリームを設定する必要があり、通信装置の処理負荷が増大する。 As described in Non-Patent Document 2, by using multiple streams, a higher data transmission speed (throughput) can be achieved compared to transmitting data using a single stream. However, considering that packets are lost in each stream, a huge number of streams must be set in order to achieve a higher throughput, which increases the processing load of the communication device.

本発明は、通信装置の処理負荷を抑える技術を提供するものである。 The present invention provides technology that reduces the processing load on communication devices.

本発明の一態様によると、データを含むパケットを、ネットワークを介して受信装置に送信する通信装置は、複数のストリームと、前記複数のストリームそれぞれについて、1つ以上のサブストリームを設定する設定手段と、前記パケットを前記複数のストリームの内のいずれかのストリームに割り当てる割当手段と、前記ストリームに割り当てた前記パケットを、当該ストリームの前記1つ以上のサブストリームそれぞれで送信する送信手段と、を備えていることを特徴とする。 According to one aspect of the present invention, a communication device that transmits packets including data to a receiving device via a network is characterized by comprising: a plurality of streams; a setting means for setting one or more substreams for each of the plurality of streams; an allocation means for allocating the packets to one of the plurality of streams; and a transmission means for transmitting the packets allocated to the stream on each of the one or more substreams of the stream.

本発明によると、通信装置の処理負荷を抑えることができる。 This invention makes it possible to reduce the processing load on communication devices.

実施形態の説明に使用する通信システムの構成図。FIG. 1 is a configuration diagram of a communication system used to explain an embodiment. 一実施形態によるデータ送受信方法の説明図。FIG. 2 is an explanatory diagram of a data transmission and reception method according to an embodiment. 一実施形態によるデータ送受信方法の説明図。FIG. 2 is an explanatory diagram of a data transmission and reception method according to an embodiment. 一実施形態によるデータ送受信の開始時に行う処理のシーケンス図。FIG. 4 is a sequence diagram of a process performed at the start of data transmission and reception according to an embodiment. 一実施形態によるデータ送受信中に行う処理のシーケンス図。FIG. 4 is a sequence diagram of a process performed during data transmission and reception according to an embodiment. 一実施形態による通信装置の送信側構成図。FIG. 2 is a diagram showing a configuration of a transmitting side of a communication device according to an embodiment. 一実施形態による通信装置の受信側構成図。FIG. 2 is a diagram illustrating a receiving side configuration of a communication device according to an embodiment.

以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明に必須のものとは限らない。実施形態で説明されている複数の特徴うち二つ以上の特徴が任意に組み合わされてもよい。また、同一若しくは同様の構成には同一の参照番号を付し、重複した説明は省略する。 The following embodiments are described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are necessarily essential to the invention. Two or more of the features described in the embodiments may be combined in any desired manner. In addition, the same reference numbers are used for the same or similar configurations, and duplicate descriptions are omitted.

図1は、本実施形態の説明に使用する通信システムの構成図である。ネットワーク30には、複数の通信装置が接続される。通信装置のそれぞれは、データの送信及び受信が可能なものであるが、以下では、データを送信する通信装置を送信装置10と表記し、送信装置10が送信したデータを受信する通信装置を受信装置20と表記する。送信装置10、受信装置20は、それぞれ、1つ以上のインタフェースによりネットワークに接続され得る。1つ以上のインタフェースは、例えば、無線ローカルエリアネットワーク(LAN)に接続するためのインタフェース、有線LANに接続するためのインタフェース、3GPP(第3世代パートナシッププロジェクト)で標準化される無線インタフェース等であり得る。図1のネットワーク30は、移動通信網、インターネット等の様々な種別のネットワークを含む。 Figure 1 is a configuration diagram of a communication system used to explain this embodiment. A plurality of communication devices are connected to a network 30. Each of the communication devices is capable of transmitting and receiving data. In the following, a communication device that transmits data is referred to as a transmitting device 10, and a communication device that receives data transmitted by the transmitting device 10 is referred to as a receiving device 20. The transmitting device 10 and the receiving device 20 can each be connected to the network by one or more interfaces. The one or more interfaces can be, for example, an interface for connecting to a wireless local area network (LAN), an interface for connecting to a wired LAN, a wireless interface standardized by 3GPP (3rd Generation Partnership Project), etc. The network 30 in Figure 1 includes various types of networks such as a mobile communication network and the Internet.

図2は、送信装置10による受信装置20へのデータ送信の説明図である。本実施形態においては、非特許文献1に記載されている様に、データを含むパケットを、複数のストリームのいずれか1つによりに送信する。図2においては、ストリーム50及びストリーム60の2つのストリームが使用されているが、例示であり、ストリームの数は、3以上の数とすることができる。 Figure 2 is an explanatory diagram of data transmission from a transmitting device 10 to a receiving device 20. In this embodiment, as described in Non-Patent Document 1, a packet including data is transmitted by one of multiple streams. In Figure 2, two streams, stream 50 and stream 60, are used, but this is an example, and the number of streams can be three or more.

各ストリームは、1つ以上のサブストリームで構成される。図2において、ストリーム50は、サブストリーム50-1、サブストリーム50-2及び50-3で構成され、ストリーム60は、サブストリーム60-1、サブストリーム60-2及び60-3で構成されている。なお、各ストリームを構成するサブストリームの数は、ストリーム毎に異なり得る。 Each stream is made up of one or more substreams. In FIG. 2, stream 50 is made up of substreams 50-1, 50-2, and 50-3, and stream 60 is made up of substreams 60-1, 60-2, and 60-3. Note that the number of substreams making up each stream may differ for each stream.

送信装置10は、アプリケーションプログラムから送信するパケット(データ)を受け取る度に、当該パケットをどのストリームで送信するかを決定、つまり、パケットをどのストリームに割り当てるかを決定する。この割り当てには、任意の方法を使用することができる。例えば、送信装置10は、新たなパケットを、ラウンドロビン形式で各ストリームに割り当てることができる。また、送信装置10は、各ストリームの送信待ちパケット数を判定し、送信待ちパケット数の少ないストリームに新たなパケットを割り当てることができる。一方、本実施形態において、送信装置10は、ストリームに割り当てられたパケットを、当該ストリームを構成する総てのサブストリームで送信する。 Each time transmitting device 10 receives a packet (data) to be transmitted from an application program, it determines which stream to use to transmit the packet, that is, it determines which stream to assign the packet to. Any method can be used for this assignment. For example, transmitting device 10 can assign new packets to each stream in a round-robin format. Transmitting device 10 can also determine the number of packets waiting to be transmitted for each stream and assign new packets to streams with the fewest number of packets waiting to be transmitted. Meanwhile, in this embodiment, transmitting device 10 transmits packets assigned to a stream through all sub-streams that make up that stream.

図3は、上述した送信装置10によるパケットの送信方法を示している。図3において、送信装置10は、データ(パケット)の送信のため、2つのストリーム#1及び#2を使用している。なお、ストリーム#1は、2つのサブストリーム#1-1及び#1-2を有し、ストリーム#2は、2つのサブストリーム#2-1及び#2-2を有している。図3において、送信装置10は、パケット#1~#6を、ラウンドロビン形式で各ストリームに割り当てている。したがって、パケット#1、#3及び#5は、ストリーム#1で送信され、パケット#2、#4及び#6は、ストリーム#2で送信される。ストリームに割り当てられたパケットは、当該ストリームの総てのサブストリームで送信されるため、パケット#1、#3及び#5は、サブストリーム#1-1及び#1-2で送信され、パケット#2、#4及び#6は、サブストリーム#2-1及び#2-2で送信される。なお、実際にネットワーク30に送信されるのはサブストリームであり、ネットワーク30は、ストリームを認識しない。 Figure 3 shows the method of transmitting packets by the above-mentioned transmitting device 10. In Figure 3, the transmitting device 10 uses two streams #1 and #2 to transmit data (packets). Note that stream #1 has two substreams #1-1 and #1-2, and stream #2 has two substreams #2-1 and #2-2. In Figure 3, the transmitting device 10 assigns packets #1 to #6 to each stream in a round-robin format. Therefore, packets #1, #3, and #5 are transmitted in stream #1, and packets #2, #4, and #6 are transmitted in stream #2. Since packets assigned to a stream are transmitted in all substreams of the stream, packets #1, #3, and #5 are transmitted in substreams #1-1 and #1-2, and packets #2, #4, and #6 are transmitted in substreams #2-1 and #2-2. Note that it is the substreams that are actually transmitted to the network 30, and the network 30 does not recognize the streams.

本実施形態において、送信装置10及び受信装置20は、ストリームを単位として輻輳制御を行う。図3において、網掛けのパケットは、損失パケット、つまり、受信装置20において誤りが検出されたパケット、或いは、受信装置20に届かなかったパケットを示している。ストリーム#1-1においては、パケット#1が損失パケットとなり、ストリーム#1-2においては、パケット#3が損失パケットとなっている。しかしながら、パケット#1はストリーム#1―2で正常に受信され、パケット#3はストリーム#1―1で正常に受信されている。したがって、受信装置20は、ストリーム#1では、損失パケットが無いこと、つまり、ACKを送信装置10に通知する。 In this embodiment, the transmitting device 10 and the receiving device 20 perform congestion control on a stream-by-stream basis. In FIG. 3, the shaded packets indicate lost packets, that is, packets in which an error was detected by the receiving device 20, or packets that did not arrive at the receiving device 20. In stream #1-1, packet #1 is a lost packet, and in stream #1-2, packet #3 is a lost packet. However, packet #1 is received normally in stream #1-2, and packet #3 is received normally in stream #1-1. Therefore, the receiving device 20 notifies the transmitting device 10 that there are no lost packets in stream #1, that is, sends an ACK.

一方、パケット#6は、ストリーム#2-1及び#2-2の両方において損失パケットとなっている。したがって、受信装置20は、ストリーム#2においては、パケット#6の損失を示すNACKを送信装置10に通知する。なお、ストリームのACK/NACKは、当該ストリームの総てのサブストリームで送信される。 On the other hand, packet #6 is a lost packet in both streams #2-1 and #2-2. Therefore, in stream #2, receiving device 20 notifies transmitting device 10 of a NACK indicating the loss of packet #6. Note that the ACK/NACK for a stream is transmitted in all substreams of that stream.

図4は、送信装置10が受信装置20へのデータ送信を開始する際の処理を示すシーケンス図である。送信装置10は、S1において、目標速度Sに基づきストリーム数Nを決定する。目標速度Sは、データ送信を行うアプリケーションプログラムから通知される。例えば、送信装置10は、目標速度Sを、各ストリームの平均速度又はピーク速度で除した値の少数点以下を切り上げることで、ストリーム数Nを決定することができる。この場合、目標速度Sが10Gbpsであり、各ストリームの平均速度が2Gbpsであると、ストリーム数Nは5になる。また、マージンを見込むため、この値に所定数を乗ずることができる。例えば、所定数を2とすると、ストリーム数Nは10になる。なお、各ストリームの平均速度又はピーク速度は、過去の通信において測定された値を使用することができる。過去の通信において測定された値が無い場合、所定の初期値を使用することができる。また、送信装置10は、インタフェース数をストリーム数とすることができる。例えば、ネットワーク30にアクセスするためのインタフェース数が3である場合、送信装置10は、ストリーム数を3に決定することができる。 Figure 4 is a sequence diagram showing the process when the transmitting device 10 starts transmitting data to the receiving device 20. In S1, the transmitting device 10 determines the number of streams N based on the target speed S. The target speed S is notified from the application program that transmits the data. For example, the transmitting device 10 can determine the number of streams N by rounding up the decimal point of the value obtained by dividing the target speed S by the average speed or peak speed of each stream. In this case, if the target speed S is 10 Gbps and the average speed of each stream is 2 Gbps, the number of streams N is 5. In addition, in order to allow for a margin, this value can be multiplied by a predetermined number. For example, if the predetermined number is 2, the number of streams N is 10. Note that the average speed or peak speed of each stream can use a value measured in past communication. If there is no value measured in past communication, a predetermined initial value can be used. In addition, the transmitting device 10 can set the number of interfaces to the number of streams. For example, if the number of interfaces for accessing the network 30 is 3, the transmitting device 10 can determine the number of streams to be 3.

S2において、送信装置10は、ストリームの目標損失率Lに基づき、各ストリームのサブストリーム数Mを決定する。ストリームの目標損失率Lは、当該ストリームで送信するパケット数に対する、当該ストリームの損失パケット数の比率の目標値である。ストリームの目標損失率Lは予め送信装置10に設定されている。例えば、送信装置10は、あるストリームのサブストリーム数Mを、
M=ceil(lоgxL) (1)
で求める。ここで、xは、サブストリームの損失率であり、ceil()は、天井関数である。通信の開始時において、xには所定の初期値を使用する。例えばx=0.001、かつ、L=0.000001の場合、サブストリーム数Mは2となる。
In S2, the transmitting device 10 determines the number of substreams M for each stream based on the target loss rate L of the stream. The target loss rate L of a stream is a target value for the ratio of the number of lost packets of the stream to the number of packets transmitted in the stream. The target loss rate L of the stream is set in advance in the transmitting device 10. For example, the transmitting device 10 determines the number of substreams M of a certain stream as follows:
M = ceil(log x L) (1)
Here, x is the loss rate of the substream, and ceil() is a ceiling function. At the start of communication, a predetermined initial value is used for x. For example, when x=0.001 and L=0.000001, the number of substreams M is 2.

送信装置10は、各ストリームの識別子と、各サブストリームの送信側識別子を決定する。例えば、サブストリームの送信側識別子は、当該サブストリームで送信するパケットの送信側のIPアドレスと、TCPパケットの送信側ポート番号の組み合わせである。ストリームの識別子は、ストリームを識別するものであり、任意の値を使用することができる。送信装置10は、S3で、各サブトトリ―ムそれぞれについて、サブストリームの送信側識別子と、当該サブストリームが属するストリームの識別子と、を受信装置20に通知する。なお、1つのストリームに属する複数のサブストリームの送信のためのインタフェースは、同じであっても異なるものであっても良い。 The transmitting device 10 determines an identifier for each stream and a sender identifier for each substream. For example, the sender identifier for a substream is a combination of the sender IP address of the packets sent in that substream and the sender port number of the TCP packets. The stream identifier identifies the stream and can be any value. In S3, the transmitting device 10 notifies the receiving device 20 of the sender identifier of the substream and the identifier of the stream to which the substream belongs for each substream. Note that the interfaces for transmitting multiple substreams belonging to one stream may be the same or different.

受信装置20は、S3において、送信装置10からサブストリームの送信側識別子と、当該サブストリームが属するストリームの識別子と、を受け取ることで、ストリーム数と、各ストリームのサブストリーム数を認識する。受信装置20は、続いて、各サブストリームの送信側識別子に対応する受信側識別子を決定する。サブストリームの受信側識別子は、当該サブストリームで受信するパケットの宛先IPアドレスと、TCPパケットの受信側ポート番号の組み合わせである。なお、1つのストリームに属する複数のサブストリームの受信のためのインタフェースは、同じであっても異なるものであっても良い。受信装置20は、S4において、サブストリームの送信側識別子と受信側識別子との対応関係を送信装置10に通知する。送信装置10は、この通知により、各サブストリームにおいて使用する宛先IPアドレスと宛先ポート番号とを認識する。 In S3, the receiving device 20 receives from the transmitting device 10 the sender identifier of the substream and the identifier of the stream to which the substream belongs, thereby recognizing the number of streams and the number of substreams for each stream. The receiving device 20 then determines the receiver identifier corresponding to the sender identifier of each substream. The receiver identifier of a substream is a combination of the destination IP address of the packet received in that substream and the receiver port number of the TCP packet. Note that the interface for receiving multiple substreams belonging to one stream may be the same or different. In S4, the receiving device 20 notifies the transmitting device 10 of the correspondence between the sender identifier and receiver identifier of the substream. From this notification, the transmitting device 10 recognizes the destination IP address and destination port number used in each substream.

その後、送信装置10は、図2及び図3を用いて説明した様にデータを送信する。また、受信装置20は、ストリームを単位として損失パケットを判定し、損失パケットが生じた場合には、送信装置10に通知を行う。 Then, the transmitting device 10 transmits the data as described with reference to Figures 2 and 3. The receiving device 20 also determines whether a packet is lost for each stream, and notifies the transmitting device 10 if a packet is lost.

図5は、データ送信中に実行されるサブストリーム変更処理のシーケンス図である。受信装置20は、サブストリームそれぞれについて、損失パケット数をカウントする。例えば、受信装置20が図3の様にパケットを受信した場合、各サブストリームの損失パケット数は、いずれも1である。受信装置20は、S10において所定周期毎に各サブストリームの損失パケット数を送信装置10に通知する。送信装置10は、各サブストリームの損失パケット数を受信すると、各サブストリームで送信したパケット数に基づき各サブストリームにおいて損失パケットが生じている比率である損失率を判定する。続いて、送信装置10は、同じストリーム内の各サブストリームの損失率の平均値を求める、送信装置10は、S11で、この平均値を式(1)のxとしてストリームのサブストリーム数を求める。 Figure 5 is a sequence diagram of the substream change process executed during data transmission. The receiving device 20 counts the number of lost packets for each substream. For example, when the receiving device 20 receives packets as shown in Figure 3, the number of lost packets for each substream is 1. In S10, the receiving device 20 notifies the transmitting device 10 of the number of lost packets for each substream at a predetermined period. When the transmitting device 10 receives the number of lost packets for each substream, it determines the loss rate, which is the ratio of lost packets occurring in each substream, based on the number of packets transmitted in each substream. Next, the transmitting device 10 calculates the average value of the loss rates for each substream in the same stream, and in S11, the transmitting device 10 calculates the number of substreams for the stream by using this average value as x in equation (1).

S11で求めたサブストリーム数が、現在のサブストリーム数と同じであると、送信装置10は、現在のサブストリーム数を維持する。一方、S11で求めたサブストリーム数が、現在のサブストリーム数より多い場合、送信装置10は、サブストリーム数がS11で求めたサブストリーム数となる様に、サブストリームの追加を行う。このため、送信装置10は、S12で、追加するサブストリームの送信側識別子を受信装置20に通知する。なお、当該通知は、同じストリームの現在のサブストリームを使用して行われるため、ストリームの識別子を通知する必要はない。受信装置20は、追加するサブストリームの受信側識別子を決定し、追加するサブストリームの送信側識別子と受信側識別子の対応関係をS13で送信装置10に通知する。これにより、ストリームには新たなサブストリームが追加される。また、S11で求めたサブストリーム数が、現在のサブストリーム数より少ない場合、送信装置10は、サブストリーム数がS11で求めたサブストリーム数となる様に、サブストリームの削除を行う。このため、送信装置10は、S12で、削除するサブストリームの送信側識別子を受信装置20に通知する。なお、S11で求めたサブストリーム数が、現在のサブストリーム数より少ない場合には、サブストリームの削除を行わず、現在のサブストリーム数を維持する構成とすることもできる。 If the number of substreams determined in S11 is the same as the current number of substreams, the transmitting device 10 maintains the current number of substreams. On the other hand, if the number of substreams determined in S11 is greater than the current number of substreams, the transmitting device 10 adds a substream so that the number of substreams becomes the number of substreams determined in S11. For this reason, the transmitting device 10 notifies the receiving device 20 of the transmitting side identifier of the substream to be added in S12. Note that this notification is performed using the current substream of the same stream, so there is no need to notify the identifier of the stream. The receiving device 20 determines the receiving side identifier of the substream to be added, and notifies the transmitting device 10 of the correspondence between the transmitting side identifier and the receiving side identifier of the substream to be added in S13. As a result, a new substream is added to the stream. Also, if the number of substreams determined in S11 is less than the current number of substreams, the transmitting device 10 deletes a substream so that the number of substreams becomes the number of substreams determined in S11. For this reason, in S12, the transmitting device 10 notifies the receiving device 20 of the transmitting side identifier of the substream to be deleted. Note that if the number of substreams determined in S11 is less than the current number of substreams, the configuration may be such that no substreams are deleted and the current number of substreams is maintained.

図6は、本実施形態による送信装置10の構成図である。ストリーム決定部101は、上述した様に、目標速度Sに基づき設定するストリーム数を決定し、決定したストリーム数をサブストリーム決定部102及び通信部103に通知する。サブストリーム決定部102は、上述した様に、目標損失率Lに基づき、各ストリームのサブストリーム数を決定し、各ストリームのサブストリーム数を通信部103に通知する。 Figure 6 is a configuration diagram of the transmitting device 10 according to this embodiment. As described above, the stream determination unit 101 determines the number of streams to be set based on the target speed S, and notifies the substream determination unit 102 and the communication unit 103 of the determined number of streams. As described above, the substream determination unit 102 determines the number of substreams for each stream based on the target loss rate L, and notifies the communication unit 103 of the number of substreams for each stream.

通信部103の輻輳制御部105は、各ストリームの識別子と、各サブストリームの送信側識別子を決定して、各サブストリームの送信側識別子と、各サブストリームがどの識別子のストリームに属するかを受信装置20に通知する。また、輻輳制御部105は、受信装置20からサブストリームの送信側識別子と受信側識別子の対応関係を受信すると、各サブストリームでパケットの送信を開始する。なお、割当部104は、アプリケーションプログラムから受信するデータをパケット化し、各パケットを複数のストリームのいずれかに割り当てる。 The congestion control unit 105 of the communication unit 103 determines the identifier of each stream and the sender identifier of each substream, and notifies the receiving device 20 of the sender identifier of each substream and which stream's identifier each substream belongs to. Furthermore, when the congestion control unit 105 receives the correspondence between the sender identifier and the receiver identifier of the substream from the receiving device 20, it starts transmitting packets in each substream. The allocation unit 104 packetizes the data received from the application program, and allocates each packet to one of the multiple streams.

データの送信中、輻輳制御部105は、ストリーム毎にウィンドウサイズを管理する。また、輻輳制御部105は、受信装置20からパケットの受信状況を示す受信状況情報を受信する。受信状況情報は、サブストリームレベルの受信状況を示す情報と、ストリームレベルの受信状況を示す情報と、を含む。サブストリームレベルの受信状況は、各サブストリームで生じた損失パケット(第1損失パケット)の数を示す。輻輳制御部105は、受信装置20から通知された各サブストリームの第1損失パケット数に基づき、各サブストリームの損失率を求めてサブストリーム決定部102に通知する。サブストリーム決定部102は、各サブストリームの損失率に基づき、上述した様に、各ストリームのサブストリーム数を決定して輻輳制御部105に通知する。輻輳制御部105は、サブストリーム決定部102から通知された各ストリームのサブストリーム数に基づき、サブストリームの追加/削除が必要かを判定し、必要な場合には、上述した様に、サブストリームの追加/削除のための処理を行う。 During data transmission, the congestion control unit 105 manages the window size for each stream. The congestion control unit 105 also receives reception status information indicating the reception status of packets from the receiving device 20. The reception status information includes information indicating the reception status at the substream level and information indicating the reception status at the stream level. The reception status at the substream level indicates the number of lost packets (first lost packets) that have occurred in each substream. The congestion control unit 105 obtains a loss rate for each substream based on the number of first lost packets for each substream notified from the receiving device 20 and notifies the substream determination unit 102. The substream determination unit 102 determines the number of substreams for each stream as described above based on the loss rate of each substream and notifies the congestion control unit 105. The congestion control unit 105 determines whether it is necessary to add/remove a substream based on the number of substreams for each stream notified from the substream determination unit 102, and if necessary, performs processing for adding/removing a substream as described above.

一方、ストリームレベルの受信状況は、各ストリームで生じた損失パケット(第2損失パケット)を示す。第2損失パケットは、ストリームの総てのサブストリームにおいて第1損失パケットとなったパケットである。輻輳制御部105は、第2損失パケットが通知された場合、当該第2損失パケットを、当該第2損失パケットを送信した総てのサブストリームで再送する。なお、上記式(1)における目標損失率Lは、第2損失パケットの発生率の目標値である。目標損失率Lは、ストリーム毎に異なり得る。 On the other hand, the stream-level reception status indicates lost packets (second lost packets) that occurred in each stream. The second lost packet is a packet that became the first lost packet in all substreams of the stream. When the congestion control unit 105 is notified of a second lost packet, it retransmits the second lost packet in all substreams that transmitted the second lost packet. Note that the target loss rate L in the above formula (1) is the target value for the occurrence rate of second lost packets. The target loss rate L may differ for each stream.

図7は、受信装置20の構成図である。通信部201の輻輳制御部202は、送信装置10から各ストリームの識別子と、各ストリームに属する各サブストリームの送信側識別子を受信すると、各サブストリームの送信側識別子と対になる受信側識別子を決定し、各サブストリームの送信側識別子と受信側識別子の対応関係を送信装置10に通知する。 Figure 7 is a configuration diagram of the receiving device 20. When the congestion control unit 202 of the communication unit 201 receives the identifier of each stream and the sender identifier of each substream belonging to each stream from the transmitting device 10, it determines the receiver identifier that pairs with the sender identifier of each substream and notifies the transmitting device 10 of the correspondence between the sender identifier and the receiver identifier of each substream.

データの受信中、輻輳制御部202は、ストリームを単位として輻輳制御を行う。つまり、ストリーム内のいずれかのサブストリームでパケットを受信すると、他のサブストリームでは損失パケットとなっていても、当該パケットについては正常に受信できたものとしてACKを送信する。一方、総てのサブストリームで正常に受信できなかったパケット(第2損失パケット)についてはNACKを送信して送信装置10に再送を促す。輻輳制御部202は、この様に、ストリームを単位として輻輳制御を行い、受信したパケットのデータをアプリケーションプログラムに出力する。 While receiving data, the congestion control unit 202 performs congestion control on a stream-by-stream basis. In other words, when a packet is received in any of the substreams within a stream, an ACK is sent as an indication that the packet was received normally, even if the packet is a lost packet in the other substreams. On the other hand, for packets that were not received normally in any of the substreams (second lost packets), a NACK is sent to prompt the transmitting device 10 to retransmit the packet. In this way, the congestion control unit 202 performs congestion control on a stream-by-stream basis, and outputs the data of the received packets to the application program.

さらに、輻輳制御部202は、サブストリーム毎の第1損失パケット数を所定期間毎に集計し、受信状況情報として送信装置10に通知する。通知した受信状況情報に従い送信装置10からサブストリームの追加/削除が通知されると、輻輳制御部202は、サブストリームの追加/削除を行う。 Furthermore, the congestion control unit 202 counts the number of first lost packets for each substream for each predetermined period and notifies the transmitting device 10 of the number of first lost packets as reception status information. When the transmitting device 10 notifies the congestion control unit 202 of the addition/deletion of a substream according to the notified reception status information, the congestion control unit 202 adds/deletes the substream.

以上、本実施形態では、ストリームを1つ以上のサブストリームで構成し、同じストリームの1つ以上のサブストリームで同じパケットを冗長的に送信する。この構成により、1つのストリームの損失率を実質的に低減させることができる。したがって、必要なストリームの数は、同じ損失率の場合に従来のMPTCPで必要なストリーム数より小さくでき、よって、通信装置の処理負荷を抑えることができる。 As described above, in this embodiment, a stream is composed of one or more substreams, and the same packets are redundantly transmitted in one or more substreams of the same stream. This configuration can substantially reduce the loss rate of one stream. Therefore, the number of streams required can be smaller than the number of streams required in conventional MPTCP for the same loss rate, and therefore the processing load on the communication device can be reduced.

なお、本実施形態では、式(1)により各ストリームのサブストリーム数を求めるものとしたが、本発明は式(1)により各ストリームのサブストリーム数を求めることに限定されない。具体的には、ストリームにおける第2損失パケットの発生率(損失率)を、当該ストリームの目標値(式(1)におけるL)以下とするために必要なサブストリーム数を求めるものであれば、他の方法を使用することができる。 In this embodiment, the number of substreams for each stream is calculated using formula (1), but the present invention is not limited to calculating the number of substreams for each stream using formula (1). Specifically, any other method can be used as long as it calculates the number of substreams required to make the occurrence rate of second lost packets in a stream (loss rate) equal to or less than the target value for that stream (L in formula (1)).

なお、本発明による通信装置、つまり、上述した送信装置10及び受信装置20は、デバイスの1つ以上のプロセッサで実行されると、当該デバイスを送信装置10及び/又は受信装置20として動作させるプログラムにより実現することができる。これらプログラムは、デバイス可読記憶媒体に格納されて、又は、ネットワーク経由で配布が可能なものである。 The communication device according to the present invention, i.e., the above-mentioned transmitting device 10 and receiving device 20, can be realized by a program that, when executed by one or more processors of a device, causes the device to operate as the transmitting device 10 and/or the receiving device 20. These programs can be stored in a device-readable storage medium or distributed via a network.

上記構成により、処理負荷を抑えつつ高速なデータ転送を実現することができる。よって、国連が主導する持続可能な開発目標(SDGs)の目標9「レジリエントなインフラを整備し、持続可能な産業化を推進するとともに、イノベーションの拡大を図る」に貢献することが可能となる。 The above configuration enables high-speed data transfer while reducing processing load. This will contribute to achieving Goal 9 of the United Nations-led Sustainable Development Goals (SDGs), which is to "build resilient infrastructure, promote sustainable industrialization and foster innovation."

発明は上記の実施形態に制限されるものではなく、発明の要旨の範囲内で、種々の変形・変更が可能である。 The invention is not limited to the above-described embodiment, and various modifications and variations are possible within the scope of the invention.

104:割当部、105:輻輳制御部 104: Allocation unit, 105: Congestion control unit

Claims (9)

データを含むパケットを、ネットワークを介して受信装置に送信する通信装置であって、
複数のストリームと、前記複数のストリームそれぞれについて、1つ以上のサブストリームを設定する設定手段と、
前記パケットを前記複数のストリームの内のいずれかのストリームに割り当てる割当手段と、
前記ストリームに割り当てた前記パケットを、当該ストリームの前記1つ以上のサブストリームそれぞれで送信する送信手段と、
を備えていることを特徴とする通信装置。
A communication device that transmits a packet including data to a receiving device via a network, comprising:
A plurality of streams, and a setting means for setting one or more sub-streams for each of the plurality of streams;
an allocation means for allocating the packet to any one of the plurality of streams;
a transmitting means for transmitting the packets allocated to the stream on each of the one or more sub-streams of the stream;
A communication device comprising:
前記送信手段は、ストリームを単位としてウィンドウサイズを管理することを特徴とする請求項1に記載の通信装置。 The communication device according to claim 1, characterized in that the transmission means manages the window size in units of streams. 前記送信手段は、前記複数のストリームの前記1つ以上のサブストリームそれぞれについて、前記受信装置が正常に受信できなかった第1損失パケットの数を示す受信状況情報を前記受信装置から取得し、前記受信状況情報が示す前記第1損失パケットの数に基づき、前記複数のストリームそれぞれについて、前記1つ以上のサブストリームの数を変更するか否かを判定することを特徴とする請求項1又は2に記載の通信装置。 The communication device according to claim 1 or 2, characterized in that the transmission means acquires from the receiving device reception status information indicating the number of first lost packets that the receiving device was unable to receive normally for each of the one or more substreams of the multiple streams, and determines whether or not to change the number of the one or more substreams for each of the multiple streams based on the number of first lost packets indicated by the reception status information. 前記送信手段は、前記受信装置から正常に受信できなかった第2損失パケットが通知された場合、当該第2損失パケットを、当該第2損失パケットを送信した前記1つ以上のサブストリームそれぞれで再送することを特徴とする請求項3に記載の通信装置。 The communication device according to claim 3, characterized in that, when a second lost packet that could not be normally received is notified from the receiving device, the transmitting means retransmits the second lost packet in each of the one or more substreams that transmitted the second lost packet. 前記第2損失パケットは、前記ストリームの前記1つ以上のサブストリームの総てにおいて前記第1損失パケットとなったパケットであることを特徴とする請求項4に記載の通信装置。 The communication device according to claim 4, characterized in that the second lost packet is a packet that has become the first lost packet in all of the one or more substreams of the stream. 前記送信手段は、前記複数のストリームそれぞれについて、前記第2損失パケットの発生率の目標値を保持しており、前記受信状況情報が示す前記1つ以上のサブストリームそれぞれの前記第1損失パケットの数に基づき、前記複数のストリームそれぞれについて、前記第2損失パケットの発生率を前記目標値以下とするのに必要なサブストリームの数を求めることで、前記複数のストリームそれぞれについて、前記1つ以上のサブストリームの数を変更するか否かを判定することを特徴とする請求項4又は5に記載の通信装置。 The communication device according to claim 4 or 5, characterized in that the transmission means holds a target value for the occurrence rate of the second lost packets for each of the multiple streams, and determines whether or not to change the number of the one or more substreams for each of the multiple streams by calculating the number of substreams required to make the occurrence rate of the second lost packets equal to or lower than the target value for each of the multiple streams based on the number of the first lost packets for each of the one or more substreams indicated by the reception status information. データを含むパケットを、ネットワークを介して送信装置から受信する通信装置であって、
複数のストリームと、前記複数のストリームそれぞれについて、1つ以上のサブストリームを設定する設定手段と、
前記複数のストリームの前記1つ以上のサブストリームそれぞれについて、正常に受信しなかった第1損失パケットを判定する第1判定手段と、
前記複数のストリームそれぞれについて、ストリームの前記1つ以上のサブストリームの総てにおいて前記第1損失パケットとなった第2損失パケットを判定する第2判定手段と、
前記第2損失パケットの再送のため、前記第2損失パケットを示す情報を前記送信装置に通知する通知手段と、
を備えていることを特徴とする通信装置。
A communication device that receives a packet including data from a transmitting device via a network,
A plurality of streams, and a setting means for setting one or more sub-streams for each of the plurality of streams;
a first determination means for determining a first lost packet that is not normally received for each of the one or more sub-streams of the plurality of streams;
second determining means for determining, for each of the plurality of streams, a second lost packet that has become the first lost packet in all of the one or more substreams of the stream;
a notification means for notifying the transmitting device of information indicating the second lost packet in order to retransmit the second lost packet;
A communication device comprising:
前記通知手段は、前記複数のストリームの前記1つ以上のサブストリームそれぞれについて、前記第1損失パケットの数を示す受信状況情報を前記送信装置に通知することを特徴とする請求項7に記載の通信装置。 The communication device according to claim 7, characterized in that the notification means notifies the transmitting device of reception status information indicating the number of the first lost packets for each of the one or more substreams of the multiple streams. 1つ以上のプロセッサを有する装置の前記1つ以上のプロセッサで実行されると、前記装置を、請求項1から8のいずれか1項に記載の通信装置として機能させることを特徴とするプログラム。 A program that, when executed by one or more processors of a device having one or more processors, causes the device to function as a communication device according to any one of claims 1 to 8.
JP2021161496A 2021-09-30 2021-09-30 COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS Active JP7482098B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021161496A JP7482098B2 (en) 2021-09-30 2021-09-30 COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021161496A JP7482098B2 (en) 2021-09-30 2021-09-30 COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS

Publications (2)

Publication Number Publication Date
JP2023051054A JP2023051054A (en) 2023-04-11
JP7482098B2 true JP7482098B2 (en) 2024-05-13

Family

ID=85805516

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021161496A Active JP7482098B2 (en) 2021-09-30 2021-09-30 COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS

Country Status (1)

Country Link
JP (1) JP7482098B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535435A (en) 2007-04-16 2010-11-18 デジタル ファウンテン, インコーポレイテッド Dynamic stream interleaving and substream-based delivery
WO2010131419A1 (en) 2009-05-11 2010-11-18 日本電気株式会社 Communication apparatus and communication control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010535435A (en) 2007-04-16 2010-11-18 デジタル ファウンテン, インコーポレイテッド Dynamic stream interleaving and substream-based delivery
WO2010131419A1 (en) 2009-05-11 2010-11-18 日本電気株式会社 Communication apparatus and communication control method

Also Published As

Publication number Publication date
JP2023051054A (en) 2023-04-11

Similar Documents

Publication Publication Date Title
CN108881008B (en) A method, device and system for data transmission
US9660912B2 (en) Control of packet transfer through a multipath session comprising a single congestion window
JP4558739B2 (en) How to provide a multicast service
EP3278514B1 (en) Data transmission
CN106953797B (en) RDMA data transmission method and device based on dynamic connection
JP2005537764A (en) Mechanism for providing QoS in a network using priority and reserve bandwidth protocols
JP2005318487A (en) Communication apparatus, communication system, communication method, and communication control program
WO2007053693A1 (en) Video transmission over wireless networks
CN113194509A (en) Multi-network fusion transmission system and transmission method based on QoS
US6611874B1 (en) Method for improving routing distribution within an internet and system for implementing said method
CN111224888A (en) Method for sending message and message forwarding device
CN107104902B (en) RDMA data transmission method, related device and system
JP2022505424A (en) Packet processing method and equipment
JP2017092665A (en) Communication device and communication method
EP4363988B1 (en) A device and method for remote direct memory access
AU2011380292A1 (en) Apparatus and method for transmitting a message to multiple receivers
US11271686B2 (en) Hybrid automatic repeat request acknowledgement and upload multiuser operation
JP2017092692A (en) Data transmission control system and method, and data transmission control program
JP7482098B2 (en) COMMUNICATIONS DEVICE AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS
CN106534056B (en) Communication device and communication method
Halepoto et al. Management of buffer space for the concurrent multipath transfer over dissimilar paths
JP7577043B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM FOR TRANSMITTING AND RECEIVING DATA USING MULTIPLE STREAMS
WO2014187089A1 (en) Data transmission system and method
CN104426866A (en) Data transmission method and apparatus
JP5662779B2 (en) Communication system and node device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240426

R150 Certificate of patent or registration of utility model

Ref document number: 7482098

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150