This application claims the benefit under 35 U.S.C. §119(a) of Korean Patent Application No. 10-2015-0011378, filed on Jan. 23, 2015, the entire disclosure of which is incorporated herein by reference for all purposes.
1. Field
The following description relates to a communication path control technology, more specifically, to a technology for selecting a network and scheduling packets for multi-homing based transmission.
2. Description of Related Art
Recently a technology for transmitting data using multiple network paths has been developed while its standardization is in progress, and the services through the multiple network paths have been widely provided. In Korea, as multi-homing based transmission services, a heterogeneous network integration solution service supported by SK Telecom and a multi-access packet data network (PDN) connectivity service supported by KT have been available. In other countries, NIC bonding of Iomega, bandwidth bonding of Xroads Networks, and the like have gained attention as the multi-homing based transmission technologies. Internet Engineering Task Force (IETF) has established multipath transmission control protocol (MPTCP) as a multi-homing based transmission technology standard.
In the existing multi-homing based transmission technologies, the amount of data to be transmitted is determined without taking into account a degree of congestion on each network path. Accordingly, a large amount of packets may happen to be transmitted through a congested network path, which causes a significant amount of packet loss. In addition, data is divided and transmitted through a plurality of network paths, and thus out-of-order arrival of packets at a destination occurs due to latency differences among network paths.
Therefore, a method for selecting a specific network path by taking into consideration the degree of congestion on each network path is required in order to increase the performance of multi-homing based transmission technology, and also a packet scheduling method that can prevents the out-of-order arrival of packets is needed.
One objective of the present disclosure is to reduce a packet loss by determining the number of packets to be transmitted based on the degree of congestion on each network path for a multi-homing based transmission technology.
Another objective of the present disclosure is to prevent the out-of-order arrival of packets at a client by determining sequence numbers of packets to be transmitted through each network path based on the degree of congestion on each network path.
In one general aspect, there is provided a packet transmission apparatus for transmitting a packet using multi-homing based network paths, the packet transmission apparatus including: a congestion information calculator configured to calculate congestion information of each of a plurality of network paths based on state information of each network path; a path selector configured to select a network path to be used for packet transmission based on the calculated congestion information; and a packet allocator configured to allocate, to the selected network path, the number of packets to be transmitted through the selected network path and sequence numbers of the packets.
The congestion information calculator may calculate the congestion information based on state information of each of the plurality of network path, and the state information contains at least one of the following: a packet latency, a throughput, and a packet loss probability.
The packet transmission apparatus may further include a state information updater configured to update state information that is included in feedback information sent from a client which received a packet through each network path.
The congestion information calculator may calculate the congestion information of each network path by comparing a maximum latency threshold, calculated based on state information, to a current latency of a packet that is transmitted via the network path.
The path selector may select a specific network path as the network path to be used for packet transmission when it is determined based on the calculated congestion information that a currently latency of a packet transmitted via the specific network path is smaller than the maximum latency threshold.
The packet transmission apparatus may further include a sorter configured to create data by arranging network paths which are selected, based on the maximum latency threshold of each network path, from among the network paths that the path selector determines to be used for packet transmission.
The packet allocator may allocate, to each network path, the number of packets to be transmitted through the network path and the sequence number based on a packet latency difference between the network paths and a packet reception interval of the network path.
The packet allocator may allocate the number of packets to be transmitted and sequence numbers of the packets to each of network paths which are connected to a plurality of interfaces included in the packet transmission apparatus.
The packet transmission apparatus may further include a packet transmitter configured to transmit packets through a network path to which the number of packets to be transmitted and the sequence numbers of the packets are completely allocated.
In yet another general aspect, there is provided a method for transmitting packets using multi-homing based network paths, the method including: calculating congestion information of each of a plurality of network paths based on state information of each network path; selecting a network path to be used for packet transmission based on the calculated congestion information; and allocating, to the selected network path, the number of packets to be transmitted through the selected network path and sequence numbers of the packets.
Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.
Elements, features, and structures are denoted by the same reference numerals throughout the drawings and the detailed description, and the size and proportions of some elements may be exaggerated in the drawings for clarity and convenience.
The following description is provided to assist the reader in gaining a comprehensive understanding of the methods, apparatuses, and/or systems described herein. However, various changes, modifications, and equivalents of the methods, apparatuses, and/or systems described herein will be apparent to those of ordinary skill in the art. The sequences of operations described herein are merely examples, and are not limited to those set forth herein, but may be changed as will be apparent to one of ordinary skill in the art, with the exception of operations necessarily occurring in a certain order. Also, descriptions of well-known functions and constructions that are well known to one of ordinary skill in the art may be omitted for increased clarity and conciseness.
The features described herein may be embodied in different forms, and are not to be construed as being limited to the examples described herein. Rather, the examples described herein have been provided so that this disclosure will be thorough and complete, and will convey the full scope of the disclosure to one of ordinary skill in the art.
As shown in
In one example, the client 20 receives a packet from the packet transmission apparatus 10. A packet is a formatted block of data to be transmitted over a packet computer network 30. The packet consists of a header, the payload, and a trailer. The header contains an address of the packet, and the payload contains the actual information. The client 20 that has received the packet transmits feedback information for each network path to the packet transmission apparatus 10. The client 20 refers to a communication terminal which is capable of Internet protocol (IP)-based data communication. For example, the client 20 may be a mobile phone, a smartphone, a laptop computer, a desktop computer, an electronic book reader, and the like, but the client 20 is not limited thereto and may be any wireless communication device which is capable of receiving a data packet from the packet transmission apparatus 10.
In one example, the network 30 is a group of terminals, links, and nodes that are connected to each other in order to enable terminal users to communicate with each other. That is, the network 30 is a data communication system to support multiple independent devices to directly communicate with each other within an appropriate area through physical s communication channels at a moderately fast speed. The packet transmitted from the packet transmission apparatus 10 is delivered to the client 20 through the network 30.
In one exemplary embodiment, the congestion information calculator 111 calculates congestion information of the current network path and checks whether congestion information has been completely calculated for all network paths connected to the client 20. If there are remaining network paths whose the congestion information has not been yet calculated, the congestion information calculator 111 selects one of the remaining network paths and then calculates congestion information of the selected network path until the congestion information is calculated for all network paths.
The path selector 120 selects a network path to be used for packet transmission based on the congestion information of each network path. The path selector 120 selects a network path that has smaller current packet latency than the maximum latency threshold, based on the calculated congestion information. The path selector 120 adds the selected network path to a list of network paths available for transmission of a packet. There may be one or more selected network paths or none at all.
The packet allocator 130 allocates the number of packets and sequence numbers of the packets to the selected network path. The packet allocator 130 will be described in detail below.
In one aspect, the packet transmission apparatus 10 further includes a state information updater 110. The state information updater 110 updates state information that is contained in the feedback information sent by the client 20 which has received the packets through the multiple network paths. The feedback information contains at least one of the following information: a packet latency, a packet reception interval, a throughput, and a packet loss probability of each network path. The state of the network path may change over time. The number of packets to be transmitted via each network path and the sequence numbers of the packets depend on the congestion information calculated based on the state information of the network path. Once the state information is updated, the number of packets and the sequence numbers of the packets that are suitable to the current state of each network path can be allocated to each network path. The client 20 transmits feedback information to the packet transmission apparatus 10, each time receiving the packet, and the packet transmission apparatus 10 calculates congestion information based on the state information, each time receiving the feedback information. When the congestion information that includes traffic status of each network path is altered, the number of packets and the sequence numbers of the packets for each network path may be modified in order to ensure the optimal quality of wireless communication. As the packet transmission apparatus 10 continuously receives feedback information from the client 20 and the state information updater 110 updates the state information of each network path, it is possible to immediately and flexibly response to changes in communication environment. The state information is not limited to the aforesaid information and may include any factors that allow the evaluation of the network performance. The factors may include the delay spread, an error rate, multicasting/broadcasting capabilities, document cache, and the like. The packet latency, the packet reception interval, the throughput, the packet loss probability, the delay spread, and the error rate will be described in detail below. In one exemplary embodiment, the state information updater 110 is implemented by program instruction sets to be executed on a microprocessor that is included in the packet transmission apparatus 10. However, aspects of the present disclosure are not limited thereto, such that the state information updater 110 may be implemented by dedicated hardware, for example, sequential and/or combinational logic circuit.
In one aspect, the packet transmission apparatus 10 may include a sorter 121. The sorter 121 creates data by arranging network paths which are selected, based on the maximum latency threshold of each network path, from among the network paths that the path selector 120 determines to be used for packet transmission. The sorter 121 will be described in detail below.
In one aspect, the packet transmission apparatus 10 may include a packet transmitter 131. The packet transmitter 131 transmits packets through the network path for which the number of packets and the sequence numbers of the packets have been allocated. Once the packet allocator 130 has completed the allocation of the number of packets and the packet sequence numbers for every network path connected to a plurality of interfaces, the packet transmitter 131 transmits packets according to the allocated number of packets and sequence numbers of the packets. In one exemplary embodiment, the packet transmitter 131 is implemented by program instruction sets to be executed on a microprocessor included in the packet transmission apparatus 10. However, aspects of the present disclosure are not limited thereto, such that the packet transmitter 131 may be implemented by dedicated hardware, for example, sequential and/or combinational logic circuit.
A server to transmit a packet from the packet transmission apparatus 10 to the client 20 may be a separate process that is executed on physically the same server. The nowadays computing technology enables a single physical server to be operated as multiple logical servers. Moreover, the multiple logical servers may not be implemented as separate logical servers, but as different processes that are executed on a single logical server. Furthermore, the entire multiple logical servers may be implemented as a single program.
In one example, an interface 140 refers to a physical network interface at the packet transmission apparatus side in a multi-homing environment. Each interface 140 is connected to the client 20 over the network 30.
Reference numerals τ1, τ2, and τ3 each denote a packet reception interval. For example, the packet reception interval may be an interval at which the client 20 receives packets through one of the network paths. In another example, the packet reception interval may be an interval at which the packet transmission apparatus 10 transmits packets.
The packet throughput is also called a bit rate, which is the number of bits that pass a given point in the network 30 in a given amount of time when two terminal systems, i.e., the packet transmission apparatus 10 and the client 20 communicate with each other.
The packet loss probability refers to a probability that a packet traveling in the network will be lost due to interruption or the like.
The state information is not limited to the aforementioned information, and may include any factors that allow the evaluation of the network performance. The factors may include a delay spread, an error rate, multicasting/broadcasting capabilities, document cache, and the like. For example, the delay spread is a physical jitter that is distinguished from a jitter which is caused only by transmission equipment. All networks 30 have a physical jitter. This is because a repeater that reforms a signal may sometimes operate unpredictably or, in the case of a metal conductor, a propagation delay and the like is changed according to changes in temperature.
For example, the error rate depends on data changes, data loss, data duplication, out-of-order transmission of data. A network error is measured as a bit error rate, a packet/cell error rate, a packet/cell loss probability, and the like.
In one exemplary embodiment, the packet allocator 130 allocates the number of packets to be transmitted and the sequence numbers of the packets to each network path based on a packet latency difference between networks 30 and the packet reception intervals of the networks 30. In
In addition, the packet allocator 130 allocates the number of packets to be transmitted and the sequence numbers of the packets to each network path connected to multiple interfaces that are included in the packet transmission apparatus 10. As shown in
Examples of calculation of the number of packets transmitted via each of three network paths among N number of network paths will now be described with reference to
The number of packets to be transmitted via network path 3 while one packet is being transmitted via network path 2 is three (n2=ΔD2/T3=3). A calculation method for the number of packets to be transmitted is not limited to the aforesaid method. In one exemplary embodiment, if ΔD/τ is calculated as a decimal number, the decimal number is changed into an integer, and then the integer is determined as the number of packets. For example, given that n1=ΔD1/τ2=0.5 and n2=ΔD2/τ3=0.6, a ratio between n1 and n2 is converted into a ratio between two smallest natural numbers (i.e., 5:6), and these natural numbers are determined as is the number of packets to be transmitted via the respective network paths 1 and 2. In another exemplary embodiment, if ΔD/τ is calculated as a decimal number, the calculation result is rounded up. For example, given that n1=ΔD1/τ2=1.5 and n2=ΔD2/τ3=2.6, n1 is rounded up to 2 and n2 is rounded up to 3. In yet another exemplary embodiment, if ΔD/τ is calculated as a decimal number, the calculation result is rounded off. For example, given that n1=ΔD1/τ2=1.5 and n2=ΔD2/τ3=2.4, n1 is rounded off to 2 and n2 is rounded off to 2. The way of processing the calculation result of ΔD/τ is not limited to the aforementioned embodiments. Once the number of packets to be transmitted via each network path has been determined, the sequence numbers are allocated to the network paths by taking into consideration the latencies and the packet reception intervals of each network path, such that the client 20 can sequentially receive the packets.
In
In one exemplary embodiment, the sorter 121 arranges selected network paths in descending order based on their maximum latency thresholds. Aspects of the present disclosure are not limited thereto, such that the sorter 121 creates arrangement data by sorting the network paths in various ways, for example, in ascending order. The packet allocator 130 calculates the number n1 of packets to be transmitted via the (i+1)-th network path during ΔD1 by dividing ΔDi by τ(i+1) of each of the network paths that have been arranged by the sorter 121 in descending order. As seen in
Although not illustrated, the client 20 may include a plurality of interfaces that enable the connection to the multiple networks 30. The interfaces may be configured to implement functions of a data link layer and a physical layer. For example, the interfaces may be configured to implement a physical layer technology and a data link layer technology that support the connection to a wireless network 30. In another example, the interfaces may be configured to implement a physical layer technology and a data link layer technology that support the connection to a code division multiple access (CDMA) mobile communication network. In yet another example, the interfaces may be configured to implement a physical layer technology and a link layer technology that support the connection to a 3GE network, as well as to implement a session setting technology. IP addresses are allocated to the respective interfaces for operation.
In one exemplary embodiment, the congestion information of each network path is calculated based on state information of each network path. The state information contains at least one of the following: a packet latency, a packet reception interval, a throughput, and a packet loss probability.
For example, the packet reception interval may be an interval at which the client receives packets through one of the network paths. In another example, the packet reception interval may be an interval at which the packet transmission apparatus transmits packets.
The packet throughput is also called a bit rate, which is the number of bits that pass a given point in the network in a given amount of time when two terminal systems, i.e., the packet transmission apparatus and the client communicate with each other.
The packet loss probability refers to a probability that a packet traveling in the network will be lost due to interruption or the like.
The state information is not limited to the aforementioned information and includes any factors that allow the evaluation of the network performance. The factors may include the delay spread, an error rate, multicasting/broadcasting capabilities, document cache, and the like. For example, the delay spread is a physical jitter that is distinguished from a jitter which is caused only by transmission equipment. All networks 30 have a physical jitter. This is because a repeater that reforms a signal may sometimes operate unpredictably or, in the case of a metal conductor, a propagation delay and the like is changed according to changes in temperature.
For example, the error rate depends on data changes, data loss, data duplication, out-of-order transmission of data. A network error is measured as a bit error rate, a packet/cell error rate, a packet/cell loss probability, and the like.
In one exemplary embodiment, in S1, the congestion information is calculated by comparing the maximum latency threshold, which is calculated based on the state information, to a current latency of the packet transmitted via the network path. The congestion information contains data of comparison between the maximum latency threshold and the current latency. If the maximum latency threshold of an arbitrary network is smaller than the current latency of the packet, the congestion information is generated in S1 to indicate that the maximum latency threshold is smaller than the current latency. In one exemplary embodiment, the maximum latency threshold is the maximum packet latency during which a packet loss does not occur, and after which a packet loss starts occurring. In another exemplary embodiment, the maximum latency threshold is the longest packet latency during which a packet loss does not occur. However, aspects of the present disclosure are not limited thereto, such that the maximum latency threshold can be set to a different value according to the type of client.
In one exemplary embodiment, in S1, congestion information of the current network path is calculated, and it is checked whether congestion information has been completely calculated for all network paths connected to the client. If there are remaining network paths for which the congestion information has not been yet calculated, one of the remaining network paths is selected and then its congestion information is calculated until the congestion information is calculated for all network paths.
In one exemplary embodiment, in S2, a network path to be used for packet transmission is selected based on the calculated congestion information of each network path. Based on the calculated congestion information, a network path that has a smaller current packet latency than the maximum latency threshold is selected. In S2, the selected network path is added to a list of network paths available for transmission of a packet. There may be one or more selected network paths or none at all.
In one exemplary embodiment, the packet transfer method may include the operation of sorting as depicted in S3. In S3, whether each network is used for packet transmission is determined, and then arrangement data is generated by sorting selected network paths based on their maximum latency thresholds. For example, in S3, the selected network paths are arranged in descending order based on their maximum latency thresholds. Aspects of the present disclosure are not limited thereto, such that the sorter 121 creates arrangement data by sorting the network paths in various ways, for example, in ascending order.
In one exemplary embodiment, in S4, the number of packets to be transmitted and the sequence numbers of the packets are allocated to each network path. In S4, the number of packets to be transmitted and the sequence numbers of the packets are allocated to each network path based on a packet latency difference between networks and the packet reception intervals of the networks. As shown in
In addition, in S4, the number of packets and the sequence numbers of the packets are allocated to each of the network paths that are connected to multiple interfaces included in the packet transmission apparatus. As shown in
In S4, the number ni of packets to be transmitted via the (i+1)-th network path during ΔDi is calculated by dividing ΔDi by τ(i+1) of each of the network paths that have been arranged in descending order. As seen in
Examples of calculation of the number of packets transmitted via each of three network paths among N number of network paths will now be described with reference to
The number of packets to be transmitted via network path 3 while one packet is being transmitted via network path 2 is three (n2=ΔD2/τ3=3). A calculation method for the number of packets to be transmitted is not limited thereto. In one exemplary embodiment, if ΔD/τ is calculated as a decimal number, the decimal number is changed into an integer, and then the integer is determined as the number of packets. For example, given that n1=ΔD1/τ2=0.5 and n2=ΔD2/τ3=0.6, a ratio between n1 and n2 is converted into a ratio between two smallest natural numbers (i.e., 5:6), and these natural numbers are determined as the number of packets to be transmitted via the respective network paths 1 and 2. In another exemplary embodiment, if ΔD/τ is calculated as a decimal number, the calculation result is rounded up. For example, given that n1=ΔD1/τ2=1.5 and n2=ΔD2/τ3=2.6, n1 is rounded up to 2 and n2 is rounded up to 3. In yet another exemplary embodiment, if ΔD/τ is calculated as a decimal number, the calculation result is rounded off. For example, given that n1=ΔD1/τ2=1.5 and n2=ΔD2/τ3=2.4, n1 is rounded off to 2 and n2 is rounded off to 2. The way of processing the calculation result of ΔD/τ is not limited to the aforementioned embodiments. Once the number of packets to be transmitted via each network path has been determined, the sequence numbers are allocated to the network paths by taking into consideration the latencies and the packet reception intervals of each network path, such that the client can sequentially receive the packets.
In
The packet transmission method includes the operation of packet transmission, as depicted in S5. In S5, a packet is transmitted through the network path for which the allocation of the number of packets and the packet sequence numbers has been completed. In S5, once the allocation of the number of packets and the packet sequence numbers for every network path connected to a plurality of interfaces has been completed, packets are transmitted according to the allocated number of packets and packet sequence numbers.
The packet transmission method includes the operation of updating of state information, as depicted in S6. In S6, upon reception of packets through the multiple network paths, state information that is contained in the feedback information sent from the client is updated. The feedback information contains at least one of the following information: a packet latency, a packet reception interval, a throughput, and a packet loss probability of each network path. The state of the network path may change over time. The number of packets to be transmitted via each network path and the sequence numbers of the packets depend on the congestion information calculated based on the state information of the network path. Once the state information is updated, the number of packets and the sequence numbers of the packets that are suitable to the current state of each network path can be allocated to each network path. The client transmits feedback information to the packet transmission apparatus, each time receiving the packet, and the packet transmission apparatus calculates congestion information based on the state information, each time receiving the feedback information. When the congestion information that includes traffic status of each network path is altered, the number of packets and the sequence numbers of the packets for each network path may be modified in order to ensure the optimal quality of wireless communication. As the packet transmission apparatus continuously receives feedback information from the client and the state information of each network path is updated in S6, it is possible to immediately and flexibly response to changes in communication environment. The state information is not limited to the aforesaid information and may include any factors that allow the evaluation of the network performance. The factors may include the delay spread, an error rate, multicasting/broadcasting capabilities, document cache, and the like. The packet latency, the packet reception interval, the throughput, the packet loss probability, the delay spread, and the error rate have been described in detail above.
In S500, data is generated by sorting the selected network paths based on their maximum latency thresholds. In S4 of
According to the exemplary embodiments, it is possible to prevent a packet loss and throughput degradation by determining the number of packets to be transmitted via each network path based on the degree of congestion on each network path.
In addition, it is also possible to increase the entire throughput by solving the problem of reduction in the throughput due to out-of-order packets being recognized as lost packets.
A number of exemplary embodiments have been described above. Nevertheless, it will be understood that various modifications may be made. For example, suitable results may be achieved if the described techniques are performed in a different order and/or if components in a described system, architecture, device, or circuit are combined in a different manner and/or replaced or supplemented by other components or their equivalents. Accordingly, other implementations are within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2015-0011378 | Jan 2015 | KR | national |