 The internet is a global network of networks that interconnects billions of people and computers around the world, transferring over 100 billion gigabytes of data each month. In our lifetimes, the internet has transformed how we communicate, how we work, how we form and sustain relationships, how we vote and govern, even how we wage war. But we hear every day about terrible internet outages and we experience the internet's frailty so often in our daily lives. We've all become glorified system administrators in our homes and with our phones. We hear every day of hacked digital cameras launching denial of service attacks, configuration mistakes bringing down cloud services, Netflix streams grinding to a halt and bank websites going offline. How much does it matter? Well studies show that users will stop going to a website if downloads take even a quarter of a second longer than a site of a close competitor. And companies lose tens of thousands of dollars for each minute of a denial of service attack for a total loss of billions of dollars per year. We need a global communications infrastructure that's truly worthy of society's trust, a network that can detect congestion and route around it to improve performance, a network that can detect cyber attacks and block them before they do serious harm and incur significant cost. In short, we need networks that offer predictable and good performance security and reliability. We need our self-driving networks, networks that can sense with network devices or switches that can monitor themselves and the traffic that they carry and networks that can react, that can adapt to changing conditions to improve performance, reliability and security without human intervention. There are actually two exciting technologies that are making this tantalizingly possible today. One is advances in machine learning. Machine learning will take raw measurements of internet traffic and internet performance and turn it into true situational awareness of what's going on inside the network. And a second are programmable network switches that allow the network to actually change how it collects and analyzes data and changes how it reacts. But to do this successfully, these networks are going to have to operate at unprecedented speed and scale. If you look at a link in the core of the internet, it carries traffic for hundreds of thousands of transfers at the same time. And each of those transfers are divided into multiple packets like this heart here that flow through the network independently. On a high speed link, a new packet of data arrives every two or three nanoseconds. So to work at that speed, the switches can really only do limited processing to compute statistics and make decisions and can only have a little bit of memory to store results. So they have to process the packets as they fly by in a streaming fashion. And they can't keep information about every ongoing transfer shown here by the packets of different colors. Instead, they can really maintain a sketch of the data, much like you're seeing up my talk on the board. In my lab, we designed techniques to allow switches to make inferences and make decisions on their own, to be able to detect the heavy hitter flows in the network, in this case the green packets responsible for half of the traffic in the network, with very little processing per packet and very little memory. And the switch can take that information and block or slow down the offending traffic. Or the detect denial of service attacks by estimating the count of the number of distinct centers that are delivering traffic to the same destination machine, flagging only the outliers to fit in limited space. Allowing then the switches to block that traffic before it does significant harm and before it incurs significant cost. And finally, to monitor the paths through the network for their performance, to learn automatically which path is performing the best right now and directing new transfers over those paths. This allows computational jobs and data centers to finish faster and for video downloads to be higher quality and quicker. These form a set of techniques that can be used to build self-driving networks. And we implement these algorithms using a new programming language called P4, that a group of us designed to enable innovation inside the network. The P4 consortium which I co-run has over 60 industry members and a number of new networking products and companies are now supporting the language allowing us now to start building self-driving networks. Going forward, we really wanna push the limits of the machine learning algorithms that we can run directly in the network switches so the internet can get smarter over time to further improve performance, security, and reliability. But still, we're gonna have to balance the tension between the sophistication of the algorithms and the efficiency of switches that can really work at the nanosecond level, and that's the big challenge. I really envision in the future the internet will be as transparent as the air we breathe, where the many networks that underlie the net simply work without the devastating slowdowns, outages, and security breaches that we see so often today. I believe that with the right combination of machine learning techniques and programmable network switches, we'll be able to build and deploy self-driving networks and truly build an internet that's worthy of the trust we increasingly place in the internet. Thank you.