Let's now try to understand a couple of related networking principles, software-defined networking, and network functions virtualization. Software-defined networking as the name suggests is about making your network more software-oriented than they were before. In that are trying to implement as many functionalities in a software and not just that, trying to implement them in generic software that could be compatible between different vendors. Currently, the way a cellular ecosystem works is that although the technology is similar, software and hardware choices of different vendors sometimes tend to diverge from each other and you tend to run into interoperability or compatibility problems between different vendors. One way, if not, the only way to solve that problem is to make your networks more software-oriented and implement that app and non-software in generic constructs rather than some vendor-specific constructs. Once you have your functionalities implemented in generic software, you can leverage a few important benefits. There are many, but some of those are listed here. For example, it might allow you to separate the control functionality from the actual device that is running. The functionality that is control of a device can be separated from the device itself. Once you aggregate control of all the devices into a few limited number of devices that can be looked at in a centralized location. Then you have essentially enabled your network to be a distributed system, which has its own set of benefits. With software-defined networking at a high level, the same underlying infrastructure because it is more software-oriented can be abstracted for different applications and network services. Not only does it make your system more resilient in that backward compatibility and interoperability is less of a problem and because you can have many different application or software developers working on that generic networking software, you also can benefit from rapid innovation in the entire ecosystem on account of the programmability that is offered by making these networks software-oriented. Another benefit of software-defined networking is what is technically called network function virtualization. But there is a simpler way to understand that. Now up to 4G part of our Wi-Fi technology, you have the networking software which is dedicated running on some certain dedicated hardware. Those hardware servers are hosted on these cellular network operators' premises. Case in point, if you have a home Wi-Fi system, you have to have that Wi-Fi access point under Internet model, look at it on-premise, you can't have them elsewhere. But although that work okay for legacy technologies, now that we are trying to upscale our technology offering into different service classes. This on-premise model doesn't turn out to be very flexible or very scalable. What is one solution to that? Well, let's go back to software-defined networking. Once you have all your networking functionalities implemented as generic and broadly compatible software, that generic software can run on top of generic or as they call it COGS, commercial off-the-shelf hardware so you don't have to have any specialized hardware anymore either. Because you are networking functionalities at least in the coordinate work, can run on generalized hardware. You as a network operator, don't have to buy any specialized hardware anymore. Normally you have to host that specialized hardware or a server firm, which turns out to be in the real networks. You don't have to host that server firm on your premise anymore as a network operator. You can safely outsource that deployment or offload it onto a Cloud network. For example, if you have AMFs running in the Cloud and you want one more AMF, all you need to do as a network operator is request your Cloud provider to download the AMF software at runtime on one or more additional a server, boot up that server, commission that and that server will, although it'll recite in the Cloud, will now be able to act as an additional AMF. The big advantage of making it into a Cloud is that you have instant scalability. Not only that, once you're traffic demands subsides and additional AMF if you had a commission is no longer necessary, you can simply ask your Cloud provider to decommission that machine and as such, you as a network operator will be charged only for the time for which that AMF machine was actively being used. That leads to certain cost efficiency as well for the network operator because having this deployment of the coordinate work not on their own premise, where they would need to invest a lot, they can have that deployment somewhere in the Cloud hosted by a third party. Because the network operator can commission and decommission resources in real-time precisely depending upon the network demand, the network operators can not only scale instantaneously but also impart a certain degree of cost-effectiveness of their network operation. That is not actually the end of the benefits of network function virtualization but here is another benefit. For example, here are multiple devices that are operating in a network. By definition, they don't care whether the AMF or SMF that they're talking to is located on operator premises or located somewhere else in the Internet domain i.e. on the Cloud as long as they get served by an instance of AMF with correct protocols, it doesn't matter to the end devices system whether that AMF resided on the premises or it resided in the Cloud. Because this cloudification, so to speak, is completely transparent with the end devices, as long as you maintain the performance guarantees between the 5G network and your Cloud providers' network, you should be able to provide reliable end-to-end 5G service without hosting a coordinate work yourself because your coordinate work is now sitting somewhere in the Cloud. That is the fundamental Internet of network function virtualization.