Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Exponential backoff
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Rate limiting== Exponential backoff is commonly utilised as part of [[rate limiting]] mechanisms in computer systems such as [[web service]]s, to help enforce fair distribution of access to resources and prevent [[network congestion]]. Each time a service informs a client that it is sending requests too frequently, the client reduces its rate by some predetermined factor, until the client's request rate reaches an acceptable equilibrium. The service may enforce rate limiting by refusing to respond to requests when the client is sending them too frequently so that misbehaving clients are not allowed to exceed their allotted resources. A benefit of utilising an exponential backoff algorithm, over of a fixed rate limit, is that rate limits can be achieved dynamically without providing any prior information to the client. In the event that resources are unexpectedly constrained, e.g. due to heavy load or a service disruption, backoff requests and error responses from the service can automatically decrease the request rate from clients. This can help maintain some level of availability rather than overloading the service. In addition, [[quality of service]] can be prioritised to certain clients based on their individual importance, e.g. by reducing the backoff for emergency calls on a [[telephone network]] during periods of high load. In a simple version of the algorithm, messages are delayed by predetermined (non-random) time. For example, in [[Session Initiation Protocol|SIP protocol]] over unreliable transport (such as [[User Datagram Protocol|UDP]]) the client retransmits requests at an interval that starts at T1 seconds (usually, {{val|500 |u=ms}}, which is the estimate of the [[round-trip time]]) and doubles after every retransmission until it reaches T2 seconds (which defaults to {{val|4|u=s}}). This results in retransmission intervals of {{val|500 |u=ms}}, {{val|1|u=s}}, {{val|2|u=s}}, {{val|4|u=s}}, {{val|4|u=s}}, {{val|4|u=s}}, etc.<ref name="sip">Rosenberg et al. [https://datatracker.ietf.org/doc/html/rfc3261 RFC3261 β SIP: Session Initiation Protocol]. The Internet Society. 2002.</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)