Apparatus and method for repeated transmission prevention for dynamically connected transport protocol

By adding timestamps to the dynamic connection data transmission protocol and receiving data packets within a threshold time period, the problem of duplicate data transmissions caused by the target device's inability to distinguish between the same data packets and the same device in the prior art is solved. This effectively prevents duplicate data transmissions and maintains the reliability of network expansion.

CN121239728APending Publication Date: 2025-12-30MELLANOX TECHNOLOGIES LTD(IL)
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510853970.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-06-27
Filing Date
2025-06-24
Publication Date
2025-12-30

AI Technical Summary

Technical Problem

In Dynamic Connection (DC) data transmission protocols, the target device cannot distinguish between two versions of the same data packet or message, resulting in the transmission of duplicate data packets and compromising reliability guarantees.

Method used

The threshold time period is determined by adding timestamps to data packets in the global time domain, receiving data packets within a threshold time period, and discarding data packets that exceed the threshold time period, using the global time domain source and round-trip time (RTT) synchronization error limits.

Benefits of technology

It effectively prevents duplicate data transmission in the DC transmission protocol, maintains the network expansion advantage, and avoids the duplicate data packet transmission common in traditional implementation schemes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121239728A_ABST
    Figure CN121239728A_ABST
Patent Text Reader

Abstract

The invention relates to a device and a method for repeated transmission prevention for a dynamically connected transport protocol. Apparatuses, methods, and computer program products for repeated transmission prevention for dynamic connection transport protocols are provided. An exemplary method includes receiving, by a target device, a first data packet from a transmitting device, the first data packet containing instructions to establish a dynamic connection between the target device and the transmitting device, and instructions to establish a dynamic connection between the target device and the transmitting device based on the first data packet. The method further comprises maintaining a dynamic connection between the target device and the transmitting device for at least a threshold time period (T) defining a duration for which the target device receives data packets from the transmitting device. Within a threshold time period (T), each data packet received by the target device from the transmitting device over the dynamic connection comprises a data entry indicating a transmission time of the respective data packet.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of this disclosure generally relate to data communication systems, and more specifically, to data transmission protocols used in dynamically connected communication systems. Background Technology

[0002] Data centers, high-performance computing clusters, and communication networks are typically composed of various computing components (e.g., hosts, nodes, servers, racks, switches, etc.). For example, a communication network can consist of multiple nodes, and the connections between these nodes can be managed by various data transmission protocols. Through applied effort, ingenuity, and innovation, many problems associated with traditional networking and computing systems have been solved by developing solutions included in the embodiments of this disclosure, many of which are described in detail herein. Summary of the Invention

[0003] Embodiments of this disclosure provide apparatus, methods, systems, and computer program products for preventing duplicate transmissions of a transport protocol for dynamic connections. Referring to an exemplary computer-implemented method, the method may include: receiving a first data packet from a transmitting device by a target device, wherein the first data packet includes one or more instructions for establishing a dynamic connection (DC) between the target device and the transmitting device. The method may further include: establishing the dynamic connection between the target device and the transmitting device based on the first data packet. The method may further include: maintaining the dynamic connection between the target device and the transmitting device for at least a threshold time period (T), the threshold time period defining the duration for which the target device receives data packets from the transmitting device. Each data packet received by the target device from the transmitting device via the dynamic connection during the threshold time period (T) may include one or more data entries indicating the time when the transmitting device sent the corresponding data packet.

[0004] In some embodiments, the method may further include: discarding data packets received outside a threshold time period (T).

[0005] In some embodiments, the method may further include terminating the dynamic connection in response to a termination data packet received by the target device from the transmitting device, which includes one or more instructions for terminating the dynamic connection.

[0006] In some embodiments, the target device and the transmitting device may be located in a network having a common global time field.

[0007] In some further embodiments, the threshold time period (T) may be received by the target device from a global time domain source associated with the network.

[0008] Additionally or alternatively, in some embodiments, the threshold time period (T) may be determined at least in part based on the network's average round-trip time (RTT).

[0009] In some embodiments, one or more data entries in the first data group may include a threshold time period (T).

[0010] In some embodiments, the method may further include: receiving a second data packet, the second data packet including one or more data entries indicating the time when the transmitting device transmitted the second data packet. In this embodiment, the method may further include: storing the second data packet if the time of transmission of the second data packet is within the threshold time period (T); and discarding the second data packet if the time of transmission of the second data packet is outside the threshold time period (T).

[0011] The present invention also provides a computing device for preventing duplicate transmissions in a dynamically linked transport protocol, comprising a non-transitory storage device and a processor coupled to the non-transitory storage device. The processor may be configured to: receive a first data packet from a transmitting device, wherein the first data packet includes one or more instructions for establishing a dynamic connection (DC) between the computing device and the transmitting device, and establish a dynamic connection between the computing device and the transmitting device based on the first data packet. The processor may also be configured to: maintain the dynamic connection between the computing device and the transmitting device for at least a threshold time period (T), the threshold time period defining the duration for which the computing device receives data packets from the transmitting device. Each data packet received by the computing device from the transmitting device via the dynamic connection during the threshold time period may include one or more data entries indicating the time when the transmitting device sent the corresponding data packet.

[0012] The present invention also provides a computer program product for preventing duplicate transmissions in a transport protocol for dynamic connections. The computer program product may include at least one non-transitory computer-readable storage medium having computer program code on it, which is executed by at least one processor, configuring the computer program product to: receive a first data packet from a transmitting device by a target device, wherein the first data packet includes one or more instructions for establishing a dynamic connection (DC) between the target device and the transmitting device, and to establish the dynamic connection between the target device and the transmitting device based on the first data packet. The computer program product may also be configured to: maintain the dynamic connection between the target device and the transmitting device for at least a threshold time period (T), which defines the duration for which the target device receives data packets from the transmitting device. Each data packet received by the target device from the transmitting device via the dynamic connection during the threshold time period may include one or more data entries indicating the time when the transmitting device sent the corresponding data packet.

[0013] The above overview is only intended to summarize some exemplary embodiments to provide a basic understanding of certain aspects of this disclosure. Therefore, it should be understood that the above embodiments are merely examples and should not be construed as limiting the scope or spirit of this disclosure in any way. It should be understood that the scope of this disclosure covers many potential embodiments in addition to those outlined herein, some of which will be further described below. Attached Figure Description

[0014] The foregoing has provided a general description of some exemplary embodiments of this disclosure, and reference will now be made to the accompanying drawings. The components shown in the drawings may or may not be present in some of the embodiments described herein. Some embodiments may contain fewer (or more) components than those shown in the drawings.

[0015] Figure 1 Examples of duplicate data transmission in dynamic connection (DC) transmissions, which are addressed by one or more embodiments of this disclosure, are shown.

[0016] Figure 2 An example communication network for implementing one or more embodiments of this disclosure is shown;

[0017] Figure 3 A block diagram of an example target device circuit that can be specifically configured according to an example embodiment of the present disclosure is shown;

[0018] Figure 4 A flowchart illustrating an example method for preventing duplicate transmissions according to some embodiments of the present disclosure is shown; and

[0019] Figure 5 A flowchart is shown as an example method for determining data group storage according to some embodiments of this disclosure. Detailed Implementation

[0020] Overview

[0021] Various embodiments of this disclosure will now be described more fully with reference to the accompanying drawings, which show some, but not all, of the embodiments. In fact, this disclosure may be embodied in many different forms and should not be construed as limited to the embodiments described herein; rather, these embodiments are provided to enable this disclosure to meet applicable legal requirements. Like reference numerals denote like elements throughout the document.

[0022] The terms “data,” “content,” “information,” and similar terms used herein are used interchangeably to refer to data capable of being transmitted, received, and / or stored according to embodiments of this disclosure. Therefore, the use of any such terms should not be construed as limiting the spirit and scope of the embodiments of this disclosure. Furthermore, when a computing device is described herein as receiving data from another computing device, it should be understood that the data may be received directly from the other computing device or indirectly through one or more intermediate computing devices, such as, for example, one or more servers, repeaters, routers, network access points, base stations, hosts, etc., which are sometimes referred to herein as a “network.” Similarly, when a computing device is described herein as sending data to another computing device, it should be understood that the data may be sent directly to the other computing device or indirectly through one or more intermediate computing devices, such as, for example, one or more servers, repeaters, routers, network access points, base stations, hosts, and / or the like.

[0023] Embodiments of this disclosure will be described below with reference to block diagrams and flowcharts. Therefore, it should be understood that each block in the block diagrams and flowcharts can be implemented as: a computer program product; a pure hardware embodiment; a pure firmware embodiment; a combination of hardware, a computer program product, and / or firmware; and / or a device, system, computing device, computing entity, etc., that performs instructions, operations, steps, and similar terms (e.g., executable instructions, instructions for execution, program code, etc.) on a computer-readable storage medium. For example, code retrieval, loading, and execution can be performed sequentially, such that one instruction is retrieved, loaded, and executed at a time. In some exemplary embodiments, retrieval, loading, and / or execution can be performed in parallel, such that multiple instructions are retrieved, loaded, and / or executed simultaneously. Therefore, such embodiments can produce specially configured machines for performing the steps or operations specified in the block diagrams and flowcharts. Thus, the block diagrams and flowcharts support combinations of various embodiments for performing specified instructions, operations, or steps.

[0024] The terms “illustrative,” “exemplary,” and “example” used herein are not intended to express any qualitative assessment, but merely to illustrate examples. Therefore, any use of such terms should not be construed as limiting the spirit and scope of the embodiments of this disclosure. Phrases such as “in one embodiment,” “according to one embodiment,” etc., generally indicate that a particular feature, structure, or characteristic following the phrase may be included in at least one embodiment of this disclosure, or in multiple embodiments thereof (importantly, these phrases do not necessarily refer to the same embodiment).

[0025] As mentioned above, data centers, high-performance computing clusters, and communication networks are typically composed of various computing components (e.g., hosts, nodes, servers, racks, switches, etc.). For example, a communication network can consist of multiple nodes, and the connections between these nodes can be managed by various data transmission protocols. Data transmission protocols can be used to provide delivery guarantees, and in traditional systems, this guarantee can be provided using the connection state at both ends of the network (e.g., between a sending device and a destination device). However, this connection state requires memory allocation, and the connection is established outside the data path to ensure a reliable connection is established before data is sent. When attempting to scale device communication, such as in an expanded network of thousands of nodes (each with hundreds of processes), the state required for connection transmission often becomes very expensive.

[0026] Therefore, a Dynamic Connection (DC) data transmission protocol can be utilized. It will be apparent to those skilled in the art that a DC data transmission protocol can refer to data transmission that does not maintain any connection state when no traffic (e.g., data packets) is being sent. In DC transmission, the establishment of a connection (e.g., between a destination device and a sending device) is synchronized with the transmission of the first data packet (e.g., by the sending device), and the connection is then terminated by sending a data packet (e.g., by the sending device) indicating that all data has been successfully sent and received. Because the destination or receiving device in a DC transmission protocol does not maintain a permanent state, the destination device cannot distinguish between two versions of the same data packet or message. Therefore, the destination device may receive duplicate data packet transmissions.

[0027] like Figure 1The diagram illustrates an example of repeated data transmission in a dynamic connection (DC) transmission 100. As shown, transmitting device 102 may attempt to establish communication with target device 104 to transmit data packets between them. Transmitting device 102 may utilize DC transmission by simultaneously sending a request for DC connection 106 (e.g., DC Connect ISID 0) via Remote Direct Memory Access (RDMA) transmission 108 (e.g., RDMA ISID 0) during a first transmission time. Similarly, transmitting device 102 may also simultaneously send a request for DC connection 110 (e.g., DC Connect ISID 0) via RDMA transmission 112 (e.g., RDMA ISID 0) during a second transmission time later than the first transmission time. Although the transmission occurs at a second transmission time later than the first transmission time, target device 104 may receive data packets 110 and 112 before receiving data packets 106 and 108. Therefore, target device 104 can responsively send data packets during transmission 114, while sending device 102 can send data packet 116 to terminate DC connection 116 (e.g., DC disconnects ISID 0). However, data packet 116 used to terminate the connection may be received by target device 104 before data packets 106 and 108 are received. In other words, the initial packets of the new connection may be copied or delayed, so that they arrive at target device 104 at points in time when the dynamically created connections do not overlap. Since target device 104 does not maintain a permanent state, it cannot distinguish between two versions of the same message and therefore transmits both versions simultaneously. In doing so, Figure 1 The connection shown may compromise the reliability guarantee against duplicate transmissions.

[0028] To address these and other issues, embodiments of this disclosure provide a method for preventing duplicate transmissions in a DC transport protocol by adding timestamps to data packets within a globally accepted time domain. For example, a dynamic connection can be established between a transmitting device and a target device, comprising a threshold time period (T) during which the target device can receive timestamped data packets. If the timestamp of a received data packet (e.g., indicating the time of transmission of the data packet) exceeds the threshold time period, the target device can discard the data packet. The threshold time period can be received from a global time domain source and / or at least partially based on round-trip time (RTT) and / or error limits for network (including transmitting and target devices) time synchronization. In doing so, embodiments of this disclosure can operate to obtain the network extension advantages of the DC transport protocol while avoiding the transmission of duplicate data packets common in conventional implementations.

[0029] Example communication network

[0030] Figure 2 An exemplary communication network 200 (e.g., network 200) is illustrated as an example system for preventing duplicate data transmissions in dynamic connection (DC) transmissions. It should be understood that network 200 is provided as an example of an embodiment and should not be construed as limiting the scope or spirit of this disclosure. Figure 2 The network 200 shown may include a target device 300 (e.g., a receiving device, a responding device, etc.) capable of communicating with other devices in the network 200 via the DC data transmission protocol described herein. The target device 300 may be communicatively connected to one or more transmitting devices 202 via communication network 204. Although Figure 2 The network 200 shown has only one target device 300, but this disclosure contemplates that the network 200 may include any number of target devices 300. Similarly, although Figure 2 The network 200 shown herein contains only one target device 300, but this disclosure contemplates that network 200 may include any number of transmitting devices 202. Furthermore, this disclosure contemplates that any device, node, etc., within network 200 may function as either target device 300 or transmitting device 202. For example, in some cases, target device 300 may perform the operations described herein with reference to transmitting device 202, and / or in some cases, transmitting device 202 may perform the operations described herein with reference to target device 300.

[0031] Although the target device 300 is described below with reference to reference hereinafter, this disclosure contemplates the following reference to Figures 4 to 5 The described operations can be performed by any computing device, system coordinator, central processing unit (CPU), graphics processing unit (GPU), data processing unit (DPU), etc., which can operate as nodes in network 200. Furthermore, although illustrated as a single device (e.g., target device 300), this disclosure contemplates the possibility of using any number of distributed components to perform the operations described herein. Target device 300 can be embodied as a completely hardware embodiment, a completely computer program product embodiment, a completely firmware embodiment (e.g., application-specific integrated circuit, field-programmable gate array, etc.), and / or an embodiment comprising a combination of computer program products, hardware, and firmware.

[0032] Network 200 may also include transmitting device 202 as described above. Transmitting device may similarly include any computing device, system coordinator, central processing unit (CPU), graphics processing unit (GPU), data processing unit (DPU), etc., which may operate as nodes in network 200. Furthermore, although illustrated as a single device (e.g., transmitting device 202), this disclosure contemplates the possibility of using any number of distributed components to perform the operations described herein. Transmitting device 202 may also be embodied as a completely hardware embodiment, a completely computer program product embodiment, a completely firmware embodiment (e.g., application-specific integrated circuit, field-programmable gate array, etc.), and / or an embodiment comprising a combination of computer program product, hardware, and firmware.

[0033] The communication network 204 can be any device configured to support the transmission of computer messages between system nodes, including hardware, software, devices, or circuitry. For example, the communication network 204 can consist of components supporting wired transmission protocols, such as Digital Subscriber Line (DSL), Ethernet, Fiber Distributed Data Interface (FDDI), or any other wired transmission protocol well known to those skilled in the art. The communication network 204 can also consist of components supporting wireless transmission protocols, such as Bluetooth, IEEE 802.11 (Wi-Fi), or other wireless protocols well known to those skilled in the art. Furthermore, the communication network 204 can consist of components supporting standard communication buses, such as Peripheral Component Interconnect (PCI), PCI Express (PCIe or PCI-e), PCIe Xtended (PCI-X), Accelerated Graphics Port (AGP), or other similar high-speed communication connections. Moreover, the communication network 204 can be composed of any combination of the above protocols. As described herein, devices 202 and 300 can communicate via a Dynamic Connectivity (DC) data transmission protocol. Therefore, this disclosure contemplates that the communication network 204 described herein can be configured to support the DC data transmission protocol.

[0034] Continue to refer to Figure 2Network 200 may include a common global time domain 206, in which transmitting device 202 and target device 300 are provided. Those skilled in the art will appreciate from this disclosure that each of the devices 202 and 300 in network 200 may include, for example, various mechanisms for determining or otherwise calculating time. These devices 202 and 300 may also utilize various time synchronization operations to calculate time differences, deviations, etc. As a non-limiting example, transmitting device 202 and target device 300 may each include a local clock that operates to maintain the respective time values ​​of transmitting device 202 and target device 300. The local clocks of transmitting device 202 and target device 300 may periodically synchronize with the time values ​​of global time domain 206. In other words, common global time domain 206 may refer to any structure, mechanism, technology, etc., used to establish a globally accepted time for devices (e.g., at least target device 300 and transmitting device 202) in network 200.

[0035] As a non-limiting example, global time domain 206 may be associated with global time domain source 208 (e.g., master clock, global clock, etc.), through which example local clocks of sending device 202 and target device 300 can be synchronized. Devices 202 and 300 in global time domain 206 of network 200 may also include various characteristics, attributes, parameters, metrics, etc., associated with the operation of these devices 202 and 300. As a non-limiting example, devices 202 and 300 in global time domain 206 of network 200 may be associated with average round-trip time (RTT) (e.g., the time required to receive a response after initiating a request in network 200). As described below, various characteristics, attributes, parameters, metrics, etc., of devices 202 and 300 in global time domain 206 of network 200 may be used at least in part to determine a threshold time period (T). Therefore, this disclosure envisions that any characteristics, attributes, parameters, indicators, etc., of devices 202 and 300 in the global time domain 206 of network 200 can be used to determine the threshold time period (T). Furthermore, this disclosure envisions that the techniques described herein can take into account any delays between devices (e.g., transmitting device 202 and target device 300) and any synchronization-related error limits (if any).

[0036] Example target device circuit

[0037] refer to Figure 3 Example circuit components of target device 300 are shown, which may be configured individually or in combination with any of the components described herein to perform the functions described herein. Figures 4 to 5The described operation. As shown, target device 300 may include processor 302, memory 306, and communication interface 304, and is associated with or communicates with processor 302, memory 306, and communication interface 304. Processor 302 may communicate with memory 306 via a bus to transfer information between components of target device 300. Memory 306 may be non-transitory and may include, for example, one or more volatile and / or non-volatile memories. In other words, for example, memory 306 may be an electronic storage device (e.g., a computer-readable storage medium) including gates configured to store data (e.g., bits) that can be retrieved by a machine (e.g., a computing device with similar processing circuitry). Memory 306 may be configured to store information, data, content, applications, instructions, etc., to enable the device to perform various functions according to exemplary embodiments of this disclosure. For example, memory 306 may be configured to buffer input data for processing by processor 302. Alternatively, memory 306 may be configured to store instructions for execution by processor 302.

[0038] In some embodiments, the target device 300 (e.g., the example device of this disclosure) may be embodied as various computing devices as described above. However, in some embodiments, the device may be embodied as a chip or chipset. In other words, the device may include one or more physical packages (e.g., chips) including materials, components, and / or wires on a structural component (e.g., a substrate). The structural component may provide physical strength, dimensional retention, and / or electrical interaction constraints for the component circuitry contained thereon. Thus, in some cases, the device may be configured to implement embodiments of this disclosure on a single chip or as a single “system-on-a-chip.” Thus, in some cases, a chip or chipset may constitute a device for performing one or more operations to provide the functions described herein.

[0039] Processor 302 can be implemented in a variety of different ways. For example, processor 302 can be implemented as one or more of a variety of hardware processing devices, such as a coprocessor, microprocessor, controller, digital signal processor (DSP), processing element with or without an accompanying DSP, or various other circuits, including integrated circuits such as ASICs (Application-Specific Integrated Circuits), FPGAs (Field-Programmable Gate Arrays), microcontroller units (MCUs), hardware accelerators, application-specific computer chips, etc. Therefore, in some embodiments, the processing circuitry may include one or more processing cores configured to execute independently. Multi-core processing circuitry can implement multiprocessing within a single physical package. Additionally or alternatively, the processing circuitry may include one or more processors configured in series via a bus for implementing independent execution of instructions, pipelining, and / or multithreading.

[0040] In one example embodiment, processor 302 may be configured to execute other instructions stored in memory 306 or otherwise accessible to processor 302. Alternatively or additionally, the processing circuitry may be configured to perform hard-coded functions. Thus, whether configured by hardware, software methods, or a combination of both, the processing circuitry can represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to embodiments of this disclosure after appropriate configuration. Thus, for example, when the processing circuitry is embodied as an ASIC, FPGA, etc., it may be specially configured hardware to perform the operations described herein. Alternatively, as another example, when processor 302 is embodied as an instruction executor, instructions may be specifically configured to cause the processor to perform the algorithms and / or operations described herein when executing instructions. However, in some cases, processor 302 may be a processor of a particular device configured to further configure the processing circuitry to employ embodiments of this disclosure by instructions that execute the algorithms and / or operations described herein. Processor 302 may include clocks, arithmetic logic units (ALUs), and logic gates, etc., configured to support the operation of the processing circuitry.

[0041] Communication interface 304 can be any device, such as a hardware or hardware / software combination device or circuit, configured to receive and / or transmit data, including media content in the form of video or image files, one or more audio tracks, etc. In this regard, communication interface 304 may include, for example, an antenna (or multiple antennas) and supporting hardware and / or software for enabling communication with a wireless communication network. Additionally or optionally, the communication interface may include circuitry for interacting with the antenna to transmit signals through the antenna or processing the reception of signals through the antenna. In some environments, the communication interface may alternatively or also support wired communication. Therefore, for example, the communication interface may include a communication modem and / or other hardware / software for supporting communication via cable, Digital Subscriber Line (DSL), Universal Serial Bus (USB), or other mechanisms. As described above, target device 300 can be configured to communicate with transmitting device 202 via a DC data transmission protocol. Therefore, communication interface 304 of target device 300 may include any circuitry, hardware, etc., required to establish a connection with the transmitting device via such a DC data transmission protocol.

[0042] Although this article references Figure 3 The circuit components of target device 300 have been described, but this disclosure envisions that any device within network 200 could include them. Figure 3The circuit components in the document. As described above, target device 300 may perform the operations described herein with respect to transmitting device 202 in certain circumstances, and / or transmitting device 202 may perform the operations described herein with respect to target device 300 in certain circumstances. Therefore, transmitting device 202 may similarly include a processor, memory, communication interface, etc., for performing the operations described herein with respect to target device.

[0043] Of course, while the term "circuit" should be interpreted broadly to include hardware, in some embodiments, "circuit" may also include software for configuring the hardware. For example, although "circuit" may include processing circuitry, storage media, network interfaces, input / output devices, etc., other components of the target device 300 may provide or supplement the functionality of a particular circuit.

[0044] Example methods for preventing duplicate transmissions

[0045] Figure 4 A flowchart is shown that includes a series of operations (e.g., method 400) for preventing duplicate transmissions. Figure 4 The operations shown can be performed, with the assistance of, and / or under the control of, a device as described above (e.g., target device 300). In this respect, the execution of these operations may invoke one or more of the processor 302, memory 306, and / or communication interface 304.

[0046] As shown in operation 402, the apparatus (e.g., target device 300) includes devices such as communication interface 304 for receiving a first data packet from transmitting device 202. The first data packet received at operation 402 may include one or more instructions for establishing a dynamic connection (DC) between target device 300 and transmitting device 202. As a non-limiting example, the first data packet may include data entries for identifying transmitting device 202 to target device 300 and data entries associated with a request to establish a dynamic connection (DC) with the transmitting device (e.g., a communication link established between target device 300 and transmitting device 202 based on a dynamic connection (DC) data transfer protocol). In some embodiments, the first data packet may be transmitted via communication based on Remote Direct Memory Access (RDMA). For example, transmitting device 202 is configured to directly access the memory of target device 300 when transmitting data packets without involving the operating system of target device 300, and vice versa.

[0047] Those skilled in the art will understand that the first data packet may include data entries indicating data to be transmitted between the sending device 202 and the destination device 300, or otherwise associated with data to be transmitted between the sending device 202 and the destination device 300. As a non-limiting example, the first data packet may include any identifiers (e.g., queue pair (QP) number, transaction ID, initiator ID, responder ID, etc.) associated with the sending device 202 and / or the destination device 300. Furthermore, this disclosure contemplates that the information required to determine that data packets belong to the same connection may include any data used to distinguish sources, such as when data packets are sent from different sending devices to the same destination device 300 (e.g., the same destination address).

[0048] Subsequently, as shown in operation 404, the apparatus (e.g., target device 300) includes devices such as processor 302 for establishing a dynamic connection between target device 300 and transmitting device 202 based on a first data packet. As described above, the DC data transmission protocol can refer to data transmission that does not maintain any connection state when no traffic (e.g., data packets) is being transmitted. In DC transmission, the establishment of a connection (e.g., between the target device and the transmitting device) is synchronized with the transmission of the first data packet (e.g., by the transmitting device) and then removed by sending a data packet indicating that all data has been successfully transmitted and received (e.g., by the transmitting device). Therefore, in operation 402, the first data packet received by target device 300 from transmitting device 202 may include data entries (e.g., quantity, type, etc.) required to establish a connection based on the DC transmission protocol. This disclosure envisions that the data required to establish a connection based on the DC transmission protocol may vary depending on the nature of network 200, device 202, 300, etc. Therefore, in operation 404, this disclosure envisions that the first data packet received in operation 402 includes at least in part the data entries required to establish a connection with at least the transmitting device 202 based on the DC transport protocol. As a non-limiting example, each data packet in the first group may include any applicable key (e.g., encryption-related or other keys) used to verify a particular connection.

[0049] Subsequently, as shown in operation 406, the apparatus (e.g., target device 300) includes devices such as processor 302 for maintaining a dynamic connection between the target device and the transmitting device for at least a threshold time period (T), during which the target device 300 receives data packets from the transmitting device 202. As will be referred to later in operation 408 and... Figure 5 As described more fully in the text, the threshold time period (T) can refer to a time value against which the transmission time of data packets can be compared. To prevent duplicate transmission of data packets, as referenced above... Figure 1According to the embodiments of this disclosure, a threshold time period (T) can be used as an indicator to determine whether a data packet received by a target device exceeds an acceptable time period during which the data packet can be reasonably associated with a DC transmission protocol-based connection established based on the first data packet received at operation 402.

[0050] In some embodiments, the threshold time period (T) may be received by the target device 300 from the global time domain source 208, as referenced above. Figure 2 Continuing with the example, the global time domain source 208 may include a master clock or a global clock, or otherwise be associated with a master clock or a global clock, through which the example local clocks of the transmitting device 202 and the target device 300 can be synchronized. Therefore, the global time domain source 208 can determine a threshold time period (T) based on various time-related data entries received by the global time domain source 208. In some embodiments, one or more data entries of the first data packet received at operation 402 may contain the threshold time period (T). As a non-limiting example, in some cases, the transmitting device 202 may determine a threshold time period (T) related to... Figure 4 The threshold time period (T) is a time interval associated with a specific communication operation transmitted as part of the operation (e.g., based on statistical analysis, average required time, etc.). In such examples, transmitting device 202 may provide this determined threshold time period (T) as part of a data packet used to establish communication based on the DC data protocol. In some embodiments, the threshold time period (T) may be determined at least partially using round-trip time (RTT) (e.g., the time required to receive a response after initiating a request in network 200), time synchronization error limits of network 200, etc. As described above, this disclosure contemplates that any characteristic, attribute, parameter, metric, etc. of devices 202, 300 in the global time domain 206 of network 200 may be used to determine the threshold time period (T).

[0051] Referring again to operation 406, each data packet received by target device 300 from transmitting device 202 via a dynamic connection within a threshold time period (T) may include one or more data entries indicating the time when transmitting device 202 transmitted the corresponding data packet. Continuing with the example, transmitting device 202 may include a local clock that operates to maintain a corresponding time value for each transmitting device 202. In some embodiments, the local clock for transmitting device 202 may periodically synchronize with the time value used for global time domain 206. Therefore, when generating data packets to be sent to target device 300, transmitting device 202 can timestamp each data packet using the value indicating the time when transmitting device 202 transmitted the corresponding data packet. See below for further details. Figure 5As described in the operation, a data entry indicating the time when the transmitting device sends a corresponding data packet can be compared with a threshold time period (T) to determine whether the data packet should be stored, saved, or otherwise used or discarded by the target device 300.

[0052] In some embodiments, as shown in operation 408, the apparatus (e.g., target device 300) includes devices such as processor 302 for discarding data packets received outside a threshold time period (T). See below for reference. Figure 5 The target device 300 is operable to receive multiple data packets after receiving a first data packet for establishing a DC data transmission-based connection between the transmitting device 202 and the target device 300 in operation 402. Therefore, the target device 300 is operable to determine data packets that have a time value exceeding a threshold time period (T) or otherwise not meeting the threshold time period (T) (e.g., the time of data packet transmission). In some embodiments, these data packets may be discarded to prevent duplicate transmission of data packets as described above. In some embodiments, as shown in operation 408, the apparatus (e.g., the target device 300) includes devices such as a processor 302 and a communication interface 304 for terminating the dynamic connection in response to a termination data packet received by the target device 300 from the transmitting device 202 containing one or more instructions for terminating the dynamic connection. This disclosure contemplates that the DC data transmission-based connection between the target device 300 and the transmitting device 202 can be terminated based on the intended use of devices 202, 300, and / or network 200 through any applicable mechanism, technology, or protocol.

[0053] Figure 5 A flowchart is shown that includes a series of operations for determining an example method (e.g., method 500) for grouping and storing data. Figure 5 Operation 5 shown can be performed, for example, by a device (e.g., target device 300), with its assistance, and / or under its control, as described above. In this respect, the execution of the operation may invoke one or more of the processor 302, memory 306, and / or communication interface 304.

[0054] As shown in operation 502, the apparatus (e.g., target device 300) includes devices such as processor 302 and communication interface 304 for receiving a second data packet comprising one or more data entries indicating the time at which transmitting device 202 transmitted the second data packet. As described herein, the second data packet can refer to any data packet received by target device 300 from transmitting device 202 after receiving the first data packet, as described above with reference to operation 402. In other words, target device 300 can receive multiple data packets from transmitting device 202 (and other devices) and can determine time values ​​for these data packets indicating the time at which a particular data packet (e.g., the second data packet) was transmitted by transmitting device 202. The reception of the second data packet can be substantially the same as described above with reference to the first data packet received at operation 402.

[0055] As shown in operations 504 and 506, the apparatus (e.g., target device 300) includes devices such as processor 302 and communication interface 304 for storing the second data packet if the time of transmission of the second data packet is within a threshold time period (T), and discarding the second data packet if the time of transmission of the second data packet is outside the threshold time period (T). As mentioned above, the threshold time period (T) can refer to a time value that can be compared with the transmission time of the data packet. To prevent duplicate transmission of data packets, as referenced above... Figure 1 The embodiments of this disclosure may utilize a threshold time period (T) as an indicator to determine whether a data packet received by target device 300 exceeds an acceptable time period during which the data packet can be reasonably associated with a DC-based transport protocol connection established based on the first data packet received at operation 402. In some cases, as shown in operation 504, the time value of the second data packet may be within, not exceed, and / or otherwise meet the threshold time period (T), indicating that the second data packet is associated with a DC-based transport protocol connection established based on the first data packet received at operation 402. In other cases, as shown in operation 506, the time value of the second data packet may be outside, exceed, or otherwise fail to meet the threshold time period (T), indicating that the second data packet is not sufficiently associated with a DC-based transport protocol connection established based on the first data packet received at operation 402. In this way, embodiments of this disclosure can operate to prevent duplicate transmission of data packets in a connection based on a Dynamic Connection (DC) data transmission protocol.

[0056] Many modifications and other embodiments of the invention described herein will be apparent to those skilled in the art, guided by the foregoing description and related drawings. Although the drawings show only some components of the apparatus and system described herein, it should be understood that various other components may be used in conjunction with the system. Therefore, it should be understood that the invention is not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Furthermore, the steps in the above-described methods are not necessarily performed in the order shown in the drawings; in some cases, one or more of the steps may occur substantially simultaneously, or additional steps may be involved. Although specific terms are used herein, they are used only in a general and descriptive sense and not for limiting purposes.

[0057] Although various embodiments based on the principles disclosed herein have been shown and described above, those skilled in the art can modify them without departing from the spirit and teachings of this disclosure. The embodiments described herein are representative only and are not intended to be limiting. Many variations, combinations, and modifications are possible and are all within the scope of this disclosure. The disclosed embodiments primarily relate to network interface environments; however, those skilled in the art will recognize that these principles can be applied to any scheduler that receives commands and / or transactions and has access to two or more processing cores. Alternative embodiments resulting from combining, integrating, and / or omitting features of the embodiments are also within the scope of this disclosure. Therefore, the scope of protection is not limited by the foregoing description.

[0058] Furthermore, the section headings used herein are intended to maintain consistency with the recommendations under 37C.FR1.77 or otherwise provide organizational guidance. These headings should not limit or characterize the invention set forth in any of the claims that may arise from this disclosure. The use of broad terms such as “comprising,” “including,” and “having” should be understood to support narrower terms such as “consisting of,” “mainly composed of,” and “substantially composed of.” The use of terms such as “optionally,” “may,” “perhaps,” and “possibly” for any element of the embodiments implies that the element is either not essential or essential, both of which are within the scope of the embodiments. Furthermore, the examples cited are for illustrative purposes only and are not intended to be exclusive.

Claims

1. A computer-implemented method comprising: receiving, by a target device from a sending device, a first data packet, wherein the first data packet comprises one or more instructions for establishing a dynamic connection (DC) between the target device and the sending device; establishing the dynamic connection between the target device and the sending device based on the first data packet; and maintaining the dynamic connection between the target device and the sending device for at least a threshold time period T defining a duration for receiving data packets by the target device from the sending device, wherein each of the data packets received by the target device from the sending device through the dynamic connection within the threshold time period T comprises one or more data entries indicating a time at which a respective data packet was sent by the sending device. discarding data packets received outside the threshold time period T.

2. The computer-implemented method of claim 1, further comprising: terminating the dynamic connection in response to a termination data packet received by the target device from the sending device comprising one or more instructions for terminating the dynamic connection.

3. The computer-implemented method of claim 1, further comprising: the target device and the sending device form a network having a common global time domain.

4. The computer-implemented method of claim 1, wherein, the threshold time period T is received by the target device from a global time domain source associated with the network.

5. The computer-implemented method of claim 4, wherein, the threshold time period T is determined based at least in part on an average round trip time (RTT) of the network.

6. The computer-implemented method of claim 4, wherein, the one or more data entries of the first data packet comprise the threshold time period T.

7. The computer-implemented method of claim 1, wherein, 8. The computer-implemented method of claim 1, further comprising: receiving a second data packet comprising one or more data entries indicating a time at which the second data packet was sent by the sending device; storing the second data packet in the event that the time at which the second data packet was sent is within the threshold time period T; and discarding the second data packet in the event that the time at which the second data packet was sent is outside the threshold time period T.

9. A computing device comprising: a non-transitory storage device; and a processor coupled to the non-transitory storage device, wherein the processor is configured to: receive a first data packet from a sending device, wherein the first data packet comprises one or more instructions for establishing a dynamic connection (DC) between the computing device and the sending device; establish the dynamic connection between the computing device and the sending device based on the first data packet; and maintain the dynamic connection between the computing device and the sending device for at least a threshold time period T defining a duration for receiving data packets by the computing device from the sending device, wherein each of the data packets received by the computing device from the sending device through the dynamic connection within the threshold time period comprises one or more data entries indicating a time at which a respective data packet was sent by the sending device. the processor is further configured to discard data packets outside the threshold time period T. ​ ​ ​ 10. The computing device of claim 9, wherein, ​ 11. The computing device of claim 9, wherein, The processor is further configured to terminate the dynamic connection in response to a termination data packet received by the computing device from the sending device, the termination data packet including one or more instructions to terminate the dynamic connection.

12. The computing device of claim 9, wherein, The computing device and the sending device are formed in a network having a common global time domain.

13. The computing device of claim 12, wherein, The threshold time period T is received by the computing device from a global time domain source associated with the network.

14. The computing device of claim 12, wherein, The threshold time period T is determined based at least in part on an average round trip time RTT of the network.

15. The computing device of claim 9, wherein, The one or more data entries of the first data packet include the threshold time period T.

16. The computing device of claim 9, wherein, The processor is further configured to: receive a second data packet, the second data packet including one or more data entries indicating a time at which the second data packet was sent by the sending device; in the event that the time at which the second data packet was sent is within the threshold time period T, store the second data packet; and in the event that the time at which the second data packet was sent is outside of the threshold time period T, discard the second data packet.

17. A computer program product comprising at least one non-transitory computer- readable storage medium having computer program code thereon, the computer program code, when executed by at least one processor, configures the computer program product to: receive, by a target device from a sending device, a first data packet, wherein the first data packet includes one or more instructions to establish a dynamic connection DC between the target device and the sending device; establish the dynamic connection between the target device and the sending device based on the first data packet; and maintain the dynamic connection between the target device and the sending device for at least a threshold time period T, the threshold time period T defining a duration of time during which data packets are received by the target device from the sending device, wherein each of the data packets received by the target device from the sending device over the dynamic connection during the threshold time period includes one or more data entries indicating a time at which the respective data packet was sent by the sending device.

18. The computer program product of claim 17, further configured to terminate the dynamic connection in response to a termination data packet received by the target device from the sending device, the termination data packet including one or more instructions to terminate the dynamic connection. The target device and the sending device are formed in a network having a common global time domain, and the threshold time period T is determined based at least in part on an average round trip time RTT of the network.

19. The computer program product of claim 17, wherein, 20. The computer program product of claim 17, further configured for: receiving a second data packet, the second data packet including one or more data entries indicating a time at which the second data packet was sent by the sending device; in the event that the time at which the second data packet was sent is within the threshold time period T, storing the second data packet; and in the event that the time at which the second data packet was sent is outside of the threshold time period T, discarding the second data packet. ​ in case the time of sending the second data packet is outside the threshold time period T, discarding the second data packet.