This project involves analyzing network traffic data using Python to identify patterns, detect anomalies, and gain insights into network performance and security. The project utilizes various libraries and tools for data collection, processing, and visualization.
- Packet Sniffing: Capturing network traffic data using scapy with user-defined filters and saving it to a file.
- Data Processing: Parsing and cleaning the captured data to extract relevant features such as IP addresses, ports, protocols, and timestamps.
- Traffic Analysis: Implementing techniques to analyze the traffic for patterns, including:
- Protocol distribution analysis
- Top talkers and listeners identification
- Bandwidth usage analysis
- Anomaly Detection: Using statistical methods and machine learning algorithms to detect unusual traffic patterns that may indicate security threats or network issues.
- Visualization: Creating interactive and informative visualizations using plotly to present the analysis results clearly.
The project utilizes the following libraries and techniques:
- Scapy: A powerful Python library for network packet manipulation and analysis.
- Plotly: A data visualization library for creating interactive and customizable plots.
- Deque and Counter: Data structures from the collections module used for efficient storage and analysis of packet timestamps and details.
- Multithreading: Allows concurrent execution of packet sniffing and visualization for a responsive user experience.
- Logging: Enables structured logging for informative output and error handling during the execution of the program.