Each filter is intended to classify, parse and allow filtering one of the protocols. The filters with category "protocol filter" are always final in a filtering chain and indicate the classified and extracted protocol object via dataAvailable()/dataPartAvailable() events. Preprocessors are intermediate filters, intended to decode the transmitted data for protocol filters. For example, SSL preprocessor decodes the encrypted content and passes the result to other filters in chain, then encodes the returned filtered content before it goes to destination.
The filters irrelevant to session protocol are deleted from chain automatically.