Data transmission method, apparatus, device, storage medium, and computer program product
By modifying the packet header information of the cloud desktop redirection service and optimizing the data transmission parameters, the problem of low data interaction efficiency between the cloud desktop and the redirected disk was solved, achieving a more efficient data transmission rate.
Patent Information
- Application Number
- CN202511352878.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-22
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2045-09-22
AI Technical Summary
The data interaction between the cloud desktop and the redirected disk is inefficient, resulting in a low data transfer rate.
After receiving the data packet sent by the driver, the cloud desktop redirection service modifies the packet header information and sends it to the driver to request the next data packet. At the same time, it adjusts network latency and buffer capacity to optimize data transmission parameters and merges the data packets before sending them to the client.
It improves the data packet sending and receiving rate, enhances the stability and efficiency of data transmission, and significantly improves the data transmission rate, especially in high-latency network environments.
Smart Images

Figure CN120881065B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a data transmission method, apparatus, electronic device, storage medium, and computer program product. Background Technology
[0002] Disk redirection is a technical method whose basic idea is to enable data interaction between the cloud desktop and the redirected disk, allowing the cloud desktop to access and use the user's local disk resources as if these resources were directly connected to the cloud desktop. Currently, the efficiency of data interaction between the cloud desktop and the redirected disk is still affected by many factors, resulting in low data transfer rates from the cloud desktop to the redirected disk. Summary of the Invention
[0003] To address the related technical problems, embodiments of this application provide a data transmission method, apparatus, electronic device, storage medium, and computer program product.
[0004] The technical solution of this application embodiment is implemented as follows:
[0005] This application provides a data transmission method applied to a cloud desktop, the method comprising:
[0006] The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device;
[0007] The redirection service sends one or more data packets to the client; wherein...
[0008] After receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information to the driver program. The modified header information is used to request the sending of the next data packet.
[0009] In the above scheme, modifying the information in the header of the received data packet includes:
[0010] Modify the first information contained in the packet header; among which...
[0011] The first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written.
[0012] In the above scheme, modifying the first information contained in the data packet header includes:
[0013] Based on the first information and the second information contained in the packet header, a third information is determined. The third information is used to indicate the starting position of the data corresponding to the next data packet in the data segment to be written. The second information is used to indicate the size of the data contained in the data packet.
[0014] Replace the first information with the third information.
[0015] In the above scheme, sending one or more data packets to the client includes:
[0016] The one or more data packets are merged to obtain a merged data packet;
[0017] The merged data packet is sent to the client.
[0018] In the above scheme, merging the one or more data packets to obtain the merged data packet includes:
[0019] The data contained in the one or more data packets are merged to obtain the merged data.
[0020] Based on the first and second information contained in the header of each of the one or more data packets, header information is generated, wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written, and the second information is used to indicate the size of the data contained in the data packet;
[0021] Based on the generated packet header information and the merged data, the merged data packet is generated.
[0022] In the above scheme, sending one or more data packets to the client includes:
[0023] The one or more data packets are sent to the client one by one.
[0024] In the above scheme, before the redirection service sends one or more data packets to the client, the method further includes:
[0025] The redirection service obtains network latency;
[0026] Based on network latency, adjust one or more of the following parameters:
[0027] The size of the Transmission Control Protocol (TCP) window;
[0028] The send cache capacity of the redirection service;
[0029] The receive cache capacity of the redirection service.
[0030] In the above scheme, the network latency satisfies one or more of the following:
[0031] Network latency is positively correlated with the size of the TCP window;
[0032] Network latency is positively correlated with the send buffer capacity of the redirection service;
[0033] Network latency is positively correlated with the receive buffer capacity of the redirection service.
[0034] This application also provides a data transmission device for use in a cloud desktop. The device includes: a first receiving module, a sending module, and a processing module; wherein...
[0035] The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device through the first receiving module.
[0036] The redirection service sends one or more data packets to the client through the sending module; wherein...
[0037] After receiving each data packet, the redirection service modifies the header information of the received data packet through the processing module and sends the modified header information to the driver program. The modified header information is used to request the sending of the next data packet.
[0038] This application also provides an electronic device, including a first processor and a first memory for storing a computer program capable of running on the first processor.
[0039] Wherein, when the first processor is used to run the computer program, it executes the steps of any of the above methods.
[0040] This application also provides a storage medium storing a computer program thereon, which, when executed by a processor, implements the steps of any of the above methods.
[0041] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above methods.
[0042] The data transmission method, apparatus, electronic device, storage medium, and computer program product provided in this application embodiment include a cloud desktop redirection service that receives one or more data packets to be written to a client storage device sent by the cloud desktop driver; the redirection service sends one or more data packets to the client; after receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information to the driver, the modified header information being used to request the sending of the next data packet. In this application embodiment, the redirection service modifies the header information of each data packet received and sends the modified header information to the driver to request the sending of the next data packet, eliminating the need for additional waiting time and increasing the data packet sending rate of the driver, thereby increasing the data packet receiving rate of the redirection service. The increased data packet receiving rate allows the redirection service to send data packets to the client at an increased rate, thus improving the data transmission rate between the cloud desktop and the client storage device. Attached Figure Description
[0043] Figure 1 This is a schematic diagram of a data packet transmission process in a related technology;
[0044] Figure 2 This is a schematic diagram illustrating the time period for acquiring the next data packet in related technologies;
[0045] Figure 3 This is a schematic flowchart of a data transmission method according to an embodiment of this application;
[0046] Figure 4 This is a schematic diagram of the data packet structure in an embodiment of this application;
[0047] Figure 5 This is a schematic diagram illustrating the replacement of the first information with the third information in an embodiment of this application;
[0048] Figure 6 This is a schematic diagram illustrating the merging of two data packets according to an embodiment of this application;
[0049] Figure 7 This is a schematic diagram of another data transmission method according to an embodiment of this application;
[0050] Figure 8 This is a schematic diagram of the data transmission method in an embodiment of this application;
[0051] Figure 9 This is a schematic diagram illustrating the time period for obtaining the next data packet in an embodiment of this application.
[0052] Figure 10 This is a schematic diagram illustrating the application flow of the data transmission method in an embodiment of this application;
[0053] Figure 11 This is a schematic diagram of a data transmission device according to an embodiment of this application;
[0054] Figure 12 This is a schematic diagram of another data transmission device structure according to an embodiment of this application;
[0055] Figure 13 This is a schematic diagram of the electronic device structure according to an embodiment of this application;
[0056] Figure 14 This is a schematic diagram of the client structure in an embodiment of this application. Detailed Implementation
[0057] The present application will now be described in further detail with reference to the accompanying drawings and embodiments.
[0058] Disk redirection is a technical method that allows cloud desktops to interact with redirected disks, enabling the cloud desktop to access and use the user's local disk resources as if these resources were directly connected to the cloud desktop. This technique makes cloud desktops more compatible with user habits. While disk redirection technology is relatively mature, the efficiency of data interaction between cloud desktops and redirected disks is still affected by many factors.
[0059] Disk redirection is primarily implemented through client-side redirection software development kits (SDKs), cloud desktop redirection services, and cloud desktop drivers. Data interaction between the cloud desktop and the redirected disk includes:
[0060] a. The driver sends a data packet to the redirection service, which then sends the data packet over the network to the redirection SDK. The redirection SDK then writes the data in the data packet to the user's local disk.
[0061] b. After the data is successfully written, the redirection SDK modifies the information in the packet header and sends the modified packet header information to the redirection service. The redirection service then sends the modified packet header information to the driver to request the driver to send the next packet to the redirection service.
[0062] c. Repeat process a to b to achieve data interaction between the cloud desktop and the redirected disk.
[0063] One example is the process of transmitting a data packet, such as... Figure 1 As shown, it includes:
[0064] Step 101: The driver sends a data packet to the redirection service;
[0065] Step 102: The redirection service sends a data packet to the redirection SDK over the network;
[0066] Step 103: The redirection SDK writes the data in the data packet to the user's local disk, modifies the information in the data packet header after the data is successfully written, and sends the modified data packet header information to the redirection service over the network;
[0067] Step 104: The redirection service sends the modified packet header information to the driver to request the driver to send the next packet to the redirection service.
[0068] In the above steps, the transmission of a data packet involves four steps, and each step is sequential. The time period for the next data packet is obtained through these steps, such as... Figure 2 As shown, the data packet acquisition time period ,in, The duration for the driver to send a packet to the redirection service; The duration for the redirection service to send a data packet over the network to the redirection SDK; The redirection SDK writes the data in the data packet to the user's local disk, modifies the information in the data packet header after the data is successfully written, and sends the modified data packet header information to the redirection service over the network. The redirection service sends the modified packet header information to the driver to request the duration for the driver to send the next packet to the redirection service. The length is relatively short and can be ignored. In the above steps, especially steps 102 and 103, network transmission is involved. During the network transmission process, other modules, such as drivers, are idle, which makes it impossible to maximize resource utilization efficiency. Furthermore, if the network fluctuates, the data transmission efficiency will be significantly reduced. There is a problem with the low data transmission rate of cloud desktops to redirected disks in related technologies.
[0069] Based on this, in various embodiments of this application, the cloud desktop redirection service receives one or more data packets to be written to the client storage device sent by the cloud desktop driver; the redirection service sends one or more data packets to the client; after receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information to the driver, the modified header information being used to request the sending of the next data packet. In the embodiments of this application, the redirection service modifies the header information of each data packet received and sends the modified header information to the driver to request the sending of the next data packet, without requiring additional waiting time, which can improve the data packet sending rate of the driver, thereby improving the data packet receiving rate of the redirection service. The increased data packet receiving rate allows the redirection service to send data packets to the client at an increased rate, thereby improving the data transfer rate between the cloud desktop and the client storage device.
[0070] This application provides a data transmission method applied to cloud desktops. Electronic devices with cloud desktops deployed can run the data transmission method provided in this application. Figure 3 As shown, the method includes:
[0071] Step 301: The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device;
[0072] Step 302: The redirection service sends one or more data packets to the client; wherein, after receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information to the driver, the modified header information being used to request the sending of the next data packet.
[0073] In practical applications, before the cloud desktop's redirection service (which can be understood as the redirection application layer) receives one or more data packets from the cloud desktop's driver (which can be understood as the driver) to be written to the client storage device, the cloud desktop's operating system receives a user-triggered instruction to transfer data from the cloud desktop to the client storage device (which can be understood as the user's local disk or the redirected disk). The operating system informs the driver that data transfer is required, causing the driver to request data packets from the operating system. The client storage device can include any storable device, such as a disk or USB flash drive, without specific limitations. The disk can include hard disk partitions, such as local disks C drive and / or D drive. Users can operate through the client device to trigger instructions to transfer data from the cloud desktop to the client storage device.
[0074] The methods by which a user triggers a data transfer command from the cloud desktop to the client storage device may include the user copying data from the cloud desktop and pasting it to the virtual local disk on the cloud desktop through the client, thereby triggering the command; or the user dragging and dropping data from the cloud desktop to the virtual local disk on the cloud desktop through the client, thereby triggering the command. This application does not limit the method of triggering the command.
[0075] Understandably, since the amount of data that can be transmitted at any given time is limited—that is, the size of the data contained in a data packet is finite—the data to be written in a single user trigger command can be divided into multiple data packets for transmission. The condition for a driver to request the first data packet from the operating system is that the driver receives a notification message from the operating system. Subsequently, the driver can proactively request data packets from the operating system until it has obtained all the data to be written in the current trigger command.
[0076] The size of each data packet can be pre-defined as needed. The operating system sends data packets to the driver one by one based on the driver's requests. The driver then forwards the received data packets to a redirection service, which receives one or more data packets from the driver intended to be written to the client's storage device. Each data packet can be understood as a single piece of data.
[0077] The redirection service modifies the header information of each received data packet and sends the modified header information to the driver to request the transmission of the next data packet. This process can involve the redirection service modifying the header information of each received data packet and sending the modified header information to the driver. The driver then sends the modified header information to the operating system via input / output (I / O). The operating system sends the next data packet to the driver, causing the driver to forward the received data packet to the redirection service. The modified header information is used to request the transmission of the next data packet; the header information can be understood as a message header. It is understandable that the redirection service can send the modified header information to the driver with an empty data packet, as an empty data packet contains no data.
[0078] A data packet can be understood as data being written to a file. For example... Figure 4As shown, the data packet contains write data and a header. The header may include opcode, operation sequence number (seqNum), session, result, length (len), and data pointer (pdata) fields. Among them, the opcode field can be used to indicate the operation function; for example, opcode can be defined as MSG_WRITE = 16; MSG_WRITE = 16 represents Function Code 16 in the Remote Terminal Unit (RTU) protocol, which is used to write multiple register data in batches. The seqNum field can represent a unique number that identifies the order of data. The session field can be used to store temporary data during the user session. The result field can refer to the structured field that encapsulates the return value in data processing. The Len field is used to identify the data block size. The data pointer field may include the root user (idroot), handle, data write offset (off64write), data write size (cb32write), and the starting position of the data in the data packet (data[0]) field. The `idroot` field refers to a unique identifier in the operating system that identifies the user with the highest privileges. The `Handle` field is used to identify data resources; the specific information contained in the data packet header can be understood by referring to relevant technical explanations.
[0079] The data packet header contains a lot of information. To improve the rate of acquiring the next data packet, the information in the data packet header that indicates the starting position of the data contained in the data packet within the data segment to be written can be modified. Based on this, in some optional embodiments, modifying the information in the received data packet header includes:
[0080] Modify the first information contained in the packet header; among which...
[0081] The first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written.
[0082] Here, as Figure 4 As shown, the first information may include information from the data write offset value (off64write) field.
[0083] The data segment to be written represents the data segment of the data to be written as indicated in the user trigger command.
[0084] In this embodiment, by dynamically updating the starting position of the data contained in the data packet, the driver can accurately know where the data of the next data packet should start reading, ensuring the continuity and accuracy of subsequent data writing, and helping to improve the overall efficiency and consistency of data writing.
[0085] Since modifying the packet header information is to request the sending of the next packet, the first information contained in the packet header can be modified to indicate the starting position of the data corresponding to the next packet in the data segment to be written. Based on this, in some optional embodiments, modifying the first information contained in the packet header includes:
[0086] Based on the first information and the second information contained in the packet header, a third information is determined. The third information is used to indicate the starting position of the data corresponding to the next data packet in the data segment to be written. The second information is used to indicate the size of the data contained in the data packet.
[0087] Replace the first information with the third information.
[0088] Here, as Figure 4 As shown, the second information may include information from the data write size (cb32write) field.
[0089] The determination of the third information based on the first information and the second information contained in the data packet header may include:
[0090] The sum of the data write offset value contained in the first information and the data write size contained in the second information is calculated, and the third information is generated based on this sum. It can be understood that the third information includes information from this sum field.
[0091] Replace the first piece of information with the third piece of information, for example Figure 5 As shown, Figure 5 The information below the middle arrow is the header information of the received data packet, and the information above the arrow is the modified header information.
[0092] In this embodiment, the starting position of the data in the next data packet is calculated by using the starting position and size of the data contained in the current data packet. This avoids repeatedly acquiring the same data, which not only improves the continuity of data packets but also simplifies the entire transmission process without requiring manual intervention, thereby increasing the data transmission rate.
[0093] The redirection service receives one or more data packets from the driver. Before sending these packets to the client, if network bandwidth changes, the service can adaptively adjust data transmission parameters based on the bandwidth-delay product to improve data transmission efficiency and resource utilization. Data transmission parameters may include one or more of the following (at least one can be considered): TCP window size, send buffer capacity of the redirection service, and receive buffer capacity of the redirection service; no specific limitation is imposed.
[0094] Adaptive adjustment of data transmission parameters based on the bandwidth-delay product can include:
[0095] The redirection service obtains network bandwidth and network latency;
[0096] Determine the bandwidth-delay product based on network bandwidth and network latency;
[0097] Based on the bandwidth-delay product, adjust one or more of the following parameters (which can be understood as at least one parameter):
[0098] The size of the TCP window (which can be understood as a TCP sliding window);
[0099] Send buffer capacity for redirection service;
[0100] The receive cache capacity of the redirection service.
[0101] The methods by which redirection services obtain network bandwidth and network latency can be understood by referring to relevant technologies.
[0102] Determining the bandwidth-delay product based on network bandwidth and network latency can include multiplying the network bandwidth and network latency to obtain the bandwidth-delay product. It is understood that the bandwidth-delay product (BDP) is a network performance metric used to describe the maximum amount of data a network link can store or transmit in a round-trip time (RTT), and it is particularly important as a metric when evaluating the performance of high-bandwidth, high-latency networks.
[0103] The bandwidth-delay product satisfies one or more of the following:
[0104] The bandwidth-delay product is positively correlated with the size of the TCP window;
[0105] The bandwidth-delay product is positively correlated with the send buffer capacity of the redirection service;
[0106] The bandwidth-delay product is positively correlated with the receive buffer capacity of the redirection service.
[0107] For example, adjusting the TCP window size based on the bandwidth-delay product may include: determining the increase ratio of the bandwidth-delay product and increasing the TCP window size by the same increase ratio; or, determining the level of the increase value of the bandwidth-delay product, determining the increase value of the TCP window size based on the mapping relationship between the level and the increase value of the TCP window size, and increasing the TCP window size by the increase value of the TCP window size. For example, the level of the bandwidth-delay product increase value 1-10 is level 1, the level of the bandwidth-delay product increase value 11-20 is level 2, the increase value of the TCP window size corresponding to level 1 is 5, and the increase value of the TCP window size corresponding to level 2 is 10. This is only an example and does not constitute a limitation on the values. The embodiments of this application do not limit the method of adjusting the TCP window size based on the bandwidth-delay product. The method of adjusting the send buffer capacity and / or receive buffer capacity of the redirection service based on the bandwidth-delay product can refer to the method of adjusting the TCP window size based on the bandwidth-delay product.
[0108] Before the redirection service sends one or more data packets to the client, if the network bandwidth remains unchanged, the data transmission parameters can be adaptively adjusted based on network latency to achieve higher data transmission efficiency and resource utilization. Therefore, in some optional embodiments, before the redirection service sends one or more data packets to the client, the data transmission method further includes:
[0109] The redirection service obtains network latency;
[0110] Based on network latency, adjust one or more of the following parameters:
[0111] TCP window size;
[0112] The send cache capacity of the redirection service;
[0113] The receive cache capacity of the redirection service.
[0114] Here, network latency refers to the real-time latency at the moment the network acquires latency during the redirection service.
[0115] By clearly defining the method for adjusting parameters based on network latency, more accurate parameter adjustments can be achieved. Therefore, in some optional embodiments, the network latency satisfies one or more of the following:
[0116] Network latency is positively correlated with the size of the TCP window;
[0117] Network latency is positively correlated with the send buffer capacity of the redirection service;
[0118] Network latency is positively correlated with the receive buffer capacity of the redirection service.
[0119] Here, it can be understood that if network latency increases, the TCP window size should be increased accordingly; if network latency decreases, the TCP window size should be decreased accordingly. The same principle applies to the send buffer capacity and / or receive buffer capacity of the redirection service.
[0120] For example, adjusting the TCP window size based on network latency may include: determining the reduction ratio of network latency and reducing the TCP window size by the same reduction ratio; or, determining the level of the network latency reduction value, determining the reduction value of the TCP window size based on the mapping relationship between the level and the reduction value of the TCP window size, and reducing the TCP window size by the reduction value of the TCP window size. For example, a bandwidth-latency product reduction value of 1-10 corresponds to level A, a bandwidth-latency product reduction value of 11-20 corresponds to level B, level A corresponds to a TCP window size reduction value of 5, and level B corresponds to a TCP window size reduction value of 10. This is merely an example and does not constitute a limitation on the values. This application does not limit the method of adjusting the TCP window size based on network latency. The method of adjusting the send buffer capacity and / or receive buffer capacity of the redirection service based on network latency can refer to the method of adjusting the TCP window size based on network latency.
[0121] In this embodiment of the application, by clarifying the relationship between network latency and various parameters, the parameter values can be adjusted more precisely, thereby achieving better data transmission performance. This not only improves the adaptability during data transmission but also ensures better data transmission performance under different network conditions.
[0122] Understandably, there are no restrictions on the data transmission parameters that can be adjusted based on network latency.
[0123] In this embodiment of the application, by dynamically acquiring network latency and adjusting the cache capacity and TCP window size based on network latency, the available bandwidth can be maximized and the data transmission efficiency can be improved. Especially in high-latency network environments, reasonable adjustment of data transmission parameters helps to reduce idle time during data transmission and improve overall performance.
[0124] Before sending one or more data packets to the client, the redirection service can either adaptively adjust the data transmission parameters or send one or more data packets directly to the client without adjusting the data transmission parameters. Users can choose whether to adjust the data transmission parameters based on their actual needs.
[0125] To improve data transmission efficiency, a redirection service sends one or more data packets to the client. This may include the redirection service merging all received data packets into a single packet before sending it to the client. Based on this, in some optional embodiments, sending one or more data packets to the client includes:
[0126] The one or more data packets are merged to obtain a merged data packet;
[0127] The merged data packet is sent to the client.
[0128] Here, the redirection service can unpack and repackage one or more data packets to obtain a merged data packet.
[0129] There are several ways to merge one or more data packets. To improve the efficiency of merging data packets, one or more data packets can be unpacked to obtain data and headers, and then the data and headers can be merged separately and then encapsulated. This avoids confusion during the merging process, ensures orderly data packet merging, and thus improves the efficiency of data packet merging. Based on this, in some optional embodiments, merging the one or more data packets to obtain the merged data packet includes:
[0130] The data contained in the one or more data packets are merged to obtain the merged data.
[0131] Based on the first and second information contained in the header of each of the one or more data packets, header information is generated, wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written, and the second information is used to indicate the size of the data contained in the data packet;
[0132] Based on the generated packet header information and the merged data, the merged data packet is generated.
[0133] Here, one or more data packets can be unpacked to obtain the data and header contained in each data packet; merging all the data contained in one or more data packets can include concatenating the data contained in one or more data packets according to the data order indicated by the seqNum field in the packet header to obtain the merged data.
[0134] The first piece of information may include the data write offset (off64write) field. The second piece of information may include the data write size (cb32write) field.
[0135] Generate header information based on the first and second information contained in the header of each of one or more data packets. This may include: determining the smallest data write offset value contained in the header of one or more data packets as the merged data write offset value; determining the sum of the data write sizes contained in the headers of all data packets in one or more data packets as the merged data write size; and generating header information based on the merged data write offset value and the merged data write size.
[0136] Based on the generated header information and the merged data, a merged data packet is generated, which may include combining the generated header information and the merged data together to obtain the merged data packet. This application does not limit the method of generating the merged data packet based on the generated header information and the merged data.
[0137] Taking the merging of two data packets as an example, such as Figure 6 As shown, since both data packets have opcodes of MSG_WRITE = 16, data packets data1 and data2 can be merged to obtain the merged data packet data. data1 contains a header and data (write data1). The header of data1 contains the opcode (MSG_WRITE = 16)...off64write1, cb32write1... data2 contains a header and data (write data2). The header of data2 contains the opcode (MSG_WRITE = 16)...off64write2, cb32write2... The merged data packet data contains a header and data (write data1 and write data2). The header of data contains the opcode (MSG_WRITE = 16)...off64write (the merged data write offset, which is the minimum of off64write1 and off64write2), cb32write (the merged data write size, which is the sum of cb32write1 and cb32write2)...
[0138] In this embodiment of the application, by reorganizing and integrating the header information of one or more data packets, a new and unified header information is generated to support the correct parsing and data writing of the merged data packets. This not only maintains the integrity of the data but also improves the stability and reliability of the data transmission process.
[0139] The redirection service can send the merged data packets over the network to the client's redirection SDK.
[0140] In this embodiment of the application, merging data packets can reduce the network transmission process and eliminate the impact of network latency on transmission performance; it can also merge multiple data packets into one data packet for transmission, which can reduce the number of network transmissions, especially in high-latency network environments, effectively reducing data transmission latency and improving overall transmission efficiency; the merged data packet can also make better use of bandwidth resources and increase the amount of data transmitted per unit time.
[0141] To improve data transmission stability, the redirection service sends one or more data packets to the client. This can be achieved by the redirection service sending each received data packet to the client. Therefore, in some optional embodiments, sending one or more data packets to the client includes:
[0142] The one or more data packets are sent to the client one by one.
[0143] Here, the redirection service can send one or more data packets one by one to the client's redirection SDK over the network.
[0144] In this embodiment, by sending data packets one by one, the data transmission process can be controlled more flexibly, which can be applied to the needs of different network environments. For example, in the case of low bandwidth or high packet loss rate, sending data packets one by one can more easily achieve flow control and error recovery, thereby improving the stability of data transmission.
[0145] The redirection service sends data packets to the redirection SDK, so that after the redirection SDK receives the data packets sent by the redirection service, it writes the data in the data packets into the client's storage device.
[0146] The data transmission method provided in this application embodiment modifies the header information of each data packet received by the redirection service and sends the modified header information to the driver to request the next data packet. This eliminates the need for additional waiting time, thereby increasing the data packet sending rate of the driver and thus increasing the data packet receiving rate of the redirection service. The redirection service then sends the received data packets to the client. The increased data packet receiving rate allows the redirection service to send data packets to the client at an even faster rate, thereby improving the data transmission rate between the cloud desktop and the client storage device.
[0147] Correspondingly, embodiments of this application also provide a data transmission method applied to a client (which can be understood as a user terminal). The client interacts with an electronic device deployed with a cloud desktop via a network. For example, the client includes a personal computer (PC), a tablet computer, etc., and the specific type is not limited. Figure 7 As shown, the method includes:
[0148] Step 701: The client's redirection SDK receives one or more data packets sent by the cloud desktop's redirection service;
[0149] Step 702: The redirection SDK writes the data contained in one or more data packets to the client's storage device and determines whether the write was successful;
[0150] Step 703: If writing data contained in a data packet to the client storage device fails, the redirection SDK creates a new thread to rewrite the data contained in the failed data packet to the client storage device, increments the number of rewrite attempts, and determines whether the rewrite is successful.
[0151] Step 704: If the data contained in the data packet fails to be written to the client storage device again, and the set number of write attempts has not been reached, the data contained in the failed data packet is written to the client storage device again, and the number of write attempts is increased until the set number of write attempts is reached or the data contained in the data packet is successfully written to the client storage device.
[0152] Here, if the set number of write attempts is reached and the data in the data packet still fails to be written to the client storage device, the redirection SDK deletes the data to be written under the current user command, informs the redirection service to end the current data transmission, and sends a prompt message to inform the user that the write has failed. The user can then re-initiate the data transmission command.
[0153] Step 703 initially sets the write count to 0, increasing it to 1 after incrementing the write count. Step 704 increments the write count incrementally. The set write count can be adjusted based on actual needs. For example, the write count can be set to 3.
[0154] In this application embodiment, compared to Figure 1 In the related technologies shown, when data writing fails, the cb32write in the packet header is reset to 0 to indicate a writing failure. The data is then returned to the cloud desktop's redirection service via the network, and the redirection service requests the driver to resend the failed data packet. This presents the problem of lengthy logic and low efficiency. In contrast, this application embodiment does not require resending the failed data packet via the network. Instead, a new thread is created for the failed data packet to rewrite the data contained in the failed data packet, which reduces the number of data transmissions and thus improves data writing efficiency.
[0155] The following section provides a more detailed description of this application with reference to application examples.
[0156] The framework of the data transmission method in this application example is as follows: Figure 8 As shown. Figure 8The data transfer method shown in this application example applies to both the cloud desktop and the client, including:
[0157] Step 801: The cloud desktop driver sends a data packet to the redirection service;
[0158] Step 802: The cloud desktop's redirection service sends data packets to the client's redirection SDK. For example, if the data packets are a queue, the sending thread sends the data packets of the queue to the redirection SDK. The redirection SDK receives the data packets and writes them. For example, if the redirection SDK receives the data packets of the queue, the writing thread writes the data contained in the data packets to the client's storage device.
[0159] Step 803: After receiving the data packet, the redirection service modifies the information in the header of the received data packet and sends the modified header information to the driver.
[0160] Steps 802 and 803 are performed in parallel. Figure 8 The steps shown in this embodiment of the application are for obtaining the time period of the next data packet, such as... Figure 9 As shown, the data packet acquisition time period ,in, The duration for the driver to send packets to the redirection service. Figure 9 The middle overlooked .pass Figure 9 and Figure 2 In comparison, the data transmission efficiency of the embodiments in this application is greatly improved.
[0161] The application flow of the data transmission method in this application example is as follows: Figure 10 As shown, it includes:
[0162] a. The cloud desktop's operating system receives a user-triggered instruction to transfer data from the cloud desktop to the client's storage device; the operating system then informs the driver via I / O that data transfer is required.
[0163] b. The driver sends a request to the operating system via I / O to obtain data packets.
[0164] c. The driver sends the acquired data packets to the redirection service.
[0165] d. After receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information as a new request to the driver; the redirection service also merges the received data packets according to the queue to obtain the merged data packet, and sends the merged data packet to the client's redirection SDK through the network.
[0166] e. The redirection SDK receives the merged data packet and, based on the information in the merged data packet header, such as the data write offset and data write size, writes the data contained in the data packet to the client's storage device using multiple threads.
[0167] f. If the redirection SDK fails to write the data contained in the data packet to the client storage device, the redirection SDK creates a new thread to rewrite the data contained in the failed data packet to the client storage device, increments the write count, and checks if the rewrite is successful. If the rewrite of the data contained in the data packet fails before reaching the set write count, the SDK rewrites the data contained in the failed data packet to the client storage device, increments the write count, until the set write count is reached or the data contained in the data packet is successfully written to the client storage device. For example, the set write count is 3.
[0168] It is worth noting that the internal data source of the cloud desktop (redirection service + driver) is very abundant, and there is no data bottleneck (after testing, the data source in this embodiment has a data production capacity of 180 megabytes per second (MB / s), which is far higher than the amount of data transmitted per unit time by network bandwidth); at the same time, there is also no bottleneck in the client's redirection SDK data writing operation (at the redirection SDK, the data contained in the received data packet and the data in the written data packet are processed by different threads). It can be seen that the network sending part becomes the bottleneck for faster data transmission. In this embodiment, before the redirection service sends the merged data packet to the client's redirection SDK through the network, the redirection service obtains the network bandwidth and network latency; based on the network bandwidth and network latency, it determines the bandwidth-latency product; based on the bandwidth-latency product, it adjusts the TCP window size to support a larger window size; based on the bandwidth-latency product, it adjusts the sending buffer capacity and the receiving buffer capacity of the redirection service to ensure the maximization of network transmission performance.
[0169] The solution provided in this application example, in the cloud desktop data source section, modifies the information in the packet header after receiving the data packet and directly returns it to the driver to request the next data packet. This pipelined acquisition of data packets reduces unnecessary network interactions and mitigates performance degradation caused by network fluctuations. Compared with related technologies, the embodiment of this application significantly improves the ability to resist network fluctuations and also greatly improves data transmission efficiency. It further enhances efficiency and network utilization through parallel processing. Simultaneously, it breaks the data source rate bottleneck of "redirection service + driver," shifting the bottleneck to the network transmission process and achieving faster data transmission by adjusting parameters. Under TCP data transmission, the application of bandwidth-delay product maximizes network bandwidth utilization, achieving high-efficiency data transmission and fully leveraging network bandwidth resources for accelerated data writing. Multiple data packets are merged into a single large data packet, reducing network transmission actions. The redirection SDK can write data through multi-threading, improving data writing speed. It also adds exception handling methods for data writing failures, increasing data writing integrity and ensuring data writing security. Furthermore, the next data packet prefetched in this embodiment is based on data to be written determined by user instructions, eliminating the possibility of prefetched data not being used.
[0170] To implement the data transmission method provided by the cloud desktop side in this application embodiment, this application embodiment also provides a data transmission device applied to the cloud desktop, such as... Figure 11 As shown, the device includes: a first receiving module 1101, a transmitting module 1102, and a processing module 1103; wherein,
[0171] The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device through the first receiving module 1101;
[0172] The redirection service sends one or more data packets to the client via the sending module 1102; wherein...
[0173] After receiving each data packet, the redirection service modifies the header information of the received data packet through the processing module 1103 and sends the modified header information to the driver program. The modified header information is used to request the sending of the next data packet.
[0174] In some optional embodiments, the cloud desktop redirection service modifies the first information contained in the data packet header through the processing module 1103; wherein,
[0175] The first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written.
[0176] In some optional embodiments, the cloud desktop redirection service performs the following operations through the processing module 1103:
[0177] Based on the first information and the second information contained in the packet header, a third information is determined. The third information is used to indicate the starting position of the data corresponding to the next data packet in the data segment to be written. The second information is used to indicate the size of the data contained in the data packet.
[0178] Replace the first information with the third information.
[0179] In some optional embodiments, the cloud desktop redirection service performs the following operations through the sending module 1102:
[0180] The one or more data packets are merged to obtain a merged data packet;
[0181] The merged data packet is sent to the client.
[0182] In some optional embodiments, the cloud desktop redirection service performs the following operations through the sending module 1102:
[0183] The data contained in the one or more data packets are merged to obtain the merged data.
[0184] Based on the first and second information contained in the header of each of the one or more data packets, header information is generated, wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written, and the second information is used to indicate the size of the data contained in the data packet;
[0185] Based on the generated packet header information and the merged data, the merged data packet is generated.
[0186] In some optional embodiments, the cloud desktop redirection service sends one or more data packets to the client one by one through the sending module 1102.
[0187] In some alternative embodiments, the apparatus further includes:
[0188] The acquisition module is used by the redirection service to acquire network latency;
[0189] The adjustment module is used to adjust one or more of the following parameters based on network latency:
[0190] TCP window size;
[0191] The send cache capacity of the redirection service;
[0192] The receive cache capacity of the redirection service.
[0193] In practical applications, the first receiving module 1101, the processing module 1103, the acquisition module, and the adjustment module can be implemented by the processor in the data transmission device, and the sending module 1102 can be implemented by combining the processor in the data transmission device with the communication interface.
[0194] To implement the data transmission method provided on the client side in this application embodiment, this application embodiment also provides a data transmission device applied to the client, such as... Figure 12 As shown, the device includes: a second receiving module 1201 and a writing module 1202; wherein,
[0195] The client's redirection SDK receives one or more data packets sent by the cloud desktop's redirection service through the second receiving module 1201;
[0196] The redirection SDK uses the write module 1202 to write data contained in one or more data packets to the client storage device and determines whether the write is successful. If the write of data contained in a data packet to the client storage device fails, the redirection SDK creates a new thread to write the data contained in the failed data packet to the client storage device again and increases the number of write attempts, then determines whether the write attempt is successful. If the write of data contained in a data packet to the client storage device fails again and the set number of write attempts has not been reached, the write of the data contained in the failed data packet to the client storage device is repeated and the number of write attempts is increased until the set number of write attempts is reached or the data contained in the data packet is successfully written to the client storage device.
[0197] In practical applications, the second receiving module 1201 can be implemented by the communication interface in the data transmission device, and the writing module 1202 can be implemented by the processor in the data transmission device.
[0198] It should be noted that the data transmission device provided in the above embodiments is only illustrated by the division of the above program modules. In practical applications, the above processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the processing described above. In addition, the data transmission device and data transmission method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process can be found in the method embodiments, which will not be repeated here.
[0199] Based on the hardware implementation of the above program modules, and in order to implement the data transmission method provided by the cloud desktop side in this application embodiment, this application embodiment also provides an electronic device deployed with a cloud desktop, such as... Figure 13 As shown, the electronic device 1300 includes:
[0200] The first communication interface 1301 is capable of exchanging information with the client;
[0201] The first processor 1302 is connected to the first communication interface 1301 to enable information interaction with the client and to execute the methods provided by one or more technical solutions on the electronic device side when running a computer program.
[0202] The computer program is stored in the first memory 1303.
[0203] Specifically, the cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device through the first processor 1302;
[0204] The redirection service sends one or more data packets to the client through the first communication interface 1301; wherein...
[0205] After receiving each data packet, the redirection service modifies the header information of the received data packet through the first processor 1302 and sends the modified header information to the driver. The modified header information is used to request the sending of the next data packet.
[0206] In some optional embodiments, the redirection service modifies the first information contained in the packet header through the first processor 1302; wherein,
[0207] The first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written.
[0208] In some alternative embodiments, the redirection service performs the following operations via the first processor 1302:
[0209] Based on the first information and the second information contained in the packet header, a third information is determined. The third information is used to indicate the starting position of the data corresponding to the next data packet in the data segment to be written. The second information is used to indicate the size of the data contained in the data packet.
[0210] Replace the first information with the third information.
[0211] In some optional embodiments, the redirection service merges the one or more data packets through the first processor 1302 to obtain merged data packets;
[0212] The merged data packet is then sent to the client via the first communication interface 1301.
[0213] In some alternative embodiments, the redirection service performs the following operations via the first processor 1302:
[0214] The data contained in the one or more data packets are merged to obtain the merged data.
[0215] Based on the first and second information contained in the header of each of the one or more data packets, header information is generated, wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written, and the second information is used to indicate the size of the data contained in the data packet;
[0216] Based on the generated packet header information and the merged data, the merged data packet is generated.
[0217] In some alternative embodiments, the redirection service sends the one or more data packets to the client one by one through the first communication interface 1301.
[0218] In some alternative embodiments, the redirection service performs the following operations via the first processor 1302:
[0219] The redirection service obtains network latency;
[0220] Based on network latency, adjust one or more of the following parameters:
[0221] TCP window size;
[0222] The send cache capacity of the redirection service;
[0223] The receive cache capacity of the redirection service.
[0224] It should be noted that the specific processing procedures of the first processor 1302 and the first communication interface 1301 can be understood by referring to the above method.
[0225] Of course, in practical applications, the various components in electronic device 1300 are coupled together through the first bus system 1304. It can be understood that the first bus system 1304 is used to realize the connection and communication between these components. In addition to a data bus, the first bus system 1304 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in... Figure 13 The general designated all buses as the first bus system 1304.
[0226] The first memory 1303 in this embodiment is used to store various types of data to support the operation of the electronic device 1300. Examples of such data include any computer program used to operate on the electronic device 1300.
[0227] The methods disclosed in the above embodiments of this application can be applied to the first processor 1302, or implemented by the first processor 1302. The first processor 1302 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware or by instructions in the form of software in the first processor 1302. The first processor 1302 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The first processor 1302 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as being executed by a hardware decoding processor, or being executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, which is located in the first memory 1303. The first processor 1302 reads the information in the first memory 1303 and completes the steps of the aforementioned method in combination with its hardware.
[0228] In an exemplary embodiment, the electronic device 1300 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
[0229] Based on the hardware implementation of the above program modules, and in order to implement the data transmission method provided on the client side of this application embodiment, this application embodiment also provides a client, such as... Figure 14 As shown, client 1400 includes:
[0230] The second communication interface 1401 is capable of exchanging information with electronic devices that have deployed cloud desktops;
[0231] The second processor 1402 is connected to the second communication interface 1401 to enable information interaction with the electronic device and to execute the methods provided by one or more technical solutions on the client side when running a computer program.
[0232] The computer program is stored in the second memory 1403.
[0233] Specifically, the client's redirection SDK receives one or more data packets sent by the cloud desktop's redirection service through the second communication interface 1401;
[0234] The redirection SDK performs the following operations via the second processor 1402:
[0235] Write data contained in one or more data packets to the client storage device and determine whether the write was successful. If the write of data contained in a data packet to the client storage device fails, the redirection SDK creates a new thread to write the data contained in the failed data packet to the client storage device again, increments the write count, and determines whether the write was successful. If the write of data contained in a data packet to the client storage device fails again and the set write count has not been reached, the write of the data contained in the failed data packet to the client storage device is repeated, and the write count is incremented until the set write count is reached or the data contained in the data packet is successfully written to the client storage device.
[0236] It should be noted that the specific processing procedures of the second processor 1402 and the second communication interface 1401 can be understood by referring to the above method.
[0237] Of course, in practical applications, the various components in client 1400 are coupled together through the second bus system 1404. It can be understood that the second bus system 1404 is used to implement communication between these components. In addition to the data bus, the second bus system 1404 also includes a power bus, a control bus, and a status signal bus. However, for clarity, in... Figure 14 The various buses are all labeled as the second bus system 1404.
[0238] The second memory 1403 in this embodiment is used to store various types of data to support the operation of the client 1400. Examples of such data include any computer program used to operate on the client 1400.
[0239] The methods disclosed in the embodiments of this application can be applied to, or implemented by, the second processor 1402. The second processor 1402 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by the integrated logic circuitry of the hardware or by instructions in the form of software within the second processor 1402. The second processor 1402 may be a general-purpose processor, a DSP, or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The second processor 1402 can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules may be located in a storage medium, specifically a second memory 1403. The second processor 1402 reads information from the second memory 1403 and, in conjunction with its hardware, completes the steps of the aforementioned method.
[0240] In an exemplary embodiment, the client 1400 may be implemented by one or more ASICs, DSPs, PLDs, CPLDs, FPGAs, general-purpose processors, controllers, MCUs, microprocessors, or other electronic components to perform the aforementioned method.
[0241] It is understood that the memories (first memory 1303, second memory 1403) in the embodiments of this application can be volatile memory or non-volatile memory, or both. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disc, or compact disc read-only memory (CD-ROM); magnetic surface memory can be disk storage or magnetic tape storage. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Synchronous Static Random Access Memory (SSRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Double Data Rate Synchronous Dynamic Random Access Memory (DDRSDRAM), Enhanced Synchronous Dynamic Random Access Memory (ESDRAM), SyncLink Dynamic Random Access Memory (SLDRAM), and Direct Rambus Random Access Memory (DRRAM).The memories described in the embodiments of this application are intended to include, but are not limited to, these and any other suitable types of memories.
[0242] This application also provides a storage medium, specifically a computer-readable storage medium, such as a first memory 1303 storing a computer program, which can be executed by a first processor 1302 of an electronic device 1300 to complete the steps described in the aforementioned electronic device-side method. Another example is a second memory 1403 storing a computer program, which can be executed by a second processor 1402 of a client device 1400 to complete the steps described in the aforementioned client-side method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM.
[0243] This application also provides a computer program product, including a computer program that can implement the steps of any of the above-described methods on the electronic device side when executed by a first processor 1302, and can also implement the steps of any of the above-described methods on the client side when executed by a second processor 1402.
[0244] It should be noted that terms such as "first" and "second" are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. The term "and / or" in this article simply describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone. Furthermore, the term "one or more" in this article refers to any combination of at least two of any one or more items from a set of A, B, and C. For example, "one or more of A, B, and C" can represent any one or at least two or more elements selected from the set of A, B, and C.
[0245] Furthermore, the technical solutions described in the embodiments of this application can be combined arbitrarily without conflict.
[0246] The above description is merely a preferred embodiment of this application and is not intended to limit the scope of protection of this application.
Claims
1. A data transmission method, characterized in that, Applied to cloud desktops, the method includes: The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device; wherein, the one or more data packets are obtained by decomposing the data to be written in a single user trigger command; The redirection service sends one or more data packets to the client; wherein... After receiving each data packet, the redirection service modifies the header information of the received data packet and sends the modified header information to the driver. The modified header information is used to request the sending of the next data packet. The modified header information is sent by the redirection service through an empty data packet, which contains no data. The modification of the information in the header of the received data packet includes: modifying the first information contained in the header of the data packet; wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written.
2. The method according to claim 1, characterized in that, Modifying the first information contained in the packet header includes: Based on the first information and the second information contained in the packet header, a third information is determined. The third information is used to indicate the starting position of the data corresponding to the next data packet in the data segment to be written. The second information is used to indicate the size of the data contained in the data packet. Replace the first information with the third information.
3. The method according to claim 1, characterized in that, Sending one or more data packets to the client includes: The one or more data packets are merged to obtain a merged data packet; The merged data packet is sent to the client.
4. The method according to claim 3, characterized in that, The process of merging the one or more data packets to obtain a merged data packet includes: The data contained in the one or more data packets are merged to obtain the merged data. Based on the first and second information contained in the header of each of the one or more data packets, header information is generated, wherein the first information is used to indicate the starting position of the data contained in the data packet in the data segment to be written, and the second information is used to indicate the size of the data contained in the data packet; Based on the generated packet header information and the merged data, the merged data packet is generated.
5. The method according to claim 1, characterized in that, Sending one or more data packets to the client includes: The one or more data packets are sent to the client one by one.
6. The method according to any one of claims 1 to 5, characterized in that, Before the redirection service sends one or more data packets to the client, the method further includes: The redirection service obtains network latency; Based on network latency, adjust one or more of the following parameters: Size of the Transmission Control Protocol (TCP) window; The send cache capacity of the redirection service; The receive cache capacity of the redirection service.
7. The method according to claim 6, characterized in that, Network latency meets one or more of the following criteria: Network latency is positively correlated with the size of the TCP window; Network latency is positively correlated with the send buffer capacity of the redirection service; Network latency is positively correlated with the receive buffer capacity of the redirection service.
8. A data transmission device, characterized in that, For use in cloud desktops, the device includes: a first receiving module, a sending module, and a processing module; wherein, The cloud desktop redirection service receives one or more data packets sent by the cloud desktop driver to be written to the client storage device through the first receiving module; wherein, the one or more data packets are obtained by decomposing the data to be written in a user trigger command; The redirection service sends one or more data packets to the client through the sending module; wherein... After receiving each data packet, the redirection service modifies the header information of the received data packet through the processing module and sends the modified header information to the driver. The modified header information is used to request the sending of the next data packet. The modified header information is sent by the redirection service through an empty data packet, which contains no data. The redirection service also modifies the first information contained in the packet header through the processing module; wherein the first information is used to indicate the starting position of the data contained in the packet in the data segment to be written.
9. An electronic device, characterized in that, It includes a first processor and a first memory for storing computer programs that can run on the first processor. Wherein, when the first processor is used to run the computer program, it performs the steps of the method according to any one of claims 1 to 7.
10. A storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.
11. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Data redirection optimization method, apparatus and system for intelligent desktop virtualization
CN107870803A