Reference. Active Learning of Symbolic NetKAT Automata
NetKAT is a domain-specific programming language and logic that has been successfully used to specify and verify the behavior of packet-switched networks. This paper develops techniques for automatically learning NetKAT models of unknown networks using active learning. Prior work has explored active learning for a wide range of automata (e.g., deterministic, register, Büchi, timed etc.) and also developed applications, such as validating implementations of network protocols. We present algorithms for learning different types of NetKAT automata, including symbolic automata proposed in recent work. We prove the soundness of these algorithms, build a prototype implementation, and evaluate it on a standard benchmark. Our results highlight the applicability of symbolic NetKAT learning for realistic network configurations and topologies.
Cite
Cited by (1)
Weighted NetKAT: A Programming Language for Quantitative Network Verification suarezacevedo-2026-weighted
We introduce weighted NetKAT, a domain-specific language for modeling and verifying quantitative quantitative network properties. The language is parametric on a semiring , enabling the treatment of a wide range of quantities in a uniform way. We provide a denotational semantics and an equivalent operational semantics, the latter based on a novel model of weighted NetKAT automata ( WNKA ) capturing the stateful behavior of our language. With WNKA , we obtain a class of generic decision procedures for reasoning about quantitative safety and reachability in a fully automatic way, even in the presence of possibly unbounded iteration. We demonstrate the applicability of our framework in a case study using Internet2’s Abilene network as the underlying topology.
Cites 32 works (1 here)
With notes (1)
NetKAT: Semantic foundations for networks anderson2014netkat
Recent years have seen growing interest in high-level languages for programming networks. But the design of these languages has been largely ad hoc, driven more by the needs of applications and the capabilities of network hardware than by foundational principles. The lack of a semantic foundation has left language designers with little guidance in determining how to incorporate new features, and programmers without a means to reason precisely about their code. This paper presents NetKAT, a new network programming language that is based on a solid mathematical foundation and comes equipped with a sound and complete equational theory. We describe the design of NetKAT, including primitives for filtering, modifying, and transmitting packets; union and sequential composition operators; and a Kleene star operator that iterates programs. We show that NetKAT is an instance of a canonical and well-studied mathematical structure called a Kleene algebra with tests (KAT) and prove that its equational theory is sound and complete with respect to its denotational semantics. Finally, we present practical applications of the equational theory including syntactic techniques for checking reachability, proving non-interference properties that ensure isolation between programs, and establishing the correctness of compilation algorithms.
External (31)
- KATch: A Fast Symbolic Verifier for NetKAT (2024)
- SwitchV: automated SDN switch validation with P4 models (2022)
- Guarded Kleene Algebra with Tests: Automata Learning (2022)
- Prognosis: closed-box analysis of network protocol implementations (2021)
- Inferring Symbolic Automata (2020)
- 29th USENIX Security Symposium (USENIX Security 20) (2020)
- CacheQuery: learning replacement policies from hardware caches (2019)
- The Learnability of Symbolic Automata (2018)
- The Power of Symbolic Automata and Transducers (2017)
- Learning Symbolic Automata (2017)
- Learning-Based Testing the Sliding Window Behavior of TCP Implementations (2017)
- Model learning and model checking of SSH implementations (2017)
- A Generic Algorithm for Learning Symbolic Automata from Membership Queries (2017)
- A fast compiler for NetKAT (2015)
- Learning Extended Finite State Machines (2014)
- Learning Fragments of the TCP Network Protocol (2014)
- The TTT Algorithm: A Redundancy-Free Approach to Active Automata Learning (2014)
- Applications of Symbolic Finite Automata (2013)
- The Internet Topology Zoo (2011)
- Angluin-style learning of NFA (2009)
- Synthesis of interface specifications for Java classes (2005)
- Automata on guarded strings and applications (2001)
- Learning Ordered Binary Decision Diagrams (1995)
- Test Selection Based on Finite State Models (1991)
- Learning Regular Sets from Queries and Counterexamples (1987)
- Linear automaton transformations (1958)
- 10.1145/2676726.2677011
- 10.7551/mitpress/3897.001.0001
- 10.1007/978-3-031-57249-4_6
- 10.5281/zenodo.15230071
- 10.7298/y5x5-jr17