"... In the past couple of years we’ve seen quite a change in the wireless industry: Handsets have become mobile computers running user-contributed applications on (potentially) open operating systems. It seems we are on a path towards a more open ecosystem; one that has been previously closed and propri ..."

In the past couple of years we’ve seen quite a change in the wireless industry: Handsets have become mobile computers running user-contributed applications on (potentially) open operating systems. It seems we are on a path towards a more open ecosystem; one that has been previously closed and proprietary. The biggest winners are the users, who will have more choice among competing, innovative ideas. The same cannot be said for the wireless network infrastructure, which remains closed and (mostly) proprietary, and where innovation is bogged down by a glacial standards process. Yet as users, we are surrounded by abundant wireless capacity and multiple wireless networks (WiFi and cellular), with most of the capacity off-limits to us. It seems industry has little incentive to change, preferring to hold onto control

"... High-speed networking systems are typically built from many modules strung together in a pipeline. Examples of such systems include routers, firewalls, load-balancers and IDSs. High-speed systems must run at line-rate, and so commonly require at least some modules to be implemented in custom hardwar ..."

High-speed networking systems are typically built from many modules strung together in a pipeline. Examples of such systems include routers, firewalls, load-balancers and IDSs. High-speed systems must run at line-rate, and so commonly require at least some modules to be implemented in custom hardware. A developer faces two problems when building these systems: 1. How do they partition their design over different subsystems; which modules belong in CPU, FPGA, ASIC, NPU? In current systems, they have to decide at design time; changing the partition later is very hard, and often requires significant redesign. 2. How do they test modules—realistically—before putting in all the effort/money to put them in specialized hardware (FPGA or ASIC)?

"... OpenFlow [6] has been demonstrated as a way for researchers to run networking experiments in their production network. Last year, we demonstrated how an OpenFlow controller running on NOX [4] could move VMs seamlessly around an OpenFlow network [1]. While OpenFlow has potential [3] to open control o ..."

OpenFlow [6] has been demonstrated as a way for researchers to run networking experiments in their production network. Last year, we demonstrated how an OpenFlow controller running on NOX [4] could move VMs seamlessly around an OpenFlow network [1]. While OpenFlow has potential [3] to open control of the network, only one researcher can innovate on the network at a time. What is required is a way to divide, or slice, network resources so that researchers and network administrators can use them in parallel. Network slicing implies that actions in one slice do not negatively affect other slices, even if they share the same underlying phys-ical hardware. A common network slicing technique is VLANs. With VLANs, the administrator partitions the network by switch port and all traffic is mapped to a VLAN by input port or explicit tag. This coarse-grained type of network slicing complicates more interesting experiments such as IP mobility or wireless handover.

"... Software-defined networking (SDN) has emerged as a new paradigm of networking that enables evolvable and programmable networks allowing network operators, owners, vendors, and even third parties to innovate and create new capabilities at a faster pace. The SDN paradigm shows potential for all domain ..."

Software-defined networking (SDN) has emerged as a new paradigm of networking that enables evolvable and programmable networks allowing network operators, owners, vendors, and even third parties to innovate and create new capabilities at a faster pace. The SDN paradigm shows potential for all domains of use including the data center, cellular, service provider, enterprise, and home. In this paper we present SDN deployments that we did on our campus and other deployments that we led with partners over four years in four phases. Our deployments include the first ever SDN prototype in a lab to a (small) global deployment. The deployments combined with demonstrations of new networking capabilities enabled by SDN played an important role in maturing of SDN and its ecosystem so far. We share our experiences and lessons learned that have to do with demonstration of SDN potential; influence on successive OpenFlow specifications; evolution of SDN architecture; performance of SDN and various components; and growing the ecosystem.

"... Re-distributed by Stanford University under license with the author. This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License. ii I certify that I have read this dissertation and that, in my opinion, it is fully adequate ..."

Re-distributed by Stanford University under license with the author. This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 United States License. ii I certify that I have read this dissertation and that, in my opinion, it is fully adequate

iii iv The scale and expense of modern virtualized data centers motivates running them as effi-ciently as possible. These data centers are primarily composed of physical machines run-ning virtualization software, with each physical machine hosting many virtual machines (VMs) simultaneously. The performance of the workload running inside a VM is affected not only by other VMs on the same physical machine, but in the case of a workload that uses the network, the location of the VM and other VMs it is communicating with in the network topology, and the utilization of all network links in between. This thesis explores how the performance of workloads running inside VMs can be improved when network traffic and topology data informs the assignment of VMs to physical machines (VM place-ment). To answer this question, I built a network control system based on the OpenFlow control protocol, Beacon, and a cluster control system that managed the Xen virtualization layer,

"... ii iv The very tool of fairness is sufficient for systematic unfairness. v vi Our smartphones are increasingly becoming loaded with more applications and equipped with more network interfaces—3G, 4G, WiFi. The exponential increase in applications for mobile devices has powered unprecedented growth f ..."

ii iv The very tool of fairness is sufficient for systematic unfairness. v vi Our smartphones are increasingly becoming loaded with more applications and equipped with more network interfaces—3G, 4G, WiFi. The exponential increase in applications for mobile devices has powered unprecedented growth for mobile networks. Mobile operating system and mobile network infrastructure are struggling to cope with this growth. In this thesis, I advocate that we use all of the networks around us. Our smartphones are already equipped with multiple radios that can connect us to multiple networks at the same time. By using those connections, we can open up tremendous capacity and coverage to better serve users, applications, and network operators alike. If done right, this will provide mobile users with seamless connectivity, faster connections, even lower charges and