Core Concepts
KATch ist ein neues Werkzeug zur effizienten symbolischen Verifikation von NetKAT-Programmen, das neue Datenstrukturen und Algorithmen verwendet, um Verifikationsanfragen deutlich schneller als bisherige Ansätze zu beantworten.
Abstract
Der Artikel stellt KATch, ein neues Werkzeug zur symbolischen Verifikation von NetKAT-Programmen, vor. NetKAT ist eine domänenspezifische Sprache zur Spezifikation und Verifikation des Verhaltens von Netzwerkdatenebenen.
Die Hauptbeiträge sind:
Effiziente symbolische Darstellungen (Abschnitt 3):
Entwicklung einer neuen Datenstruktur namens "Symbolische Paketprogramme" (SPPs), die Pakete und Transformationen symbolisch repräsentieren und dabei asymptotisch effizienter sind als bisherige Ansätze.
SPPs unterstützen effiziente sequentielle Komposition und können kanonisch gemacht werden, was zusammen mit Hash-Konsistenz ein konstantes Zeitäquivalenzprüfen ermöglicht.
Symbolische Brzozowski-Ableitungen (Abschnitt 4):
Einführung einer neuen Form symbolischer Brzozowski-Ableitungen, um Automaten für NetKAT-Programme zu erzeugen.
Dieser Ansatz unterstützt natürlich und effizient die erweiterten "negativen" logischen Operatoren, im Gegensatz zu früheren Ansätzen, die nur "positive" Operatoren wie Union unterstützten.
Symbolische Bisimulationsüberprüfung (Abschnitt 5):
Entwicklung symbolischer Algorithmen zur Überprüfung von Bisimulation, einschließlich eines neuartigen rückwärtsgerichteten Algorithmus, der symbolische Gegenbeispiele zur Äquivalenz berechnet.
KATch-Implementierung (Abschnitt 6) und Evaluation (Abschnitt 7):
Präsentation des neuen Verifikationswerkzeugs KATch, das die symbolische Bisimulationsüberprüfung, einschließlich erweiterter logischer Operatoren und symbolischer Gegenbeispiele, implementiert.
Evaluation von KATch auf einer Vielzahl realer Topologien, die zeigt, dass es Verifikationsanfragen deutlich effizienter als bisherige Ansätze beantworten kann.
Stats
Für realistische Beispiele ist KATch mehrere Größenordnungen schneller als frühere Implementierungen von NetKAT.
Auf synthetischen kombinatorischen Benchmarks ist KATch um beliebig große Faktoren schneller als frühere Arbeiten.
Quotes
"KATch ist ein neues Werkzeug zur effizienten symbolischen Verifikation von NetKAT-Programmen, das neue Datenstrukturen und Algorithmen verwendet, um Verifikationsanfragen deutlich schneller als bisherige Ansätze zu beantworten."
"Die Hauptbeiträge sind effiziente symbolische Darstellungen, symbolische Brzozowski-Ableitungen, symbolische Bisimulationsüberprüfung und die KATch-Implementierung mit Evaluation."