Yami,

I know it was only an example, but your "DNS is only over UDP" is a bad one.
DNS can use TCP for any query/response, either when the response is bigger
than a 512byte PDU, or when doing AXFR zone transfers.

But in princple the idea of preventing redundant dissection is great. I
often see wireshark spending time performing dissection when, at least to my
mind, it is probably redundant.

Regards, Martin

martinvisse...@gmail.com


2009/3/18 yami <yami...@gmail.com>

> Hi dev,
>
> I have implemented a prototype to speed up interactive filtering. The key
> idea is to reuse previous display information. (Is there anyone interested
> in this idea?)
>
> For example, a user filters 'udp' first, then he tries to filter 'dns'.
> Since we know that only packets passed 'udp' filter string have the
> possibility to pass 'dns', there is no need to dissect packets not passed
> the 'udp' filter.
>
> This could be a big gain, if the capture is large, but UDP packets occupy
> only a small portion of it.
>
> In my current implementation, if in the second filtering, the user inputs
> 'udp && dns', Wireshark will find that 'udp' has already been filtered, so
> if a packet did not passed 'udp', Wireshark will not dissect it again.
>
>
> The above is only the simplest case. In general this is a Boolean
> Satisfiability [1] problem. Assume a new display filter, say D, contains
> previous applied filters S1, ..., Sn. We know that S1...Sn are subtrees of
> D's syntax tree.
>
> And for packet P, if it passed Si then assigned Bi to 1, otherwise 0, so we
> get B1,...,Bn; then we can generate a boolean expression, say EXP, for D
> with its subtrees S1,...,S2 replaced by B1,...,Bn.
>
> If EXP could never be true, then P will not pass D (we know this without
> dissecting/filtering).
> If !(EXP) could never be true, then P will pass D.
> If the above two are satisfied, we should dissect/filter P.
>
> [1] http://en.wikipedia.org/wiki/Boolean_satisfiability_problem
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to