So the topology that we've talked about using the class network and its variance, it meets the scalability demands of a data center network, and it is also cost-effective. Those two things are good. But however, the network is dependent on the fact that you have Intelligent routing decision. Because there're different communication paths between any two end points, you can take different communication routes. But if you take a communication route that results in congestion, then that's not going to be good. So intelligent routing is a key to ensuring performance between the end hosts. Now if you statically decide the routing between any two servers, that would result in congestion and hotspots in the network. Even though we've got redundant paths available in the class network, you might still end up with congestion and hotspots. So what we really want is the routing to be not static, but we want it to be dynamic, and this calls for an active network where the routing decisions are being taken dynamically. Now, that brings us back to the drawing board in terms of how we do that. It turns out this requirement for wanting the network routing to be active is not new. Let's talk about how routing works in the Internet today. Your packet consists of a destination and a payload, and what happens in a traditional routing network is that routing decisions in the internet are static, and it is decided by look-up-tables in the routers that are periodically updated. So if you look at this structure here, this is the source and this is destination, let say, and there are intermediate routers that a particular packet may take in order to go from source to destination. What each one of these intermediate states in the packet traversal is doing, is basically doing a lookup in the look-up-table, which is getting updated periodically. So when a packet comes in, what router is going to do is, it's going to see the lookup-table and decide what is the next hop to send the packet to. That's all that every one of these routers are doing. So packet arrives, you look up the lookup table, find the next hop for the destination, given the destination field in the table entry, and then you route it. This is static routing, so the next hop is static. Now, what does it mean to make it active? Well active means that this routers are not looking up any tables, but they're making dynamic decisions. How can they take the dynamic decision? This is a vision that was proposed by Tennenhouse and Weatherall in the mid 90s, and it is called Active Network. Now if you look at the packet, it consists of three parts. There is, of course, the destination, where the packet has to reach, the payload, but there's a new thing, which is the code. What happens is that when a packet comes in, this router is going to execute this code and make a dynamic decision where to send that packet, and this code has to be carried in every packet, and it can be executed in the routers between source and destination. That way, routers can make dynamic routing decision. So that's the idea behind active network. Unfortunately, this was proposed in the mid 90s, but this was way ahead of its time. The principal shortcomings of the active network vision versus the reality is the fact that the lots of vulnerabilities that you have to be worried about. The first of all, there's the protection threats that a packet is carrying code, and it is going to execute in a router, God knows what it's going to do, so that's one big source of concern. The second is resource management threats, meaning that if a package that comes in has code that is going to get executed in the router, what kind of resources is it going to use as a router, and how is it affecting other flows through the network fabric? So that becomes another important issue. Perhaps a very important issue is the fact that the router vendors are loath to opening up the network, and letting arbitrary code to run on the routers. So Cisco is a router king, it cannot tell router, "Open up your network so that I can execute coordinate orders" So that's not something that is going to happen really easily. So there were lots of things that even though the vision was very exciting between vision and reality, and perhaps one of the fundamental concern, of course, is also the fact that when you're doing software routing, meaning that a packet comes in, you're not just looking up a table, and then dispatching the packet immediately where it's executing code, which is executing in software, that is going to be much slower than meeting the line speeds at which hardware routers work. So that's the point that killed that vision in the mid 90s. This is the resurrection of this active network idea today, and the new name, of course, is something that you all know, software defined networks. Why is it that this vision of active network seems very palatable today? Well, there are several reasons, perhaps most importantly, there's a confluence of two powerful sources. The first one is wide area network, and in the wide area network, what's going on is that you've got technology giants like Facebook and Google, and other content developers who are putting out content on the web, and they want control over how their packets are flowing through the network. Which means that they want to build their own distribution network, and not just depend on the vanilla Internet. The reason is when they have control, they can also give preferential treatment to some flows over the others, and sometimes this can get you into trouble with the FCC, it violates net neutrality principle, and that's a concept and debate that is still ongoing, but we won't get into that. But the important point is that there's need for technology giants to build their own network and control their own network was one important factor. The second important factor is Cloud Computing. What Cloud Computing is wanting, is first of all, it wants to provide layer to semantics, which is what Wide Area Internet already has. It wants to give every individual customer a Virtual Network that they can have the feeling that they own it. So the service providers want to provide dynamic routing decisions to ensure performance isolation for the network traffic when you have multi-tenancy in the network. So these are two powerful forces at work in bringing this vision of active networks back again into contention. Simultaneously, what's happening is that, I mentioned that earlier, the hardware providers like Cisco were loath to opening up the network. But now there are chipsets available for assembling your own router, so it's much easier than, I don't mean that everybody like you and me, but technology giants like Cisco, or Facebook, if they want to build their own router, no problem, they can build it together. Chipsets are available, makes it easy for building your own router, skirting the need for buy in from router vendors. So these are all the factors that make the idea of active routing once again, feasible in today's world.