US6725272B1 - Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time - Google Patents
Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time Download PDFInfo
- Publication number
- US6725272B1 US6725272B1 US09/506,747 US50674700A US6725272B1 US 6725272 B1 US6725272 B1 US 6725272B1 US 50674700 A US50674700 A US 50674700A US 6725272 B1 US6725272 B1 US 6725272B1
- Authority
- US
- United States
- Prior art keywords
- client
- hold
- server
- interface unit
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000004044 response Effects 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004590 computer program Methods 0.000 title abstract description 13
- 230000009977 dual effect Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 238000011176 pooling Methods 0.000 description 7
- 238000013515 script Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 230000014616 translation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Definitions
- the present invention relates generally to Internet client-server applications, and more specifically to guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server.
- the Internet is a world-wide set of interconnected computer networks that can be used to access a growing amount and variety of information electronically.
- FIG. 1 is a network block diagram showing a plurality of clients and servers connected to the Internet.
- a client When a client specifies a URL, a part of the URL known as the Domain Name is passed to a domain server (DNS) to be translated to a network address.
- DNS domain server
- IP Internet protocol
- the client request is passed to the requested server having the network address.
- This process of how the client request eventually arrives at the requested server is operating in virtual IP mode. In this mode, the address of the requested server is never published and thus not accessible to the client.
- the server uses the path name in the URL to locate the web page requested by the client. A copy of the web page is then sent to the client for viewing by the user.
- a second mode called standard mode, will be briefly described next.
- the actual address of the requested server is published.
- the client's specified URL does not include the Domain Name. Therefore, the request does not go through the DNS to eventually arrive at the requested server.
- a problem is unacceptable server response time when too many clients are requesting a page from the same server. In fact, when this number of clients (i.e., users) exceeds a certain threshold, often times the result is a server failure or crash.
- a computer crash means that the computer itself stops working or that a program aborts unexpectedly.
- a crash signifies either a hardware malfunction or a very serious software bug.
- the owner of the server may lose business. This loss of business is detrimental to a business person who mainly conducts his or her business on the Internet.
- Multitasking which is well known in the relevant art(s), is the ability to execute more than one task (e.g., URL or page request) at the same time.
- CPU central processing unit
- multitasking only one central processing unit (CPU) is involved, but it switches from one task to another so quickly that it attempts to give the appearance of executing all of the tasks at the same time.
- preemptive multitasking the operating system parcels out CPU time slices to each task.
- cooperative multitasking each task can control the CPU for as long as it needs it. If a task is not using the CPU, however, it can allow another task to use it temporarily.
- OS/2, Windows 95, Windows NT, the Amiga operating system and UNIX use preemptive multitasking
- Microsoft Windows 3.x and the MultiFinder for Macintosh computers
- the response time to URL (page) requests increases as the number of requests increases. Under certain load conditions, these page requests can represent a considerable overhead, consuming a large percentage of the server's processing resources. What is needed is a way of guaranteeing the response time to a client's page request at a particular server (or web site), and thereby avoid wasting valuable server CUP time and crashes. In addition, what is needed is a way of providing alternative information to the user (via the client) when the server containing the desired page is not available. By providing alternative information to the user it helps to not only generate possible related business but also redirects the user back to the desired page once the server is free.
- the present invention is an apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server.
- the present invention is implemented within an interface unit connecting a plurality of servers to the Internet, which is in turn connected to a plurality of clients and on-hold server(s).
- the method includes the steps of opening a connection between a client land the interface unit; determining which server the client desires a page from; determining the current response time of the requested server; if the response time is acceptable then opening a connection between the interface unit and the requested server if no free connection is open between the interface unit and the requested server; allowing the client to access information on the requested server via the connections; and closing the connection between the client and the interface unit while keeping open the connection between the interface unit and the requested server.
- the response time is not acceptable, then putting the client on-hold by redirecting the client to an on-hold server until the response time of the requested server becomes acceptable.
- each server instead of utilizing the interface unit, each server has the intelligence to put the client on-hold when applicable.
- the interface unit determines the on-hold preference of the client and selects the server hosting that on-hold preference.
- One advantage of the present invention is that it guarantees a response time to a client once the client is allowed to access the requested server.
- Another advantage of the present invention is that it eliminates one reason for server crashes, too many page requests at the same time.
- Yet another advantage of the present invention is that it temporarily puts a client on-hold, and once the requested server is ready to service the client, redirects the client back to the requested server. Putting the client on-hold both helps to generate additional business from the client on other servers and ensures that the client will be eventually redirected back to the requested server.
- Another advantage of the present invention is that clients who use the present on-hold invention will be given preferential access over non-clients when attempting to gain access to the requested server (in the case where both clients and non-clients of the present invention can request a web page or content from the requested server).
- Another advantage of the present invention is that it provides the flexibility to a user (via the client) to specify his or her on-hold preference through use of a technique referred to herein as “on-hold distribution.”
- FIG. 1 is a network block diagram showing a plurality of clients and servers connected to the Internet;
- FIG. 2 is a network context diagram for an interface unit and on-hold server(s) according to a preferred embodiment of the present invention
- FIG. 3 is a flowchart illustrating the high level operation of the present invention according to a preferred embodiment
- FIG. 4A is a detailed flowchart illustrating the on-hold aspect of the present invention according to a preferred embodiment
- FIG. 4B is a more detailed flowchart illustrating the on-hold aspect of the present invention according to another embodiment
- FIG. 5 is a detailed flowchart illustrating howl the present invention determines whether the client is read to be taken off on-hold according to a preferred embodiment
- FIG. 6 is a flowchart depicting the operation of the present invention in translating client and server requests to achieve connection multiplexing
- FIG. 7 is a message flow diagram illustrating the on-hold aspect of the present invention according to a preferred embodiment
- FIG. 8 is a detailed flow diagram illustrating the translations of acknowledgment and sequence numbers performed by the present invention in the example of FIG. 7 according to a preferred embodiment
- FIG. 9 depicts an example computer system in which the present invention can be implemented.
- FIG. 10 is a network context diagram where each server has the intelligence of the interface unit to put a client on-hold and has its own on-hold server according to an embodiment of the present invention.
- the present invention is an apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server.
- FIG. 2 is a network context diagram for an interface unit 202 and an on-hold server(s) 204 according to a preferred embodiment of the present invention.
- interface unit 202 is an intelligent network interface card with a CPU inside a server.
- Interface unit 202 can also be intelligent box sitting outside the server, in which case it can serve more than one server.
- Interface unit 202 can also be a load balancer, bandwidth manager firewall, proxy-cache, router, switch, computer system, or any other network device that is located between a client and server.
- on-hold server 204 represents the world's largest web site. Users (via clients) are temporarily redirected to on-hold server 204 when their requested server is too busy to accommodate their page requests.
- On-hold server(s) 204 may be physically located within interface unit 202 , may be an independent server directly connected to interface unit 202 or may be an independent server located anywhere on the Internet.
- a plurality of clients C 1 , C 2 , C 3 are coupled to the Internet.
- a plurality of servers S 1 , S 2 , S 3 , and on-hold server 204 are coupled to the Internet by interface unit 202 (or alternatively, on-hold server 204 may be located anywhere on the Internet).
- Servers S 1 , S 2 , S 3 are collectively referred to as a “server farm.”
- On-hold server 204 may be a single server or a plurality of servers. In a preferred embodiment of the present invention, all Internet traffic with the server farm passes through interface unit 202 .
- each server may have its own on-hold server and the intelligence to put the client on-hold when applicable, as described below with reference to FIG. 10 .
- the present invention is described in terms of the Internet, the concepts described also apply to other types of networks, as will be apparent to one skilled in the relevant art.
- Interface unit 202 relieves servers S 1 , S 2 , S 3 of much of the processing load caused by repeatedly opening and closing connections to clients by opening one or more connections with each server and maintaining these connections to allow repeated data accesses by clients via the Internet.
- This technique is referred to herein as “connection pooling.”
- Interface unit 202 also transparently splices connections from servers and clients using a technique referred to herein as “connection multiplexing.” The techniques of “connection pooling” and “connection multiplexing” are described in detail in related pending application Ser. No. 09/188,709, filed Nov. 10, 1998, titled “Internet Client-Server Multiplexer,” incorporated herein by reference in its entirety.
- FIG. 3 is a flowchart illustrating the operation of the present invention with respect to the network client-server guaranteed response time and on-hold aspects of the present invention according to a preferred embodiment.
- FIG. 3 incorporates the “connection pooling” and “connection multiplexing” techniques mentioned above.
- interface unit 202 may operate in either virtual IP and/or standard mode. When operating in virtual IP mode, the process begins when a client requests access to one of the servers in the server farm (herein referred to as the “requested server”) tended by interface unit 202 . A connection is opened between interface unit 202 and the requesting client, and interface unit 202 receives the client request to access the requested server, as shown in step 302 . (Note that in standard mode, the client request would not be addressed to interface unit 202 .)
- Interface unit 202 determines the identity of the requested server as shown in step 304 . In one embodiment, this is accomplished by examining the destination network address specified by the client request. In another embodiment, this is accomplished by examining the network address and path name specified by the client request. After determining the identity of the server to which the client request should be directed, interface unit 202 utilizes the “connection pooling” technique by determining whether a free connection (that is, one that is not in use) to the requested server is already open. If not, interface unit 202 opens a connection to the server.
- interface unit 202 estimates the current response time of the requested server.
- the current response time of the requested server is estimated by interface unit 202 by using actual past response times as described next.
- other techniques for determining the response time can be used as should be readily apparent to one skilled in the art.
- Let t i denote the response time at the i th episode (i.e., actual past response time).
- t 1 denote the estimated response time at the ith episode.
- the response time is estimated by the following recurrence relation:
- t (i+1) ' ((( i ⁇ 1)*( t i ⁇ 1)+( t i *i ))/(2 i ⁇ 1))+( t i ' ⁇ t i )* K , where K is a constant of error correction.
- the coefficient K is learned from the on-going traffic beginning with constant, and proceeding to liner, polynomial exponential changes in the error value.
- the estimated response time characteristic assumes the actual response time.
- the constant is selected so as to under-estimate the response time characteristic so as to ensure the user expectations.
- the time is measured as the time for completing an HTTP GET transaction.
- Another embodiment is to measure the time normalized by the number of bytes transferred.
- the response time for the plurality of the servers connected to interface unit 202 is computed as the minimum of the response time of the servers behind it when access is through a load balancer, or on a per server basis.
- the estimated current response time is then compared to a threshold value in step 308 .
- the threshold value represents the maximum response time allowed for the current client (i.e., user) to gain access to the requested server.
- the threshold value is configurable by each server in the server farm and therefore each server may have a different guaranteed response time. For example, a particular server may decide that it can service 75,000 requests with a quick response time, and up to 100,000 requests with an acceptable response time. If the server cannot provide the acceptable response time, then interface unit 202 is directed to put its clients on-hold. Thus, if the response time is greater than the threshold value, then control passes to step 310 . If control passes to step 310 , the client gets put on-hold. Alternatively, control passes to step 314 , and the client is never put on-hold.
- Interface unit 202 puts the client on-hold, as shown in step 310 , and as more fully described with respect to FIG. 4 A and FIG. 4B, below. While the client is on-hold there is no limit to the types of information that can be provided to the client by the present invention, including music, sports, news and so forth. It is important to note that there may be one or more on-hold servers 204 utilized by the present invention that the client may be directed to. In the case of having multiple on-hold servers 204 to chose from, the present invention may use various factors in determining which on-hold server 204 to direct the client to. These factors may include such things as client IP address, type of request and on-hold server 204 load. Hence, on-hold service may be a distributed service.
- An on-hold portal by definition should relinquish control to the request controller. This control switching is initiated by client-side intelligence (Java Applets/Scripts), interface memory (where the interface remembers the held requests) and on-hold server 204 initiated re-direction.
- client-side intelligence Java Applets/Scripts
- interface memory where the interface remembers the held requests
- on-hold server 204 initiated re-direction.
- the re-direction can be at the IP level or at the HTTP level.
- step 312 it is determined whether the client is ready to be taken off on-hold. Whether the client is ready to be taken off on-hold depends on several factors as described in detail with respect to FIG. 5, below. If the client is ready to be taken off on-hold, then control passes to step 314 . Alternatively, control passes to step 310 and the client remains on-hold.
- Interface unit 202 then translates the client request and passes it to the requested server, as shown in step 314 , and as more fully described with respect to FIG. 6, below.
- interface unit 202 receives a response from the requested server, as shown in step 316 .
- the server response is translated and passed to the requesting client, as shown in step 318 , and described further below.
- interface unit 202 closes the connection with the client as shown in step 320 , and the flowchart in FIG. 3 ends.
- the connection pooling” and “connection multiplexing” techniques referenced above the connection between interface unit 202 and the requested server is not disconnected.
- interface unit 202 frees the servers of nearly all of the connection loading problems associated with serving clients over the Internet.
- FIG. 4A is a flowchart depicting the operation of the present invention in putting the client on-hold, as shown in step 310 .
- interface unit 202 determines the approximate waiting time for the client and delegates to the Java Applet/Script on the on-hold page.
- the Java Applet/Script corrects for the Round Trip Time (due to differing network latencies).
- the applet displays this corrected waiting time which is a weighted sum of the response time given by the interface unit and the network latency computed by the applet.
- Other factors that could be taken into consideration when calculating the waiting time includes the estimated current response time of the requested server, the number of other clients already on-hold for the requested server and so forth.
- One embodiment of the present invention allows a web site that maintains multiple servers to provide the user (via the client) with the flexibility to specify his or her on-hold preference through the use of a “on-hold distribution” technique. This technique is described in detail below with reference to FIG. 4 B.
- interface unit 202 determines the on-hold request to be sent to on-hold server 204 , in step 404 .
- on-hold server 204 in theory represents the world's largest web site. Here, different contents (i.e., web pages) are designed to be available based on the different waiting times.
- interface unit 202 determines a web page associated with an initial on-hold request.
- the initial on-hold request can be either a default request or a client-customized request.
- the initial request is a default request for all clients who have not been redirected to on-hold server previously by the present invention.
- Both default and customized requests return web pages containing a Java Applet/Script or other code (implemented by any browser programming language).
- the Java Applet/Script allows the user (via the client) to request additional web pages from on-hold server 204 and also to customize the user's initial on-hold request for use in the future.
- the customization of an initial on-hold request allows the user to configure the type of information (or category) to be sent to the client for display when the user is put on-hold by the present invention.
- the customization is achieved by returning to the user a dual framed/multi-window web (or HTML) page.
- the first frame/window acts as a controller of the second frame/window.
- the second frame/window displays the medium transmitted to the user while on-hold.
- the first frame/window is also used to allow users to configure the contents of the second frame/window by selecting one or more categories.
- Interface unit 202 then translates the initial on-hold request and passes it to on-hold server 204 , as shown in step 406 .
- interface unit 202 receives a response from on-hold server 204 , as shown in step 408 .
- the on-hold server response is translated and passed to the requesting client, as shown in step 410 , and the flowchart in FIG. 4A ends.
- FIG. 4B is a flowchart depicting the on-hold operation of the present invention incorporating the “on-hold distribution” technique, and thus a more detail description of putting the client on-hold, as shown in step 310 .
- interface unit 202 determines the client's on-hold preference.
- a web site owner who wants to provide flexibility to their clients in terms of response time may use several servers to support the web site. Each server will have a different threshold value controlling the response time the client will experience while being serviced by that particular server. Therefore, the shorter the response time, the longer a client is put on-hold by the present invention. For example, a client may desire to have a very quick response time and thus prefer to be put on-hold until they can be guaranteed the quick response time. Other clients may prefer to not be put on-hold at all (or be put on-hold for the shortest amount of time) and thus deal with a slower response time.
- the present invention provides flexibility to the client by allowing a client to specify his or her preferred wait time.
- interface unit 202 determines the client's (i.e., user's) on-hold preference.
- the present invention displays options to the user (via the client) for being put on-hold.
- interface unit 202 determines the preferred requested server, as indicated by step 414 .
- interface unit 202 determines the approximate waiting time for the client and displays the approximate waiting time to the client.
- the approximate waiting time could be a factor of several variables, including the estimated current response time of the requested server, the number of other clients already on-hold for the requested server and so forth.
- interface unit 202 determines the on-hold request to be sent to on-hold server 204 , in step 418 . Again, different contents (i.e., web pages) are designed to be available based on the different waiting times.
- interface unit 202 determines a web page associated with an initial on-hold request, as described above.
- Interface unit 202 then translates the initial on-hold request and passes it to on-hold server 204 , as shown in step 420 .
- interface unit 202 receives a response from on-hold server 204 , as shown in step 422 .
- the on-hold server response is translated and passed to the requesting client, as shown in step 424 , and the flowchart in FIG. 4B ends.
- FIG. 5 is a flowchart depicting the operation of the present invention in determining whether the client is ready to be taken off on-hold, as shown in step 312 , according to a preferred embodiment.
- interface unit 202 estimates the current response time of the requested server, as described above with reference to FIG. 3 . Note that the estimated current response time changes dynamically as clients are serviced. The estimated current response time is then compared to the threshold value in step 504 . The value of the threshold in FIG. 5 is the same as the value of the threshold in FIG. 3 . If the response time is greater than the threshold value, then control passes to step 509 . If control passes to step 509 , the client remains on-hold. Alternatively, control passes to step 506 .
- step 506 it is determined whether the client is next to be serviced by the requested server. Therefore, even if the estimated current response time of a server indicates the server can process another request, there may be more than one client request to be processed. Requests can be processed in various ways, including: first in, first out (FIFO); assigned priorities; last in, first out (LIFO)and so forth. If the client is next to be serviced by the requested server, then control passes to step 508 . Alternatively, control passes to 509 , where the client remains on-hold.
- FIFO first in, first out
- LIFO last in, first out
- interface unit 202 determines whether the user (via the client) is finished with on-hold server 204 . For example, the user may want to finish with the page recently received from on-hold server 204 . Here, if the user is not finished with on-hold server 204 , another request may be serviced prior to the user's request, therefore keeping the user on-hold. If the user indicates to interface unit 202 that the user is finished with on-hold server 204 , then control passes to step 324 (FIG. 3 ), where the user is taken off on-hold. Alternatively, interface unit 202 can automatically take the user off on-hold status without any input from the user. Therefore, there are at least two ways to abort the, on-hold service of the present invention including user initiated and system initiated.
- step 509 interface unit 202 determines the approximate waiting time for the client and displays the approximate waiting time to the client.
- the approximate waiting time is a dynamic value which factors in the estimated current response time of the requested server, the number of other clients already on-hold for the requested server and so forth.
- step 510 the user (via the client) is given the opportunity to make another page request to on-hold server 204 .
- Interface unit 202 then translates the on-hold request and passes it to on-hold server 204 , as shown in step 512 .
- interface unit 202 receives a response from on-hold server 204 , as shown in step 514 .
- the on-hold server response is translated and passed to the requesting client for display to the user, as shown in step 516 .
- Control passes to step 502 , where the current response time is again estimated.
- the flowchart FIG. 5 continues until the user is taken off on-hold.
- FIG. 5 continues until the user is taken off on-hold.
- the message traffic is in the form of TCP/IP packets, a protocol suite that is well-known in the art.
- the TCP/IP protocol suite supports many applications, such as Telnet, File Transfer Protocol (FTP), e-mail and Hyper-Text Transfer Protocol (HTTP).
- Telnet Telnet
- FTP File Transfer Protocol
- HTTP Hyper-Text Transfer Protocol
- the present invention is described in terms of the HTTP protocol. However, the concepts of the present invention apply equally well to other TCP/IP applications, as will be apparent to one skilled in the art after reading this specification.
- Each TCP packet includes a TCP header and an IP header.
- the IP header includes a 32-bit source IP address and a 32-bit destination IP address.
- the TCP header includes a 16-bit source port number and a 16-bit destination port number.
- the source IP address and port number collectively referred to as the source network address, uniquely identify the source interface of the packet.
- the destination IP address and port number collectively referred to as the destination network address, uniquely identify the destination interface for the packet.
- the source and destination network addresses of the packet uniquely identify a connection.
- the TCP header also includes a 32-bit sequence number and a 32-bit acknowledgment number.
- the TCP portion of the packet is referred to as a segment.
- a segment includes a TCP header and data.
- the sequence number identifies the byte in the string of data from the sending TCP to the receiving TCP that the first byte of data in the segment represents. Since every byte that is exchanged is numbered, the acknowledgment number contains the next sequence number that the sender of the acknowledgment expects to receive. This is therefore the sequence number plus one of the last successfully received bytes of data.
- the checksum covers the TCP segment, i.e., the TCP header and the TCP data. This is a mandatory field that must be calculated and stored by the sender and then verified by the receiver.
- interface unit 202 In order to successfully route an inbound packet from a client to the intended server, or to route an outbound packet from a server to a client, interface unit 202 employs a process known as “network address translation.” Network address translation is well-known in the art, and is specified by request for comments (RFC) 1631, which can be found at the URL http://www.safety.net/RF700631.txt.
- RRC request for comments
- the present invention also employs the novel translation technique of “connection multiplexing” as described in detail in related pending application Ser. No. 09/188,709, filed Nov. 10, 1998, titled “Internet Client-Server Multiplexer.” According to this technique, the present invention translates a packet by modifying its sequence number and acknowledgment number at the TCP protocol level. A significant advantage of this technique is that no application layer interaction is required.
- the network address of the packet is translated, as shown in step 602 .
- the source network address of the packet is changed to that of an output port of the interface unit and the destination network address is changed to that of the intended server.
- the source network address is changed from that of the server to that of an output port of the interface unit and the destination address is changed from that of the interface unit to that of the requesting client.
- the sequence numbers and acknowledgment numbers of the packet are also translated, as shown in steps 604 and 606 and described in detail below.
- the packet checksum is recalculated to account for these translations, as shown in step 608 .
- FIG. 7 is a message flow diagram illustrating the on-hold aspect of the present invention according to a preferred embodiment.
- FIG. 7 shows interface unit 202 connecting a client 700 to two servers, on-hold server 204 and a requested server 701 .
- on-hold server 204 For this example, it is assumed that connections have previously been opened with on-hold server 204 and requested server 701 , as described in detail in related pending application Ser. No. 09/188,709, filed Nov. 10, 1998, titled “Internet Client-Server Multiplexer.”
- the present invention can be implemented independent of the “connection pooling” and “connection multiplexing” techniques described in the just referenced pending application.
- interface unit 202 opens a connection with client 700 using network address 1 provided by client 700 , as shown by flow 702 . Once the connection is opened, interface unit 202 receives a GET request from client 700 specifying a path name of/sales/forecast.html, as shown by flow line 704 . Assume at this point, interface unit 202 determines that the GET request is for requested server 701 and that the estimated response time for requested server 701 is such that client 700 must be put on-hold.
- Interface unit 202 does not open a further connection with on-hold server 204 .
- Interface unit 202 maps the appropriate GET on-hold request to on-hold server 204 .
- interface unit 202 can include a table that maps each client to that client's customized on-hold request, if applicable, else it can use the default on-hold request.
- Interface unit 202 forwards the GET on-hold request to on-hold server 204 , as shown by flow line 706 .
- On-hold server 204 responds with the requested web page, as shown by flow line 708 .
- Interface unit 202 forwards the web page to client 700 , as shown by flow line 709 .
- interface unit 202 does not close the connection with on-hold server 204 , but rather keeps it open to accommodate further data flows.
- the web page forwarded to client 700 by interface unit 202 contains two frames.
- One of the frames contains the Java Applet/Script which monitors the response time and computes the waiting time.
- the other frame displays the information from on-hold server 204 .
- interface unit 202 determines that client 700 is ready to be taken off on-hold (as described in FIG. 5 ), the GET request from client 700 specifying a path name of /sales/forecast.html is sent or replayed to requested server 701 , as shown by flow line 710 . But, prior to this, client 700 sends a WAKE command to interface unit 202 and interface unit 202 responses back to client 700 , as shown by flow line 718 and 719 , respectively. Next, requested server 701 responds with the requested web page, as shown by flow line 712 . Interface unit 202 forwards the web page to client 700 , as shown by flow line 714 . Finally, interface unit 202 closes the connection with client 700 using network address 1 , as shown by flow line 716 .
- FIG. 8 is a detailed flow diagram illustrating the translations of acknowledgment and sequence numbers performed by the present invention in the example of FIG. 7 (with the exclusion of flows 718 and 719 ) according to a preferred embodiment.
- the flows of FIG. 8 correspond to flows 702 through 716 of FIG. 7 .
- Flows 802 A, B, C correspond to flow 702 and present a method of opening the connection between client 700 and interface unit 202 .
- Client 700 has established a starting sequence number of 999 and an acknowledgment number of 999 .
- Interface unit 202 responds with a SYN ACK segment specifying a starting sequence number of 4999 and incrementing the acknowledgment number to 1000 , as shown by flow 802 B.
- Client 700 responds with an ACU segment specifying a sequence number of 1000 and incrementing the acknowledgment number to 5000 , as shown by flow 802 C.
- Client 700 then sends a GET segment specifying a length of 50 bytes, as shown by flow 804 .
- interface unit 202 determines that the GET request is for requested server 701 and that the estimated current response time for requested server 701 is such that client 700 must be put on-hold.
- interface unit 202 uses that connection rather than opening a new connection.
- Interface unit 202 maps the appropriate GET on-hold request to on-hold server 204 by modifying the sequence and acknowledgment numbers in the GET segment using the sequence and acknowledgment numbers from the previous segment transmitted over that connection.
- those parameters are 2000 and 7000 , respectively.
- the GET segment for the on-hold request has a length of 30 bytes. Accordingly, interface unit 202 forwards the GET segment to on-hold server 204 using sequence number 2000 , acknowledgment number 7000 , and length 30 , as shown by flow line 806 .
- On-hold server 204 responds with the requested data specifying a sequence number of 7000 , an acknowledgment number of 2050 , and a length of 50 , as shown by flow 808 .
- Interface unit 202 receives the RESP segment, translates the sequence and acknowledgment numbers, and forwards the RESP segment to client 700 , as shown by flow line 810 A.
- Client 700 responds with a RESP ACK segment, as shown by flow 810 B.
- Interface unit 202 modifies the acknowledgment and sequence numbers and forwards the RESP ACK segment to on-hold server 204 , as shown by flow 810 C.
- interface unit 202 determines that client 700 is ready to be taken off on-hold (as described in FIG. 5 )
- interface unit 202 replays the initial GET segment from client 700 . Accordingly, because a free connection is already open with requested server 701 , interface unit 202 uses that connection and translates the sequence and acknowledgment parameters of the GET segment using the parameters from the previous segment transmitted over that connection. In this example, assume that those parameters are 3000 and 4000 , respectively. Accordingly, interface unit 202 forwards the GET segment to requested server 701 using sequence number 3000 , acknowledgment number 4000 , and length 50 , as shown by flow line 814 .
- Requested server 701 responds with the requested data specifying a sequence number of 4000 , an acknowledgment number of 3050 , and a length of 400 , as shown by flow 816 .
- Interface unit 202 receives the RESP segment, translates the sequence and acknowledgment numbers, and forwards the RESP segment to client 700 , as shown by flow line 818 A.
- Client 700 responds with a RESP ACK segment, as shown by flow 818 B.
- Interface unit 202 modifies the acknowledgment and sequence numbers and forwards the RESP ACK segment to requested server 701 , as shown by flow 818 C.
- the connection between interface unit 202 and client 700 is closed, as shown in flows 820 A, B, C, D.
- interface unit 202 does not include interface unit 202 , as described above.
- each server incorporates similar intelligence as described above for interface unit 202 and has its own on-hold server, as shown in FIG. 10 .
- the present invention may be implemented using hardware, software or a combination thereof and may be implemented in a computer system or other processing system.
- the invention is directed toward one or more computer systems capable of carrying out the functionality described herein.
- An example computer system 900 is shown in FIG. 9 .
- the computer system 900 includes one or more processors, such as processor 904 .
- the processor 904 is connected to a communication bus 906 .
- Various software embodiments are described in terms of this example computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.
- Computer system 900 also includes a main memory 908 , preferably random access memory (RAM) and can also include a secondary memory 910 .
- the secondary memory 1010 can include, for example, a hard disk drive 912 and/or a removable storage drive 914 , representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc.
- the removable storage drive 914 reads from and/or writes to a removable storage unit 918 in a well known manner.
- Removable storage unit 918 represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 914 .
- the removable storage unit 918 includes a computer usable storage medium having stored therein computer software and/or data.
- secondary memory 910 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 900 .
- Such means can include, for example, a removable storage unit 922 and an interface 920 .
- Examples of such can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 922 and interfaces 920 which allow software and data to be transferred from the removable storage unit 918 to computer system 900 .
- Computer system 900 can also include a communications interface 924 .
- Communications interface 924 allows software and data to be transferred between computer system 900 and external devices.
- Examples of communications interface 924 can include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc.
- Software and data transferred via communications interface 924 are in the form of signals which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface 924 .
- These signals 926 are provided to communications interface via a channel 928 .
- This channel 928 carries signals 926 and can be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
- computer program medium and “computer usable medium” are used to generally refer to media such as removable storage device 918 , a hard disk installed in hard disk drive 912 and signals 926 . These computer program products are means for providing software to computer system 900 .
- Computer programs are stored in main memory 908 and/or secondary memory 910 . Computer programs can also be received via communications interface 924 . Such computer programs, when executed, enable the computer system 900 to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 904 to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system 900 .
- the software may be stored in a computer program product and loaded into computer system 900 using removable storage drive 914 , hard drive 912 or communications interface 924 .
- the control logic when executed by the processor 904 , causes the processor 904 to perform the functions of the invention as described herein.
- the invention is implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs).
- ASICs application specific integrated circuits
- the invention is implemented using a combination of both hardware and software.
- the present invention is described specifically when implemented within an interface unit, such as interface unit 202 , that is connected to servers in a farm for the purpose of offloading connection processing overhead from the servers.
- the present invention can also be applied within other kinds of devices that are in the network connection path between the client and the servers. As network traffic flows through such devices, they all have the opportunity to apply the present invention to offload connection processing.
- Some examples of such devices are:
- Load Balancers which distribute client network connections between a set of servers in a server farm (local or geographically distributed).
- the invention can readily be combined with the load balancing function.
- Bandwidth managers which monitor network traffic and meter packet flow. These devices can also use the present invention.
- Firewalls monitor packets and allow only the authorized packets to flow through.
- the present invention can be used to provide an additional feature within firewalls.
- Routers and switches also lie in the path of the network traffic.
- the industry trend is to integrate additional functionality (such as load balancing, bandwidth management and firewall functionality) within these devices.
- the present invention can easily be incorporated into a router.
- the present invention can also be applied within computer systems which are the end points of network connections.
- add-on cards can be used to implement the invention and thus offload the main processing elements within the computer system.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims (22)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/506,747 US6725272B1 (en) | 2000-02-18 | 2000-02-18 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
PCT/US2001/005233 WO2001061966A1 (en) | 2000-02-18 | 2001-02-16 | Content delivery method using on-hold based on response time |
AU2001238484A AU2001238484A1 (en) | 2000-02-18 | 2001-02-16 | Content delivery method using on-hold based on response time |
US10/826,268 US7836191B2 (en) | 2000-02-18 | 2004-04-19 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US12/880,645 US8812703B2 (en) | 2000-02-18 | 2010-09-13 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/506,747 US6725272B1 (en) | 2000-02-18 | 2000-02-18 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/826,268 Continuation US7836191B2 (en) | 2000-02-18 | 2004-04-19 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
Publications (1)
Publication Number | Publication Date |
---|---|
US6725272B1 true US6725272B1 (en) | 2004-04-20 |
Family
ID=24015860
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/506,747 Expired - Lifetime US6725272B1 (en) | 2000-02-18 | 2000-02-18 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US10/826,268 Expired - Lifetime US7836191B2 (en) | 2000-02-18 | 2004-04-19 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US12/880,645 Expired - Fee Related US8812703B2 (en) | 2000-02-18 | 2010-09-13 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/826,268 Expired - Lifetime US7836191B2 (en) | 2000-02-18 | 2004-04-19 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US12/880,645 Expired - Fee Related US8812703B2 (en) | 2000-02-18 | 2010-09-13 | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
Country Status (3)
Country | Link |
---|---|
US (3) | US6725272B1 (en) |
AU (1) | AU2001238484A1 (en) |
WO (1) | WO2001061966A1 (en) |
Cited By (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020038425A1 (en) * | 2000-09-28 | 2002-03-28 | Kanno Shin-Ichi | Distributed order reception system, reception server, content server, distributed order reception method, and computer program product |
US20020112087A1 (en) * | 2000-12-21 | 2002-08-15 | Berg Mitchell T. | Method and system for establishing a data structure of a connection with a client |
US20020112085A1 (en) * | 2000-12-21 | 2002-08-15 | Berg Mitchell T. | Method and system for communicating an information packet through multiple networks |
US20020116397A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating an information packet through multiple router devices |
US20020116475A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating a request packet in response to a state |
US20020116532A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating an information packet and identifying a data structure |
US20020116605A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for initiating execution of software in response to a state |
US20020120761A1 (en) * | 2000-12-21 | 2002-08-29 | Berg Mitchell T. | Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation |
US20020120743A1 (en) * | 2001-02-26 | 2002-08-29 | Lior Shabtay | Splicing persistent connections |
US20030005113A1 (en) * | 2001-06-08 | 2003-01-02 | Mike Moore | Process for personalizing a transaction through an internet or intranet network |
US20030061356A1 (en) * | 2001-09-24 | 2003-03-27 | Jason James L. | Load balancing in a data delivery system |
US20030076794A1 (en) * | 2001-10-18 | 2003-04-24 | Takeshi Kawasaki | Checksum rewrite device |
US20030187982A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for resource load balancing in a portal server |
US20030188155A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method of determining the number of central processing units for sizing a portal server |
US20030187989A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for determining memory usage in sizing a portal server |
US20030187998A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for detecting resource usage overloads in a portal server |
US20040049582A1 (en) * | 2000-04-18 | 2004-03-11 | Noel Francis Edward | Server cluster interconnection using network processor |
US20040088394A1 (en) * | 2002-10-31 | 2004-05-06 | Microsoft Corporation | On-line wizard entry point management computer system and method |
US20040103194A1 (en) * | 2002-11-21 | 2004-05-27 | Docomo Communicatios Laboratories Usa, Inc. | Method and system for server load balancing |
US20040153511A1 (en) * | 2001-01-02 | 2004-08-05 | Tony Maynard | Exchanging electronic messages between a host computer system and a distributed computer system |
US20050138626A1 (en) * | 2003-12-17 | 2005-06-23 | Akihisa Nagami | Traffic control apparatus and service system using the same |
US20050177612A1 (en) * | 2004-01-08 | 2005-08-11 | Chi Duong | System and method for dynamically quiescing applications |
US20050289145A1 (en) * | 2002-06-17 | 2005-12-29 | Hans-Joerg Voegel | Method and system for delivering content over a network |
US7007092B2 (en) * | 2000-10-05 | 2006-02-28 | Juniper Networks, Inc. | Connection management system and method |
US20060117223A1 (en) * | 2004-11-16 | 2006-06-01 | Alberto Avritzer | Dynamic tuning of a software rejuvenation method using a customer affecting performance metric |
US20060130044A1 (en) * | 2004-12-01 | 2006-06-15 | Alberto Avritzer | System and method for triggering software rejuvenation using a customer affecting performance metric |
US20060156299A1 (en) * | 2005-01-11 | 2006-07-13 | Bondi Andre B | Inducing diversity in replicated systems with software rejuvenation |
US20070018403A1 (en) * | 2005-02-14 | 2007-01-25 | Wong Jacob Y | Yangtze hold 'em and other poker games played with a chinese poker deck |
US20070061418A1 (en) * | 2000-12-21 | 2007-03-15 | Berg Mitchell T | Method and system for initiating execution of software in response to a state |
US20070088826A1 (en) * | 2001-07-26 | 2007-04-19 | Citrix Application Networking, Llc | Systems and Methods for Controlling the Number of Connections Established with a Server |
US20070094544A1 (en) * | 2005-10-26 | 2007-04-26 | Alberto Avritzer | System and method for triggering software rejuvenation using a customer affecting performance metric |
US20070174442A1 (en) * | 2000-10-31 | 2007-07-26 | Alexander Sherman | Method and system for purging content from a content delivery network |
US20080005477A1 (en) * | 2002-06-10 | 2008-01-03 | Crossroads Systems, Inc. | System and Method for Inquiry Caching in a Storage Area Network |
US20080046558A1 (en) * | 2006-08-03 | 2008-02-21 | Murali Raja | Method and appliance for using a dynamic response time to determine responsiveness of network services |
US20080184276A1 (en) * | 2006-12-04 | 2008-07-31 | Sun Microsystems | Communication method and apparatus using changing destination and return destination ID's |
US7562147B1 (en) * | 2000-10-02 | 2009-07-14 | Microsoft Corporation | Bi-directional HTTP-based reliable messaging protocol and system utilizing same |
US7624184B1 (en) * | 2001-06-06 | 2009-11-24 | Cisco Technology, Inc. | Methods and apparatus for managing access to data through a network device |
US7747707B1 (en) | 2000-10-10 | 2010-06-29 | Juniper Networks, Inc. | Agent-based event-driven web server architecture |
US7801978B1 (en) * | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US20110060840A1 (en) * | 2000-02-18 | 2011-03-10 | Susai Michel K | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US8069251B2 (en) | 2007-06-01 | 2011-11-29 | Adobe Systems Incorporated | System and/or method for client-driven server load distribution |
US20120078707A1 (en) * | 2010-09-29 | 2012-03-29 | Eyal Arasu Ramakrishnan | Measuring Inline Ad Performance for Third-Party Ad Serving |
US8346848B2 (en) | 2001-08-16 | 2013-01-01 | Juniper Networks, Inc. | System and method for maintaining statefulness during client-server interactions |
US20130007239A1 (en) * | 2011-06-30 | 2013-01-03 | Mugdha Agarwal | Systems and methods for transparent layer 2 redirection to any service |
US20160134554A1 (en) * | 2014-11-06 | 2016-05-12 | Cisco Technology, Inc. | Delegated user interface for resource constrained device |
US20200236214A1 (en) * | 2019-01-18 | 2020-07-23 | Avaya Inc. | Visual indication of communication suspension at an endpoint system |
US11137734B2 (en) * | 2018-02-26 | 2021-10-05 | Omron Corporation | Controller, control method and program |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002259259A (en) * | 2001-02-27 | 2002-09-13 | Canon Inc | System and method for communicating image data and storage medium |
ITTO20011082A1 (en) | 2001-11-19 | 2003-05-19 | Telecom Italia Lab Spa | PROCEDURE TO CHECK THE FUNCTIONALITY OF A CDN NETWORK, ITS SYSTEM AND IT PRODUCT. |
US8782654B2 (en) | 2004-03-13 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Co-allocating a reservation spanning different compute resources types |
WO2005089239A2 (en) | 2004-03-13 | 2005-09-29 | Cluster Resources, Inc. | System and method of providing a self-optimizing reservation in space of compute resources |
US7594022B2 (en) * | 2004-04-21 | 2009-09-22 | Microsoft Corporation | Regulating client requests in an electronic messaging environment |
US20070266388A1 (en) | 2004-06-18 | 2007-11-15 | Cluster Resources, Inc. | System and method for providing advanced reservations in a compute environment |
US8176490B1 (en) | 2004-08-20 | 2012-05-08 | Adaptive Computing Enterprises, Inc. | System and method of interfacing a workload manager and scheduler with an identity manager |
US8271980B2 (en) | 2004-11-08 | 2012-09-18 | Adaptive Computing Enterprises, Inc. | System and method of providing system jobs within a compute environment |
US7844691B2 (en) * | 2004-12-30 | 2010-11-30 | Xstor Systems, Inc. | Scalable distributed storage and delivery |
US8863143B2 (en) | 2006-03-16 | 2014-10-14 | Adaptive Computing Enterprises, Inc. | System and method for managing a hybrid compute environment |
US9075657B2 (en) | 2005-04-07 | 2015-07-07 | Adaptive Computing Enterprises, Inc. | On-demand access to compute resources |
US9015324B2 (en) | 2005-03-16 | 2015-04-21 | Adaptive Computing Enterprises, Inc. | System and method of brokering cloud computing resources |
US9231886B2 (en) | 2005-03-16 | 2016-01-05 | Adaptive Computing Enterprises, Inc. | Simple integration of an on-demand compute environment |
EP1866767B1 (en) | 2005-03-16 | 2018-04-18 | III Holdings 12, LLC | Automatic workload transfer to an on-demand center |
US8782120B2 (en) | 2005-04-07 | 2014-07-15 | Adaptive Computing Enterprises, Inc. | Elastic management of compute resources between a web server and an on-demand compute environment |
US7562065B2 (en) * | 2005-04-21 | 2009-07-14 | International Business Machines Corporation | Method, system and program product for estimating transaction response times |
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US20080040725A1 (en) * | 2006-08-11 | 2008-02-14 | Barrie Jon Moss | Method and apparatus for a parallel model of tasks including abstracted execution and software development |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8029367B2 (en) * | 2007-01-15 | 2011-10-04 | Microsoft Corporation | Automatic delivery of game content to a game console |
US8935406B1 (en) * | 2007-04-16 | 2015-01-13 | Chelsio Communications, Inc. | Network adaptor configured for connection establishment offload |
US8041773B2 (en) | 2007-09-24 | 2011-10-18 | The Research Foundation Of State University Of New York | Automatic clustering for self-organizing grids |
US8019858B2 (en) * | 2008-09-09 | 2011-09-13 | International Business Machines Corporation | System and method for utilizing system lag to send facts to an end user |
US8699343B2 (en) * | 2009-04-27 | 2014-04-15 | Sonus Networks, Inc. | Adaptive rate control based on overload signals |
US20100274893A1 (en) * | 2009-04-27 | 2010-10-28 | Sonus Networks, Inc. | Methods and apparatus for detecting and limiting focused server overload in a network |
US8655326B2 (en) * | 2009-08-13 | 2014-02-18 | Verizon Patent And Licensing Inc. | Wireless handset connectivity time optimization |
US9960967B2 (en) * | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US11720290B2 (en) | 2009-10-30 | 2023-08-08 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US10877695B2 (en) | 2009-10-30 | 2020-12-29 | Iii Holdings 2, Llc | Memcached server functionality in a cluster of data processing nodes |
US8514707B2 (en) * | 2009-12-28 | 2013-08-20 | Tti Inventions D Llc | Non-blocking admission control |
US20110280247A1 (en) * | 2010-05-17 | 2011-11-17 | Google Inc. | System and method for reducing latency via multiple network connections |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9386088B2 (en) | 2011-11-29 | 2016-07-05 | A10 Networks, Inc. | Accelerating service processing using fast path TCP |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US9106561B2 (en) | 2012-12-06 | 2015-08-11 | A10 Networks, Inc. | Configuration of a virtual service network |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
JP2015534769A (en) | 2012-09-25 | 2015-12-03 | エイ10 ネットワークス インコーポレイテッドA10 Networks, Inc. | Load balancing in data networks |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
WO2014144837A1 (en) | 2013-03-15 | 2014-09-18 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
WO2014179753A2 (en) | 2013-05-03 | 2014-11-06 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
EP3155788B1 (en) * | 2014-06-13 | 2020-06-17 | Sandvine Corporation | Proxy node for transferring packets between a server and a client using port sharding |
US9544403B2 (en) * | 2015-02-02 | 2017-01-10 | Linkedin Corporation | Estimating latency of an application |
US9774654B2 (en) | 2015-02-02 | 2017-09-26 | Linkedin Corporation | Service call graphs for website performance |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
US20170272343A1 (en) * | 2016-03-21 | 2017-09-21 | Ca, Inc. | Systems and methods for monitoring servers for overloading conditions |
CA3136705A1 (en) * | 2019-04-10 | 2020-10-15 | Hubbell Incorporated | Network stress test |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4858120A (en) | 1987-03-18 | 1989-08-15 | International Telesystems Corp. | System for regulating arrivals of customers to servers |
US5774670A (en) | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5777989A (en) | 1995-12-19 | 1998-07-07 | International Business Machines Corporation | TCP/IP host name resolution for machines on several domains |
US5787470A (en) | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
US5812780A (en) | 1996-05-24 | 1998-09-22 | Microsoft Corporation | Method, system, and product for assessing a server application performance |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
US5896500A (en) * | 1993-10-01 | 1999-04-20 | Collaboration Properties, Inc. | System for call request which results in first and second call handle defining call state consisting of active or hold for its respective AV device |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5943321A (en) * | 1997-08-20 | 1999-08-24 | General Datacomm Inc. | Circuit set-up and caching for multimedia multipoint servers |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US6173322B1 (en) | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US6178446B1 (en) * | 1997-12-31 | 2001-01-23 | At&T Corp | Method and system for supporting interactive commercials displayed on a display device using a telephone network |
US6295551B1 (en) * | 1996-05-07 | 2001-09-25 | Cisco Technology, Inc. | Call center system where users and representatives conduct simultaneous voice and joint browsing sessions |
US6397253B1 (en) * | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US6411986B1 (en) | 1998-11-10 | 2002-06-25 | Netscaler, Inc. | Internet client-server multiplexer |
US6438597B1 (en) * | 1998-08-17 | 2002-08-20 | Hewlett-Packard Company | Method and system for managing accesses to a data service system that supports persistent connections |
US6457054B1 (en) * | 1997-05-15 | 2002-09-24 | Intel Corporation | System for reducing user-visibility latency in network transactions |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572645A (en) * | 1994-03-01 | 1996-11-05 | International Business Machines Corporation | Buffer management policy for an on-demand video server |
US5506898A (en) * | 1994-07-12 | 1996-04-09 | At&T Corp. | Expected wait-time indication arrangement |
US5781449A (en) * | 1995-08-10 | 1998-07-14 | Advanced System Technologies, Inc. | Response time measurement apparatus and method |
US6317775B1 (en) * | 1995-11-03 | 2001-11-13 | Cisco Technology, Inc. | System for distributing load over multiple servers at an internet site |
US5699365A (en) * | 1996-03-27 | 1997-12-16 | Motorola, Inc. | Apparatus and method for adaptive forward error correction in data communications |
JPH09270794A (en) * | 1996-03-29 | 1997-10-14 | Mitsubishi Electric Corp | Network management equipment |
GB2320112B (en) * | 1996-12-07 | 2001-07-25 | Ibm | High-availability computer server system |
GB2320594A (en) * | 1996-12-20 | 1998-06-24 | Ibm | Dispatching client method calls to parallel execution threads within a server |
US5933606A (en) * | 1997-02-19 | 1999-08-03 | International Business Machines Corporation | Dynamic link page retargeting using page headers |
US5933596A (en) * | 1997-02-19 | 1999-08-03 | International Business Machines Corporation | Multiple server dynamic page link retargeting |
US5974462A (en) * | 1997-03-28 | 1999-10-26 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a client/server system |
US6021439A (en) * | 1997-11-14 | 2000-02-01 | International Business Machines Corporation | Internet quality-of-service method and system |
JP3665460B2 (en) * | 1997-12-05 | 2005-06-29 | 富士通株式会社 | Route selection system, method, and recording medium by response time tuning of distributed autonomous cooperation type |
US6175869B1 (en) * | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
US6314463B1 (en) * | 1998-05-29 | 2001-11-06 | Webspective Software, Inc. | Method and system for measuring queue length and delay |
US6279001B1 (en) * | 1998-05-29 | 2001-08-21 | Webspective Software, Inc. | Web service |
US6263298B1 (en) * | 1998-08-13 | 2001-07-17 | Precise Software Solutions Ltd. | Method for analyzing system performance |
US6678250B1 (en) * | 1999-02-19 | 2004-01-13 | 3Com Corporation | Method and system for monitoring and management of the performance of real-time networks |
US6820260B1 (en) * | 1999-06-17 | 2004-11-16 | Avaya Technology Corp. | Customized applet-on-hold arrangement |
US6493772B1 (en) * | 1999-08-23 | 2002-12-10 | International Business Machines Corporation | System and method with guaranteed maximum command response time |
US6917614B1 (en) * | 1999-09-17 | 2005-07-12 | Arris International, Inc. | Multi-channel support for virtual private networks in a packet to ATM cell cable system |
US6725272B1 (en) | 2000-02-18 | 2004-04-20 | Netscaler, Inc. | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US6789203B1 (en) * | 2000-06-26 | 2004-09-07 | Sun Microsystems, Inc. | Method and apparatus for preventing a denial of service (DOS) attack by selectively throttling TCP/IP requests |
US6799276B1 (en) * | 2000-06-26 | 2004-09-28 | Sun Microsystems, Inc. | Method and apparatus for restraining connection request stream associated with high volume burst client in a distributed network |
-
2000
- 2000-02-18 US US09/506,747 patent/US6725272B1/en not_active Expired - Lifetime
-
2001
- 2001-02-16 AU AU2001238484A patent/AU2001238484A1/en not_active Abandoned
- 2001-02-16 WO PCT/US2001/005233 patent/WO2001061966A1/en active Application Filing
-
2004
- 2004-04-19 US US10/826,268 patent/US7836191B2/en not_active Expired - Lifetime
-
2010
- 2010-09-13 US US12/880,645 patent/US8812703B2/en not_active Expired - Fee Related
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4858120A (en) | 1987-03-18 | 1989-08-15 | International Telesystems Corp. | System for regulating arrivals of customers to servers |
US5896500A (en) * | 1993-10-01 | 1999-04-20 | Collaboration Properties, Inc. | System for call request which results in first and second call handle defining call state consisting of active or hold for its respective AV device |
US5774670A (en) | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5777989A (en) | 1995-12-19 | 1998-07-07 | International Business Machines Corporation | TCP/IP host name resolution for machines on several domains |
US6295551B1 (en) * | 1996-05-07 | 2001-09-25 | Cisco Technology, Inc. | Call center system where users and representatives conduct simultaneous voice and joint browsing sessions |
US5812780A (en) | 1996-05-24 | 1998-09-22 | Microsoft Corporation | Method, system, and product for assessing a server application performance |
US5918013A (en) | 1996-06-03 | 1999-06-29 | Webtv Networks, Inc. | Method of transcoding documents in a network environment using a proxy server |
US5787470A (en) | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
US5852717A (en) | 1996-11-20 | 1998-12-22 | Shiva Corporation | Performance optimizations for computer networks utilizing HTTP |
US5941988A (en) | 1997-01-27 | 1999-08-24 | International Business Machines Corporation | Session and transport layer proxies via TCP glue |
US6457054B1 (en) * | 1997-05-15 | 2002-09-24 | Intel Corporation | System for reducing user-visibility latency in network transactions |
US6173322B1 (en) | 1997-06-05 | 2001-01-09 | Silicon Graphics, Inc. | Network request distribution based on static rules and dynamic performance data |
US5943321A (en) * | 1997-08-20 | 1999-08-24 | General Datacomm Inc. | Circuit set-up and caching for multimedia multipoint servers |
US6178446B1 (en) * | 1997-12-31 | 2001-01-23 | At&T Corp | Method and system for supporting interactive commercials displayed on a display device using a telephone network |
US6438597B1 (en) * | 1998-08-17 | 2002-08-20 | Hewlett-Packard Company | Method and system for managing accesses to a data service system that supports persistent connections |
US6397253B1 (en) * | 1998-10-06 | 2002-05-28 | Bull Hn Information Systems Inc. | Method and system for providing high performance Web browser and server communications |
US6411986B1 (en) | 1998-11-10 | 2002-06-25 | Netscaler, Inc. | Internet client-server multiplexer |
Non-Patent Citations (4)
Title |
---|
Copy of International Search Report issued Jun. 29, 2001, for Application No. PCT/US01/05233, 2 pages. |
Egevang K. and Francis P., "The IP Network Address Translator (NAT)," Request for Comments: 1631, May 1994, http://www.safety.net/rfcl1631.txt, 9 pages. |
Mogul, Jeffrey C., "The Case for Persistent-Connection HTTP," Computer Communication Review Conference, Aug. 1995, vol. 25, No. 4, pp. 299-313. |
Zheng Wang et al., "Prefetching in World Wide Web," University College London, United Kingdom, Nov. 18-22, 1996, pp. 1-12. |
Cited By (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8812703B2 (en) | 2000-02-18 | 2014-08-19 | Citrix Systems, Inc. | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US20110060840A1 (en) * | 2000-02-18 | 2011-03-10 | Susai Michel K | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time |
US20040049582A1 (en) * | 2000-04-18 | 2004-03-11 | Noel Francis Edward | Server cluster interconnection using network processor |
US7203763B2 (en) * | 2000-04-18 | 2007-04-10 | International Business Machines Corporation | Server cluster interconnection using network processor |
US20020038425A1 (en) * | 2000-09-28 | 2002-03-28 | Kanno Shin-Ichi | Distributed order reception system, reception server, content server, distributed order reception method, and computer program product |
US7562147B1 (en) * | 2000-10-02 | 2009-07-14 | Microsoft Corporation | Bi-directional HTTP-based reliable messaging protocol and system utilizing same |
US20060089996A1 (en) * | 2000-10-05 | 2006-04-27 | Juniper Networks, Inc. | Connection management system and method |
US7346691B2 (en) | 2000-10-05 | 2008-03-18 | Juniper Networks, Inc. | Connection management system and method |
US7007092B2 (en) * | 2000-10-05 | 2006-02-28 | Juniper Networks, Inc. | Connection management system and method |
US7917601B1 (en) | 2000-10-10 | 2011-03-29 | Juniper Networks, Inc. | Agent-based event-driven web server architecture |
US7747707B1 (en) | 2000-10-10 | 2010-06-29 | Juniper Networks, Inc. | Agent-based event-driven web server architecture |
US7801978B1 (en) * | 2000-10-18 | 2010-09-21 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US20110066718A1 (en) * | 2000-10-18 | 2011-03-17 | Susai Michel K | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US8631120B2 (en) | 2000-10-18 | 2014-01-14 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US9148493B2 (en) | 2000-10-18 | 2015-09-29 | Citrix Systems, Inc. | Apparatus, method and computer program product for efficiently pooling connections between clients and servers |
US20070174442A1 (en) * | 2000-10-31 | 2007-07-26 | Alexander Sherman | Method and system for purging content from a content delivery network |
US8266305B2 (en) * | 2000-10-31 | 2012-09-11 | Akamai Technologies, Inc. | Method and system for purging content from a content delivery network |
US7421505B2 (en) | 2000-12-21 | 2008-09-02 | Noatak Software Llc | Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation |
US20070061437A1 (en) * | 2000-12-21 | 2007-03-15 | Berg Mitchell T | Method and system for identifying a computing device in response to an information packet |
US7512686B2 (en) | 2000-12-21 | 2009-03-31 | Berg Mitchell T | Method and system for establishing a data structure of a connection with a client |
US20020112087A1 (en) * | 2000-12-21 | 2002-08-15 | Berg Mitchell T. | Method and system for establishing a data structure of a connection with a client |
US9100409B2 (en) | 2000-12-21 | 2015-08-04 | Noatak Software Llc | Method and system for selecting a computing device for maintaining a client session in response to a request packet |
US20020112085A1 (en) * | 2000-12-21 | 2002-08-15 | Berg Mitchell T. | Method and system for communicating an information packet through multiple networks |
US7506063B2 (en) | 2000-12-21 | 2009-03-17 | Noatak Software Llc | Method and system for initiating execution of software in response to a state |
US7418522B2 (en) | 2000-12-21 | 2008-08-26 | Noatak Software Llc | Method and system for communicating an information packet through multiple networks |
US7640298B2 (en) | 2000-12-21 | 2009-12-29 | Berg Mitchell T | Method and system for communicating an information packet through multiple router devices |
US20060098630A1 (en) * | 2000-12-21 | 2006-05-11 | Reba Technologies, Inc. | Method and system for communicating an information packet through multiple router devices |
US20020116397A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating an information packet through multiple router devices |
US7406538B2 (en) | 2000-12-21 | 2008-07-29 | Noatak Software Llc | Method and system for identifying a computing device in response to an information packet |
US8341290B2 (en) | 2000-12-21 | 2012-12-25 | Noatak Software Llc | Method and system for selecting a computing device for maintaining a client session in response to a request packet |
US20020116475A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating a request packet in response to a state |
US20020116532A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating an information packet and identifying a data structure |
US20070061418A1 (en) * | 2000-12-21 | 2007-03-15 | Berg Mitchell T | Method and system for initiating execution of software in response to a state |
US20070061417A1 (en) * | 2000-12-21 | 2007-03-15 | Berg Mitchell T | Method and system for selectively initiating execution of a software object |
US7546369B2 (en) | 2000-12-21 | 2009-06-09 | Berg Mitchell T | Method and system for communicating a request packet in response to a state |
US20020116605A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for initiating execution of software in response to a state |
US7649876B2 (en) | 2000-12-21 | 2010-01-19 | Berg Mitchell T | Method and system for communicating an information packet through multiple router devices |
US20020120761A1 (en) * | 2000-12-21 | 2002-08-29 | Berg Mitchell T. | Method and system for executing protocol stack instructions to form a packet for causing a computing device to perform an operation |
US7287090B1 (en) | 2000-12-21 | 2007-10-23 | Noatak Software, Llc | Method and system for identifying a computing device in response to a request packet |
US20040153511A1 (en) * | 2001-01-02 | 2004-08-05 | Tony Maynard | Exchanging electronic messages between a host computer system and a distributed computer system |
US20020120743A1 (en) * | 2001-02-26 | 2002-08-29 | Lior Shabtay | Splicing persistent connections |
US7624184B1 (en) * | 2001-06-06 | 2009-11-24 | Cisco Technology, Inc. | Methods and apparatus for managing access to data through a network device |
US20030005113A1 (en) * | 2001-06-08 | 2003-01-02 | Mike Moore | Process for personalizing a transaction through an internet or intranet network |
US20100262655A1 (en) * | 2001-07-26 | 2010-10-14 | Jose Kolencheril Raphel | System, Method and Computer Program Product to Maximize Server Throughput While Avoiding Server Overload by Controlling the Rate of Establishing Server-Side Network Connections |
US20070088826A1 (en) * | 2001-07-26 | 2007-04-19 | Citrix Application Networking, Llc | Systems and Methods for Controlling the Number of Connections Established with a Server |
US8635363B2 (en) | 2001-07-26 | 2014-01-21 | Citrix Systems, Inc. | System, method and computer program product to maximize server throughput while avoiding server overload by controlling the rate of establishing server-side network connections |
US8799502B2 (en) * | 2001-07-26 | 2014-08-05 | Citrix Systems, Inc. | Systems and methods for controlling the number of connections established with a server |
US8346848B2 (en) | 2001-08-16 | 2013-01-01 | Juniper Networks, Inc. | System and method for maintaining statefulness during client-server interactions |
US7039916B2 (en) * | 2001-09-24 | 2006-05-02 | Intel Corporation | Data delivery system for adjusting assignment of connection requests to nodes based upon the tracked duration |
US20030061356A1 (en) * | 2001-09-24 | 2003-03-27 | Jason James L. | Load balancing in a data delivery system |
US20030076794A1 (en) * | 2001-10-18 | 2003-04-24 | Takeshi Kawasaki | Checksum rewrite device |
US20030188155A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method of determining the number of central processing units for sizing a portal server |
US20030187998A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for detecting resource usage overloads in a portal server |
US20030187982A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for resource load balancing in a portal server |
US20030187989A1 (en) * | 2002-03-27 | 2003-10-02 | Patrick Petit | System and method for determining memory usage in sizing a portal server |
US7904539B2 (en) | 2002-06-10 | 2011-03-08 | Crossroads Systems, Inc. | System and method for servicing inquiry commands about target devices in storage area network |
US7603449B1 (en) * | 2002-06-10 | 2009-10-13 | Crossroads Systems, Inc. | System and method for inquiry caching |
US8655977B2 (en) | 2002-06-10 | 2014-02-18 | Kip Cr P1 Lp | System and method for caching inquiry data about sequential access devices |
US8341211B2 (en) | 2002-06-10 | 2012-12-25 | Crossroads Systems, Inc. | System and method for inquiry caching in a storage area network |
US20090177840A1 (en) * | 2002-06-10 | 2009-07-09 | Crossroads Systems, Inc. | System and Method for Servicing Inquiry Commands About Target Devices in Storage Area Network |
US20080005477A1 (en) * | 2002-06-10 | 2008-01-03 | Crossroads Systems, Inc. | System and Method for Inquiry Caching in a Storage Area Network |
US20050289145A1 (en) * | 2002-06-17 | 2005-12-29 | Hans-Joerg Voegel | Method and system for delivering content over a network |
US8086750B2 (en) * | 2002-06-17 | 2011-12-27 | Darby & Mohaine, L.L.C. | Method and system for delivering content over a network |
US7152102B2 (en) * | 2002-10-31 | 2006-12-19 | Microsoft Corporation | On-line wizard entry point management computer system and method |
US20040088394A1 (en) * | 2002-10-31 | 2004-05-06 | Microsoft Corporation | On-line wizard entry point management computer system and method |
US20040103194A1 (en) * | 2002-11-21 | 2004-05-27 | Docomo Communicatios Laboratories Usa, Inc. | Method and system for server load balancing |
US20050138626A1 (en) * | 2003-12-17 | 2005-06-23 | Akihisa Nagami | Traffic control apparatus and service system using the same |
US20050177612A1 (en) * | 2004-01-08 | 2005-08-11 | Chi Duong | System and method for dynamically quiescing applications |
US20060117223A1 (en) * | 2004-11-16 | 2006-06-01 | Alberto Avritzer | Dynamic tuning of a software rejuvenation method using a customer affecting performance metric |
US8055952B2 (en) * | 2004-11-16 | 2011-11-08 | Siemens Medical Solutions Usa, Inc. | Dynamic tuning of a software rejuvenation method using a customer affecting performance metric |
US20060130044A1 (en) * | 2004-12-01 | 2006-06-15 | Alberto Avritzer | System and method for triggering software rejuvenation using a customer affecting performance metric |
US7484128B2 (en) * | 2005-01-11 | 2009-01-27 | Siemens Corporate Research, Inc. | Inducing diversity in replicated systems with software rejuvenation |
US20060156299A1 (en) * | 2005-01-11 | 2006-07-13 | Bondi Andre B | Inducing diversity in replicated systems with software rejuvenation |
US20070018403A1 (en) * | 2005-02-14 | 2007-01-25 | Wong Jacob Y | Yangtze hold 'em and other poker games played with a chinese poker deck |
US20070094544A1 (en) * | 2005-10-26 | 2007-04-26 | Alberto Avritzer | System and method for triggering software rejuvenation using a customer affecting performance metric |
US7475292B2 (en) * | 2005-10-26 | 2009-01-06 | Siemens Corporate Research, Inc. | System and method for triggering software rejuvenation using a customer affecting performance metric |
US8230055B2 (en) * | 2006-08-03 | 2012-07-24 | Citrix Systems, Inc. | Method and appliance for using a dynamic response time to determine responsiveness of network services |
US7720954B2 (en) * | 2006-08-03 | 2010-05-18 | Citrix Systems, Inc. | Method and appliance for using a dynamic response time to determine responsiveness of network services |
US20080046558A1 (en) * | 2006-08-03 | 2008-02-21 | Murali Raja | Method and appliance for using a dynamic response time to determine responsiveness of network services |
US20100191851A1 (en) * | 2006-08-03 | 2010-07-29 | Murali Raja | Method and appliance for using a dynamic response time to determine responsiveness of network services |
US9137212B2 (en) * | 2006-12-04 | 2015-09-15 | Oracle America, Inc. | Communication method and apparatus using changing destination and return destination ID's |
US20080184276A1 (en) * | 2006-12-04 | 2008-07-31 | Sun Microsystems | Communication method and apparatus using changing destination and return destination ID's |
US10142119B2 (en) * | 2006-12-04 | 2018-11-27 | Sun Microsystems, Inc. | Communication method and apparatus using changing destination and return destination ID's |
US20160006572A1 (en) * | 2006-12-04 | 2016-01-07 | Oracle International Corporation | Communication method and apparatus using changing destination and return destination id's |
US8069251B2 (en) | 2007-06-01 | 2011-11-29 | Adobe Systems Incorporated | System and/or method for client-driven server load distribution |
US9300733B2 (en) | 2007-06-01 | 2016-03-29 | Adobe Systems Incorporated | System and/or method for client-driven server load distribution |
US20120078707A1 (en) * | 2010-09-29 | 2012-03-29 | Eyal Arasu Ramakrishnan | Measuring Inline Ad Performance for Third-Party Ad Serving |
US9536249B2 (en) * | 2010-09-29 | 2017-01-03 | Excalibur Ip, Llc | Measuring inline ad performance for third-party ad serving |
US20130007239A1 (en) * | 2011-06-30 | 2013-01-03 | Mugdha Agarwal | Systems and methods for transparent layer 2 redirection to any service |
US8745266B2 (en) * | 2011-06-30 | 2014-06-03 | Citrix Systems, Inc. | Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request |
US20160134554A1 (en) * | 2014-11-06 | 2016-05-12 | Cisco Technology, Inc. | Delegated user interface for resource constrained device |
US11137734B2 (en) * | 2018-02-26 | 2021-10-05 | Omron Corporation | Controller, control method and program |
US20200236214A1 (en) * | 2019-01-18 | 2020-07-23 | Avaya Inc. | Visual indication of communication suspension at an endpoint system |
US11750739B2 (en) * | 2019-01-18 | 2023-09-05 | Avaya Management L.P. | Visual indication of communication suspension at an endpoint system |
Also Published As
Publication number | Publication date |
---|---|
WO2001061966A1 (en) | 2001-08-23 |
US8812703B2 (en) | 2014-08-19 |
US20110060840A1 (en) | 2011-03-10 |
AU2001238484A1 (en) | 2001-08-27 |
US20040199646A1 (en) | 2004-10-07 |
US7836191B2 (en) | 2010-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6725272B1 (en) | Apparatus, method and computer program product for guaranteed content delivery incorporating putting a client on-hold based on response time | |
US8799502B2 (en) | Systems and methods for controlling the number of connections established with a server | |
US6411986B1 (en) | Internet client-server multiplexer | |
US6104720A (en) | Dynamic communication path selection for data transmission between computers | |
US9148493B2 (en) | Apparatus, method and computer program product for efficiently pooling connections between clients and servers | |
US7814225B2 (en) | Techniques for delivering personalized content with a real-time routing network | |
JP3875574B2 (en) | Connection of persistent connection | |
CA2272897C (en) | Performance optimizations for computer networks using http | |
US6189033B1 (en) | Method and system for providing performance guarantees for a data service system of a data access network system | |
US7055028B2 (en) | HTTP multiplexor/demultiplexor system for use in secure transactions | |
US20160269477A1 (en) | Network resource modification for higher network connection concurrence | |
US20060085559A1 (en) | System and method for efficiently forwarding client requests in a TCP/IP computing environment | |
US20020052931A1 (en) | HTTP multiplexor/demultiplexor | |
JP2001265641A (en) | System and method for intellectual fetch and delivery of web content | |
JP2000322366A (en) | Data service system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NETSCALER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUSAI, MICHEL K.;SHETTY, ANIL;BAO, WANQUN;AND OTHERS;REEL/FRAME:010941/0618;SIGNING DATES FROM 20000601 TO 20000605 |
|
AS | Assignment |
Owner name: NETSCALER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SINHA, RAJIV;BOTLAGUDURU, VENUGOPAL;UDUPA, SIVAPRASAD R.;AND OTHERS;REEL/FRAME:011453/0917;SIGNING DATES FROM 20001219 TO 20001228 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: CITRIX APPLICATION NETWORKING, LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:NCAR, LLC;REEL/FRAME:017034/0399 Effective date: 20051104 Owner name: NCAR, LLC, CALIFORNIA Free format text: MERGER;ASSIGNOR:NETSCALER, INC.;REEL/FRAME:017034/0431 Effective date: 20050815 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: CITRIX SYSTEMS, INC., FLORIDA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CITRIX APPLICATION NETWORKING, LLC;REEL/FRAME:030265/0903 Effective date: 20130409 |
|
FPAY | Fee payment |
Year of fee payment: 12 |