IP Library Granted Patent US 10,791,192
Granted Patent B2
US 10,791,192 · App. 16/391,983 · Granted Sep 29, 2020

Hybrid approach for performance enhancing proxies

Inventors: Vivek Kashyap (Beaverton, OR); Michael J. Kravetz (Beaverton, OR); Xiuling Ma (Portland, OR); Erich M. Nahum (New York, NY)
Assignee: International Business Machines Corporation
H04L67/28H04L43/0829H04L45/74H04L69/161H04L63/1466
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,791,192
App. No.
16/391,983
Granted
Sep 29, 2020
Kind
B2
Abstract

There are provided a transparent performance enhancing proxy, a method for operating a transparent performance enhancing proxy between a source device and a destination device, and corresponding computer program product. The method includes preserving, without translation, packet header information of a header for a packet received from the source device to be forwarded to the destination device. The method further includes during a transmission control protocol connection setup phase for the packet, preserving transmission control protocol connection semantics. The method also includes during a transmission control protocol data transfer phase for the packet, running a transmission control protocol by masquerading as the source device to the destination device and masquerading as the destination device to the source device to transmit the packet to the destination device with the preserved packet header information.

Claims (43)

1. A method for operating a transparent performance enhancing proxy between a source device and a destination device, comprising:

during a transmission control protocol connection setup phase for the packet, preserving transmission control protocol connection semantics;

determining that a connection between the source device and the destination device during the transmission control protocol connection setup phase is established by the transparent performance enhancing proxy receiving a synchronization acknowledgment from the destination device; and

locally terminating the connection at the transparent performance enhancing proxy and creating a connection from the source device to the transparent performance enhancing proxy and a connection from the transparent performance enhancing proxy to the source device.

2. The method of claim 1 , wherein packet header information is preserved without translation including, at least one of:

for transmission control protocol communication of the packet, at least one of a transmission control protocol port number, a transmission control protocol sequence number, and a transmission control protocol header option;

for Internet protocol communication of the packet, at least one of an Internet Protocol address, an Internet Protocol hop limit, an Internet Protocol Time To Live, an Internet Protocol Type of Service, and an Explicit Congestion Notification; and

for media access control communication of the packet, at least one of a media access control address and a virtual local area network tag.

3. The method of claim 1 , wherein packet header information is preserved without translation including all information specified in all mandatory fields of the header.

4. The method of claim 3 , wherein the packet header information that is preserved without translation further comprises all information specified in at least some mandatory options fields of the header.

5. The method of claim 1 , wherein transmission control protocol connection semantics are preserved for the connection setup phase by waiting for a Synchronize Acknowledge to return from the destination device and preventing termination of a connection between the source device and the destination device until both the source device and the destination device have completed their respective connection establishment sequences for the connection.

6. The method of claim 1 , further comprising preserving transmission control protocol connection semantics for a connection termination phase for the packet by closing a connection between the source device and the transparent performance enhancing proxy, closing a connection between the transparent performance enhancing proxy and the destination device, and releasing all allocated resources for the connection.

7. The method of claim 1 , further comprising:

responsive to receiving the packet from the source device, creating a copy of the packet, caching the copy of the packet, and transmitting the copy of the packet to the destination device;

responsive to receiving an acknowledgement for the packet from the source device, destroying the copy of the packet that has been cached; and

responsive to a detection of packet loss relating to the packet, retransmitting the copy of the packet that has been cached.

8. A computer program product for operating a transparent performance enhancing proxy, the computer program product comprising a computer readable non-transitory medium having program instructions embodied therewith, the program instructions executable by a processor comprised in the transparent performance enhancing proxy to cause the transparent performance enhancing proxy to:

during a transmission control protocol connection setup phase for the packet, preserve transmission control protocol connection semantics;

determine that a connection between the source device and the destination device during the transmission control connection setup phase is established by the transparent performance enhancing proxy receiving a synchronization acknowledgement from the destination device; and

locally terminate the connection at the transparent performance enhancing proxy and creating a connection from the source device to the transparent performance enhancing proxy and a connection from the transparent performance enhancing proxy to the source device.

9. The computer program product of claim 8 , wherein packet header information is preserved without translation including, at least one of:

for transmission control protocol communication of the packet, at least one of a transmission control protocol port number, a transmission control protocol sequence number, and a transmission control protocol header option;

for Internet protocol communication of the packet, at least one of an Internet Protocol address, an Internet Protocol hop limit, an Internet Protocol Time To Live, an Internet Protocol Type of Service, and an Explicit Congestion Notification; and

for media access control communication of the packet, at least one of a media access control address and a virtual local area network tag.

10. The computer program product of claim 8 , wherein packet header information is preserved without translation including all information specified in all mandatory fields of the header.

11. The computer program product of claim 10 , wherein the packet header information that is preserved without translation further comprises all information specified in at least some mandatory options fields of the header.

12. The computer program product of claim 8 , wherein the transmission control protocol connection semantics are preserved for the connection setup phase by waiting for a Synchronize Acknowledge to return from the destination device and preventing termination of a connection between the source device and the destination device until both the source device and the destination device have completed their respective connection establishment sequences for the connection.

13. The computer program product of claim 8 , further comprising preserving transmission control protocol connection semantics for a connection termination phase for the packet by closing a connection between the source device and the transparent performance enhancing proxy, closing a connection between the transparent performance enhancing proxy and the destination device, and releasing all allocated resources for the connections.

14. A transparent performance enhancing proxy for disposing between a source device and a destination device, the proxy comprising:

a memory for storing a copy of a packet; and

a processor to:

during a transmission control protocol connection setup phase for the packet, preserve transmission control protocol connection semantics;

determine that a connection between the source device and the destination device during the transmission control protocol connection setup phase is established by the transparent performance enhancing proxy receiving a synchronization acknowledgment from the destination device; and

locally terminate the connection at the transparent performance enhancing proxy and creating as connection from the source device to the transparent performance enhancing proxy and a connection from the transparent performance enhancing proxy to the source device.

15. The transparent performance enhancing proxy of claim 14 , wherein the processor preserves, without translation, packet header information of a header for a packet received from the source device to be forwarded to the destination device.

16. The transparent performance enhancing proxy of claim 14 , wherein packet header information is preserved without translation including, at least one of:

for transmission control protocol communication of the packet, at least one of a transmission protocol port number, a transmission control protocol sequence number, and a transmission control protocol header option;

for Internet protocol communication of the packet, at least one of an Internet Protocol address, an Internet Protocol hop limit, an Internet Protocol Time To Live, an Internet Protocol Type of Service, and an Explicit Congestion Notification; and

for media access control communication of the packet, at least one of a media access control address and a virtual local area network tag.

17. The transparent performance enhancing proxy of claim 14 , wherein packet header information is preserved without translation including all information specified in all mandatory fields of the header.

18. The transparent performance enhancing proxy of claim 17 , wherein the packet header information that is preserved without translation further comprises all information specified in at least some mandatory options fields of the header.

19. The transparent performance enhancing proxy of claim 14 , further comprising preserving transmission control protocol connection semantics for a connection termination phase for the packet by closing a connection between the source device and the transparent performance enhancing proxy, closing a connection between the transparent performance enhancing proxy and the destination device, and releasing all allocated resources for the connections.

20. The transparent performance enhancing proxy of claim 14 , wherein the transmission control protocol connection semantics are preserved for the connection setup phase by waiting for a Synchronize Acknowledge to return from the destination device and preventing termination of a connection between the source device and the destination device until both the source device and the destination device have completed their respective connection establishment sequences for the connection there between.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2019
From: KASHYAP, VIVEK; KRAVETZ, MICHAEL J.; MA, XIULING; NAHUM, ERICH M.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048971/0647 →
Continuity (3)
Continuation 15140875 · Apr 28, 2016
Continuation 14313354 · Jun 24, 2014
Related Publication 20190253511A1 · Aug 15, 2019