H04L49/3072

THROTTLING FOR BANDWIDTH IMBALANCED DATA TRANSFERS

Techniques are disclosed to throttle bandwidth imbalanced data transfers. In some examples, an example computer-implemented method may include splitting a payload of a data transfer operation over a network fabric into multiple chunk get operations, starting the execution of a threshold number of the chunk get operations, and scheduling the remaining chunk get operations for subsequent execution. The method may also include executing a scheduled chunk get operation in response determining a completion of an executing chunk get operation. In some embodiments, the chunk get operations may be implemented as triggered operations.

Switch arbitration based on distinct-flow counts

A network switch includes circuitry and multiple ports, including multiple input ports and at least one output port, configured to connect to a communication network. The circuitry includes multiple distinct-flow counters, which are each associated with a respective input port and with the output port, and which are configured to estimate respective distinct-flow counts of distinct data flows received via the respective input ports and destined to the output port. The circuitry is configured to store packets that are destined to the output port and were received via the multiple input ports in multiple queues, to determine a transmission schedule for the packets stored in the queues, based on the estimated distinct-flow counts, and to transmit the packets via the output port in accordance with the determined transmission schedule.

Scalable switch fabric cell reordering

In some examples, a switching system includes a plurality of fabric endpoints and a multi-stage switching fabric. A fabric endpoint of the system is configured to receive, via the switch fabric, a plurality of cell streams, wherein each cell of a cell stream of the plurality of cell stream is associated with a sequence number that defines a correct ordering of cells of the cell stream; assign subsequences of each cell stream of the plurality of cell streams to respective reorder engines of the fabric endpoint; concurrently reorder the assigned respective subsequences to produce respective ordered subsequences for the subsequences, wherein the ordered subsequences are ordered according to the correct ordering of the corresponding cell stream; interleave the respective ordered subsequences for each cell stream to produce reordered cell streams each having correctly ordered cells; and process each reordered cell stream according to the corresponding correct ordering of cells.

Multi-Part TCP Connection Over VPN
20240267259 · 2024-08-08 ·

Based on an initiation request for a first connection from a Virtual Private Network (VPN) user device intended for a target, a second connection is established between a VPN concentrator and the VPN user device across a VPN tunnel and a third connection is established between the VPN concentrator and the target. The second connection is established with a first Maximum Segment Size (MSS) and the third connection is established with a second MSS. A first round trip time (RTT) for the second connection is measured. A second RTT for the third connection is measured. Parameters of at least one of the second connection or the third connection are optimized, where first parameters of the second connection are optimized based on the first RTT and second parameters of the third connection are optimized based on the second RTT.

Addressless merge command with data item identifier
10146468 · 2018-12-04 · ·

An addressless merge command includes an identifier of an item of data, and a reference value, but no address. A first part of the item is stored in a first place. A second part is stored in a second place. To move the first part so that the first and second parts are merged, the command is sent across a bus to a device. The device translates the identifier into a first address ADR1, and uses ADR1 to read the first part. Stored in or with the first part is a second address ADR2 indicating where the second part is stored. The device extracts ADR2, and uses ADR1 and ADR2 to issue bus commands. Each bus command causes a piece of the first part to be moved. When the entire first part has been moved, the device returns the reference value to indicate that the merge command has been completed.

Communication control device with dynamic fragmenting of non-real-time data

There is provided a communication control device including: a real-time communication status extraction unit that acquires a communication timing of real-time data; a dynamic fragment size determination unit that acquires a fragment size of sending data which can be sent until the communication timing acquired by the real-time communication status extraction unit; a fragment processing unit that fragments non-real-time data to have at least a fragment size which is equal to or less than the fragment size acquired by the dynamic fragment size determination unit; and a communication unit that sends the non-real-time data, which is fragmented by the fragment processing unit, before the communication timing of the real-time data.

SWITCH ARBITRATION BASED ON DISTINCT-FLOW COUNTS

A network switch includes circuitry and multiple ports, including multiple input ports and at least one output port, configured to connect to a communication network. The circuitry includes multiple distinct-flow counters, which are each associated with a respective input port and with the output port, and which are configured to estimate respective distinct-flow counts of distinct data flows received via the respective input ports and destined to the output port. The circuitry is configured to store packets that are destined to the output port and were received via the multiple input ports in multiple queues, to determine a transmission schedule for the packets stored in the queues, based on the estimated distinct-flow counts, and to transmit the packets via the output port in accordance with the determined transmission schedule.

INFORMATION SWITCHING
20180210845 · 2018-07-26 ·

An information switch comprises a plurality of input circuits and a plurality of output circuits, the information switch being configured to communicate information units between the input circuits and the output circuits in successive transmission cycles; each input circuit being configured, in dependence upon a queue of one or more information units for transmission via that input circuit and in dependence upon hint data received in respect of a current transmission cycle, to send an information unit transmission request to one or more of the output circuits; and each output circuit being configured, in response to one or more information unit transmission requests received from respective input circuits, to select an input circuit for information unit transmission to that output circuit in a current transmission cycle and to provide hint data indicating a provisional selection, by that output circuit, of an input circuit at a next transmission cycle.

Packet storage based on packet properties

In an example, a system includes a network port that receives a packet; a first memory; a second memory; and a packet analyzer coupled to the network port. The packet analyzer operates to divide the packet into multiple fragments, analyze each of the multiple fragments to determine whether the corresponding fragment has a first priority level or a second, lower, priority level, determine whether to store each of the multiple fragments in the first memory or the second memory based on the priority level determined for that fragment, store each fragment determined to have the first priority level in the first memory, and store each fragment determined to have the second priority level in the second memory. The network port, packet analyzer and the first memory, which may be a cache memory, may be embodied on a chip, and the second memory may be external to the chip.

Network system and management server

A communication device includes a plurality of packet processing modules in which a packet processing function is changeable with a program, and a management server holds program information of a plurality of different packet processing module circuits settable to the packet processing modules, selects the packet processing module circuit to be set to the packet processing module, of the plurality of different packet processing module circuits, and transmits the program information of the selected packet processing module circuit and information for identifying the packet processing module that is an object to be set, to the communication device that is an object to be set.