Method and system for optimizing data flow between devices

By converting and adapting data packet sizes to different networks at the gateway, the problem of low data transmission efficiency is solved, enabling efficient data transmission between devices and improving throughput.

CN117714401BActive Publication Date: 2026-06-09DANFOSS POWER SOLUTIONS APS

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
DANFOSS POWER SOLUTIONS APS
Filing Date
2019-11-04
Publication Date
2026-06-09

Smart Images

  • Figure CN117714401B_ABST
    Figure CN117714401B_ABST
Patent Text Reader

Abstract

A system and method for transmitting data between a first device on a first network and a second device on a second network includes placing a gateway between the first device and the second device, wherein the gateway intercepts a data transmission sent from the first device to the second device in a first packet size, converts the data transmission from the first packet size to a second packet size, and delivers the data transmission to the second device in the second packet size.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of invention patent application No. 201911069270.7 entitled "Method and System for Optimizing Data Flow Between Devices", filed on November 4, 2019. Technical Field

[0002] This invention relates to data communication, and more particularly, to methods and systems for controlling data flow in communication between devices. Background Technology

[0003] In data communication networks, a certain amount of data is transmitted between physical devices by breaking it down into multiple addressable data packets (i.e., smaller units of data), and then sending and routing these data packets from the sending device to the receiving device (where the data packets are received and reassembled) through the communication network.

[0004] When two physical devices with different latency characteristics are logically connected for data transmission, the given amount of data must be divided into packets not exceeding the maximum packet size of either connected device. This means that the device with the weakest capability determines the packet size during data transmission. Additionally, in order to send each new data packet, the sending device must first wait for acknowledgment of receipt of previous packets from the receiving device before being allowed to send a new packet. Due to these factors, data transmission throughput is affected, and on high-latency links, the time between the transmission of two consecutive packets can be quite long. Therefore, data transmission efficiency is low. Summary of the Invention

[0005] According to this disclosure, a system for transmitting data between a first device and a second device is disclosed to overcome the aforementioned inefficiencies. The system includes: a first network having a first latency characteristic defining a first packet size for data transmission on the first network, wherein the first device operates on the first network; and a second network having a second latency characteristic defining a second packet size for data transmission on the second network, wherein the second device operates on the second network. The system further includes a gateway situated between the first network and the second network. The gateway is configured to intercept data transmissions sent from the first device to the second device at the first packet size, convert the data transmissions from the first packet size to the second packet size, and deliver the data transmissions to the second device at the second packet size.

[0006] According to this disclosure, the gateway can also be configured to: intercept data transmissions sent from a second device to a first device in a second packet size, convert the data transmissions from the second packet size to the first packet size, and deliver the data transmissions to the first device in the first packet size.

[0007] According to this disclosure, the size of the first group and the size of the second group can be different. The size of the first group can be smaller or larger than the size of the second group.

[0008] According to this disclosure, a method is disclosed for transmitting data between a first device operating on a first network and a second device operating on a second network. The method includes: intercepting data transmission from the first device to the second device at a gateway between the first and second networks, the data transmission being transmitted in a first packet size to the second device. The method further includes converting the data transmission from the first packet size to a second packet size at the gateway, and delivering the converted data transmission from the gateway to the second device in a second data size.

[0009] According to this disclosure, the method may include converting data transmissions, wherein the first packet size and the second packet size are different. The first packet size may be smaller or larger than the second packet size.

[0010] According to this disclosure, converting data transmission from a first packet size to a second packet size may include splitting each packet of the first packet size into multiple packets of the second packet size.

[0011] According to this disclosure, converting data transmission from a first packet size to a second packet size may include combining multiple packets of the first packet size into a single packet of the second packet size.

[0012] According to this disclosure, the method for sending data between a first device operating on a first network and a second device operating on a second network may further include: receiving at a gateway a request from the first device for a maximum packet size available to the second device; forwarding the request from the gateway to the second device for the maximum packet size available to the second device; receiving at the gateway a response from the second device indicating that the maximum packet size available to the second device is a second packet size; and sending from the gateway to the first device a response indicating that the maximum packet size available to the second device is a first packet size rather than a second packet size.

[0013] According to this disclosure, delivering the converted data transmission from the gateway to the second device in a second packet size may include: sending a first portion of the data transmission to the second device as a first packet of the second packet size; receiving an acknowledgment at the gateway that the first packet has been received by the second device; and repeating the sending and receiving steps for subsequent portions of the data transmission until the entire data transmission has been received by the second device.

[0014] According to this disclosure, the method may further include: sending an indication from the gateway to the first device that the data transmission is complete after the entire data transmission has been received by the second device.

[0015] According to this disclosure, a computer program product residing on a computer-readable medium may have a plurality of instructions stored thereon, which, when executed by a processor of a gateway operatively connecting a first network and a second network, cause the processor to perform operations including: intercepting at the gateway a data transmission at a first packet size from a first device operating on the first network to a second device operating on the second network; converting the data transmission at the gateway from the first packet size to a second packet size; and delivering the converted data transmission from the gateway to the second device at the second packet size.

[0016] According to this disclosure, a computer program product may include instructions for converting data transmissions, wherein the first packet size and the second packet size are different. The first packet size may be smaller or larger than the second packet size.

[0017] According to this disclosure, the computer program product may also include instructions for converting data transmission from the first packet size to the second packet size by splitting each packet of the first packet size into a plurality of packets of the second packet size.

[0018] According to this disclosure, the computer program product may also include instructions for converting data transmission from the first packet size to the second packet size by combining a plurality of packets of the first packet size into a single packet of the second packet size.

[0019] According to this disclosure, the computer program product may further include instructions for performing the following operations: receiving at a gateway a request from a first device for a maximum packet size available for a second device; forwarding the request from the gateway to the second device for the maximum packet size available for the second device; receiving at the gateway a response from the second device indicating that the maximum packet size available for the second device is a second packet size; and sending from the gateway to the first device a response indicating that the maximum packet size available for the second device is a first packet size.

[0020] According to this disclosure, the instructions for delivering the converted data transmission from the gateway to the second device in a second packet size may further include instructions for performing the following operations: sending a first portion of the data transmission from the gateway to the second device as a first packet of the second packet size; receiving at the gateway an acknowledgment that the first packet has been received by the second device; and repeating the sending and receiving steps for subsequent portions of the data transmission until the entire data transmission has been received by the second device.

[0021] According to this disclosure, the computer program product may also include instructions for performing the following operations: sending an indication from the gateway to the first device that the data transmission is complete after the entire data transmission has been received by the second device.

[0022] These and other objects, features, and advantages of this disclosure will become apparent from the detailed description of embodiments of the present disclosure as shown in the accompanying drawings. Attached Figure Description

[0023] Figure 1 This is a schematic diagram of a system for optimizing data transmission according to the present disclosure; and

[0024] Figure 2 It shows the use of in Figure 1 A flowchart illustrating methods for improving data throughput between connected devices in a system. Detailed Implementation

[0025] refer to Figure 1 The diagram illustrates a system 10 according to the present disclosure. System 10 includes a first device 12 operating on a first network 14, a second device 16 operating on a second network 18, and a gateway 20 connecting the first network 14 and the second network 18. Each of the first network 14 and the second network 18 is optimized for low latency and low memory usage or high latency and higher memory usage. Typically, data transmission on any network is optimized for low latency and low memory usage or high latency and higher memory usage, depending at least in part on the storage capacity of the physical devices on the network. Physical devices can be, for example, electronic control units (ECUs) and various devices associated with them, such as controllers, displays, valves, and / or other similar control or controlled components.

[0026] For illustrative purposes, this disclosure describes the first network 14 as a low-latency network and the second network 18 as a high-latency network. For example, the first network 14 may be a vehicle control system transmitting data over short geographical distances and includes network components with low memory usage. The vehicle control system may include, for example, a propulsion controller, a braking controller, a safety system, and various other systems and subsystems operably interconnected via a controller area network (CAN or CAN bus) or other similar networks that allow various control systems, controllers, subsystems, etc., to communicate with each other using CAN or other communication protocols known in the art. The second network 18 may be a network transmitting data over long geographical distances (e.g., the Internet) and relies on network components with high memory usage. Because the first network 14 is optimized for low latency, it is configured to transmit data using small data packets 22, thus not exceeding the low memory capacity of the system components. Conversely, because the second network 18 is optimized for high latency, it is configured to transmit data using large data packets 24, which can be supported by the high memory capacity of the system components.

[0027] Although this disclosure describes the first network 14 as a low-latency network and the second network 18 as a high-latency network, it should be apparent that the first network 14 may alternatively be a high-latency network and / or the second network 18 may alternatively be a low-latency network.

[0028] Gateway 20 serves as an interface between the first network 14 and the second network 18 to transmit data between them. For example, gateway 20 may form part of the first network 14 and be operatively connected to the second network 18 via, for example, a wired or wireless communication connection to allow data transmission between the first network 14 and the second network 18. Similarly, gateway 20 may form part of the second network 18 and be operatively connected to the first network 14 via, for example, a wired or wireless communication connection to allow data transmission between the first network 14 and the second network 18. Alternatively, gateway 20 may be a separate component operatively connected to both the first network 14 and the second network 18 via a wired or wireless communication connection to allow data transmission between the first network 14 and the second network 18. When data is transmitted between a first device 12 operating on the first network 14 and a second device 16 operating on the second network 18, gateway 20 masquerades the data transmission capabilities of the first network 14 and the second network 18 to improve data throughput between the devices, as described below. For example, some devices (e.g., some valves) may only support a maximum packet size of 50 bytes, while some controllers and / or displays may support packet sizes exceeding 1000 bytes. Gateway 20 masquerades the data transmission capabilities of all these devices by responding to transmission capability requests with artificially high values ​​(e.g., 65,000 bytes or more).

[0029] Gateway 20 includes all necessary electronics, software, memory, storage devices, databases, firmware, logic / state machines, microprocessors, communication links, and any other input / output interfaces to perform the functions described herein and / or achieve the results described herein. For example, gateway 20 may include or communicate with one or more processors 26 and memory 28, which may include system memory, including random access memory (RAM) and read-only memory (ROM). Suitable computer program code may be provided to gateway 20 to perform a variety of functions, including those discussed herein that combine improving data throughput between a first device 12 operating on a first network 14 and a second device 16 operating on a second network 18.

[0030] One or more processors 26 may include one or more conventional microprocessors, and may also include one or more auxiliary coprocessors, such as a math coprocessor. One or more processors 26 may be configured to communicate with other networks (e.g., first network 14 and second network 18) and / or devices (e.g., first device 16 and second device 18) and various other servers, processors, computers, smartphones, tablets, etc.

[0031] One or more processors 26 may communicate with memory 28, which may include magnetic, optical, and / or semiconductor memory, such as random access memory (“RAM”), read-only memory (“ROM”), flash memory, optical memory, or hard disk drive memory. Memory 28 may store any data and / or information typically found in computing devices, including operating systems, and / or one or more other programs (e.g., computer program code and / or computer program products) stored in a non-transitory memory portion and adapted to direct the gateway 20 and system 10 to operate according to the various embodiments discussed herein. Gateway 20 and control logic and / or portions thereof, and / or any other program may be stored, for example, in a compressed, uncompiled, and / or encrypted format, and may include a computer program executable by one or more processors 26. Executable instructions of the computer program code may be read from a non-transitory computer-readable medium other than memory 28 into the main memory of one or more processors 26. Although execution of a sequence of instructions in a program causes one or more processors 26 to perform the processing steps described herein, hard-wired circuitry may be used in place of or in combination with the executable software instructions to implement the processing of the present invention. Therefore, embodiments of the present invention are not limited to any particular combination of hardware and software.

[0032] For example, the methods and systems discussed herein, and parts thereof, can also be implemented in programmable hardware devices, such as field-programmable gate arrays, programmable array logic, programmable logic devices, etc. Programs can also be implemented in software for execution by various types of computer processors. A program with executable code can, for example, comprise one or more physical or logical blocks of computer instructions, which can be organized, for example, into objects, procedures, processes, or functions. However, the executable code of the identified program need not be physically placed together, but can include separate instructions stored in different locations that, when logically combined, comprise the program and achieve the program's stated purpose, such as providing workflow analysis. In embodiments, the application of executable code can be the compilation of many instructions that can be distributed across different programs and span several different code partitions or segments across several devices.

[0033] As used herein, the term "computer-readable medium" refers to any medium that provides or participates in providing instructions for execution to one or more processors of system 10 (including gateway 20) (or any other processor of the device described herein). Such medium can take many forms, including but not limited to non-volatile media or memory and volatile memory. Non-volatile memory may include, for example, optical, magnetic, or optical disks, or other non-transitory memory. Volatile memory may include dynamic random access memory (DRAM), which typically constitutes main memory or other temporary memory.

[0034] refer to Figure 2 This invention discloses a method and system for transmitting data between a first device 12 and a second device 16 via a gateway 20. The first device 12 and the second device 16 are operatively connected to each other via the gateway 20, but neither the first device 12 nor the second device 16 is unaware that the gateway 20 exists between them. In the example shown, a certain amount of data is transmitted from the second device 16, which supports large packet sizes, to the first device 12, which only supports small packet sizes. However, it should be apparent that the same method and system are applicable to transmitting data from the first device 12 to the second device 16.

[0035] Data transmission from the second device 16 to the first device 12 begins in step 30. In step 32, the second device 16 sends a request to the first device 12, inquiring about the maximum packet size supported by the first device 12. In step 34, the gateway 20 intercepts the request. In step 36, the gateway 20 forwards the request to the first device 12 without modification. In step 38, the first device 12 receives the request inquiring about the maximum packet size supported by the first device. In step 40, the first device 12 transmits data using its supported maximum packet size (within...). Figure 2 In an exemplary embodiment, the response is shown as a "small" packet size. In step 42, gateway 20 intercepts this response. In step 44, gateway 20 replaces the maximum packet size returned by first device 12 with a larger maximum packet size (e.g., a size supported by second device 16) and returns that larger packet size to second device 16. Figure 2 In the example shown, the packet size returned from gateway 20 to second device 16 is shown as "large". In step 46, second device 16 receives the indication of this packet size from gateway 20.

[0036] In step 48, the second device 16 then sends a certain amount of data to the first device 12. Since the maximum packet size information was modified by the gateway 20 in step 44, the second device 16 uses a packet size exceeding the capacity of the first device 12 when sending this certain amount of data in step 48. In step 50, the gateway 20 intercepts data packets sent from the second device 16 to the first device 12. Since the gateway 20 received the actual maximum packet size of the first device 12 in step 42, the gateway 20 knows the actual maximum packet size of the first device 12. Therefore, in step 52, using the actual maximum packet size of the first device 12, the gateway 20 splits the large data packet received from the second device 16 into multiple smaller packets. The actual number of smaller packets split by the gateway 20 depends on the ratio of the actual maximum packet size of the first device 12 to the actual packet size of the large packet sent by the second device 16. For illustrative purposes, Figure 2 The diagram illustrates how a large data packet sent by the second device 16 is split into two smaller data packets by the gateway 20. In step 54, the gateway 20 sends the first portion of the large data packet received from the second device 16 to the first device 12, as the first smaller packet. In step 56, the first device 12 receives the first smaller packet from the gateway 20, and in step 58, the first device 12 sends a signal indicating that the first smaller packet has been received. In step 60, the gateway 20 intercepts an indication from the first device 12 confirming the receipt of the first smaller packet. In step 62, the gateway 20 then sends the second portion of the large data packet received from the second device 16 to the first device 12, as the second smaller packet. In step 64, the first device 12 receives the second smaller packet from the gateway 20, and in step 66, the first device 12 sends a signal indicating that the second smaller packet has been received. In step 68, the gateway 20 intercepts an indication from the first device 12 confirming the receipt of the second smaller packet. Then, in step 70, the gateway sends a signal to the second device 16 indicating that the transmission of the large data packet initiated by the second device 16 has been completed. In step 72, the second device 16 receives the instruction. Then, if additional large data packets are needed for the transmission of that amount of data, the second device 16 sends another large data packet to the first device 12 via the gateway 20 in the same manner as described in steps 48 to 72. Alternatively, in step 74, the second device 16 terminates the transmission.

[0037] although Figure 2The exemplary implementation of the system and method of this disclosure shown describes how gateway 20 divides a large data packet received from a second device 16 via a high-latency link into multiple smaller packets to be sent to a first device 12 via a low-latency link. However, it should be apparent from this disclosure that, alternatively, gateway 20 can receive multiple smaller packets from the sending device via a low-latency link and can combine the multiple smaller packets into one or more large packets for transmission to the receiving device via a high-latency link.

[0038] The systems and methods of this disclosure advantageously improve data throughput by placing a gateway 20 between the first device 12 and the second device 16 to masquerade the ability of a terminal device (the first device 12 in the illustrative example above) to receive data. In doing so, the systems and methods of this disclosure reduce the number of packets sent from the second device 16 via the high-latency second network 18, while still allowing appropriately small data packets to be sent to the first device 12 via the low-latency first network 14. Therefore, data throughput between the first and second devices is advantageously improved.

[0039] Although various embodiments have been described in this disclosure, those skilled in the art will understand that modifications can be made to these embodiments without departing from the overall spirit and scope of the invention. Therefore, the specific embodiments described in this specification should be considered merely illustrative and not restrictive.

Claims

1. A method for transmitting data between a first device operating on a first network and a second device operating on a second network, the first network having a first delay characteristic defining a first packet size for data transmission on the first network, and the second network having a second delay characteristic defining a second packet size for data transmission on the second network, the method comprising: At the gateway between the first network and the second network, data transmission sent from the first device to the second device at the first packet size is intercepted, the data transmission is converted from the first packet size to the second packet size, and the data transmission is delivered to the second device at the second packet size. The method further includes: At the gateway, a request is received from the first device for the maximum packet size available to the second device; The request is forwarded from the gateway to the second device for the maximum packet size available to the second device, without changing the way the request is received from the first device; At the gateway, a response is received from the second device indicating that the maximum packet size available to the second device is the second packet size; and The gateway sends a response to the first device indicating that the maximum packet size available for the second device is the first packet size. Wherein, the first latency characteristic is lower than the second latency characteristic, and the first packet size is smaller than the second packet size. Converting the data transmission from the first packet size to the second packet size includes combining multiple packets of the first packet size into a single packet of the second packet size, wherein the number of multiple packets depends on the ratio of the first packet size to the second packet size.

2. A method for transmitting data between a first device operating on a first network and a second device operating on a second network, the first network having a first delay characteristic defining a first packet size for data transmission on the first network, and the second network having a second delay characteristic defining a second packet size for data transmission on the second network, the method comprising: At the gateway between the first network and the second network, data transmissions of a first packet size sent from the first device to the second device are intercepted. At the gateway, the data transmission is converted from the first packet size to the second packet size; as well as The converted data transmission is delivered from the gateway to the second device at the second packet size; The method further includes: At the gateway, a request is received from the first device for the maximum packet size available to the second device; The request is forwarded from the gateway to the second device for the maximum packet size available to the second device, without changing the way the request is received from the first device; At the gateway, a response is received from the second device indicating that the maximum packet size available to the second device is the second packet size; and The gateway sends a response to the first device indicating that the maximum packet size available for the second device is the first packet size. Wherein, the first delay characteristic is higher than the second delay characteristic, the first group size is larger than the second group size, and Converting the data transmission from the first packet size to the second packet size includes splitting each packet of the first packet size into multiple packets of the second packet size, the number of which depends on the ratio of the second packet size to the first packet size.

3. The method according to claim 2, wherein, Delivering the converted data transmission from the gateway to the second device at the second packet size includes: The first part of the data transmission is sent from the gateway to the second device, as a first packet of the second packet size; At the gateway, an acknowledgment is received that the first packet has been received by the second device; and The sending and receiving steps are repeated for subsequent portions of the data transmission until the entire data transmission has been received by the second device.

4. The method according to claim 3, further comprising: After the entire data transmission has been received by the second device, the gateway sends an indication that the data transmission is complete to the first device.

5. A computer-readable storage medium storing a plurality of instructions, which, when executed by a processor of a gateway operatively connecting a first network to a second network, cause the processor to perform an operation comprising, wherein, The first network has a first latency characteristic defining a first packet size for data transmission on the first network, and a first device operates on the first network; the second network has a second latency characteristic defining a second packet size for data transmission on the second network, and a second device operates on the second network. Intercept data transmission sent from the first device to the second device at the first packet size, convert the data transmission from the first packet size to the second packet size, and deliver the data transmission to the second device at the second packet size; The plurality of instructions also cause the processor to perform operations including the following: Receive a request from the first device for the maximum packet size available to the second device; Forward the request for the maximum packet size available to the second device to the second device without changing the way the request is received from the first device; Receive a response from the second device indicating that the maximum packet size available to the second device is the second packet size; and A response is sent to the first device indicating that the maximum packet size available for the second device is the first packet size. Wherein, the first latency characteristic is lower than the second latency characteristic, and the first packet size is smaller than the second packet size. The computer-readable storage medium further includes instructions for converting the data transmission from the first packet size to the second packet size by combining a plurality of packets of the first packet size into a single packet of the second packet size, wherein the number of the plurality of packets depends on the ratio of the first packet size to the second packet size.

6. A computer-readable storage medium storing a plurality of instructions, which, when executed by a processor of a gateway operatively connecting a first network to a second network, cause the processor to perform an operation comprising: wherein the first network has a first latency characteristic defining a first packet size for data transmission on the first network, and the second network has a second latency characteristic defining a second packet size for data transmission on the second network. At the gateway, data transmissions of a first packet size sent from a first device on the first network to a second device on the second network are intercepted. At the gateway, the data transmission is converted from the first packet size to the second packet size; and The converted data transmission is delivered from the gateway to the second device at the second packet size; in, The computer-readable storage medium further includes instructions for performing the following operations: At the gateway, a request is received from the first device for the maximum packet size available to the second device; The request is forwarded from the gateway to the second device for the maximum packet size available to the second device, without changing the way the request is received from the first device; At the gateway, a response is received from the second device indicating that the maximum packet size available to the second device is the second packet size; as well as The gateway sends a response to the first device indicating that the maximum packet size available for the second device is the first packet size. Wherein, the first latency characteristic is higher than the second latency characteristic, and the first group size is larger than the second group size. The computer-readable storage medium further includes instructions for converting the data transmission from the first packet size to the second packet size by splitting each packet of the first packet size into a plurality of packets of the second packet size, the number of the plurality of packets depending on the ratio of the second packet size to the first packet size.

7. The computer-readable storage medium according to claim 6, wherein, The instructions for delivering the converted data transmission from the gateway to the second device at the second packet size also include instructions for performing the following operations: The first part of the data transmission is sent from the gateway to the second device, as a first packet of the second packet size; At the gateway, an acknowledgment is received that the first packet has been received by the second device; as well as The sending and receiving steps are repeated for subsequent portions of the data transmission until the entire data transmission has been received by the second device.

8. The computer-readable storage medium of claim 7, further comprising instructions for performing the following operations: After the entire data transmission has been received by the second device, the gateway sends an indication that the data transmission is complete to the first device.