Method and device for flow distribution in a hybrid access network
Patent Information
- Application Number
- DE602017090486
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-05-31
- Filing Date
- 2017-05-08
- Publication Date
- 2025-07-09
- Estimated Expiration
- 2037-05-08
AI Technical Summary
In hybrid access networks, the dual-tunnel bandwidth is often lower than the single-tunnel bandwidth due to excessive delay differences between LTE and DSL tunnels, leading to fluctuating system throughput and reduced user experience.
A traffic distribution method and apparatus that monitors tunnel congestion and status, using a second tunnel for probe traffic to determine offloading conditions, allowing dynamic adjustment of traffic distribution between the first and second tunnels based on real-time link quality parameters.
This approach maintains or increases overall bandwidth by optimizing traffic distribution across multiple tunnels, ensuring stable throughput and improved user experience by avoiding situations where dual-tunnel bandwidth falls below single-tunnel levels.
Description
TECHNICAL FIELD
[0001] Embodiments of the present invention relate to the communications field, and more specifically, to a traffic distribution method and apparatus in a hybrid access network.BACKGROUND
[0002] A hybrid access aggregation point (Hybrid access aggregation point, "HAAP" for short) is a router node deployed for cooperating with a hybrid access (Hybrid Access, "HA" for short) scheme. The HAAP is configured to implement a dual-tunnel hybrid access network in which each home gateway (Home Gateway, "HG" for short) user bonds a digital subscriber line (Digital Subscriber Line, "DSL" for short) with a Long Term Evolution (Long Term Evolution, "LTE" for short) system.
[0003] In an existing HA scheme, a bandwidth of an original DSL link is reserved, and a network bandwidth is expanded by using an LTE resource. Specifically, a user establishes bonding (bonding) tunnels: an LTE tunnel and a DSL tunnel with an HAAP by means of HG dialing. In this way, the user implements network access by using three paths: the LTE tunnel, the DSL tunnel, and the DSL link. From a perspective of a service, user services may be classified into two types: a common Internet access service and a high-priority service. Service traffic of the high-priority service can be transmitted by using only the DSL link. Therefore, the high-priority service occupies a part of the bandwidth of the DSL link, and the DSL tunnel occupies a remaining bandwidth. For the common Internet access service, service traffic of the common Internet access service is preferentially transmitted by using the DSL tunnel, and is offloaded to the LTE tunnel when a bandwidth of the DSL tunnel is inadequate. After the LTE tunnel and the DSL tunnel are successfully established between an HG and the HAAP, dual-tunnel bonding is automatically enabled by default and user service traffic is offloaded in a packet-based manner. In an offloading process, because the user service traffic is forwarded in a packet-based manner, a sequence preserving mechanism is used to overcome a problem that packets are out of order at a peer device because of a delay difference between the LTE tunnel and the DSL tunnel. A sequence number is added to each packet, so that after receiving the packet, the peer device uses the sequence number to restore a sequence of packets that are out of order after being offloaded in a packet-based manner.
[0004] However, when the delay difference between the LTE tunnel and the DSL tunnel is excessively large, the peer device is always in a wait state after receiving a forwarded packet, or directly sends out-of-order packets after a sequence preserving delay is exceeded. In this way, a system throughput fluctuates back and forth, and consequently, a dual-tunnel bandwidth is lower than a single-tunnel bandwidth.
[0005] YOU J. ET AL. "Traffic Distribution for GRE Tunnel Bonding", NETWORK WORKING GROUP INTERNET-DRAFT, 21 March 2016, pages 1-8 discloses a traffic distribution apparatus in a hybrid access network.
[0006] ZHANG, HUAWEI, N. LEYMANN, C. HEIDEMANN, DEUTSCHE TELEKOM AG, M. CULLEN, PAINLESS SECURITY "Flow Control for Bonding Tunnels; draft-zhang-banana-tcp-in-bondingtunnels-00.txt"; DRAFT-ZHANG-BANANA-TCP-IN-BONDINGTUNNELS-00.TXT, INTERNET ENGINEERING TASK FORCE, IETF; STANDARDWORKINGDRAFT, INTERNET SOCIETY (ISOC) 4, RUE DES FALAISES CH- 1205 GENEVA, SWITZERLAND, 21 March 2016, pages 1-6 discloses tunnel bonding that enables Bandwidth Aggregation across multiple Internet access links.SUMMARY
[0007] The present invention is defined in the attached independent claims.
[0008] Embodiments of the present invention provide a traffic distribution method and apparatus in a hybrid access network, so as to increase a bandwidth and improve user experience.
[0009] According to a first aspect, a traffic distribution method in a hybrid access network according to claim 4 is provided.
[0010] According to a second aspect, a traffic distribution apparatus in a hybrid access network according to claim 1.
[0011] Specifically, the apparatus includes units configured to perform the method in the first aspect or any possible implementation of the first aspect.BRIEF DESCRIPTION OF DRAWINGS
[0012] FIG. 1 is a schematic diagram of a hybrid access network; FIG. 2 is a flowchart of a traffic distribution method in a hybrid access network according to an embodiment of the present invention; FIG. 3 is a schematic diagram of status switching in a traffic distribution method in a hybrid access network according to an embodiment of the present invention; FIG. 4 is a schematic flowchart of a first state in a traffic distribution method according to an embodiment of the present invention; FIG. 5 is a schematic flowchart of a second state in a traffic distribution method according to an embodiment of the present invention; FIG. 6 is another schematic flowchart of a second state in a traffic distribution method according to an embodiment of the present invention; FIG. 7 is a schematic flowchart of a third state in a traffic distribution method according to an embodiment of the present invention; FIG. 8 is another schematic flowchart of a third state in a traffic distribution method according to an embodiment of the present invention; FIG. 9 is a schematic diagram of a traffic distribution method in a hybrid access network according to an embodiment of the present invention; FIG. 10 is a schematic diagram of a GRE packet according to an embodiment of the present invention; FIG. 11 is a schematic block diagram of a traffic distribution apparatus in a hybrid access network according to an embodiment of the present invention; and FIG. 12 is a schematic block diagram of a traffic distribution apparatus in a hybrid access network according to an embodiment of the present invention. DESCRIPTION OF EMBODIMENTS
[0013] The following clearly and completely describes the technical solutions in the embodiments of the present invention with reference to the accompanying drawings in the embodiments of the present invention. Apparently, the described embodiments are some rather than all of the embodiments of the present invention.
[0014] FIG. 1 is a schematic diagram of a hybrid access network. The network 100 may include a home gateway 110 and a hybrid access aggregation point 120. To increase a network bandwidth, a first tunnel and a second tunnel may be established between the home gateway 110 and the hybrid access aggregation point 120 to transmit user service traffic in a hybrid manner.
[0015] Specifically, the home gateway 110 may send a request packet to the hybrid access aggregation point 120. The request packet is used to request to establish a tunnel. After receiving the request packet, the hybrid access aggregation point 120 may respond to the request of the home gateway 110, obtain an address of the first tunnel and an address of the second tunnel that are required when the tunnels between the hybrid access aggregation point 120 and the home gateway 110 are established, and separately perform authentication and authorization on the address of the first tunnel and the address of the second tunnel. After the authentication and authorization succeed, the hybrid access aggregation point 120 establishes the first tunnel and the second tunnel, and allocates a service address to the home gateway 110. Afterwards, when accessing the hybrid access aggregation point 120 according to the service address, the home gateway 110 may transmit the user service traffic in a hybrid manner by using the first tunnel and the second tunnel.
[0016] When transmitting uplink service traffic of a user, the home gateway 110 may monitor an uplink bandwidth of high-priority service traffic, and calculate an available uplink bandwidth of the first tunnel, so that the uplink service traffic of the user preferentially passes through the first tunnel, and uplink service traffic of a remaining uplink bandwidth in the uplink bandwidth other than the available uplink bandwidth passes through the second tunnel. Likewise, when transmitting downlink service traffic of a user, the home gateway 110 may monitor a downlink bandwidth of high-priority service traffic, calculate an available downlink bandwidth of the first tunnel, and send, to the hybrid access aggregation point 120, a notification packet carrying the available downlink bandwidth. After the hybrid access aggregation point 120 receives the available downlink bandwidth, the downlink service traffic of the user preferentially passes through the first tunnel, and downlink service traffic of a remaining downlink bandwidth in the downlink bandwidth other than the available downlink bandwidth passes through the second tunnel.
[0017] It should be understood that a plurality of other tunnels may be further established between the home gateway 110 and the hybrid access aggregation point 120. This is not limited in this embodiment of the present invention. It should be further understood that the first tunnel is a DSL tunnel, and the second tunnel is an LTE tunnel.
[0018] From a perspective of a service, user services may be classified into two types. One type is a common Internet access service such as File Transfer Protocol (File Transfer Protocol, "FTP" for short) download, and the other type is a high-priority service such as an interactive personality TV IPTV, a Video On Demand (Video On Demand, "VOD" for short) technology, or the Voice over Internet Protocol (Voice over Internet Protocol, "VOIP" for short). High-priority services of this type are collectively referred to as a bypass (bypass) service. A DSL tunnel and an LTE tunnel are used as an example. The bypass service has a high priority, and passes through only an original DSL link and does not pass through a tunnel. Therefore, the high-priority service occupies a bandwidth of the DSL link, and the DSL tunnel occupies a remaining bandwidth. For the common Internet access service, service traffic of the common Internet access service is preferentially transmitted by using the DSL tunnel, and is offloaded to the LTE tunnel when a bandwidth of the DSL tunnel is inadequate.
[0019] After the LTE tunnel and the DSL tunnel are successfully established between the HG and the HAAP, dual-tunnel bonding is automatically enabled by default and the user service traffic is offloaded in a packet-based manner. In an offloading process, because the user service traffic is forwarded in a packet-based manner, a sequence preserving mechanism is used to overcome a problem that packets are out of order at a peer device because of a delay difference between the LTE tunnel and the DSL tunnel. A sequence number is added to a GRE header of each packet, so that after receiving the packet, the peer device uses the sequence number to restore a sequence of packets that are out of order after being offloaded in a packet-based manner.
[0020] However, when the delay difference between the LTE tunnel and the DSL tunnel is excessively large, the peer device is always in a wait state after receiving a forwarded packet, or directly sends out-of-order packets after a sequence preserving delay is exceeded. In this way, a system throughput fluctuates back and forth, and consequently, a dual-tunnel bandwidth is lower than a single-tunnel bandwidth.
[0021] To resolve the problem that the dual-tunnel bandwidth is lower than the single-tunnel bandwidth, the embodiments of the present invention propose a new dual-tunnel traffic distribution method in a hybrid access network, so as to increase a bandwidth, that is, avoid the problem that the dual-tunnel bandwidth is lower than the single-tunnel bandwidth. In the method, after determining that a first tunnel is congested when user traffic is transmitted over the first tunnel, an HAAP transmits probe traffic by using a second tunnel. The probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel. The HAAP obtains a status of the first tunnel and the status of the second tunnel. The HAAP determines, according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition. After determining that the status of the first tunnel and the status of the second tunnel meet the offloading condition, the HAAP transmits the user traffic by using the first tunnel and the second tunnel.
[0022] FIG. 2 is a flowchart of a traffic distribution method in a hybrid access network according to an embodiment of the present invention. The method 200 may be applied to the network 100 shown in FIG. 1. However, this embodiment of the present invention is not limited thereto. The method 200 includes the following steps.
[0023] S210. After determining that a first tunnel is congested when user traffic is transmitted over the first tunnel, an HAAP transmits probe traffic by using a second tunnel, where the probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel.
[0024] Specifically, after the first tunnel and the second tunnel are established between the HAAP and an HG, the HAAP preferentially transmits user service traffic by using the first tunnel, and monitors a status of the first tunnel in real time. If the first tunnel is congested, the HAAP offloads, to the second tunnel, a part of traffic on the first tunnel, that is, the probe traffic. The second tunnel is used to transmit the part of traffic, so that the HAAP determines, according to the status of the second tunnel during transmission, whether traffic on the first tunnel can be offloaded to the second tunnel.
[0025] It should be understood that at a stage of probing the second tunnel, the HAAP allocates traffic with a specific proportion to the second tunnel, and remaining traffic is still transmitted in a common offloading manner, that is, first passes through the first tunnel, and is offloaded to the second tunnel when a bandwidth of the first tunnel is inadequate. For example, if the user traffic is 10 M, and the bandwidth of the first tunnel is 5 M, the HAAP first forcibly allocates 1-M traffic for second tunnel-based transmission, and enters the probing stage. At the probing stage, the HAAP obtains a status of the first tunnel when 5-M traffic is transmitted over the first tunnel and a status of the second tunnel when the 1-M traffic is transmitted over the second tunnel. If the HAAP determines that the status of the first tunnel and the status of the second tunnel meet an offloading condition at the probing stage, the HAAP may transmit 4-M traffic in the 10-M traffic according to a preset policy by using the second tunnel. Therefore, if link quality of the second tunnel is good enough, a sum of a throughput of the first tunnel and a throughput of the second tunnel can be kept 10 M. If link quality of the second tunnel is relatively poor, the user traffic sharply decreases after the second tunnel is used for transmission. The HAAP determines that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition at the probing stage, and temporarily does not use the second tunnel to transmit the user traffic.
[0026] In an optional embodiment, before the determining, by a hybrid access aggregation point HAAP, that a first tunnel is congested when user traffic is transmitted over the first tunnel, the method further includes: determining, by the HAAP according to a link quality parameter of the first tunnel and a first threshold, whether the first tunnel is congested.
[0027] The HAAP may determine, in a plurality of manners, whether the first tunnel is congested when the user traffic is transmitted over the first tunnel. In an optional embodiment, the determining, by an HAAP, that a first tunnel is congested when user traffic is transmitted over the first tunnel includes: if the link quality parameter of the first tunnel is greater than the first threshold, determining, by the HAAP, that the first tunnel is congested.
[0028] In an optional embodiment, the link quality parameter of the first tunnel is a packet loss rate of the first tunnel, and the first threshold is a threshold corresponding to the packet loss rate. Alternatively, the link quality parameter of the first tunnel is a throughput of the first tunnel, and the first threshold is a threshold corresponding to the throughput. Alternatively, the link quality parameter of the first tunnel includes a packet loss rate of the first tunnel and a throughput of the first tunnel. The first threshold includes a first subthreshold and a second subthreshold, the first subthreshold is a threshold corresponding to the packet loss rate, and the second subthreshold is a threshold corresponding to the throughput.
[0029] In an optional embodiment, the determining, by an HAAP, that a first tunnel is congested when user traffic is transmitted over the first tunnel includes: determining, by the HAAP, whether the throughput of the first tunnel is greater than the first threshold; and if the throughput of the first tunnel is greater than the first threshold, determining, by the HAAP, that the first tunnel is congested.
[0030] In an optional embodiment, the method further includes: if the throughput of the first tunnel is less than or equal to the first threshold, determining, by the HAAP, whether the packet loss rate of the first tunnel is greater than a packet loss rate threshold; and if the packet loss rate of the first tunnel is greater than the packet loss rate threshold, determining, by the HAAP, that the first tunnel is congested.
[0031] Specifically, the HAAP may determine a current status of the first tunnel according to the throughput and / or the packet loss rate of the first tunnel, and determine whether the first tunnel is congested when the user service traffic is transmitted by using only the first tunnel.
[0032] S220. The HAAP obtains a status of the first tunnel and the status of the second tunnel.
[0033] Specifically, after the HAAP offloads the probe traffic to the second tunnel, the HAAP obtains the status of the first tunnel and the status of the second tunnel.
[0034] The HAAP may obtain the status of the first tunnel and the status of the second tunnel in a plurality of manners. In an optional embodiment, the obtaining, by the HAAP, a status of the first tunnel and the status of the second tunnel includes: receiving, by the HAAP, a Generic Routing Encapsulation (Generic Routing Encapsulation, "GRE" for short) packet sent by the HG, and determining, by the HAAP, the status of the first tunnel and the status of the second tunnel according to the GRE packet.
[0035] Specifically, the HAAP may send the GRE packet to the HG, and determine the statuses of the first tunnel and the second tunnel by using the GRE packet. After receiving the GRE packet, the HG fills a related link quality parameter into the GRE packet, and then returns the GRE packet to the HAAP. In this way, the HAAP receives the GRE packet returned by the HG, and can obtain the status of the first tunnel and the status of the second tunnel according to the link quality parameter carried in the GRE packet.
[0036] In this embodiment of the present invention, the HAAP may periodically monitor the status of the first tunnel and the status of the second tunnel. The status of the first tunnel and the status of the second tunnel in S220 are a status of the first tunnel and a status of the second tunnel that are obtained after the HAAP transmits the probe traffic by using the second tunnel.
[0037] S230. The HAAP determines, according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition.
[0038] Specifically, the HAAP may determine, according to the status of the first tunnel and the status of the second tunnel, whether an overall bandwidth of the first tunnel and the second tunnel is higher than a bandwidth after the probe traffic is offloaded to the second tunnel, where the bandwidth is used for transmitting the traffic by using only the first tunnel, so as to determine whether to offload the user traffic.
[0039] The HAAP may determine, in a plurality of manners, whether to perform offloading. Specifically, the HAAP may use the throughputs as the offloading condition for determining. However, this embodiment of the present invention is not limited thereto.
[0040] The method further includes: after determining that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition, determining, by the HAAP, whether the status of the first tunnel and the status of the second tunnel meet a backoff condition; and after the HAAP determines that the status of the first tunnel and the status of the second tunnel meet the backoff condition, determining, by the HAAP, whether the first tunnel is congested.
[0041] After the HAAP determines that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition, transmitting, by the HAAP, the user traffic by using the first tunnel, and skipping performing congestion determining on the first tunnel within preset duration. The preset duration may be referred to as penalty duration. The penalty duration is used to indicate a time period of a penalty stage. The penalty duration may be set by the HAAP according to an actual case. For example, when a user enters the penalty stage for the first time, the HAAP may set the penalty duration to 30s. If the user enters the penalty stage for the second time, the HAAP may prolong the penalty duration to 60s, and so on. However, this is not limited in this embodiment of the present invention.
[0042] For example, the HAAP may skip performing congestion determining on the first tunnel within the preset duration by using a timer, that is, the HAAP may set the timer, and after the timer expires, the HAAP determines whether the first tunnel is in a congested state.
[0043] Specifically, after determining that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition when the HAAP transmits the probe traffic by using the second tunnel, the HAAP may further determine whether the status of the first tunnel and the status of the second tunnel meet the backoff condition. The backoff condition is used to indicate whether the HAAP is allowed to return to a status in which the HAAP transmits the user traffic by using only the first tunnel and monitors, in real time, whether the first tunnel is congested. If the status of the first tunnel and the status of the second tunnel meet the backoff condition, the HAAP may transmit the user traffic by using only the first tunnel, and detect, in real time, whether the first tunnel is congested. If the status of the first tunnel and the status of the second tunnel do not meet the backoff condition, the HAAP may transmit the user traffic by using only the first tunnel, but may not detect, within the preset duration, whether the first tunnel is congested.
[0044] In addition, the HAAP may determine, in a plurality of manners, whether the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0045] The status of the second tunnel further includes a delay of the second tunnel, and the status of the first tunnel further includes a delay of the first tunnel. The determining whether the status of the first tunnel and the status of the second tunnel meet a backoff condition includes: determining, by the HAAP, whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a fourth threshold. The fourth threshold is a threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel. If the difference between the delay of the second tunnel and the delay of the first tunnel is less than the fourth threshold, the HAAP determines that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0046] The status of the second tunnel includes the throughput of the second tunnel, and the status of the first tunnel includes the throughput of the first tunnel. The determining whether the status of the first tunnel and the status of the second tunnel meet a backoff condition includes: determining, by the HAAP, whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold. The third threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel. If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, the HAAP determines that the status of the first tunnel and the status of the second tunnel meet the backoff condition. The third threshold is less than the second threshold.
[0047] In an optional embodiment, the method further includes: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, determining, by the HAAP, whether the difference between the delay of the first tunnel and the delay of the second tunnel is less than the fourth threshold; and if the difference between the delay of the first tunnel and the delay of the second tunnel is less than the fourth threshold, determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0048] In an optional embodiment, the determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition includes: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, and the difference between the delay of the first tunnel and the delay of the second tunnel is greater than or equal to the fourth threshold, determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition.
[0049] In this way, the HAAP may specifically determine, according to the throughputs and / or the delay difference, whether the status of the first tunnel and the status of the second tunnel meet the offloading condition or the backoff condition at the probing stage, so as to correspondingly adjust a current traffic transmission status.
[0050] In an optional embodiment, after the user traffic is transmitted by using the first tunnel and the second tunnel, the method further includes: determining, by the HAAP, whether the status of the first tunnel and the status of the second tunnel meet an exit condition; and after the HAAP determines that the status of the first tunnel and the status of the second tunnel meet the exit condition, transmitting, by the HAAP, the user traffic by using the first tunnel, and determining whether the first tunnel is congested.
[0051] Specifically, after the HAAP has successfully performed offloading, the HAAP transmits the user traffic in a hybrid manner by using the first tunnel and the second tunnel. However, because a tunnel status is unstable, a delay difference between the two tunnels may be excessively large or link quality of one of the two tunnels may be poor in a transmission process. Therefore, in an offloading transmission process, the status of the first tunnel and the status of the second tunnel may be monitored in real time. If the status of the first tunnel and the status of the second tunnel meet the exit condition, the HAAP may not use the second tunnel to transmit the user traffic but use only the first tunnel to transmit the user traffic.
[0052] The HAAP may determine, in a plurality of manners, whether the status of the first tunnel and the status of the second tunnel meet the exit condition. In an optional embodiment, the determining whether the status of the first tunnel and the status of the second tunnel meet an exit condition includes: determining, by the HAAP, whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a fifth threshold. Correspondingly, the determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel meet the exit condition includes: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel meet the exit condition.
[0053] In an optional embodiment, the determining whether the status of the first tunnel and the status of the second tunnel meet an exit condition includes: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, determining whether the difference between the delay of the first tunnel and the delay of the second tunnel is greater than a sixth threshold. Correspondingly, the determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel meet the exit condition includes: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, and the difference between the delay of the first tunnel and the delay of the second tunnel is greater than the sixth threshold, determining, by the HAAP, that the status of the first tunnel and the status of the second tunnel meet the exit condition.
[0054] In this way, in a normal offloading process, the HAAP may specifically determine, according to the throughputs and / or the delay difference, whether the HAAP needs to exit an offloading mode, that is, not to use the second tunnel for offloading, but use only the first tunnel to transmit the user traffic. Therefore, the HAAP can adjust a user traffic transmission status in real time according to a current case, so as to improve user experience.
[0055] The fifth threshold and the third threshold may be the same, or may be different. The sixth threshold and the fourth threshold may be the same, or may be different. This is not limited in this embodiment of the present invention.
[0056] It should be further understood that the HAAP may use the sum of the throughputs of the two tunnels as an exit determining condition, or may use the sum of the throughputs of the two tunnels and the difference between the delays of the two tunnels as an exit determining condition. This is not limited in this embodiment of the present invention.
[0057] Optionally, the HAAP may set a detection period and a quantity of exit times, and the HAAP records a quantity of times that the exit condition is met. When the quantity of times that the exit condition is met reaches the quantity of exit times, the HAAP may not use the second tunnel for offloading, but use only the first tunnel to transmit the user traffic. Congestion determining, offloading determining, backoff determining, and the like in this embodiment of the present invention may be limited in terms of a quantity of times in a specific implementation process. This is not limited in this embodiment of the present invention.
[0058] FIG. 3 is a schematic diagram of status switching in a traffic distribution method in a hybrid access network according to an embodiment of the present invention.
[0059] S310. A hybrid access aggregation point HAAP sets a traffic transmission status of user service traffic to a first state, and in the first state, the HAAP transmits the user traffic by using only a first tunnel, and when transmitting the traffic, detects whether the first tunnel is congested.
[0060] S320. The HAAP sets the traffic transmission status of the user service traffic to a second state, and in the second state, the HAAP transmits the user traffic by using the first tunnel and a second tunnel, and adds probe traffic to the second tunnel, where the probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel.
[0061] S330. The HAAP sets the traffic transmission status of the user service traffic to a third state, and in the third state, the HAAP transmits the user traffic in a common packet-based offloading manner, that is, transmits the user traffic in a hybrid manner by using the first tunnel and the second tunnel.
[0062] S340. The HAAP sets the traffic transmission status of the user service traffic to a fourth state, and in the fourth state, the HAAP transmits the user traffic by using only the first tunnel, but does not perform congestion detection on the first tunnel.
[0063] Specifically, a state machine may run on the HAAP. The traffic transmission status of the user service traffic between the HAAP and an HG may be switched between a plurality of statuses. A rule of status switching between the foregoing four statuses is described in detail below with reference to FIG. 3. (1) The traffic transmission status is switched from S310 to S320: When the HAAP transmits the user traffic by using the first tunnel, if the HAAP detects that the first tunnel is congested, the HAAP transmits the probe traffic by using the second tunnel, that is, switches the traffic transmission status from S310 to S320. The probe traffic is used to obtain the status of the second tunnel, so that the HAAP determines whether the user traffic can be offloaded to the second tunnel. (2) The traffic transmission status is switched from S320 to S330: If determining that a status of the first tunnel and the status of the second tunnel meet the foregoing offloading condition, the HAAP switches the traffic transmission status from S320 to S330, that is, transmits the user traffic in the common packet-based offloading mode by using the first tunnel and the second tunnel. (3) The traffic transmission status is switched from S320 to S310: If determining that the status of the first tunnel and the status of the second tunnel do not meet the foregoing offloading condition but meet the foregoing backoff condition, the HAAP switches the traffic transmission status from S320 back to S310. (4) The traffic transmission status is switched from S320 to S340: If determining that the status of the first tunnel and the status of the second tunnel meet neither the foregoing offloading condition nor the foregoing backoff condition, the HAAP switches the traffic transmission status from S320 to S340. (5) The traffic transmission status is switched from S340 to S310: The HAAP keeps in the fourth state as the traffic transmission status within a first time period, and directly switches the traffic transmission status back to the first state after the first time period, that is, switches the traffic transmission status from S340 to S310, so as to transmit the user traffic by using the first tunnel, and monitor, in real time, whether the first tunnel is congested. (6) The traffic transmission status is switched from S330 to S310: In the third state, that is, when the user traffic is transmitted in a hybrid manner by using the first tunnel and the second tunnel, a throughput may be inadequate or link quality may be poor. Therefore, the HAAP needs to obtain a status of the first tunnel and a status of the second tunnel in this state, and determine whether the status of the first tunnel and the status of the second tunnel meet an exit condition. If the status of the first tunnel and the status of the second tunnel meet the exit condition, the HAAP does not use the second tunnel to transmit the traffic, but switches the traffic transmission status from S330 back to S310 and uses only the first tunnel to transmit the user traffic.
[0064] In this way, the four traffic transmission statuses may be mutually switched according to a current status of the first tunnel and / or a current status of the second tunnel, so as to avoid a case in which an overall dual-tunnel bandwidth is lower than a single-tunnel bandwidth during dual-tunnel bonding, thereby improving user experience.
[0065] FIG. 4 is a schematic flowchart of a first state in a traffic distribution method according to an embodiment of the present invention. The first state S310 includes content in S301 to S304.
[0066] S301.An HAAP obtains a throughput of a first tunnel in the first state.
[0067] S302. The HAAP determines whether the throughput of the first tunnel is greater than a first subthreshold.
[0068] If the throughput of the first tunnel is greater than the first subthreshold, the HAAP determines that the first tunnel is congested, and the HAAP performs S320, that is, switches the state machine from the first state S310 to the second state S320. The first subthreshold is a threshold corresponding to the throughput of the first tunnel, and may be used to determine whether the first tunnel is congested.
[0069] Optionally, the method further includes: if the throughput of the first tunnel is less than or equal to the first subthreshold, the HAAP performs S303, that is, obtains a packet loss rate of the first tunnel in the first state.
[0070] S304. The HAAP determines whether the packet loss rate of the first tunnel is greater than a second subthreshold.
[0071] If the packet loss rate of the first tunnel is greater than the second subthreshold, the HAAP determines that the first tunnel is congested, and the HAAP switches the state machine from the first state S310 to the second state S320.
[0072] If the packet loss rate of the first tunnel is less than or equal to the second subthreshold, the HAAP determines that the first tunnel is not congested, and performs S301. The HAAP may periodically detect the throughput of the first tunnel to determine whether the first tunnel is congested.
[0073] It should be understood that sequence numbers of the foregoing processes do not mean an execution sequence. The execution sequence of the processes should be determined according to functions and internal logic of the processes, and should not be construed as any limitation on the implementation processes of the embodiments of the present invention.
[0074] FIG. 5 is a schematic flowchart of a second state in a traffic distribution method according to an embodiment of the present invention. The second state S320 includes content in S305 to S309.
[0075] S305. The HAAP obtains a sum of a throughput of the first tunnel and a throughput of a second tunnel in the second state.
[0076] S306. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a second threshold.
[0077] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the second threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet an offloading condition, and the HAAP switches a traffic transmission status from the second state S320 to the third state S330, that is, performs corresponding (2) in FIG. 3.
[0078] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the second threshold, the HAAP performs S307.
[0079] S307. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold, where the second threshold is greater than the third threshold.
[0080] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet a backoff condition, and the HAAP switches the traffic transmission status from the second state S320 back to the first state S310, that is, performs corresponding (3) in FIG. 3.
[0081] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, the HAAP performs S308.
[0082] S308. The HAAP obtains a difference between a delay of the first tunnel and a delay of the second tunnel, and then performs S309.
[0083] S309. The HAAP determines whether the difference between the delay of the first tunnel and the delay of the second tunnel is less than a fourth threshold.
[0084] If the delay difference between the first tunnel and the second tunnel is less than the fourth threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet the backoff condition, and the HAAP switches the traffic transmission status from the second state S320 back to the first state S310, that is, performs corresponding (3) in FIG. 3.
[0085] If the difference between the delay of the first tunnel and the delay of the second tunnel is greater than or equal to the fourth threshold, it indicates that after the second tunnel is used, the delay difference between the first tunnel and the second tunnel is excessively large, and an overall throughput is lowered. Therefore, the HAAP switches the traffic transmission status from the second state S320 to the fourth state S340, that is, performs corresponding (4) in FIG. 3.
[0086] Optionally, the method further includes: after the first time period in which the fourth state S340 is kept as the traffic transmission status, the HAAP performs S310, that is, performs congestion determining according to the throughput of the first tunnel and / or the packet loss rate of the first tunnel.
[0087] It should be understood that, when the traffic transmission status is the second state, the HAAP may determine, in a plurality of manners, whether to perform status switching. For example, in FIG. 5, the HAAP uses the sum of the throughput of the first tunnel and the throughput of the second tunnel as a prior determining condition. When the sum of the throughput of the first tunnel and the throughput of the second tunnel meets neither the offloading condition nor the backoff condition, the HAAP uses the delay difference between the first tunnel and the second tunnel as a determining condition for further determining.
[0088] Optionally, as shown in FIG. 6, the HAAP may use the difference between the delay of the first tunnel and the delay of the second tunnel as a prior determining condition. When the difference between the delay of the first tunnel and the delay of the second tunnel does not meet the offloading condition, the HAAP determines, according to the sum of the throughput of the first tunnel and the throughput of the second tunnel, whether the HAAP backs off to be in the first state or enters the fourth state.
[0089] S308. The HAAP obtains a difference between a delay of the first tunnel and a delay of the second tunnel in the second state.
[0090] S309. The HAAP determines whether the difference between the delay of the first tunnel and the delay of the second tunnel is less than a fourth threshold.
[0091] If the difference between the delay of the first tunnel and the delay of the second tunnel is less than the fourth threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet the offloading condition, and the HAAP switches the traffic transmission status from the second state S320 to the third state S330, that is, performs corresponding (2) in FIG. 3.
[0092] If the difference between the delay of the first tunnel and the delay of the second tunnel is greater than or equal to the fourth threshold, it indicates that after the second tunnel is used, the difference between the delay of the first tunnel and the delay of the second tunnel is excessively large. In this case, the HAAP performs S305.
[0093] S305. The HAAP obtains a sum of a throughput of the first tunnel and a throughput of a second tunnel in the second state, and then performs S306.
[0094] S306. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a second threshold.
[0095] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the second threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet the offloading condition, and the HAAP switches the traffic transmission status from the second state S320 to the third state S330, that is, performs corresponding (2) in FIG. 3.
[0096] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the second threshold, the HAAP performs S307.
[0097] S307. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold, where the second threshold is greater than the third threshold.
[0098] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, the HAAP determines that current statuses of the first tunnel and the second tunnel meet the backoff condition, and the HAAP switches the traffic transmission status from the second state S320 back to the first state S310, that is, performs corresponding (3) in FIG. 3.
[0099] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, the HAAP switches the traffic transmission status from the second state S320 to the fourth state S340, that is, performs corresponding (4) in FIG. 3.
[0100] Optionally, after the first time period in which the fourth state is kept as the traffic transmission status, the HAAP switches the traffic transmission status back to the first state, that is, performs corresponding (5) in FIG. 3.
[0101] It should be understood that sequence numbers of the foregoing processes do not mean an execution sequence. The execution sequence of the processes should be determined according to functions and internal logic of the processes, and should not be construed as any limitation on the implementation processes of the embodiments of the present invention.
[0102] FIG. 7 is a schematic flowchart of a third state in a traffic distribution method according to an embodiment of the present invention. The third state S330 includes content in S311 to S314.
[0103] S311. The HAAP obtains a sum of a throughput of the first tunnel and a throughput of the second tunnel in the third state.
[0104] S312. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a fifth threshold.
[0105] The fifth threshold may be the same as a third threshold, or may be different from the third threshold.
[0106] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the fifth threshold, the HAAP performs S311. The HAAP may periodically detect the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0107] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, the HAAP performs S313.
[0108] S313. The HAAP obtains a delay difference between the first tunnel and the second tunnel, and then performs S314.
[0109] The delay difference between the first tunnel and the second tunnel is the difference between the delay of the first tunnel and the delay of the second tunnel.
[0110] S314. The HAAP determines whether the delay difference between the first tunnel and the second tunnel is greater than a sixth threshold.
[0111] If the delay difference between the first tunnel and the second tunnel is greater than the sixth threshold, the HAAP switches a traffic transmission status from the third state S330 back to the first state S310, that is, performs corresponding (6) in FIG. 3.
[0112] If the delay difference between the first tunnel and the second tunnel is less than or equal to the sixth threshold, the HAAP performs S311. The HAAP may periodically detect the delay difference between the first tunnel and the second tunnel.
[0113] It should be understood that, when the traffic transmission status is the third state, the HAAP may determine, in a plurality of manners, whether to perform status switching. For example, in FIG. 7, the HAAP uses the sum of the throughput of the first tunnel and the throughput of the second tunnel as a prior determining condition. When the sum of the throughput of the first tunnel and the throughput of the second tunnel does not meet an exit condition, the HAAP uses the difference between the delay of the first tunnel and the delay of the second tunnel as a determining condition for further determining.
[0114] Optionally, as shown in FIG. 8, the HAAP may use the difference between the delay of the first tunnel and the delay of the second tunnel as a prior determining condition. When the difference between the delay of the first tunnel and the delay of the second tunnel does not meet the exit condition, the HAAP determines, according to the sum of the throughput of the first tunnel and the throughput of the second tunnel, whether to switch the traffic transmission status back to the first state.
[0115] S313. The HAAP obtains a delay difference between the first tunnel and the second tunnel.
[0116] S314. The HAAP determines whether the delay difference between the first tunnel and the second tunnel is greater than a sixth threshold.
[0117] If the delay difference between the first tunnel and the second tunnel is greater than the sixth threshold, the HAAP performs S311.
[0118] If the delay difference between the first tunnel and the second tunnel is less than or equal to the sixth threshold, the HAAP performs S313. The HAAP may periodically detect the delay difference between the first tunnel and the second tunnel.
[0119] S311. The HAAP obtains a sum of a throughput of the first tunnel and a throughput of the second tunnel in the third state.
[0120] S312. The HAAP determines whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a fifth threshold.
[0121] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, the HAAP switches the traffic transmission status from the third state S330 back to the first state S310, that is, performs corresponding (6) in FIG. 3.
[0122] If the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the fifth threshold, the HAAP performs S313. The HAAP may periodically detect the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0123] It should be understood that sequence numbers of the foregoing processes do not mean an execution sequence. The execution sequence of the processes should be determined according to functions and internal logic of the processes, and should not be construed as any limitation on the implementation processes of the embodiments of the present invention.
[0124] In this embodiment of the present invention, that the HAAP switches the traffic transmission status to the first state indicates that the HAAP performs the corresponding content in S301 to S304 shown in FIG. 4. That the HAAP switches the traffic transmission status to the second state indicates that the HAAP performs the corresponding content in S305 to S309 shown in FIG. 5 or performs the corresponding content in S308 to S307 shown in FIG. 6. That the HAAP switches the traffic transmission status to the third state indicates that the HAAP performs the corresponding content in S311 to S314 shown in FIG. 7 or performs the corresponding content in S313 to S312 shown in FIG. 8.
[0125] FIG. 9 is a schematic diagram of a traffic distribution method in a hybrid access network according to an embodiment of the present invention. As shown in FIG. 9, the traffic distribution method provided in this embodiment includes the following steps.
[0126] S400. An HAAP transmits user traffic by using a first tunnel.
[0127] S401. The HAAP sends a first GRE packet to an HG.
[0128] S401 and S400 may be performed at the same time, or S401 may be performed before S400 or after S400. The first GRE packet is used to obtain a first parameter of the first tunnel. The first parameter of the first tunnel may reflect link quality of the first tunnel.
[0129] The HAAP may periodically send the first GRE packet to the HG.
[0130] S402. The HG obtains a second GRE packet.
[0131] The HG receives the first GRE packet. The HG obtains the second GRE packet according to the first GRE packet and the first parameter of the first tunnel. The second GRE packet includes the first GRE packet and the first parameter of the first tunnel.
[0132] S403. The HG sends the second GRE packet to the HAAP.
[0133] S404. The HAAP sends a third GRE packet to the HG.
[0134] The third GRE packet is used to obtain a second parameter of the first tunnel and a parameter of a second tunnel. The second parameter of the first tunnel may reflect the link quality of the first tunnel. The parameter of the second tunnel may reflect link quality of the second tunnel. The second parameter of the first tunnel may be completely the same as the first parameter of the first tunnel, or may not be completely the same as the first parameter of the first tunnel.
[0135] The HAAP may periodically send the third GRE packet to the HG.
[0136] S405. The HG obtains a fourth GRE packet.
[0137] The HG receives the third GRE packet. The HG obtains the fourth GRE packet according to the third GRE packet, the second parameter of the first tunnel, and the parameter of the second tunnel. The fourth GRE packet includes the third GRE packet, the second parameter of the first tunnel, and the parameter of the second tunnel.
[0138] S406. The HG sends the fourth GRE packet to the HAAP.
[0139] S407. The HAAP may determine, according to the received second GRE packet, that the first tunnel is congested, and then perform S408.
[0140] Optionally, before S407, the HAAP may determine, according to the first parameter of the first tunnel in the second GRE packet, whether the first tunnel is congested.
[0141] S408. The HAAP transmits probe traffic by using a second tunnel.
[0142] S409. The HAAP may determine, according to the fourth GRE packet, that the first tunnel and the second tunnel meet an offloading condition.
[0143] The parameter of the second tunnel that is included in the fourth GRE packet may be a parameter obtained when the second tunnel is used to transmit the probe traffic.
[0144] Optionally, before S409, the HAAP may determine, according to the second parameter of the first tunnel and the parameter of the second tunnel, whether the first tunnel and the second tunnel meet the offloading condition.
[0145] S410. The HAAP transmits the user traffic in a hybrid manner by using the first tunnel and the second tunnel.
[0146] In the foregoing process, the HAAP periodically sends a GRE packet, so as to obtain a parameter of the first tunnel and / or a parameter of the second tunnel in a current traffic transmission status, and adjust a user traffic transmission status according to the parameter of the first tunnel and / or the parameter of the second tunnel.
[0147] Specifically, the GRE packet may be used to measure a throughput, a packet loss rate, and a delay of a tunnel. More specifically, for example, the first tunnel is a digital subscriber line DSL tunnel, and the second tunnel is a Long Term Evolution LTE tunnel. A control message type of the GRE packet is defined as 10, and a specific format is shown in FIG. 10. The GRE packet may include a check (C) bit, a key (K) bit, a recursion (recursion) field, a version (version) field, a protocol type (Protocol Type), a key (key) field, a control message type (MsgType), a tunnel type (T), a reserved (Res) field, an attribute type (Attribute Type), an attribute length (attribute length), and an attribute value (attribute Value). For the check bit, if the bit is set to 1, it indicates that a checksum field is added to a GRE header; if the bit is 0, it indicates that a GRE header does not include a checksum field. For the key bit, if the bit is set to 1, it indicates that a key field is added to a GRE header; if the bit is 0, it indicates that a GRE header does not include a key field. The recursion field is used to indicate recursion of the GRE packet, and the field is used to prevent the packet from being unlimitedly encapsulated. The field is increased by 1 after GRE encapsulation is completed once. If the recursion is greater than 3, the packet is discarded. The key field is used by a tunnel receive end to verify a received packet. The tunnel type is used to indicate that the packet belongs to the DSL tunnel or the LTE tunnel.
[0148] In this embodiment of the present invention, AVPs included in the GRE packet are extended, and an AVP used to carry a related attribute of the DSL tunnel and an AVP used to carry a related attribute of the LTE tunnel are added. The AVP used to carry the related attribute of the DSL tunnel may be used to carry the related attribute of the DSL tunnel by using an extended attribute type field, attribute length field, and attribute value field. The AVP used to carry the related attribute of the LTE tunnel may be used to carry the related attribute of the LTE tunnel by using an extended attribute type field, attribute length field, and attribute value field. The related attribute of the DSL tunnel includes a parameter used to obtain a packet loss rate, a throughput, and / or a delay of the DSL tunnel. The related attribute of the LTE tunnel includes a parameter used to obtain a packet loss rate, a throughput, and / or a delay of the LTE tunnel. Specific forms and specific content of the AVPs are not illustrated herein one by one.
[0149] After receiving the second GRE packet or the fourth GRE packet that is sent by the HG, the HAAP needs to perform calculation and processing to obtain a throughput, a packet loss rate, and a delay of the first tunnel and / or a throughput, a packet loss rate, and a delay of the second tunnel. A specific calculation method is as follows: A packet loss rate of the DSL tunnel is calculated according to the following formula: DSL _ PLR = Δ Tx − Δ Rx Δ Tx , where Δ Tx = Tx _ Packet _ 2 − Tx _ Packet _ 1 , and Δ Rx = Rx _ Packet _ 2 − Rx _ Packet _ 1 .
[0150] A throughput of the DSL tunnel is calculated according to the following formula: DSL _ TUNNEL _ TH = Tx _ Byte _ DSL _ TUNNEL _ 2 − Tx _ Byte _ DSL _ TUNNEL _ 1 t 2 − t 1 .
[0151] A throughput of a DSL link is calculated according to the following formula: DSL _ BYPASS _ TH = Tx _ Byte _ DSL _ BYPASS _ 2 − Tx _ Byte _ DSL _ BYPASS _ 1 t 2 − t 1 .
[0152] A throughput of the LTE tunnel is calculated according to the following formula: LTE _ TUNNEL _ TH = Tx _ Byte _ LTE _ TUNNEL _ 2 − Tx _ Byte _ LTE _ TUNNEL _ 1 t 2 − t 1 .
[0153] In the foregoing formulas, Tx_Packet is a quantity of packets sent by the HAAP to the HG. Tx_Packet_2 represents a quantity of packets sent by the HAAP to the HG until a t2 moment. Tx_Packet_1 represents a quantity of packets sent by the HAAP to the HG until a t1 moment. Rx_Packet is a quantity of packets received by the HG. Rx_Packet_2 represents a quantity of packets received by the HG until the t2 moment. Rx_Packet_1 represents a quantity of packets received by the HG until the t1 moment.
[0154] In the foregoing formulas, Tx_Byte_DSL_TUNNEL is a quantity of bytes sent by the HAAP to the HG by using the DSL tunnel. Tx_Byte_DSL_TUNNEL_2 represents a quantity of bytes sent by the HAAP to the HG until the t2 moment by using the DSL tunnel. Tx_Byte_DSL_TUNNEL_1 represents a quantity of bytes sent by the HAAP to the HG until the t1 moment by using the DSL tunnel.
[0155] Rx_Byte_DSL_TUNNEL is a quantity of bytes received by the HG by using the DSL tunnel. Rx_Byte_DSL_TUNNEL_2 represents a quantity of bytes received by the HG until the t2 moment by using the DSL tunnel. Rx_Byte_DSL_TUNNEL_1 represents a quantity of bytes received by the HG until the t1 moment by using the DSL tunnel.
[0156] In the foregoing formulas, Tx_ByteLTE_TUNNEL is a quantity of bytes sent by the HAAP to the HG by using the LTE tunnel. Tx_Byte_LTE_TUNNEL_2 represents a quantity of bytes sent by the HAAP to the HG until the t2 moment by using the LTE tunnel. Tx_Byte_LTE_TUNNEL_1 represents a quantity of bytes sent by the HAAP to the HG until the t1 moment by using the LTE tunnel.
[0157] Rx_Byte_LTE_TUNNEL is a quantity of bytes received by the HG by using the LTE tunnel. Rx_Byte_LTE_TUNNEL_2 represents a quantity of bytes received by the HG until the t2 moment by using the LTE tunnel. Rx_Byte_LTE_TUNNEL_1 represents a quantity of bytes received by the HG until the t1 moment by using the LTE tunnel.
[0158] In the foregoing formulas, Tx_Byte_DSL_BYPASS is a quantity of bytes transmitted by the HG by using the DSL link. Tx_Byte_DSL_BYPASS_2 represents a quantity of bytes transmitted by the HG until the t2 moment by using the DSL link. Tx_Byte_DSL_BYPASS_1 represents a quantity of bytes transmitted by the HG until the t1 moment by using the DSL link.
[0159] Tx_Packet, Rx_Packet, Tx_Byte_DSL_TUNNEL, Rx_Byte_DSL_TUNNEL, Tx_Byte_LTE_TUNNEL, Rx_Byte_LTE_TUNNEL, and Tx_Byte_DSL_BYPASS are all accumulated values.
[0160] After obtaining the foregoing parameters by means of calculation, the HAAP may determine current statuses of the first tunnel and the second tunnel according to the foregoing parameters, so as to correspondingly adjust a traffic transmission status of the user traffic between the HAAP and the HG.
[0161] It should be understood that sequence numbers of the foregoing processes do not mean an execution sequence. The execution sequence of the processes should be determined according to functions and internal logic of the processes, and should not be construed as any limitation on the implementation processes of the embodiments of the present invention.
[0162] The traffic distribution method in a hybrid access network according to the embodiments of the present invention is described in detail above with reference to FIG. 1 to FIG. 10, and a traffic distribution apparatus in a hybrid access network according to the embodiments of the present invention is described in detail below with reference to FIG. 11 and FIG. 12.
[0163] FIG. 11 shows a traffic distribution apparatus 500 in a hybrid access network according to an embodiment of the present invention. The apparatus 500 includes a sending unit 510, an obtaining unit 520, and a determining unit 530.
[0164] The sending unit 510 is configured to: after a first tunnel is congested when user traffic is transmitted over the first tunnel, transmit probe traffic by using a second tunnel. The probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel.
[0165] The obtaining unit 520 is configured to obtain a status of the first tunnel and the status of the second tunnel.
[0166] The determining unit 530 is configured to determine, according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition.
[0167] The sending unit 510 is configured to: after the determining unit 530 determines that the status of the first tunnel and the status of the second tunnel meet the offloading condition, transmit the user traffic by using the first tunnel and the second tunnel.
[0168] The determining unit 530 is further configured to: after determining that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition, determine whether the status of the first tunnel and the status of the second tunnel meet a backoff condition. The determining unit 530 is further configured to: after determining that the status of the first tunnel and the status of the second tunnel meet the backoff condition, determine whether the first tunnel is congested.
[0169] The sending unit 510 is further configured to: after the determining unit 530 determines that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition, transmit the user traffic by using the first tunnel. The determining unit 530 is further configured to skip performing congestion determining on the first tunnel within preset duration.
[0170] Optionally, the determining unit 530 is further configured to: before determining that the first tunnel is congested when the user traffic is transmitted over the first tunnel, determine, according to a link quality parameter of the first tunnel and a first threshold, whether the first tunnel is congested.
[0171] The determining unit 530 is specifically configured to: if the link quality parameter of the first tunnel is greater than the first threshold, determine that the first tunnel is congested.
[0172] Optionally, the link quality parameter of the first tunnel is a packet loss rate of the first tunnel, and the first threshold is a threshold corresponding to the packet loss rate; or the link quality parameter of the first tunnel is a throughput of the first tunnel, and the first threshold is a threshold corresponding to the throughput; or the link quality parameter of the first tunnel includes a packet loss rate of the first tunnel and a throughput of the first tunnel, the first threshold includes a first subthreshold and a second subthreshold, the first subthreshold is a threshold corresponding to the packet loss rate, and the second subthreshold is a threshold corresponding to the throughput.
[0173] Optionally, the status of the second tunnel includes a throughput of the second tunnel, and the status of the first tunnel includes a throughput of the first tunnel. The determining unit 530 is specifically configured to determine whether a sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a second threshold. The second threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0174] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the second threshold, determine that the status of the first tunnel and the status of the second tunnel meet the offloading condition.
[0175] Optionally, the determining unit 530 is specifically configured to determine whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold. The third threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0176] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0177] The status of the second tunnel further includes a delay of the second tunnel, and the status of the first tunnel further includes a delay of the first tunnel. The determining unit 530 is specifically configured to determine whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a fourth threshold. The fourth threshold is a threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0178] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is less than the fourth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0179] Optionally, the status of the second tunnel includes the throughput of the second tunnel and the delay of the second tunnel, and the status of the first tunnel includes the throughput of the first tunnel and the delay of the first tunnel. The determining unit 530 is specifically configured to determine that the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than or equal to the fourth threshold. The third threshold is the threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel, and the fourth threshold is the threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0180] The status of the second tunnel includes a delay of the second tunnel, and the status of the first tunnel includes a delay of the first tunnel. The determining unit 530 is specifically configured to determine whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a fourth threshold. The fourth threshold is a threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0181] The determining unit 530 is specifically configured to: if the difference between the delay of the second tunnel and the delay of the first tunnel is less than the fourth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the offloading condition.
[0182] Optionally, the status of the second tunnel includes a throughput of the second tunnel, and the status of the first tunnel includes a throughput of the first tunnel. The determining unit 530 is specifically configured to determine whether a sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold. The third threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0183] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0184] Optionally, the determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold and is less than or equal to a second threshold, determine that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition. The second threshold is greater than the third threshold.
[0185] Optionally, the determining unit 530 is further configured to: after the sending unit 510 transmits the user traffic by using the first tunnel and the second tunnel, determine whether the status of the first tunnel and the status of the second tunnel meet an exit condition. The sending unit 510 is further configured to: after the determining unit 530 determines that the status of the first tunnel and the status of the second tunnel meet the exit condition, transmit the user traffic by using the first tunnel. The determining unit 530 is further configured to determine whether the first tunnel is congested.
[0186] Optionally, the status of the first tunnel includes the throughput of the first tunnel and the delay of the first tunnel, the status of the second tunnel includes the throughput of the second tunnel and the delay of the second tunnel, and the exit condition is a fifth threshold and a sixth threshold. The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than the sixth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the exit condition.
[0187] Optionally, the obtaining unit 520 is specifically configured to receive a GRE packet sent by an HG. The GRE packet includes a parameter of the first tunnel and a parameter of the second tunnel. The determining unit 530 is specifically configured to obtain the status of the first tunnel and the status of the second tunnel according to the parameter of the first tunnel and the parameter of the second tunnel that are included in the GRE packet.
[0188] For example, the apparatus 500 may be specifically the hybrid access aggregation point HAAP in the foregoing embodiments. The apparatus 500 may be configured to perform the procedures and / or steps, corresponding to the hybrid access aggregation point HAAP, in the foregoing method embodiments. Details are not described herein again.
[0189] According to the traffic distribution apparatus in a hybrid access network in this embodiment of the present invention, the HAAP offloads the probe traffic to the second tunnel when detecting that the first tunnel is congested, so as to probe the status of the second tunnel. After the status of the first tunnel and the status of the second tunnel meet the offloading condition, the HAAP transmits the user traffic in a hybrid manner by using the first tunnel and the second tunnel. In this way, the status of the second tunnel is probed before offloading is performed, so that a case in which an overall bandwidth for dual tunnel-based traffic transmission is lower than a bandwidth for single tunnel-based traffic transmission can be avoided, thereby improving user experience.
[0190] FIG. 12 shows a traffic distribution apparatus 600 in a hybrid access network according to an embodiment of the present invention. The apparatus 600 includes a communications interface 620, a processor 630, a memory 640, and a communications bus 650. The communications interface 620, the processor 630, and the memory 640 are connected by using the bus system 650. The memory 640 is configured to store an instruction. The traffic distribution apparatus 600 may be disposed on the hybrid access aggregation point HAAP in any one of the embodiments corresponding to FIG. 2 to FIG. 9, and may use the method used by the HAAP in the embodiments corresponding to FIG. 2 to FIG. 9. The traffic distribution apparatus 600 and the traffic distribution apparatus 500 may be a same apparatus.
[0191] The processor 630 reads a program from the memory 640, and performs the following operations according to the instruction corresponding to the program.
[0192] After determining that a first tunnel is congested when user traffic is transmitted over the first tunnel, the processor 630 transmits probe traffic through the communications interface 620 by using a second tunnel. The probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel.
[0193] The processor 630 obtains a status of the first tunnel and the status of the second tunnel.
[0194] The processor 630 determines, according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition.
[0195] After determining that the status of the first tunnel and the status of the second tunnel meet the offloading condition, the processor 630 transmits the user traffic through the communications interface 620 by using the first tunnel and the second tunnel.
[0196] The communications interface 620 may receive and send data and / or information by using the first tunnel and / or the second tunnel.
[0197] Optionally, the processor 630 may further perform, according to the instruction stored in the memory 640, the steps and / or procedures performed by the HAAP in any one of the embodiments corresponding to FIG. 2 to FIG. 9. Details are not described herein again.
[0198] Optionally, the memory 640 may include a read-only memory and a random access memory. A part of the memory may further include a nonvolatile random access memory.
[0199] Specific values of thresholds in the embodiments of the present invention may be set according to a requirement, and are not illustrated herein one by one. In a possible implementation, a first threshold may be set to a first proportion of a bandwidth of a DSL tunnel, the second threshold may be set to a sum of a second proportion of a bandwidth of the DSL tunnel and the second proportion of a bandwidth of an LTE tunnel, and the third threshold may be set to a sum of a third proportion of a bandwidth of the DSL tunnel and a third proportion of a bandwidth of an LTE tunnel. The first proportion, the second proportion, and the third proportion may be set according to a requirement, and are not illustrated herein.
[0200] In the embodiments of the present invention, the processor in the apparatus may be a central processing unit (Central Processing Unit, CPU), or the processor may be another general purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, or the like. The general purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
[0201] In an implementation process, the steps in the foregoing methods may be completed by means of an integrated logic circuit of hardware in the processor or an instruction in a form of software. The steps of the method disclosed with reference to the embodiments of the present invention may be directly performed by a hardware processor, or may be performed by using a combination of hardware in the processor and a software unit. The software unit may be located in a mature storage medium in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory, and the processor executes the instruction in the memory and completes the steps in the methods in combination with hardware of the processor.
[0202] In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiments are merely examples. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.
[0203] The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, that is, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual requirements to achieve the objectives of the solutions in the embodiments of the present invention.
[0204] The term "and / or" in this specification describes only an association relationship for describing associated objects and represents that three relationships may exist. For example, A and / or B may represent the following three cases: Only A exists, both A and B exist, and only B exists. In addition, the character " / " in this specification generally indicates an "or" relationship between the associated objects.
[0205] In addition, the function units in the embodiments of the present invention may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in a form of hardware, or may be implemented in a form of a software function unit.
[0206] When the integrated unit is implemented in the form of a software function unit and sold or used as an independent product, the integrated unit may be stored in a computer readable storage medium. Based on such an understanding, the technical solutions of the present invention essentially, or the part contributing to the prior art, or all or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium and includes several instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of the present invention. The foregoing storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, "ROM" for short), a random access memory (Random Access Memory, "RAM" for short), a magnetic disk, or an optical disc.
[0207] Finally, it should be noted that the foregoing embodiments are merely intended for describing the technical solutions of the present invention, but not for limiting the present invention. Although the present invention is described in detail with reference to the foregoing embodiments, persons of ordinary skill in the art should understand that they may still make modifications to the technical solutions described in the foregoing embodiments or make equivalent replacements to some or all technical features thereof, without departing from the scope of the technical solutions of the embodiments of the present invention which is defined in the claims.
[0208] Optionally, the determining unit 530 is further configured to: before determining that the first tunnel is congested when the user traffic is transmitted over the first tunnel, determine, according to a link quality parameter of the first tunnel and a first threshold, whether the first tunnel is congested.
[0209] The determining unit 530 is specifically configured to: if the link quality parameter of the first tunnel is greater than the first threshold, determine that the first tunnel is congested.
[0210] Optionally, the link quality parameter of the first tunnel is a packet loss rate of the first tunnel, and the first threshold is a threshold corresponding to the packet loss rate; or the link quality parameter of the first tunnel is a throughput of the first tunnel, and the first threshold is a threshold corresponding to the throughput; or the link quality parameter of the first tunnel includes a packet loss rate of the first tunnel and a throughput of the first tunnel, the first threshold includes a first subthreshold and a second subthreshold, the first subthreshold is a threshold corresponding to the packet loss rate, and the second subthreshold is a threshold corresponding to the throughput.
[0211] Optionally, the status of the second tunnel includes a throughput of the second tunnel, and the status of the first tunnel includes a throughput of the first tunnel. The determining unit 530 is specifically configured to determine whether a sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than a second threshold. The second threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0212] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than the second threshold, determine that the status of the first tunnel and the status of the second tunnel meet the offloading condition.
[0213] Optionally, the determining unit 530 is specifically configured to determine whether the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold. The third threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0214] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0215] Optionally, the status of the second tunnel further includes a delay of the second tunnel, and the status of the first tunnel further includes a delay of the first tunnel. The determining unit 530 is specifically configured to determine whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a fourth threshold. The fourth threshold is a threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0216] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is less than the fourth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0217] Optionally, the status of the second tunnel includes the throughput of the second tunnel and the delay of the second tunnel, and the status of the first tunnel includes the throughput of the first tunnel and the delay of the first tunnel. The determining unit 530 is specifically configured to determine that the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than or equal to the fourth threshold. The third threshold is the threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel, and the fourth threshold is the threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0218] Optionally, the status of the second tunnel includes a delay of the second tunnel, and the status of the first tunnel includes a delay of the first tunnel. The determining unit 530 is specifically configured to determine whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a fourth threshold. The fourth threshold is a threshold corresponding to the difference between the delay of the second tunnel and the delay of the first tunnel.
[0219] The determining unit 530 is specifically configured to: if the difference between the delay of the second tunnel and the delay of the first tunnel is less than the fourth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the offloading condition.
[0220] Optionally, the status of the second tunnel includes a throughput of the second tunnel, and the status of the first tunnel includes a throughput of the first tunnel. The determining unit 530 is specifically configured to determine whether a sum of the throughput of the first tunnel and the throughput of the second tunnel is less than a third threshold. The third threshold is a threshold corresponding to the sum of the throughput of the first tunnel and the throughput of the second tunnel.
[0221] The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than the third threshold, determine that the status of the first tunnel and the status of the second tunnel meet the backoff condition.
[0222] Optionally, the determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is greater than or equal to the third threshold and is less than or equal to a second threshold, determine that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition. The second threshold is greater than the third threshold.
[0223] Optionally, the determining unit 530 is further configured to: after the sending unit 510 transmits the user traffic by using the first tunnel and the second tunnel, determine whether the status of the first tunnel and the status of the second tunnel meet an exit condition. The sending unit 510 is further configured to: after the determining unit 530 determines that the status of the first tunnel and the status of the second tunnel meet the exit condition, transmit the user traffic by using the first tunnel. The determining unit 530 is further configured to determine whether the first tunnel is congested.
[0224] Optionally, the status of the first tunnel includes the throughput of the first tunnel and the delay of the first tunnel, the status of the second tunnel includes the throughput of the second tunnel and the delay of the second tunnel, and the exit condition is a fifth threshold and a sixth threshold. The determining unit 530 is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the fifth threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than the sixth threshold, determine that the status of the first tunnel and the status of the second tunnel meet the exit condition.
[0225] Optionally, the obtaining unit 520 is specifically configured to receive a GRE packet sent by an HG. The GRE packet includes a parameter of the first tunnel and a parameter of the second tunnel. The determining unit 530 is specifically configured to obtain the status of the first tunnel and the status of the second tunnel according to the parameter of the first tunnel and the parameter of the second tunnel that are included in the GRE packet.
[0226] For example, the apparatus 500 may be specifically the hybrid access aggregation point HAAP in the foregoing embodiments. The apparatus 500 may be configured to perform the procedures and / or steps, corresponding to the hybrid access aggregation point HAAP, in the foregoing method embodiments. Details are not described herein again.
[0227] According to the traffic distribution apparatus in a hybrid access network in this embodiment of the present invention, the HAAP offloads the probe traffic to the second tunnel when detecting that the first tunnel is congested, so as to probe the status of the second tunnel. After the status of the first tunnel and the status of the second tunnel meet the offloading condition, the HAAP transmits the user traffic in a hybrid manner by using the first tunnel and the second tunnel. In this way, the status of the second tunnel is probed before offloading is performed, so that a case in which an overall bandwidth for dual tunnel-based traffic transmission is lower than a bandwidth for single tunnel-based traffic transmission can be avoided, thereby improving user experience.
[0228] FIG. 12 shows a traffic distribution apparatus 600 in a hybrid access network according to an embodiment of the present invention. The apparatus 600 includes a communications interface 620, a processor 630, a memory 640, and a communications bus 650. The communications interface 620, the processor 630, and the memory 640 are connected by using the bus system 650. The memory 640 is configured to store an instruction. The traffic distribution apparatus 600 may be disposed on the hybrid access aggregation point HAAP in any one of the embodiments corresponding to FIG. 2 to FIG. 9, and may use the method used by the HAAP in the embodiments corresponding to FIG. 2 to FIG. 9. The traffic distribution apparatus 600 and the traffic distribution apparatus 500 may be a same apparatus.
[0229] The processor 630 reads a program from the memory 640, and performs the following operations according to the instruction corresponding to the program.
[0230] After determining that a first tunnel is congested when user traffic is transmitted over the first tunnel, the processor 630 transmits probe traffic through the communications interface 620 by using a second tunnel. The probe traffic is traffic, in the user traffic, used to obtain a status of the second tunnel.
[0231] The processor 630 obtains a status of the first tunnel and the status of the second tunnel.
[0232] The processor 630 determines, according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition.
[0233] After determining that the status of the first tunnel and the status of the second tunnel meet the offloading condition, the processor 630 transmits the user traffic through the communications interface 620 by using the first tunnel and the second tunnel.
[0234] The communications interface 620 may receive and send data and / or information by using the first tunnel and / or the second tunnel.
[0235] Optionally, the processor 630 may further perform, according to the instruction stored in the memory 640, the steps and / or procedures performed by the HAAP in any one of the embodiments corresponding to FIG. 2 to FIG. 9. Details are not described herein again.
[0236] Optionally, the memory 640 may include a read-only memory and a random access memory. A part of the memory may further include a nonvolatile random access memory.
[0237] Specific values of thresholds in the embodiments of the present invention may be set according to a requirement, and are not illustrated herein one by one. In a possible implementation, a first threshold may be set to a first proportion of a bandwidth of a DSL tunnel, the second threshold may be set to a sum of a second proportion of a bandwidth of the DSL tunnel and the second proportion of a bandwidth of an LTE tunnel, and the third threshold may be set to a sum of a third proportion of a bandwidth of the DSL tunnel and a third proportion of a bandwidth of an LTE tunnel. The first proportion, the second proportion, and the third proportion may be set according to a requirement, and are not illustrated herein.
[0238] In the embodiments of the present invention, the processor in the apparatus may be a central processing unit (Central Processing Unit, CPU), or the processor may be another general purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or another programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, or the like. The general purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
[0239] In an implementation process, the steps in the foregoing methods may be completed by means of an integrated logic circuit of hardware in the processor or an instruction in a form of software. The steps of the method disclosed with reference to the embodiments of the present invention may be directly performed by a hardware processor, or may be performed by using a combination of hardware in the processor and a software unit. The software unit may be located in a mature storage medium in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory, and the processor executes the instruction in the memory and completes the steps in the methods in combination with hardware of the processor.
[0240] In the several embodiments provided in this application, it should be understood that the disclosed system, apparatus, and method may be implemented in other manners. For example, the described apparatus embodiments are merely examples. For example, the unit division is merely logical function division and may be other division in actual implementation. For example, a plurality of units or components may be combined or integrated into another system, or some features may be ignored or not performed. In addition, the displayed or discussed mutual couplings or direct couplings or communication connections may be implemented through some interfaces. The indirect couplings or communication connections between the apparatuses or units may be implemented in electronic, mechanical, or other forms.
[0241] The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, that is, may be located in one position, or may be distributed on a plurality of network units. Some or all of the units may be selected according to actual requirements to achieve the objectives of the solutions in the embodiments of the present invention.
[0242] The term "and / or" in this specification describes only an association relationship for describing associated objects and represents that three relationships may exist. For example, A and / or B may represent the following three cases: Only A exists, both A and B exist, and only B exists. In addition, the character " / " in this specification generally indicates an "or" relationship between the associated objects.
[0243] In addition, the function units in the embodiments of the present invention may be integrated into one processing unit, or each of the units may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in a form of hardware, or may be implemented in a form of a software function unit.
[0244] When the integrated unit is implemented in the form of a software function unit and sold or used as an independent product, the integrated unit may be stored in a computer readable storage medium. Based on such an understanding, the technical solutions of the present invention essentially, or the part contributing to the prior art, or all or some of the technical solutions may be implemented in a form of a software product. The computer software product is stored in a storage medium and includes several instructions for instructing a computer device (which may be a personal computer, a server, a network device, or the like) to perform all or some of the steps of the methods described in the embodiments of the present invention. The foregoing storage medium includes any medium that can store program code, such as a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, "ROM" for short), a random access memory (Random Access Memory, "RAM" for short), a magnetic disk, or an optical disc.
[0245] Finally, it should be noted that the foregoing embodiments are merely intended for describing the technical solutions of the present invention, but not for limiting the present invention. Although the present invention is described in detail with reference to the foregoing embodiments, persons of ordinary skill in the art should understand that they may still make modifications to the technical solutions described in the foregoing embodiments or make equivalent replacements to some or all technical features thereof, without departing from the scope of the technical solutions of the embodiments of the present invention.
Claims
1. A traffic distribution apparatus in a hybrid access network, the hybrid access network comprises a first tunnel and a second tunnel, the first tunnel is a digital subscriber line, DSL, tunnel, and the second tunnel is a Long Term Evolution, LTE, tunnel, wherein the apparatus comprises a sending unit, an obtaining unit, and a determining unit, wherein the sending unit (510) is configured to: after the first tunnel is congested when user traffic is transmitted over the first tunnel, transmit probe traffic by using the second tunnel, wherein the probe traffic is part of the user traffic offloaded from the first tunnel to the second tunnel, and the probe traffic is used to obtain a status of the second tunnel; the obtaining unit (520) is configured to obtain a status of the first tunnel and the status of the second tunnel; the determining unit (530) is configured to determine, according to the status of the first tunnel and the status of the second tunnel after offloading the probe traffic from the first tunnel to the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition; and the sending unit (510) is further configured to: after the determining unit determines that the status of the first tunnel and the status of the second tunnel meet the offloading condition, offload the user traffic to the second tunnel, and transmit the user traffic by using the first tunnel and the second tunnel; wherein the status of the second tunnel comprises a delay of the second tunnel, and the status of the first tunnel comprises a delay of the first tunnel; and the determining unit is specifically configured to: determine whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a threshold; if the difference between the delay of the second tunnel and the delay of the first tunnel is less than the threshold, determine that the status of the first tunnel and the status of the second tunnel meet the offloading condition, wherein the determining unit (530) is further configured to: after determining that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition, determine whether the status of the first tunnel and the status of the second tunnel after offloading the probe traffic from the first tunnel to the second tunnel meet a backoff condition; and after determining that the status of the first tunnel and the status of the second tunnel meet the backoff condition, determine whether the first tunnel is congested after offloading the probe traffic from the first tunnel to the second tunnel, wherein the sending unit (510) is further configured to: after the determining unit (530) determines that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition, transmit the user traffic by using the first tunnel; and the determining unit is further configured to: skip performing congestion determining on the first tunnel within preset duration.
2. The apparatus according to claim 1, wherein the determining unit (530) is further configured to: after the sending unit transmits the user traffic by using the first tunnel and the second tunnel, determine whether the status of the first tunnel and the status of the second tunnel meet an exit condition; the sending unit is further configured to: after the determining unit (530) determines that the status of the first tunnel and the status of the second tunnel meet the exit condition, transmit the user traffic by using the first tunnel; and the determining unit (530) is further configured to: determine whether the first tunnel is congested.
3. The apparatus according to claim 2, wherein the status of the first tunnel comprises the throughput of the first tunnel and the delay of the first tunnel, the status of the second tunnel comprises the throughput of the second tunnel and the delay of the second tunnel, and the exit condition is a second threshold and a third threshold; and the determining unit is specifically configured to: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the second threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than the third threshold, determine that the status of the first tunnel and the status of the second tunnel meet the exit condition.
4. A traffic distribution method in a hybrid access network, the hybrid access network comprises a first tunnel and a second tunnel, the first tunnel is a digital subscriber line, DSL, tunnel, and the second tunnel is a Long Term Evolution, LTE, tunnel, wherein the method comprises: after determining that a first tunnel is congested when user traffic is transmitted over the first tunnel, transmitting (S210), by a traffic distribution apparatus, probe traffic by using a second tunnel, wherein the probe traffic is part of the user traffic offloaded from the first tunnel to the second tunnel, and the probe traffic is, and the probe traffic is used to obtain a status of the second tunnel; obtaining (S220), by the traffic distribution apparatus, a status of the first tunnel and the status of the second tunnel, the status of the second tunnel comprises a delay of the second tunnel, and the status of the first tunnel comprises a delay of the first tunnel; determining (S230), by the traffic distribution apparatus according to the status of the first tunnel and the status of the second tunnel after offloading the probe traffic from the first tunnel to the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition; and after determining that the status of the first tunnel and the status of the second tunnel meet the offloading condition, offload the user traffic to the second tunnel, and transmitting (S240), by the traffic distribution apparatus, the user traffic by using the first tunnel and the second tunnel; the determining (S230), by the traffic distribution apparatus according to the status of the first tunnel and the status of the second tunnel, whether the status of the first tunnel and the status of the second tunnel meet an offloading condition comprises: determining whether a difference between the delay of the second tunnel and the delay of the first tunnel is less than a threshold; if the difference between the delay of the second tunnel and the delay of the first tunnel is less than the threshold, determining that the status of the first tunnel and the status of the second tunnel meet the offloading condition, wherein the method further comprises: after the traffic distribution apparatus determines that the status of the first tunnel and the status of the second tunnel do not meet the offloading condition, determining, by the traffic distribution apparatus, whether the status of the first tunnel and the status of the second tunnel after offloading the probe traffic from the first tunnel to the second tunnel meet a backoff condition; and after determining that the status of the first tunnel and the status of the second tunnel meet the backoff condition, determine whether the first tunnel is congested after offloading the probe traffic from the first tunnel to the second tunnel, and after the traffic distribution apparatus determines that the status of the first tunnel and the status of the second tunnel do not meet the backoff condition, transmitting, by the traffic distribution apparatus, the user traffic by using the first tunnel, and skipping performing congestion determining on the first tunnel within preset duration.
5. The method according to claim 4, wherein after the transmitting the user traffic by using the first tunnel and the second tunnel, the method further comprises: determining, by the traffic distribution apparatus, whether the status of the first tunnel and the status of the second tunnel meet an exit condition; and after the traffic distribution apparatus determines that the status of the first tunnel and the status of the second tunnel meet the exit condition, transmitting, by the traffic distribution apparatus, the user traffic by using the first tunnel, and determining whether the first tunnel is congested.
6. The method according to claim 5, wherein the status of the first tunnel comprises the throughput of the first tunnel and the delay of the first tunnel, the status of the second tunnel comprises the throughput of the second tunnel and the delay of the second tunnel, and the exit condition is a second threshold and a third threshold; and the determining, by the traffic distribution apparatus, that the status of the first tunnel and the status of the second tunnel meet the exit condition comprises: if the sum of the throughput of the first tunnel and the throughput of the second tunnel is less than or equal to the second threshold, and the difference between the delay of the second tunnel and the delay of the first tunnel is greater than the third threshold, determining, by the traffic distribution apparatus, that the status of the first tunnel and the status of the second tunnel meet the exit condition.