Resources Contact Us Home
Browse by: INVENTOR PATENT HOLDER PATENT NUMBER DATE
 
 
Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
8549149 Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
Patent Drawings:

Inventor: Sundarrajan, et al.
Date Issued: October 1, 2013
Application:
Filed:
Inventors:
Assignee:
Primary Examiner: Moore; Ian N
Assistant Examiner: Chang; Kai
Attorney Or Agent: Foley & Lardner LLPMcKenna; Christopher J.
U.S. Class: 709/227; 370/395.4; 370/395.41; 370/395.42; 370/468; 370/477; 370/493; 709/217; 709/218; 709/219; 709/220; 709/221; 709/222; 709/228; 709/229
Field Of Search: 370/254; 370/255; 370/256; 370/257; 370/258; 370/395.4; 370/395.41; 370/395.42; 370/468; 370/477; 370/493; 709/217; 709/218; 709/219; 709/220; 709/221; 709/222; 709/223; 709/224; 709/225; 709/226; 709/227; 709/228; 709/229; 717/176
International Class: G06F 15/16; G06F 15/177; H04L 12/28; H04J 3/18
U.S Patent Documents:
Foreign Patent Documents: 1394042; 1410905; 0 436 365; 0436365; 0618708; 1 045 553; 1 134 942; 1 427 133; 1 432 209; 07-302237; 08-006910; 2002-532784; 2002-084289; 2004-078783; WO-99/04343; WO-0034885; WO-01/47185; WO-0213037; WO-02/23362; WO-02/39301; WO-02/069604; WO-03/019876; WO-03026244; WO-03/048936; WO-03/083692; WO-2004088933; WO-2004/114529; WO-2005013534; WO-2005/024567; WO-2005/048106; WO-2005088476; WO-2006/005078; WO-2006/012612; WO-2006/020823; WO-2006/074072; WO-2006/075219; WO-2008/112691; WO-2008/112698
Other References: J C. Mogul, "The Case for Persistent-Connection HTTP", 8282 Computer Communication Review 25, Oct. 1995. cited by applicant.
Pedro Hernandez, Tacit Adds to Softricity's Spark, Nov. 18, 2005. Available online at: www.enterpriseitplanet.com/networking/news/article.php/3565401. cited by applicant.
International Search Report, PCT/US2005/047433, mailed on May 3, 2007. cited by applicant.
Written Opinion of the International Searching Authority, PCT/US2005/047433, Jul. 12, 2007. cited by applicant.
International Search Report for PCT/US2007/066433. Mailing date Oct. 31, 2007. cited by applicant.
Biagioni et al., Signature for a network Protocol Stack: A System Application of Standard ML, Jul. 1994. cited by applicant.
Dictionary service [online], [retrieved on Jul. 23, 2009]. Retrieved from the Internet <URL: http://dictionary.reference.com/browse/discard>. cited by applicant.
Doug Allen, Layer-7 Load Balancers Pack New Punch, CMP Media LLC Network Magazine, Sep. 2003. cited by applicant.
Hasegawa et al., "A Mechanism for TCP Performance Enhancement over Assymetrical Environment," Proceedings 8th IEEE ISCC'03, 1530-1346/03, 2003. cited by applicant.
International Search Report for PCT/US2005/047433. mailing date Sep. 8, 2006. 5 pages. cited by applicant.
Ipswitch Inc., WSFTP User's Guide, Chapter 8: Security, Jun. 25, 2003, 8 pages. cited by applicant.
Kong, et al; "Pseudo-serving: a user-responsible paradigm for internet access"; Apr. 7-11, 1997; SO Computer Networks and ISDN Systems; vol. 29; pp. 1053-1064. cited by applicant.
Krishnamurthy B.C. et al., "Key differences between HTTP/1.0 and HTTP/1.1," Computer Networks, Elsevier Science Publishers B.V., vol. 31, No. 11-16, pp. 1737-1751, May 1999. cited by applicant.
Lazenka, M. "The Evolution of Software Distribution: Where Did We Come From and Where Are We Heading?", 2005, ACM, p. 179-183. cited by applicant.
Noriaki Kobayashi, "Internet VPN", N+1 Network Guide, vol. 3, No. 9, Oct. 1, 2003, pp. 44-49. (9 pages) (English Abstract). cited by applicant.
Office Action for CN Appln 200580048867.3 mailed Mar. 11, 2011. cited by applicant.
Office Action for U.S. Appl. No. 11/323,352 mailed Mar. 9, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/323,829 mailed Jun. 18, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/324,138 mailed Aug. 18, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/324,138, mailed Feb. 11, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/324,140 mailed Feb. 4, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/324,140 mailed Aug. 4, 2009. cited by applicant.
Office Action for U.S. Appl. No. 11/324,203 mailed Sep. 1, 2009. cited by applicant.
Office Action on U.S. Appl. No. 11/323,352 dated Nov. 8, 2011. cited by applicant.
Office Action on U.S. Appl. No. 11/323,352 dated Feb. 2, 2011. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Mar. 30, 2011. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Sep. 15, 2011. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Sep. 27, 2010. cited by applicant.
Office Action on U.S. Appl. No. 11/324,138 dated Dec. 22, 2010. cited by applicant.
Office Action on U.S. Appl. No. 11/324,138 dated Jul. 11, 2011. cited by applicant.
Office Action, Chinese Appln 200580048867.3, mailed Sep. 26, 2010. cited by applicant.
Office Action, Chinese Appln No. 200580048867.3, mailed Jan. 26, 2011. cited by applicant.
Official Notification, Israeli Appln 184308, mailed Feb. 7, 2011. cited by applicant.
R. Briscoe, "The Implications of Pervasive Computing on Network Design," BT Technology Journal, pp. 170-190, Jul. 2004. cited by applicant.
Ranzau et al., "Softricity/Tacit, An Innovative Approach to Virtual Computing," http://www.daboc.com/downloadnow.aspx?file=211&is=617, Oct. 20, 2005. cited by applicant.
Teruhara Serada, "SSL VPN", N+1 Network LAN, vol. 21, No. 3, Mar. 1, 2003, pp. 25-40. (19 pages) (English Abstract). cited by applicant.
Notice of Reasons for Rejection, Japanese Application No. 2007-549641, mailed May 17, 2011. cited by applicant.
European Communication on 05855922.0 dated Nov. 24, 2011. cited by applicant.
Expand Networks Accelerators, A Technical Overview. Whitepaper, Expand Networks, Apr. 2004. cited by applicant.
Japanese Office Action on 2007-549641 dated Jan. 17, 2012. cited by applicant.
Japanese Office Action on 2011-178635 dated Oct. 18, 2012. cited by applicant.
Japanese Office Action on 2011-178635 dated Mar. 13, 2013. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Apr. 24, 2013. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Sep. 11, 2012. cited by applicant.
Office Action on U.S. Appl. No. 11/323,352 dated May 9, 2012. cited by applicant.
Office Action on U.S. Appl. No. 11/323,829 dated Apr. 11, 2012. cited by applicant.
Office Action on U.S. Appl. No. 12/874,927 dated Nov. 6, 2012. cited by applicant.
Office Action on U.S. Appl. No. 12/874,927 dated Apr. 24, 2012. cited by applicant.
Yoshikazu Kobayashi, VPN service introduction, Computer & Network LAN, vol. 21, No. 3, Mar. 1, 2003, pp. 25-40. (19 pages) (English Abstract). cited by applicant.
US Office Action in U.S. Appl. No. 12/874,927 DTD Jul. 22, 2013. cited by applicant.









Abstract: The present invention is directed towards systems and methods for dynamically deploying and executing acceleration functionality on a client to improve the performance and delivery of remotely accessed applications. In one embodiment, the client-side acceleration functionality is provided by an acceleration program that performs a transport layer connection multiplexing technique for improving performance of communications and delivery of a remotely-accessed application. The acceleration program establishes a transport layer connection from the client to the server that can be used by multiple applications on the client, or that is otherwise shared among applications of the client. The acceleration program multiplexes requests from one or more applications via the same transport layer connection maintained by the acceleration program. As such, the acceleration program can utilize the idle time of one application in using the transport layer connection to service a request of a second application through the same transport layer connection.
Claim: What is claimed:

1. A method for accelerating on a client access by the client to one or more applications on a server by multiplexing a plurality of application requests via a shared transportlayer connection, the method comprising the steps of: (a) intercepting at a layer below an application layer of a network stack of a client, by an acceleration program on the client, a first request by a first application of the client to access aserver; (b) transmitting, by the acceleration program, the first request via a transport layer connection established between the acceleration program and the server; (c) intercepting at the layer below the application layer, by the accelerationprogram, a second request by a second application of the client to access the server; (d) determining, by the acceleration program, that the established transport layer connection is not currently in use by the first application based on expiration of apredetermined period of time without communication by the first application; and (e) transmitting, by the acceleration program, the second request via the established transport layer connection used by the first application, responsive to thedetermination that the established transport layer connection is not currently in use by the first application.

2. The method of claim 1, further comprising transmitting, by the acceleration program, the second request upon receiving a response to the request of the first application from the server.

3. The method of claim 1, wherein step (d) further comprises: determining, by the acceleration program, that the established transport layer connection is currently in use by the first application; waiting, by the acceleration program andresponsive to determining that the established transport layer connection is currently in use by the first application, the predetermined period of time; and determining, by the acceleration program, responsive to the expiration of the predeterminedperiod of time, that the established transport layer connection is not currently in use by the first application.

4. The method of claim 1, further comprising determining, by the acceleration program, the first application is not currently using the transport layer connection by comparing a number of bytes transmitted by the first application to the serverwith a number of bytes acknowledged by the server, and wherein a protocol of the transport layer connection provides for acknowledging receipt of bytes.

5. The method of claim 1, further comprising determining, by the acceleration program, the first application is not currently using the transport layer connection by checking a length of message identifier in a message between the client andthe server.

6. The method of claim 1, further comprising multiplexing, by the acceleration program, requests from a plurality of applications on the client via the transport layer connection.

7. The method of claim 1, further comprising pooling, by the acceleration program, a plurality of transport layer connections to the server for use by a plurality of applications of the client.

8. The method of claim 1, further comprising transmitting, by an appliance, the acceleration program to the client upon a request from the client to establish a connection to the server.

9. The method of claim 1, further comprising upon receipt of the acceleration program, automatically installing and executing, by the client, the acceleration program.

10. The method of claim 1, wherein the acceleration program further comprises a filter device driver interfaced to a transport layer of a network stack of the client.

11. The method of claim 1, further comprising performing, by the acceleration program, one of the following acceleration techniques: compression; decompression; Transport Control Protocol buffering; and caching.

12. The method of claim 1, further comprising performing, by the acceleration program, one of encryption or decryption of communications between the client and the server.

13. The method of claim 1, further comprising closing, by the acceleration program, the transport layer connection upon receipt of one of a reset or finish command for the first application and the second application.

14. The method of claim 1, wherein step (b) further comprises establishing the transport layer connection between the acceleration program and an appliance, the appliance in communications with the server.

15. The method of claim 14, further comprising establishing, by the appliance, a pool of one or more transport layer connections for use by the acceleration program.

16. The method of claim 14, further comprising multiplexing, by the appliance, via the pool of one or more transport layer connections a plurality of communications between the acceleration program and the server.

17. The method of claim 1, further comprising executing, by the client, the acceleration program, transparently to one of a network layer, a session layer, or an application layer of a network stack of the client.

18. The method of claim 1, further comprising executing, by the client, the acceleration program, transparently to one of the first application, the second application, or the server.

19. A system for accelerating on a client access by the client to one or more applications on a server by multiplexing a plurality of application requests via a shared transport layer connection, the system comprising: means for intercepting ata layer below an application layer of a network stack of a client, by an acceleration program on the client, a first request by a first application of the client to access a server; means for transmitting, by the acceleration program, the first requestvia a transport layer connection established between the acceleration program and the server; means for intercepting at the layer below the application layer, by the acceleration program, a second request by a second application of the client to accessthe server; means for determining, by the acceleration program, that the established transport layer connection is not currently in use by the first application based on comparing a number of bytes transmitted by the first application to the server witha number of bytes acknowledged by the server; and means for transmitting, by the acceleration program, the second request via the established transport layer connection used by the first application, responsive to the determination that the establishedtransport layer connection is not currently in use by the first application.

20. The system of claim 19, further comprising means for transmitting, by the acceleration program, the second request upon receiving a response to the request of the first application from the server.

21. The system of claim 19, further comprising means for determining, by the acceleration program, that the established transport layer connection is currently in use by the first application; means for waiting, by the acceleration program andresponsive to determining that the established transport layer connection is currently in use by the first application, a predetermined period of time; and means for determining, by the acceleration program, responsive to the expiration of thepredetermined period of time, that the established transport layer connection is not currently in use by the first application.

22. The system of claim 19, further comprising means for determining, by the acceleration program, the first application is not currently using the transport layer connection by comparing the number of bytes transmitted by the first applicationto the server with the number of bytes acknowledged by the server, and wherein a protocol of the transport layer connection provides for acknowledging receipt of bytes.

23. The system of claim 22, further comprising means for determining, by the acceleration program, the first application is not currently using the transport layer connection by checking a length of message identifier in a message between theclient and the server.

24. The system of claim 19, further comprising means for multiplexing, by the acceleration program, requests from a plurality of applications on the client via the transport layer connection.

25. The system of claim 19, further comprising means for pooling, by the acceleration program, a plurality of transport layer connections to the server for use by a plurality of applications.

26. The system of claim 19, further comprising an appliance transmitting the acceleration program to the client upon a request from the client to establish one of a connection or a session to the server.

27. The system of claim 19, further comprising the client automatically installing and executing the acceleration program upon receipt of the acceleration program.

28. The system of claim 19, wherein the acceleration program further comprises a filter device driver interfaced to a transport layer of a network stack of the client.

29. The system of claim 19, wherein the acceleration program performs on the client one of the following acceleration techniques: compression; decompression; Transport Control Protocol buffering; and caching.

30. The system of claim 19, wherein the acceleration program performs one of encryption or decryption of communications between the client and the server.

31. The system of claim 19, further comprising means for closing, by the acceleration program, the transport layer connection upon receipt of one of a reset or finish command for one of the first application and the second application.

32. The system of claim 19, further comprising means for establishing the transport layer connection between the acceleration program and an appliance, the appliance in communications with the server.

33. The system of claim 32, wherein the appliance comprises a pool of one or more transport layer connections for use by the acceleration program.

34. The system of claim 33, wherein the appliance multiplexes via the pool of one or more transport layer connections a plurality of communications between the acceleration program and the server.

35. The system of claim 19, wherein the client executes the acceleration program transparently to one of a network layer, a session layer, or an application layer of a network stack of the client.

36. The system of claim 19, wherein the client executes the acceleration program transparently to one of the first application, the second application, or the server.
Description:
 
 
  Recently Added Patents
Random access point (RAP) formation using intra refreshing technique in video coding
(4933
Battery module
Data latch circuit and electronic device
Sports helmet
Manufacturing aircraft parts
Charging seat having cleaning member
  Randomly Featured Patents
Cheese-producing textile machine
Wire tool system and method
Framework, particularly for folding cots
Gas sensor and method for controlling gas sensor
Detachable child safety seat
Compact pressure gauge
Mechanism for preventing snow from sliding off roofs
Chair
Adaptive, portable, multi-sensory aid for the disabled
Polymerizable liquid crystal compound, polymerizable liquid crystal composition, liquid crystalline polymer, and optical anisotropic article