IP Library Granted Patent US 8,769,156
Granted Patent B2
US 8,769,156 · App. 12/645,874 · Granted Jul 1, 2014

Systems and methods for maintaining transparent end to end cache redirection

Inventors: Saravanakumar Annamalaisami (Santa Clara, CA); Anil Shetty (Union City, CA); Josephine Suganthi (Santa Clara, CA); Akshat Choudhary (Bangalore, IN)
Assignee: Citrix Systems, Inc.
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 8,769,156
App. No.
12/645,874
Granted
Jul 1, 2014
Kind
B2
Abstract

The present disclosure presents systems and methods for maintaining original source and destination IP addresses of a request while performing intermediary cache redirection. An intermediary receives a request from a client destined to a server identifying a client IP address as a source IP address and a server IP address as a destination IP address. The intermediary transmits the request to a cache server, the request maintaining original IP addresses and identifying a MAC address of the cache server as the destination MAC address. The intermediary receives the request from the cache server responsive to a cache miss, the received request maintaining the original source and destination IP addresses. The intermediary identifying that the third request is coming from the cache server via one or more data link layer properties of the third transport layer connection. The intermediary transmits to the server the request identifying the client IP address as the source IP address and the server IP address as the destination IP address.

Claims (32)

1. A method of maintaining an internet protocol address of a server via cache redirection, the method comprising:

(a) receiving, by an intermediary device deployed between a plurality of clients and one or more servers, a first request from a client to access a server via a first transport layer connection between the client and the intermediary device, the first request identifying a client internet protocol (IP) address as a source IP address, a client port as a source port of the first request and a server IP address as a destination IP address;

(b) transmitting, by the intermediary responsive to determining that the first request is for content that may be cached, the first request as a second request to a cache server via a second transport layer connection between the intermediary device and the cache server, the second request using the client internet protocol (IP) address of the first request as the source IP address of the second request, a port of the intermediary device as a source port of the second request and the server IP address of the first request as the destination IP address of the second request;

(c) receiving, by the intermediary device via a third transport layer connection between the intermediary device and the cache server, the second request as a third request from the cache server responsive to a cache miss, the third request having the client internet protocol (IP) address of the first request as the source IP address of the third request, a cache port of the cache server as a source port of the third request and the server IP address of the first request as the destination IP address of the third request;

(d) identifying, by the intermediary device, that the third request from the cache server corresponds to the first request of the client via one or more data link layer properties of the third request; and

(e) transmitting, by the intermediary device responsive to the identification and maintaining the source IP address and the destination IP address of the first request of the client, the third request as a fourth request to the server via a fourth transport layer connection between the intermediary device and the server, the intermediary using the client internet protocol (IP) address of the first request as the source IP address of the fourth request, a second port of the intermediary device as the source port of the fourth request and the server IP address of the first request as the destination IP address of the fourth request.

2. The method of claim 1 , wherein step (b) further comprises modifying, by the intermediary device, the second request to change a destination virtual local area network (VLAN) address of the second request to a VLAN address of the cache server.

3. The method of claim 1 , wherein step (c) further comprises receiving, by the intermediary device, the third request modified by the cache server to change a destination MAC identifier of the third request to a MAC identifier of the intermediary.

4. The method of claim 1 , wherein step (c) further comprises receiving, by the intermediary device, the third request modified by the cache server to change a destination virtual local area network (VLAN) address of the third request to a VLAN address of the intermediary.

5. The method of claim 1 , wherein step (d) further comprises identifying, by the intermediary device, that the third request is coming from the cache server based on a source virtual area network (VLAN) address of the third request identifying a VLAN address of the cache server.

6. The method of claim 1 , wherein step (d) further comprises identifying, by the intermediary device, that the third request is coming from the cache server based on a source MAC identifier of the third request identifying the MAC identifier of the cache server.

7. The method of claim 1 , wherein step (d) further comprises identifying, by a cache redirector virtual server of the intermediary device, that the third request is coming from the cache server.

8. The method of claim 1 , wherein step (e) further comprises transmitting, by the intermediary device, the fourth request to the server identified by the destination server IP address.

9. The method of claim 8 , wherein step (e) further comprises transmitting, by the intermediary device, the fourth request comprising a payload of the first request.

10. The method of claim 1 , wherein step (e) comprises transmitting, by the intermediary device, the fourth request via a fourth transport layer connection established between the intermediary and the server using the client IP address.

11. The method of claim 1 , wherein step (f) further comprises transmitting, by the cache server, the third request without resolving, by the cache server, an IP address of the third request using a domain name server.

12. A system of maintaining an internet protocol address of a server via cache redirection, the system comprising:

an intermediary device, deployed between a plurality of clients and one or more servers, receiving a first request from a client to access a server via a first transport layer connection between the intermediary device and the client, the first request identifying a client internet protocol (IP) address as a source IP address, a client port as a source port of the first request and a server IP address as a destination IP address;

a virtual server of the intermediary device transmitting, in response to determining that the first request is for content that may be cached, the first request as a second request to a cache server via a second transport layer connection between the intermediary device and the cache server, the second request using the client internet protocol (IP) address of the first request as the source IP address of the second request, a port of the intermediary device as a source port of the second request;

wherein the virtual server receives from the cache server via a third transport layer connection between the intermediary device and the cache server, in response to a cache miss, the second request as a third request having the client internet protocol (IP) address of the first request as the source IP address of the third request, a cache port of the cache server as a source port of the third request and the server IP address of the first request as the destination IP address of the third request;

identifies that the third request from the cache server corresponds to the first request of the client via one or more data link layer properties of the third transport layer connection; and

responsive to the identification and maintaining the source IP address and the destination IP address of the first request of the client, transmits the third request as a fourth request to the server via a fourth transport layer connection between the intermediary device and the server, the intermediary using the client internet protocol (IP) address of the first request as the source IP address of the fourth request, a second port of the intermediary device as the source port of the fourth request and the server IP address of the first request as the destination IP address of the fourth request.

13. The system of claim 12 , wherein the intermediary device modifies the second request to change a destination virtual local area network (VLAN) address of the second request to a VLAN address of the cache server.

14. The system of claim 12 , wherein the intermediary device receives the third request modified by the cache server to change a destination MAC identifier of the third request to a MAC identifier of the intermediary.

15. The system of claim 12 , wherein the intermediary device receives the third request modified by the cache server to change a destination virtual local area network (VLAN) address of the third request to a VLAN address of the intermediary.

16. The system of claim 12 , wherein the intermediary device identifies that the third request is coming from the cache server based on a source virtual area network (VLAN) address of the third request identifying a VLAN address of the cache server.

17. The system of claim 12 , wherein the intermediary device identifies that the third request is coming from the cache server based on a source MAC identifier of the third request identifying the MAC identifier of the cache server.

18. The system of claim 12 , wherein a cache redirector virtual server of the intermediary device identifies that the third request is coming from the cache server.

19. The system of claim 12 , wherein the intermediary device transmits the fourth request to the server identified by the destination server IP address.

20. The system of claim 19 , wherein the intermediary device transmits the fourth request that further comprises a payload of the first request.

21. The system of claim 12 , wherein the intermediary device transmits the fourth request via a fourth transport layer connection established between the intermediary and the server using the client IP address.

22. The system of claim 12 , wherein the cache server transmits the third request without resolving an IP address of the third request using a domain name server.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2010
From: ANNAMALAISAMI, SARAVANAKUMAR; SHETTY, ANIL; SUGANTHI, JOSEPHINE; CHOUDHARY, AKSHAT
To: CITRIX SYSTEMS, INC.
Reel/Frame 024311/0244 →
Continuity (1)
Related Publication 20110153937A1 · Jun 23, 2011