Data transmission method and device, electronic equipment, storage medium and program product
Through the multi-network card scheduling strategy, the high-priority network is selected for data transmission, which solves the problems of high device energy consumption and scheduling interference in multi-network path transmission, realizes efficient and low-energy data transmission, and improves the reliability of network connection and user experience.
Patent Information
- Application Number
- CN202511028873.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-24
- Publication Date
- 2025-09-30
AI Technical Summary
In the existing multi-network path data transmission mechanism, the equipment consumes a lot of energy and there is interference in the transmission scheduling, resulting in unsatisfactory reliability and efficiency of network connections.
Through the multi-network card scheduling strategy, transmission paths are created through multiple networks, and the connection status of each network is detected. The network with high priority is selected for data transmission, and other network paths are closed to prevent the device from continuously maintaining multiple network connection states, reducing energy consumption and scheduling interference.
It effectively reduces equipment energy consumption, avoids scheduling interference of multi-network transmission, improves data transmission quality and efficiency, and intelligently switches networks without user perception to meet the real-time needs of the application layer.
Smart Images

Figure CN120729792A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the technical field of data transmission, and in particular to a data transmission method and apparatus, electronic equipment, storage medium, and program product. Background Art
[0002] The development of internet technology has placed higher demands on the quality and efficiency of network data transmission. In real-world network environments, factors such as device location and ambient signal interference can lead to significant uncertainty in network transmission quality, resulting in weak network conditions. To address this, devices can maintain multiple active network paths during data transmission, dynamically scheduling data transmission across multiple networks to improve network connection reliability.
[0003] However, in such a data transmission mechanism, since the device needs to maintain continuous connection status with multiple networks, it will lead to increased energy consumption of the device, and there may be scheduling interference between the data transmitted by multiple networks, making the overall transmission efficiency still not ideal. Summary of the Invention
[0004] The present disclosure provides a data transmission method and apparatus, electronic device, storage medium, and program product to at least address the issues of high device energy consumption and interference in transmission scheduling in the multi-network path data transmission mechanism of the related art. The technical solutions of the present disclosure are as follows: According to a first aspect of an embodiment of the present disclosure, a data transmission method is provided, comprising: performing multi-network card scheduling in a process of using a current network among multiple networks to perform transmission for current data; wherein the multi-network card scheduling comprises: creating transmission paths for the current data through the multiple networks respectively; detecting the connection status of the multiple networks respectively; in response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, continuing to perform transmission for the current data using the first network, and closing the transmission paths for the current data of other networks among the multiple networks.
[0005] Optionally, the first preset condition indicates that the priority of the first network is higher than the priorities of the other networks.
[0006] Optionally, the first preset condition includes at least one of the following items: the first network receives data before the other networks; the first network receives data within a preset time period, and the first network is a preset network type; the amount of data received by the first network is greater than the amount of data received by the other networks.
[0007] Optionally, the data transmission method further includes: in response to the state of using the current network to perform transmission for the current data meeting a second preset condition, starting to execute the multi-network card scheduling, wherein the second preset condition indicates that the performance of the current network is expected to be unable to perform transmission for the current data.
[0008] Optionally, the data transmission method further includes: determining whether the status of using the current network to perform transmission of the current data meets the second preset condition based on application layer status information and / or transport layer status information of using the current network to perform transmission of the current data.
[0009] Optionally, the second preset condition includes at least one of the following items: the waiting time for the application layer to transmit data is greater than the preset time; the rate at which the application layer transmits data is less than the preset rate; the waiting time for the transport layer to transmit data is greater than a threshold determined based on a network disconnection estimation value, wherein the network disconnection estimation value is determined based on the data transmission delay.
[0010] Optionally, in response to detecting that the connection status of the first network among the multiple networks meets the first preset condition, using the first network to continue transmitting the current data, and closing the transmission paths of the other networks among the multiple networks for the current data, includes: in response to the states of using the multiple networks to perform transmission of the current data all meeting the second preset condition, transmitting data through the multiple networks; in response to the states of using the first network to perform transmission of the current data not meeting the second preset condition and the first network meeting the first preset condition, executing the steps of continuing to perform transmission of the current data using the first network, and closing the transmission paths of the other networks among the multiple networks for the current data.
[0011] Optionally, the connection status of the multiple networks is detected in at least one of the following ways: retransmitting at least a portion of the current in-transit data through each network, wherein the in-transit data refers to data that has been sent but has not yet received feedback indicating that the data has been successfully received; retransmitting data that previously failed to be transmitted through each network; transmitting signaling for managing or controlling the reception or transmission of data through each network.
[0012] Optionally, the data transmission method further includes: after executing the multi-network card scheduling, in response to the state of using the first network to perform the transmission of the current data meets a third preset condition, using a preset network among the multiple networks to continue to perform the transmission of the current data, wherein the third preset condition represents: data flows exceeding a preset proportion in the data flow transmitted through the first network are closed.
[0013] Optionally, the data transmission method is executed in at least a portion of all sessions of the application.
[0014] According to a second aspect of an embodiment of the present disclosure, a data transmission device is provided, comprising: an execution unit configured to perform multi-network card scheduling in a process of using a current network among multiple networks to perform transmission for the current data; wherein the execution unit comprises: a creation unit configured to create transmission paths for the current data through the multiple networks respectively; a detection unit configured to detect the connection status of the multiple networks respectively; and a scheduling unit configured to, in response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, continue to perform transmission for the current data using the first network, and close the transmission paths for the current data of other networks among the multiple networks.
[0015] According to a third aspect of an embodiment of the present disclosure, an electronic device is provided, comprising: a processor; and a memory for storing processor-executable instructions, wherein the processor-executable instructions, when executed by the processor, prompt the processor to execute the data transmission method according to an embodiment of the present disclosure.
[0016] According to a fourth aspect of an embodiment of the present disclosure, a computer-readable storage medium is provided. When instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the data transmission method according to the embodiment of the present disclosure.
[0017] According to a fifth aspect of an embodiment of the present disclosure, a computer program product is provided, comprising computer instructions, which, when executed by a processor, implement the data transmission method according to an embodiment of the present disclosure.
[0018] The technical solutions provided by the embodiments of the present disclosure bring at least the following beneficial effects: According to the multi-network card scheduling strategy disclosed in the present invention, connections can be created through multiple currently available networks and their connection status can be detected respectively, the optimal network can be selected to perform current data transmission, and the transmission paths of other networks for the current data can be closed, thereby avoiding the problems of increased device energy consumption and heat generation caused by the device continuously maintaining a connection status with multiple networks in the existing data transmission mechanism, and can avoid scheduling interference between data transmitted by multiple networks, thereby improving the quality and efficiency of data transmission.
[0019] In addition, by sampling the status information of the application layer and / or the status information of the transport layer, the availability of the current network can be detected from the application layer request dimension and / or the transport layer data transmission and reception dimension, so as to accurately determine the timing of executing multi-network card scheduling, accurately identify the critical point where the network needs to be switched, and switch to another network in time.
[0020] In addition, since the operation of switching networks during multi-network card scheduling is an internal behavior in the data transmission process, intelligent switching can be achieved and users are unaware of such switching. Therefore, users do not need to perform actions such as retransmission, reconnection, and re-pull data, which simplifies user operations.
[0021] In addition, by switching the network back to the default preset network after executing multi-NIC scheduling, the multi-NIC scheduling policy and the default network switchback policy can be dynamically configured based on business needs, thereby suppressing the power consumption surge caused by multi-network activation without affecting the default network settings.
[0022] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The accompanying drawings herein are incorporated into and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the description are used to explain the principles of the present disclosure, and do not constitute an improper limitation of the present disclosure.
[0024] Figure 1 It is a schematic diagram showing an example implementation scenario of a data transmission method according to an exemplary embodiment of the present disclosure.
[0025] Figure 2 The present invention is a schematic flowchart of multi-network card scheduling in a data transmission method according to an exemplary embodiment of the present disclosure.
[0026] Figure 3 is a block diagram showing a data transmission device according to an exemplary embodiment of the present disclosure.
[0027] Figure 4 is a block diagram showing an electronic device according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION
[0028] In order to enable ordinary persons in the art to better understand the technical solutions of the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.
[0029] It should be noted that the terms "first," "second," and the like in the specification and claims of the present disclosure and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or precedence. It should be understood that the numbers used in this manner are interchangeable where appropriate so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure as detailed in the appended claims.
[0030] It should be noted that the phrase "at least one of the several items" in this disclosure includes three types of parallel situations: "any one of the several items", "a combination of any multiple of the several items", and "all of the several items". For example, "including at least one of A and B" includes the following three parallel situations: (1) including A; (2) including B; (3) including A and B. For another example, "performing at least one of step 1 and step 2" means the following three parallel situations: (1) performing step 1; (2) performing step 2; and (3) performing both step 1 and step 2.
[0031] As described above, the multi-network path data transmission mechanism has the problems of high device energy consumption and interference in transmission scheduling.
[0032] Specifically, with the deep penetration of the mobile internet, network transmission quality has become a key factor influencing its development. Scenarios such as high-definition video streaming, real-time online gaming, remote collaboration, and IoT device integration place higher demands on network bandwidth, latency, and stability. However, the real-world network environment is fraught with uncertainty. For example, weak network conditions can occur when users travel between buildings with complex signal conditions, when signals drop sharply in subway tunnels, when base stations are overloaded at large events, and when coverage is weak in remote areas. These conditions have become a major threat to network service continuity.
[0033] Traditional transmission protocols based on the Transmission Control Protocol (TCP) perform poorly in weak network environments. Their strict, ordered transmission and congestion control mechanisms can lead to a sharp drop in throughput and even connection interruptions when packet loss or latency surges. To address this challenge, proprietary transmission protocols based on the User Datagram Protocol (UDP), such as variants of Quick UDP Internet Connections (QUIC) or proprietary enterprise protocols, are becoming the mainstream solution in the industry.
[0034] This type of self-developed transmission protocol mainly improves the resilience of weak networks through three core designs. First, it adopts connection multiplexing and multiplexing. Specifically, it establishes a persistent connection (Connection Keep-Alive) between the client and the server to avoid frequent handshake overhead. More importantly, it allows multiple independent business data streams (such as different video segments, multiple Application Programming Interface (API) requests) to be transmitted in parallel on the same physical connection (Multiplexing). This significantly reduces the connection establishment delay and improves link utilization. Second, it adopts logical isolation and flow control. Specifically, although data in this type of protocol shares the same physical channel, the protocol uses mechanisms such as stream identifiers (Stream ID) to achieve isolation of different business data at the logical level. Each data stream has independent flow control, priority and retransmission mechanisms, avoiding "head-of-line blocking" - packet loss in one stream will not block the data transmission of other streams. Third, flexible congestion control and fast retransmission are adopted. Specifically, this type of protocol abandons the rigid congestion control algorithm of TCP and adopts dynamic strategies that are more suitable for wireless environments (such as the network bottleneck bandwidth and round-trip delay (Bottleneck Bandwidth and RTT, BRR) congestion control algorithm and an improved version of the Cubic Congestion Control algorithm (CUBIC)). Combined with forward error correction (FEC) and selective retransmission technologies, it can recover faster from packet loss and maintain effective throughput.
[0035] The above mechanism is effective in moderately weak network environments (such as occasional packet loss and brief delay fluctuations). However, when the network environment deteriorates to a critical point, even the most carefully designed proprietary protocols will struggle. The "connection reuse" architecture of proprietary transmission protocols is potentially vulnerable. Specifically, its efficiency is highly dependent on the continuous availability of the underlying physical network. When the only available network to which a device is connected (such as WiFi or cellular network) experiences extreme degradation, the entire transmission system will face collapse.
[0036] In such scenarios, the "keep-alive" mechanism of the self-developed transmission protocol may become a burden. Specifically, the client and server are still trying in vain to maintain heartbeats and retransmit lost data packets, consuming precious power and computing resources of the device, but unable to restore effective communication. At the business level, it manifests as long periods of freezing, loading failures, and ultimately timeouts, completely destroying the user experience. More seriously, for businesses with extremely high real-time requirements (such as remote surgery control, financial transaction instructions, etc.), such interruptions may cause irreversible losses.
[0037] The core of the aforementioned problem lies in the fact that proprietary transmission protocols optimize transmission over a single path but fail to address the issue of survivability in the event of a complete failure of that path itself. Modern smart devices, such as mobile phones, tablets, and in-vehicle systems, generally have dual network interfaces (e.g., WiFi and cellular), providing a physical foundation for resolving this dilemma. In theory, if a primary network (e.g., WiFi) fails and a backup network (e.g., 5G / 4G cellular) can be instantly switched to, data transmission can continue over the alternate network channel, achieving network-level high availability.
[0038] Multipath TCP (MPTCP) and Multipath QUIC (MPQUIC) are the most widely used multipath technologies at the transport layer. They allow a single transport connection (such as a TCP or QUIC connection) to simultaneously use multiple independent network paths (for example, Wi-Fi and cellular networks) for data transmission. These technologies automatically manage different subflows and select the optimal path for data transmission. Each subflow logically belongs to the same upper-layer connection but physically runs on a specific path. Each path has a separate congestion control mechanism and path scheduling is performed at the transport layer packet level, transparent to upper-layer users. Applications still perceive a single logical, unified connection and do not need to worry about the specific number of physical paths used at the underlying layer or how data is scheduled across them.
[0039] The above technical solution aims to improve the reliability and throughput of network connections by maintaining the active state of multiple network paths during data transmission and dynamically scheduling them in units of data packets at the transport layer.
[0040] However, this mechanism also has some significant disadvantages. First, there are issues with device energy consumption and heat generation. Specifically, to ensure the real-time availability of multiple paths, the device needs to continuously maintain the connection status of multiple network interfaces (such as Wi-Fi and cellular network cards). This continuous connection maintenance will significantly increase the energy consumption of mobile devices and may cause the device to heat up, which will directly affect the user experience and the device's battery life. Second, there is transport layer scheduling interference. Specifically, multi-path transmission will automatically allocate data packets from different application layer requests to different sub-streams for transmission at the transport layer. This automatic scheduling mechanism has a potential problem: congestion or performance degradation on a certain sub-stream path will interfere with the overall scheduling strategy and performance of the transport layer, which may in turn affect the data transmission efficiency carried by other sub-streams that were originally running well. That is, problems on one path may affect other paths.
[0041] In addition, the above mechanism also has the problem of cross-layer response delay. Specifically, the core scheduling decisions of multi-path transmission (such as bandwidth allocation and path selection) occur at the transport layer, which is naturally isolated from the application layer. This leads to a mismatch in response speed, making it difficult to meet the application layer's immediate needs for network status changes. For example, in some scenarios, when the application layer detects that a critical request (such as a real-time interactive instruction) urgently needs to be switched to a better network due to excessive latency on the current path, the transport layer's scheduling algorithm may still be evaluating the path quality or planning to continue waiting for a retransmission opportunity on the current path, resulting in an increase in the latency perceived by the application layer and affecting the user experience. This is essentially a misalignment between the scheduling decisions of the transport layer and the real-time needs of the application layer.
[0042] In order to solve or at least alleviate at least part of the above problems, the exemplary embodiments of the present disclosure provide a data transmission method, a data transmission device, an electronic device, a computer-readable storage medium, and a computer program product. Figures 1 to 4 Provide a detailed description.
[0043] Refer to the following Figure 1 An example implementation scenario of the data transmission method according to the exemplary embodiments of the present disclosure is given.
[0044] like Figure 1 As shown, when a user requests the server 101 to transmit current data through the network 102 at a user terminal (eg, a mobile phone 103 , a desktop computer 104 , a tablet computer 105 , etc.), the server 101 may transmit the corresponding data to the user terminal through the network 102 .
[0045] In the above process, the user terminal can perform multi-network card scheduling while using the current network among multiple networks to perform transmission for current data, wherein the multi-network card scheduling may include: creating transmission paths for current data through multiple networks respectively; detecting the connection status of multiple networks respectively; in response to detecting that the connection status of the first network among the multiple networks meets the first preset condition, using the first network to continue to perform transmission for the current data, and closing the transmission paths for the current data of other networks among the multiple networks.
[0046] It should be noted that although the above description uses the user terminal as an example, it is only an example. The subject of the data transmission method can be any electronic device, and the electronic devices here can include, for example, smart phones, tablets, laptops, digital assistants, wearable devices, vehicle-mounted terminals, etc.
[0047] It should also be noted that although the application scenario in which a user terminal requests data transmission from a server is explained here as an example, it should be understood that the application scenario of the data transmission method disclosed herein is not limited to this. For example, it can also be used for data transmission between servers, scenarios in which a server requests data from a user terminal, or it can also be applied to any other application scenarios involving data transmission.
[0048] According to a first aspect of an embodiment of the present disclosure, a data transmission method is provided. The method can avoid problems such as increased device energy consumption and heat generation caused by a device being continuously connected to multiple networks, and can also avoid scheduling interference between data transmitted over multiple networks, thereby improving the quality and efficiency of data transmission.
[0049] Specifically, in an embodiment of the present disclosure, in the process of using a current network among multiple networks to perform transmission for current data, multi-network card scheduling may be performed.
[0050] Here, the method can be executed in a device with multiple network cards (such as a dual network card device), and different network cards can correspond to different types of networks. For example, the above-mentioned multiple networks can include but are not limited to WiFi networks, cellular networks, etc., and the current network for performing transmission of current data can be any of these networks.
[0051] As an example, the current data may be data that is logically divided into the same type or the same set in terms of transmission. For example, the current data may be data in a network connection (or also referred to as a "session") of an application, where a session may refer to an interactive information exchange process established between communication entities. Specifically, the method may be applied to any network connection in an application loaded on a device, and the network connection may be used to transmit the business data of the application, and each network connection may include one or more business data streams. For example, the data transmission method may be executed in at least a portion of all sessions of the application. However, the embodiments of the present disclosure are not limited thereto, and the current data may also be data that is divided into the same type or the same set in other ways, such as data in a session group including multiple sessions.
[0052] As an example, this method can be applied to any one or more network connections in any application (or client) of the device, so that the network connection to which the method is applied can perform multi-network card scheduling in the process of using the current network among multiple networks to perform transmission of current data, and applying this method to any network connection does not affect the data transmission mechanism of other network connections, nor does it affect the network selection mechanism of the device itself. For example, the device can select a certain network as the current main network from multiple networks by default, but the application to which the method is applied can perform multi-network card scheduling according to this method, and may select a network that is the same as or different from the current main network of the device to perform transmission of current data.
[0053] For example, modern smart devices such as mobile phones, tablets, and in-vehicle systems generally have multiple network interfaces (e.g., WiFi and cellular networks). Generally, they do not use the cellular network for data communication when WiFi is available. Therefore, the WiFi network can be set as the primary network by default, with the cellular network as the secondary network. In this regard, in embodiments of the present disclosure, the primary and secondary networks can be switched within the application regardless of the network currently used by the device.
[0054] In addition, the data transmitted in this article can be business data related to the application program, and this disclosure does not impose any special restrictions on the format and type of the data.
[0055] Figure 2 FIG. 4 shows a schematic flow chart of multi-NIC scheduling according to an exemplary embodiment of the present disclosure. Figure 2 As shown, the multi-network card scheduling may include the following steps: In step S210, transmission paths for the current data may be created through multiple networks respectively.
[0056] Here, establishing a transmission path through a network may mean that data can be transmitted through the network, or that data transmission is ready or has started.
[0057] For example, when multi-NIC scheduling is enabled, a socket for each NIC may be created to establish a transmission path.
[0058] Here, a socket generally refers to the tool or pipeline used to send and receive network data on a device. Applications (APPs) send and receive data through sockets, potentially directing the operating system, network card hardware, and other devices to send and receive data. For example, in a dual-NIC scenario, an APP can send and receive data using two sockets, one bound to the WiFi network card and the other to the cellular network card, thereby directing data transmission and reception to a specific network card.
[0059] However, the example of creating a transmission path is not limited to the above socket-based creation method. Different devices and operating systems may have different creation methods, and the embodiments of the present disclosure do not impose any special restrictions on this.
[0060] In step S220, the connection status of multiple networks may be detected respectively.
[0061] As an example, the connection status of each network may be detected by transmitting data (eg, transmitting data packets) through each network to determine whether there is a dominant network for subsequent data transmission.
[0062] For example, in the example described above of creating a network transmission path through a socket, when the sockets of each network card are created, data packets can be sent through the socket corresponding to each network card, so that the server can perceive the various available physical connections of the client.
[0063] As an example, the connection status of multiple networks can be detected in at least one of the following ways: retransmitting at least a portion of the current in-transit data through each network, where the in-transit data refers to data that has been sent but has not yet received feedback indicating that the data has been successfully received; retransmitting data that previously failed to be transmitted through each network; transmitting signaling for managing or controlling the reception or transmission of data through each network.
[0064] For example, all or part of the currently in-transit data may be retransmitted; and / or, waiting retransmission data packets may be sent; and / or, control signaling that does not affect transmission may be sent, where the control signaling may be, but is not limited to, signaling such as ACK, Ping, Padding, etc.
[0065] Through the above method, the connection status of each network can be detected during the multi-network card scheduling process, so as to determine the dominant network and improve the subsequent data transmission quality and efficiency.
[0066] In addition, in step S220, the data packet sent may be of any data type, and the embodiment of the present disclosure does not impose any particular limitation on the combination and sending order of the data sent.
[0067] In step S230, in response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, the first network is used to continue transmitting the current data, and transmission paths for the current data of other networks among the multiple networks are closed.
[0068] Specifically, among multiple networks, if there is a first network whose connection status meets the first preset condition, the network can be used for subsequent data transmission, and the transmission path of other networks for current data can be closed, for example, the sockets of other networks can be closed.
[0069] For example, the first preset condition may indicate that the priority of the first network is higher than the priority of other networks. For example, the priority of different networks can be determined based on the preset priority judgment condition, and the network with the highest priority can be selected as the first network. In this way, the network with the highest priority can be selected from multiple networks to improve data transmission quality and efficiency.
[0070] For example, the first preset condition may include at least one of the following items: the first network receives data before other networks; the first network receives data within a preset time period, and the first network is a preset network type; the amount of data received by the first network is greater than the amount of data received by other networks.
[0071] Specifically, in one example, a first-packet-first strategy can be employed to determine the first network. For example, the network corresponding to the first socket that receives data among all networks can be considered the successfully scheduled network. If the first network is the same as the current network, no actual switching is considered. If the first network is different from the current network, a more optimal network is found, and the multi-NIC switching is successful.
[0072] In another example, a target network priority strategy can be adopted to determine the first network. Specifically, the first network can be a preset network type. In response to the first network receiving data within a preset time period, the first network can be used to continue data transmission; in response to the first network not receiving data within the preset time period, the current network can be maintained to continue data transmission. For example, a target network type N can be preset. In the preset time period If the target network type N receives the data, it can be considered that the multi-network card switching is successful, otherwise the original network is maintained to continue communication.
[0073] As an example, the target network type can be, but is not limited to, a primary network such as a WiFi network or a secondary network such as a cellular network. For example, the target network type can be determined based on the priority between transmission performance and power consumption. If improving transmission performance is prioritized, the target network type can be a cellular network. In this way, multi-NIC scheduling can be initiated only when the primary network performance is insufficient, thereby aiming to switch to the secondary network as much as possible. If minimizing power consumption is prioritized, the target network type can be a primary network such as a WiFi network. As long as the primary network can still maintain data transmission and reception, switching to a secondary network such as a cellular network, which consumes a lot of power, is avoided as much as possible.
[0074] In another example, an application layer demand priority strategy can be adopted to determine the first network. Specifically, the network that receives more data can be regarded as the end user (such as the first network mentioned above). For example, the amount of data received by each network within the same period of time can be compared, and the network that receives the largest amount of data can be regarded as the first network.
[0075] Through the above method, the advantageous network can be selected from different dimensions such as the speed of receiving data packets, network type, and the amount of data received, and multi-network card scheduling can be adapted to different business needs.
[0076] In addition, in an embodiment of the present disclosure, according to specific business needs, after starting multi-network card scheduling, the application layer can select one of the above strategies as a sign and strategy of successful scheduling. For example, the first preset condition can be judged based on the data transmission of the application layer. For example, the above examples are all judged based on the data received by the application layer.
[0077] The above describes an example process of executing multi-NIC scheduling in an embodiment according to the present disclosure. In one example, the multi-NIC scheduling can be executed in response to reaching a preset timing (for example, every preset interval); however, the embodiments of the present disclosure are not limited to this, and when to enable the multi-NIC scheduling can also be determined based on the status of using the current network to execute the transmission of current data.
[0078] As an example, the data transmission method according to an embodiment of the present disclosure may also include: in response to the state of using the current network to perform transmission for current data meeting a second preset condition, starting to perform multi-network card scheduling, wherein the second preset condition may characterize that the performance of the current network is expected to be unable to perform transmission for current data.
[0079] Specifically, the above-mentioned multi-NIC scheduling can switch the physical network used by the network connection from the current network to another network at the appropriate time to improve data transmission. Since weak network scenarios may occur on any network, multiple multi-NIC scheduling operations may occur for any network connection in the application to maintain optimization of data transmission. In this way, when the performance of the current network may not meet the data transmission requirements of the current application or the current network connection of the current application, you can find a superior network by performing multi-NIC scheduling to improve data transmission.
[0080] As an example, in the data transmission method, whether the state of using the current network to transmit the current data meets the second preset condition can be determined based on application layer state information and / or transport layer state information of using the current network to transmit the current data.
[0081] Here, the application layer status information is related to the user's intuitive usage experience, which can reflect the impact of the current network on the user experience; the transport layer status information can objectively reflect the connection status of the current network. Therefore, according to actual needs, the application layer status information and / or transport layer status information can be selected to measure the status of using the current network to perform data transmission. By sampling the statistical information of the application layer and / or transport layer, the availability of the current network can be detected from the application layer request dimension and / or the transport layer data packet dimension.
[0082] As an example, the second preset condition may include at least one of the following items: the waiting time for the application layer to transmit data is greater than the preset time; the rate at which the application layer transmits data is less than the preset rate; the waiting time for the transport layer to transmit data is greater than a threshold determined based on a network disconnection estimation value, wherein the network disconnection estimation value is determined based on the data transmission delay.
[0083] Here, in one example, whether the state of using the current network to transmit the current data meets the second preset condition may be determined based on the waiting time for the application layer to receive the data.
[0084] Specifically, on a network connection (or session), several logically isolated independent business data streams can exist simultaneously. These network connections can be end-to-end (for example, from client to server), and these data streams can correspond to different application layer requests. When the application layer request transmission is poor, the multi-network card scheduling process can be started.
[0085] For example, for any Independent business data stream , The application layer waiting time can be , when waiting time When multiple network cards are scheduled, you can start the multi-network card scheduling, where It is a configurable parameter threshold that can be set according to actual needs.
[0086] Here, in the independent business data stream The waiting time for the data flow that has never received a data packet It can be the time from the time the request is sent to the current time; Independent business data stream Waiting time for data flow where data packets have been received It can be the time from the last time data was received to the current moment.
[0087] In another example, whether the state of performing data transmission using the current network meets the second preset condition may be determined based on the rate at which the application layer transmits data.
[0088] For example, for any Independent business data stream , the duration from the time the request is sent to the current time is , data flow In duration The amount of data received is , when the receiving rate is met When multiple network cards are scheduled, you can start the multi-network card scheduling, where It is a configurable parameter threshold that can be set according to actual needs.
[0089] In addition, in some examples, due to different business data requirements, even when the receiving rate is normal, the data flow In duration Amount of data received May be smaller, making the receiving rate Also smaller, for example, smaller than a preset threshold In this regard, in order to more accurately evaluate the receiving rate, the second preset condition may further include: the rate at which the application layer transmits data is less than a preset rate, and the amount of data transmitted by the application layer is greater than a preset amount of data.
[0090] For example, in order to meet the data volume And the receiving rate Multi-NIC scheduling is started only when It is a configurable parameter threshold that can be set according to actual needs.
[0091] In another example, whether the state of using the current network to transmit current data meets the second preset condition may be determined based on the waiting time for the transport layer to transmit data.
[0092] As an example, the threshold determined based on the network disconnection estimation value may be the larger one between a preset threshold and the network disconnection estimation value.
[0093] For example, the current network connection waiting time can be Here, if the current network connection has never received data (such as a data packet), the waiting time is It is the time from the establishment of the connection to the current moment; if the current network connection has received data, the waiting time is the time from the last time data was received to the current moment. In this case, the second preset condition can be ,in, Represents the sliding average of the Round Trip Time (RTT), Represents the mean deviation of the round-trip delay (MeanDeviation), 、 and These are all configurable parameter thresholds that can be set according to actual needs. When the multi-network card scheduling process is started,
[0094] Here, the network disconnection estimate can be expressed as , Can represent the estimated value of network disconnection The scaling of , which can be greater than or less than 1. In the network outage estimate, Indicates the exponential backoff multiple, represents the comprehensive duration of the delay, and the product of the two can be used as a timeout estimate based on the round-trip delay. In addition, Represents a fixed threshold. By using the larger of the preset threshold and the item based on the network disconnection estimate as the basis for judging whether the waiting time exceeds the expected limit, it can avoid misjudging the waiting time of the transport layer when the network disconnection estimate is very small, thereby improving the accuracy of the waiting time assessment.
[0095] However, the second preset condition for the waiting time of the transport layer is not limited to the above example. The threshold value determined based on the network disconnection estimation value may be the network disconnection estimation value itself or the network disconnection estimation value after scaling. For example, the second preset condition may also be expressed as 、 wait.
[0096] Each example of the second preset condition can be used alone or in combination. For example, as long as any data flow of the current network connection meets any of the second preset conditions, multi-network card scheduling can be started. Specifically, for any independent business data flow on the current network connection , the second precondition for starting the multi-network card scheduling process can be expressed as: .
[0097] In the example of the second preset condition mentioned above, the status of the application layer and / or transport layer can be considered from the perspective of network structure, and the waiting time and / or rate of data transmission can also be considered from the perspective of data transmission performance. In this way, the network connection status can be evaluated more accurately, and multi-network card scheduling can be enabled in time when the network connection status is poor.
[0098] In addition, in an embodiment of the present disclosure, in an example of determining whether to start multi-network card scheduling based on a second preset condition, the above-mentioned step S230 may include: in response to the state of using multiple networks to perform transmission for current data satisfying the second preset condition, transmitting data through multiple networks; in response to the state of using the first network to perform transmission for current data not satisfying the second preset condition and the first network satisfying the first preset condition, executing the step of continuing to perform transmission for current data using the first network and closing the transmission paths for current data of other networks among the multiple networks.
[0099] In this example, in multi-network card scheduling, it can be determined whether the status of using multiple networks to perform the transmission of current data all meets the second preset condition. If all networks meet the second preset condition, it means that all current networks cannot provide good network transmission performance. Therefore, it is necessary to maintain the status of all networks participating in data transmission to meet the transmission needs as much as possible. For example, when each network receives data, it can be detected whether it is still in the state of meeting the second preset condition for starting multi-network card scheduling, such as the application layer still has not received data or the receiving rate is still not sufficient. If all networks meet the second preset condition, the state of multi-network card transmission data is maintained; if there is a first network that does not meet the second preset condition but meets the above-mentioned first preset condition, it can be considered that the multi-network card scheduling is successful, and the first network (for example, the network that receives the most data) can be used as the final network to be used.
[0100] In addition, the data transmission method according to the embodiment of the present disclosure can also switch back to the preset network after completing the multi-network card scheduling.
[0101] As an example, the data transmission method may also include: after executing multi-network card scheduling, in response to the state of using the first network to perform transmission for the current data meeting a third preset condition, using a preset network among multiple networks to continue to perform transmission for the current data, wherein the third preset condition may be characterized by: data flows exceeding a preset proportion in the data flow transmitted through the first network are closed.
[0102] For example, independent business data flows exceeding a preset ratio on the current network connection In the case of inactivity, you can force the physical network card used by the current network connection to switch back to the default network (for example, the default primary network). Here, data flow inactivity means that the data flow is in at least one of the following states: successful transmission, failed transmission, or cancelled transmission. In other words, the data flow transmission task has ended and the data flow is considered inactive.
[0103] Through the above method, the used network can be switched back to the preset network after executing multi-network card scheduling. While ensuring data transmission performance through dynamic network card scheduling, it does not affect the original network communication design, making this method easy to connect to existing network protocols.
[0104] According to the data transmission method of an embodiment of the present disclosure, the physical network used by the network connection can be switched from the current network to another network at an appropriate time, and switched back to a preset network such as the primary network at an appropriate time. Since weak network scenarios may occur on the primary network or the secondary network, multiple network card scheduling operations may occur on a network connection. When the other end (such as the server) receives data transmitted on a different network type, it can respond through a link migration strategy (such as Peer Migration in QUIC).
[0105] Here, the link migration strategy can solve the problem of how to transfer data packets to the correct processor in a multi-threaded / process scenario on the server side. Specifically, when providing services, the server is usually in multi-threaded / process mode, and there are multiple processors processing data packets at the same time. Each data packet needs to be delivered to the correct processor. If the judgment is based on IP and port (strongly related to the network card and network link), the server will not be able to process it correctly when the user switches networks. By setting a link migration strategy, the correct service of the server can be guaranteed. For example, Peer Migration in QUIC is a typical link migration strategy, which can determine the processor corresponding to the data packet by the connection ID carried in the data packet, instead of using IP and port, thereby ensuring service in scenarios where users switch networks.
[0106] In an embodiment of the present disclosure, the other end transmitting current data to the current end executing the data transmission method may adopt any existing link migration strategy to respond to the current end's transmission of current data, and the present disclosure does not impose any particular limitation on this.
[0107] In general, in the context of weak networks becoming the norm, the self-developed transmission protocol based on UDP has significantly improved the transmission resilience of a single path through connection multiplexing and logical isolation. However, faced with the extreme scenario of complete network failure, its limitations are fully exposed. In this regard, in the data transmission method according to the embodiment of the present disclosure, statistical information such as the application layer and the transport layer can be sampled, and the availability of the current network can be detected from the application layer request dimension and the transport layer data packet dimension, and it can be guided whether the connection needs to be switched to another network. It can also be decided whether to start multi-network card scheduling and the specific scheduling strategy based on the sampling results. In addition, the method can also decide to switch the network back to the default preset network at the appropriate time.
[0108] This method uses the multi-network card feature of the device to achieve intelligent switching, which can maintain accurate network detection and demarcation during network transmission and maintain the reliability and robustness of data transmission.
[0109] Specifically, this method can accurately perceive the boundaries of network failures. Related technologies can struggle to distinguish between transient network jitter and permanent failures in real time, which can easily lead to misjudgments or delayed responses. This method, however, builds a dynamic failure determination model through a multi-dimensional detection and demarcation mechanism, including application-layer request success rate / delay anomalies and transport-layer packet loss rate / retransmission behavior. This enables millisecond-level network status diagnosis and accurately identifies critical points where network switching is required.
[0110] Furthermore, this method can overcome the reliability bottleneck of single-path transmission. Specifically, upon detecting a complete failure of the primary network, traditional protocols require reestablishing the connection and interrupting services. However, with this method, stateless migration technology can be used to achieve intelligent connection-level switching between a device's multiple network cards (e.g., WiFi and cellular networks). Stateless migration technology refers to the fact that switching network cards is an internal transmission behavior and is imperceptible and transparent to any independent business data stream. Users simply observe that data continues to arrive, without having to deal with actions such as canceling transmissions, reconnecting, re-pulling data, or splicing multiple downloaded data. Therefore, it can be considered as no state change or migration.
[0111] In addition, this method can build a high-availability transmission system across networks. Specifically, for complex scenarios such as dual-network parallel resource contention and differentiated service requirements (such as low-latency requirements for real-time audio and video and high-throughput requirements for file downloads), this method can design a strategic scheduling engine, dynamically configure switching thresholds and switchback strategies based on services, and combine it with the end-side RF resource management module to suppress the surge in power consumption caused by multi-network activation.
[0112] According to a second aspect of the present disclosure, a data transmission device is provided. The data transmission device 300 includes an execution unit 310. The execution unit 310 is configured to execute multi-network card scheduling in a process of using a current network among multiple networks to execute transmission for current data. Figure 3 As shown, the execution unit 310 may include a creation unit 311 , a detection unit 312 and a scheduling unit 313 .
[0113] The creating unit 311 is configured to create transmission paths for current data through a plurality of networks respectively.
[0114] The detection unit 312 is configured to detect the connection status of multiple networks respectively.
[0115] The scheduling unit 313 is configured to, in response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, continue to transmit current data using the first network and close transmission paths for the current data in other networks among the multiple networks.
[0116] As an example, the first preset condition indicates that the priority of the first network is higher than the priorities of other networks.
[0117] As an example, the first preset condition includes at least one of the following items: the first network receives data before other networks; the first network receives data within a preset time period, and the first network is a preset network type; the amount of data received by the first network is greater than the amount of data received by other networks.
[0118] As an example, the execution unit 310 is further configured to: in response to the state of using the current network to perform transmission for current data meeting a second preset condition, start executing multi-network card scheduling, wherein the second preset condition indicates that the performance of the current network is expected to be unable to perform transmission for current data.
[0119] As an example, the execution unit 310 is further configured to determine whether the state of using the current network to transmit the current data meets the second preset condition based on application layer state information and / or transport layer state information of using the current network to transmit the current data.
[0120] As an example, the second preset condition includes at least one of the following items: the waiting time for the application layer to transmit data is greater than the preset time; the rate at which the application layer transmits data is less than the preset rate; the waiting time for the transport layer to transmit data is greater than a threshold determined based on a network disconnection estimation value, wherein the network disconnection estimation value is determined based on the data transmission delay.
[0121] As an example, the scheduling unit 313 is configured to: in response to the state of using multiple networks to perform transmission for current data all satisfying the second preset condition, transmit data through multiple networks; in response to the state of using the first network to perform transmission for current data not satisfying the second preset condition and the first network satisfies the first preset condition, execute the steps of continuing to perform transmission for current data using the first network and closing the transmission paths for current data of other networks among the multiple networks.
[0122] As an example, the detection unit 312 is configured to detect the connection status of multiple networks in at least one of the following ways: retransmitting at least a portion of the current in-transit data through each network, where the in-transit data refers to data that has been sent but has not yet received feedback indicating that the data has been successfully received; retransmitting data that previously failed to be transmitted through each network; and transmitting signaling for managing or controlling the reception or transmission of data through each network.
[0123] As an example, the data transmission device also includes a switching unit 320, which is configured to: after executing multi-network card scheduling, in response to the state of using the first network to perform transmission for the current data meeting a third preset condition, continue to perform transmission for the current data using a preset network among the multiple networks, wherein the third preset condition represents: data flows exceeding a preset proportion in the data flow transmitted through the first network are closed.
[0124] As an example, the data transmission device is executed in at least a portion of all sessions of the application program.
[0125] Regarding the apparatus in the above embodiment, the specific manner in which each unit performs operations has been described in detail in the embodiment of the method, and will not be elaborated on here.
[0126] Figure 4 FIG. 1 is a block diagram of an electronic device according to an exemplary embodiment. Figure 4 As shown, the electronic device 400 includes a processor 410 and a memory 420 for storing processor-executable instructions. Here, when the processor-executable instructions are executed by the processor, the processor executes the data transmission method described in the above exemplary embodiments.
[0127] As an example, electronic device 400 does not necessarily need to be a single device, but may also be any collection of devices or circuits capable of executing the above-mentioned instructions (or instruction sets) individually or in combination. Electronic device 400 may also be part of an integrated control system or system manager, or may be configured as a server that is interconnected with a local or remote (e.g., via wireless transmission) interface.
[0128] In electronic device 400, processor 410 may include a central processing unit (CPU), a graphics processing unit (GPU), a programmable logic device, a dedicated processor system, a microcontroller, or a microprocessor. By way of example and not limitation, processor 410 may also include an analog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, etc.
[0129] The processor 410 may execute instructions or codes stored in the memory 420, which may also store data. Instructions and data may also be sent and received over a network via a network interface device, which may employ any known transmission protocol.
[0130] Memory 420 may be integrated with processor 410, for example, by placing RAM or flash memory within an integrated circuit microprocessor or the like. Furthermore, memory 420 may comprise a separate device, such as an external disk drive, a storage array, or any other storage device usable by a database system. Memory 420 and processor 410 may be operatively coupled or may communicate with each other, for example, via an I / O port, a network connection, or the like, such that processor 410 can access files stored in memory 420.
[0131] In addition, the electronic device 400 may further include a video display (such as a liquid crystal display) and a user interaction interface (such as a keyboard, a mouse, a touch input device, etc.) All components of the electronic device 400 may be connected to each other via a bus and / or a network.
[0132] In an exemplary embodiment, a computer-readable storage medium may also be provided, and when the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the data transmission method as described in the above exemplary embodiment. The computer-readable storage medium may be, for example, a memory including instructions. Optionally, the computer-readable storage medium may be: read-only memory (ROM), random access memory (RAM), random access programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), dynamic random access memory (DRAM), static random access memory (SRAM), flash memory, non-volatile memory, CD-ROM, CD-R, CD+R, CD-RW, CD+RW, DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW, DVD-RAM, BD-ROM, BD-R, BD-R LTH, BD-RE, Blu-ray or optical disk storage, hard disk drive (HDD), solid state drive (SSD), card storage (such as a multimedia card, secure digital (SD) card or extreme digital (XD) card), magnetic tape, floppy disk, magneto-optical data storage device, optical data storage device, hard disk, solid state disk and any other device configured to store a computer program and any associated data, data files and data structures in a non-transitory manner and provide the computer program and any associated data, data files and data structures to a processor or computer so that the processor or computer can execute the computer program. The computer program in the above-mentioned computer-readable storage medium can be executed in an environment deployed in a computer device such as a client, a host, an agent device, a server, etc. In addition, in one example, the computer program and any associated data, data files and data structures are distributed on a networked computer system so that the computer program and any associated data, data files and data structures are stored, accessed and executed in a distributed manner by one or more processors or computers.
[0133] In an exemplary embodiment, a computer program product may also be provided. The computer program product includes computer instructions. When the computer instructions are executed by a processor, the data transmission method as described in the exemplary embodiment is implemented.
[0134] The description of the present disclosure has been presented for purposes of illustration and is not intended to be exhaustive or limited to the present disclosure. Many modifications, variations, and alternative embodiments will be apparent to one of ordinary skill in the art having the benefit of the teachings presented in the foregoing description and the associated drawings.
[0135] Unless otherwise specifically stated, the order of steps of the method according to the present disclosure is intended to be illustrative only, and the steps of the method according to the present disclosure are not limited to the order specifically described above, but can be changed according to actual circumstances. In addition, at least one of the steps of the method according to the present disclosure can be adjusted, combined, or deleted according to actual needs.
[0136] The examples are chosen and described in order to explain the principles of the present disclosure and to enable others skilled in the art to understand the various embodiments of the present disclosure and to best utilize the basic principles and various embodiments with various modifications as are suited to the particular use contemplated. Therefore, it will be understood that the scope of the present disclosure is not limited to the specific examples of the embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the present disclosure.
[0137] Other embodiments of the present disclosure will readily occur to those skilled in the art after considering the specification and practicing the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art not disclosed herein. The description and examples are to be considered as exemplary only, with the true scope and spirit of the present disclosure being indicated by the following claims.
[0138] It should be understood that the present disclosure is not limited to the exact structures that have been described above and shown in the drawings, and that various modifications and changes can be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.
Claims
1. A data transmission method, characterized in that: The data transmission method includes: In the process of using a current network among the multiple networks to perform transmission for current data, performing multi-network card scheduling; The multi-network card scheduling includes: creating transmission paths for the current data through the multiple networks respectively; detecting the connection status of the plurality of networks respectively; In response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, the first network is used to continue transmitting the current data, and transmission paths for the current data of other networks among the multiple networks are closed.
2. The data transmission method according to claim 1, wherein: The first preset condition indicates that the priority of the first network is higher than the priorities of the other networks.
3. The data transmission method according to claim 1 or 2, characterized in that: The first preset condition includes at least one of the following items: The first network receives the data before the other networks; The first network receives data within a preset time period, and the first network is a preset network type; The amount of data received by the first network is greater than the amount of data received by the other networks.
4. The data transmission method according to claim 1, wherein: The data transmission method further includes: In response to a state in which the current data transmission is performed using the current network meeting a second preset condition, the multi-NIC scheduling is started, wherein the second preset condition indicates that the performance of the current network is expected to be unable to perform the transmission of the current data.
5. The data transmission method according to claim 4, characterized in that: The data transmission method further includes: Determine whether a state of using the current network to transmit the current data meets the second preset condition according to application layer state information and / or transport layer state information of using the current network to transmit the current data.
6. The data transmission method according to claim 4 or 5, characterized in that: The second preset condition includes at least one of the following items: The waiting time for the application layer to transmit data is longer than the preset time; The data transmission rate of the application layer is lower than the preset rate; The waiting time for the transport layer to transmit data is greater than a threshold value determined based on a network disconnection estimation value, wherein the network disconnection estimation value is determined based on a data transmission delay.
7. The data transmission method according to claim 4, characterized in that: In response to detecting that a connection status of a first network among the multiple networks satisfies a first preset condition, continuing to transmit the current data using the first network and closing transmission paths for the current data among other networks among the multiple networks includes: transmitting data through the multiple networks in response to states of performing transmission of the current data using the multiple networks all satisfying the second preset condition; In response to the state of using the first network to perform transmission for the current data not satisfying the second preset condition and the first network satisfying the first preset condition, the steps of continuing to use the first network to perform transmission for the current data and closing the transmission paths for the current data of other networks among the multiple networks are performed.
8. The data transmission method according to claim 1, wherein: The connection status of the multiple networks is detected by at least one of the following methods: retransmitting at least a portion of the currently in-transit data through each network, wherein the in-transit data refers to data that has been sent but for which no feedback indicating that the data has been successfully received has been received; Retransmit previously failed data across the networks; Signaling for managing or controlling the reception or transmission of data is transmitted through each network.
9. The data transmission method according to claim 1, wherein: The data transmission method further includes: After executing the multi-network card scheduling, in response to the state of using the first network to perform the transmission of the current data meeting a third preset condition, continue to perform the transmission of the current data using a preset network among the multiple networks, The third preset condition indicates that data flows exceeding a preset ratio among data flows transmitted through the first network are closed.
10. The data transmission method according to claim 1, wherein: The data transmission method is executed in at least a portion of all sessions of the application program.
11. A data transmission device, characterized in that: The data transmission device includes: An execution unit is configured to perform multi-network card scheduling in a process of using a current network among the multiple networks to perform transmission for current data; Wherein, the execution unit includes: a creating unit, configured to create transmission paths for the current data through the multiple networks respectively; a detection unit, configured to detect the connection status of the plurality of networks respectively; The scheduling unit is configured to, in response to detecting that the connection status of a first network among the multiple networks meets a first preset condition, continue to transmit the current data using the first network and close the transmission paths of the other networks among the multiple networks for the current data.
12. An electronic device, characterized in that: The electronic device comprises: processor; memory for storing processor-executable instructions, When the processor-executable instructions are executed by the processor, they prompt the processor to execute the data transmission method according to any one of claims 1 to 10.
13. A computer-readable storage medium, characterized in that When the instructions in the computer-readable storage medium are executed by a processor of an electronic device, the electronic device is enabled to perform the data transmission method according to any one of claims 1 to 10.
14. A computer program product comprising computer instructions, characterized in that When the computer instructions are executed by a processor, the data transmission method according to any one of claims 1 to 10 is implemented.