Basic TCP & UDP client/server using IPv6 extension headers

W Toku Opublikowano Oct 12, 2014 Płatność przy odbiorze
W Toku Płatność przy odbiorze

I am working on a software defined network project, and I need a basic TCP and UDP client and server to drive traffic on the network, written in C, C++, or Python. (Most preferred, C code that can be later wrapped in Python.) This is for a research project, so I am looking for a simple but functional program provided quickly (doesn't need to be tuned tightly for production-grade performance). Program must work on Ubuntu 14.04 (portability to other OS's not required).

Both client and server need to: 1) work on IPv6 networks, 2) add specified data tags to each packet in the Destination Options field (formatting given by RFC 2460 and RFC 3542, with type 30 (experimental) header data within the type 60 (destination options) header field).

Server setup: Accept a data structure of 64-bit uint host ID and variable-length string item name. Each host ID will have multiple item names associated with it (example: host ID = 1:0:0:0:0:0:0:1, item names = ['a', 'b', 'c', 'd']), and each server will have to serve multiple host IDs. Generate random dummy data (30-800 bytes long) associated with each tuple. Accept a command-line argument specifying either TCP or UDP operation.

Server operation: Open a listening socket on the addresses given by [network address]:[host ID] (continuing example, if network ID is 2001:: and host ID = 1:0:0:0:0:0:0:1, server should open a socket on 2001::1:0:0:0:0:0:0:0:1). TCP operation: accept connection requests to the open address, parse the packet payload for the item name (example, 'a'), reply with the dummy data associated with item 'a', then close the connection. Reply packets should be tagged in the destination options field with the item name. UDP operation: listen for inbound packets on the given addresses, parse the item name from the destination options field, then reply with a single packet, with the item name in the destination options field and the associated data in the payload field.

Client setup: Accept a data structure pairing network address to host ID (one-to-one mapping), and a data structure listing the data items associated with each host ID. Accept a command-line argument specifying either TCP or UDP operation, a maximum transmission rate (in requests per second), and a maximum number of requests to make. For UDP operation, also accept a retry parameter specifying the time to wait for the return packet (if no reply, resend the request after X milliseconds).

Client operation: TCP: Randomly select a network address-host ID entry and randomly select one data item associated with that host ID. Establish a connection to the server at the selected address, and transmit a packet with the data item name in the payload. This packet should also be tagged in the destination options field with the item name. Close the connection after receiving the reply. Record the network address, host ID, data item, and total elapsed time from first packet sent until completion of the TCP session. UDP operation: Randomly select a network address-host ID entry and randomly select one data item associated with that host ID. Transmit one packet to the selected address, tagged with the data item name in the destination options field. If no reply received by the expiration of the timer, resubmit the request (repeat a maximum of 10 times). Record the network address, host ID, data item, and total elapsed time from first packet sent until receipt of the reply.

Programowanie C Programowanie w C++ Linux Python

Numer ID Projektu: #6580383

O projekcie

9 ofert Zdalny projekt Aktywny Oct 13, 2014

Przyznany użytkownikowi:

dobreiiita

Hello I am C and C++ expert and interested in this project. I have reviewed your requirements and confident to handle it perfectly. Please communicate to discuss further. Regards Anshu

$631 USD w ciągu 5 dni
(238 ocen)
6.8

9 freelancerów złożyło ofertę za $560 w tym projekcie

msabouri

A proposal has not yet been provided

$300 USD w ciągu 1 dnia
(70 Oceny)
5.9
letshappy

hello i am red hat certified engineer and i easily can do this task bcz i am more then 4 year experience in this field i am expert in java,python,xbmc, perl and many ready to start now thanks

$526 USD w ciągu 4 dni
(30 Oceny)
5.6
Venky117

hi... i can do this. Please let me know to start immediately. i can deliver you on time. Please initiate communication to discuss further. thanks

$555 USD w ciągu 10 dni
(48 Oceny)
5.1
mayurtrivedi786

hello sir I have a great tram for this work and we have a experienced person in this field we are able to gove a good output for your work . we have a 4 years of experience in this field so contact me sir a give a full Więcej

$1111 USD w ciągu 25 dni
(0 Oceny)
0.0
cjgilbert

I've been writing C++ professionally for well over a decade, and specialise in low-level TCP and UDP networking. If you tell me a bit more about your requirements I can tailor a solution that will work for you. I've Więcej

$722 USD w ciągu 10 dni
(0 Oceny)
0.0
brunodias80

I already did IPv6 socket programming extensively for sectors such as telecommunication, business training and National social security sectors, where I excel meeting deadlines and in code quality as well as overall sy Więcej

$666 USD w ciągu 20 dni
(0 Oceny)
0.0
patchouli

Many of the things you're looking for have already been implemented by linux's syscalls. I can write the program for you in C, but I have no experience in wrapping Python code around it. I've done socketing programm Więcej

$250 USD w ciągu 10 dni
(0 Oceny)
0.0