http://dl.acm.org/citation.cfm?id=2620736
2015/12/08 01:57:12 cited by 10
Monitoring the flow of traffic along network paths … For example, traffic engineering requires measuring the ingress-egress traffic matrix; debugging a congested link requires determining the set of sources sending traffic through that link; and locating a faulty device might involve detecting how far along a path the traffic makes progress.
Past path-based monitoring systems operate by diverting packets to collectors that perform “after-the-fact” analysis, at the expense of large data-collection overhead … this paper … do more efficient “during-the-fact” analysis.
We introduce a query language that allows each SDN application to specify queries independently of the forwarding state or the queries of other applications. The queries use a regular-expression-based path language that includes SQL-like “groupby” constructs for count aggregation. We track the packet trajectory directly on the data plane by converting the regular expressions into an automaton, and tagging the automaton state (i.e., the path prefix) in each packet as it progresses through the network.
The SDN policies that implement the path queries can be combined with arbitrary packet forwarding policies supplied by other elements of the SDN platform. A preliminary evaluation of our prototype shows that our “during-the-fact” strategy reduces data-collection overhead over “after-the-fact” strategies.
aggregate statistics at individual links
this paper … develop … a “tunable” Neat Freak for path queries in SDNs. Our query language allows users to ask questions about packets traversing paths specified using regular expressions of boolean packet predicates.
Our run-time system implements these queries by generating OpenFlow rules that analyze packets as they flow through the network’s data plane, to avoid directing every packet (or postcard) to collectors for analysis … record packets’ past trajectories onto bits on the packets themselves (i.e., tags) … the necessary information is just the packet’s current state on a Deterministic Finite Automaton (DFA) that represents the path queries
… the main objective of the path query implementation is to find a way to use existing switch-level primitives (e.g., specified by the OpenFlow API) to recognize packets directly on the data plane as they move through trajectories satisfying the path queries …
use Pyretic as an intermediate language to translate the DFA
The final step is merging the policies generated from the DFA with the global packet forwarding policy generated by other SDN applications.
tagging
policy: DFA transitions on packetsunaffected
: identity function on those packets that do not
undergo a state changefwding
, forwarding policycounting
identifies the accepted packets
((tagging + unaffected) >> fwding) + counting
we show how to answer queries on packet paths --- i.e., packet observations spread across space and time.