  Deep packet inspection is widely recognized as a powerful way which is used
for intrusion detection systems for inspecting, deterring and deflecting
malicious attacks over the network. Fundamentally, almost intrusion detection
systems have the ability to search through packets and identify contents that
match with known attacks. In this paper, we survey the deep packet inspection
implementations techniques, research challenges and algorithms. Finally, we
provide a comparison between the different applied systems.
