# US 10,313,270 B1 · End point multiplexing for efficient layer 4 switching

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,270 B1
- Document ID: US10313270B1
- Status: Granted
- Kind: B1
- Application number: 14/973,999
- Filed: 2015-12-18
- Granted: 2019-06-04
- Earliest claimed: 2014-12-18
- Assignees: Akamai Technologies, Inc.
- Applicants: Akamai Technologies, Inc.
- Inventors: Byung K. Choi
- Web page: https://patentgrep.com/patent/US10313270B1

## CPC

- H04L 49/25: Routing or path finding in a switch fabric
- H04L 49/9057: Arrangements for supporting packet reassembly or resequencing
- H04L 69/326: in the transport layer [OSI layer 4] (H04L69/16 takes precedence)
- H04L 12/50: Circuit switching systems, i.e. systems in which the path is physically permanent during the communication
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

This disclosure provides for an enhancement to a transport layer switch and, in particular the management of end points. In this approach, a memory space, such as a large logical ring buffer, is shared by incumbent connections to facilitate a space multiplexing end point management scheme. Preferably, memory allocation in the memory space is done packet-by-packet dynamically. Because the memory space is shared by all admitted connections, packets belonging to the same connection are not necessarily located physically consecutive to each other. A packet indexing mechanism that implements a set of pointers ensures that consecutiveness for packets on the same connection is maintained. This approach to end point multiplexing provides significant benefits by improving resource utilization, and enabling a higher number of connections to be served.

## Claims

### Claim 1

A method of transport layer (Layer 4) switching, comprising:
allocating a memory space for use by a plurality of end points, wherein each end point represents a datagram buffer space, and wherein pairs of end points support connections adapted to be switched;
configuring the memory space as a logical ring buffer of slots, wherein a slot consists essentially of a Layer 4 data packet together with an internal slot header, wherein an end point is structured as a collection of logically-consecutive slots into which data waiting to be switched is written, the internal slot header maintaining logical consecutiveness of the collection, the logical ring buffer being shared by all admitted connections across the pairs of end points that are to be switched;
maintaining, for each pair of end points associated with a connection, a set of pointers to the slots;
for at least a first connection, switching the first connection to a second connection by reading or writing packet data from the logical ring buffer using the set of pointers.

### Claim 2 (depends on 1)

The method as described in claim 1 wherein particular slots constituting an end point are not required to be physically-consecutive.

### Claim 3 (depends on 1)

The method as described in claim 1 wherein the slots in the collection of logically-consecutive slots are associated to one another during switching using the pointers.

### Claim 4 (depends on 1)

The method as described in claim 1 wherein switching the first connection to the second connection switches in-order packets from the first connection to the second connection without the in-order packets being moved from their logically-consecutive slots.

### Claim 5 (depends on 1)

The method as described in claim 1 wherein a connection is a Transmission Control Protocol (TCP) connection.

### Claim 6 (depends on 5)

The method as described in claim 5 wherein the transport layer switch is implemented in an overlay network.

### Claim 7 (depends on 6)

The method as described in claim 6 wherein the overlay network is a content delivery network (CDN).

### Claim 8 (depends on 6)

The method as described in claim 6 wherein the first connection is associated with a cellular wireless link and the second connection is associated with a wired link.

### Claim 9 (depends on 1)

The method as described in claim 1 further including reserving a portion of the memory space for statistically-multiplexing end point allocations.

### Claim 10

Apparatus, comprising:
a processor;
computer memory holding computer program instructions, the computer program instructions comprising:
program code allocating a memory space for use by a plurality of end points, wherein each end point represents a datagram buffer space, and wherein pairs of end points support connections adapted to be switched;
program code configuring the memory space as a logical ring buffer of slots, wherein a slot consists essentially of a Layer 4 data packet together with an internal slot header, wherein an end point is structured as a collection of logically-consecutive slots into which data waiting to be switched is written, the internal slot header maintaining logical consecutiveness of the collection, the logical ring buffer being shared by all admitted connections across the pairs of end points that are to be switched;
program code maintaining, for each pair of end points associated with a connection, a set of pointers to the slots;
program code operative for at least a first connection to switch the first connection to a second connection by reading or writing packet data from the logical ring buffer using the set of pointers.

### Claim 11 (depends on 10)

The apparatus as described in claim 10 wherein particular slots constituting an end point are not required to be physically-consecutive.

### Claim 12 (depends on 11)

The apparatus as described in claim 11 wherein the logically-consecutive slots in the collection of slots are associated to one another during the switch using the pointers.

### Claim 13 (depends on 10)

The apparatus as described in claim 10 wherein the first connection is switched to the second connection by switching in-order packets from the first connection to the second connection without the in-order packets being moved from their logically-consecutive slots.

### Claim 14 (depends on 10)

The apparatus as described in claim 10 wherein a connection is a Transmission Control Protocol (TCP) connection.

### Claim 15 (depends on 10)

The apparatus as described in claim 10 wherein the apparatus is an edge server implemented in an overlay network.

### Claim 16 (depends on 10)

The apparatus as described in claim 10 wherein the first connection is associated with a cellular wireless link and the second connection is associated with a wired link.

### Claim 17 (depends on 10)

The apparatus as described in claim 10 wherein the computer program instructions further include program code to reserve a portion of the memory space for statistically-multiplexing end point allocations.
