IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0685131
(2007-03-12)
|
등록번호 |
US-8103783
(2012-01-24)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
26 인용 특허 :
227 |
초록
▼
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compressio
The present solution provides a variety of techniques for accelerating and optimizing network traffic, such as HTTP based network traffic. The solution described herein provides techniques in the areas of proxy caching, protocol acceleration, domain name resolution acceleration as well as compression improvements. In some cases, the present solution provides various prefetching and/or prefreshening techniques to improve intermediary or proxy caching, such as HTTP proxy caching. In other cases, the present solution provides techniques for accelerating a protocol by improving the efficiency of obtaining and servicing data from an originating server to server to clients. In another cases, the present solution accelerates domain name resolution more quickly. As every HTTP access starts with a URL that includes a hostname that must be resolved via domain name resolution into an IP address, the present solution helps accelerate HTTP access. In some cases, the present solution improves compression techniques by prefetching non-cacheable and cacheable content to use for compressing network traffic, such as HTTP. The acceleration and optimization techniques described herein may be deployed on the client as a client agent or as part of a browser, as well as on any type and form of intermediary device, such as an appliance, proxying device or any type of interception caching and/or proxying device.
대표청구항
▼
1. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising: (a) receiving, by a device intermediary to a client and a server, a request from the client for an object from
1. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising: (a) receiving, by a device intermediary to a client and a server, a request from the client for an object from the server via a session communicated traversing the device over a transport layer connection between the client and the server;(b) determining, by the device, that the object of the request is stored in a cache of the device;(c) forwarding, by the device, the same request from the client for the object to the server via the session between the client and the server;(d) deferring, by the device, serving the object from the cache to the client until the device receives via the session a response to the request for the object to the client from the server indicating that the server is transmitting the object to the client;(e) detecting, by the device, from a portion of a response received from the server via the session that the server is transmitting the object to the client via the device in response to the request for the object forwarded by the device;(f) determining, by the device, to serve the object from the cache to the client based on the detection; and(g) serving, by the device, via the session the object from the cache instead of the object currently being received by the device. 2. The method of claim 1, wherein step (f) comprises determining, by the device, from the received response that the server would provide the object to the client. 3. The method of claim 1, wherein step (f) comprises determining, by the device, from the received response that the server authorizes one of the client or user of the client to receive the object. 4. The method of claim 1, wherein step (f) comprises determining, by the device, from the received response that the server is one of available or able to serve the object to the client. 5. The method of claim 1, wherein step (f) comprises determining, by the device, the server is transmitting the object to the client. 6. The method of claim 1, wherein step (d) comprises deferring, by the device, serving the object from the cache until determining the server has transferred the object to the client at least once. 7. The method of claim 1, wherein step (f) comprises determining, by the device, from the received response that the server would not provide the object to the client, and in response to the determination, not serving the object from the cache. 8. The method of claim 7, comprising determining, by the device, from the received response that the server does not authorize one of the client or user of the client to receive the object, and in response to the determination, not serving the object from the cache. 9. The method of claim 7, comprising determining, by the device, from the received response that the server requires authentication of one of a user of the client, and in response to the determination, not serving the object from the cache. 10. The method of claim 1, wherein step (f) comprises determining, by the device, from the received response that the server is one of not available or not able to provide the object to the client, and in response to the determination, not serving the object from the cache. 11. The method of claim 1, wherein the device comprises a proxy transparent to the client and the server. 12. The method of claim 1, wherein the device comprises one of a client or an appliance. 13. An appliance for providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the appliance comprising: means for receiving, by an appliance intermediary to a client and a server, a request from the client for an object from the server via a session communicated traversing the appliance over a transport layer connection between the client and the server;means for determining, by the appliance, that the object of the request is stored in a cache of the appliance;means for forwarding, by the appliance, the same request from the client for the object to the server via the session between the client and the server;means for deferring, by the appliance serving the object from the cache to the client until the device receives via the session a response to the request to the client for the object from the server indicating that the server is transmitting the object to the client;means for detecting, by the appliance, from a portion of the response received from the server via the session that the server is transmitting the object to the client in response to the request for the object forwarded by the device; andmeans for determining, by the appliance, to serve the object from the cache based on the response received from the server; andmeans for serving, by the appliance, via the session the object from the cache instead of the object currently being received by the appliance. 14. The appliance of claim 13, wherein the appliance determines from the received response that the server would provide the object to the client. 15. The appliance of claim 13, wherein the appliance determines from the received response that the server authorizes one of the client or user of the client to receive the object. 16. The appliance of claim 13, wherein the appliance determines from the received response that the server is one of available or able to serve the object to the client. 17. The appliance of claim 13, wherein the appliance determines the server is transmitting the object to the client. 18. The appliance of claim 13, wherein the appliance defers serving the object from the cache until determining the server has transferred the object to the client at least once. 19. The appliance of claim 13, wherein the appliance determines from the received response that the server would not provide the object to the client, and in response to the determination, not serving the object from the cache. 20. The appliance of claim 19, wherein the appliance determines from the received response that the server does not authorize one of the client or user of the client to receive the object, and in response to the determination, not serving the object from the cache. 21. The appliance of claim 20, wherein the appliance determines from the received response that the server requires authentication of one of a user of the client, and in response to the determination, not serving the object from the cache. 22. The appliance of claim 13, where the appliance determines from the received response that the server is one of not available or not able to provide the object to the client, and in response to the determination, not serving the object from the cache. 23. The appliance of claim 13, wherein the appliance comprises a proxy transparent to the client and the server. 24. A method of providing security or reliability to proxying a connection between a client and a server, the method comprising the steps of: (a) forwarding, by a device intermediary to a client and a server, to the server a transport layer connection request received via the device from the client to the server;(b) deferring, by the device, acceptance of the transport layer connection as a connection to proxy between the client and the server until receiving a response from the server to the transport layer connection request of the client;(c) identifying, by the device, that the server accepts the transport layer connection of the client based on a response, received by the device from the server to the transport layer connection request, the response comprising a SYN-ACK packet; and(d) determining, by the device, to proxy the transport layer connection between the client and the server in response to identifying that the server accepts the transport layer connection of the client. 25. The method of claim 24, wherein step (a) comprises receiving, by the device, a SYN packet of the transport control protocol connection request of the client, and forwarding the intercepted SYN packet to the server. 26. The method of claim 24, wherein step (c) comprises receiving, by the device, a SYN-ACK packet as the response from the server to the client's transport control protocol connection request. 27. The method of claim 24, wherein the device is constructed to perform one or more acceleration techniques on the transport layer connection. 28. The method of claim 27, comprising performing, by the device, an acceleration technique on the transport layer connection in response to the determination of step (d). 29. The method of claim 24, comprising identifying, by the device, the server does not accept the transport layer connection request, and determining, by the device, to not accept the transport layer connection as a connection to proxy. 30. The method of claim 24, comprising identifying, by the device, the server is one of unavailable or unable to establish the transport layer connection, and determining, by the appliance, to not to proxy the transport layer connection. 31. The method of claim 30, comprising deferring, by the device, acceptance of the transport layer connection until receiving an indication that the server is one of available or able to establish the transport layer connection. 32. The method of claim 24, comprising identifying, by the device, the server does not authorize the client to establish a transport layer connection with the server, and determining, by the appliance, to not accept the transport layer connection as a connection to proxy. 33. The method of claim 24, comprising identifying, by the device, the server requires authentication to establish a transport layer connection with the server, and deferring, by the appliance, accepting the transport layer connection as a connection to proxy until receiving an indication from the server a user of the client is authenticated. 34. The method of claim 24, comprising deferring, by the device, proxying the transport layer connection between the client and server until the server successfully transfers an object to the client. 35. The method of claim 24, wherein the device comprises a proxy transparent to the client and the server. 36. The method of claim 24, wherein the device comprises one of the client or an appliance. 37. An appliance providing security or reliability to proxying a connection between a client and a server, the appliance comprising: means for forwarding to a server a transport layer connection request received via the appliance from a client to a server;means for deferring acceptance of the transport layer connection as a connection to proxy between the client and the server until receiving a response from the server to the transport layer connection request of the client;means for identifying that the server accepts the transport layer connection of the client based on a received response comprising a SYN-ACK packet from the server to the transport layer connection request; andmeans for determining to proxy the transport layer connection between the client and the server in response to identifying that the server accepts the transport layer connection of the client. 38. The appliance of claim 37, wherein the appliance receives a SYN packet of the transport control protocol connection request of the client, and forwarding the intercepted SYN packet to the server. 39. The appliance of claim 38, wherein the appliance receives a SYN-ACK packet as the response from the server to the client's transport control protocol connection request. 40. The appliance of claim 37, wherein the appliance is constructed to perform one or more acceleration techniques on the transport layer connection. 41. The appliance of claim 40, wherein the appliance performs an acceleration technique on the transport layer connection in response to the determination. 42. The appliance of claim 37, wherein the appliance identifies the server does not accept the transport layer connection request, and determining, by the appliance, to not accept the transport layer connection as a connection to proxy. 43. The appliance of claim 37, wherein the appliance identifies the server is one of unavailable or unable to establish the transport layer connection, and determining, by the appliance, to not to proxy the transport layer connection. 44. The appliance of claim 43, wherein the appliance defers acceptances of the transport layer connection with the client as a connection to proxy until receiving an indication that the server is one of available or able to establish the transport layer connection. 45. The appliance of claim 37, wherein the appliance identifies the server does not authorize the client to establish a transport layer connection with the server, and determining, by the appliance, to not accept the transport layer connection as a connection to proxy. 46. The appliance of claim 37, wherein the appliance identifies the server requires authentication to establish a transport layer connection with the server, and deferring, by the appliance, accepting the transport layer connection as a connection to proxy until receiving an indication from the server a user of the client is authenticated. 47. The appliance of claim 37, wherein the appliance defers proxying the transport layer connection between the client and server until the server successfully transfers an object to the client. 48. A method of providing security or reliability to serving cached objects for a session communicated via a transport layer connection between a client and a server, the method comprising: (a) receiving, by a device intermediary to a client and a server, a client's request for an object of the server via a session communicated traversing the device over a transport layer connection between the client and the server;(b) determining, by the device, that the object is stored in a cache;(c) forwarding, by the device, via the session the client's request for the object to the server;(d) deferring, by the device, serving the object to the client from the cache until the device receives via the session a response indicating that the server is serving the object to the client responsive to the client's request for the object;(e) detecting, by the device, from a portion of a response from the server via the session that the server is transmitting the object to the client in response to the client's request for the object;(f) determining, by the device based on the detection, to serve the object from the cache to the client responsive to the client's request; and(g) serving, by the device, via the session the object from the cache instead of the object being served from the server.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.