IP Library Granted Patent US 10,476,980
Granted Patent B2
US 10,476,980 · App. 14/821,382 · Granted Nov 12, 2019

Remote socket splicing system

Inventors: Samuel Liddicott (Wakefield, GB); Shane O'Hanlon (Annascaul, IE)
Assignee: Dell Products L.P.
H04L67/2814H04L45/22H04L45/58H04L67/141H04L67/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,476,980
App. No.
14/821,382
Granted
Nov 12, 2019
Kind
B2
Abstract

A remote socket splicing system includes a first computing device and a second computing device that are coupled to a router device. A proxy system is coupled to the router device. The proxy system is configured to operate on a first connection with the first computing device through the first router device, and operate on a second connection with the second computing device through the first router device. The proxy system is also configured to send an instruction to perform a socket splicing operation to the first router device subsequent to operating on the first connection and the second connection. The first router device is configured to perform the socket splicing operation to provide a data path between the first computing device and the second computing device that does not include the proxy system.

Claims (51)

1. A remote socket splicing system, comprising:

a first computing device;

a second computing device;

a first router device that includes a first chassis and a first communication system that is housed in the first chassis and that includes a first socket that is coupled to the first computing device and a second socket that is coupled to the second computing device; and

a proxy system that includes a second chassis and a second communication system that is housed in the second chassis and that is coupled to the first communication system of the first router device, wherein the proxy system is configured to:

operate on a first connection with the first computing device through the first router device;

operate on a second connection with the second computing device through the first router device; and

send an instruction to perform a socket splicing operation to the first router device subsequent to operating on the first connection and the second connection, wherein the first router device is configured to perform the socket splicing operation to provide a data path between the first computing device and the second computing device through the first socket and the second socket such that the data path does not include the proxy system.

2. The remote socket splicing system of claim 1 , wherein first computing device is a client device and the second computing device is a server, and wherein the first router device is configured to use the data path to transmit at least one response from the server to the client device.

3. The remote socket splicing system of claim 1 , wherein first computing device is a first client device and the second computing device is a second client device, and wherein the first router device is configured to use the data path to provide communications between the first client device and the second client device.

4. The remote socket splicing system of claim 1 , further comprising:

a second router device that is coupled between the first router device and the proxy system, wherein the second router device is configured to receive the instruction to perform the socket splicing operation, determine that the first router device is coupled to both of the first computing device and the second computing device and, in response, forward the instruction to perform the socket splicing operation to the first router device.

5. The remote socket splicing system of claim 1 , wherein the proxy system is configured to:

determine that the first router device routes each of the first connection and the second connection and, in response, send the instruction to perform the socket splicing operation to the first router device.

6. The remote socket splicing system of claim 1 , wherein the first router device is configured to:

determine that the instruction to perform the socket splicing operation is associated with the first computing device and the second computing device;

identify a first connection entry for the first connection to the first computing device and a second connection entry for the second connection to the second computing device in a connection tracking database and, in response, perform the socket splicing operation; and

provide a spliced connection entry in the connection tracking database and remove the first connection entry and the second connection entry from the connection tracking database in response to performing the socket splicing operation.

7. An information handling system (IHS), comprising:

a first chassis;

a first communication system that is housed in the first chassis and that is configured to couple to a second communication system that is housed in a second chassis of a first router device;

a processing system that is housed in the first chassis and coupled to the first communication system; and

a memory system that is housed in the first chassis and that is coupled to the processing system and that includes instruction that, when executed by the processing system, cause the processing system to provide a remote socket splicing engine that is configured to:

operate on a first connection through the second communication system included in the first router device and to a first computing device using the first communication system;

operate on a second connection through the second communication system included in the first router device and to a second computing device using the first communication system; and

send, to the first router device using the first communication system, an instruction to perform a socket splicing operation on the second communication system subsequent to operating on the first connection and the second connection, wherein the instruction to perform the socket splicing operation is configured to cause the second communication system included in the first router device to provide a first data path between the first computing device and the second computing device that does not include the first communication system.

8. The IHS of claim 7 , wherein first computing device is a client device and the second computing device is a server, and wherein the instruction to perform the socket splicing operation is configured to cause the first router device to use the first data path to transmit at least one response from the server to the client device.

9. The IHS of claim 7 , wherein first computing device is a first client device and the second computing device is a second client device, and wherein the instruction to perform the socket splicing operation is configured to cause the first router device to use the first data path to provide communications between the first client device and the second client device.

10. The IHS of claim 7 , wherein the first communication system is configured to couple to the second communication system included in the first router device through a third communication system that is housed in a third chassis of a second router device, and wherein the instruction to perform the socket splicing operation is configured to cause the second router device to determine that the first router device is coupled to both of the first computing device and the second computing device and, in response, forward the instruction to perform the socket splicing operation to the first router device.

11. The IHS of claim 7 , wherein the remote socket splicing engine is configured to:

determine that the first router device routes each of the first connection and the second connection and, in response, send the instruction to perform the socket splicing operation to the first router device.

12. The IHS of claim 7 , wherein the remote socket splicing engine is configured to:

receive a response from the first router device indicating that the socket splicing operation was not performed by the first router device and, in response, perform the socket splicing operation to provide a second data path between the first computing device and the second computing device that includes the first communication system.

13. The IHS of claim 7 , wherein the instruction to perform the socket splicing operation identifies the first connection using at least a first connection source port, a first connection source address, a first connection destination port, and a first connection destination address, and wherein the instruction to perform the socket splicing operation identifies the second connection using at least a second connection source port, a second connection source address, a second connection destination port, and a second connection destination address.

14. A method for performing remote socket slicing, comprising:

operating, by a proxy system that includes a first chassis and a first communication system that is housed in the first chassis, on a first connection with a first computing device through a second communication system that is housed in a second chassis of a first router device, wherein the second communication system is coupled to the first communication system;

operating, by the proxy system, on a second connection with a second computing device through the first communication system and the second communication included in the first router device; and

sending, by the proxy system to the first router device using the first communication system, an instruction to perform a socket splicing operation on the second communication system subsequent to operating the first connection and the second connection, wherein the instruction to perform the socket splicing operation is configured to cause the second communication system included in the first router device to provide a first data path between the first computing device and the second computing device that does not include the first communication system included in the proxy system.

15. The method of claim 14 , wherein first computing device is a client device and the second computing device is a server, and wherein the instruction to perform the socket splicing operation is configured to cause the first router device to use the first data path to transmit at least one response from the server to the client device.

16. The method of claim 14 , wherein first computing device is a first client device and the second computing device is a second client device, and wherein the instruction to perform the socket splicing operation is configured to cause the first router device to use the first data path to provide communications between the first client device and the second client device.

17. The method of claim 14 , further comprising:

receiving, by a second router device that includes a third chassis and a third communication system that is housed in the chassis, wherein the third communication system is coupled between the first communication system included in the proxy system and the second communication system included in the first router device, the instruction to perform the socket splicing operation; and

determining, by the second router device, that the second communication system included in the first router device is coupled to both of the first computing device and the second computing device and, in response, forwarding the instruction to perform the socket splicing operation on the second communication system to the first router device.

18. The method of claim 14 , further comprising:

determining, by the proxy system, that the first router device routes each of the first connection and the second connection and, in response, sending the instruction to perform the socket splicing operation on the second communication system to the first router device.

19. The method of claim 14 , further comprising:

determining, by the first router device, that the instruction to perform the socket splicing operation is associated with the first computing device and the second computing device;

identifying, by the first router device, a first connection entry for the first connection to the first computing device and a second connection entry for the second connection to the second computing device in a connection tracking database and, in response, performing the socket splicing operation on the second communication system; and

providing, by the first router device, a spliced connection entry in the connection tracking database and removing the first connection entry and the second connection entry from the connection tracking database in response to performing the socket splicing operation on the second communication system.

20. The method of claim 14 , further comprising:

receiving, by the proxy system from the second communication system included in the first router device, a response indicating that the socket splicing operation was not performed by the first router device and, in response, performing the socket splicing operation on the first communication system to provide a second data path between the first computing device and the second computing device that includes the proxy system.

Assignments (19)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
RELEASE OF REEL 037160 FRAME 0142 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0812 →
RELEASE OF REEL 037160 FRAME 0239 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0115 →
RELEASE OF REEL 037160 FRAME 0171 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0253 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037160/0171 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 037160/0142 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037160/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2015
From: LIDDICOTT, SAMUEL; O'HANLON, SHANE
To: DELL PRODUCTS L.P.
Reel/Frame 036281/0052 →