Trickles is particularly well-suited for a class of applications. Trickles does not automatically support server applications that require a large amount of per-connection server side state. Rather, it is best suited for those applications that have a compact, server-side state that fits readily within a continuation. Applications in which a large number of clients connect to each server derives the maximum benefit from server-side statelessness. Trickles is optimized for applications in which data transfer occurs predominantly from the servers to the clients.
Web servers serving dynamic and static web content fit these characteristics. Services implemented on Trickles benefit from the new network-layer services enabled by flexible network redirection.
Network services based on flexible packet redirection
Trickles provides the network with great flexibility in processing packets. Since packets can be processed at any server node, the network can perform implement an optimization, load management, or other type of algorithm, free of interference from higher layers.
Transparent failoverIn transparent failover, a network middlebox detects that a server has failed, and redirects packets to a working server, without any application level assistance or intervention.
Trickles supports more flexible load balancing. In TCP, load balancing typically occurs at connection granularity. Connections are assigned to a particular server at establishment time; once committed to such a server, they cannot easily be reassigned.
Trickles allows the network to redirect at packet-level granularity, and so any packet of any connection may be redirected to an arbitrary server at any time.
Trickles enables connection-oriented geographic anycast. In anycast, the network infrastructure redirects packets from the client to one of several servers. Trickles frees the network infrastructure to make independent decisions on the optimal destination for each packet. In this example, the routers select the geographically closest server to each client.