I. Introduction
In any network, traffic is heterogeneous in nature carrying packets of different applications and users. Typically each application has a requirement in terms of delay, end-to-end time, jitter, etc for its correct and useful usage. In order to meet these requirements the service providers usually apply Quality of Service (QoS) to different application flows. These QoS actions are in the form of prioritizing traffic of one application over the other. To facilitate these QoS actions, the flows originated from different applications need to be identified correctly. This task of identifying the application to which an aggregate set of packets belong to is known as traffic classification [8], [24]. Traffic classification also has applications in security monitoring where administrator of a network may block certain applications from being used in her network. In addition, traffic classification and characterization is useful for network management activities like traffic engineering, resource provisioning, network fault detection and localization and also in identifying anomalies. It also assumes relevant significance even from a privacy standpoint, e.g. classification of sensitive applications/services may be maliciously exploited from eavesdroppers/unauthorized entities.