PACKAGE GENERATION METHODS AND DEVICES FOR ORDERED DATA STORAGE
By generating packets that fit within the MTU of the transport queue, the method ensures in-order delivery and optimizes network utilization, addressing the out-of-order packet delivery issue in communication networks.
Patent Information
- Application Number
- DE102025124841
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-28
- Filing Date
- 2025-06-26
- Publication Date
- 2025-12-31
AI Technical Summary
Conventional communication networks face issues with packets arriving out of order due to different data paths, leading to ineffective data distribution and reduced network utilization, as they rely on disabling mechanisms or packet reordering buffers.
The method involves generating packets that adhere to the Maximum Transport Unit (MTU) of the transport queue, ensuring all data entries associated with a specific sequence are contained in a single packet, thereby maintaining the order and optimizing network utilization.
This approach ensures in-order delivery of data packets, enhancing network efficiency by preventing out-of-order delivery and allowing packet distribution operations to continue without compromising the defined sequence.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL AREA
[0001] Embodiments of the present disclosure relate generally to network and computing systems and in particular to the generation of packets for orderly data offloading in packet distribution communication networks. BACKGROUND
[0002] Data centers, high-performance computing clusters, and / or other network applications are frequently implemented using distributed network components or devices (e.g., hosts, servers, racks, switches, nodes, etc.). Communication networks formed from these components can utilize packet distribution techniques to transmit data to various nodes within the network. Through effort, ingenuity, and innovation, many of the problems associated with conventional network operation and data transmission have been solved by developing solutions contained in embodiments of the present disclosure, many examples of which are described in detail herein. SUMMARY
[0003] The invention is defined by the claims. To illustrate the invention, aspects and embodiments are described herein that may or may not fall within the scope of the claims.
[0004] Embodiments of the present disclosure provide methods, systems, devices, and computer program products for packet generation for ordered data swapping. Referring to an exemplary computer-implemented method, the method may include receiving a first transmission request associated with a first message for transmission over a communication network. The first message may comprise one or more data entries, a first message size defined at least partially by the one or more data entries, and a first sequence in which at least some of the data entries of the first message are to be executed. The method may also include determining a maximum transport unit (MTU) for a first transport queue associated with the communication network.The first transport queue can be associated with packet distribution operations across the communication network, and the MTU of the first transport queue can define a maximum packet size for packets transmitted via the first transport queue. The procedure can further include generating at least one first data packet based on the first message. The generated first data packet can be as large as or smaller than the MTU for the first transport queue.
[0005] In some embodiments, the method may further include transmitting the first data packet via the first transport queue.
[0006] In some embodiments, generating the first data packet may involve segmenting the data entries of the first message into multiple first data packets. At least one of these multiple first data packets may be as large as or smaller than the MTU for the first transport queue.
[0007] In some embodiments, the method may further include determining, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue.
[0008] In some further embodiments, the method may also include generating one or more second data packets based on the first message for transmission via a second transport queue of the communication network.
[0009] In such an embodiment, the packet distribution operations for the second transport queue may not be available and / or the MTU for the second transport queue may be larger than the MTU of the first transport queue.
[0010] In each embodiment, the portion of the data entries of the first message associated with the first sequence can be associated with one or more data transformation operations.
[0011] The above summary merely serves to provide a basic understanding of some exemplary embodiments and to convey a fundamental understanding of certain aspects of the present disclosure. Accordingly, it should be understood that the embodiments described above are merely examples and should not be interpreted as limiting the scope or nature of the disclosure in any way. It will be understood that the scope of the present disclosure includes many other possible embodiments in addition to those summarized here, some of which are described in more detail below.
[0012] Devices, methods, and systems for packet generation for orderly data offloading are provided. An exemplary method involves receiving an initial transmission request associated with an initial message for transmission over a communication network. The initial message comprises data entries, an initial message size defined by the data entries, and an initial sequence in which at least some of the data entries are to be executed. The method also includes determining a maximum transport unit (MTU) for an initial transport queue associated with the communication network. The initial transport queue is associated with packet distribution operations, and the MTU of the initial transport queue defines a maximum packet size for packets transmitted via the initial transport queue.The procedure further includes generating an initial data packet based on the first message, which is as large as or smaller than the MTU for the first transport queue.
[0013] Each feature of an aspect or embodiment can be applied to other aspects or embodiments in any suitable combination. In particular, each feature of a process aspect or embodiment can be applied to a device aspect or embodiment, and vice versa. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Having now described certain exemplary embodiments of the present disclosure in general terms, reference is made to the accompanying drawings. The components illustrated in the figures may or may not be present in certain embodiments described herein. Some embodiments may include fewer (or more) components than shown in the figures. Fig. Figure 1 illustrates an exemplary communication network according to an exemplary embodiment of the present disclosure; Fig. Figure 2 illustrates a block diagram of an exemplary circuit of a computing device which may be specifically configured according to an exemplary embodiment of the present disclosure; Fig. Figure 3 illustrates a flowchart of an exemplary method for generating packets for data offloading in packet-distributed communication networks according to some embodiments of the present disclosure; and Fig. Figure 4 illustrates a further flowchart of an exemplary procedure for multi-transport queue implementations according to some embodiments of the present disclosure. DETAILED DESCRIPTION Overview
[0015] Various embodiments of the present disclosure are now described in more detail with reference to the accompanying drawings, in which some, but not all, embodiments are shown. The present disclosure can, in fact, be implemented in many different forms and should not be interpreted as being limited to the embodiments set forth herein; rather, these embodiments are provided so that the present disclosure meets applicable legal requirements. The same reference numerals refer throughout to the same elements.
[0016] As described above, data centers, high-performance computing clusters, and / or other network applications are often implemented using distributed network components or devices (e.g., hosts, servers, racks, switches, nodes, etc.). Communication networks formed by these components can generate data packets as a mechanism for transmitting messages across the communication network (e.g., between devices, nodes, etc., connected to the network). For some messages, various data offloading / transformation operations (e.g., encryption operations, signature operations, compression / decompression operations, etc.) can be performed within the network, and these offloading operations often require that the data (e.g., message data entries) be processed in a defined order. For example, an encryption operation (e.g.,(An example of data outsourcing) requires that the data entries to be encrypted / decrypted are received in a specific order to ensure successful output (e.g., successful encryption / decryption).
[0017] In some communication networks, packet distribution operations can be used, where different data paths within the network are used for different data packets to optimize network utilization. However, packet distribution operations can result in packets associated with the same message arriving at their destination out of order (e.g., in a different order than intended by the initiating device) due to transmission over different data paths. For packets received out of sequence, data distribution operations may be ineffective or otherwise lead to an incorrect result. Conventional solutions in traditional communication networks rely either on packet distribution disabling mechanisms or on the use of packet reordering buffers at the receiving device. Both of these conventional solutions reduce network utilization.
[0018] To solve these and other problems, the embodiments of the present disclosure provide methods and devices for generating packets for transmission in packet-distributed communication networks, in which the size of the generated packets is limited to the MTU (Maximum Transport Unit) for the packet-distributed data paths (e.g., single packet generation). For example, an initial transmission request associated with an initial message for transmission over a communication network can be received, and the initial message can contain one or more data entries, an initial message size defined at least partially by the one or more data entries, and an initial sequence in which at least some of the data entries of the initial message are to be executed (e.g., as affected by data swapping operations). An MTU for an initial transport queue (e.g.,A first transport queue (associated with packet distribution) of the communication network is determined, where the MTU of the first transport queue defines a maximum packet size for packets transmitted via the first transport queue. At least one first data packet is generated based on the first message, and the generated first data packet is as large as or smaller than the MTU for the first transport queue. The generated first data packet (e.g., a single data packet) can ensure that all data entries associated with the data swapping operation are contained in a single data packet (e.g., to prevent out-of-order delivery), while packet distribution operations can still occur across the communication network.
[0019] As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to denote data that may be transmitted, received, and / or stored according to embodiments of this disclosure. Therefore, the use of such terms should not be construed as limiting the nature and scope of embodiments of this disclosure. Furthermore, when a computing device receiving data from another computing device is described herein, it is to be understood that the data may be received directly from another computing device or indirectly via one or more intermediate computing devices, such as one or more servers, relays, routers, network access points, base stations, hosts, and / or the like, sometimes referred to herein as a “network.”Likewise, it should be understood that when it is described herein that a computing device sends data to another computing device, the data may be sent directly to another computing device or indirectly via one or more intermediate computing devices, such as one or more servers, relays, routers, network access points, base stations, hosts and / or the like.
[0020] Embodiments of the present disclosure are described below with reference to block diagrams and flowchart illustrations. Therefore, each block of the block diagrams and flowchart illustrations is to be understood as a computer program product, a fully hardware-based embodiment, a fully firmware-based embodiment, a combination of hardware, computer program products and / or firmware, and / or devices, systems, computing devices, computing entities, and / or the like, which execute instructions, operations, steps, and similar interchangeably used terms (e.g., the executable instructions, commands to execute, program code, and / or the like) on a computer-readable storage medium. For example, the fetching, loading, and execution of code may be performed sequentially, such that one instruction is fetched, loaded, and executed at a time.In some exemplary embodiments, fetching, loading, and / or executing can occur in parallel, allowing multiple instructions to be fetched, loaded, and / or executed simultaneously. Thus, such embodiments can create specially configured machines that perform the steps or operations specified in the block diagrams and flowchart illustrations. Accordingly, the block diagrams and flowchart illustrations support various combinations of embodiments for executing the specified instructions, operations, or steps.
[0021] The terms “illustrative”, “exemplary”, and “example”, as used here, are not intended to convey a qualitative assessment, but merely to illustrate an example. Therefore, the use of such terms should not be understood as limiting the nature and scope of the embodiments of this disclosure. The expressions “in one embodiment”, “according to one embodiment”, and / or the like generally mean that the specific feature, structure, or characteristic following the expression may be included in at least one embodiment of this disclosure and in more than one embodiment of this disclosure (importantly, such expressions do not necessarily refer to the same embodiment). Exemplary communication network
[0022] Fig. Figure 1 illustrates an example of a communication network (e.g., Network 100) for implementing one or more embodiments of the present disclosure. It is understood that Network 100 serves as an example of one or more embodiments and should not be interpreted as limiting the scope or nature of the disclosure. Network 100 in Fig. 1 can comprise a computing device 200 that is communicatively coupled within the network 100 to perform data transmissions between devices within the network (e.g., via network communication protocols 104). For example, the computing device 200 can comprise components, circuits, devices, etc., configured to receive an initial transmission request 101 and to generate data packets for transmitting the message associated with the transmission request over the network 100. Although described below with respect to a computing device 200, the present disclosure provides that the following with respect to Fig. The operations described in Sections 3-4 can be performed by any server, system orchestrator, CPU (Central Processing Unit), GPU (Graphics Processing Unit), DPU (Data Processing Unit), and / or the like. Furthermore, although illustrated as a single device (e.g., Computing Device 200), this disclosure provides that any number of distributed components can be used together to perform the operations described herein. Computing Device 200 can be implemented in an entirely hardware-based embodiment, an entirely computer-program-based embodiment, an entirely firmware-based 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.
[0023] As in Fig. As shown in Figure 1, the communication network 100 can further comprise at least one first transport queue 102. As described below, the first transport queue 102 can be associated with packet distribution operations over the communication network 100. For this purpose, the first transport queue 102 is in Fig. Figure 1 illustrates multiple data transmission paths 103 that can be used to transmit data packets based on the messages received by the communication network 100 (e.g., the first transmission request 101). The first transport queue 102, alone or in conjunction with the computing device 200, can select specific data transmission paths 103 for packet distribution data transmissions to optimize the utilization of the communication network 100. In some embodiments, the first transport queue 102 can include the computing device 200, and / or the computing device 200 can include the first transport queue 102. In other embodiments, the first transport queue 102 can be separate from the computing device 200 and configured to receive commands from the computing device 200.In each embodiment, the first transport queue 102 can refer to any device, component, data structure and / or the like to effect data transmission over the communication network 100.
[0024] Continuing with reference to Fig. 1. In some embodiments, the communication network 100 may further comprise a second transport queue 106. As described below, the second transport queue 106 may not be associated with packet distribution operations over the communication network 100 (e.g., packet distribution may be unavailable or restricted to the second transport queue 106). For this purpose, the second transport queue 106 is Fig. Figure 1 illustrates a single data transmission path 105, which can also be used to transmit data packets based on messages received by the communication network 100 (e.g., first transmission request 101). The second transport queue 106 can operate alone or in conjunction with the computing device 200 to provide a data transmission path for messages whose minimum size exceeds the MTU of the first transport queue 102, as described in relation to Fig. 4 described. In some embodiments, the second transport queue 106 may include the computing device 200, and / or the computing device 200 may include the second transport queue 106. In other embodiments, the second transport queue 106 may be separate from the computing device 200 and configured to receive commands from the computing device 200. In each embodiment, the second transport queue 106 may also refer to any device, component, data structure, and / or the like to effect data transmission over the communication network 100.
[0025] To facilitate or otherwise enable this connectivity, the communication network 104 can be any means, including hardware, software, devices, or circuits, configured to support the transmission of traffic (e.g., data, signals, etc.) between devices forming the network 100. In other words, the communication network 104 of Fig. 1 can refer to the components, devices, transmission protocols, etc., that constitute or are otherwise used by the communication network 100. For example, the communication network 104 can be formed by components that support wired transmission protocols, such as DSL (Digital Subscriber Line), InfiniBand®, Ethernet, FDDI (Fiber Distributed Data Interface), or any other wired transmission protocol obvious to the average professional. The communication network 104 can also consist of components that support wireless transmission protocols, such as Bluetooth, IEEE 802.11 (Wi-Fi), or other wireless protocols obvious to the average professional.Furthermore, the communication network 104 can be composed of components that support a standard communication bus, such as PCI (Peripheral Component Interconnect), PCI Express (PCIe or PCI-e), PCI Extended (PCI-X), AGP (Accelerated Graphics Port), or other similar high-speed communication connections. In addition, the communication network 104 can consist of any combination of the aforementioned protocols. Example of a computing device circuit
[0026] With reference to Fig. Two exemplary circuit components of the computing device 200 are illustrated, which, alone or in combination with one of the components described herein, can be configured to perform the functions described here with reference to Fig. Perform the operations described in sections 4-5. As shown, the computing device 200 can include, be associated with, or communicate with a processor 202, a working memory 206, and a communication interface 204. The processor 202 can be connected to the working memory 206 via a bus for routing information between components of the computing device 200. The working memory 206 can be non-transient and, for example, include one or more volatile and / or non-volatile memory elements. In other words, the working memory 206 can, for example, be an electronic storage device (e.g., a computer-readable storage medium) that includes gates configured to store data (e.g., bits) that can be retrieved by a machine (e.g., a computing device such as the processing circuit).The memory 206 can be configured to store information, data, content, applications, instructions, or the like, so that the device can perform various functions according to an exemplary embodiment of the present disclosure. For example, the memory 206 could be configured to buffer input data for processing by the processor 202. Additionally or alternatively, the memory 206 could be configured to store instructions for execution by the processor 202.
[0027] The computing device 200 (e.g., an exemplary device of the present disclosure) can, in some embodiments, be configured in various computing devices as described above. In some embodiments, however, the device can be implemented as a chip or chipset. In other words, the device can comprise one or more physical packages (e.g., chips) containing materials, components, and / or wires on a structural assembly (e.g., a baseboard). The structural assembly can provide physical strength, dimensional stability, and / or limitation of electrical interaction for component circuits contained therein. The device can therefore, in some cases, be configured to implement an embodiment of the present disclosure on a single chip or as a single “system on a chip.”As such, in some cases a chip or chipset may constitute a means of performing one or more operations to provide the functionalities described herein.
[0028] The Processor 202 can be implemented in various ways. For example, the Processor 202 can be implemented as one or more different hardware processing elements, such as a coprocessor, a microprocessor, a controller, a DSP (Digital Signal Processor), a processing element with or without an associated DSP, or various other circuits, including integrated circuits such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), an MCU (Microcontroller Unit), a hardware accelerator, a special-purpose computer chip, or the like. As such, the processing circuitry in some embodiments can include one or more processor cores configured to operate independently. A multi-core processing circuitry can enable multiprocessing within a single physical package.Additionally or alternatively, the processing circuit can include one or more processors configured in tandem over the bus to enable independent execution of instructions, pipelining and / or multithreading.
[0029] In one exemplary embodiment, the processor 202 can be configured to execute instructions stored in the main memory 206 or otherwise accessible to the processor 202. Alternatively or additionally, the processing circuit can be configured to execute hard-coded functions. As such, the processing circuit, whether configured by hardware or software methods or by a combination thereof, can represent an entity (e.g., physically implemented in circuitry) capable of performing operations according to an embodiment of the present disclosure while appropriately configured. For example, if the processing circuit is implemented as an ASIC, FPGA, or the like, the processing circuit can be specially configured hardware for performing the operations described herein.Alternatively, as another example, if the processor 202 is configured as an instruction executor, the instructions can specifically configure the processor to execute the algorithms and / or operations described herein when the instructions are executed. In some cases, however, the processor 202 may be a processor of a specific device configured to implement an embodiment of the present disclosure by further configuring the processing circuit with instructions to execute the algorithms and / or operations described herein. The processor 202 may include, among other things, a clock, an ALU (Arithmetic Logic Unit), and logic gates configured to support the operation of the processing circuit.
[0030] The communication interface 204 can be any means, such as a device or circuit implemented in hardware or a combination of hardware and software and configured to receive and / or transmit data, including media content in the form of video or image files, one or more audio tracks, or the like. In this respect, the communication interface 204 can, for example, include an antenna (or multiple antennas) and supporting hardware and / or software to enable communication with a wireless communication network. Additionally or alternatively, the communication interface can include the circuitry for interacting with the antenna(s) to effect the transmission of signals via the antenna(s) or to process the reception of signals received via the antenna(s).In some environments, the communication interface may alternatively or additionally support wired communication. As such, the communication interface may include, for example, a communication modem and / or other hardware / software to support communication via cable, DSL (Digital Subscriber Line), USB (Universal Serial Bus), or other mechanisms.
[0031] While the term "circuit" is naturally broad and encompasses hardware, in some embodiments the term "circuit" can also include software for configuring the hardware. For example, while "circuit" may include processing circuits, storage media, network interfaces, input / output devices, and the like, other elements of the computing device 200 may provide or complement the functionality of certain circuits. Exemplary method for packet generation for ordered data outsourcing
[0032] Fig. Figure 3 shows a flowchart with a series of operations for generating packets for data offloading in packet-distributed communication networks (e.g., Procedure 300). The in Fig. The three illustrated operations can be performed, for example, with the aid of and / or under the control of a device (e.g., the computing device 200), as described above. In this respect, the execution of the operations can be called upon by one or more processors 202, memory 206, and / or communication interface 204.
[0033] As shown in Operation 302, the device (e.g., the computing device 200) includes means, such as a communication interface 204 or the like, for receiving an initial transmission request 101 associated with an initial message for transmission over a communication network 100. As described above, the communication network 100 can be configured to facilitate the transmission of data (e.g., messages, packets, etc.) between devices that are communicatively coupled over the communication network 100. The computing device 200 can therefore receive an initial transmission request 101 from any transmitting, initiating, etc., device that is communicatively coupled to the computing device 200 over the network.Although described here with reference to an example of initial transmission requests and an associated initial message, the present disclosure provides that the embodiments described herein are applicable to any number of transmission requests and associated messages. As will be clear to the average person skilled in the art with regard to the present disclosure, the computing device 200 can receive multiple transmission requests addressed by the computing device 200 (e.g., sequentially, in parallel, etc.) in order to optimize data transmission through the communication network 100.
[0034] The first message associated with the first transmission request 101 received in Operation 302 may contain one or more data entries and an initial message size that is at least partially defined by the one or more data entries. As described above, the communication network 100 may be configured to transmit data to any number of devices associated with the network 100. Therefore, the first message of the first transmission request 101 may contain one or more data entries that constitute the first message to be transmitted via the communication network 100 to one or more destinations, devices, write locations, and / or the like. The present disclosure provides that the first message may contain any number of data entries of any type, configuration, format, etc.The first message of the first transmission request 101 may contain, based on the intended operations of the transmission device (not shown), the communication network 100, etc. Furthermore, the first message of the first transmission request 101 may be associated with a first message size, which is at least partially influenced by the one or more data entries of the first message. For example, the number of data entries associated with the first message may influence the size of the first message (e.g., a larger number of data entries may increase the size of the first message). As another example, the size (e.g., in bits, bytes, etc.) of the one or more data entries of the first message may influence the size of the first message.
[0035] The first message can also contain or otherwise define an initial sequence in which at least some of the data entries of the first message are to be executed. As described above, 100 different data swapping operations (e.g., encryption, signature operations, etc.) can be performed within the network, and these swapping operations often require that the data (e.g., data entries of the first message) be executed in a defined order. For example, an encryption operation (e.g., an example data swapping or transformation operation) may require that the data entries to be encrypted / decrypted be received in a specific order to ensure successful output (e.g., successful encryption / decryption). Therefore, the portion of the data entries of the first message (e.g.,The first transmission request (101), which is associated with the first sequence, may be further associated with one or more data transformation operations (e.g., data encryption, signature operations, etc.). As described below, the portion of the data entries of the first message that is associated with the first sequence may need to be included in the same packet for transmission to ensure that the data dissemination / transformation operations can be completed successfully.
[0036] The device (e.g., the computing device 200), as shown in Operation 304, then includes means, such as a processor 202 or the like, for determining a maximum transport unit (MTU) for the first transport queue 102 associated with the communication network 100. As described above, the first transport queue 102 can be associated with packet distribution operations over the communication network 100. For example, the first transport queue 102 can include multiple data transmission paths 103 that can be used to transmit data packets based on the first messages received by the communication network 100 (e.g., the first transmission request 101). The first transport queue 102, alone or in conjunction with the computing device 200, can select specific data transmission paths 103 for packet distribution data transmissions to optimize the utilization of the communication network 100.
[0037] The first transport queue 102 can further define an MTU, which represents the maximum packet size for packets transmitted via the first transport queue 102. To prevent data entries of the first message associated with the first sequence (and therefore, for example, needing to be received in a defined order for successful data transformation / paging operations) from being transmitted across different packets, the MTU for the first transport queue 102 can be disclosed to the transmission devices of the communication network 100. The determination of the MTU for the first transport queue 102 in operation 304 can, in some embodiments, refer to the determination of the MTU by the computing device 200, for example, in response to a request from the computing device 200 to the first transport queue 102 requesting the associated MTU.In other embodiments, for example in cases where the computing device 200 includes the first transport queue 102, the provision in operation 304 may refer to the computing device 200 providing the MTU for the first transport queue devices (e.g. transmit and / or receive devices) of the communication network 100.
[0038] The device (e.g., the computing device 200), as shown in Operation 306, then includes means, such as a processor 202 or the like, for generating at least one first data packet based on the first message. As described above, at least some of the data entries forming the first message may be associated with a data swapping / transformation operation (e.g., encryption, signature operations, etc.), such that the first sequence defines an order in which these data entries are to be executed. To ensure that the data entries associated with the first sequence remain in the same data packet, a generated first data packet may be as large as or smaller than the MTU for the first transport queue 102.In this way, the first transport queue 102 can continue to provide packet distribution operations over data transmission paths 103 without compromising the initial sequence. In other words, the data entries of the first message that must be received concurrently (i.e., not out of sequence) are contained in a single data packet (e.g., the first data packet) generated in operation 306. As described above, the size of the first message can be affected by the number of data entries, the size of the data entries, and so on. The generation of the first data packet in operation 306 can accommodate the size of the first message by ensuring that the generated first data packet is as large as or smaller than the MTU for the first transport queue 102.Although described here in relation to a single first data packet, the present disclosure provides that any number of data packets can be generated based on the first message, as long as the data entries associated with the first sequence are contained in the same data packet.
[0039] The device (e.g., the computing device 200), as shown in Operation 308, includes means, such as a communication interface 204 or the like, for transmitting the first data packet via the first transport queue 102. As described above, the first transport queue 102 is associated with packet distribution operations, so the first data packet generated in Operation 306 can be transmitted via one of the data transmission paths 103 for the first transport queue 102. If the computing device 200 generates additional first data packets, such as data packets associated with the first message but not with data swapping / transformation operations, the computing device 200 can also transmit these additional first data packets via the first transport queue 102.In a case where the minimum packet size for the first message exceeds the MTU for the first transport queue 102, the operations of . Fig. 4 can be used.
[0040] Fig. Figure 4 shows a flowchart with a series of operations for implementations with multiple transport queues (e.g., Procedure 400). The in Fig. The four illustrated operations can be performed, for example, with the aid of and / or under the control of a device (e.g., a computing device 200) as described above. In this respect, the execution of the operations can be called upon by one or more processors 202, main memory 206, and / or communication interfaces 204.
[0041] As shown in Operation 402, the device (e.g., the computing device 200) includes means, such as the processor 202 or the like, to determine, based on the size of the first message and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue 102. As described above, the first message may further contain or otherwise define a first sequence in which at least some of the data entries of the first message are to be executed. For example, various data swapping operations (e.g., encryption, signature operations, etc.) may be performed within the network 100, and these swapping operations often require that the data (e.g., data entries of the first message) be executed in a defined order.Therefore, the portion of the data entries in the first message that is associated with the first sequence may need to be included in the same packet for transmission to ensure that the data swapping operations can be completed successfully.
[0042] In some embodiments, however, the size (e.g., number of data entries, size of the data entries, etc.) of a packet containing all the data entries associated with the first sequence of the first message may exceed the MTU for the first transport queue 102. In other words, the minimum packet size for the first message exceeds the MTU for the first transport queue. In such an embodiment, due to the packet distribution capabilities (e.g., the multiple data transmission paths 103) of the first transport queue 102, it may not be able to ensure that the data entries associated with the first sequence are received in the correct order at the destination. To address these cases, in some embodiments, the network 100 may include a second transport queue 106 for which packet distribution operations are not available or are otherwise restricted.Although in . Fig. As illustrated in Figure 1 with a single data transmission path 105, the present disclosure provides that the second transport queue 106 can perform packet distribution operations; however, these operations (e.g., via instructions from the computing device 200 or the like) may be restricted. Additionally or alternatively, in such a case, the MTU for the second transport queue 106 may be larger than the MTU of the first transport queue 102 in order to accommodate the minimum packet size for the first message.
[0043] The device (e.g., the computing device 200), as shown in Operation 404, then includes means, such as a processor 202 or the like, for generating one or more second data packets based on the first message for transmission via a second transport queue of the communication network. The generation of the second packets can be carried out essentially as described above in relation to Operation 306. Fig.The transmission of data packets can be carried out as described in Section 3, but can be dimensioned taking into account the MTU requirements for the second transport queue 106. The present disclosure provides that any number of second data packets can be generated based on the intended application of the computing device 200, the network 100, and / or the like. Furthermore, the present disclosure provides that in some embodiments, a portion of the data entries of the first message can be transmitted by the first transport queue 102, while another portion of the data entries of the first message can be transmitted by the second transport queue 106. The device (e.g., the computing device 200), as shown in Operation 406, includes means, such as a communication interface 204 or the like, for transmitting the second data packet(s) via the second transport queue 106.
[0044] The person skilled in the art, to whom the present inventions are addressed, will, in light of the teachings of the foregoing descriptions and the associated drawings, conceive of many modifications and other embodiments of the inventions. Although the figures show only certain components of the devices and systems described herein, it is understood that various other components may be used in conjunction with the system. Therefore, it is to be understood that the inventions are not limited to the specific embodiments disclosed and that modifications and other embodiments are to be included within the scope of the appended claims. Furthermore, the steps of the method described above need not necessarily be carried out in the sequence shown in the accompanying diagrams, and in some cases, one or more of the illustrated steps may be carried out essentially simultaneously, or additional steps may be involved.Although specific terms are used here, they serve only in a generic and descriptive sense and not for restrictive purposes.
[0045] Although various embodiments based on the principles disclosed herein have been shown and described above, a person skilled in the art may modify them without departing from the essence and teachings of the disclosure. The embodiments described herein are merely representative and are not intended to be limiting. Many variations, combinations, and modifications are possible and are within the scope of the disclosure. The disclosed embodiments relate primarily to a network interface environment; however, a person skilled in the art may recognize that such principles can be applied to any scheduler that receives instructions and / or transactions and has access to two or more processor cores. Alternative embodiments resulting from the combination, integration, and / or omission of features of the embodiment(s) are also within the scope of the disclosure.Accordingly, the scope of protection is not limited by the above description.
[0046] Furthermore, the section headings used here serve for consistency with the proposals under 37 CFR 1.77 or otherwise for better organization. These headings are not intended to limit or characterize the invention(s) set forth in the claims of this disclosure. The use of broader terms such as "comprises," "includes," and "with" is to be understood as supporting narrower terms such as "consisting of," "essentially consisting of," and "essentially composed of." The use of the terms "optional," "may," "might," "possibly," and similar terms with respect to an element of an embodiment means that the element is not required, or alternatively, that the element is required, both alternatives being within the scope of the embodiment(s). In addition, references to examples are for illustrative purposes only and are not to be understood as exclusive.
[0047] It is understood that the aspects and embodiments described herein are merely examples and that detailed modifications may be made within the scope of the claims.
[0048] Each device, method and feature disclosed in the description and (where applicable) in the claims and drawings can be provided independently or in any suitable combination.
[0049] Reference numerals used in the claims serve only for illustration and do not have a limiting effect on the scope of the claims.
[0050] The disclosure of the present application also includes the following numbered clauses: Clause 1. A computer-implemented procedure comprising the following: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises the following: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transferred via the first transport queue; and Generating at least one first data packet based on the first message, where a generated first data packet is as large as or smaller than the MTU for the first transport queue. Clause 2. The computer-implemented procedure according to Clause 1, which further includes the transmission of the first data packet via the first transport queue. Clause 3. The computer-implemented procedure according to Clause 1, which further includes determining, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue. Clause 4. The computer-implemented method according to Clause 3, which further includes the generation of one or more second data packets based on the first message for transmission via a second transport queue of the communication network. Clause 5. The computer-implemented method according to Clause 4, wherein packet distribution operations are not available for the second transport queue. Clause 6. The computer-implemented method according to Clause 4, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue. Clause 7. The computer-implemented method according to Clause 1, wherein the portion of the data entries of the first message associated with the first sequence is associated with one or more data transformation operations. Clause 8. A computing device comprising the following: a non-transient storage device; and a processor coupled to the non-transitory storage device, wherein the processor is configured to: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transmitted via the first transport queue; and generate at least one first data packet based on the first message, wherein the generated first data packet is as large as or smaller than the MTU for the first transport queue. Clause 9. The computing device according to Clause 8, wherein the processor is further configured to initiate the transmission of the first data packet via the first transport queue. Clause 10. The computing device according to Clause 8, wherein the processor is further configured to determine, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue. Clause 11. The computing device according to Clause 10, wherein the processor is further configured to generate one or more second data packets based on the first message for transmission via a second transport queue of the communication network. Clause 12. The computing device according to Clause 11, wherein packet distribution operations are not available for the second transport queue. Clause 13. The computing device according to Clause 11, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue. Clause 14. The computing device according to Clause 8, wherein the portion of the data entries of the first message associated with the first sequence is associated with one or more data transformation operations. Clause 15. A computer program product comprising at least one non-transitory, machine-readable storage medium containing computer program code which, when executed with at least one processor, configures the computer program product to: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transferred via the first transport queue; and Generating at least one first data packet based on the first message, where the generated first data packet is as large as or smaller than the MTU for the first transport queue. Clause 16. The computer program product according to Clause 15, which is further configured to transmit the first data packet via the first transport queue. Clause 17. The computer program product according to Clause 15, further configured to determine, based on the initial message size and / or the initial sequence, that a minimum packet size for the initial message exceeds the MTU for the initial transport queue. Clause 18. The computer program product according to Clause 17, further configured to generate one or more second data packets based on the first message for transmission via a second transport queue of the communication network. Clause 19. The computer program product according to Clause 18, wherein packet distribution operations are not available for the second transport queue. Clause 20. The computer program product according to Clause 17, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue.
Claims
[1] Computer-implemented method comprising the following: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises the following: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transferred via the first transport queue; and Generating at least one first data packet based on the first message, where a generated first data packet is as large as or smaller than the MTU for the first transport queue. [2] Computer-implemented method according to claim 1, further comprising the transmission of the first data packet via the first transport queue. [3] Computer-implemented method according to claim 1 or 2, further comprising determining, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue. [4] Computer-implemented method according to claim 3, further comprising generating one or more second data packets based on the first message for transmission via a second transport queue of the communication network. [5] Computer-implemented method according to claim 4, wherein packet distribution operations are not available for the second transport queue. [6] Computer-implemented method according to claim 4 or 5, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue. [7] Computer-implemented method according to a previous claim, wherein the portion of the data entries of the first message associated with the first sequence is associated with one or more data transformation operations. [8] Computing device comprising the following: a non-transient storage device; and a processor coupled to the non-transitory storage device, wherein the processor is configured to: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transferred via the first transport queue; and Generating at least one first data packet based on the first message, where the generated first data packet is as large as or smaller than the MTU for the first transport queue. [9] Computing device according to claim 8, wherein the processor is further configured to initiate the transmission of the first data packet via the first transport queue. [10] Computing device according to claim 8 or 9, wherein the processor is further configured to determine, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue. [11] Computing device according to claim 10, wherein the processor is further configured to generate one or more second data packets based on the first message for transmission via a second transport queue of the communication network. [12] Computing device according to claim 11, wherein packet distribution operations are not available for the second transport queue. [13] Computing device according to claim 11 or 12, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue. [14] Computing device according to one of claims 8 to 13, wherein the part of the data entries of the first message associated with the first sequence is associated with one or more data transformation operations. [15] Computer program product comprising at least one non-transitory, computer-readable storage medium containing computer program code which, when executed with at least one processor, configures the computer program product to: Receiving an initial transmission request associated with an initial message for transmission over a communications network, wherein the initial message comprises: one or more data entries; an initial message size, which is at least partially defined by one or more data entries; and a first sequence in which at least some of the data entries of the first message are to be executed; Determining an MTU (Maximum Transport Unit) for a first transport queue associated with the communication network, wherein: the first transport queue is associated with packet distribution operations over the communication network; and The MTU of the first transport queue defines a maximum packet size for packets transferred via the first transport queue; and Generating at least one first data packet based on the first message, where the generated first data packet is as large as or smaller than the MTU for the first transport queue. [16] Computer program product according to claim 15, further configured to transmit the first data packet via the first transport queue. [17] Computer program product according to claim 15 or 16, further configured to determine, based on the first message size and / or the first sequence, that a minimum packet size for the first message exceeds the MTU for the first transport queue. [18] Computer program product according to claim 17, which is further configured to generate one or more second data packets based on the first message for transmission via a second transport queue of the communication network. [19] Computer program product according to claim 18, wherein packet distribution operations are not available for the second transport queue. [20] Computer program product according to claim 17, 18 or 19, wherein the MTU for the second transport queue is larger than the MTU of the first transport queue.