Raw Sockets - UDP client _ REQUIREMENT
Posted on 2011-03-11
I have the following requirements (on a Linux machine):
1- Spoof multiple source IP addresses (10,000):
Source and destination MAC addresses will be the same.
Source IP addresses will be taken from a text file. Destination IP address will be fixed. Transport protocol will be UDP, source and destination ports will be fixed. Packets created must be valid (checksums/CRC) because they will be sent to a real server.
2- Keep track of the number of packets sent by each IP. To accomplish this, write a sequence number in the UDP payload - counter will be 32 bit wide. Append to the sequence number created a fixed string of characters.
3- The program should be able to generate half a million to a million of packets per second.
Frames sent will be be at the minimum 120 bytes. Each host will send 5 packets and the program will cycle through all 10,000 hosts.
4- Randomize the amount and the size of of packets sent per host. Maximum packet size will be 320 bytes long.
My preference is to use PERL if it is possible and use Raw sockets. But I am also opened to C++ if it is an absolute requirement to get this working.
First question ( at 500 points), please indicate the modules I should use if using PERL, or if using C++
please explain your choice and why it must be done that way.
I will raise 4 other questions (at 500 points), one for each of the items described above.