NetSched

As the Internet grows, content providers have adopted a lot of devices and concepts to scale services from a few users to a global-wide infrastructure such as load-balancers that dispatch queries made to a virtual single point to a farm of servers or Content Distribution Networks to enable selection of the fastest service-point as close as possible to the user.
In this project, we want to take a step back. Instead of incrementally adding new “fixes” to an already complex network, we want to design, implement and validate a new architecture centered around NetScheds as a key building block. A NetSched is a new kind of router directly responsible for scheduling incoming requests to other neighbouring NetScheds, from the users to the servers in datacenters, point of presence, or servers directly in the mobile edge. Using inband telemetry, the NetScheds will be able to exchange resource utilization with a very low information delay. Hence each NetSched will select the next entity according to the ability of ultimately serving a request, with the lowest possible latency and enough resources along, and at the end of the path, delaying huge but non-urgent requests, and prioritising urgent ones. The NetScheds close to the users will be able to exchange information natively with the users to take advantage of multi-pathing opportunities and plan bursts of packets for maximized efficiency, exposing the service level objectives of the request.
The NetScheds close to servers will be able to natively deliver packets to the least used servers, or the warmest ones, using the NIC as the final point of this self-scheduling Internet, delivering tasks to the CPU in-time, as the network as a whole has decided. A single NetSched will efficiently replace a load-balancer, while a network of NetScheds – an architecture possible today as cloud operators extend their reach to all major cities – will bring native scaling to the Internet.