To RUN the experiments for particular figure from the paper "A Performance vs. Trust Perspective in the Design of End-Point Congestion Control Protocols" a. Install ns-2 v.2.1b9a: ------------------------ 1. "cd /rcvtcp-public/" 2. "gunzip ns-allinone-2.1b9a.tar.gz" 3. "tar -xvf ns-allionone-2.1b9a.tar" 4. "cd ns-allinone-2.1b9a" 5. "./install" 6. "cd ./ns-2.1b9a" 7. "./validate" b. Run a particular experiment: ------------------------------ -------- Figure 3: -------- 3-a. Add the RCP code: --------------------- 3-1. "cd /rcvtcp-public/rcvtcp/fig3" 3-2. "cp rcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 3-3. "cp rcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 3-4. "cp rcp-tap.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 3-5. "cp rcp-tap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 3-6. "cp stap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 3-7. "cp flags.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/common/." 3-8. "cp ns-lib.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 3-9. "cp ns-default.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 3-10. "cp Makefile ../../../ns-allinone-2.1b9a/ns-2.1b9a/." 3-11. "cd ../../../ns-allinone-2.1b9a/ns-2.1b9a/" 3-12. "make" 3-13. "cp ns ../../rcvtcp/fig3/." 3-b. Run TCL script: ------------------- 3-14. "./simple.run" 3-15. "cd results-sale" 3-16. "thresh02" 3-17. "thresh05" 3-18. "thresh05-sum" 3-19. "proc-sum" 3-20. "gnuplot plotcmd-final" 3-21. The result is fig3.eps -------- Figure 4: -------- 4-1. "cd /rcvtcp-public/rcvtcp/fig4/" 4-2. "matlab" 4-3. "runtcpfig4" 4-4. "exit" (matlab) 4-5. "runplot-final.com" 4-6. The result is fig4.eps -------- Figure 5: -------- 5-1. "cd /rcvtcp-public/rcvtcp/fig5/" 5-2. "./mix/mix.sh" 5-3. "cd results-sale" 5-4. The results are in files xmit-25-0.9-0.1-*.true, where * equals RTT/2 in miliseconds. -------- Figure 7: -------- RCP Sack curve: -------------- -------------- 7-a. Add the RCP code: --------------------- 7-1. "cd /rcvtcp-public/rcvtcp/fig7/5b/code-5b/" 7-2. "cp rcp.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-3. "cp rcp.cc ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-4. "cp rcp-tap.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-5. "cp rcp-tap.cc ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-6. "cp stap.cc ../../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 7-7. "cp flags.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/common/." 7-8. "cp ns-lib.tcl ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 7-9. "cp ns-default.tcl ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 7-10. "cp Makefile ../../../../ns-allinone-2.1b9a/ns-2.1b9a/." 7-11. "cp formula.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-12."cp my-formula-with-inverse.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-13. "cp ping.cc ../../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 7-14. "cp ping.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 7-15. "cp tcp.cc ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-16. "cp tcp.h ../../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 7-17. "cd ../../../../ns-allinone-2.1b9a/ns-2.1b9a/" 7-18. "make clean" 7-19. "make" 7-20. "cp ns ../../rcvtcp/fig7/5b/." 7-b. Run TCL script: ------------------- 7-21. "./simple.run" 7-22. "cd results-sale" 7-23. "result -> data5b.m" (The transformation script is missing) 7-24. "matlab" 7-25. "data5b" (you get file5b.txt) 7-26. "exit" (matlab) 7-27. "cp file5b.txt /rcvtcp-public/rcvtcp/fig7/." TCP Sack curve: -------------- -------------- 7-28. "cd /rcvtcp-public/rcvtcp/fig7/6a." 7-29. "cp /rcvtcp-public/rcvtcp/fig8/ns ." 7-30. "./simple.run" 7-31. "cd results-sale" 7-32. "result -> data6a.m" (The transformation script is missing) 7-33. "matlab" 7-34. "data6a" (you get file5b.txt) 7-35. "exit" (matlab) 7-36. "cp file5b.txt /rcvtcp-public/rcvtcp/fig7/." Plot both curves: ---------------- 7-37. "cd /rcvtcp-public/rcvtcp/fig7" 7-38. "gnuplot plotcmd" 7-39. The result is fig7.eps -------- Figure 8: -------- 8-1. "cd /rcvtcp-public/rcvtcp/fig8/code/" 8-2. "cp rcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-3. "cp rcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-4. "cp rcp-tap.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-5. "cp rcp-tap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-6. "cp stap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 8-7. "cp flags.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/common/." 8-8. "cp ns-lib.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 8-9. "cp ns-default.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 8-10. "cp Makefile ../../../ns-allinone-2.1b9a/ns-2.1b9a/." 8-11. "cp formula.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-12."cp my-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-13. "cp mmy-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-14. "cp ping.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 8-15. "cp ping.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 8-16. "cp tcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-17. "cp tcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-18 "cp tcp-reno.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-19 "cp tcp-sack1.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 8-20. "cd ../../../ns-allinone-2.1b9a/ns-2.1b9a/" 8-21. "make clean" 8-22. "make" 8-23. "cp ns ../../rcvtcp/fig8/." 8-b. Run TCL script: ------------------- 8-24. "./simple.run" 8-25. "cd results-sale" 8-26. "result-4.0 -> data8inc4.m" 8-26. "result-9.0 -> data8inc9.m" 8-26. "result-16.0 -> data8inc16.m" 8-26. "result-25.0 -> data8inc25.m" 8-27. "matlab data8inc4.m" (you get file8inc4.txt) 8-27. "matlab data8inc9.m" (you get file8inc9.txt) 8-27. "matlab data8inc16.m" (you get file8inc16.txt) 8-27. "matlab data8inc25.m" (you get file8inc25.txt) 8-28. "gnuplot plotcmd" 8-29. The result is fig8.eps -------- Figure 8a: -------- 8a-1. "cd /rcvtcp-public/rcvtcp/fig8a/" 8a-2. "cp ../fig8a/ns ." 8a-b. Run TCL script: ------------------- 8a-3. "./simple.run" 8a-4. "cd results-sale" 8a-5. "result-0.7 -> data9dec07.m" 8a-6. "result-0.9 -> data9dec09.m" 8a-7. "matlab data9dec07.m" (you get file9dec07.txt) 8a-8. "matlab data9dec09.m" (you get file9dec09.txt) 8a-9. "gnuplot plotcmd" 8a-10. The result is fig8a.eps --------- Figure 8b: --------- 8b-1. "cd /rcvtcp-public/rcvtcp/fig8b/" 8b-2. "cp ../fig8b/ns ." 8b-b. Run TCL script: -------------------- 8b-3. "./simple.run" 8b-4. "cd results-sale" 8b-5. "result-RTO-0.5 -> dataRTO05.m" 8b-6. "result-RTO-0.1 -> dataRTO01.m" 8b-7. "matlab dataRTO05.m" (you get fileRTO01.txt) 8b-8. "matlab dataRTO01.m" (you get fileRTO05.txt) 8b-9. "gnuplot plotcmd" 8b-10. The result is fig8b.eps --------- Figure 9: --------- It is assumed that you already ran the figures 8, 8a , and 8b. 9-1. "cd /rcvtcp-public/rcvtcp/fig9/" 9-2. "cp ../fig8/results-sale/result-exp5b-final ." 9-3. "cp ../fig8/results-sale/result-alfa-4 ." 9-4. "cp ../fig9/results-sale/result-beta-0.7 ." 9-5. "cp ../fig9/results-sale/result-RTO-0.5 ." 9-6. "result-exp5b-final -> final_result-5b" 9-7. "result-alfa-4 -> final_result-alfa-4" 9-8. "result-beta-0.7 -> final_result-beta-0.7" 9-9. "result-RTO-0.5 -> final_result-RTO-0.5" ** An example transformation script for step 9-9 is "thresh-450-50RTO-full" 9-10. "gnuplot plotcmd" 9-11. The result is fig9.eps --------- Figure 10: --------- 10-1. "cd /rcvtcp-public/rcvtcp/fig10/code/" 10-2. "cp drop-tail.cc ../../..//ns-allinone-2.1b9a/ns-2.1b9a/queue/." 10-3. "cp drop-tail.h ../../..//ns-allinone-2.1b9a/ns-2.1b9a/queue/." 10-4. "cp rcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-5. "cp rcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-6. "cp rcp-tap.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-7. "cp rcp-tap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-8. "cp stap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 10-9. "cp flags.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/common/." 10-10. "cp ns-lib.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 10-11. "cp ns-default.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 10-12. "cp Makefile ../../../ns-allinone-2.1b9a/ns-2.1b9a/." 10-13. "cp formula.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-14."cp my-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-15."cp mmy-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-16. "cp ping.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 10-17. "cp ping.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 10-18. "cp tcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-19. "cp tcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-20. "cp tcp-reno.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-21 "cp tcp-sack1.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 10-22. "cd ../../../ns-allinone-2.1b9a/ns-2.1b9a/" 10-23. "make clean" 10-24. "make" 10-25. "cp ns ../../rcvtcp/fig10/." 10-b. Run TCL script: -------------------- 10-26. "cd /rcvtcp-public/rcvtcp/fig10/" 10-27. "./simple.run" 10-28. "cd results-sale" 10-29. "result-rcp-eln -> data-rcp-eln.m" 10-30. "matlab data-rcp-eln.m" (you get file-exp7.txt) 10-31. "gnuplot plotcmd" 10-32. The result is fig10.eps --------- Figure 11: --------- It is assumed that you already ran the figures 8, 8a , and 8b. 11-1. "cd /rcvtcp-public/rcvtcp/fig11/" 11-2. "cp ../fig10/results-sale/result-rcp-eln ." 11-3. "cp ../fig8/results-sale/result-alfa-25 ." 11-4. "cp ../fig8a/results-sale/result-beta-0.9 ." 11-5. You can get "result-25.0-0.9" by running simple.run file. 11-6. "result-rcp-eln -> final_result-rcp-eln" 11-7. "result-alfa-25 -> final_result-alfa-25" 11-8. "result-beta-0.9 -> final_result-beta-0.9" 11-9. "result-alfa25-beta09 -> final_result-alfa25-beta09-full" ** An example transformation script for step 11-9 is "thresh-380-50alfa-bata" 11-10. "gnuplot plotcmd" 11-11. The result is fig11.eps --------- Figure 12: --------- 12-1. "cd /rcvtcp-public/rcvtcp/fig12/code" 12-2. "cp drop-tail.cc ../../..//ns-allinone-2.1b9a/ns-2.1b9a/queue/." 12-3. "cp drop-tail.h ../../..//ns-allinone-2.1b9a/ns-2.1b9a/queue/." 12-4. "cp rcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-5. "cp rcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-6. "cp rcp-tap.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-7. "cp rcp-tap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-8. "cp stap.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 12-9. "cp flags.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/common/." 12-10. "cp ns-lib.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 12-11. "cp ns-default.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/lib/." 12-12. "cp Makefile ../../../ns-allinone-2.1b9a/ns-2.1b9a/." 12-13. "cp formula.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-14."cp my-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-15."cp mmy-formula-with-inverse.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-16. "cp ping.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 12-17. "cp ping.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/apps/." 12-18. "cp tcp.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-19. "cp tcp.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-20. "cp tcp-reno.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-21 "cp tcp-sack1.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-22. "cp ewebtraf.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-23. "cp tcp-reno.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-24. "cp tcp-sack1.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcp/." 12-25. "cp webtraf.tcl ../../../ns-allinone-2.1b9a/ns-2.1b9a/tcl/webcache/." 12-26. "cp webtraf.cc ../../../ns-allinone-2.1b9a/ns-2.1b9a/webcache/." 12-27. "cp webtraf.h ../../../ns-allinone-2.1b9a/ns-2.1b9a/webcache/." 12-28. "cd ../../../ns-allinone-2.1b9a/ns-2.1b9a/" 12-29. "make clean" 12-30. "make" 12-31. "cp ns ../../rcvtcp/fig12/." 12-32. "cd /rcvtcp-public/rcvtcp/fig12" 12-33. "dos.run" 12-34. "cp ./results-sale/http/" 12-35. "avg" 12-36. "ratio" 12-37. "cp ../plotcmd-final ." 12-38. "gnuplot plotcmd-final" 12-39. The result is fig12.eps --------- Figure 13: --------- 13-1. "cd /rcvtcp-public/rcvtcp/fig13/" 13-2. "cp runtcp-rl.m runtcp.m" 13-3. "cp eqtcp1-rl.m eqtcp1.m" 13-4. "cp eqtcp2-rl.m eqtcp2.m" 13-5. "matlab" 13-6. "runtcp" (you will get the file model-rl.txt) 13-7. "runplot-final.com" 13-8. The results is fig13.eps ----- -----