<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://kb.linux-vs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mike</id>
		<title>LVSKB - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://kb.linux-vs.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mike"/>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki/Special:Contributions/Mike"/>
		<updated>2026-04-29T09:26:26Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=679</id>
		<title>IPVS</title>
		<link rel="alternate" type="text/html" href="http://kb.linux-vs.org/wiki?title=IPVS&amp;diff=679"/>
				<updated>2006-04-29T10:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mike: /* IP Load Balancing Technologies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IPVS (IP Virtual Server) implements transport-layer [[load balancing]] inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a [[load balancer]] before a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== IP Load Balancing Technologies ==&lt;br /&gt;
&lt;br /&gt;
Since the IP load balancing techniques have good scalability, IPVS extends the TCP/IP stack of the Linux kernel to support three IP load balancing techniques: [[LVS/NAT]], [[LVS/TUN]] and [[LVS/DR]]. The box running IPVS acts as a [[load balancer]] of network connections&lt;br /&gt;
from clients who know a single IP address for a service, and distributes them to a set of&lt;br /&gt;
servers that actually perform the work.&lt;br /&gt;
&lt;br /&gt;
* [[LVS/NAT | Virtual Server via Network Address Translation]]&lt;br /&gt;
* [[LVS/TUN | Virtual Server via IP Tunneling]]&lt;br /&gt;
* [[LVS/DR | Virtual Server via Direct Routing]]&lt;br /&gt;
&lt;br /&gt;
== Job Scheduling Algorithms ==&lt;br /&gt;
&lt;br /&gt;
=== Connection Scheduling Algorithms inside the Kernel ===&lt;br /&gt;
&lt;br /&gt;
IPVS schedules jobs at connection granularity inside the Linux kernel. Here connection is defined as data communication between client socket and server socket, no matter whether it uses TCP or UDP protocol. For scheduling UDP datagrams, IPVS [[load balancer]] records UDP datagram scheduling with configurable timeout, and the default UDP timeout is 300 seconds. Before UDP connection timeouts, all UDP datagrams from the same socket (protocol, ip address and port) will be directed to the same server.&lt;br /&gt;
&lt;br /&gt;
IPVS has implemented ten connection scheduling algorithms inside the kernel so far:&lt;br /&gt;
&lt;br /&gt;
* [[Round-Robin Scheduling]] &lt;br /&gt;
* [[Weighted Round-Robin Scheduling]] &lt;br /&gt;
* [[Least-Connection Scheduling]]&lt;br /&gt;
* [[Weighted Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection Scheduling]] &lt;br /&gt;
* [[Locality-Based Least-Connection with Replication Scheduling]] &lt;br /&gt;
* [[Destination Hashing Scheduling]] &lt;br /&gt;
* [[Source Hashing Scheduling]] &lt;br /&gt;
* [[Shortest Expected Delay Scheduling]] &lt;br /&gt;
* [[Never Queue Scheduling]]&lt;br /&gt;
&lt;br /&gt;
=== Dynamic Feedback Load Balancing Scheduling ===&lt;br /&gt;
&lt;br /&gt;
The dynamic feedback load balancing scheduling algorithm is to use connection scheduling algorithm and adjust server weight based on dynamic feeback load information of each server, in order to avoid load imbalance among servers.&lt;br /&gt;
&lt;br /&gt;
* [[Dynamic Feedback Load Balancing Scheduling]]&lt;br /&gt;
&lt;br /&gt;
== Design and Implementation ==&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Design]]&lt;br /&gt;
* [[IPVS Implementation]]&lt;br /&gt;
&lt;br /&gt;
== Ongoing Development ==&lt;br /&gt;
&lt;br /&gt;
=== IPVS On FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
The [http://dragon.linux-vs.org/~dragonfly/htm/lvs_freebsd.htm LVS On FreeBSD] project was started by Li Wang, the goal is to port IPVS code to FreeBSD. Now, the LVS On FreeBSD module supports the [[LVS/DR]] and [[LVS/TUN]] ip load balancing technologies.&lt;br /&gt;
&lt;br /&gt;
=== Todo ===&lt;br /&gt;
&lt;br /&gt;
* [[IPVS Wish List]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Load Balancing]]&lt;/div&gt;</summary>
		<author><name>Mike</name></author>	</entry>

	</feed>