Service offloading method and routing device
By identifying the service type of the data flow, the routing device sends low-latency services to the wired WAN and non-low-latency services to both the wired and wireless WANs. This solves the problem of low-latency services being assigned to the wireless network, improving user experience and bandwidth.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2025-09-03
- Publication Date
- 2026-05-15
AI Technical Summary
When routing data streams, existing routing devices sometimes allocate low-latency services to wireless networks with poor network stability, impacting users' internet experience.
By identifying the service type of the data flow, the routing device directly sends low-latency service types to the wired WAN, while non-low-latency service types are diverted to the wired and wireless WANs, ensuring that low-latency services are transmitted over the wired network.
This ensures a better user experience for low-latency services and improves users' internet browsing experience and bandwidth.
Smart Images

Figure CN2025118839_15052026_PF_FP_ABST
Abstract
Description
A service offloading method and routing device
[0001] Cross-reference to related applications
[0002] This application claims priority to Chinese Patent Application No. 202411581901.4, filed on November 6, 2024, entitled "A Service Diversion Method and Routing Device", the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application relates to the field of communication technology, and in particular to a service offloading method and routing device. Background Technology
[0004] As people's demands for internet access experience increase, in order to reduce costs, operators often adopt the method of overlaying wireless networks on top of wired networks to improve the network bandwidth of fixed-line broadband users and ensure their internet access experience. Currently, operators provide users with routing equipment that supports both wired and wireless uplink (e.g., customer premises equipment, CPE) to achieve the overlay of wireless networks on top of wired networks.
[0005] However, since the routing device distributes the data stream of a service to the wired and wireless networks according to the default distribution ratio after receiving the data stream, some low-latency services are assigned to the wireless network with poor network stability, thus affecting the user's Internet experience. Summary of the Invention
[0006] This application provides a service offloading method and routing device to ensure users' internet experience.
[0007] The first aspect provides a service offloading method applied to a routing device. This routing device connects to the internet via a wired WAN, and can also connect via a wireless WAN. The method includes:
[0008] The routing device acquires the data stream generated by the first application and determines the service type of the data stream. When the service type is a low-latency service type, the routing device can send the data stream to the wired WAN for transmission over the wired WAN. When the service type is a non-low-latency service type, the routing device can split the data stream to the wired WAN and the wireless WAN for transmission over the wired WAN and the wireless WAN.
[0009] In this method, the routing device can determine the service type of the data stream before transmitting the data stream, distinguishing between low-latency services and non-low-latency services. This allows low-latency services to be sent to the wired WAN, while non-low-latency services are diverted to both the wired WAN and the wireless WAN. This avoids sending low-latency data streams to the wireless WAN when a wireless network is overlaid on a wired network, thus ensuring the user experience of low-latency services and the overall internet experience.
[0010] In one possible design, the routing device can acquire the data stream while the routing device is running the first application; or, the routing device can acquire the data stream from the first device while the first device is running the first application.
[0011] In one possible design, when the data stream is the data stream of the first device and the data stream is a preceding stream, the routing device can identify the service of the data stream and determine the service type of the data stream; wherein, the preceding stream includes data packets generated when the first application starts; when the data stream is the data stream of the first device and the data stream is a core stream, the routing device can determine the service type of the data stream based on the identifier of the first device; wherein, the core stream includes data packets generated during the running process after the first application starts.
[0012] Through this design, the routing device can identify the service type of the preceding flow of the first device and determine the service type of the preceding flow. In this way, the routing device can then determine the service type of the core flow of the first device based on the identifier of the first device with the determined service type of the preceding flow. Thus, the data flow transmission path of the first device can be determined based on the service type of the preceding flow, ensuring that the transmission path of the data flow remains unchanged during the transmission process.
[0013] In one possible design, when the mapping relationship between the identifier of the storage device and the low-latency service type includes the identifier of the first device, the routing device can determine that the service type of the data flow is a low-latency service type; when the mapping relationship between the identifier of the storage device and the low-latency service type does not include the identifier of the first device, the routing device can determine that the service type of the data flow is a non-low-latency service type.
[0014] With this design, the routing device can determine the service type of the data stream subsequently received from the first device by determining whether the first device's identifier is included in the mapping relationship between the stored device identifier and the low-latency service type. This eliminates the need to identify the service type of the subsequently received core stream, thus ensuring that the transmission path of the data stream remains unchanged during transmission.
[0015] In one possible design, when the data stream is a preceding stream and the service type of the data stream is a low-latency service type, the routing device can also save the identifier of the first device into the mapping relationship between the device identifier and the low-latency service type.
[0016] With this design, the routing device can determine that the service type of the core stream of the first device received subsequently is a low-latency service type based on the first device's identifier stored in the mapping relationship between device identifiers and low-latency service types, thereby ensuring that the transmission path of the data stream remains unchanged during transmission.
[0017] In one possible design, when the data flow is a core flow and the service type of the data flow is a low-latency service type, the routing device can also perform traffic statistics on the data flow to determine the number of core flow data packets in the data flow within at least one first duration closest to the current time. When the number of core flow data packets in the data flow within at least one first duration closest to the current time is less than or equal to a preset value, the transmission status of the data flow is determined to be the end of transmission. The routing device deletes the identifier of the first device from the stored mapping relationship between device identifiers and low-latency service types.
[0018] Through this design, when the routing device determines that the service type of the core flow is a low-latency service type, it can also perform traffic statistics on the core flow, determine the end time of the core flow transmission, and delete the identifier of the first device from the stored mapping relationship between device identifiers and low-latency service types. This allows the subsequent data flow of the first device to be distributed according to the distribution ratio, thereby ensuring the user's experience with low-latency services, increasing user bandwidth, and ultimately improving the user's internet experience.
[0019] In one possible design, when the service type is a low-latency service type, the routing device can add a first tag to each of the multiple data packets contained in the data stream to obtain multiple first data packets; the first tag is used to indicate that the data packets are transmitted through the wired WAN; the routing device sends the multiple first data packets to the wired WAN.
[0020] With this design, the routing device can add a first tag to multiple data packets in a data stream that is a low-latency service type, so as to send the low-latency data stream to the wired WAN and avoid transmitting the low-latency data stream on the wireless WAN, thereby ensuring the user's experience of low-latency services.
[0021] In one possible design, when the service type is not a low-latency service type, the routing device can send multiple second data packets contained in the data stream to the wired WAN and multiple third data packets contained in the data stream to the wireless WAN; wherein, the ratio of the number of multiple second data packets to the number of multiple third data packets is the traffic splitting ratio between the wired WAN and the wireless WAN.
[0022] Optionally, the second data packet contains the first tag, and the third data packet contains the second tag, which is used to indicate that the data packet is transmitted over the wireless WAN.
[0023] This design allows the routing device to distribute non-low-latency service data streams to the wired WAN and wireless WAN according to a set ratio, thereby increasing user bandwidth.
[0024] A second aspect provides a routing device including one or more processors and one or more memories. The one or more memories are used to store one or more programs, and the one or more processors are used to execute the one or more programs stored in the one or more memories, such that the device performs the methods described in the first aspect and any possible design of the first aspect.
[0025] The third aspect provides a readable storage medium (also referred to as a computer-readable storage medium) storing a program or instructions that, when executed by a routing device, perform the methods described in the first aspect and any possible design of the first aspect.
[0026] The fourth aspect provides a chip coupled to a memory in a device, such that the chip, during operation, calls one or more programs stored in the memory to implement the methods described in the first aspect and any possible design of the first aspect.
[0027] The fifth aspect provides a program product (also referred to as a computer program product), the program product comprising a program or instructions, which, when executed by a routing device, perform the methods described in the first aspect and any possible design of the first aspect. Attached Figure Description
[0028] Figure 1 is a schematic diagram of the architecture of a communication system;
[0029] Figure 2 is a schematic diagram of the hardware structure of a possible device provided by example in this application;
[0030] Figure 3 is a flowchart illustrating a business diversion method provided in this application;
[0031] Figure 4 is a schematic diagram of a business diversion system provided in this application;
[0032] Figure 5 is a schematic diagram of a UX interface provided in this application;
[0033] Figure 6 is a flowchart illustrating a business diversion use case provided in this application;
[0034] Figure 7 is a flowchart illustrating another business diversion use case provided in this application;
[0035] Figure 8 is a flowchart illustrating another business diversion use case provided in this application;
[0036] Figure 9 is a flowchart illustrating another business diversion use case provided in this application. Detailed Implementation
[0037] The technical solutions of the embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0038] First, the concepts related to the embodiments of this application will be explained.
[0039] (1) Wired uplink refers to the process of uploading data from routing equipment (such as customer premise equipment, CPE) to the Internet via physical cables (such as optical fibers, copper wires, etc.). Wired uplink is characterized by high transmission speed and stability, making it suitable for scenarios requiring the uploading of large amounts of data. In this embodiment, wired uplink refers to the process of uploading data from routing equipment to the Internet via a wired wide area network (WAN). The wired WAN can also be referred to as a wired network, fixed network, broadband network, etc., and is not limited thereto.
[0040] (2) Wireless uplink refers to the process of uploading data from a routing device (such as a CPE) to the Internet via wireless signals (such as wireless fidelity (Wi-Fi) networks, cellular networks, etc.). Wireless uplink is convenient and fast, requiring no physical cable connection, but its transmission speed and stability may be affected by factors such as signal strength, interference, and the number of users accessing the cell, resulting in relatively low transmission speed and stability. In this embodiment, wireless uplink refers to the process of uploading data from a routing device to the Internet via a wireless WAN. The wireless WAN can also be referred to as a wireless network, mobile network, etc., and is not limited thereto.
[0041] (3) Routing devices refer to devices that support both wired and wireless uplink, such as devices with fixed-line and cellular communication capabilities. That is, routing devices can access the Internet via a wired WAN and also via a wireless WAN. For example, a routing device can be a CPE or other device that supports both wired and wireless uplink. A CPE can contain two uplink WAN interfaces, one for connecting to an external wired WAN and one for connecting to an external wireless WAN, enabling the CPE to access the Internet and provide network services to users.
[0042] In this embodiment, the routing device can receive data signals from devices connected to it and convert them into mobile signals or wired broadband signals for transmission to a wireless WAN or wired WAN. Additionally, the routing device can also convert its own generated data signals into mobile signals or wired broadband signals for transmission to a wireless WAN or wired WAN.
[0043] (4) An optical network terminal (ONT) is a device used in optical fiber communication networks. Its main function is to convert optical signals into data signals for use by user equipment (such as computers, routers, etc.). At the same time, it can also convert data signals from user equipment into optical signals for transmission in the optical fiber network.
[0044] (5) An optical line terminal (OLT) is a central office device in a passive optical network (PON) system. It is connected to multiple ONTs (Optical Network Terminals) via optical fibers to provide information exchange between the network side and the user side. The OLT is used to convert optical signals into electrical signals for transmission, or to convert electrical signals into optical signals for transmission.
[0045] In this application embodiment, "at least one" refers to one or more, and "more than one" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b, and c can be single or multiple.
[0046] Unless otherwise stated, the ordinal numbers such as "first" and "second" mentioned in the embodiments of this application are used to distinguish multiple objects and are not used to limit the size, content, order, timing, priority, or importance of the multiple objects. For example, "first file" and "second file" are only used to distinguish different files and do not indicate that the two files are different in size, content, priority, or importance.
[0047] The embodiments of this application will now be described in detail with reference to the accompanying drawings.
[0048] Figure 1 is a schematic diagram of the architecture of a communication system to which the method provided in this application is applicable. Specifically, the communication system includes device 10, routing device 20, wired WAN 30, wireless WAN 40, Internet 50, and server 60. For example, as shown in Figure 1, the wired WAN 30 can be an optical fiber network, including at least the following devices: optical network terminal (ONT) 31, optical line terminal (OLT) 32, and gateway 33. The wireless WAN 40 includes at least the following devices: base station 41, serving gateway (SGW) / session management function (SMF) 42, and personal navigation device gateway (P-GW) / user plane function (UPF) 43.
[0049] Device 10 includes multiple devices, and server 60 includes multiple servers. Device 10 and router 20 form a local network and can connect to the Internet 50 via wired WAN and wireless WAN. That is, device 10 accesses the Internet through router 20, connecting to ONT 31 and base station 41. For example, device 10 can connect to the Wi-Fi provided by router 20, and device 10 and router 20 communicate via Wi-Fi. Alternatively, device 10 can also communicate with router 20 via a wired connection.
[0050] In some embodiments, each device in device 10 carries multiple applications that require network services, and multiple servers in server 60 can provide the business data required for the operation of each application. That is, each device in device 10 carries multiple applications that need to access the internet, such as games, live streaming, video, and chat applications. For example, when the first device in device 10 runs the first application, it needs to send a data stream generated during the operation of the first application to the server corresponding to the first application in server 60 to obtain the required business data. Here, the first application can be any one of the multiple applications. The data stream contains a destination Internet Protocol (IP) address, which is the IP address of the server corresponding to the first application. For example, during the operation of the first application, the first application needs to interact with the server corresponding to the first application in server 60 to meet the user's business needs. That is, during the operation of the first application, the first device needs to send a data stream to the server corresponding to the first application in server 60.
[0051] During the transmission of a data stream from the first device in device 10 to the server corresponding to the first application in server 60, the first device can send the data stream generated during the operation of the first application to the routing device 20, which then distributes the data stream to the wired WAN and wireless WAN. The data stream is then transmitted to the Internet 50 via the wired WAN and wireless WAN. Upon receiving the data stream, the Internet 50 can send it to the corresponding server 60 based on its destination IP address. In this way, the routing device 20 can distribute the data stream generated during the operation of the first application to the wired WAN and wireless WAN when a user uses the services provided by the first application in the first device, thus overlaying a wireless network on top of the wired network, thereby increasing user bandwidth and ensuring a better internet experience. In this embodiment, the user can be a fixed-line broadband user.
[0052] However, in the existing technology, the routing device 20 distributes the data stream to the wired WAN and the wireless WAN according to the default traffic splitting ratio. This causes some data streams that require stable network performance (such as low-latency services) to be assigned to the wireless WAN, which has poor network stability, thus affecting the user's internet experience.
[0053] Therefore, embodiments of this application provide a service offloading method and a routing device. In this method, the routing device supports both wired uplink and wireless uplink; that is, the routing device accesses the Internet via a wired WAN and can also access the Internet via a wireless WAN. After obtaining the data stream generated by the first application, the routing device can determine the service type of the data stream; wherein, the service type includes low-latency service types and non-low-latency service types. When the service type of the data stream is a low-latency service type, the routing device can send the data stream to the wired WAN for transmission via the wired WAN. When the service type of the data stream is a non-low-latency service type, the routing device can also offload the data stream to both the wired WAN and the wireless WAN for transmission via both. In this way, before routing data streams, the routing device needs to determine the service type of the data streams, distinguish between low-latency service types and non-low-latency service types, and send low-latency service types of data streams to the wired WAN, while routing non-low-latency service types of data streams to the wired WAN and wireless WAN. This can avoid the situation where low-latency services are assigned to the wireless WAN when a wireless network is superimposed on a wired network, thereby ensuring the user's experience with low-latency services and thus guaranteeing the user's internet experience.
[0054] This application embodiment can be applied to various routing devices that support both wired and wireless uplink. As shown in Figure 1, the routing device is connected to both a wired WAN and a wireless WAN. The routing device can access the Internet via both a wired and wireless WAN.
[0055] Figure 2 shows a schematic diagram of a possible device hardware structure. The device 100 can be the routing device 20 in Figure 1. As shown in Figure 2, the device 100 may include a processor 110, a memory 120, a local area network (LAN) interface 130, a WAN interface 140, a subscriber identification module (SIM) card interface 150, a communication module 160, buttons 170, etc.
[0056] Processor 110 may include one or more processing units. These processing units may be independent devices or integrated within one or more processors. The controller may serve as the nerve center and command center of device 100. The controller can generate operation control signals based on instruction opcodes and timing signals to control instruction fetching and execution. Processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in processor 110 is a cache memory. This memory can store instructions or data that processor 110 has recently used or is recurring. If processor 110 needs to reuse an instruction or data, it can directly retrieve it from the memory. This avoids repeated accesses, reduces processor 110's waiting time, and thus improves system efficiency.
[0057] The memory 120 can be used to store program code, which includes instructions. The processor 110 executes various functional applications and data processing of the device 100 by running the instructions stored in the memory 120. The memory 120 may include a program storage area and a data storage area. The program storage area may store the operating system and software code for at least one application program. The data storage area may store data generated during the use of the device 100. Furthermore, the memory 120 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory, etc.
[0058] LAN interface 130 and WAN interface 140 are used to connect with the LAN and WAN interfaces of other devices to enable information transmission between devices. It should be understood that in this embodiment, the LAN interface includes at least one, and the WAN interface may include multiple. For example, as shown in Figure 2, WAN interface 140 includes WAN interface 140A and WAN interface 140B. WAN interface 140A is used to connect to a wired WAN, and WAN interface 140B is used to connect to a wireless WAN.
[0059] The SIM card interface 150 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 150 to achieve contact and separation with the device 100. As a possible implementation, the device 100 can also use an eSIM, i.e., an embedded SIM card. The eSIM card can be embedded in the device 100 and cannot be separated from it. That is, in this embodiment, the device 100 can also achieve the function of inserting a SIM card into the SIM card interface by activating services through an eSIM card.
[0060] The communication module 160 can provide solutions for wireless communication applications on the device 100, including wireless local area networks (WLAN) (such as Wi-Fi networks) and Bluetooth (BT). The communication module 160 can be one or more devices integrating at least one communication processing module.
[0061] Button 170 can be a mechanical button or a touch button. For example, button 170 could be a reset button.
[0062] In this embodiment, the processor 110 can acquire the data stream generated by the first application and determine the service type of the data stream. When the service type is a low-latency service type, the processor 110 can send the data stream to the wired WAN for transmission over the wired WAN; when the service type is not a low-latency service type, the processor 110 can also split the data stream to the wired WAN and the wireless WAN for transmission over the wired WAN and the wireless WAN.
[0063] It is understood that the components shown in Figure 2 do not constitute a specific limitation on device 100. Device 100 may also include more or fewer components than shown, or combine some components, or split some components, or have different component arrangements. In the following embodiments, device 100 shown in Figure 2 is used as an example for description.
[0064] To facilitate understanding of the service offloading method provided in this application, the following describes the service offloading method applied to a communication system consisting of a routing device, a device, a wired WAN, a wireless WAN, the Internet, and a server, with specific embodiments. The communication system can be the one shown in Figure 1. In this embodiment, the routing device can be the routing device 20 shown in Figure 1, supporting both wired and wireless uplink. That is, the routing device can access the Internet via a wired WAN, and it can also access the Internet via a wireless WAN. For example, when the routing device is a CPE, it can include at least two uplink WAN ports, one for connecting to a wired WAN and the other for connecting to a wireless WAN. For ease of explanation, optional steps are indicated by dashed lines in the accompanying drawings corresponding to the various embodiments of this application.
[0065] In some embodiments, a routing device can connect to one or more devices to provide network services to them. These devices may have multiple applications that require internet access. The routing device may also have multiple applications that require internet access installed. The routing device can forward data streams from the one or more devices to a wired WAN and / or a wireless WAN to transmit the data streams from the one or more devices to the internet via the wired WAN and / or wireless WAN. The data streams from the one or more devices may be data streams generated by the applications installed on the one or more devices during runtime. Additionally, the routing device can also send its own data streams to a wired WAN and / or a wireless WAN to transmit the data streams from the routing device to the internet via the wired WAN and / or wireless WAN. The data streams from the routing device may be data streams generated by the applications installed on the routing device.
[0066] After acquiring a data stream, the routing device can perform traffic splitting on the data stream and transmit it to the Internet via a wired WAN and / or wireless WAN. For example, as shown in Figure 3, the device can perform traffic splitting on the data stream through the following steps.
[0067] S301: The routing device obtains the data stream generated by the first application.
[0068] The data stream refers to a sequence of ordered byte data with a start and end point that is continuously generated and output by the first application during its operation. The data stream may include input streams read by the first application from external data sources (such as keyboard, files, or networks) and output streams output by the first application to external sources. In this embodiment, the data stream may be transmitted using either the Transmission Control Protocol (TCP) or the User Datagram Protocol (UDP).
[0069] In this embodiment, the data flow can be a data flow from a routing device or a data flow from a first device. The first device can be any one of one or more devices. The data flow can be divided into a presequence flow (PSF) and a core flow (CF). The presequence flow contains data packets generated when the first application starts. For example, the presequence flow can be the data flow generated when the first application is initially opened. The core flow contains data packets generated during the running process of the first application after it starts. For example, the core flow can be the data flow generated during the running process of the first application after it starts. The core flow is the data flow that the user needs to protect in this embodiment.
[0070] As an example, while the routing device is running a first application, it can acquire data streams. In this case, the first application is any one of one or more applications running on the routing device. For instance, the routing device can respond to a user's action on the first application, run the first application, and acquire the data streams generated during the application's execution. The user's action on the first application could be launching the application or updating the content displayed by the application. Alternatively, the routing device can also run the first application periodically. For example, when the routing device is a CPE, it can periodically run the first application to report routing logs.
[0071] As another example, while the first device is running the first application, the routing device can acquire data streams from the first device. In this case, the first application is any one of one or more applications running on the first device. For instance, the first device can run the first application in response to a user's action on it. This user action could be launching the first application or updating the content displayed by the first application. For example, a user can click the icon of the first application on the first device's screen to launch it. Or, a user can update the content displayed by the first application on the user interface displayed on the first device's screen. For example, if the first application is a live streaming application, a user can click the live streaming window displayed in the user interface to trigger playback of the live streaming content. While running the first application, the first device can send the data streams generated by the first application to the routing device.
[0072] S302: The routing device determines the service type of the data flow.
[0073] The service types include, but are not limited to, low-latency service types and non-low-latency service types. For example, low-latency services (under the low-latency service type) include, but are not limited to, live streaming, online gaming, and cloud gaming. Non-low-latency services (under the non-low-latency service type) can be high-bandwidth services or other services. These other services can be those with less stringent latency requirements. For example, non-low-latency services include, but are not limited to, downloading, video-on-demand, and network speed testing.
[0074] After acquiring the data stream, the routing device can determine the service type of the data stream based on its source. The source of the data stream can be either the routing device or the primary device.
[0075] In some embodiments, when the data stream is a data stream from a routing device, the routing device can determine the service type of the data stream based on the first application that generated the data stream upon acquiring it. For example, when the first application is a remote management application, the routing device can determine that the data stream generated by the remote management application is a low-latency service type. As another example, when the first application is a log reporting application, the routing device can determine that the service type of the data stream generated by the log reporting application is a non-low-latency service type.
[0076] In other embodiments, when the data stream is from the first device, the routing device, upon receiving the data stream, can first determine whether the received data stream is a pre-stream or a core stream, and then determine the service type of the data stream. The data stream received by the routing device can be either a pre-stream or a core stream.
[0077] As an example, when a routing device determines that a received data stream is a preceding stream, it can perform service identification on the data stream to determine its service type. If the service type is a low-latency service, the routing device can mark the first device as a low-latency device. Thus, when the routing device subsequently receives a data stream from the first device, it can determine that the service type of that data stream is also a low-latency service.
[0078] For example, when a routing device determines that the service type of a preceding flow is a low-latency service type, the routing device can also mark the identifier of the first device. The identifier of the first device can be its Media Access Control (MAC) address or other identifier; there are no restrictions on this. For instance, when the service type of the preceding flow is a low-latency service type, the routing device can save the identifier of the first device in a mapping relationship between device identifiers and low-latency service types, thus completing the marking of the first device's identifier. In this way, when the routing device subsequently receives a data flow sent by the first device, it can determine the service type of the data flow based on the stored mapping relationship between device identifiers and low-latency service types.
[0079] As another example, when a routing device determines that a received data stream is a core stream, it can determine the service type of the data stream based on the identifier of the first device. For instance, the routing device can determine the identifier of the first device sending the core stream and whether the stored mapping between device identifiers and low-latency service types includes the identifier of the first device. If the stored mapping between device identifiers and low-latency service types includes the identifier of the first device, the routing device can determine that the service type of the core stream is a low-latency service type. If the stored mapping between device identifiers and low-latency service types does not include the identifier of the first device, the routing device can determine that the service type of the core stream is a non-low-latency service type.
[0080] S303: When the service type is a low-latency service type, the routing device sends the data stream to the wired WAN to transmit the data stream through the wired WAN.
[0081] When a routing device determines that a service is a low-latency service, it determines that the transmission of that data stream requires a relatively stable network environment. Therefore, the routing device can send the data stream to the wired WAN.
[0082] In some embodiments, when a routing device determines that the service type of a data flow is a low-latency service type, it can add a first tag to each of the multiple data packets contained in the data flow, resulting in multiple first data packets. The routing device can then send the multiple first data packets with the first tag to the wired WAN. The first tag indicates that the data packets are being transmitted over the wired WAN. For example, the first tag can be a mark, and the data packets in the data flow can be transmitted in the form of socket kernel buffer (SKB) messages.
[0083] During the data flow transmission process, the routing device can also perform traffic statistics on the data flow of the first device to determine the transmission status of the first device's data flow. The transmission status of the first device's data flow determined by the routing device refers to the transmission status of the first device's core flow. For example, the routing device can perform traffic statistics on the first device's data flow to determine the number of core flow data packets within at least one first duration closest to the current time. The number of core flow data packets includes the number of transmitted (Tx) packets and the number of received (Rx) packets. The routing device can count the number of core flow data packets based on the IP 5-tuple information of the first device's data flow. The IP 5-tuple information includes the source IP address, destination IP address, source port number, destination port number, and protocol type. When the routing device determines that the number of core flow data packets of the first device's data flow within at least one first duration closest to the current time is less than or equal to a preset value, it can determine that the transmission status of the first device's data flow has ended. For example, the first duration can be set to 10 seconds, 15 seconds, or other durations; there are no restrictions on this. The default value can be set to 2 or other values; there are no restrictions here. In this case, the routing device can mark the first device as a non-low-latency device and remove the first device's identifier from the stored mapping between device identifiers and low-latency service types. Thus, the service type of the data stream subsequently transmitted by the first device to the routing device will be a non-low-latency service type.
[0084] S304: When the service type is not a low-latency service type, the routing device will split the data stream to wired WAN and wireless WAN to transmit the data stream through wired WAN and wireless WAN.
[0085] In some embodiments, when the routing device determines that the service type of the data flow is a non-low-latency service type, the routing device can send multiple second data packets contained in the data flow to the wired WAN and multiple third data packets contained in the data flow to the wireless WAN. The ratio of the number of second data packets to the number of third data packets is the traffic splitting ratio between the wired WAN and the wireless WAN. The data flow consists of multiple second data packets and multiple third data packets. The traffic splitting ratio can be pre-set by the operator in the routing device according to user needs, or it can be configured by the user in the routing device's web user interface (WEBUI), or it can be configured by the operator through a maintenance server. For example, the traffic splitting ratio can be wired WAN:wireless WAN = 1:1, or it can be wired WAN:wireless WAN = 2:1; there is no limitation here.
[0086] In some examples, when a routing device determines that a data flow's service type is not a low-latency service type, it can divide the multiple data packets contained in the data flow into multiple second data packets and multiple third data packets according to a default splitting ratio. For example, the routing device can divide multiple data packets in the data flow into second data packets and third data packets in a 1:1 ratio, where the ratio of the number of second data packets to the number of third data packets is 1:1.
[0087] In other examples, when the routing device determines that the service type of the data flow is a non-low-latency service type, it can further determine which type of non-low-latency service the data flow belongs to. The non-low-latency service type can include high-bandwidth service types and other service types. Each high-bandwidth service type and other service types corresponds to a traffic splitting ratio; that is, multiple preset traffic splitting ratios can be included. The routing device can select the traffic splitting ratio corresponding to the specific service type of the data flow from these multiple ratios. Based on the selected traffic splitting ratio, the routing device can determine the number of second data packets and the number of third data packets contained in the data flow.
[0088] For example, non-low latency service types include high-bandwidth service types and other service types, with preset traffic splitting ratios including splitting ratio 1 and splitting ratio 2. Splitting ratio 1 is wired WAN:wireless WAN = 1:1, and splitting ratio 2 is wired WAN:wireless WAN = 2:1. The splitting ratio corresponding to high-bandwidth service types is splitting ratio 1, and the splitting ratio corresponding to other service types is splitting ratio 2. When the routing device determines that the service type of the data flow is a high-bandwidth service type, it determines the number of second data packets to be sent to the wired WAN and the number of third data packets to be sent to the wireless WAN from the multiple data packets contained in the data flow, according to the splitting ratio 1 corresponding to the high-bandwidth service type.
[0089] After determining the splitting ratio for multiple data packets in a data stream, the routing device can divide the data packets into multiple second data packets and multiple third data packets according to the determined splitting ratio. The second data packets contain a first tag, and the third data packets contain a second tag. The second tag is used to indicate that the data packets are transmitted over the wireless WAN. For example, when the splitting ratio is 1:1, the routing device can divide the multiple data packets in the data stream into two equal parts. The routing device can add a first tag to each data packet in one part of the data stream to obtain multiple second data packets. The routing device can also add a second tag to each data packet in the other part of the data stream to obtain multiple third data packets.
[0090] After receiving multiple second data packets and multiple third data packets, the routing device can send the multiple second data packets to the wired WAN and the multiple third data packets to the wireless WAN, thus completing the splitting of the data flow.
[0091] Based on the above embodiments, before routing data streams, the routing device needs to determine the service type of the data streams. This allows data streams with low-latency service types to be sent to the wired WAN, while data streams with non-low-latency service types are routed to both the wired WAN and the wireless WAN. This avoids routing low-latency service type data streams to the unstable wireless WAN, thereby increasing user bandwidth while reducing the impact on users' low-latency services.
[0092] Based on the above embodiments, this application also provides a service offloading system applied in a routing device. The routing device can be the routing device 20 shown in Figure 1. This routing device supports both wired uplink and wireless uplink. As shown in Figure 4, the system includes a service awareness (SA) module 10, a flow awareness (FA) module 20, an application turbo (APP turbo) module 30, a management module 40, and a routing module 50. Wherein:
[0093] SA module 10 is used to identify the service type of the data stream generated by the first application. The data stream can be a data stream from a routing device or a data stream from the first device, and the service type can include low-latency service types and non-low-latency service types. When the data stream is from the first device, SA module 10 can also count the number of service packets in the data stream. The data stream from the first device can include pre-stream and core streams. In some scenarios, after receiving the data stream from the first device, SA module 10 can determine whether the data stream is a pre-stream or a core stream. For example, when the data stream from the first device is a pre-stream, SA module 10 can determine the service type of the data stream. When SA module 10 determines that the service type of the data stream from the first device is a low-latency service type, SA module 10 can mark the first device as a low-latency service device. For example, SA module 10 can save the identifier of the first device in a mapping relationship between device identifiers and low-latency service types. As another example, when the data stream from the first device is a core stream, SA module 10 can count the number of core stream data packets in the data stream from the first device.
[0094] The FA module 20 is used to perform traffic statistics on the core flow and update the mapping relationship between device identifiers and low-latency service types based on the statistical results. In some scenarios, after receiving the data flow from the first device, the SA module 10 can also send the IP 5-tuple information of the first device's data flow to the FA module 20. The FA module 20 can perform traffic statistics on the core flow based on the IP 5-tuple information. For example, the FA module 20 can query the number of core flow data packets from the SA module 10 based on the IP 5-tuple information. The FA module 20 can determine the transmission status of the core flow by determining whether the number of core flow data packets of the first device's data flow in at least one first duration closest to the current time is greater than a preset value. When the number of core flow data packets of the first device's data flow in at least one first duration closest to the current time is less than or equal to the preset value, the FA module 20 can determine that the core flow transmission status is complete and delete the identifier of the first device corresponding to the core flow from the stored mapping relationship between device identifiers and low-latency service types.
[0095] The APP turbo module 30 is used to acquire the data stream generated by the first application and transmit the data stream to the SA module 10. The APP turbo module 30 is also used to control the SA module 10 to perform service identification on the data stream and to display the service identification results of the SA module 10 on the user experience (UX) interface. For example, the service identification results include, but are not limited to: whether the data stream is from a routing device or a first device; whether the first device's data stream is a pre-stream or core stream; the service type of the data stream; and the MAC address of the first device that sent the data stream. The APP turbo module 30 can also be used to configure routing rules for the routing module 50. For example, routing rules include, but are not limited to: traffic splitting ratios; mapping relationships between tags (e.g., mark tags) and WANs. The mapping relationships between tags and WANs include, but are not limited to: mapping relationship between the first mark and the wired WAN; and mapping relationship between the second mark and the wireless WAN. In some scenarios, as shown in Figure 5, the APP turbo module 30 can display the service identification results on the UX interface. In other scenarios, the APP turbo module 30 can also respond to user configuration operations and configure routing rules for the routing module 50.
[0096] The management module 40 is used to mark multiple data packets contained in a data stream whose service type is low-latency service. For example, the management module 40 can receive a data stream from the SA module 10 and determine whether the service type of the data stream is low-latency service. When the service type of the data stream is low-latency service, the management module 40 adds a first mark to each of the multiple data packets contained in the data stream and sends the multiple first data packets with the added first marks to the routing module 50. When the service type of the data stream is not low-latency service, the management module 40 can directly send the data stream to the routing module 50, or it can divide the multiple data packets contained in the data stream into multiple second data packets and multiple third data packets according to the splitting ratio. The second data packets are data packets transmitted via the wired WAN, and the third data packets are data packets transmitted via the wireless WAN. The process by which the management module 40 divides the multiple data packets contained in the data stream into multiple second data packets and multiple third data packets according to the splitting ratio is the same as the process by which the routing device splits the data stream to the wired WAN and wireless WAN in the above embodiment, and will not be described again here. For example, the second data packet may contain a first tag added by the management module 40, and the third data packet may contain a second tag added by the management module 40. The first tag indicates that the data packet is transmitted via a wired WAN, and the second tag indicates that the data packet is transmitted via a wireless WAN. The management module 40 can send the multiple data packets with added tags to the routing module 50.
[0097] The routing module 50 is used to distribute data packets to the wired WAN and wireless WAN based on the tags in the data packets contained in the data stream. The routing module 50 can parse the data packets to determine whether a first tag or a second tag has been added to them. For example, the routing module 50 can send data packets with the first tag to the wired WAN and data packets with the second tag to the wireless WAN. Alternatively, when the routing module 50 determines that no tag is parsed from the data packets contained in the data stream, the routing module can distribute the data stream to the wired WAN and wireless WAN. The process by which the routing module 50 distributes the data stream to the wired WAN and wireless WAN is the same as the process by which the routing device distributes the data stream to the wired WAN and wireless WAN in the above embodiment, and will not be described again here.
[0098] Based on the service offloading system shown in Figure 4 above, this application embodiment can also provide a service offloading use case. In this use case, the service type of the data stream sent by the first device is a low-latency service type. As shown in Figure 6, this use case includes:
[0099] S601: The first device starts the first application and generates the initial data stream of the first application.
[0100] The initial data stream is used to characterize the data stream generated when the first application is opened for the first time.
[0101] S602: The first device sends an initial data stream to the application acceleration module of the routing device. The application acceleration module of the routing device receives the initial data stream from the first device.
[0102] S603: The application acceleration module of the routing device sends an initial data stream to the SA module. The SA module of the routing device receives the initial data stream from the application acceleration module.
[0103] S604: The SA module of the routing device determines that the initial data stream is a preceding stream and that the service type of the initial data stream is a low-latency service type.
[0104] S605: The SA module of the routing device saves the identifier of the first device into the mapping relationship between the device identifier and the low-latency service type.
[0105] In some embodiments, when the SA module of the routing device determines that the service type of the initial data flow is a low-latency service type, it can mark the first device as a low-latency device.
[0106] S606: The SA module of the routing device sends an initial data stream to the management module of the routing device. The management module of the routing device receives the initial data stream from the SA module.
[0107] S607: When the mapping relationship between the identifier of the stored device and the low-latency service type includes the identifier of the first device, the management module of the routing device determines that the service type of the initial data stream is a low-latency service type.
[0108] S608: The management module of the routing device adds a first tag to each of the multiple data packets contained in the initial data stream, resulting in multiple first data packets.
[0109] The first marker is used to indicate that data packets are transmitted via a wired WAN.
[0110] S609: The management module of the routing device sends multiple first data packets to the routing module of the routing device. The routing module receives the multiple first data packets from the management module.
[0111] S610: The routing module of the routing device sends multiple first data packets to the wired WAN.
[0112] In some embodiments, after receiving multiple first data packets, the routing module can parse the multiple first data packets to determine a first tag in the multiple first data packets. The routing module can then send the multiple first data packets containing the first tag to the wired WAN according to the mapping relationship between the tag and the WAN.
[0113] S611: During the operation of the first application, the first device sends subsequent data streams to the application acceleration module of the routing device. The application acceleration module of the routing device receives the subsequent data streams from the first device.
[0114] S612: The application acceleration module of the routing device sends subsequent data streams to the SA module. The SA module of the routing device receives subsequent data streams from the application acceleration module.
[0115] S613: After the SA module of the routing device determines that the subsequent data stream is a core stream, it sends the subsequent data stream to the management module of the routing device. The management module of the routing device receives the subsequent data stream from the SA module.
[0116] S614: When the mapping relationship between the identifier of the stored device and the low-latency service type includes the identifier of the first device, the management module of the routing device determines that the service type of the subsequent data stream is a low-latency service type.
[0117] S615: The management module of the routing device adds a first tag to each of the multiple data packets contained in the subsequent data stream, resulting in multiple first data packets.
[0118] S616: The management module of the routing device sends multiple first data packets to the routing module of the routing device. The routing module receives the multiple first data packets from the management module.
[0119] S617: The routing module of the routing device sends multiple first data packets to the wired WAN.
[0120] Based on the content shown in Figure 6, after receiving the data stream, the routing device identifies the service type of the data stream, distinguishes between low-latency data streams and non-low-latency data streams, and diverts the low-latency data stream to the wired WAN to avoid transmitting the low-latency data stream on the wireless WAN, thereby ensuring the user's experience of low-latency services.
[0121] Based on the service diversion system shown in Figure 4 above, this application embodiment can also provide a service diversion use case. In this use case, the service type of the data stream sent by the first device is a non-low-latency service type, and the routing module performs diversion processing on the non-low-latency service type data stream. As shown in Figure 7, this use case includes:
[0122] S701: The first device starts the first application and generates the initial data stream of the first application.
[0123] The initial data stream is used to characterize the data stream generated when the first application is opened for the first time.
[0124] S702: The first device sends an initial data stream to the application acceleration module of the routing device. The application acceleration module of the routing device receives the initial data stream from the first device.
[0125] S703: The application acceleration module of the routing device sends an initial data stream to the SA module. The SA module of the routing device receives the initial data stream from the application acceleration module.
[0126] S704: The SA module of the routing device determines that the initial data flow is a preceding flow and that the service type of the initial data flow is a non-low latency service type.
[0127] S705: The SA module of the routing device sends an initial data stream to the management module of the routing device. The management module of the routing device receives the initial data stream from the SA module.
[0128] S706: When the mapping relationship between the identifier of the stored device and the low-latency service type does not include the identifier of the first device, the management module of the routing device determines that the service type of the initial data stream is a non-low-latency service type.
[0129] S707: The management module of the routing device sends an initial data stream to the routing module of the routing device. The routing module receives the initial data stream from the management module.
[0130] S708: The routing module of the routing device distributes the initial data stream to the wired WAN and wireless WAN according to the preset distribution ratio.
[0131] The process of routing the initial data stream in step S708 is the same as the process of routing the data stream in the above embodiment, and will not be described again here.
[0132] S709: During the operation of the first application, the first device sends subsequent data streams to the application acceleration module of the routing device. The application acceleration module of the routing device receives the subsequent data streams from the first device.
[0133] S710: The application acceleration module of the routing device sends subsequent data streams to the SA module. The SA module of the routing device receives subsequent data streams from the application acceleration module.
[0134] S711: After the SA module of the routing device determines that the subsequent data stream is a core stream, it sends the subsequent data stream to the management module of the routing device. The management module of the routing device receives the subsequent data stream from the SA module.
[0135] S712: When the mapping relationship between the identifier of the stored device and the low-latency service type does not include the identifier of the first device, the management module of the routing device determines that the service type of the subsequent data stream is a non-low-latency service type.
[0136] S713: The management module of the routing device sends subsequent data streams to the routing module of the routing device. The routing module receives subsequent data streams from the management module.
[0137] S714: The routing module of the routing device distributes subsequent data streams to the wired WAN and wireless WAN according to the preset distribution ratio.
[0138] In step S714, the routing module's process of splitting subsequent data streams is the same as the process of the routing device splitting data streams in the above embodiment, and will not be described again here.
[0139] Based on the content shown in Figure 7, after receiving the data stream, the routing device identifies the service type of the data stream, distinguishes between low-latency data streams and non-low-latency data streams, and distributes the non-low-latency data streams to the wired WAN and wireless WAN according to the preset distribution ratio. This achieves the purpose of improving user bandwidth and avoids transmitting low-latency data streams on the wireless WAN, thereby ensuring the user's experience with low-latency services.
[0140] Based on the service offloading system shown in Figure 4 above, this application embodiment can also provide a service offloading use case. In this use case, the service type of the data stream sent by the first device is a low-latency service type, and the device's FA module detects that the transmission status of the core stream of the first device has ended. As shown in Figure 8, this use case includes:
[0141] S801: The first device sends a data stream to the application acceleration module of the routing device. The application acceleration module of the routing device receives the data stream from the first device.
[0142] The data stream refers to the data stream generated by the first application running in the first device.
[0143] S802: The application acceleration module of the routing device sends a data stream to the SA module. The SA module of the routing device receives the data stream from the application acceleration module.
[0144] S803: The SA module of the routing device determines that the data flow is a core flow and counts the number of core flow packets.
[0145] S804: The SA module of the routing device can send data streams to the management module of the routing device. The management module of the routing device receives data streams from the SA module.
[0146] S805: When the mapping relationship between the identifier of the stored device and the low-latency service type includes the identifier of the first device, the management module of the routing device determines that the service type of the data flow is a low-latency service type.
[0147] S806: The management module of the routing device adds a first tag to each of the multiple data packets contained in the data stream, resulting in multiple first data packets.
[0148] The first marker is used to indicate that data packets are transmitted via a wired WAN.
[0149] S807: The management module of the routing device sends multiple first data packets to the routing module of the routing device. The routing module receives the multiple first data packets from the management module.
[0150] S808: The routing module of the routing device sends multiple first data packets to the wired WAN.
[0151] The execution process of step S808 is the same as that of step S610 above, and will not be described again here.
[0152] S809: The SA module of the routing device sends the IP 5-tuple information of the data stream to the FA module of the routing device. The FA module of the routing device receives the IP 5-tuple information from the SA module.
[0153] There is no specific order in which steps S804 and S809 are executed.
[0154] S810: The FA module of the routing device obtains the number of core flow packets of the data stream from the SA module of the routing device.
[0155] In some embodiments, after determining that a data flow is a core flow, the SA module can perform traffic statistics on the data flow to determine the number of core flow packets. The FA module can query the number of core flow packets for the data flow from the SA module based on the IP 5-tuple information of the data flow.
[0156] S811: The FA module of the routing device determines that the number of core flow packets in the data flow within at least one first duration closest to the current time is less than or equal to a preset value.
[0157] In some embodiments, the FA module can determine that the data stream transmission has ended when it determines that the number of core stream data packets in the data stream within at least one first duration closest to the current time is less than or equal to a preset value.
[0158] S812: The FA module of the routing device removes the identifier of the first device from the stored mapping relationship between device identifiers and low-latency service types.
[0159] In some embodiments, after determining that the data stream transmission has ended, the FA module can directly delete the identifier of the first device from the stored mapping relationship between device identifiers and low-latency service types. That is, after determining that the data stream transmission has ended, the FA module marks the first device from a low-latency device to a non-low-latency device. In this way, the routing device can subsequently directly distribute the data stream of the first device according to a preset distribution ratio.
[0160] Based on the content shown in Figure 8, when the routing device offloads a data stream of low-latency service type to the wired WAN, it can also perform traffic statistics on the data stream to determine the end time of the transmission of the core stream that needs to be guaranteed. When the core stream transmission ends, the device removes the identifier of the first device from the stored mapping relationship between device identifiers and low-latency service types. This allows the subsequent data streams of the first device to be offloaded according to the preset offloading ratio, thereby ensuring the user's experience with low-latency services, increasing user bandwidth, and ultimately improving the user's internet experience.
[0161] Based on the service routing system shown in Figure 4 above, this application embodiment can also provide a service routing use case. In this use case, the data flow is the data flow of the routing device. As shown in Figure 9, this use case includes:
[0162] S901: The first application of the routing device generates a data stream during the operation of the first application of the routing device.
[0163] S902: The first application of the routing device sends a data stream to the application acceleration module of the routing device. The application acceleration module of the routing device receives the data stream from the first application.
[0164] S903: The application acceleration module of the routing device sends a data stream to the SA module of the routing device. The SA module of the routing device receives the data stream from the application acceleration module.
[0165] S904: The SA module of the routing device determines the service type of the data flow.
[0166] S905: The SA module of the routing device sends a data stream to the management module of the routing device. The management module of the routing device receives the data stream from the SA module.
[0167] In some embodiments, when the service type of the data stream is a low-latency service type, steps S906-S908 are executed subsequently; when the service type of the data stream is a non-low-latency service type, steps S909-910 or steps S911-S913 are executed subsequently.
[0168] S906: When the service type is a low-latency service type, the management module of the routing device adds a first tag to each of the multiple data packets contained in the data stream to obtain multiple first data packets.
[0169] The first marker is used to indicate that data packets are transmitted via a wired WAN.
[0170] S907: The management module of the routing device sends multiple first data packets to the routing module of the routing device. The routing module receives the multiple first data packets from the management module.
[0171] S908: The routing module of the routing device sends multiple first data packets to the wired WAN.
[0172] In some embodiments, after receiving multiple first data packets, the routing module can parse the multiple first data packets to determine a first tag in the multiple first data packets. The routing module can then send the multiple first data packets containing the first tag to the wired WAN according to the mapping relationship between the tag and the WAN.
[0173] S909: When the service type is not a low-latency service type, the management module of the routing device sends a data stream to the routing module of the routing device. The routing module receives the data stream from the management module.
[0174] S910: The routing module of the routing device distributes the data stream to the wired WAN and wireless WAN according to the traffic splitting ratio.
[0175] The execution process of step S910 is the same as the process of the routing device in the above embodiment splitting the data stream to the wired WAN and the wireless WAN, and will not be described again here.
[0176] S911: When the service type is not a low-latency service type, the management module of the routing device will divide the multiple data packets contained in the data stream into multiple second data packets and multiple third data packets.
[0177] The second data packet contains a first tag, and the third data packet contains a second tag. The second tag indicates that the data packet is transmitted via the wireless WAN. The ratio of the number of second data packets to the number of third data packets represents the traffic splitting ratio between the wired WAN and the wireless WAN.
[0178] The execution process of step S911 is the same as the process of the routing device in the above embodiment splitting the data stream to the wired WAN and the wireless WAN, and will not be described again here.
[0179] S912: The management module of the routing device sends multiple second data packets and multiple third data packets to the routing module of the routing device. The routing module receives the multiple second data packets and multiple third data packets from the management module.
[0180] S913: The device's routing module sends multiple second data packets to the wired WAN and multiple third data packets to the wireless WAN.
[0181] Based on the content shown in Figure 9, after obtaining the data stream, the routing device can distinguish between low-latency data streams and non-low-latency data streams according to the service type of the data stream. The low-latency data stream is diverted to the wired WAN, and the non-low-latency data stream is diverted to the wired WAN and the wireless WAN, avoiding the transmission of low-latency data streams on the wireless WAN, thereby ensuring the user's experience of low-latency services.
[0182] Based on the above and the same technical concept, this application provides a routing device, including one or more memories and one or more processors; the one or more memories are used to store one or more programs, and when the one or more programs are invoked by the one or more processors, the routing device performs the steps executed by the routing device in the above method embodiments. In the embodiments of this application, the routing device can access the Internet via a wired WAN, and the routing device can also access the Internet via a wireless WAN.
[0183] Based on the above content and the same concept, this application provides a readable storage medium (also referred to as a computer-readable storage medium) storing one or more programs. When one or more programs are executed by a routing device, the routing device performs the steps executed by the routing device in the above method embodiment.
[0184] Based on the above content and the same concept, this application provides a program product (also referred to as a computer program product), which includes a program or instructions. When the program or instructions are executed by a routing device, the routing device performs the steps executed by the routing device in the above method embodiment.
[0185] Those skilled in the art will understand that embodiments of this application can be provided as methods, routing devices, or program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects.
[0186] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. A business traffic diversion method, characterized in that, Applied to a routing device that is connected to the Internet via a wired WAN and also via a wireless WAN, the method includes: Obtain the data stream generated by the first application; Determine the service type of the data stream; When the service type is a low-latency service type, the data stream is sent to the wired WAN to transmit the data stream through the wired WAN; When the service type is not a low-latency service type, the data stream is split to the wired WAN and the wireless WAN to transmit the data stream through the wired WAN and the wireless WAN.
2. The method according to claim 1, characterized in that, The acquisition of the data stream generated by the first application includes: The data stream is acquired while the routing device is running the first application; or, During the operation of the first application on the first device, the data stream from the first device is acquired.
3. The method according to claim 2, characterized in that, When the data stream is the data stream of the first device, determining the service type of the data stream includes: When the data stream is a preceding stream, the data stream is identified to determine the service type of the data stream; wherein, the preceding stream includes data packets generated when the first application starts. When the data stream is a core stream, the service type of the data stream is determined based on the identifier of the first device; wherein, the core stream includes data packets generated during the operation of the first application after it starts.
4. The method according to claim 3, characterized in that, Determining the service type of the data stream based on the identifier of the first device includes: When the mapping relationship between the identifier of the stored device and the low-latency service type includes the identifier of the first device, the service type of the data stream is determined to be the low-latency service type; When the mapping relationship between the identifier of the stored device and the low-latency service type does not include the identifier of the first device, the service type of the data stream is determined to be the non-low-latency service type.
5. The method according to claim 3 or 4, characterized in that, When the data stream is the preceding stream and the service type of the data stream is the low-latency service type, the method further includes: The identifier of the first device is saved into the mapping relationship between the device identifier and the low-latency service type.
6. The method according to claim 4 or 5, characterized in that, When the data stream is the core stream and the service type of the data stream is the low-latency service type, the method further includes: Traffic statistics are performed on the data stream to determine the number of core stream data packets in the data stream within at least one first duration closest to the current time. When the number of core stream data packets in the data stream within at least one first duration closest to the current time is less than or equal to a preset value, the transmission status of the data stream is determined to be the end of transmission; Remove the identifier of the first device from the mapping relationship between the device identifier and the low-latency service type stored in the database.
7. The method according to any one of claims 1-6, characterized in that, When the service type is a low-latency service type, sending the data stream to the wired WAN to transmit the data stream through the wired WAN includes: A first tag is added to each of the multiple data packets contained in the data stream to obtain multiple first data packets; the first tag is used to indicate that the data packets are transmitted through the wired WAN. The plurality of first data packets are sent to the wired WAN.
8. The method according to any one of claims 1-7, characterized in that, When the service type is not a low-latency service type, the data stream is split to the wired WAN and the wireless WAN for transmission through the wired WAN and the wireless WAN, including: Send the multiple second data packets contained in the data stream to the wired WAN; Send the multiple third data packets contained in the data stream to the wireless WAN; The ratio of the number of the plurality of second data packets to the number of the plurality of third data packets is the traffic splitting ratio between the wired WAN and the wireless WAN.
9. A routing device, characterized in that, The routing device includes one or more processors; one or more memories; and one or more programs; The one or more programs are stored in the one or more memories, and when the one or more programs are invoked by the one or more processors, the routing device causes the routing device to perform the method as described in any one of claims 1 to 8.
10. A program product, characterized in that, When the program product is run on a routing device, the routing device performs the method as described in any one of claims 1 to 8.