Q

Linux Internals Projects for Beginners | Network Packet Generator Project

Home » Embedded Systems » Linux Internals | Course Home » Linux Internals | Projects » Linux Internals Project | Network Packet Generator – RAW Sockets

Linux Internals Projects for Beginners – Network Packet Generator Project

Linux Internals Projects for Beginners | Network Packet Generator Project

Project Brief


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.

Linux Internals Projects for Beginners | Network Packet Generator Project - Output 1

Fig1: Packet Generation

Linux Internals Projects for Beginners | Network Packet Generator Project - Output 2

Fig2: Packet Sniffer

Linux Internals Projects for Beginners | Network Packet Generator Project - Output 3

Fig3: UDP packet dump

References

Q