Ryan Beckett will present his FPO, "Network Control Plane Verification and Synthesis" on Monday, 7/23/2018 at 2pm, 101 Marx Hall.

The members of his committee are as follows: Nonreaders: David Walker (adviser), Aarti Gupta, Jennifer Rexford, Nick Feamster, and  Ratul Mahajan (Intentionet); Readers: Aarti Gupta and  Ratul Mahajan (Intentionet) 

All are welcome to attend.  Please see abstract below.


Computer networks have become an integral part of modern infrastructure, and as the world continues

to become increasingly interconnected and more devices come online, the importance of

networks will only continue to grow. A critical component of networks is a process called routing,

whereby the network determines how to move data from point A to point B as changes occur dynamically

(e.g., when new devices connect or equipment fails). Routing is traditionally achieved

through the manual configuration of one or more distributed protocols that exchange messages

about available routes to different destinations. Manual configuration lets a network operator tune

various low-level protocol parameters to accommodate the different economic-, performance-, and

robustness-related objectives that they may have for the network. Unfortunately, the low-level nature

of existing configuration primitives and the scale of modern networks makes it difficult for

humans to predict the impact of configuration on all possible runtime behaviors of the network,

often resulting in configuration bugs.

This dissertation develops two complementary techniques for proactively finding and preventing

bugs in configurations. The first technique is verification. Given a collection of router configurations

and a high-level specification of what the network should do (e.g., certain devices should

be reachable), verification aims to ensure that the configurations implement this high-level specification

correctly for all possible network behaviors. To address this problem, we develop a formal

model of network routing protocols and show how many common protocols can be translated to

logic constraints that existing constraint solvers can solve to find (or prove the absence of) bugs.

The second technique is synthesis. Given a high-level specification of what the network should do,

synthesis aims to produce a collection of configurations that faithfully implement the specification

for all possible dynamic network conditions. We develop a new high-level language for describing

end-to-end network behavior and demonstrate an efficient synthesis algorithm that can generate

correct configurations. Throughout the development of both techniques, we show the importance

of “abstraction” in speeding up each technique by several orders of magnitude.