UDP File transfer with packet recovery
This project was awarded to supercoded for $300 USD.Get free quotes for a project like this
Project Budget$250 - $750 USD
I need a custom file transfer application that uses UDP with a custom error correction module. I will give you the concept, and you need to create it. The application should be able to work in both directions. Either client can be the sender or receiver. The goal is to send data packets from point a to point b by using UDP only. One port will be used for sending the UDP data. Each packet needs to be numbered, stamped and/or time stamped. The receive machine will receive the first packet, and that receive machine will count each sequential packet as it comes into the receive machine. Since UDP is not reliable like TCP/IP and does not have confirmation of receive packets, the receive machine needs to count the sequence of packets, and if a packet is missing from the sequence, the receive machine sends a request, via another open port to send the missing packet and send it to the receive machine and insert the packet into the proper sequence so that the receive file can properly put together. I think that it would be wise to create MD5 hash so that we can verify that the file was transferred and assembled perfectly. TCP/IP gets slower as the distance between parties increases. So a internet connection with 100 up and 100 down is fast when your dealing with a client that is close to you. If you deal with someone that has a latency over 150ms, then you are lucky to get that type of throughput to the end user. TCP connections on a fat 100Meg connection will get you about 20megs maximum when the latency is over 150ms. The goal of this is project is to create one application that can compensate for errors and latency that arises when trying to transmit files from point a to point b. The application should be able to calculate current speed of transfer. The application should also be able to test connectivity from client to server, it should report the tcp maximum transmit and the udp transmit maximum, there is a tool called iperf located here [url removed, login to view] that can measure everything needed. It can send packets in udp and tcp to server to test the connectivity between point a and point b. The application is going to have to have some sort of upnp to open ports through firewalls. There should be an indicator on the application to show that the ports are opened for the transfers. This is all for version 1 of the application. Version 2 of the application should be able to find or locate friends with in the group of client/servers and request to send a file to someone, and if that person accepts the file is sent to them. Version 3 of this eventually would be amazing if we can make all of this work in Java, so that the user doesn't need to download a application, they can use java to do everything. I can provide all the testing hardware needed. You will teamviewer into two separate machines both on different sides of the world. Both connections have 100megabit connections and the goal is to get over 50Megabits of UDP transfer with recovery of any lost packets or out of order packets, and have a verified md5. Please dont waste my time with useless bids. If you think you can do this, I expect a rough explanation how you plan on doing it. The person with the best explanation will get the project. To know if you read this please start your responses with the answer of four plus four. Thanks and good luck bidding. FYI, Im a very very frequent poster of projects. You can check my history, I don't play around or waste time. I will entertain bids that are based on time, meaning x price 30days x price 15 days etc etc...
Looking to make some money?
- Set your budget and the timeframe
- Outline your proposal
- Get paid for your work
Hire Freelancers who also bid on this project
Looking for work?
Work on projects like this and make money from home!Sign Up Now
- The New York Times
- Wall Street Journal
- Times Online