Linux Internals Projects for Beginners | Network Packet Generator Project
Linux Internals Projects for Beginners – Network Packet Generator Project

About this project
Implement a command line based TCP/IP network packet generator and generate various network traffic depending on the user input.
About this project
TYPE | Individual project |
DIFFICULTY | Advanced |
ESTIMATED TIME | 70 hours |
PUBLISHED | 15th March, 2021 |
CONTACT | training@emertxe.com |
Introduction
One of the key requirements of network is the ability to handle a large volume of data. Network should have necessary resilience to handle, which is simulated using Network packet injectors in test environment. These packet injectors create a large volume of a particular network protocol traffic and help application developers to do load testing.
The goal of this project is to create a command line based Network packet injector that will generate all major protocol packets (ex: HTTP). For implementation RAW sockets are used.
Requirement Details
Here is the list of requirements that need to be implemented in this project.
- The packet generator should provide a prompt to the user upon invocation “PG>”
- It should provide a “help” menu that would display various packets & options supported
- Options to be supported as follows. The user can give one or all options
- Appropriate error handling needs to be done
- Option details:
- generate_tcp
- generate_udp
- generate_ip
- generate_icmp
- After packet generation it should be verified using network packet analyzer tool like Wireshark
Skeleton Code
The skeleton code in a very interesting concept used in Emertxe. By looking into the skeleton code, you will get a clear picture into converting the given requirement into a working solution. This will also take care of important aspects like modularity, clean coding practices, re-usability etc.
Sample Output
Here are the sample output expected by the end of project execution.

Fig1: Packet Generation

Fig2: Packet Sniffer

Fig3: UDP packet dump