A network intrusion detection system (NIDS) can be classified into different types based on various criteria, such as the architecture, the deployment, or the functionality of the system. For instance, host-based NIDS (HIDS) run on a specific host or device and monitor incoming and outgoing traffic. An example of HIDS is OSSEC, an open-source program that supports multiple platforms and features. Network-based NIDS (NIDS) are used to monitor traffic of a network segment or device, such as Snort, an open-source system that uses signature, protocol, and anomaly-based detection methods. Distributed NIDS (DIDS) involve multiple sensors or agents that collect and analyze traffic from different locations and communicate with a central server or console. Suricata is an example of DIDS; it is an open-source program that supports multi-threading, hardware acceleration, and scripting. Finally, hybrid NIDS (HIDS/NIDS) combine both host-based and network-based intrusion detection systems; one example is Bro, an open-source system that uses a policy-based language to define network behavior and events.