This document discusses network intrusion detection systems (NIDS). It describes what an intrusion detection system is, why they are required to protect confidentiality, integrity and availability, and how they work by monitoring network traffic and detecting anomalous behavior. It outlines different types of NIDS including host-based and network-based, and how the popular open-source NIDS Snort functions using rules, signatures, and protocol analysis to generate alerts when it detects suspicious network activity. Challenges with NIDS are also discussed.