Languages for Path-Based Network Programming
MetadataShow full item record
The notion of a path is an important abstraction for reasoning about and managing computer networks. By thinking of network configuration in terms of paths (instead of individual devices), network administrators can reap significant benefits in terms of usability, performance and correctness. Paths themselves can be specified and reasoned about using foundational computational tools such as regular expressions and Kleene Algebras. Furthermore, path-based abstractions can express key network behavior such as isolation requirements and bandwidth constraints, while supporting heterogeneity in terms of devices, physical substrates and administrative domains. This dissertation shows that it is possible to use specifications of network paths, extended with constraints on traffic classes, bandwidth, and the capabilities of network devices, to enable flexible management of modern networks. This is realized by developing path-oriented domain-specific languages to express network policies. These languages show that by starting with abstractions for network paths, it is possible to specify route and bandwidth requirements for classes of traffic, delegate policy management to trusted parties, and enable high-level management of heterogenous networks. Furthermore, by leveraging techniques and tools such as mixed-integer programming, SAT solvers and SDN controller frameworks, we have built practical compilers and runtimes for these languages. These compilers take high-level specifications of network policies and generate efficient configurations for a range of network devices including packet and optical switches, middlebox frameworks and end-hosts. We have tested these implementations by building and benchmarking a range of practical applications on real-world networks.
Computer science; Finite State Automata; Optical Networking; Programming Languages; Software-defined networking
Foster, John N.
Kozen, Dexter Campbell; Kleinberg, Robert David; Farina, Cynthia Ruth
Ph. D., Computer Science
Doctor of Philosophy
Attribution-NonCommercial-ShareAlike 4.0 International
dissertation or thesis
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-ShareAlike 4.0 International