Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
C Objective-C Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
Point to multipoint file transfer protocol over UDP using automatic repeat requests (ARQ) usage: p2mpclient server-1 server-1-port [server-2 server-2-port ... server-r server-r-port] file-name N MSS max-rtt server-n - server-n's ip address (at least 1 server should be specified, max 10) server-n-port - server-n's port (at least 1 server should be specified, max 10) file-name - file to be transferred N - window size MSS - maximum segment size of each segment (< 1500) max-rtt - maximum rtt (in ms) of all receivers (found using rttserver and rttclient programs) p2mpserver port# file-name N p port# - port number to which the server is listening file-name - file where the data will be written N - window size p - probability of packet loss, ranges between 0 and 1 rttserver port port - port to bind to rttclient ip-addr port n ip-addr - ip-address of the server port - port of the server n - number of packets to be sent Steps: 1. make 2. run rttserver and rttclient to determine rtt of the connection 3. run p2mpserver and p2mpclient to start file transfer Files of concern: 1. p2mp.c[h] - common functions used by p2mpserver, p2mpclient, rttserver and rttclient 2. p2mpclient.c[h] - entry point function for p2mpclient 3. rdt_send.c - data aggregator thread 4. sender_thread.c - packet sending thread for p2mpclient 5. receive_thread.c - packet receiving thread for p2mpclient 6. timer_thread.c - timer expiry thread 7. p2mpserver.c[h] - entry point function for p2mpserver