This disclosure relates generally to data communications, and more specifically, to a method and system for distributing application traffic to servers based on service process parameters.
Web services and cloud computing are deployed in an unprecedented pace. New servers are unloaded and installed at data centers every day. Demands of web services and corporate computing come from all directions. Consumer oriented services include smartphone apps, mobile applications such as location based services, turn-by-turn navigation services, e-book services such as Kindle™, video applications such as YouTube™ or Hulu™, music applications such as Pandora™ or iTunes™, Internet television services such as Netflix™, and many other fast growing consumer Web services. On the corporate front, cloud computing based services such as Google™ docs, Microsoft™ Office Live and Sharepoint™ software, Salesforce.com™'s on-line software services, tele-presence and web conferencing services, and many other corporate cloud computing services.
As a result more and more servers are deployed to accommodate the increasing computing needs. Traditionally these servers are managed by a service gateway such as Application Delivery Controller or Server Load Balancer (ADC/SLB) are typically network appliances in a fixed module or in a chassis or a software module running in a commoditized server ADC/SLB manage the application traffic to servers based on incoming service requests. Common methods to distribute traffic among servers is to distribute the service requests based on the applications (HTTP, FTP, HTTPS etc.), service addresses such as URL, priorities based on network interfaces or host IP addresses. ADC/SLB may distribute the service requests to a server assuming the server is fully available to handle the service requests. Typically, a fully loaded server does not handle service requests well. In fact, most if not all service requests suffer delay or no service available when a server is busy. It is often better not to further distribute service request to a busy server.
Current ADC/SLB allows a network administrator to set a maximum service session capacity so that ADC/SLB does not send more than the maximum capacity service requests to the server. However, statically configured limitation on a server cannot fully utilize the server's capacity and not all service requests require the same processing from the server. It is beneficial for an ADC/SLB to determine if a server is busy based on the service response time from a server such that the ADC/SLB can reduce sending further service requests to the server.
Therefore, there is a need for a system and method for an ADC/SLB to protect a server overloading based on dynamic service response time.
This summary is provided to introduce a selection of concepts in a simplified form that are further described in the Detailed Description below. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Provided are computer-implemented methods and systems for distributing application traffic. According to one example embodiment, a system for distributing application traffic may include a server configured to process service requests and a service gateway. The service gateway may be configured to receive, from a host, a first service request for a first service session. The first service request may be associated with a service request time. The service gateway may be further configured to relay the first service request from the service gateway to the server. The service gateway may be further configured to receive, from the server, a service response. The service response may be associated with a service response time. The service gateway may calculate a service processing time for the first service request based on the service request time and the service response time. The service gateway may receive, from the host, a second service request for a second service session and selectively relay the second server request to the server based on the service processing time.
According to one example embodiment, a method for distributing application traffic may commence with receiving, from a host, a first service request for a first service session. The first service request may be associated with a service request time. The method may continue with relaying the first service request from a service gateway to a server of a plurality of servers. The method may further include receiving, from the server, a service response. The service response may be associated with a service response time. The method may continue with calculating a service processing time for the first service request based on the service request time and the service response time. The method may further include receiving, from the host, a second service request for a second service session. The method may continue with selectively relaying the second server request to the server based on the service processing time.
Other features, examples, and embodiments are described below. System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
The accompanying drawings, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed disclosure, and explain various principles and advantages of those embodiments.
The methods and systems disclosed herein have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present disclosure so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
Embodiments of the present disclosure can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport eh program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk—read only memory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, point devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified local function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the Figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Host 100 is a computing device with network access capabilities. The host 100 is operationally coupled to a processor 103 and a computer readable medium 104. The computer readable medium 104 stores computer readable program code for implementing the various embodiments of the present invention as described herein. In one embodiment, host 100 is a workstation, a desktop personal computer or a laptop personal computer. In one embodiment, host 100 is a Personal Data Assistant (PDA), a smartphone, or a cellular phone. In one embodiment, host 100 is a set-top box, an Internet media viewer, an Internet media player, a smart sensor, a smart medical device, a net-top box, a networked television set, a networked DVR, a networked Blu-ray player, or a media center.
In one embodiment, data network 153 is an Internet Protocol (IP) network. In one embodiment, data network 153 is a corporate data network or a regional corporate data network. In one embodiment, data network 153 is an Internet service provider network. In one embodiment, data network 153 is a residential data network. In one embodiment, data network 153 includes a wired network such as Ethernet. In one embodiment, data network 153 includes a wireless network such as a WiFi network, or cellular network.
The service gateway 110 is operationally coupled to a processor 113 and a computer readable medium 114. The computer readable medium 114 stores computer readable program code, which when executed by the processor 113, implements the various embodiments of the present invention as described herein. In some embodiments, service gateway 110 is implemented as a server load balancer, an application delivery controller, a service delivery platform, a traffic manager, a security gateway, a component of a firewall system, a component of a virtual private network (VPN), a load balancer for video servers, or a gateway to distribute load to a plurality of servers.
Server 200 is operationally coupled to a processor 213 and a computer readable medium 214. The computer readable medium 214 stores computer readable program code, which when executed by the processor 213, implements the various embodiments of the present invention as described herein. In some embodiments, the computer readable program code implements server 200 as a Web server, a file server, a video server, a database server, an application server, a voice system, a conferencing server, a media gateway, a SIP server, a remote access server, a VPN server, or a media center.
Service gateway 110 connects to server 200 via data network 155. In one embodiment, data network 155 is the same as data network 153. In one embodiment, data network 155 is different from data network 153. In one embodiment, host 100 does not have direct access to data network 155. In one embodiment, host 100 has direct access to data network 155.
After server 200 processes service request 301, server 200 responds with a service response 352. In one embodiment, service response 352 includes a web page, a document, a file, a picture, a streaming of audio or video signals, or a voice call. In one embodiment, service response 352 includes an error indication 354. Error indication 354 may include a HTTP error status code, a FTP error code, SIP error message, or any other error code.
Service gateway 110 receives service response 352 and relays the service response 352 to host 100 (703). Service gateway 110 determines service response time 362 upon receipt of service response 352 (704). In an embodiment, service response time 362 is a time stamp such as a time of the day, a system time, a time counter, and is compatible with service request time 361. In one embodiment, service response time 362 is a time when service gateway 110 receives service response 352. In one embodiment, service response time 362 is a time when service gateway 110 receives first piece of information of service response 352. In one embodiment, service response time 362 is a time when service gateway 110 receives the last piece of information of service response 352. In one embodiment, service response time 362 is a time when service gateway 110 disconnects service session 321 from server 200. In one embodiment, service response time 362 is included in service response 352.
After determining service request time 361 and service response time 362, service gateway 110 calculates service processing time 360 for service request 301 from the service request time and service response time (705). Service processing time 360 typically measures the duration between service request time 361 and service response time 362. In one example, service gateway 110 subtracts service request time 361 from service response time 362 to obtain service processing time 360. In another example, service gateway 110 calculates the duration between service request time 361 and service response time 362 to determine service process time. For example, service processing time 360 is 10 milliseconds, 5 milliseconds, 247 milliseconds, 3 seconds, 15 seconds, 1 minute, 75 microseconds, or 289 units of time.
In one embodiment, service gateway 110 verifies service response 352 prior to calculating service processing time 360. In an example, service gateway 110 verifies service response 352 if the response contains an error indication 354. In one embodiment, if there is an error indicated in error indication 354, service gateway 110 does not calculate service processing time 360 for the service request 301.
In one embodiment, service gateway 110 includes a completed service session counter 326, which counts the number of completed service sessions between service gateway 110 and server 200. In one embodiment, service gateway 110 increments the completed service session counter 326 by 1 after service gateway 110 receives service response 352 or after service gateway 110 disconnects service session 321 from server 200. In one embodiment, service gateway 110 increments the completed service session counter 326 by 1 after determining service processing time 360.
Service gateway 110 includes an expected service processing time 374. Referring to both
Service gateway 110 determines whether service processing time 360 is less than expected service processing time 374 (707), and in response, service gateway 110 updates server busy indicator 378 to ‘Not Busy’ (709). After updating server busy indicator 378, service gateway 110 receives a next service request from host 100.
Expected service processing time 374 may be based on service request 301. In various embodiments, service request 301 comprises a service request Universal Resource Locator (URL), and expected service processing time 374 is configured according to a service attribute 379. The service attribute 379 is an attribute affecting the expected service processing time 374. For example, different protocols would process service requests at different rates, and thus would have different expected service processing times. Service attribute 379 is based on service request URL, or part of service request URL such as the domain name, a web folder name in the web site, a document type, or a protocol indicated in service request URL. For example, if a hypothetical service request URL is “www.abc.com/shops/shoe.html”. Service attribute 379 is based on domain name “www.abc.com”, web folder “www.abc.com/shops”, document type .html (or other document type such as .php, .asp, etc.), protocol http (or other protocols such as ftp, https, sip, etc.). Service attribute 379 may also be related to program code implemented on server 200. For example, server 200 is a web server using Apache web server software, Microsoft web server software, Oracle web server software or other web server software. Service attribute 379 is related to the web server software.
In various embodiments, service attribute 379 is based on the domain name and the expected service processing time 374 is 10 milliseconds. Service attribute 379 may also be based on HTTP protocol with an expected service processing time 374 of 75 milliseconds. In other embodiments, service attribute 379 is based on FTP file download protocol and the expected service processing time 374 is 2 minutes. In still other embodiments, service attribute 379 is based on HTML document type and the expected service processing time 374 is 20 milliseconds.
In one embodiment, service attribute 379 relates to program code implemented on server 200. In an embodiment, server 200 uses Apache web server software and expected processing time is 50 milliseconds. In an embodiment, server 200 uses Microsoft web server software and expected processing time is 90 milliseconds.
In one embodiment, service attribute 379 relates to a plurality of attributes mentioned in above description. Expected processing time may be determined by a summation of a plurality of expected processing times for the plurality of attributes.
In one embodiment, service gateway 110 includes a datastore 380, which stores the expected service processing time 374 and associated service attribute 379. In an embodiment, service gateway 110 compares service request 301 or server 200 against service attribute 379 in datastore 380. If there is a match, service gateway 110 retrieves expected service processing time 374 associated with the matched service attribute 379, and compares the retrieved expected service processing time 374 with the service processing time 360. In one embodiment, expected service processing time 374 is not related to any service attribute. Service gateway 110 retrieves expected service processing time 374 and compares to service processing time 360.
In one embodiment, expected service processing time 374 is configured by a user.
In one embodiment, expected service processing time 374 is automatically determined based on service processing times of previous service sessions. Upon determining service processing time 360, service gateway 110 calculates an adjusted expected service processing time 376 by using the formula:
Service gateway 110 calculates adjusted expected service processing time 376 prior to changing competed service session counter 326. Service gateway 110 does not adjust expected service processing time 374 if service processing time 360 exceeds expected service processing time 374, or if service response 352 includes an error indication 354. In this embodiment, service gateway 110 does not change completed service session counter 326.
In one embodiment, expected service processing time 374 is associated with service attribute 379. Completed service session counter 326 is also associated with service attribute 379 in order to implement separate counters for each service attribute. Service gateway 110 checks if service request 301 or server 200 matches service attribute 379 prior to calculating adjusted expected service processing time 376.
In one embodiment, service gateway 110 replaces expected service processing time 374 with adjusted expected service processing time 376. The adjusted expected service processing time 376 becomes the expected service processing time 374 for the next service session between the service gateway 110 and the server 200.
After the service gateway 110 updates server busy indication, the service gateway 110 receives a next service request from the host (71) and the process repeats (710).
In one embodiment, server busy indicator 378 has an updated value of ‘Busy’. In one embodiment, service gateway 110 does not immediately process service request buffer 331. Service gateway 110 includes a timer 119. When timer 119 expires, service gateway 110 finds the service request 301 in the service request buffer 331 and relays service request 301 in service request buffer 331 to server 200 (701). Timer 119 may be configured for duration of, for example, 1 minute, 30 seconds, 1 second, 400 milliseconds, 5 milliseconds, 300 microseconds, or any other duration such that service to service request 301 is not severely affected. In one embodiment, time duration is based on attributes of the service request 301.
Service request buffer 331 is configured to store service requests with service priority 401. In the embodiment where server busy indicator 378 has an updated value of ‘Busy’, service gateway 110 compares service priority 403 to service priority 401. In response to finding a match, service gateway 110 places service request 303 into service request buffer 331.
In one embodiment, service gateway 110 includes a second service request buffer 332. Service request buffer 332 is configured to store service request with service priority 402, which is higher than service priority 401.
In the embodiment where server busy indicator 378 has an updated value of ‘Not Busy’, service gateway 110 processes service requests in service request buffer 332 prior to service request buffer 331. In one embodiment, service gateway 110 sends service request 302 in service request buffer 332 to server 200 prior to sending service request 301 in service request buffer 331 to server 200.
In one embodiment, service gateway 110 processes all service requests from service request buffer 332 before processing service request buffer 331. In one embodiment, service gateway 110 includes a serving ratio 117 wherein service gateway 110 processes service request buffer 332 and service request buffer 331 according to ratio 117, where serving ratio 117 favors high priority service request buffer 332 to the lower priority service request buffer 331 in order to avoid starving the lower priority service requests in service request buffer 331.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.
The present application is a continuation of U.S. Nonprovisional patent application Ser. No. 15/460,029, filed Mar. 15, 2017, titled “Distributing Application Traffic to Servers Based On Dynamic Service Response Time” which is a continuation of, and claims the priority benefit of, U.S. Nonprovisional patent application Ser. No. 12/958,435, filed Dec. 2, 2010, titled “Distributing Application Traffic to Servers Based on Dynamic Service Response Time”, now U.S. Pat. No. 9,609,052, issued on Mar. 28, 2017. The disclosures of the above applications are hereby incorporated by reference in their entirety, including all references cited therein.
Number | Name | Date | Kind |
---|---|---|---|
5218602 | Grant | Jun 1993 | A |
5774660 | Brendel et al. | Jun 1998 | A |
5935207 | Logue et al. | Aug 1999 | A |
5958053 | Denker | Sep 1999 | A |
5995981 | Wikstrom | Nov 1999 | A |
6003069 | Cavill | Dec 1999 | A |
6047268 | Bartoli et al. | Apr 2000 | A |
6131163 | Wiegel | Oct 2000 | A |
6219706 | Fan et al. | Apr 2001 | B1 |
6259705 | Takahashi et al. | Jul 2001 | B1 |
6321338 | Porras et al. | Nov 2001 | B1 |
6374300 | Masters | Apr 2002 | B2 |
6459682 | Ellesson et al. | Oct 2002 | B1 |
6587866 | Modi et al. | Jul 2003 | B1 |
6748414 | Boumas | Jun 2004 | B1 |
6772334 | Glawitsch | Aug 2004 | B1 |
6779017 | Lamberton et al. | Aug 2004 | B1 |
6779033 | Watson et al. | Aug 2004 | B1 |
6952728 | Alles et al. | Oct 2005 | B1 |
7010605 | Dharmarajan | Mar 2006 | B1 |
7013482 | Krumel | Mar 2006 | B1 |
7058718 | Fontes et al. | Jun 2006 | B2 |
7069438 | Balabine et al. | Jun 2006 | B2 |
7076555 | Orman et al. | Jul 2006 | B1 |
7143087 | Fairweather | Nov 2006 | B2 |
7181524 | Lele | Feb 2007 | B1 |
7218722 | Turner | May 2007 | B1 |
7228359 | Monteiro | Jun 2007 | B1 |
7234161 | Maufer et al. | Jun 2007 | B1 |
7236457 | Joe | Jun 2007 | B2 |
7254133 | Govindarajan et al. | Aug 2007 | B2 |
7269850 | Govindarajan et al. | Sep 2007 | B2 |
7277963 | Dolson et al. | Oct 2007 | B2 |
7301899 | Goldstone | Nov 2007 | B2 |
7308499 | Chavez | Dec 2007 | B2 |
7310686 | Uysal | Dec 2007 | B2 |
7328267 | Bashyam et al. | Feb 2008 | B1 |
7334232 | Jacobs et al. | Feb 2008 | B2 |
7337241 | Boucher et al. | Feb 2008 | B2 |
7343399 | Hayball et al. | Mar 2008 | B2 |
7349970 | Clement et al. | Mar 2008 | B2 |
7370353 | Yang | May 2008 | B2 |
7391725 | Huitema et al. | Jun 2008 | B2 |
7398317 | Chen et al. | Jul 2008 | B2 |
7423977 | Joshi | Sep 2008 | B1 |
7430755 | Hughes et al. | Sep 2008 | B1 |
7463648 | Eppstein et al. | Dec 2008 | B1 |
7467202 | Savchuk | Dec 2008 | B2 |
7472190 | Robinson | Dec 2008 | B2 |
7492766 | Cabeca et al. | Feb 2009 | B2 |
7506360 | Wilkinson et al. | Mar 2009 | B1 |
7509369 | Tormasov | Mar 2009 | B1 |
7512980 | Copeland et al. | Mar 2009 | B2 |
7533409 | Keane et al. | May 2009 | B2 |
7552323 | Shay | Jun 2009 | B2 |
7584262 | Wang et al. | Sep 2009 | B1 |
7584301 | Joshi | Sep 2009 | B1 |
7590736 | Hydrie et al. | Sep 2009 | B2 |
7613193 | Swami et al. | Nov 2009 | B2 |
7613822 | Joy et al. | Nov 2009 | B2 |
7673072 | Boucher et al. | Mar 2010 | B2 |
7675854 | Chen et al. | Mar 2010 | B2 |
7703102 | Eppstein et al. | Apr 2010 | B1 |
7707295 | Szeto et al. | Apr 2010 | B1 |
7711790 | Barrett et al. | May 2010 | B1 |
7739395 | Parlamas et al. | Jun 2010 | B1 |
7747748 | Allen | Jun 2010 | B2 |
7751409 | Carolan | Jul 2010 | B1 |
7765328 | Bryers et al. | Jul 2010 | B2 |
7792113 | Foschiano et al. | Sep 2010 | B1 |
7808994 | Vinokour et al. | Oct 2010 | B1 |
7826487 | Mukerji et al. | Nov 2010 | B1 |
7881215 | Daigle et al. | Feb 2011 | B1 |
7948952 | Hurtta et al. | May 2011 | B2 |
7970934 | Patel | Jun 2011 | B1 |
7983258 | Ruben et al. | Jul 2011 | B1 |
7990847 | Leroy et al. | Aug 2011 | B1 |
7991859 | Miller et al. | Aug 2011 | B1 |
8019870 | Eppstein et al. | Sep 2011 | B1 |
8032634 | Eppstein et al. | Oct 2011 | B1 |
8090866 | Bashyam et al. | Jan 2012 | B1 |
8122116 | Matsunaga et al. | Feb 2012 | B2 |
8179809 | Eppstein et al. | May 2012 | B1 |
8185651 | Moran et al. | May 2012 | B2 |
8191106 | Choyi et al. | May 2012 | B2 |
8224971 | Miller et al. | Jul 2012 | B1 |
8266235 | Jalan et al. | Sep 2012 | B2 |
8296434 | Miller et al. | Oct 2012 | B1 |
8312507 | Chen et al. | Nov 2012 | B2 |
8379515 | Mukerji | Feb 2013 | B1 |
8499093 | Grosser et al. | Jul 2013 | B2 |
8539075 | Bali et al. | Sep 2013 | B2 |
8554929 | Szeto et al. | Oct 2013 | B1 |
8560693 | Wang et al. | Oct 2013 | B1 |
8584199 | Chen et al. | Nov 2013 | B1 |
8595791 | Chen et al. | Nov 2013 | B1 |
RE44701 | Chen et al. | Jan 2014 | E |
8675488 | Sidebottom et al. | Mar 2014 | B1 |
8681610 | Mukerji | Mar 2014 | B1 |
8750164 | Casado et al. | Jun 2014 | B2 |
8782221 | Han | Jul 2014 | B2 |
8813180 | Chen et al. | Aug 2014 | B1 |
8826372 | Chen et al. | Sep 2014 | B1 |
8879427 | Krumel | Nov 2014 | B2 |
8885463 | Medved et al. | Nov 2014 | B1 |
8897154 | Jalan et al. | Nov 2014 | B2 |
8965957 | Barros | Feb 2015 | B2 |
8977749 | Han | Mar 2015 | B1 |
8990262 | Chen et al. | Mar 2015 | B2 |
9094364 | Jalan et al. | Jul 2015 | B2 |
9106561 | Jalan et al. | Aug 2015 | B2 |
9154577 | Jalan et al. | Oct 2015 | B2 |
9154584 | Han | Oct 2015 | B1 |
9215275 | Kannan et al. | Dec 2015 | B2 |
9253152 | Chen et al. | Feb 2016 | B1 |
9270705 | Chen et al. | Feb 2016 | B1 |
9270774 | Jalan et al. | Feb 2016 | B2 |
9338225 | Jalan et al. | May 2016 | B2 |
9350744 | Chen et al. | May 2016 | B2 |
9356910 | Chen et al. | May 2016 | B2 |
9386088 | Zheng et al. | Jul 2016 | B2 |
9531846 | Han et al. | Dec 2016 | B2 |
9544364 | Jalan et al. | Jan 2017 | B2 |
9602442 | Han | Mar 2017 | B2 |
9609052 | Jalan et al. | Mar 2017 | B2 |
9705800 | Sankar et al. | Jul 2017 | B2 |
9843484 | Sankar et al. | Dec 2017 | B2 |
9900252 | Chiong | Feb 2018 | B2 |
9906422 | Jalan et al. | Feb 2018 | B2 |
9906591 | Jalan et al. | Feb 2018 | B2 |
9942152 | Jalan et al. | Apr 2018 | B2 |
9942162 | Golshan et al. | Apr 2018 | B2 |
9961136 | Jalan et al. | May 2018 | B2 |
20010049741 | Skene et al. | Dec 2001 | A1 |
20020032777 | Kawata et al. | Mar 2002 | A1 |
20020078164 | Reinschmidt | Jun 2002 | A1 |
20020091844 | Craft et al. | Jul 2002 | A1 |
20020103916 | Chen et al. | Aug 2002 | A1 |
20020133491 | Sim et al. | Sep 2002 | A1 |
20020138618 | Szabo | Sep 2002 | A1 |
20020143991 | Chow et al. | Oct 2002 | A1 |
20020178259 | Doyle et al. | Nov 2002 | A1 |
20020191575 | Kalavade et al. | Dec 2002 | A1 |
20020194335 | Maynard | Dec 2002 | A1 |
20020194350 | Lu et al. | Dec 2002 | A1 |
20030009591 | Hayball et al. | Jan 2003 | A1 |
20030014544 | Pettey | Jan 2003 | A1 |
20030023711 | Parmar et al. | Jan 2003 | A1 |
20030023873 | Ben-Itzhak | Jan 2003 | A1 |
20030035409 | Wang et al. | Feb 2003 | A1 |
20030035420 | Niu | Feb 2003 | A1 |
20030065762 | Stolorz et al. | Apr 2003 | A1 |
20030091028 | Chang | May 2003 | A1 |
20030131245 | Linderman | Jul 2003 | A1 |
20030135625 | Fontes et al. | Jul 2003 | A1 |
20030195962 | Kikuchi et al. | Oct 2003 | A1 |
20040062246 | Boucher et al. | Apr 2004 | A1 |
20040073703 | Boucher et al. | Apr 2004 | A1 |
20040078419 | Ferrari et al. | Apr 2004 | A1 |
20040078480 | Boucher et al. | Apr 2004 | A1 |
20040111516 | Cain | Jun 2004 | A1 |
20040128312 | Shalabi et al. | Jul 2004 | A1 |
20040139057 | Hirata et al. | Jul 2004 | A1 |
20040139108 | Tang et al. | Jul 2004 | A1 |
20040141005 | Banatwala et al. | Jul 2004 | A1 |
20040143599 | Shalabi et al. | Jul 2004 | A1 |
20040187032 | Gels et al. | Sep 2004 | A1 |
20040199616 | Karhu | Oct 2004 | A1 |
20040199646 | Susai et al. | Oct 2004 | A1 |
20040202182 | Lund et al. | Oct 2004 | A1 |
20040210623 | Hydrie et al. | Oct 2004 | A1 |
20040210663 | Phillips et al. | Oct 2004 | A1 |
20040213158 | Collett et al. | Oct 2004 | A1 |
20040268358 | Darling et al. | Dec 2004 | A1 |
20050005207 | Herneque | Jan 2005 | A1 |
20050009520 | Herrero et al. | Jan 2005 | A1 |
20050021848 | Jorgenson | Jan 2005 | A1 |
20050027862 | Nguyen et al. | Feb 2005 | A1 |
20050036501 | Chung et al. | Feb 2005 | A1 |
20050036511 | Baratakke et al. | Feb 2005 | A1 |
20050044270 | Grove et al. | Feb 2005 | A1 |
20050074013 | Hershey et al. | Apr 2005 | A1 |
20050080890 | Yang et al. | Apr 2005 | A1 |
20050102400 | Nakahara et al. | May 2005 | A1 |
20050125276 | Rusu | Jun 2005 | A1 |
20050163073 | Heller et al. | Jul 2005 | A1 |
20050198335 | Brown et al. | Sep 2005 | A1 |
20050213586 | Cyganski et al. | Sep 2005 | A1 |
20050240989 | Kim et al. | Oct 2005 | A1 |
20050249225 | Singhal | Nov 2005 | A1 |
20050259586 | Hafid et al. | Nov 2005 | A1 |
20050289231 | Harada | Dec 2005 | A1 |
20060023721 | Miyake et al. | Feb 2006 | A1 |
20060036610 | Wang | Feb 2006 | A1 |
20060036733 | Fujimoto et al. | Feb 2006 | A1 |
20060064478 | Sirkin | Mar 2006 | A1 |
20060069774 | Chen et al. | Mar 2006 | A1 |
20060069804 | Miyake et al. | Mar 2006 | A1 |
20060077926 | Rune | Apr 2006 | A1 |
20060092950 | Arregoces et al. | May 2006 | A1 |
20060098645 | Walkin | May 2006 | A1 |
20060112170 | Sirkin | May 2006 | A1 |
20060168319 | Trossen | Jul 2006 | A1 |
20060187901 | Cortes et al. | Aug 2006 | A1 |
20060190997 | Mahajani et al. | Aug 2006 | A1 |
20060209789 | Gupta et al. | Sep 2006 | A1 |
20060230129 | Swami et al. | Oct 2006 | A1 |
20060233100 | Luft et al. | Oct 2006 | A1 |
20060251057 | Kwon et al. | Nov 2006 | A1 |
20060277303 | Hegde et al. | Dec 2006 | A1 |
20060280121 | Matoba | Dec 2006 | A1 |
20070019543 | Wei et al. | Jan 2007 | A1 |
20070086382 | Narayanan et al. | Apr 2007 | A1 |
20070094396 | Takano et al. | Apr 2007 | A1 |
20070118881 | Mitchell et al. | May 2007 | A1 |
20070156919 | Potti et al. | Jul 2007 | A1 |
20070165622 | O'Rourke et al. | Jul 2007 | A1 |
20070185998 | Touitou et al. | Aug 2007 | A1 |
20070195792 | Chen et al. | Aug 2007 | A1 |
20070230337 | Igarashi et al. | Oct 2007 | A1 |
20070245090 | King et al. | Oct 2007 | A1 |
20070259673 | Willars et al. | Nov 2007 | A1 |
20070283429 | Chen et al. | Dec 2007 | A1 |
20070286077 | Wu | Dec 2007 | A1 |
20070288247 | Mackay | Dec 2007 | A1 |
20070294209 | Strub et al. | Dec 2007 | A1 |
20080031263 | Ervin et al. | Feb 2008 | A1 |
20080101396 | Miyata | May 2008 | A1 |
20080109452 | Patterson | May 2008 | A1 |
20080109870 | Sherlock et al. | May 2008 | A1 |
20080134332 | Keohane et al. | Jun 2008 | A1 |
20080162679 | Maher et al. | Jul 2008 | A1 |
20080228781 | Chen et al. | Sep 2008 | A1 |
20080250099 | Shen et al. | Oct 2008 | A1 |
20080263209 | Pisharody et al. | Oct 2008 | A1 |
20080271130 | Ramamoorthy | Oct 2008 | A1 |
20080282254 | Blander et al. | Nov 2008 | A1 |
20080291911 | Lee et al. | Nov 2008 | A1 |
20090049198 | Blinn et al. | Feb 2009 | A1 |
20090070470 | Bauman et al. | Mar 2009 | A1 |
20090077651 | Poeluev | Mar 2009 | A1 |
20090092124 | Singhal et al. | Apr 2009 | A1 |
20090106830 | Maher | Apr 2009 | A1 |
20090138606 | Moran et al. | May 2009 | A1 |
20090138945 | Savchuk | May 2009 | A1 |
20090141634 | Rothstein et al. | Jun 2009 | A1 |
20090164614 | Christian et al. | Jun 2009 | A1 |
20090172093 | Matsubara | Jul 2009 | A1 |
20090213858 | Dolganow et al. | Aug 2009 | A1 |
20090222583 | Josefsberg et al. | Sep 2009 | A1 |
20090227228 | Hu et al. | Sep 2009 | A1 |
20090228547 | Miyaoka et al. | Sep 2009 | A1 |
20090262741 | Jungck et al. | Oct 2009 | A1 |
20090271472 | Scheifler et al. | Oct 2009 | A1 |
20090313379 | Rydnell et al. | Dec 2009 | A1 |
20100008229 | Bi et al. | Jan 2010 | A1 |
20100023621 | Ezolt et al. | Jan 2010 | A1 |
20100036952 | Hazlewood et al. | Feb 2010 | A1 |
20100054139 | Chun et al. | Mar 2010 | A1 |
20100061319 | Aso et al. | Mar 2010 | A1 |
20100064008 | Yan et al. | Mar 2010 | A1 |
20100082787 | Kommula et al. | Apr 2010 | A1 |
20100083076 | Ushiyama | Apr 2010 | A1 |
20100094985 | Abu-Samaha et al. | Apr 2010 | A1 |
20100098417 | Tse-Au | Apr 2010 | A1 |
20100106833 | Banerjee et al. | Apr 2010 | A1 |
20100106854 | Kim et al. | Apr 2010 | A1 |
20100128606 | Patel et al. | May 2010 | A1 |
20100162378 | Jayawardena et al. | Jun 2010 | A1 |
20100210265 | Borzsei et al. | Aug 2010 | A1 |
20100217793 | Preiss | Aug 2010 | A1 |
20100217819 | Chen et al. | Aug 2010 | A1 |
20100223630 | Degenkolb et al. | Sep 2010 | A1 |
20100228819 | Wei | Sep 2010 | A1 |
20100228878 | Xu et al. | Sep 2010 | A1 |
20100235507 | Szeto et al. | Sep 2010 | A1 |
20100235522 | Chen et al. | Sep 2010 | A1 |
20100238828 | Russell | Sep 2010 | A1 |
20100265824 | Chao et al. | Oct 2010 | A1 |
20100268814 | Cross et al. | Oct 2010 | A1 |
20100293296 | Hsu et al. | Nov 2010 | A1 |
20100312740 | Clemm et al. | Dec 2010 | A1 |
20100318631 | Shukla | Dec 2010 | A1 |
20100322252 | Suganthi et al. | Dec 2010 | A1 |
20100330971 | Selitser et al. | Dec 2010 | A1 |
20100333101 | Pope et al. | Dec 2010 | A1 |
20110007652 | Bai | Jan 2011 | A1 |
20110019550 | Bryers et al. | Jan 2011 | A1 |
20110023071 | Li et al. | Jan 2011 | A1 |
20110029599 | Pulleyn et al. | Feb 2011 | A1 |
20110032941 | Quach et al. | Feb 2011 | A1 |
20110040826 | Chadzelek et al. | Feb 2011 | A1 |
20110047294 | Singh et al. | Feb 2011 | A1 |
20110060831 | Ishii et al. | Mar 2011 | A1 |
20110060840 | Susai | Mar 2011 | A1 |
20110093522 | Chen et al. | Apr 2011 | A1 |
20110099403 | Miyata et al. | Apr 2011 | A1 |
20110110294 | Valluri et al. | May 2011 | A1 |
20110145324 | Reinart et al. | Jun 2011 | A1 |
20110153834 | Bharrat | Jun 2011 | A1 |
20110178985 | San Martin Arribas et al. | Jul 2011 | A1 |
20110185073 | Jagadeeswaran et al. | Jul 2011 | A1 |
20110191773 | Pavel et al. | Aug 2011 | A1 |
20110196971 | Reguraman et al. | Aug 2011 | A1 |
20110276695 | Maldaner | Nov 2011 | A1 |
20110276982 | Nakayama et al. | Nov 2011 | A1 |
20110289496 | Steer | Nov 2011 | A1 |
20110292939 | Subramaian et al. | Dec 2011 | A1 |
20110302256 | Sureshehandra et al. | Dec 2011 | A1 |
20110307541 | Walsh et al. | Dec 2011 | A1 |
20120008495 | Shen et al. | Jan 2012 | A1 |
20120023231 | Ueno | Jan 2012 | A1 |
20120026897 | Guichard et al. | Feb 2012 | A1 |
20120030341 | Jensen et al. | Feb 2012 | A1 |
20120066371 | Patel et al. | Mar 2012 | A1 |
20120084460 | McGinnity et al. | Apr 2012 | A1 |
20120106355 | Ludwig | May 2012 | A1 |
20120117571 | Davis et al. | May 2012 | A1 |
20120144014 | Nathan et al. | Jun 2012 | A1 |
20120151353 | Joanny | Jun 2012 | A1 |
20120170548 | Rajagopalan et al. | Jul 2012 | A1 |
20120173759 | Agarwal et al. | Jul 2012 | A1 |
20120191839 | Maynard | Jul 2012 | A1 |
20120239792 | Banerjee et al. | Sep 2012 | A1 |
20120240185 | Kapoor et al. | Sep 2012 | A1 |
20120290727 | Tivig | Nov 2012 | A1 |
20120297046 | Raja et al. | Nov 2012 | A1 |
20130046876 | Narayana et al. | Feb 2013 | A1 |
20130058335 | Koponen et al. | Mar 2013 | A1 |
20130074177 | Varadhan et al. | Mar 2013 | A1 |
20130083725 | Mallya et al. | Apr 2013 | A1 |
20130124713 | Feinberg et al. | May 2013 | A1 |
20130148500 | Sonoda et al. | Jun 2013 | A1 |
20130173795 | McPherson | Jul 2013 | A1 |
20130176854 | Chisu et al. | Jul 2013 | A1 |
20130191486 | Someya et al. | Jul 2013 | A1 |
20130198385 | Han et al. | Aug 2013 | A1 |
20130250765 | Ehsan et al. | Sep 2013 | A1 |
20130250770 | Zou et al. | Sep 2013 | A1 |
20130258846 | Damola | Oct 2013 | A1 |
20130268646 | Doron et al. | Oct 2013 | A1 |
20130282791 | Kruglick | Oct 2013 | A1 |
20130336159 | Previdi et al. | Dec 2013 | A1 |
20140169168 | Jalan et al. | Jun 2014 | A1 |
20140226658 | Kakadia et al. | Aug 2014 | A1 |
20140235249 | Jeong et al. | Aug 2014 | A1 |
20140248914 | Aoyagi et al. | Sep 2014 | A1 |
20140258465 | Li | Sep 2014 | A1 |
20140269728 | Jalan et al. | Sep 2014 | A1 |
20140286313 | Fu et al. | Sep 2014 | A1 |
20140298091 | Carlen et al. | Oct 2014 | A1 |
20140325649 | Zhang | Oct 2014 | A1 |
20140330982 | Jalan et al. | Nov 2014 | A1 |
20140334485 | Jain et al. | Nov 2014 | A1 |
20140359052 | Joachimpillai et al. | Dec 2014 | A1 |
20150098333 | Lin et al. | Apr 2015 | A1 |
20150156223 | Xu et al. | Jun 2015 | A1 |
20150215436 | Kancherla | Jul 2015 | A1 |
20150237173 | Virkki et al. | Aug 2015 | A1 |
20150296058 | Jalan et al. | Oct 2015 | A1 |
20150312268 | Ray | Oct 2015 | A1 |
20150350048 | Sampat et al. | Dec 2015 | A1 |
20150350379 | Jalan et al. | Dec 2015 | A1 |
20160042014 | Jalan et al. | Feb 2016 | A1 |
20160044095 | Sankar et al. | Feb 2016 | A1 |
20160088074 | Kannan et al. | Mar 2016 | A1 |
20160094470 | Skog | Mar 2016 | A1 |
20160119382 | Chen et al. | Apr 2016 | A1 |
20160139910 | Ramanathan et al. | May 2016 | A1 |
20160164792 | Oran | Jun 2016 | A1 |
Number | Date | Country |
---|---|---|
101094225 | Dec 2000 | CN |
1372662 | Oct 2002 | CN |
1449618 | Oct 2003 | CN |
1529460 | Sep 2004 | CN |
1575582 | Feb 2005 | CN |
1714545 | Dec 2005 | CN |
1725702 | Jan 2006 | CN |
101004740 | Jul 2007 | CN |
101163336 | Apr 2008 | CN |
101169785 | Apr 2008 | CN |
101189598 | May 2008 | CN |
101193089 | Jun 2008 | CN |
101247349 | Aug 2008 | CN |
101261644 | Sep 2008 | CN |
102143075 | Aug 2011 | CN |
102546590 | Jul 2012 | CN |
102571742 | Jul 2012 | CN |
102577252 | Jul 2012 | CN |
102918801 | Feb 2013 | CN |
103533018 | Jan 2014 | CN |
103944954 | Jul 2014 | CN |
104040990 | Sep 2014 | CN |
104067569 | Sep 2014 | CN |
104106241 | Oct 2014 | CN |
104137491 | Nov 2014 | CN |
104796396 | Jul 2015 | CN |
102577252 | Mar 2016 | CN |
102918801 | May 2016 | CN |
102571742 | Jul 2016 | CN |
1209876 | May 2002 | EP |
1770915 | Apr 2007 | EP |
1885096 | Feb 2008 | EP |
2296313 | Mar 2011 | EP |
2577910 | Apr 2013 | EP |
2622795 | Aug 2013 | EP |
2647174 | Oct 2013 | EP |
2760170 | Jul 2014 | EP |
2772026 | Sep 2014 | EP |
2901308 | Aug 2015 | EP |
2760170 | Dec 2015 | EP |
1182560 | Nov 2013 | HK |
1183569 | Dec 2013 | HK |
1183996 | Jan 2014 | HK |
1189438 | Jan 2014 | HK |
1198565 | May 2015 | HK |
1198848 | Jun 2015 | HK |
1199153 | Jun 2015 | HK |
1199779 | Jul 2015 | HK |
1200617 | Aug 2015 | HK |
3764CHB2014 | Sep 2015 | IN |
261CHE2014 | Jan 2016 | IN |
1668CHENP2015 | Jul 2016 | IN |
H0997233 | Apr 1997 | JP |
H1196128 | Apr 1999 | JP |
H11338836 | Dec 1999 | JP |
2000276432 | Oct 2000 | JP |
2000307634 | Nov 2000 | JP |
2001051859 | Feb 2001 | JP |
2001298449 | Oct 2001 | JP |
2002091936 | Mar 2002 | JP |
2003141068 | May 2003 | JP |
2003186776 | Jul 2003 | JP |
2005141441 | Jun 2005 | JP |
2006332825 | Dec 2006 | JP |
2008040718 | Feb 2008 | JP |
2009500731 | Jan 2009 | JP |
2013528330 | Jul 2013 | JP |
2014504484 | Feb 2014 | JP |
2014143686 | Aug 2014 | JP |
2015507380 | Mar 2015 | JP |
5855663 | Feb 2016 | JP |
5913609 | Apr 2016 | JP |
5946189 | Jul 2016 | JP |
5963766 | Aug 2016 | JP |
20080008340 | Jan 2008 | KR |
100830413 | May 2008 | KR |
20130096624 | Aug 2013 | KR |
101576585 | Dec 2015 | KR |
101632187 | Jun 2016 | KR |
101692751 | Jan 2017 | KR |
WO2001013228 | Feb 2001 | WO |
WO2001014990 | Mar 2001 | WO |
WO2001045349 | Jun 2001 | WO |
WO2003103237 | Dec 2003 | WO |
WO2004084085 | Sep 2004 | WO |
WO2006098033 | Sep 2006 | WO |
WO2008053954 | May 2008 | WO |
WO2008078593 | Jul 2008 | WO |
WO2011049770 | Apr 2011 | WO |
WO2011079381 | Jul 2011 | WO |
WO2011149796 | Dec 2011 | WO |
WO2012050747 | Apr 2012 | WO |
WO2012075237 | Jun 2012 | WO |
WO2012083264 | Jun 2012 | WO |
WO2012097015 | Jul 2012 | WO |
WO2013070391 | May 2013 | WO |
WO2013081952 | Jun 2013 | WO |
WO2013096019 | Jun 2013 | WO |
WO2013112492 | Aug 2013 | WO |
WO2013189024 | Dec 2013 | WO |
WO2014031046 | Feb 2014 | WO |
WO2014052099 | Apr 2014 | WO |
WO2014088741 | Jun 2014 | WO |
WO2014093829 | Jun 2014 | WO |
WO2014138483 | Sep 2014 | WO |
WO2014144837 | Sep 2014 | WO |
WO2014179753 | Nov 2014 | WO |
WO2015153020 | Oct 2015 | WO |
Entry |
---|
Abe, et al., “Adaptive Split Connection Schemes in Advanced Relay Nodes,” IEICE Technical Report, 2010, vol. 109 (438), pp. 25-30. |
Cardellini, et al., “Dynamic Load Balancing on Web-Server Systems,” IEEE Internet Computing, 1999, vol. 3 (3), pp. 28-39. |
FreeBSD, “tcp—TCP Protocal,” Linux Programme□ s Manual [online], 2007, [retrieved on Apr. 13, 2016], Retreived from the Internet: <https://www.freebsd.org/cgi/man.cgi?query=tcp&apropos=0&sektion=7&manpath=SuSe+Linux%2Fi386+11.0&format=asci>. |
Gite, “Linux Tune Network Stack (Buffers Size) to Increase Networking Performance,” nixCraft [online], 2009, [retreived on Apr. 13, 2016], Retreived from the Internet: <URL:http://www.cyberciti.biz/faq/linux-tcp-tuning/>. |
Goldszmidt, et al., “NetDispatcher: A TCP Connection Router,” IBM Researc Report, RC 20853, 1997, pp. 1-31. |
Kjaer, et al., “Resource Allocation and Disturbance Rejection in Web Servers Using SLAs and Virtualized Servers,” IEEE Transactions on Network Service Management, 2009, vol. 6 (4), pp. 226-239. |
Koike, et al., “Transport Middleware for Network-Based Control,” IEICE Technical Report, 2000, vol. 100 (53), pp. 13-18. |
Noguchi, “Realizing the Highest Level “Layer 7” Switch”=0 Totally Managing Network Resources, Applications, and Users =, Computer & Network LAN, 2000, vol. 18 (1), pp. 109-112. |
Ohnuma, “AppSwitch: 7th Layer Switch Provided with Full Setup and Report Tools,” Interop Magazine, 2000, vol. 10 (6), pp. 148-150. |
Sharifian, et al., “An Approximation-Based Load-Balancing Algorithm with Admission Control for Cluster Web Servers with Dynamic Workloads,” The Journal of Supercomputing, 2010, vol. 53 (3), pp. 440-463. |
Spatscheck, et al., “Optimizing TCP Forwarder Performance,” IEEE/ACM Transactions on Networking, 2000, vol. 8 (2), pp. 146-157. |
Search Report and Written Opinion dated Sep. 21, 2012 for PCT Application No. PCT/US2011/062811. |
Takahashi, “The Fundamentals of the Windows Network: Understanding the Mystery of the Windows Network from the Basics,” Network Magazine, 2006, vol. 11 (7), pp. 32-35. |
Yamamoto, et al., “Performance Evaluation of Window Size in Proxy-Based TCP for Multi-Hop Wireless Networks,” IPSJ SIG Technical Reports, 2008, vol. 2008 (44), pp. 109-114. |
Number | Date | Country | |
---|---|---|---|
20180152508 A1 | May 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15460029 | Mar 2017 | US |
Child | 15882755 | US | |
Parent | 12958435 | Dec 2010 | US |
Child | 15460029 | US |