diff --git a/performance_results/average/output.gif b/performance_results/average/output.gif index 2942ee0c8b96fc9f0a57718e07d3fb27f907ab1d..0874df62f38f32e74b633190349fa684a1318e71 100644 Binary files a/performance_results/average/output.gif and b/performance_results/average/output.gif differ diff --git a/performance_results/average/receiver_1_with_FEC.csv b/performance_results/average/receiver_1_with_FEC.csv index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5382d13ba1a7404bfa228786fa6dec5b02e24cc2 100644 --- a/performance_results/average/receiver_1_with_FEC.csv +++ b/performance_results/average/receiver_1_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4662 +data_truncated_received:10 +fec_sent:0 +fec_received:1003 +ack_sent:1985 +ack_received:0 +nack_received:0 +packet_ignored:876 +throughput:46136.687500 +packet_duplicated:378 +packet_recovered:242 diff --git a/performance_results/average/receiver_1_without_FEC.csv b/performance_results/average/receiver_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..b712223547a3b84dc1dd6b0ab9862d1b2708eb13 --- /dev/null +++ b/performance_results/average/receiver_1_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4854 +data_truncated_received:9 +fec_sent:0 +fec_received:0 +ack_sent:2639 +ack_received:0 +nack_received:0 +packet_ignored:709 +throughput:33973.156250 +packet_duplicated:328 +packet_recovered:0 diff --git a/performance_results/average/receiver_2_with_FEC.csv b/performance_results/average/receiver_2_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..de5a557be4aca2020eb7678d8c9894759e2f2bc3 --- /dev/null +++ b/performance_results/average/receiver_2_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4596 +data_truncated_received:4 +fec_sent:0 +fec_received:968 +ack_sent:1771 +ack_received:0 +nack_received:0 +packet_ignored:823 +throughput:52781.429688 +packet_duplicated:317 +packet_recovered:247 diff --git a/performance_results/average/receiver_2_without_FEC.csv b/performance_results/average/receiver_2_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..0b817fc4cff0eb5d0c740bdfcb3f479926415600 --- /dev/null +++ b/performance_results/average/receiver_2_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4969 +data_truncated_received:11 +fec_sent:0 +fec_received:0 +ack_sent:3128 +ack_received:0 +nack_received:0 +packet_ignored:747 +throughput:27610.125000 +packet_duplicated:443 +packet_recovered:0 diff --git a/performance_results/average/receiver_3_with_FEC.csv b/performance_results/average/receiver_3_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..0988ac54cbfe823ee41ba71c72b3140ce42aac56 --- /dev/null +++ b/performance_results/average/receiver_3_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4560 +data_truncated_received:10 +fec_sent:0 +fec_received:1000 +ack_sent:1622 +ack_received:0 +nack_received:0 +packet_ignored:797 +throughput:54313.257812 +packet_duplicated:292 +packet_recovered:258 diff --git a/performance_results/average/receiver_3_without_FEC.csv b/performance_results/average/receiver_3_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..7ce87f80a851862fe65a1425612040688b946ec7 --- /dev/null +++ b/performance_results/average/receiver_3_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4934 +data_truncated_received:9 +fec_sent:0 +fec_received:0 +ack_sent:3028 +ack_received:0 +nack_received:0 +packet_ignored:735 +throughput:28141.064453 +packet_duplicated:408 +packet_recovered:0 diff --git a/performance_results/average/sender_1_with_FEC.csv b/performance_results/average/sender_1_with_FEC.csv index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..1bf7bf2ea12f2d6b48dd96ec753e473128bebc0a 100644 --- a/performance_results/average/sender_1_with_FEC.csv +++ b/performance_results/average/sender_1_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:6527 +data_received:0 +data_truncated_received:0 +fec_sent:1132 +fec_received:0 +ack_sent:0 +ack_received:1985 +nack_received:10 +packet_ignored:0 +throughput:46097.210938 +min_rtt:303 +max_rtt:8989 +packet_retransmitted:2001 diff --git a/performance_results/average/sender_1_without_FEC.csv b/performance_results/average/sender_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..d5bf920cce373a6b20f2bf2fe392cbf0e115966d --- /dev/null +++ b/performance_results/average/sender_1_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:7187 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:2639 +nack_received:9 +packet_ignored:0 +throughput:33948.570312 +min_rtt:303 +max_rtt:8520 +packet_retransmitted:2661 diff --git a/performance_results/average/sender_2_with_FEC.csv b/performance_results/average/sender_2_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e0189726134924e161e24993ce1b2af8c87a6c13 --- /dev/null +++ b/performance_results/average/sender_2_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:6304 +data_received:0 +data_truncated_received:0 +fec_sent:1132 +fec_received:0 +ack_sent:0 +ack_received:1771 +nack_received:4 +packet_ignored:0 +throughput:52733.964844 +min_rtt:100 +max_rtt:11413 +packet_retransmitted:1778 diff --git a/performance_results/average/sender_2_without_FEC.csv b/performance_results/average/sender_2_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..22b779ed0b8d44ca6d8cee5573aa6d409df51d8d --- /dev/null +++ b/performance_results/average/sender_2_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:7677 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:3128 +nack_received:11 +packet_ignored:0 +throughput:27597.212891 +min_rtt:303 +max_rtt:10908 +packet_retransmitted:3151 diff --git a/performance_results/average/sender_3_with_FEC.csv b/performance_results/average/sender_3_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..369252c46e50f77e7ce7eb19e7fc19f299711e7b --- /dev/null +++ b/performance_results/average/sender_3_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:6167 +data_received:0 +data_truncated_received:0 +fec_sent:1132 +fec_received:0 +ack_sent:0 +ack_received:1622 +nack_received:10 +packet_ignored:0 +throughput:54260.140625 +min_rtt:303 +max_rtt:13231 +packet_retransmitted:1641 diff --git a/performance_results/average/sender_3_without_FEC.csv b/performance_results/average/sender_3_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..a48ba4933460c9f9ea65c3601358b32ed5dcd979 --- /dev/null +++ b/performance_results/average/sender_3_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:7575 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:3028 +nack_received:9 +packet_ignored:0 +throughput:28128.892578 +min_rtt:303 +max_rtt:11110 +packet_retransmitted:3049 diff --git a/performance_results/average/sender_merged_stats.csv b/performance_results/average/sender_merged_stats.csv new file mode 100644 index 0000000000000000000000000000000000000000..598ba3372ba6ea742ee03181ee7899e3290ed0d0 --- /dev/null +++ b/performance_results/average/sender_merged_stats.csv @@ -0,0 +1,7 @@ +data_sent,data_received,data_truncated_received,fec_sent,fec_received,ack_sent,ack_received,nack_received,packet_ignored,throughput,min_rtt,max_rtt,packet_retransmitted,fec +7496.0,0.0,0.0,0.0,0.0,0.0,2947.0,8.0,0.0,29124.753906,303.0,10605.0,2970.0,0 +6378.0,0.0,0.0,1132.0,0.0,0.0,1841.0,7.0,0.0,47956.417969,100.0,8787.0,1852.0,1 +6304.0,0.0,0.0,1132.0,0.0,0.0,1771.0,4.0,0.0,52733.964844,100.0,11413.0,1778.0,1 +7677.0,0.0,0.0,0.0,0.0,0.0,3128.0,11.0,0.0,27597.212891,303.0,10908.0,3151.0,0 +7575.0,0.0,0.0,0.0,0.0,0.0,3028.0,9.0,0.0,28128.892578,303.0,11110.0,3049.0,0 +6167.0,0.0,0.0,1132.0,0.0,0.0,1622.0,10.0,0.0,54260.140625,303.0,13231.0,1641.0,1 diff --git a/performance_results/ideal/output.gif b/performance_results/ideal/output.gif index 6a7c0298094a0ca68dea8a9aa427ac3863af3636..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 Binary files a/performance_results/ideal/output.gif and b/performance_results/ideal/output.gif differ diff --git a/performance_results/ideal/receiver_1_with_FEC.csv b/performance_results/ideal/receiver_1_with_FEC.csv index bf5fcbd36cf6b677ca42a79e4155ce447a52d91d..7be540da0192ac0560ca41d8bfa74abe5c123cb0 100644 --- a/performance_results/ideal/receiver_1_with_FEC.csv +++ b/performance_results/ideal/receiver_1_with_FEC.csv @@ -1,12 +1,12 @@ data_sent:0 -data_received:4362 +data_received:4356 data_truncated_received:0 fec_sent:0 -fec_received:611 +fec_received:625 ack_sent:167 ack_received:0 nack_received:0 -packet_ignored:94 -throughput:1105010.875000 -packet_duplicated:5 -packet_recovered:169 +packet_ignored:72 +throughput:1104681.500000 +packet_duplicated:8 +packet_recovered:178 diff --git a/performance_results/ideal/receiver_1_without_FEC.csv b/performance_results/ideal/receiver_1_without_FEC.csv index 41b5c74967e2cff179652a186406042b275a14d2..dd3f5c187d56999eb0df97c3d0e545473113d4f5 100644 --- a/performance_results/ideal/receiver_1_without_FEC.csv +++ b/performance_results/ideal/receiver_1_without_FEC.csv @@ -3,10 +3,10 @@ data_received:4526 data_truncated_received:0 fec_sent:0 fec_received:0 -ack_sent:216 +ack_sent:239 ack_received:0 nack_received:0 -packet_ignored:50 -throughput:853139.000000 +packet_ignored:54 +throughput:770617.187500 packet_duplicated:0 packet_recovered:0 diff --git a/performance_results/ideal/receiver_2_with_FEC.csv b/performance_results/ideal/receiver_2_with_FEC.csv index d2a70d7e2cb3d4fe380aa9ebb8ba8571a064218b..0accf5f7565d7c9c1ae8dc86a15bc1efd457aad5 100644 --- a/performance_results/ideal/receiver_2_with_FEC.csv +++ b/performance_results/ideal/receiver_2_with_FEC.csv @@ -2,11 +2,11 @@ data_sent:0 data_received:4370 data_truncated_received:0 fec_sent:0 -fec_received:589 -ack_sent:169 +fec_received:571 +ack_sent:164 ack_received:0 nack_received:0 -packet_ignored:76 -throughput:1091987.750000 -packet_duplicated:11 -packet_recovered:167 +packet_ignored:75 +throughput:1125480.250000 +packet_duplicated:10 +packet_recovered:166 diff --git a/performance_results/ideal/receiver_2_without_FEC.csv b/performance_results/ideal/receiver_2_without_FEC.csv index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d51502c5b0f3cf50cca5201beb55a5dacf5dd9bb 100644 --- a/performance_results/ideal/receiver_2_without_FEC.csv +++ b/performance_results/ideal/receiver_2_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4526 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:212 +ack_received:0 +nack_received:0 +packet_ignored:36 +throughput:869430.062500 +packet_duplicated:0 +packet_recovered:0 diff --git a/performance_results/ideal/receiver_3_with_FEC.csv b/performance_results/ideal/receiver_3_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..7ed4fdbacab9be9fcab272a1a98af2a5a4230981 --- /dev/null +++ b/performance_results/ideal/receiver_3_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4355 +data_truncated_received:0 +fec_sent:0 +fec_received:633 +ack_sent:170 +ack_received:0 +nack_received:0 +packet_ignored:87 +throughput:1085527.000000 +packet_duplicated:10 +packet_recovered:181 diff --git a/performance_results/ideal/receiver_3_without_FEC.csv b/performance_results/ideal/receiver_3_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..8b3dadb8e13ede24dd51fd87ddecefe8b95a5bc7 --- /dev/null +++ b/performance_results/ideal/receiver_3_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4526 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:228 +ack_received:0 +nack_received:0 +packet_ignored:54 +throughput:808156.625000 +packet_duplicated:0 +packet_recovered:0 diff --git a/performance_results/ideal/sender_1_with_FEC.csv b/performance_results/ideal/sender_1_with_FEC.csv index ac47dab81e5d8079a4c8dee6449f4d1682a073dd..b21f17f76f15a4efb2c39ea65b179b5c1016c293 100644 --- a/performance_results/ideal/sender_1_with_FEC.csv +++ b/performance_results/ideal/sender_1_with_FEC.csv @@ -1,4 +1,4 @@ -data_sent:4586 +data_sent:4571 data_received:0 data_truncated_received:0 fec_sent:1132 @@ -7,7 +7,7 @@ ack_sent:0 ack_received:167 nack_received:0 packet_ignored:0 -throughput:1098265.500000 -min_rtt:100 -max_rtt:404 -packet_retransmitted:60 +throughput:1097940.000000 +min_rtt:95 +max_rtt:505 +packet_retransmitted:45 diff --git a/performance_results/ideal/sender_1_without_FEC.csv b/performance_results/ideal/sender_1_without_FEC.csv index 3b6d85e734159331bfeb7948c2d3dccba61a75db..5f64637a588f9c32721d2fe162e35433432e76b7 100644 --- a/performance_results/ideal/sender_1_without_FEC.csv +++ b/performance_results/ideal/sender_1_without_FEC.csv @@ -1,13 +1,13 @@ -data_sent:4664 +data_sent:4692 data_received:0 data_truncated_received:0 fec_sent:0 fec_received:0 ack_sent:0 -ack_received:216 +ack_received:239 nack_received:0 packet_ignored:0 -throughput:849190.312500 -min_rtt:99 -max_rtt:505 -packet_retransmitted:138 +throughput:767362.312500 +min_rtt:95 +max_rtt:707 +packet_retransmitted:166 diff --git a/performance_results/ideal/sender_2_with_FEC.csv b/performance_results/ideal/sender_2_with_FEC.csv index dd17714741ba211d2d81d81cd4fbfa06fc8c5161..7b1fe4f0addd46898ca9df6f2e62ebc809da04be 100644 --- a/performance_results/ideal/sender_2_with_FEC.csv +++ b/performance_results/ideal/sender_2_with_FEC.csv @@ -1,13 +1,13 @@ -data_sent:4586 +data_sent:4578 data_received:0 data_truncated_received:0 fec_sent:1132 fec_received:0 ack_sent:0 -ack_received:169 +ack_received:164 nack_received:0 packet_ignored:0 -throughput:1085463.375000 -min_rtt:98 +throughput:1118483.250000 +min_rtt:99 max_rtt:404 -packet_retransmitted:60 +packet_retransmitted:52 diff --git a/performance_results/ideal/sender_2_without_FEC.csv b/performance_results/ideal/sender_2_without_FEC.csv index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ef856167060f14d2a6c905e6b808b9d7dae6407a 100644 --- a/performance_results/ideal/sender_2_without_FEC.csv +++ b/performance_results/ideal/sender_2_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4653 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:212 +nack_received:0 +packet_ignored:0 +throughput:791417.125000 +min_rtt:101 +max_rtt:2104 +packet_retransmitted:127 diff --git a/performance_results/ideal/sender_3_with_FEC.csv b/performance_results/ideal/sender_3_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e1160b0c41f2fc7267eafcdfc123640f2df1cb9c --- /dev/null +++ b/performance_results/ideal/sender_3_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4591 +data_received:0 +data_truncated_received:0 +fec_sent:1132 +fec_received:0 +ack_sent:0 +ack_received:170 +nack_received:0 +packet_ignored:0 +throughput:1079016.625000 +min_rtt:97 +max_rtt:505 +packet_retransmitted:65 diff --git a/performance_results/ideal/sender_3_without_FEC.csv b/performance_results/ideal/sender_3_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..558af214184be3d4083e09e56ba04098e8b5cc61 --- /dev/null +++ b/performance_results/ideal/sender_3_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4675 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:228 +nack_received:0 +packet_ignored:0 +throughput:804577.625000 +min_rtt:92 +max_rtt:707 +packet_retransmitted:149 diff --git a/performance_results/ideal/sender_merged_stats.csv b/performance_results/ideal/sender_merged_stats.csv new file mode 100644 index 0000000000000000000000000000000000000000..f3f3886b3318b8f83a74c9aa141ae1945928656a --- /dev/null +++ b/performance_results/ideal/sender_merged_stats.csv @@ -0,0 +1,7 @@ +data_sent,data_received,data_truncated_received,fec_sent,fec_received,ack_sent,ack_received,nack_received,packet_ignored,throughput,min_rtt,max_rtt,packet_retransmitted,fec +4653.0,0.0,0.0,0.0,0.0,0.0,210.0,0.0,0.0,737348.0625,101.0,4023.0,127.0,0 +4578.0,0.0,0.0,1132.0,0.0,0.0,163.0,0.0,0.0,1125480.25,101.0,404.0,52.0,1 +4581.0,0.0,0.0,1132.0,0.0,0.0,167.0,0.0,0.0,982088.75,101.0,2103.0,55.0,1 +4648.0,0.0,0.0,0.0,0.0,0.0,203.0,0.0,0.0,823381.8125,101.0,2104.0,122.0,0 +4695.0,0.0,0.0,0.0,0.0,0.0,240.0,0.0,0.0,706132.375,101.0,2104.0,169.0,0 +4581.0,0.0,0.0,1132.0,0.0,0.0,164.0,0.0,0.0,998116.5625,101.0,2103.0,55.0,1 diff --git a/performance_results/worst/output.gif b/performance_results/worst/output.gif new file mode 100644 index 0000000000000000000000000000000000000000..7589650977f6213bf9d11c944232279f513726fc Binary files /dev/null and b/performance_results/worst/output.gif differ diff --git a/performance_results/worst/receiver_1_with_FEC.csv b/performance_results/worst/receiver_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..aaaa76a53ddb4f72242d8b652bfd239fd09f28d7 --- /dev/null +++ b/performance_results/worst/receiver_1_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:5582 +data_truncated_received:4 +fec_sent:0 +fec_received:861 +ack_sent:5907 +ack_received:0 +nack_received:0 +packet_ignored:1561 +throughput:3052.714844 +packet_duplicated:1167 +packet_recovered:111 diff --git a/performance_results/worst/receiver_1_without_FEC.csv b/performance_results/worst/receiver_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/performance_results/worst/sender_1_with_FEC.csv b/performance_results/worst/sender_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..b081c6fc339de61669c7dafda10b6bcab203063c --- /dev/null +++ b/performance_results/worst/sender_1_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:10656 +data_received:0 +data_truncated_received:0 +fec_sent:1132 +fec_received:0 +ack_sent:0 +ack_received:5907 +nack_received:4 +packet_ignored:0 +throughput:3051.964600 +min_rtt:1313 +max_rtt:1217177 +packet_retransmitted:6130 diff --git a/performance_results/worst/sender_1_without_FEC.csv b/performance_results/worst/sender_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/performance_results/worst/sender_merged_stats.csv b/performance_results/worst/sender_merged_stats.csv new file mode 100644 index 0000000000000000000000000000000000000000..5f01ace2d2f13748b6400608b0aaa34ad19969ac --- /dev/null +++ b/performance_results/worst/sender_merged_stats.csv @@ -0,0 +1,2 @@ +fec +1 diff --git a/src/sender_utils.c b/src/sender_utils.c index cc8e8b53dd8575c74d1ed8bd183a6726a408868a..c3f75bc63fe3af186d49fb1b459b189769d162dc 100644 --- a/src/sender_utils.c +++ b/src/sender_utils.c @@ -29,6 +29,7 @@ sender_state_t *state_new(bool fec_enabled) state->FEC_nbr = 0; } state->stats = calloc(sizeof(transfer_stats_t), 1); + state->stats->avg_rtt = 1; // Has to be initiated at 1 return state; } @@ -192,9 +193,18 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd) // A do while is necessary here in case we want to make a full revolution (ack from 1 to 1 not included for example) do { + struct timeval time; gettimeofday(&time, NULL); unsigned long long int delta_time = time_milliseconds(&time) - time_milliseconds(&state->timers_first_send[state->tail]); + + float used_for_calculation = state->stats->avg_rtt * (state->nbr_of_acked_packets); + used_for_calculation += delta_time; + state->nbr_of_acked_packets++; + used_for_calculation /= state->nbr_of_acked_packets; + + state->stats->avg_rtt = used_for_calculation; + if (state->stats->min_rtt == 0 || state->stats->min_rtt > delta_time) { state->stats->min_rtt = delta_time; @@ -213,6 +223,7 @@ int handle_returning_ack_nack(sender_state_t *state, int socket_fd) state->s_window_size++; state->tail = (state->tail + 1) % WINDOW_SIZE; + } while (state->tail != upper_bound); // Send back the asked ACK if there is one to send back @@ -235,8 +246,12 @@ int checking_timer(sender_state_t *state, int socket_fd) { gettimeofday(&time, NULL); // When the timer is over, we send the packet back - if ((time_milliseconds(&time) - time_milliseconds(&state->timers[state->tail])) >= TIMER_LIMIT) + float retransmission = (state->stats->min_rtt > 0 ? 2 * state->stats->min_rtt : 2000); + retransmission += (state->stats->avg_rtt - state->stats->min_rtt)/2; + + if ((time_milliseconds(&time) - time_milliseconds(&state->timers[state->tail])) >= retransmission) { + DEBUG("The current average rtt %lld ms, retransmitted after %f ms", state->stats->avg_rtt,retransmission); state->stats->packet_retransmitted++; pkt_t *pkt = state->buffer[state->tail]; DEBUG("The pkt with seqnum: %d has timeout", pkt_get_seqnum(pkt)); diff --git a/src/sender_utils.h b/src/sender_utils.h index 84510b853ed53c4b167bda784a3dfb6d2aad3ad3..22d7fe6ca1bf3b77482d0f533a923a18516d4736 100644 --- a/src/sender_utils.h +++ b/src/sender_utils.h @@ -54,6 +54,7 @@ typedef struct state { transfer_stats_t *stats; struct timeval start_of_the_connection; // Time when the very first pkt was sent unsigned long long int nbr_of_sended_bytes; + unsigned long long int nbr_of_acked_packets; } sender_state_t; diff --git a/src/utils.h b/src/utils.h index 9fd0cf15dbf0d2f1ca4f0fa571f6ab8ad2754dfb..6659d4991b0c4e7e26da0ce5062eb2a566ce55c6 100644 --- a/src/utils.h +++ b/src/utils.h @@ -34,6 +34,7 @@ typedef struct __attribute__((__packed__)) unsigned long long int packet_duplicated; unsigned long long int packet_recovered; unsigned long long int min_rtt; + unsigned long long int avg_rtt; unsigned long long int max_rtt; unsigned long long int packet_retransmitted; float throughput; // Measure in bits per seconds diff --git a/tests/advanced_test.sh b/tests/advanced_test.sh index b657f66577e28d7007d1717d3d29c405147efe1f..0559a0a972ad85f35c564e156b2bb823f55fa62a 100755 --- a/tests/advanced_test.sh +++ b/tests/advanced_test.sh @@ -27,10 +27,10 @@ MODES=( 'without_FEC' ) -ERROR_RATE=5 -CUT_RATE=5 -DELAY=100 -JITTER=100 +ERROR_RATE=10 +CUT_RATE=1 +DELAY=290 +JITTER=30 LOSS_RATE=1 echo -e "The linksimulator paramateres are: diff --git a/tests/perfomance_test.sh b/tests/perfomance_test.sh index 50cf19f5417d5e807a8d0879cf1ccabe04495354..f08771c52291a32188c2eb747ab728ca88dace48 100755 --- a/tests/perfomance_test.sh +++ b/tests/perfomance_test.sh @@ -42,8 +42,18 @@ for ITER in 1 2 3; do # The next 2 lines come from: https://unix.stackexchange.com/questions/55913/whats-the-easiest-way-to-find-an-unused-local-port # We use this to be sure we're using unused port - port1=$(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1) - port2=$(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1) + + # $(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1) + port1=65047 + # $(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1) + port2=65042 + + fuser -k $port1/udp # Kill processes using these ports + fuser -k $port2/udp # Kill processes using these ports + + sleep 5 + + echo "The chosen ports are port1:${port1} port2:${port2}" ##### Launching the link simulator ##### ./linksimulator/link_sim -p $port2 -P $port1 -l ${LOSS_RATE} -d ${DELAY} -e ${ERROR_RATE} -c ${CUT_RATE} -j ${JITTER} \ @@ -75,7 +85,7 @@ for ITER in 1 2 3; do fi fi - sleep 20 # We wait 20s for the receiver to finish up + sleep 5 # We wait 5s for the receiver to finish up if kill -0 $receiver_pid &> /dev/null ; then echo "The receiver didn't stop at the end of the transfer!" @@ -91,13 +101,13 @@ for ITER in 1 2 3; do # Stop the link simulator kill -9 $link_pid - wait $link_pid 2>/dev/null + wait $link_pid 2> /dev/null # We verify that the transfer ran through properly if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ${OUTPUT} | awk '{print $1}')" ]]; then echo "The transfer corrupted the file!" echo "Binary difference between the 2 files: (expected vs actual)" - diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ${OUTPUT}) + # diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ${OUTPUT}) if [ $MODE = "with_FEC" ]; then echo -e "${RED}The transfer (with FEC) has failed!${NC}" else @@ -111,6 +121,8 @@ for ITER in 1 2 3; do echo -e "${GREEN}The transfer (without FEC) at ${ITER} iteration has succeeded!${NC}" fi fi + + fuser -k $port1/udp + fuser -k $port2/udp done done -exit ${err:-0} # In case of error, we return the error code \ No newline at end of file diff --git a/tests/run_tests.sh b/tests/run_tests.sh index e3317a9a2a1b760f5bd31b05013337a5b27fa908..88646db822a003aca50cba46ae9d8d4fb11a917e 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -27,6 +27,7 @@ simple_test_files=( advanced_test_files=( 'tests_files/greeting.txt' 'tests_files/long_message.txt' + 'tests_files/thumbs-up-nod.gif' 'tests_files/noice.gif' ) diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_link.log b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_link.log index 211b3161b870ad78d5330197481af3e3227f5708..6c99f122337d2a473c05c82f7054bd06ee0ff0ae 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_link.log +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_link.log @@ -1,20 +1,20 @@ -@@ Using random seed: 1651002406 +@@ Using random seed: 1651061140 @@ Using parameters: -.. port: 65103 -.. forward_port: 65021 -.. delay: 100 -.. jitter: 100 -.. err_rate: 5 -.. cut_rate: 5 +.. port: 65098 +.. forward_port: 65168 +.. delay: 290 +.. jitter: 30 +.. err_rate: 10 +.. cut_rate: 1 .. loss_rate: 1 -.. seed: 1651002406 +.. seed: 1651061140 .. link_direction: Forward -@@ Remote host is ::1 [57439] -[SEQ 0] Delayed packet by 147 ms +@@ Remote host is ::1 [59029] +[SEQ 0] Delayed packet by 262 ms [SEQ 0] Sent packet (Forward). [SEQ 1] Sent packet (Reverse). -[SEQ 1] Delayed packet by 181 ms -[FEC 0] Delayed packet by 90 ms -[FEC 0] Sent packet (Forward). +[SEQ 1] Delayed packet by 278 ms +[FEC 0] Delayed packet by 310 ms [SEQ 1] Sent packet (Forward). +[FEC 0] Sent packet (Forward). [SEQ 2] Sent packet (Reverse). diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_receiver.log b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_receiver.log index 0fe877ab13e6879034e765cebb1e30bcac9fe658..2fb3bb0f73b9506f5ee7416841e418d1489d11c6 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_receiver.log +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_receiver.log @@ -1,16 +1,16 @@ -[36m[DEBUG] Receiver has following arguments: stats_filename is tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv, listen_ip is ::1, listen_port is 65021[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65021[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103[0m +[36m[DEBUG] Receiver has following arguments: stats_filename is tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv, listen_ip is ::1, listen_port is 65168[0m +[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65168[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65098[0m [36m[DEBUG] Received data packet seqnum 0 with timestamp 984824098 | current_window_size : 31, current_window_start : 0[0m [36m[DEBUG] Sent ACK saying we are waiting for 1, timestamp 0[0m -[36m[DEBUG] Received FEC with seqnum [0] but wasn't used[0m [36m[DEBUG] Received data packet seqnum 1 with timestamp 0 | current_window_size : 30, current_window_start : 0[0m [36m[DEBUG] Going to consume the next 2 packets.[0m [36m[DEBUG] Consuming packet : 0 | curr_recv_window = 29, recv_window_start = 0[0m [36m[DEBUG] Consuming packet : 1 | curr_recv_window = 30, recv_window_start = 1[0m [36m[DEBUG] Received the last packet[0m +[36m[DEBUG] Received packet [0] Out of window with timestamp 0 | receive window start at : 2 (included) till 33 (excluded)[0m [36m[DEBUG] Sent ACK saying we are waiting for 2, timestamp 0[0m [36m[DEBUG] Done the transfer with done status being true[0m -[36m[DEBUG] The difference between the two is 112000.000000 seconds[0m -[36m[DEBUG] The transfer took 112.000000 seconds[0m +[36m[DEBUG] The difference between the two is 387000.000000 seconds[0m +[36m[DEBUG] The transfer took 387.000000 seconds[0m [36m[DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv.[0m diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_sender.log b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_sender.log index b8565d9ad5c20b409de9b9da01902ff2897a66c7..54617556b6a0b52134340305958c405b51bdb386 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_sender.log +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_sender.log @@ -3,8 +3,8 @@ stats_filename is tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv, fec_enabled is 1, receiver_ip is ::1, - receiver_port is 65103[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103[0m + receiver_port is 65098[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65098[0m [36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 1[0m [36m[DEBUG] The LAST PTYPE_DATA is being sent ![0m [36m[DEBUG] Sending the pkt with seqnum: 0[0m diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_receiver.log b/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_receiver.log index 031e83cbcd913c7573b267016af03aa1fb73bb92..91f3c3f9f63d3de91041a10b4953b782c14a5e7c 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_receiver.log +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_receiver.log @@ -1,15 +1,15 @@ -==49510== Memcheck, a memory error detector -==49510== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==49510== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==49510== Command: ./receiver ::1 65021 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv -==49510== Parent PID: 49479 -==49510== -==49510== -==49510== HEAP SUMMARY: -==49510== in use at exit: 0 bytes in 0 blocks -==49510== total heap usage: 14 allocs, 14 frees, 10,400 bytes allocated -==49510== -==49510== All heap blocks were freed -- no leaks are possible -==49510== -==49510== For lists of detected and suppressed errors, rerun with: -s -==49510== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==8962== Memcheck, a memory error detector +==8962== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==8962== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==8962== Command: ./receiver ::1 65168 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv +==8962== Parent PID: 8931 +==8962== +==8962== +==8962== HEAP SUMMARY: +==8962== in use at exit: 0 bytes in 0 blocks +==8962== total heap usage: 14 allocs, 14 frees, 10,408 bytes allocated +==8962== +==8962== All heap blocks were freed -- no leaks are possible +==8962== +==8962== For lists of detected and suppressed errors, rerun with: -s +==8962== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_sender.log b/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_sender.log index d8dc7182e1c0047ca3a34de9d0e7cfcc0c439e51..1c6accad388e650827b4d4a7d2514bf270d129e2 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_sender.log +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_sender.log @@ -1,15 +1,15 @@ -==49511== Memcheck, a memory error detector -==49511== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==49511== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==49511== Command: ./sender -f tests_files/greeting.txt ::1 65103 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv -==49511== Parent PID: 49479 -==49511== -==49511== -==49511== HEAP SUMMARY: -==49511== in use at exit: 0 bytes in 0 blocks -==49511== total heap usage: 10 allocs, 10 frees, 4,420 bytes allocated -==49511== -==49511== All heap blocks were freed -- no leaks are possible -==49511== -==49511== For lists of detected and suppressed errors, rerun with: -s -==49511== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==8963== Memcheck, a memory error detector +==8963== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==8963== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==8963== Command: ./sender -f tests_files/greeting.txt ::1 65098 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv +==8963== Parent PID: 8931 +==8963== +==8963== +==8963== HEAP SUMMARY: +==8963== in use at exit: 0 bytes in 0 blocks +==8963== total heap usage: 10 allocs, 10 frees, 4,436 bytes allocated +==8963== +==8963== All heap blocks were freed -- no leaks are possible +==8963== +==8963== For lists of detected and suppressed errors, rerun with: -s +==8963== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv b/tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv index 618b0cae9875a7d074f5ee5b29dac9ce909d1d2f..cf56633a5ea4cfa21b81b2d9af8a384000e425f0 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv +++ b/tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv @@ -2,11 +2,11 @@ data_sent:0 data_received:2 data_truncated_received:0 fec_sent:0 -fec_received:1 +fec_received:0 ack_sent:2 ack_received:0 nack_received:0 packet_ignored:0 -throughput:857.142883 +throughput:248.062012 packet_duplicated:0 packet_recovered:0 diff --git a/tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv b/tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv index 6ec9d3e316d14092a39bec662b6a8d30c6e2fee9..7c4b622682b749b8205488382247777ad9eabd3b 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv +++ b/tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv @@ -7,7 +7,7 @@ ack_sent:0 ack_received:2 nack_received:0 packet_ignored:0 -throughput:351.648346 -min_rtt:103 -max_rtt:159 +throughput:141.384384 +min_rtt:298 +max_rtt:367 packet_retransmitted:0 diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_link.log b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_link.log index 9657be4b9cc3d42ace6e8c8c967d96ebec55e327..3516204c017e836d890b945eeaed29216322eafa 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_link.log +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_link.log @@ -1,30 +1,29 @@ -@@ Using random seed: 1651002418 +@@ Using random seed: 1651061153 @@ Using parameters: -.. port: 65073 -.. forward_port: 65075 -.. delay: 100 -.. jitter: 100 -.. err_rate: 5 -.. cut_rate: 5 +.. port: 65191 +.. forward_port: 65166 +.. delay: 290 +.. jitter: 30 +.. err_rate: 10 +.. cut_rate: 1 .. loss_rate: 1 -.. seed: 1651002418 +.. seed: 1651061153 .. link_direction: Forward -@@ Remote host is ::1 [43801] -[SEQ 0] Delayed packet by 10 ms +@@ Remote host is ::1 [53701] +[SEQ 0] Corrupting packet: inverted byte #327 +[SEQ 0] Delayed packet by 308 ms +[SEQ 0] Sent packet (Forward). +[SEQ 0] Delayed packet by 309 ms [SEQ 0] Sent packet (Forward). [SEQ 1] Sent packet (Reverse). -[SEQ 1] Delayed packet by 58 ms -[SEQ 2] Dropping packet +[SEQ 1] Delayed packet by 265 ms +[SEQ 2] Delayed packet by 283 ms [SEQ 1] Sent packet (Forward). -[SEQ 2] Sent packet (Reverse). -[SEQ 2] Corrupting packet: inverted byte #200 -[SEQ 2] Delayed packet by 150 ms -[SEQ 2] Sent packet (Forward). -[SEQ 2] Delayed packet by 43 ms [SEQ 2] Sent packet (Forward). [SEQ 3] Sent packet (Reverse). -[SEQ 3] Delayed packet by 77 ms -[FEC 0] Delayed packet by 159 ms +[SEQ 3] Delayed packet by 270 ms +[FEC 0] Corrupting packet: inverted byte #287 +[FEC 0] Delayed packet by 310 ms [SEQ 3] Sent packet (Forward). -[SEQ 4] Sent packet (Reverse). [FEC 0] Sent packet (Forward). +[SEQ 4] Sent packet (Reverse). diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_receiver.log b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_receiver.log index b081f12eea45d6c094651e69ff053a3a7d04fe3a..c55731e34b20ba2366d7b1ec7536eef15414a61f 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_receiver.log +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_receiver.log @@ -1,11 +1,10 @@ -[36m[DEBUG] Receiver has following arguments: stats_filename is tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv, listen_ip is ::1, listen_port is 65075[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65075[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65073[0m +[36m[DEBUG] Receiver has following arguments: stats_filename is tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv, listen_ip is ::1, listen_port is 65166[0m +[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65166[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65191[0m +[36m[DEBUG] Received a damaged packet with 4 status. and seqnum as 0[0m [36m[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 31, current_window_start : 0[0m [36m[DEBUG] Sent ACK saying we are waiting for 1, timestamp 0[0m [36m[DEBUG] Received data packet seqnum 1 with timestamp 0 | current_window_size : 30, current_window_start : 0[0m -[36m[DEBUG] Sent ACK saying we are waiting for 2, timestamp 0[0m -[36m[DEBUG] Received a damaged packet with 4 status. and seqnum as 0[0m [36m[DEBUG] Received data packet seqnum 2 with timestamp 984824098 | current_window_size : 29, current_window_start : 0[0m [36m[DEBUG] Sent ACK saying we are waiting for 3, timestamp 0[0m [36m[DEBUG] Received data packet seqnum 3 with timestamp 0 | current_window_size : 28, current_window_start : 0[0m @@ -15,8 +14,9 @@ [36m[DEBUG] Consuming packet : 2 | curr_recv_window = 29, recv_window_start = 2[0m [36m[DEBUG] Consuming packet : 3 | curr_recv_window = 30, recv_window_start = 3[0m [36m[DEBUG] Received the last packet[0m +[36m[DEBUG] Received a damaged packet with 4 status. and seqnum as 0[0m [36m[DEBUG] Sent ACK saying we are waiting for 4, timestamp 0[0m [36m[DEBUG] Done the transfer with done status being true[0m -[36m[DEBUG] The difference between the two is 2210000.000000 seconds[0m -[36m[DEBUG] The transfer took 2210.000000 seconds[0m +[36m[DEBUG] The difference between the two is 2597000.000000 seconds[0m +[36m[DEBUG] The transfer took 2597.000000 seconds[0m [36m[DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv.[0m diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_sender.log b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_sender.log index 22fa5662f889605b65dc6e94cdc579e1d2e321b4..99077384440cc2025ad9129f3994e93e941b37bf 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_sender.log +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_sender.log @@ -3,10 +3,13 @@ stats_filename is tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv, fec_enabled is 1, receiver_ip is ::1, - receiver_port is 65073[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65073[0m + receiver_port is 65191[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65191[0m [36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 1[0m [36m[DEBUG] Sending the pkt with seqnum: 0[0m +[36m[DEBUG] The current average rtt 1 ms, retransmitted after 2000.000000 ms[0m +[36m[DEBUG] The pkt with seqnum: 0 has timeout[0m +[36m[DEBUG] Sending the pkt with seqnum: 0[0m [36m[DEBUG] The sender is reading from the socket.[0m [36m[DEBUG] The ACK with the seqnum: 1 has been received[0m [36m[DEBUG] The sender is cumulatively acknowledging [0 : 1[ (place in the buffer) | [0, 1[ (seqnum)[0m @@ -16,14 +19,8 @@ [36m[DEBUG] The LAST PTYPE_DATA is being sent ![0m [36m[DEBUG] Sending the pkt with seqnum: 2[0m [36m[DEBUG] The sender is reading from the socket.[0m -[36m[DEBUG] The ACK with the seqnum: 2 has been received[0m -[36m[DEBUG] The sender is cumulatively acknowledging [1 : 2[ (place in the buffer) | [1, 2[ (seqnum)[0m -[36m[DEBUG] Sending the pkt with seqnum: 2[0m -[36m[DEBUG] The pkt with seqnum: 2 has timeout[0m -[36m[DEBUG] Sending the pkt with seqnum: 2[0m -[36m[DEBUG] The sender is reading from the socket.[0m [36m[DEBUG] The ACK with the seqnum: 3 has been received[0m -[36m[DEBUG] The sender is cumulatively acknowledging [2 : 3[ (place in the buffer) | [2, 3[ (seqnum)[0m +[36m[DEBUG] The sender is cumulatively acknowledging [1 : 3[ (place in the buffer) | [1, 3[ (seqnum)[0m [36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 28[0m [36m[DEBUG] The CLOSING pkt is being sent ![0m [36m[DEBUG] Sending the pkt with seqnum: 3[0m diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_receiver.log b/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_receiver.log index 5a8cff78548d0007caea8add976e01d3eb97921e..c7cb4282d0223206d31fa3139d948a40ebcac659 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_receiver.log +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_receiver.log @@ -1,15 +1,15 @@ -==49611== Memcheck, a memory error detector -==49611== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==49611== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==49611== Command: ./receiver ::1 65075 -s tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv -==49611== Parent PID: 49581 -==49611== -==49611== -==49611== HEAP SUMMARY: -==49611== in use at exit: 0 bytes in 0 blocks -==49611== total heap usage: 20 allocs, 20 frees, 13,568 bytes allocated -==49611== -==49611== All heap blocks were freed -- no leaks are possible -==49611== -==49611== For lists of detected and suppressed errors, rerun with: -s -==49611== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==9065== Memcheck, a memory error detector +==9065== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==9065== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==9065== Command: ./receiver ::1 65166 -s tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv +==9065== Parent PID: 9035 +==9065== +==9065== +==9065== HEAP SUMMARY: +==9065== in use at exit: 0 bytes in 0 blocks +==9065== total heap usage: 20 allocs, 20 frees, 13,576 bytes allocated +==9065== +==9065== All heap blocks were freed -- no leaks are possible +==9065== +==9065== For lists of detected and suppressed errors, rerun with: -s +==9065== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_sender.log b/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_sender.log index 91555a1da1f18e1591dc96909e5a3c4c390cf56f..63a304e5ec9d24930ec03dffc4ab3f3ec8602ad8 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_sender.log +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_valgrind_long_message_sender.log @@ -1,15 +1,15 @@ -==49612== Memcheck, a memory error detector -==49612== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==49612== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==49612== Command: ./sender -f tests_files/long_message.txt ::1 65073 -c -s tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv -==49612== Parent PID: 49581 -==49612== -==49612== -==49612== HEAP SUMMARY: -==49612== in use at exit: 0 bytes in 0 blocks -==49612== total heap usage: 14 allocs, 14 frees, 6,532 bytes allocated -==49612== -==49612== All heap blocks were freed -- no leaks are possible -==49612== -==49612== For lists of detected and suppressed errors, rerun with: -s -==49612== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==9066== Memcheck, a memory error detector +==9066== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==9066== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==9066== Command: ./sender -f tests_files/long_message.txt ::1 65191 -c -s tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv +==9066== Parent PID: 9035 +==9066== +==9066== +==9066== HEAP SUMMARY: +==9066== in use at exit: 0 bytes in 0 blocks +==9066== total heap usage: 13 allocs, 13 frees, 6,020 bytes allocated +==9066== +==9066== All heap blocks were freed -- no leaks are possible +==9066== +==9066== For lists of detected and suppressed errors, rerun with: -s +==9066== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) diff --git a/tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv b/tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv index 330c1393f9483deeacdb0b8a186deae4e147ce3f..0b210b5b5d91da97103c4c5dacc8c3a36c3a3818 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv +++ b/tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv @@ -3,10 +3,10 @@ data_received:4 data_truncated_received:0 fec_sent:0 fec_received:0 -ack_sent:4 +ack_sent:3 ack_received:0 nack_received:0 -packet_ignored:1 -throughput:5466.063477 +packet_ignored:2 +throughput:4651.520996 packet_duplicated:0 packet_recovered:0 diff --git a/tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv b/tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv index 5dc3d81d49609f0f641845ed55e0c75b4b504d4f..2e635f624dabca5a85644a76303e388a795f1f0b 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv +++ b/tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv @@ -1,13 +1,13 @@ -data_sent:6 +data_sent:5 data_received:0 data_truncated_received:0 fec_sent:1 fec_received:0 ack_sent:0 -ack_received:4 +ack_received:3 nack_received:0 packet_ignored:0 -throughput:5397.676758 -min_rtt:31 -max_rtt:2111 -packet_retransmitted:2 +throughput:4094.915283 +min_rtt:297 +max_rtt:2334 +packet_retransmitted:1