Edit

Azure Load Balancer algorithm

Azure Load Balancer is Azure's most performant Load Balancer all while keeping latency ultra-low. To learn more about Azure Load Balancer, visit Azure Load Balancer overview or Azure Load balancer components.

Azure Load Balancer uses a tuple-based hashing as the load-balancing algorithm.

Load balancing algorithm

By creating a load-balancing rule, you can distribute inbound traffic flows from a load balancer's frontend to its backend pools. When the load balancer's health probe indicates a healthy backend endpoint, backend instances are available to receive new traffic flows.

Five-tuple flow distribution

By default, Azure Load Balancer uses a five-tuple hash to distribute inbound flows, rather than individual bytes. The five fields are:

  • Source IP address
  • Source port
  • Destination IP address
  • Destination port
  • IP protocol

For other distribution modes and more details about the algorithm, see hash-based distribution.

You can also use session affinity distribution mode which uses two-tuple or three-tuple based load balancing.

Layer 4 and TLS behavior

Azure Load Balancer operates at Layer 4 and supports TCP and UDP applications. It doesn't close or originate flows, inspect application payloads, rewrite HTTP or HTTPS headers, provide application-layer gateway functionality, or offload TLS. It rewrites TCP and UDP flow headers when directing traffic to backend instances, while protocol and TLS handshakes occur directly between the client and the selected backend instance. Ending TLS on the backend VMs lets TLS session capacity scale with the type and number of VMs in the backend pool.

Source IP address preservation

A backend VM generates a response to an inbound flow, and the original source IP address is preserved when the flow reaches that VM. For example, a TCP handshake occurs between the client and the selected backend VM. Successfully validating connectivity to a frontend therefore validates connectivity to at least one backend VM.

Next steps