So, the direction that this points us towards the design

is a closed apology so this is a particular kind of

non blocking depology that we can build that is scale out instead of scale up.

That is we're going to have a larger number of

components forming the back bone of the network.

Rather than a small number of beefier components.

Okay, so putting together these ideas brings us to the VL2 physical topology.

So we're moving form this traditional network design.

Over to a closed network which will look pretty familiar.

This particular design is a bit different than the factory paper that you read

because of different line speeds and port counts configurations and switched.

So how do we route in this physical topology?

Well there was another conclusion of the measurements that,

the traffic is unpredictable, so that means that it's difficult to adapt.

Right. So this leads us to a design

that is what's called oblivious.

Oblivious routing meaning that the path along which we send a particular

flow does not depend on the current traffic matrix.

Right? So

we're going to be able to locally decide at each switch where this traffic should

go, without some larger scale global coordination.

Now, valiant load balancing is a idea that comes from a paper by Leslie Valiant,

for routing on hyper cubes, it's a theoretical paper

we're not going to go into the algorithm and proof there.

But the key idea, is that what you do is you take an arbitrary traffic matrix and

you make it look like a completely uniform even traffic matrix.

And the way we do that, is by taking the flows and

spreading them evenly over all the available paths.

Okay?

So, we can do that by sending the flows to each of the top layer switches.

Okay, now we do want to keep each individual flow on a single path.

So we're not going to achieve perfect valiant load balancing.

The flows are going to be a little chunkier rather than

having each of them split evenly over all of the possible paths, but

this is the intuition, that we want to spread traffic as much as possible.

So what does the implementation of that look like in this particular design?