Skip to content

Commit

Permalink
Update to use HDC, update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Arkay92 committed Oct 20, 2024
1 parent 985415b commit 59c8e75
Show file tree
Hide file tree
Showing 4 changed files with 289 additions and 444 deletions.
33 changes: 22 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# PacketFlowAI
PacketFlowAI is a sophisticated tool powered by deep learning, specifically designed for the real-time classification of network packets using Convolutional Neural Networks (CNN). By integrating the robust capabilities of PyTorch for model development and Scapy for packet capture and processing, PacketFlowAI is a highly efficient solution for discerning various types of network traffic.
PacketFlowAI is a cutting-edge network security tool that uses Hyperdimensional Computing (HDC) to classify network packets in real-time. By transitioning from traditional Convolutional Neural Networks (CNN) to hyperdimensional computing, PacketFlowAI delivers improved robustness, scalability, and efficiency for packet classification. It leverages PyTorch for model development and Scapy for real-time packet capture and processing, providing a powerful solution for detecting and classifying various types of network traffic.

## Features
- Real-time packet capture and classification
- Custom CNN architecture for packet feature analysis
- Training and evaluation on a labeled dataset
- Normalization and scaling of packet features for optimal performance
- Easy-to-use command-line interface for training and live packet capture modes
- Real-time packet capture and classification with hyperdimensional computing
- Hypervector-based data representation for robust and noise-tolerant classification
- Customizable model architecture designed for high-dimensional input
- Training and evaluation on labeled datasets using hyperdimensional techniques
- Flexible command-line interface for training and live packet capture modes
- Scalability and adaptability to new features and network threats

## Installation
To set up PacketFlowAI, follow these steps:
Expand Down Expand Up @@ -34,25 +35,35 @@ To train the model on your dataset, use the following command:
python main.py --mode train
```

This will train the model using the dataset specified in the code and save the best-performing model for future use.
This command will preprocess the dataset, convert the packet features and textual data into hypervectors, and train the model using hyperdimensional techniques. The best-performing model is saved for future use.

### Live Capture Mode
For on-the-fly classification of network traffic, enter the following:

```bash
python main.py --mode capture [--interface <interface_name>]
```
The --interface flag is optional and allows you to specify the network interface for packet capture. If not provided, it defaults to 'eth0'.
The --interface flag allows you to specify the network interface for packet capture (e.g., eth0 or wlan0). If not provided, it defaults to eth0.

Note: Ensure you possess the requisite permissions for packet capture on the chosen network interface.
Ensure you have the necessary permissions for capturing packets on the chosen interface.

PacketFlowAI will capture packets, convert their features into hypervectors, and classify them using the trained model.

## Customization

PacketFlowAI offers flexibility allowing you to tailor the CNN architecture, dataset, and training parameters. Simply adjust the settings in the main.py script to align with your specific requirements.
PacketFlowAI provides flexibility, allowing you to customize the model architecture, dataset, and hyperdimensional parameters. You can adjust the settings in the main.py script to suit your specific use case, including:

- Modifying the hypervector dimensions and encoding methods.
- Altering the model architecture (e.g., number of layers, dropout rates).
- Adjusting training parameters (e.g., batch size, learning rate, number of epochs).

## Key Concepts in PacketFlowAI
- Hyperdimensional Computing: A novel approach where data is represented as high-dimensional vectors (hypervectors), which offers increased robustness to noise and scalability in complex environments.
- Binding and Permutation: Core operations in hyperdimensional computing that encode associations between data and capture sequential information.

## Contributing

Contributions to PacketFlowAI are welcome! Please feel free to submit pull requests or open issues to suggest improvements or add new features.
Contributions to PacketFlowAI are encouraged! If you have ideas for improvement, new features, or bug fixes, please submit a pull request or open an issue. Together, we can make PacketFlowAI more robust and feature-rich.

## License

Expand Down
Empty file added exceptions.log
Empty file.
Loading

0 comments on commit 59c8e75

Please sign in to comment.