Data processing method, live data processing method and device
By determining the aggregation process based on terminal identity and link identity in the aggregation server, the problem of port resource limitation is solved, data processing performance is improved and costs are reduced.
Patent Information
- Application Number
- CN202211174882.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-26
- Publication Date
- 2025-12-05
- Estimated Expiration
- 2042-09-26
AI Technical Summary
Due to port resource limitations, aggregation servers can only support a limited number of aggregation services, which in turn limits data processing performance and increases the complexity of operating system scheduling.
By acquiring sub-link data sent by the aggregation terminal through multiple communication links, the corresponding aggregation process is determined using the terminal identity and link identity, and aggregation processing is performed. The aggregated data is then sent to the target server.
This effectively improved the data processing performance of the aggregation server, reduced service costs, and enhanced the practicality and market application of the method.
Smart Images

Figure CN115767114B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of network technology, and in particular to a data processing method, a method and device for processing live streaming data. Background Technology
[0002] With the rapid development of network technology, users have increasingly higher requirements for network quality, especially in applications such as live streaming and connected vehicles, which have seen rapid growth in recent years. However, in application scenarios such as weak networks and high-speed mobile applications, single-SIM terminals from a single operator can hardly meet the bandwidth and latency requirements of these applications.
[0003] Multipath aggregation is one method to address the unstable quality of single-path transmission in weak network and mobile scenarios. This multipath aggregation is jointly performed by the aggregation terminal and the aggregation server. The aggregation server is typically deployed in the cloud, and one cloud aggregation server can support multiple aggregation terminals to complete traffic aggregation services. Currently, aggregation servers often use kernel network sockets in open-source operating systems (Linux) for packet sending and receiving. In this method, each aggregation terminal requires a separate port number for each aggregation server, and different aggregation terminals require different port numbers. However, since port resources are limited (the maximum port number is generally 65535), this can easily lead to an upper limit on the number of aggregation terminals that each aggregation server can support, thus greatly limiting the services that the aggregation server can provide. Summary of the Invention
[0004] This application provides a data processing method, a live data processing method, and an apparatus to solve the problem that the aggregation services that an aggregation server can support are limited due to port resource constraints.
[0005] In a first aspect, embodiments of this application provide a data processing method applied to an aggregation server, wherein the aggregation server is connected to an aggregation terminal via multiple different communication links, and the method includes:
[0006] The aggregation terminal acquires multiple sub-link data sent through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated.
[0007] Based on the terminal identity identifier, determine the aggregation process corresponding to the multiple sub-link data;
[0008] Based on the aggregation process and the link identifier, the data of the multiple sub-links are aggregated to obtain aggregated data;
[0009] The aggregated data is sent to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0010] Secondly, embodiments of this application provide a data processing apparatus applied to an aggregation server, wherein the aggregation server is communicatively connected to an aggregation terminal through multiple different communication links, and the apparatus includes:
[0011] The first acquisition module is used to acquire multiple sub-link data sent by the aggregation terminal through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated.
[0012] The first determining module is used to determine the aggregation process corresponding to the multiple sub-link data based on the terminal identity identifier;
[0013] The first processing module is used to perform aggregation processing on the multiple sub-link data based on the aggregation process and the link identifier to obtain aggregated data;
[0014] The first sending module is used to send the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0015] Thirdly, embodiments of this application provide an electronic device, including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the data processing method described in the first aspect above.
[0016] Fourthly, embodiments of the present invention provide a computer storage medium for storing a computer program, which, when executed by a computer, implements the data processing method described in the first aspect above.
[0017] Fifthly, embodiments of the present invention provide a computer program product, comprising: a computer program that, when executed by a processor of an electronic device, causes the processor to perform the steps of the data processing method described in the first aspect above.
[0018] Sixthly, embodiments of the present invention provide a data processing method applied to an aggregation terminal, the method comprising:
[0019] Obtain the data to be processed;
[0020] Multiple different communication links are established between the aggregation terminal and the aggregation server, the aggregation server being used to process the data to be processed;
[0021] The data to be processed is split and planned based on multiple different communication links to obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0022] The data of the sub-links corresponding to each communication link are sent to the aggregation server through the communication link, so that the aggregation server can perform processing operations on the data to be processed.
[0023] In a seventh aspect, embodiments of the present invention provide a data processing apparatus applied to an aggregation terminal, the apparatus comprising:
[0024] The second acquisition module is used to acquire the data to be processed;
[0025] The second determining module is used to determine multiple different communication links between the aggregation terminal and the aggregation server, wherein the aggregation server is used to process the data to be processed.
[0026] The second processing module is used to perform traffic splitting planning on the data to be processed based on multiple different communication links, and obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0027] The second sending module is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can perform processing operations on the data to be processed.
[0028] Eighthly, embodiments of this application provide an electronic device, including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the data processing method described in the sixth aspect above.
[0029] Ninthly, embodiments of the present invention provide a computer storage medium for storing a computer program that, when executed by a computer, implements the data processing method described in the sixth aspect above.
[0030] In a tenth aspect, embodiments of the present invention provide a computer program product, comprising: a computer program that, when executed by a processor of an electronic device, causes the processor to perform the steps of the data processing method described in the sixth aspect above.
[0031] Eleventhly, embodiments of the present invention provide a method for processing live streaming data, applied to an aggregation terminal, the method comprising:
[0032] Obtain the live streaming data to be processed;
[0033] Multiple different communication links are established between the aggregation terminal and the aggregation server, the aggregation server being used to process the live streaming data;
[0034] The live streaming data is split and planned based on multiple different communication links to obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0035] The data of the sub-links corresponding to each communication link are sent to the aggregation server through the communication link, so that the live data can be processed by the aggregation server.
[0036] In a twelfth aspect, embodiments of the present invention provide a live streaming data processing apparatus applied to an aggregation terminal, the apparatus comprising:
[0037] The third acquisition module is used to acquire the live data to be processed.
[0038] The third determining module is used to determine multiple different communication links between the aggregation terminal and the aggregation server, wherein the aggregation server is used to process the live data;
[0039] The third processing module is used to perform a traffic splitting plan on the live data based on multiple different communication links, and obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0040] The third sending module is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the live data.
[0041] In a thirteenth aspect, embodiments of this application provide an electronic device, including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein when the one or more computer instructions are executed by the processor, the live data processing method described in the eleventh aspect above is implemented.
[0042] In a fourteenth aspect, embodiments of the present invention provide a computer storage medium for storing a computer program that, when executed by a computer, implements the live data processing method described in the eleventh aspect above.
[0043] In a fifteenth aspect, embodiments of the present invention provide a computer program product, comprising: a computer program that, when executed by a processor of an electronic device, causes the processor to perform the steps in the live data processing method described in the eleventh aspect above.
[0044] In a sixteenth aspect, embodiments of the present invention provide a vehicle control method applied to an aggregation terminal, the method comprising:
[0045] Acquire vehicle operation data of the vehicle to be controlled;
[0046] Multiple different communication links are established between the aggregation terminal and the aggregation server, the aggregation server being used to process the vehicle operation data;
[0047] The vehicle operation data is distributed and planned based on multiple different communication links to obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0048] The data of the sub-links corresponding to each communication link are sent to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information.
[0049] The aggregation server is used to obtain vehicle control information corresponding to the vehicle to be controlled.
[0050] The vehicle to be controlled is controlled based on the vehicle control information.
[0051] In a seventeenth aspect, embodiments of the present invention provide a vehicle control device applied to an aggregation terminal, the device comprising:
[0052] The fourth acquisition module is used to acquire vehicle operation data of the vehicle to be controlled;
[0053] The fourth determining module is used to determine multiple different communication links between the aggregation terminal and the aggregation server, wherein the aggregation server is used to process the vehicle operation data;
[0054] The fourth processing module is used to perform traffic splitting planning on the vehicle operation data based on multiple different communication links, and obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0055] The fourth sending module is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information.
[0056] The fourth acquisition module is used to acquire vehicle control information corresponding to the vehicle to be controlled through the aggregation server;
[0057] The fourth control module is used to control the vehicle to be controlled based on the vehicle control information.
[0058] In an eighteenth aspect, embodiments of this application provide an electronic device, including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the vehicle control method described in the sixteenth aspect above.
[0059] In a nineteenth aspect, embodiments of the present invention provide a computer storage medium for storing a computer program that, when executed by a computer, implements the vehicle control method described in the sixteenth aspect above.
[0060] In a twentieth aspect, embodiments of the present invention provide a computer program product, comprising: a computer program that, when executed by a processor of an electronic device, causes the processor to perform the steps of the vehicle control method described in the sixteenth aspect above.
[0061] The data processing method, live data processing method, and device provided in this application acquire multiple sub-link data sent by an aggregation terminal through multiple different communication links. Based on the terminal identity identifier in the sub-link data, an aggregation process corresponding to the multiple sub-link data is determined. The aggregation process and link identifier are then used to aggregate the multiple sub-link data to obtain aggregated data. This aggregated data can then be sent to a target server, allowing the target server to perform corresponding data processing operations based on the aggregated data. Since the aggregation server can communicate with multiple aggregation terminals, and the data sent by these terminals all include a unified port corresponding to the aggregation server, this effectively solves the problem of limited aggregation services supported by the aggregation server due to port resource constraints. This significantly improves the data processing performance of the aggregation server, reduces the cost of aggregation services, and further enhances the practicality of the method, which is beneficial for market promotion and application. Attached Figure Description
[0062] To more clearly illustrate the technical solutions in the embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0063] Figure 1 A schematic diagram illustrating a data processing method provided in an embodiment of this application;
[0064] Figure 2 A flowchart illustrating a data processing method provided in an embodiment of this application;
[0065] Figure 3 This is a schematic diagram illustrating the connection between an aggregation server and an aggregation terminal, provided in an embodiment of this application.
[0066] Figure 4 A flowchart illustrating another data processing method provided in an embodiment of this application;
[0067] Figure 5 A flowchart illustrating another data processing method provided in this application embodiment;
[0068] Figure 6 A schematic diagram of the architecture of an aggregation server provided for an application embodiment of this application;
[0069] Figure 7 A flowchart illustrating a data processing method provided for an application embodiment of this application;
[0070] Figure 8A flowchart illustrating a data processing method provided in an embodiment of this application;
[0071] Figure 9 A flowchart illustrating a method for processing live data provided in an embodiment of this application;
[0072] Figure 10 A schematic flowchart of a vehicle control method provided in an embodiment of this application;
[0073] Figure 11 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;
[0074] Figure 12 To and Figure 11 A schematic diagram of the electronic device corresponding to the data processing device provided in the embodiment shown;
[0075] Figure 13 This is a schematic diagram of the structure of another data processing device provided in the embodiments of this application;
[0076] Figure 14 To and Figure 13 A schematic diagram of the electronic device corresponding to the data processing device provided in the embodiment shown;
[0077] Figure 15 This is a schematic diagram of the structure of a live data processing device provided in an embodiment of this application;
[0078] Figure 16 To and Figure 15 A schematic diagram of the electronic device corresponding to the live data processing device provided in the embodiment shown.
[0079] Figure 17 This is a schematic diagram of the structure of a vehicle control device provided in an embodiment of this application;
[0080] Figure 18 To and Figure 17 The illustrated embodiment provides a schematic diagram of the electronic device corresponding to the vehicle control device. Detailed Implementation
[0081] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0082] The terminology used in the embodiments of this application is for the purpose of describing particular embodiments only and is not intended to limit the application. The singular forms “a,” “said,” and “the” used in the embodiments of this application and the appended claims are also intended to include the plural forms, unless the context clearly indicates otherwise. “Multiple” generally includes at least two, but does not exclude the inclusion of at least one.
[0083] It should be understood that the term "and / or" used in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this article generally indicates that the preceding and following related objects have an "or" relationship.
[0084] Depending on the context, the words “if” or “suppose” as used here can be interpreted as “when” or “in response to determination” or “in response to detection.” Similarly, depending on the context, the phrases “if determination” or “if detection (of the stated condition or event)” can be interpreted as “when determination” or “in response to determination” or “when detection (of the stated condition or event)” or “in response to detection (of the stated condition or event).”
[0085] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a product or system comprising a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a product or system. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the product or system that includes that element.
[0086] Furthermore, the timing of the steps in the following method embodiments is merely an example and not a strict limitation.
[0087] Terminology definition:
[0088] Multipath aggregation transmission: A communication method that aggregates traffic from multiple paths at the transport layer to improve bandwidth and reduce latency.
[0089] Aggregator terminal: A terminal that can insert multiple SIM cards, supports multiple standards, and provides access services.
[0090] Aggregator servers: Servers with high concurrency, high performance, and high availability, typically deployed in the cloud, and offering smoother (high bandwidth, low latency) access to internet services.
[0091] Tenant: An organization or individual that purchases the aggregation service may own one or more aggregation terminals. For ease of understanding, the concept of tenant in this article is equivalent to aggregation terminal.
[0092] The Data Plane Development Kit (DPDK) is a collection of function libraries and drivers that primarily run on the open-source operating system (Linux) for fast packet processing. It can greatly improve data processing performance and throughput, and increase the efficiency of data plane applications.
[0093] Linux, an open-source operating system: a widely used open-source operating system on servers.
[0094] Network socket: An abstract interface in the open-source operating system Linux for bidirectional communication between application processes on different hosts on a network.
[0095] To facilitate understanding of the technical solutions provided in the embodiments of this application by those skilled in the art, the relevant technologies are described below: With the rapid development of the mobile Internet, users have increasingly higher requirements for network quality, especially in recent years, applications such as live streaming and vehicle networking have become more demanding in terms of network quality. However, in application scenarios such as weak networks and high-speed mobility, a single-card terminal from a single operator can hardly meet the application's requirements for bandwidth and latency.
[0096] Multipath aggregation is one method to address the unstable quality of single-path transmission in weak network and mobile scenarios. This multipath aggregation is typically accomplished by both the aggregation terminal and the aggregation server. The aggregation server is usually deployed in the cloud, and a single cloud aggregation server can support multiple aggregation terminals to complete traffic aggregation services. In this scenario, allowing a single cloud aggregation server to support more aggregation terminals to complete the aggregation service is an effective way to reduce the cost of aggregation services.
[0097] Currently, aggregation servers typically use kernel-level network sockets in open-source operating systems (Linux) for message sending and receiving. This method requires each aggregation server to use a separate port number for each aggregation terminal, with different terminals requiring different port numbers. However, port resources are limited; for example, the maximum port number is generally 65535. This limits the number of aggregation terminals each server can support, significantly restricting the services it can provide. Furthermore, since each port number is bound to a process, managing and controlling multiple processes is necessary when an aggregation server uses multiple port numbers to communicate with multiple aggregation terminals. This increases the complexity of operating system scheduling and leads to additional performance overhead in data processing.
[0098] To address the aforementioned technical problems, this embodiment provides a data processing method, a live data processing method, and an apparatus. The execution entity of this data processing method can be a data processing device, which can be implemented as an aggregation server. The aforementioned data processing device refers to a device capable of providing data processing services in a network virtual environment, typically referring to a device that utilizes a network for information planning and data processing operations. In physical implementation, the data processing device can be any device capable of providing computing services, responding to data processing requests, and performing data processing services based on those requests. Examples include cluster servers, conventional servers, cloud servers, cloud hosts, virtual centers, etc. The sales forecasting device mainly comprises a processor, hard disk, memory, system bus, etc., similar to a general computer architecture.
[0099] When an aggregation server is implemented as a cloud server, data processing methods can be executed in the cloud. Several computing nodes (cloud servers) can be deployed in the cloud, each with computing, storage, and other processing resources. In the cloud, multiple computing nodes can be organized to provide a certain service; conversely, a single computing node can provide one or more services. The cloud can provide this service by providing an external service interface, which users can call to use the corresponding service. Service interfaces can take the form of Software Development Kits (SDKs) and Application Programming Interfaces (APIs).
[0100] like Figure 1As shown, the data processing device (i.e., the aggregation server) can communicate with the aggregation terminal through multiple different communication links. For example, the aggregation terminal can communicate with the data processing device through communication link 1 and communication link 2. Furthermore, the aggregation server can communicate with one or more aggregation terminals. Specifically, an aggregation terminal can be implemented as an access gateway. One aggregation terminal can communicate with one or more user terminals. A user terminal can be any computing device with a certain data transmission capability; specifically, a user terminal can be a mobile phone, a personal computer (PC), a tablet computer, a configuration application, etc. In addition, the basic structure of a user terminal can include at least one processor. The number of processors depends on the configuration and type of the user terminal. The user terminal can also include memory, which can be volatile, such as RAM, or non-volatile, such as read-only memory (ROM), flash memory, etc., or both types. The memory typically stores the operating system (OS), one or more applications, and may also store program data. Besides the processing unit and memory, the user terminal also includes some basic configurations, such as a network interface card (NIC) chip, an I / O bus, a display component, and some peripheral devices. Optionally, some peripheral devices may include, for example, a keyboard, mouse, stylus, printer, etc. Other peripheral devices are well known in the art and will not be described in detail here.
[0101] In the above embodiment, the aggregation terminal can connect to the data processing device via a network, which can be a wireless or wired network connection. If the aggregation terminal and the data processing device are connected via a communication connection, the mobile network standard can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), WiMax, 5G, 6G, etc.
[0102] Specifically, in this embodiment, the aggregation terminal is used to send multiple sub-link data to the aggregation server through multiple different communication links, so that the aggregation server can analyze and process the multiple sub-link data. For example, the aggregation terminal can send sub-link data 1 to the data processing device through communication link 1, and send sub-link data 2 to the data processing device through communication link 2.
[0103] An aggregation server is used to acquire multiple sub-link data sent by aggregation terminals through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated. Based on the terminal identity identifier, the server determines the aggregation process corresponding to the multiple sub-link data. Based on the aggregation process and the link identifier, the server performs aggregation processing on the multiple sub-link data to obtain aggregated data. The server then sends the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0104] The technical solution provided in this embodiment obtains multiple sub-link data sent by the aggregation terminal through multiple different communication links. Since different aggregation terminals can correspond to different aggregation processes, in order to ensure the quality and efficiency of data processing, the aggregation process corresponding to the multiple sub-link data can be determined based on the terminal identity identifier. Then, the multiple sub-link data is aggregated based on the aggregation process and link identifier to obtain aggregated data. The aggregated data is sent to the target server so that the target server can perform corresponding data processing operations based on the aggregated data. In addition, since the aggregation server can communicate with multiple aggregation terminals, and the data sent by multiple aggregation terminals all include a unified port corresponding to the aggregation server, this effectively solves the problem that the aggregation server can only support a limited number of aggregation services due to port resource limitations. Thus, it effectively realizes a method for the aggregation server to support multiple tenants (aggregation terminals). This not only significantly improves the service performance of the aggregation server, but also reduces the cost of aggregation services, further improving the practicality of the method and facilitating its market promotion and application.
[0105] The following example illustrates the data processing method, live data processing method, and device provided in various embodiments of this application through an exemplary application scenario. Where there is no conflict between the embodiments, the following embodiments and features can be combined with each other.
[0106] Figure 2 A flowchart illustrating a data processing method provided in an embodiment of this application; see attached document. Figure 2 As shown, this embodiment provides a data processing method. The execution subject of this method is a data processing device, which can be implemented as software or a combination of software and hardware. Specifically, when the data processing device is implemented as hardware, it can be various electronic devices with data processing operations, including but not limited to local servers, cloud servers, etc. When the data processing device is implemented as software, it can be installed in the electronic devices exemplified above.
[0107] In some instances, the data processing device can be implemented as an aggregation server, meaning the aforementioned data processing method can be applied to an aggregation server. This aggregation server communicates with aggregation terminals through multiple different communication links. Based on the aforementioned aggregation server, the data processing method can include:
[0108] Step S201: Obtain multiple sub-link data sent by the aggregation terminal through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated.
[0109] Step S202: Based on the terminal identity identifier, determine the aggregation process corresponding to the data of multiple sub-links.
[0110] Step S203: Aggregate the data of multiple sub-links based on the aggregation process and link identifier to obtain the aggregated data.
[0111] Step S204: Send the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0112] The specific implementation process and effects of each of the above steps are explained in detail below:
[0113] Step S201: Obtain multiple sub-link data sent by the aggregation terminal through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated.
[0114] When the aggregation terminal has data processing needs, it can send multiple sub-link data to the aggregation server through multiple different communication links, so that the aggregation server can obtain the multiple sub-link data sent by the aggregation terminal through multiple different communication links.
[0115] Specifically, an aggregation server can communicate with one or more aggregation terminals through multiple different communication links, and one or more aggregation terminals can communicate with one or more user terminals. For example, refer to the appendix. Figure 3As shown, the aggregation terminal 302 is communicatively connected to three user terminals 301. The aggregation terminal 302 can also be communicatively connected to an aggregation server 303, and the aggregation server 303 can be communicatively connected to a target server 304. The three user terminals 301 can be implemented in the same or different ways. Furthermore, the aggregation terminal 302 can be equipped with a WAN A interface, which is used to communicate with the aggregation server 303 through a first communication link 305a. The network through which data communication is achieved via the first communication link 305a is network 1 (corresponding to operator a). Similarly, the aggregation terminal 302 can also be equipped with a WAN B interface, which is used to communicate with the aggregation server 303 through a second communication link 305b. The network through which data communication is achieved via the second communication link is network 2 (corresponding to operator b). Network 1 and network 2 are different, thus realizing multiple different communication links between the aggregation terminal 302 and the aggregation server 303.
[0116] For multiple different communication links between the aggregation terminal and the aggregation server, different communication links often correspond to different communication qualities. For example, different communication links may correspond to different data packet loss rates, different bandwidth information, different latency information, different response speeds, different signal strengths, etc. In order to ensure the quality and efficiency of data processing, when using communication links with different communication qualities to transmit data, it is necessary to distinguish each communication link so as to perform corresponding processing operations on the received data in combination with the communication links with different communication conditions. At this time, in order to distinguish the sub-link data obtained by each communication link, when the aggregation terminal transmits sub-link data to the aggregation server, the sub-link data may include the link identifier of the communication link. This link identifier can be used as the identity information ID of the communication link.
[0117] It is important to note that for multiple communication links between the aggregation terminal and the aggregation server, after the number of communication links between the aggregation terminal and the aggregation server is confirmed, the link identifier corresponding to each communication link can be automatically configured or manually configured. Different communication links can have different link identifiers, so that each communication link can be distinguished by the link identifier.
[0118] Furthermore, since an aggregation server can communicate with multiple aggregation terminals, and different aggregation terminals can send different data to the aggregation server for processing, in order for the aggregation server to process data sent by the same aggregation terminal, when aggregation terminals send sub-link data through different communication links, the sub-link data can include the terminal identification of the aggregation terminal. For example, when the aggregation server has a first aggregation terminal and a second aggregation terminal communicating with it, when the first aggregation terminal sends multiple sub-link data to the aggregation server, the multiple sub-link data can include id1 corresponding to the first aggregation terminal; similarly, when the second aggregation terminal sends multiple sub-link data to the aggregation server, the multiple sub-link data can include id2 corresponding to the second aggregation terminal. Sub-link data from different aggregation terminals can be identified by the terminal identification of the aggregation terminal included in the sub-link data.
[0119] Furthermore, the aggregation server can acquire data requiring aggregation processing not only from aggregation terminals but also from other terminal devices. When the aggregation server acquires sub-link data from the aggregation terminal, it needs to perform aggregation processing on the sub-link data sent by the same aggregation terminal. However, when the aggregation server acquires data to be processed from other terminal devices, it needs to perform corresponding processing operations according to a preset strategy, rather than aggregation processing. To accurately achieve data transmission and corresponding data aggregation processing, the port identifier of the aggregation server can be obtained. This port identifier can be used to identify whether the acquired data requires aggregation. Generally, data that does not require aggregation and is not sent through the aggregation terminal does not need to include the aggregation server's port identifier. It is important to note that when multiple aggregation terminals communicate with the same aggregation server, the port identifier of the aggregation server included in any two sub-link data sent by the multiple aggregation terminals is the same. This effectively solves the problem of limited aggregation services supported by the aggregation server due to port resource constraints.
[0120] Step S202: Based on the terminal identity identifier, determine the aggregation process corresponding to the data of multiple sub-links.
[0121] After acquiring multiple sub-link data, since these sub-link data may come from multiple different aggregation terminals, and different aggregation terminals may correspond to different aggregation processes, in order to perform stable processing operations on data sent from the same aggregation terminal, the aggregation process corresponding to multiple sub-link data can be determined based on the terminal identity identifier included in the sub-link data. That is, the same aggregation terminal can correspond to one aggregation process, and different aggregation terminals can correspond to different aggregation processes.
[0122] In some instances, the aggregation process can be selected from multiple pre-generated aggregation processes. In this case, determining the aggregation process corresponding to multiple sub-link data based on the terminal identity may include: determining multiple aggregation terminals corresponding to the aggregation server; establishing aggregation processes corresponding to each of the multiple aggregation terminals; and determining the aggregation process corresponding to multiple sub-link data from among the multiple aggregation processes based on the terminal identity.
[0123] In some other instances, the aggregation process can be generated using terminal identifiers. In this case, determining the aggregation process corresponding to multiple sub-link data based on the terminal identifiers may include: obtaining a machine learning model or network learning model used to generate or determine the aggregation process; after obtaining the terminal identifiers included in the sub-link data, determining the terminal-related information corresponding to the terminal identifiers; inputting the terminal identifiers and terminal-related information into the machine learning model or network learning model; and then obtaining the aggregation process generated or established by the machine learning model or network learning model.
[0124] Step S203: Aggregate the data of multiple sub-links based on the aggregation process and link identifier to obtain the aggregated data.
[0125] After obtaining the aggregation process and link identifier, multiple sub-link data can be aggregated based on the aggregation process and link identifier to obtain aggregated data. In some instances, the aggregation process can be obtained by analyzing and processing multiple sub-link data using a pre-trained machine learning model or neural network model. In this case, aggregating multiple sub-link data based on the aggregation process and link identifier to obtain aggregated data may include: obtaining the machine learning model or neural network model used for the aggregation operation; after obtaining the aggregation process and link identifier, the aggregation process and link identifier can be combined and input into the machine learning model or neural network model to obtain the aggregated data output by the machine learning model or neural network model.
[0126] In some other instances, the aggregated data can be obtained by aggregating multiple sub-link data through a link thread. In this case, aggregating multiple sub-link data based on the aggregation process and link identifier to obtain the aggregated data may include: determining the link thread corresponding to each of the multiple communication links based on the aggregation process and link identifier; reading data from the message queue through the link thread to obtain the data of multiple sub-links; and aggregating all the sub-link data to obtain the aggregated data.
[0127] For multiple sub-link data, since these data can be transmitted through different communication links, and different communication links may correspond to different communication qualities, in order to stably aggregate all the sub-link data, an aggregation process can be combined to aggregate all the sub-link data. At this time, a link thread corresponding to each of the different communication links can be established first. Specifically, after obtaining the aggregation process and link identifier, the aggregation process and link identifier can be analyzed to determine the link thread corresponding to each of the multiple communication links. The obtained sub-link data can be stored in a message queue, and then the link thread can read the data from the message queue to obtain multiple sub-link data. After obtaining multiple sub-link data, all the sub-link data can be aggregated to obtain the aggregated data.
[0128] In some other instances, an aggregation algorithm is pre-configured for implementing aggregation processing. After obtaining the aggregation algorithm, it can be directly used to aggregate all sub-link data to obtain aggregated data. It should be noted that since multiple sub-link data sent by different aggregation terminals may correspond to different aggregation orders, in order to ensure the quality and effectiveness of the aggregation processing, the aggregation processing of all sub-link data in this embodiment to obtain aggregated data may include: determining the data order among all sub-link data; and performing aggregation processing on all sub-link data based on the data order to obtain aggregated data.
[0129] In some instances, the data order of multiple sub-link data can be determined by preset identifiers within the sub-link data. After acquiring the data, the preset identifiers corresponding to each sub-link data point can be extracted, and the data order among all sub-link data points can be determined based on these identifiers. In other instances, the data order of all sub-link data can be determined by the link identifiers of the communication links. In this case, the link identifiers corresponding to multiple sub-link data points can be obtained first; then, the data order of all sub-link data points can be determined based on these identifiers, effectively ensuring the accuracy and reliability of determining the data order of all sub-link data points. After determining the data order among all sub-link data points, aggregation processing can be performed on all the sub-link data based on this data order to obtain the aggregated data.
[0130] In some other instances, to improve the stability and reliability of the method, this embodiment also includes a technical solution for identifying the communication quality of the communication links before aggregating all the sub-link data. In this case, the method in this embodiment may also include: decapsulating all the sub-link data through the link thread to obtain the processed data corresponding to each sub-link data; performing feature statistics on the processed data to obtain statistical information corresponding to each sub-link data; and determining the communication quality of each communication link based on the statistical information.
[0131] Specifically, after acquiring all sub-link data, the link thread can decapsulate all the sub-link data, specifically by decapsulating the data packet headers. This yields processed data corresponding to each sub-link. Then, feature statistics can be performed on the processed data to obtain statistical information corresponding to each sub-link. This statistical information can include at least one of the following: packet loss rate, transmission delay, traffic statistics, bandwidth information, response speed, signal strength, etc. Since each sub-link data is transmitted through different communication links, the statistical information of each sub-link data reflects the communication quality of each communication link. Therefore, after obtaining the statistical information, it can be analyzed and processed to determine the communication quality of each communication link.
[0132] It is important to note that after obtaining the statistical information corresponding to the data of each sub-link, the data transmission operation of the communication link can be controlled or adjusted based on the statistical information. For example, after obtaining the packet loss rate of each sub-link, the retransmission operation of the communication link can be controlled or adjusted based on the packet loss rate of each sub-link; after obtaining the bandwidth information and response speed of each sub-link, the bandwidth information of the communication link can be controlled or adjusted based on the bandwidth information and response speed of each sub-link, and so on. This can improve the quality and effect of data transmission.
[0133] Step S204: Send the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0134] After obtaining the aggregated data, it can be sent to the target server. Once the target server receives the aggregated data, it can perform corresponding data processing operations to obtain the desired results. It's understandable that different data processing operations can correspond to different target servers. For example, if the data processing operation is image processing, the target server will be a server capable of performing image processing; if the data processing operation is video processing, the target server will be a server capable of performing video processing, and so on.
[0135] In some instances, the aggregated data can be sent to the target server via a message queue. In this case, sending the aggregated data to the target server in this embodiment may include: sending the aggregated data to a message queue; reading the aggregated data from the message queue through a data transceiver process; and sending the aggregated data to the target server.
[0136] In this case, the message queue can be a shared memory queue. After obtaining the aggregated data, the aggregated data can be sent to the shared memory queue. Then, the data sending and receiving process can read the aggregated data from the shared memory queue and send the aggregated data to the target server, thus effectively realizing the stable sending of aggregated data to the target server.
[0137] The data processing method provided in this embodiment acquires multiple sub-link data sent by an aggregation terminal through multiple different communication links. Based on the terminal identity identifier in the sub-link data, it determines the aggregation process corresponding to the multiple sub-link data. Then, it performs aggregation processing on the multiple sub-link data based on the aggregation process and link identifier to obtain aggregated data. The aggregated data can then be sent to a target server, allowing the target server to perform corresponding data processing operations based on the aggregated data. Since the aggregation server can communicate with multiple aggregation terminals, and the data sent by multiple aggregation terminals all include a unified port corresponding to the aggregation server, this effectively solves the problem of limited aggregation services supported by the aggregation server due to port resource limitations. This allows the aggregation server to support multiple aggregation terminals, significantly improving the data processing performance of the aggregation server while reducing the cost of aggregation services. This further enhances the practicality of the method and is beneficial for market promotion and application.
[0138] Figure 4 A flowchart illustrating another data processing method provided in this application embodiment; based on the above embodiments, refer to the appendix. Figure 4 As shown, after determining the aggregation process corresponding to multiple sub-link data, this embodiment provides a method to send multiple sub-link data to a message queue, so that threads can easily read the corresponding sub-link data from the message queue. At this time, the method in this embodiment may include:
[0139] Step S401: Based on the link identifier, determine the message queue corresponding to each of the multiple sub-link data.
[0140] In this context, for multiple communication links between the aggregation server and the aggregation terminal, different communication links can correspond to different message queues, and the sub-link data transmitted through different communication links can also correspond to different message queues. To ensure data transmission quality and efficiency, after determining the aggregation process corresponding to multiple sub-link data, the message queue corresponding to each sub-link data can be determined based on the link identifier within the sub-link data. The message queue can be implemented as a shared memory queue.
[0141] Step S402: Send multiple sub-link data to the corresponding message queues.
[0142] After acquiring multiple sub-link data, the data can be sent to the corresponding message queues through multiple communication links. Specifically, sending multiple sub-link data to the corresponding message queues can include: acquiring a data transmission process for transmitting multiple sub-link data; and sending the data to the corresponding message queues through the data transmission process using a packet polling method. This enables the sending of sub-link data transmitted by different communication links to the message queues corresponding to the communication links.
[0143] In this embodiment, message queues corresponding to each of the multiple sub-link data are determined based on the link identifier, and then the multiple sub-link data are sent to the corresponding message queues. This effectively enables the sub-link data sent through each communication link to be sent to different message queues, so that the sub-link data can be transmitted stably, and further improves the quality and effect of processing the sub-link data.
[0144] Figure 5 A flowchart illustrating another data processing method provided in this application embodiment; based on any of the above embodiments, refer to the appendix. Figure 5 As shown, this embodiment also provides a technical solution for feeding back data obtained by the target server to the aggregation terminal. In this case, the method in this embodiment may include:
[0145] Step S501: Obtain the data packet sent by the target server.
[0146] After the target server obtains the aggregated data, it can analyze and process the aggregated data to obtain the corresponding data processing results. The target server can selectively feed back the data processing results to the aggregation terminal as needed. When it is necessary to feed back the data processing results to the aggregation terminal, the target server can send the data packet corresponding to the data processing result to the aggregation server, so that the aggregation server can reliably obtain the data packet sent by the target server.
[0147] In other scenarios, the target server can control the aggregated terminal through the aggregation server. Specifically, the user can control the aggregated terminal through both the target server and the aggregation server. In this case, the target server can obtain data packets for adjusting or controlling the aggregated terminal. Alternatively, the target server can automatically generate data packets for controlling the aggregated terminal at a preset frequency and then send the data packets to the aggregation server, thereby enabling the aggregation server to obtain the data packets sent by the target server.
[0148] In some other instances, the target server can send notification-type information to the aggregation terminal through the aggregation server. In this case, the target server can generate corresponding data packets based on the user's input operation, or the target server can periodically generate corresponding data packets and then send the data packets to the aggregation server, so that the aggregation server can obtain the notification-type information to send to the aggregation terminal.
[0149] In other instances, in order to reliably send data packets from the aggregation server to the aggregation terminal, after obtaining the data packets sent by the target server, the method in this embodiment may further include: determining the message queue corresponding to the data packets; and sending the data packets to the message queue.
[0150] Step S502: Determine the target aggregation terminal corresponding to the data packet, and the multiple different communication links between the target aggregation terminal and the target server.
[0151] Since an aggregation server can communicate with one or more aggregation terminals, after the aggregation server receives a data packet, in order to accurately send the data packet to the corresponding aggregation terminal, it can determine the target aggregation terminal corresponding to the data packet. In some instances, determining the target aggregation terminal corresponding to the data packet may include: determining the terminal identifier based on the data packet; and determining the target aggregation terminal based on the terminal identifier.
[0152] In some instances, when the terminal identity can be directly included in the data packet, the terminal identity can be obtained by performing information extraction operations on the data packet. Since one terminal identity can correspond to a unique aggregated terminal, after obtaining the terminal identity, the terminal identity can be analyzed and processed to determine the target aggregated terminal.
[0153] In other instances, determining the target aggregation terminal corresponding to a data packet may include: determining the terminal IP address or terminal IP address and terminal port information based on the data packet; and determining the target aggregation terminal based on the terminal IP address or terminal IP address and terminal port information. Specifically, when the data packet does not include a terminal identifier but includes a terminal IP address or terminal IP address and terminal port information, since each aggregation terminal can correspond to unique IP address or port information, after obtaining the terminal IP address or terminal IP address and terminal port information, the target aggregation terminal can be determined based on the mapping relationship between the terminal IP address or terminal IP address and terminal port information and the aggregation terminal.
[0154] After identifying the target aggregation terminal, multiple different communication links between the target aggregation terminal and the target server can be determined based on the network structure. Different communication links can correspond to different network operators, and the network quality of different communication links can be the same or different.
[0155] Step S503: Perform traffic splitting planning on data packets based on multiple different communication links to obtain sub-data packets corresponding to each of the multiple communication links.
[0156] After obtaining the data packet, since there are multiple different communication links configured between the aggregation server and the aggregation terminal, in order to ensure the quality and efficiency of data packet transmission, the data packet can be divided and planned based on multiple different communication links. This allows us to obtain sub-data packets corresponding to each of the multiple communication links. In some instances, the data packet can be evenly distributed based on multiple different communication links to obtain the same sub-data packets corresponding to multiple communication links.
[0157] In some other instances, data packets can be split and planned based on the communication quality of different communication links. In this case, splitting and planning data packets based on multiple different communication links to obtain multiple sub-data packets may include: obtaining the communication quality of multiple different communication links; splitting data packets based on the communication quality of the communication links to obtain multiple sub-data packets. Specifically, the size of the split sub-data packets is positively correlated with the communication quality.
[0158] For example, when a communication link includes link 1, link 2, link 3, and link 4, the communication quality of each link can be identified first. Assuming the communication quality of each link is quality a for link 1, quality b for link 2, quality c for link 3, and quality d for link 4, and the relationship between the communication quality of each link is: quality b > quality c > quality a > quality d, then when the data is divided into multiple sub-data packets, the data volume of sub-data packet 2 corresponding to link 2 is greater than the data volume of sub-data packet 3 corresponding to link 3, the data volume of sub-data packet 3 corresponding to link 3 is greater than the data volume of sub-data packet 1 corresponding to link 1, and the data volume of sub-data packet 1 corresponding to link 1 is greater than the data volume of sub-data packet 4 corresponding to link 4.
[0159] Step S504: Send multiple sub-data packets to the target aggregation terminal through their corresponding communication links.
[0160] After acquiring multiple sub-data packets, these sub-data packets can be sent to the target aggregation terminal through the corresponding communication link. This effectively enables the aggregation server to stably transmit the data sent by the target server to the target aggregation terminal, further improving the practicality of the method.
[0161] In practical applications, this embodiment provides an aggregation service system that can implement aggregation service operations. The network architecture of the aggregation service system is as follows: Figure 3 As shown, specifically, the aggregation service system can include aggregation terminals and aggregation servers that communicate with the aggregation terminals. An aggregation terminal can communicate with one or more user terminals, such as mobile phones, tablets, personal computers, handheld devices, etc. Specifically, user terminals can access target servers through multiple communication paths provided by the aggregation terminal (access gateway) and the aggregation server to perform corresponding data processing operations. For the aforementioned aggregation server and target server, in order to ensure the quality and efficiency of data processing, the aggregation server and target server can significantly improve communication quality by deploying them close together or increasing egress bandwidth. The aforementioned close deployment can refer to setting up both the aggregation server and target server on the same public cloud or private cloud.
[0162] It is important to note that the communication quality between the aggregation server and the target server is significantly higher than that of a direct connection between the user terminal and the target server. Therefore, multi-path aggregation can significantly improve the communication quality between the terminal and the target server.
[0163] Additionally, see attached document. Figure 6 As shown, for an aggregation server, it can include the following components: network interface card (NIC), DPDK packet sending and receiving process, shared memory, and aggregation process. Each of these components can be used to perform the following steps:
[0164] Network interface card (NIC): The physical or virtual NIC on the aggregation server, which is usually a high-speed NIC with a speed of 10G or higher.
[0165] DPDK packet sending and receiving process: The packet sending and receiving process developed based on the DPDK suite uses packet polling to perform data reading operations. This can replace kernel interrupts, bypass the kernel and directly reach user space, thereby avoiding system calls and memory copying between kernel space and user space, and can also support core binding and memory huge pages to improve performance.
[0166] Specifically, for the aggregation process in the DPDK packet sending and receiving process, one aggregation process can correspond to one aggregation CPU core. Then, based on the aggregation CPU core, corresponding data processing operations can be performed on all the data in the aggregation process. This can avoid the need to replace the aggregation CPU core in the aggregation process later, which is conducive to improving the quality and efficiency of data processing.
[0167] Shared memory: a method of inter-process communication that allows direct exchange of packet memory addresses.
[0168] Aggregation Process: An aggregation service instance that can be deployed on demand. The number of aggregation processes can correspond to the number of CPU cores of the aggregation server. Generally, one CPU core can support one or more aggregation processes, which can effectively improve the quality and efficiency of the aggregation processing service.
[0169] For details, please refer to the appendix. Figure 7 As shown, the aggregation server based on the above architecture can perform the following data processing operations. In the application scenario of uplink data transmission, this data processing operation may include the following steps:
[0170] Step 1: The aggregation terminal obtains the data traffic to be processed, and then sends the data traffic to the aggregation server according to the current communication quality of each path.
[0171] Specifically, the aggregation terminal can obtain the data traffic to be processed through the connected user terminals, and then perform multi-path distribution operation on the data traffic according to the current communication quality of each path. When performing the distribution operation, it can first obtain the sub-data traffic to be distributed on each path, and the sum of the sub-data traffic on all paths includes at least the data traffic to be processed.
[0172] In addition, to ensure the stable operation of multi-path distribution, for each sub-data traffic that needs to be distributed on each path, a path channel identifier header can be encapsulated for each sub-data traffic. The path channel identifier header can include the path ID, the unique identifier ID of the aggregation terminal, and the unique port number of the aggregation server. Then, the sub-data traffic encapsulated with the path channel identifier header can be sent to the aggregation server through the corresponding communication path.
[0173] It should be noted that the path channel identifier header may include not only the path ID, the unique identifier ID of the aggregation terminal, and the unique port number of the aggregation server, but also other data, such as information related to the communication protocol. Those skilled in the art can configure the content of the path channel identifier header according to the specific application scenario or application requirements.
[0174] Step 2: The network interface card in the aggregation server obtains multiple sub-data traffic sent through various paths.
[0175] Step 3: The DPDK packet sending and receiving process reads multiple sub-data traffic from the network card.
[0176] Step 4: The DPDK packet sending and receiving process identifies the current sub-data traffic as data traffic that needs to be aggregated by the unique port number of the aggregation server included in the sub-data traffic. Then, based on the unique identifier ID in the sub-data traffic, it selects the aggregation instance (process) and sends the sub-data traffic (or data packet) into the corresponding shared memory queue by combining the path ID in the path channel identifier header.
[0177] Specifically, after the aggregation server starts, a corresponding aggregation process can be established based on the network architecture such as the aggregation terminal that communicates with the aggregation server. Then, after obtaining the unique identity ID, the corresponding aggregation instance can be selected based on the unique identity ID through hashing, so as to perform the corresponding aggregation processing operation through the selected aggregation instance.
[0178] Step 5: The aggregation instance is configured with path threads corresponding to each path, and then the corresponding sub-data traffic packets can be read from the shared memory through the corresponding path threads in the aggregation instance.
[0179] The path thread can read the corresponding sub-data traffic packets from the shared memory through polling.
[0180] Step 6: The path thread processes the obtained sub-data traffic packets accordingly to obtain processed data traffic packets, and then sends the processed data traffic packets to the aggregation engine for aggregation processing to obtain aggregated data.
[0181] Specifically, the path thread can decapsulate the obtained sub-data traffic packets to obtain statistical information corresponding to the sub-data traffic packets. This statistical information may include packet loss rate, network bandwidth, transmission latency, etc. The communication quality of the corresponding path can be determined through the obtained statistical information.
[0182] After the aggregation engine obtains all the processed data traffic packets, it can determine the aggregation order of all the processed data traffic packets. Then, based on the determined aggregation order, it performs aggregation processing on all processed data traffic packets belonging to the same aggregation terminal, thereby obtaining the aggregated data corresponding to the aggregation terminal.
[0183] Step 7: After the aggregation engine completes the aggregation process, it can write the aggregated data to a shared memory queue.
[0184] Step 8: The DPDK packet sending and receiving process reads the aggregated data from the shared memory queue.
[0185] Step 9: The DPDK packet sending and receiving process writes the aggregated data to the network card.
[0186] Step 10: The aggregated data is forwarded to the target server via the network so that the target server can perform corresponding data processing operations based on the aggregated data.
[0187] In addition, in downlink data transmission scenarios, the downlink data packet forwarding process may include the following steps:
[0188] Step 11: Data traffic on the target server is forwarded to the aggregation server via the communication link.
[0189] The aforementioned data traffic can include notification messages, promotional messages, reminder messages, and so on.
[0190] Step 12: The network interface card in the aggregation server receives data traffic.
[0191] Step 13: The DPDK packet sending and receiving process obtains data traffic from the network card.
[0192] Step 14: The DPDK packet sending and receiving process determines the unique identifier ID of the terminal corresponding to the data traffic, and then sends the data traffic to the corresponding shared memory queue based on the unique identifier ID of the terminal.
[0193] The data traffic may include a unique identifier for the terminal. In this case, the unique identifier for the terminal can be determined by performing feature extraction on the data traffic. If the data traffic does not include a unique identifier for the terminal, the IP address and port number corresponding to the data traffic can be obtained, and the unique identifier for the terminal can be determined based on the IP address and port number.
[0194] Step 15: The aggregation engine reads data traffic from shared memory.
[0195] Step 16: The aggregation engine distributes data traffic through multiple paths based on the current communication quality of each path, thereby obtaining multiple sub-traffic corresponding to the data traffic, and then sends the sub-traffic to the corresponding path thread.
[0196] Step 17: When the path thread performs corresponding processing operations on the sub-traffic, it can write the processed data packets into the shared memory queue.
[0197] Step 18: The DPDK packet sending and receiving process reads data packets from the shared memory queue.
[0198] Step 19: The DPDK packet sending and receiving process writes data packets to the network card.
[0199] Step 110: The data packet is forwarded through the network to the aggregation terminal, which completes the aggregation processing of the downlink packets and forwards them to the actual terminal.
[0200] The technical solution provided in this application embodiment uses the DPDK packet sending and receiving process to improve data forwarding performance. Furthermore, all data sent by one or more aggregation terminals obtained by the aggregation server uses a unified port number, which can overcome the limitation of the limited number of port numbers on a single machine, further improving the quality and efficiency of the aggregation service. In addition, the number of aggregation processes is configurable, which simplifies the scheduling of aggregation processes and enables flexible configuration of multiple aggregation processes, further improving the practicality of the method and facilitating its promotion and application in the market.
[0201] Figure 8 A flowchart illustrating a data processing method provided in an embodiment of this application; see attached document. Figure 8 As shown, this embodiment provides a data processing method. The execution subject of this method is a data processing device. It can be understood that the data processing device can be implemented as software or a combination of software and hardware. Specifically, when the data processing device is implemented as hardware, it can be various electronic devices with data processing operations, including but not limited to access gateways, etc. When the data processing device is implemented as software, it can be installed in the electronic devices exemplified above.
[0202] In some instances, the data processing device can be implemented as an aggregation terminal, meaning the aforementioned data processing method can be applied to the aggregation terminal, which communicates with the aggregation server through multiple different communication links. Based on the aforementioned aggregation terminal, the data processing method may include:
[0203] Step S801: Obtain the data to be processed.
[0204] The aggregation terminal can be connected to one or more user terminals, such as mobile phones, personal computers, tablets, and smart wearable devices. When a user terminal has a data processing requirement, it can send the corresponding data to be processed to the aggregation terminal based on the data processing requirement, so that the aggregation terminal can obtain the data to be processed sent by the user terminal.
[0205] In other instances, the data to be processed can be generated from user-inputted operations. In this case, the aggregation terminal can be configured with a display interface to capture the user's input operations and retrieve the data to be processed based on these operations. In still other instances, the data to be processed can be stored in a preset area or a third device, and can be retrieved by accessing the preset area or the third device.
[0206] Step S802: Determine multiple different communication links between the aggregation terminal and the aggregation server, which is used to process the data to be processed.
[0207] In this context, multiple different communication links can be configured between the aggregation terminal and the aggregation server. In order to achieve a stable communication connection between the aggregation terminal and the aggregation server, after obtaining the data to be processed, multiple different communication links between the aggregation terminal and the aggregation server can be determined. These different communication links can correspond to different communication qualities and require different operators for operation and maintenance.
[0208] Step S803: Based on multiple different communication links, perform flow planning for the data to be processed, and obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0209] After the aggregation terminal obtains the data to be processed, it can send the data to the aggregation server. Since there are multiple different communication links between the aggregation terminal and the aggregation server, and different communication links can have different data transmission effects, in order to ensure that the data to be processed is sent to the aggregation server stably, the data to be processed can be split and planned based on multiple different communication links. This allows us to obtain the sub-link data corresponding to each communication link. The obtained sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. All the sub-link data corresponds to the same port identifier of the aggregation server. This port identifier is used to identify multiple sub-link data as data to be aggregated. The aforementioned terminal identity identifier is used to determine the aggregation process used to analyze and process the sub-link data, and the aforementioned link identifier is used to determine the link thread used to analyze and process the sub-link data.
[0210] In addition, there are various ways to implement traffic splitting planning. In some instances, traffic splitting planning is performed on the data to be processed based on multiple different communication links to obtain the sub-link data corresponding to each communication link. This can include: distributing the data to be processed equally based on the number of communication links, thereby obtaining the sub-link data corresponding to each communication link. In this case, the amount of data in the sub-link data corresponding to any two communication links is the same.
[0211] In other instances, the data to be processed can be split and planned based on the communication quality of the communication links. Specifically, splitting and planning the data to be processed based on multiple different communication links to obtain the corresponding sub-link data for each communication link may include: determining the communication quality of each of the multiple different communication links; splitting and planning the data to be processed based on the communication quality to obtain the corresponding sub-link data for each communication link, wherein the data size of the sub-link data is positively correlated with the communication quality.
[0212] For communication links, their quality is often related to their operational characteristics (whether they are functioning normally) and network characteristics (network bandwidth, packet loss rate, transmission latency, response speed, signal strength, etc.). Therefore, when using communication links for data transmission, their operational and network characteristics can be obtained to determine their communication quality. After obtaining the communication quality, the data to be processed can be routed and planned accordingly, thus obtaining the corresponding sub-link data for each communication link. Specifically, for communication links with high communication quality, larger data volumes can be allocated to sub-links, while for communication links with poor communication quality, smaller data volumes can be allocated to sub-links. This effectively ensures both the quality and efficiency of data transmission.
[0213] In some other instances, since the aggregation terminal acquires multiple sub-link data after the traffic splitting plan, in order to ensure the accuracy and reliability of the analysis and processing of each sub-link data, the traffic splitting plan for the data to be processed based on communication quality in this embodiment, and the acquisition of the sub-link data corresponding to each communication link, may include: acquiring the link identifiers corresponding to each of the multiple communication links, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server; performing traffic splitting plan for the data to be processed based on communication quality to obtain the split data corresponding to each of the multiple communication links; generating a data packet header corresponding to each communication link based on the link identifier, terminal identity identifier, and port identifier; and adding the data packet header to the corresponding split data to obtain the sub-link data corresponding to each communication link.
[0214] Through the above operations, sub-link data including data packet headers can be effectively obtained. Then, based on the port identifier in the data packet header of each obtained sub-link data, it can be determined whether the sub-link data is the data to be aggregated. Based on the terminal identity identifier, the aggregation process used to analyze and process the sub-link data can be determined. Based on the link identifier, the link thread used to analyze and process the sub-link data can be determined, which further improves the accuracy and reliability of the sub-link data analysis and processing.
[0215] Step S804: Send the sub-link data corresponding to each communication link to the aggregation server through the communication link so that the aggregation server can process the data to be processed.
[0216] After obtaining the sub-link data corresponding to each communication link, the sub-link data can be sent to the aggregation server through the corresponding communication link, so that the aggregation server can perform the corresponding aggregation operation on the data to be processed, obtain the aggregated data, and send the aggregated data to the target server for corresponding data processing operation.
[0217] The data processing method provided in this embodiment acquires the data to be processed; determines multiple different communication links between the aggregation terminal and the aggregation server; performs traffic splitting planning on the data to be processed based on the multiple different communication links to obtain the sub-link data corresponding to each communication link; and then sends the sub-link data corresponding to each communication link to the aggregation server through the communication links so that the aggregation server can process the data to be processed. This effectively realizes the data processing operation of multiple aggregation terminals through a unified port corresponding to the aggregation server. This effectively solves the problem that the aggregation server can only support a limited number of aggregation services due to port resource limitations, thereby enabling the aggregation server to support multiple aggregation terminals, significantly improving the performance of the aggregation server, reducing the cost of aggregation services, further improving the practicality of the method, and facilitating market promotion and application.
[0218] Figure 9 A flowchart illustrating a live data processing method provided in this application embodiment; see attached document. Figure 9 As shown, this embodiment provides a method for processing live streaming data. The execution subject of this method is a live streaming data processing device. It can be understood that the live streaming data processing device can be implemented as software or a combination of software and hardware. Specifically, when the live streaming data processing device is implemented as hardware, it can be various electronic devices with data processing operations, including but not limited to access gateways, etc. When the live streaming data processing device is implemented as software, it can be installed in the electronic devices exemplified above.
[0219] In some instances, the live data processing device can be implemented as an aggregation terminal, meaning the aforementioned live data processing method can be applied to the aggregation terminal. This aggregation terminal communicates with the aggregation server through multiple different communication links, and it can communicate with one or more live terminals. Based on the aforementioned aggregation terminal, the live data processing method can include:
[0220] Step S901: Obtain the live data to be processed.
[0221] Step S902: Determine multiple different communication links between the aggregation terminal and the aggregation server, which is used to process the live data.
[0222] Step S903: Based on multiple different communication links, perform a splitting plan for the live data to obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0223] Step S904: Send the data of the sub-links corresponding to each communication link to the aggregation server through the communication link so that the aggregation server can process the live data.
[0224] The aggregation terminal can communicate with one or more live streaming terminals and obtain live streaming data to be processed through these terminals. In live streaming scenarios, the live streaming data is often transmitted to a preset cloud network or cloud live streaming service network via the aggregation terminal and aggregation server, and then distributed through the preset cloud network or cloud live streaming service network. It is important to note that live streaming scenarios include, but are not limited to, remote education, live courses, and telemedicine in educational settings. The live streaming data differs in different scenarios and can have different functions.
[0225] Based on the above statements, the live data in this embodiment can refer to the data sent from the live terminal to the aggregation terminal, so that the aggregation terminal can obtain the live data to be processed. Then, the live data can be split and transmitted according to multiple different communication links between the aggregation terminal and the aggregation server, so as to send the live data to the aggregation server for corresponding processing operations, so as to achieve stable and effective live operation.
[0226] It should be noted that the method in this embodiment may also include Figures 2-8 For the methods shown in the embodiments, the parts not described in detail in this embodiment can be referred to the following: Figures 2-8 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figures 2-8 The descriptions in the illustrated embodiments will not be repeated here.
[0227] Figure 10 A schematic flowchart of a vehicle control method provided in this application embodiment; see attached document. Figure 10As shown, this embodiment provides a vehicle control method. The executing entity of the vehicle control method can be a vehicle control device, wherein the vehicle control device can be implemented as an aggregation terminal, that is, the vehicle control method can be applied to the aggregation terminal. The aggregation terminal can be communicatively connected to one or more vehicles to be controlled. In this case, the vehicle control method may include:
[0228] Step S1001: Obtain vehicle operation data of the vehicle to be controlled.
[0229] Step S1002: Determine multiple different communication links between the aggregation terminal and the aggregation server, which is used to process vehicle operation data.
[0230] Step S1003: Based on multiple different communication links, perform traffic splitting planning for vehicle operation data to obtain sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0231] Step S1004: Send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information.
[0232] Step S1005: Obtain vehicle control information corresponding to the vehicle to be controlled through the aggregation server.
[0233] Step S1006: Control the vehicle under control based on the vehicle control information.
[0234] Specifically, during the operation of the vehicle under control (whether driverless or manned), in order to achieve accurate and effective control, the aggregation terminal can acquire the vehicle's operational data, which may include the vehicle's current location, speed, and operating status. After acquiring the operational data, to ensure stable and reliable vehicle control, the data can be forwarded to the aggregation server in the vehicle communication network. Specifically, the aggregation terminal can establish multiple communication links with the aggregation server and then perform data routing and transmission operations based on these links. This allows the aggregation server to acquire the operational data and perform corresponding processing to obtain vehicle control information. This control information may include destination control information, route control information, etc. Based on this information, stable and effective control operations can be performed on the vehicle under control. For example, the vehicle can be controlled to switch lanes from lane 1 to lane 2 based on the route control information.
[0235] In some instances, to improve the stability and reliability of vehicle control, sensors can be installed on the vehicle to be controlled. These sensors can quickly acquire operational status data corresponding to the vehicle. This operational status data can include at least one of the following: the vehicle's current speed, direction of travel, and environmental information. The environmental information includes the location of surrounding objects, the speed of vehicles ahead, and the speed limit of the road where the vehicle is located. In some instances, the sensors can include image acquisition sensors, radar sensors, and GPS (Global Positioning System). Specifically, image acquisition sensors, radar sensors, and GPS are used to determine the operational status data corresponding to the vehicle to be controlled.
[0236] It should be noted that, for vehicle control devices, the vehicle control device can be installed on the vehicle, or the vehicle control device can be set up independently of the vehicle. In the latter case, the vehicle control device can communicate with the vehicle's CPU.
[0237] Furthermore, vehicle control devices can be adjusted according to different vehicles. That is, the algorithm modules included in the vehicle control device will differ depending on the vehicle type. In this case, the vehicle control device can not only perform autonomous driving control operations but also other operations. For example, logistics vehicles, public service vehicles, medical service vehicles, and terminal service vehicles will involve different vehicle control devices. The following examples illustrate the algorithm modules included in the vehicle control devices for these four types of autonomous vehicles:
[0238] Logistics vehicles refer to vehicles used in logistics scenarios, such as logistics vehicles with automatic sorting functions, logistics vehicles with refrigeration and insulation functions, and logistics vehicles with measurement functions. These logistics vehicles involve different algorithm modules.
[0239] For example, logistics vehicles can be equipped with automated sorting devices that can automatically retrieve, transport, sort, and store goods after the vehicle arrives at its destination. This involves an algorithm module for goods sorting, which mainly implements the logical control of goods retrieval, handling, sorting, and storage.
[0240] For example, in cold chain logistics scenarios, logistics vehicles can also be equipped with refrigeration and insulation devices. These devices can refrigerate or keep warm transported fruits, vegetables, aquatic products, frozen foods, and other perishable foods, maintaining them in a suitable temperature environment and solving the problem of long-distance transportation of perishable foods. This involves an algorithm module for refrigeration and insulation control. This module is mainly used to dynamically and adaptively calculate the appropriate temperature for refrigeration or insulation based on information such as the nature of the food (or item), its perishability, transportation time, current season, and climate. Based on this appropriate temperature, the refrigeration and insulation device is automatically adjusted. This eliminates the need for manual temperature adjustments by transport personnel when transporting different foods or items, freeing them from tedious temperature control and improving the efficiency of refrigerated and insulated transportation.
[0241] For example, in most logistics scenarios, charges are based on package volume and / or weight. However, the number of logistics packages is enormous, and relying solely on couriers to measure package volume and / or weight is highly inefficient and labor-intensive. Therefore, some logistics vehicles are equipped with measuring devices that automatically measure the volume and / or weight of logistics packages and calculate the cost. This involves an algorithm module for logistics package measurement. This module primarily identifies the type of logistics package, determines the measurement method (e.g., volume measurement, weight measurement, or a combination of both), and completes the volume and / or weight measurement based on the determined method, as well as calculating the cost based on the measurement results.
[0242] Public service vehicles refer to vehicles that provide certain public services, such as fire trucks, de-icing trucks, water trucks, snowplows, garbage trucks, and traffic control vehicles. These public service vehicles involve different algorithm modules.
[0243] For example, the main task of an autonomous fire truck is to carry out reasonable fire extinguishing tasks at the fire scene. This involves an algorithm module for fire extinguishing tasks. This algorithm module needs to realize at least the logic of fire condition identification, fire extinguishing plan planning, and automatic control of fire extinguishing devices.
[0244] For example, the main task of a de-icing truck is to remove ice and snow from the road surface. This involves a de-icing algorithm module, which at least needs to identify the ice and snow conditions on the road surface, formulate a de-icing plan based on the ice and snow conditions, such as which road sections need de-icing, which road sections do not need de-icing, whether to use salting, the amount of salt to be applied, and the logic for automatic control of the de-icing device after determining the de-icing plan.
[0245] Among them, medical service vehicles refer to autonomous vehicles capable of providing one or more medical services. These vehicles can provide medical services such as disinfection, temperature measurement, medication dispensing, and isolation. This involves algorithm modules that provide various self-service medical services. These algorithm modules mainly realize the identification of disinfection needs and the control of disinfection devices so that the disinfection devices can disinfect patients; or the identification of patient positions and the control of temperature measuring devices to automatically place them close to the patient's forehead or other positions to measure the patient's temperature; or the identification of symptoms, the provision of prescriptions based on the diagnosis results, and the identification of medicines / medicine containers, as well as the control of the medication dispensing robot to make it grab medicines for patients according to the prescription, etc.
[0246] Among them, terminal service vehicles refer to self-service autonomous vehicles that can replace some terminal equipment to provide users with certain convenient services. For example, these vehicles can provide users with services such as printing, attendance, scanning, unlocking, payment, and retail.
[0247] For example, in some application scenarios, users often need to go to a specific location to print or scan documents, which is time-consuming and laborious. Therefore, a terminal service vehicle has emerged that can provide printing / scanning services to users. These service vehicles can interconnect with user terminal devices. Users issue print commands through their terminal devices, and the service vehicle responds by automatically printing the required documents and delivering them to the user's location. Users do not need to queue at the printer, greatly improving printing efficiency. Alternatively, it can respond to scanning commands issued by users through their terminal devices, move to the user's location, and the user places the document to be scanned on the service vehicle's scanning tool to complete the scan, eliminating the need to queue at the printer / scanner and saving time and effort. This involves an algorithm module that provides printing / scanning services. This algorithm module needs to at least recognize the interconnection with the user's terminal device, the response to print / scan commands, the user's location, and movement control.
[0248] For example, with the development of new retail scenarios, more and more e-commerce companies are using vending machines to deliver goods to office buildings and public areas. However, these vending machines are placed in fixed locations and cannot be moved. Users need to go to the vending machine to purchase the goods they need, which is inconvenient. Therefore, self-driving vehicles providing retail services have emerged. These vehicles can carry goods automatically and provide corresponding self-service shopping apps or shopping portals. Users can place orders with the self-driving vehicles using their mobile phones or other terminals through the apps or shopping portals. The order includes the name and quantity of the goods to be purchased and the user's location. After receiving the order request, the vehicle can determine whether the remaining goods are available and whether the quantity is sufficient. If the goods are available and the quantity is sufficient, the vehicle can automatically move to the user's location and provide the goods, further improving the convenience of shopping, saving users time, and allowing them to focus on more important things. This involves the algorithm modules for providing retail services. These algorithm modules mainly implement logic such as responding to user order requests, order processing, product information maintenance, user location positioning, and payment management.
[0249] It should be noted that the method in this embodiment may also include Figures 2-8 For the methods shown in the embodiments, parts not described in detail in this embodiment can be referred to the following: Figures 2-8 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figures 2-8 The descriptions in the illustrated embodiments will not be repeated here.
[0250] Figure 11 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application; see attached drawing. Figure 11 As shown, this embodiment provides a data processing device, which is used for the above-mentioned... Figure 2 The data processing method shown, in some instances, can be applied to an aggregation server that communicates with aggregation terminals through multiple different communication links. Specifically, the device includes:
[0251] The first acquisition module 11 is used to acquire multiple sub-link data sent by the aggregation terminal through multiple different communication links. The sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify the multiple sub-link data as data to be aggregated.
[0252] The first determining module 12 is used to determine the aggregation process corresponding to multiple sub-link data based on the terminal identity identifier;
[0253] The first processing module 13 is used to aggregate data from multiple sub-links based on the aggregation process and link identifier to obtain aggregated data.
[0254] The first sending module 14 is used to send the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0255] In some instances, after determining the aggregation process corresponding to multiple sub-link data, the first determining module 12 and the first sending module 14 in this embodiment are used to perform the following steps:
[0256] The first determining module 12 is used to determine the message queue corresponding to each of the multiple sub-link data based on the link identifier;
[0257] The first sending module 14 is used to send data from multiple sub-links to corresponding message queues.
[0258] In some instances, when the first sending module 14 sends multiple sub-link data to the corresponding message queues, the first sending module 14 is used to perform: obtaining a data transmission process for transmitting multiple sub-link data; and sending multiple sub-link data to the corresponding message queues through the data transmission process and by using packet polling.
[0259] In some instances, when the first processing module 13 performs aggregation processing on multiple sub-link data based on the aggregation process and link identifier to obtain aggregated data, the first processing module 13 is used to perform the following: based on the aggregation process and link identifier, determine the link thread corresponding to each of the multiple communication links; read data from the message queue through the link thread to obtain multiple sub-link data; and perform aggregation processing on all the sub-link data to obtain aggregated data.
[0260] In some instances, when the first processing module 13 aggregates all the sub-link data to obtain aggregated data, the first processing module 13 is used to perform: determining the data order among all the sub-link data; and aggregating all the sub-link data based on the data order to obtain aggregated data.
[0261] In some instances, before aggregating all sub-link data, the first processing module 13 in this embodiment performs the following steps: decapsulating all sub-link data through a link thread to obtain processed data corresponding to each sub-link data; performing feature statistics on the processed data to obtain statistical information corresponding to each sub-link data; and determining the communication quality of each communication link based on the statistical information.
[0262] In some instances, when the first sending module 14 sends the aggregated data to the target server, the first sending module 14 is used to perform the following: sending the aggregated data to a message queue; reading the aggregated data from the message queue through a data sending and receiving process, and sending the aggregated data to the target server.
[0263] In some instances, the first acquisition module 11, the first determination module 12, the first processing module 13, and the first sending module 14 in this embodiment are used to perform the following steps:
[0264] The first acquisition module 11 is used to acquire data packets sent by the target server;
[0265] The first determining module 12 is used to determine the target aggregation terminal corresponding to the data packet, and multiple different communication links between the target aggregation terminal and the target server;
[0266] The first processing module 13 is used to perform traffic splitting planning on data packets based on multiple different communication links, and obtain the sub-data packets corresponding to each of the multiple communication links.
[0267] The first sending module 14 is used to send multiple sub-data packets to the target aggregation terminal through the corresponding communication link.
[0268] In some instances, when the first determining module 12 determines the target aggregation terminal corresponding to the data packet, the first determining module 12 is used to perform: determining the terminal identity identifier based on the data packet; and determining the target aggregation terminal based on the terminal identity identifier.
[0269] In some instances, after obtaining the data packet sent by the target server, the first determining module 12 and the first sending module 14 in this embodiment are used to perform the following steps:
[0270] The first determining module 12 is used to determine the message queue corresponding to the data packet;
[0271] The first sending module 14 is used to send data packets to the message queue.
[0272] Figure 11 The device shown can perform Figures 2-8 For the methods shown in the embodiments, the parts not described in detail in this embodiment can be referred to the following: Figures 2-8 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figures 2-8 The descriptions in the illustrated embodiments will not be repeated here.
[0273] In one possible design, Figure 11The data processing device shown can be implemented as an electronic device, which can be various devices such as an aggregation server. When the data processing device is implemented as an aggregation server, the aggregation server communicates with the aggregation terminal through multiple different communication links. (See attached document.) Figure 12 As shown, specifically, the electronic device may include a first processor 21 and a first memory 22. The first memory 22 is used to store data executed by the corresponding electronic device. Figure 2 In the data processing method program provided in the illustrated embodiment, the first processor 21 is configured to execute the program stored in the first memory 22.
[0274] The program includes one or more computer instructions, wherein when executed by the first processor 21, the one or more computer instructions can perform the following steps: acquiring multiple sub-link data sent by the aggregation terminal through multiple different communication links, wherein the sub-link data includes the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server, wherein the port identifier is used to identify the multiple sub-link data as data to be aggregated; determining the aggregation process corresponding to the multiple sub-link data based on the terminal identity identifier; performing aggregation processing on the multiple sub-link data based on the aggregation process and the link identifier to obtain aggregated data; and sending the aggregated data to the target server so that the target server can perform corresponding data processing operations based on the aggregated data.
[0275] Furthermore, the first processor 21 is also used to perform the aforementioned Figure 2 All or part of the steps in the illustrated embodiments. The electronic device may also include a first communication interface 23 for communication between the electronic device and other devices or communication networks.
[0276] In addition, embodiments of the present invention provide a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the above-described... Figure 2 The procedure involved in the data processing method in the illustrated embodiment.
[0277] Furthermore, embodiments of the present invention provide a computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to perform... Figure 2 The data processing method in the illustrated embodiment.
[0278] Figure 13 This is a schematic diagram of the structure of another data processing apparatus provided in the embodiments of this application; see attached drawing. Figure 13 As shown, this embodiment provides yet another data processing apparatus that can perform the above-described... Figure 8 The data processing method and the data processing device shown can be applied to an aggregation terminal. In this embodiment, the data processing device may include:
[0279] The second acquisition module 31 is used to acquire data to be processed;
[0280] The second determining module 32 is used to determine multiple different communication links between the aggregation terminal and the aggregation server, and the aggregation server is used to process the data to be processed.
[0281] The second processing module 33 is used to perform flow planning on the data to be processed based on multiple different communication links, and to obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0282] The second sending module 34 is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can perform processing operations on the data to be processed.
[0283] In some instances, when the second processing module 33 performs traffic splitting planning on the data to be processed based on multiple different communication links to obtain the sub-link data corresponding to each communication link, the second processing module 33 is used to perform: determining the communication quality corresponding to each of the multiple different communication links; performing traffic splitting planning on the data to be processed based on the communication quality to obtain the sub-link data corresponding to each communication link, wherein the data volume of the sub-link data is positively correlated with the communication quality.
[0284] In some instances, when the second processing module 33 performs traffic splitting planning on the data to be processed based on communication quality to obtain the sub-link data corresponding to each communication link, the second processing module 33 performs the following: obtaining the link identifiers corresponding to each of the multiple communication links, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server; performing traffic splitting planning on the data to be processed based on communication quality to obtain the split data corresponding to each of the multiple communication links; generating data packet headers corresponding to each communication link based on the link identifiers, terminal identity identifiers, and port identifiers; and adding the data packet headers to the corresponding split data to obtain the sub-link data corresponding to each communication link.
[0285] Figure 13 The device shown can perform Figure 8 For the methods shown in the embodiments, the parts not described in detail in this embodiment can be referred to the following: Figure 8 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figure 8 The descriptions in the illustrated embodiments will not be repeated here.
[0286] In one possible design, Figure 13The data processing device shown can be implemented as an electronic device, which can be a controller, personal computer, aggregation terminal, or other similar devices. (See attached document for reference.) Figure 14 As shown, specifically, the electronic device may include: a second processor 41 and a second memory 42. The second memory 42 is used to store data executed by the corresponding electronic device. Figure 8 In the data processing method program provided in the illustrated embodiment, the second processor 41 is configured to execute the program stored in the second memory 42.
[0287] The program includes one or more computer instructions, wherein when executed by the second processor 41, the one or more computer instructions can perform the following steps: acquiring data to be processed; determining multiple different communication links between the aggregation terminal and the aggregation server, the aggregation server being used to process the data to be processed; performing a traffic splitting plan on the data to be processed based on the multiple different communication links, obtaining sub-link data corresponding to each communication link, the sub-link data including: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server, the port identifier being used to identify multiple sub-link data as data to be aggregated; sending the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can perform processing operations on the data to be processed.
[0288] Furthermore, the second processor 41 is also used to perform the aforementioned Figure 8 All or part of the steps in the illustrated embodiments. The electronic device may also include a second communication interface 43 for communication between the electronic device and other devices or communication networks.
[0289] In addition, embodiments of the present invention provide a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the above-described... Figure 8 The procedure involved in the data processing method in the illustrated embodiment.
[0290] Furthermore, embodiments of the present invention provide a computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to perform... Figure 8 The data processing method in the illustrated embodiment.
[0291] Figure 15 A schematic diagram of a live data processing device provided in this application embodiment; see attached drawing. Figure 15 As shown, this embodiment provides a live data processing device, which is used to perform... Figure 9 The live data processing method shown can be implemented in some instances by using a live data processing device on an aggregation terminal. In this case, the live data processing device may include:
[0292] The third acquisition module 51 is used to acquire the live data to be processed.
[0293] The third determining module 52 is used to determine multiple different communication links between the aggregation terminal and the aggregation server, which is used to process the live data.
[0294] The third processing module 53 is used to perform streaming planning on live data based on multiple different communication links, and to obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0295] The third sending module 54 is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the live data.
[0296] Figure 15 The device shown can perform Figure 9 For the methods shown in the embodiments, the parts not described in detail in this embodiment can be referred to the following: Figure 9 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figure 9 The descriptions in the illustrated embodiments will not be repeated here.
[0297] In one possible design, Figure 15 The structure of the live data processing device shown can be implemented as an electronic device, which can be a controller, personal computer, server, or other various devices. (See attached document for reference.) Figure 16 As shown, specifically, the electronic device may include a third processor 61 and a third memory 62. The third memory 62 is used to store data executed by the corresponding electronic device. Figure 9 In the live data processing method provided in the illustrated embodiment, the third processor 61 is configured to execute the program stored in the third memory 62.
[0298] The program includes one or more computer instructions, which, when executed by the third processor 61, can perform the following steps: acquiring live data to be processed; determining multiple different communication links between the aggregation terminal and the aggregation server, the aggregation server being used to process the live data; performing a traffic splitting plan on the live data based on the multiple different communication links to obtain sub-link data corresponding to each communication link, the sub-link data including: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server, the port identifier being used to identify multiple sub-link data as data to be aggregated; and sending the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can perform processing operations on the live data.
[0299] Furthermore, the third processor 61 is also used to perform the aforementioned... Figure 9 All or part of the steps in the illustrated embodiments. The electronic device may also include a third communication interface 63 for communication between the electronic device and other devices or communication networks.
[0300] In addition, embodiments of the present invention provide a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the above-described... Figure 9 The procedure involved in the live data processing method in the illustrated method embodiment.
[0301] Furthermore, embodiments of the present invention provide a computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to perform... Figure 9 The method for processing live data in the illustrated embodiment.
[0302] Figure 17 This is a schematic diagram of the structure of a vehicle control device provided in an embodiment of this application; see attached drawing. Figure 17 As shown, this embodiment provides a vehicle control device, the processing device being used to execute... Figure 10 In some instances of the vehicle control method illustrated, the vehicle control device can be applied to an aggregation terminal. In this case, the vehicle control device may include:
[0303] The fourth acquisition module 71 is used to acquire vehicle operation data of the vehicle to be controlled.
[0304] The fourth determining module 72 is used to determine multiple different communication links between the aggregation terminal and the aggregation server, which is used to process vehicle operation data.
[0305] The fourth processing module 73 is used to perform traffic splitting planning on vehicle operation data based on multiple different communication links, and to obtain the sub-link data corresponding to each communication link. The sub-link data includes: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify multiple sub-link data as data to be aggregated.
[0306] The fourth sending module 74 is used to send the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information.
[0307] The fourth acquisition module 71 is used to acquire vehicle control information corresponding to the vehicle to be controlled through the aggregation server.
[0308] The fourth control module 75 is used to control the vehicle under control based on vehicle control information.
[0309] Figure 17 The device shown can perform Figure 10 For the methods shown in the embodiments, the parts not described in detail in this embodiment can be referred to the following: Figure 10 The relevant descriptions of the illustrated embodiments are provided below. For the execution process and technical effects of this technical solution, please refer to [link / reference]. Figure 10 The descriptions in the illustrated embodiments will not be repeated here.
[0310] In one possible design, Figure 17 The vehicle control device shown can be implemented as an electronic device, which can be a controller, personal computer, server, or other various devices. In some examples, this vehicle control device can be applied to an aggregation terminal. (See attached document.) Figure 18 As shown, specifically, the electronic device may include a fourth processor 81 and a fourth memory 82. The fourth memory 82 is used to store data executed by the corresponding electronic device. Figure 10 In the vehicle control method program provided in the illustrated embodiment, the fourth processor 81 is configured to execute the program stored in the fourth memory 82.
[0311] The program includes one or more computer instructions, which, when executed by the fourth processor 81, can achieve the following steps: acquiring vehicle operation data of the vehicle to be controlled; determining multiple different communication links between the aggregation terminal and the aggregation server, the aggregation server being used to process the vehicle operation data; performing traffic distribution planning on the vehicle operation data based on the multiple different communication links to obtain sub-link data corresponding to each communication link, the sub-link data including: the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server, the port identifier being used to identify multiple sub-link data as data to be aggregated; sending the sub-link data corresponding to each communication link to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information; obtaining vehicle control information corresponding to the vehicle to be controlled through the aggregation server; and controlling the vehicle to be controlled based on the vehicle control information.
[0312] Furthermore, the fourth processor 81 is also used to perform the aforementioned... Figure 10 All or part of the steps in the illustrated embodiments. The electronic device may also include a fourth communication interface 83 for communication between the electronic device and other devices or communication networks.
[0313] In addition, embodiments of the present invention provide a computer storage medium for storing computer software instructions used by an electronic device, which includes instructions for executing the above-described... Figure 10 The procedure involved in the vehicle control method in the illustrated method embodiment.
[0314] Furthermore, embodiments of the present invention provide a computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to perform... Figure 10 The vehicle control method in the illustrated embodiment.
[0315] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.
[0316] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of a necessary general-purpose hardware platform, or by a combination of hardware and software. Based on this understanding, the above technical solutions, in essence or the part that contributes to the prior art, can be embodied in the form of a computer product. This application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0317] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable device, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0318] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The functions specified in one or more boxes. These computer program instructions may also be loaded onto a computer or other programmable device to cause a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0319] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, a network interface, and memory. Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0320] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0321] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A data processing method, characterized by, The method is applied to a aggregation server, the aggregation server is connected with an aggregation terminal through a plurality of different communication links, the aggregation terminal connects a plurality of user terminals, and the method comprises the following steps: Obtaining a plurality of sub-link data sent by the aggregation terminal through a plurality of different communication links, the plurality of sub-link data being sent by the plurality of user terminals to the aggregation terminal, the sub-link data comprising a link identifier of a communication link, a terminal identity identifier of the aggregation terminal and a port identifier of the aggregation server, the port identifier being used for identifying that the plurality of sub-link data is data to be aggregated, and the port identifiers comprised in the plurality of sub-link data being the same; Based on the terminal identity identifier, determining an aggregation process corresponding to the plurality of sub-link data; Based on the aggregation process and the link identifier, performing aggregation processing on the plurality of sub-link data to obtain aggregated data; Sending the aggregated data to a target server, so that the target server performs corresponding data processing operations based on the aggregated data.
2. The method of claim 1, wherein, After determining the aggregation process corresponding to the plurality of sub-link data, the method further comprises the following steps: Based on the link identifier, determining a message queue corresponding to each of the plurality of sub-link data; Sending the plurality of sub-link data to the corresponding message queue.
3. The method of claim 2, wherein, The step of sending the plurality of sub-link data to the corresponding message queue comprises the following steps: Obtaining a data transceiving process for transmitting the plurality of sub-link data; Sending the plurality of sub-link data to the corresponding message queue in the form of data packet polling through the data transceiving process.
4. The method of claim 2, wherein, Based on the aggregation process and the link identifier, determining a link thread corresponding to each of the plurality of communication links; Reading data in the message queue through the link thread to obtain the plurality of sub-link data; Performing aggregation processing on all the sub-link data to obtain the aggregated data. The step of performing aggregation processing on all the sub-link data to obtain the aggregated data comprises the following steps:
5. The method of claim 4, wherein, Determining the data order between all the sub-link data; Based on the data order, performing aggregation processing on all the sub-link data to obtain the aggregated data. Before performing aggregation processing on all the sub-link data, the method further comprises the following steps:
6. The method of claim 4, wherein, Through the link thread, unpacking all the sub-link data to obtain processed data corresponding to each sub-link data; Performing feature statistics on the processed data to obtain statistical information corresponding to each sub-link data; Based on the statistical information, determining the communication quality of each communication link. The step of sending the aggregated data to the target server comprises the following steps:
7. The method of claim 3, wherein, Sending the aggregated data to the message queue; Reading the aggregated data in the message queue through the data transceiving process, and sending the aggregated data to the target server. The method further comprises the following steps:
8. The method according to any one of claims 1 to 7, characterized in that, Obtaining a data packet sent by a target server; determining a target aggregation terminal corresponding to the data packet and a plurality of different communication links between the target aggregation terminal and the target server; planning shunting of the data packet based on the plurality of different communication links to obtain a plurality of sub-packets corresponding to the communication links respectively; sending the plurality of sub-packets to the target aggregation terminal through the corresponding communication links.
9. The method of claim 8, wherein, After obtaining the data packet sent by the target server, the method further comprises: determining a message queue corresponding to the data packet; sending the data packet to the message queue.
10. A data processing method, characterized by, Applied to an aggregation terminal, the method comprises: obtaining to-be-processed data; determining a plurality of different communication links between the aggregation terminal and an aggregation server, the aggregation server being configured to process the to-be-processed data; planning shunting of the to-be-processed data based on the plurality of different communication links to obtain sub-link data corresponding to each communication link, the sub-link data including a data packet header corresponding to each communication link, the data packet header being generated based on a link identifier of the communication link, a terminal identity identifier of the aggregation terminal, and a port identifier of the aggregation server, the port identifier being used to identify that the plurality of sub-link data are to-be-aggregated data; the port identifiers included in the plurality of sub-link data being the same; sending the sub-link data corresponding to each communication link to the aggregation server through the communication link, so as to perform a processing operation on the to-be-processed data by the aggregation server.
11. The method of claim 10, wherein, The planning shunting of the to-be-processed data based on the plurality of different communication links to obtain sub-link data corresponding to each communication link comprises: determining a communication quality corresponding to each of the plurality of different communication links; planning shunting of the to-be-processed data based on the communication quality to obtain sub-link data corresponding to each communication link, a data amount of the sub-link data being positively correlated with the communication quality.
12. The method of claim 11, wherein, The planning shunting of the to-be-processed data based on the communication quality to obtain sub-link data corresponding to each communication link comprises: obtaining a link identifier corresponding to each of the plurality of communication links, a terminal identity identifier of the aggregation terminal, and a port identifier of the aggregation server; planning shunting of the to-be-processed data based on the communication quality to obtain shunted data corresponding to each of the plurality of communication links; generating a data packet header corresponding to each communication link based on the link identifier, the terminal identity identifier, and the port identifier; adding the data packet header to the corresponding shunted data to obtain sub-link data corresponding to each communication link.
13. A method of processing live data, characterized by, Applied to an aggregation terminal, the method comprises: obtaining to-be-processed live data; determining a plurality of different communication links between the aggregation terminal and an aggregation server, the aggregation server being configured to process the live data; The live stream data is split and planned based on multiple different communication links to obtain sub-link data corresponding to each communication link. The sub-link data includes a data packet header corresponding to each communication link. The data packet header is generated based on the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated. The port identifiers included in the multiple sub-link data are the same. The data of the sub-links corresponding to each communication link are sent to the aggregation server through the communication link, so that the live data can be processed by the aggregation server.
14. A vehicle control method characterized by, Applied to an aggregation terminal, the method includes: Acquire vehicle operation data of the vehicle to be controlled; Multiple different communication links are established between the aggregation terminal and the aggregation server, the aggregation server being used to process the vehicle operation data; The vehicle operation data is distributed and planned based on multiple different communication links to obtain sub-link data corresponding to each communication link. The sub-link data includes a data packet header corresponding to each communication link. The data packet header is generated based on the link identifier of the communication link, the terminal identity identifier of the aggregation terminal, and the port identifier of the aggregation server. The port identifier is used to identify that the multiple sub-link data are data to be aggregated. The port identifiers included in the multiple sub-link data are the same. The data of the sub-links corresponding to each communication link are sent to the aggregation server through the communication link, so that the aggregation server can process the vehicle operation data and obtain vehicle control information. The aggregation server is used to obtain vehicle control information corresponding to the vehicle to be controlled. The vehicle to be controlled is controlled based on the vehicle control information.
Citation Information
Patent Citations
System based on wireless multi-link bandwidth aggregation
CN106850455A
Data reporting method, device, equipment and storage medium
CN108833199A
Data transmission method, server node, gateway device and network system
CN113783963A
Ethernet link converging method
CN1809021A