diff --git a/performance_results/average/output.gif b/performance_results/average/output.gif index 89f1815f67f5bce229624ab2d910b7dc81bc4587..2942ee0c8b96fc9f0a57718e07d3fb27f907ab1d 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 68a38854406d8e444ce39b7958fa7b55be74994a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/performance_results/average/receiver_1_with_FEC.csv +++ b/performance_results/average/receiver_1_with_FEC.csv @@ -1,12 +0,0 @@ -data_sent:0 -data_received:6088 -data_truncated_received:6 -fec_sent:0 -fec_received:998 -ack_sent:8141 -ack_received:0 -nack_received:0 -packet_ignored:1385 -throughput:85992.859375 -packet_duplicated:1842 -packet_recovered:280 diff --git a/performance_results/average/receiver_1_without_FEC.csv b/performance_results/average/receiver_1_without_FEC.csv deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/performance_results/average/sender_1_with_FEC.csv b/performance_results/average/sender_1_with_FEC.csv index db8dee1c3b6b958cdb06473b1ddb9e99fff83d93..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/performance_results/average/sender_1_with_FEC.csv +++ b/performance_results/average/sender_1_with_FEC.csv @@ -1,13 +0,0 @@ -data_sent:12671 -data_received:0 -data_truncated_received:0 -fec_sent:1132 -fec_received:0 -ack_sent:0 -ack_received:8141 -nack_received:6 -packet_ignored:0 -throughput:85874.507812 -min_rtt:10 -max_rtt:10279 -packet_retransmitted:8145 diff --git a/performance_results/average/sender_1_without_FEC.csv b/performance_results/average/sender_1_without_FEC.csv deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/performance_results/ideal/output.gif b/performance_results/ideal/output.gif index ae8a968b45b58c62a535e62648696f90a97b37d3..6a7c0298094a0ca68dea8a9aa427ac3863af3636 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 352e260e1b41cc71f55a8d487c8a935ed7cf3012..bf5fcbd36cf6b677ca42a79e4155ce447a52d91d 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:6284 +data_received:4362 data_truncated_received:0 fec_sent:0 -fec_received:588 -ack_sent:35961 +fec_received:611 +ack_sent:167 ack_received:0 nack_received:0 -packet_ignored:416 -throughput:26472902.000000 -packet_duplicated:1924 -packet_recovered:166 +packet_ignored:94 +throughput:1105010.875000 +packet_duplicated:5 +packet_recovered:169 diff --git a/performance_results/ideal/receiver_1_without_FEC.csv b/performance_results/ideal/receiver_1_without_FEC.csv index e42f6ebcc9ebe112fb476ac901cdca6811fb4ed0..41b5c74967e2cff179652a186406042b275a14d2 100644 --- a/performance_results/ideal/receiver_1_without_FEC.csv +++ b/performance_results/ideal/receiver_1_without_FEC.csv @@ -1,12 +1,12 @@ data_sent:0 -data_received:4763 +data_received:4526 data_truncated_received:0 fec_sent:0 fec_received:0 -ack_sent:19781 +ack_sent:216 ack_received:0 nack_received:0 -packet_ignored:225 -throughput:31092336.000000 -packet_duplicated:237 +packet_ignored:50 +throughput:853139.000000 +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 55e390f5ff2d277ff85d3becd04475b1e31c2eb2..d2a70d7e2cb3d4fe380aa9ebb8ba8571a064218b 100644 --- a/performance_results/ideal/receiver_2_with_FEC.csv +++ b/performance_results/ideal/receiver_2_with_FEC.csv @@ -1,12 +1,12 @@ data_sent:0 -data_received:9084 +data_received:4370 data_truncated_received:0 fec_sent:0 -fec_received:632 -ack_sent:44779 +fec_received:589 +ack_sent:169 ack_received:0 nack_received:0 -packet_ignored:484 -throughput:24003928.000000 -packet_duplicated:4722 -packet_recovered:164 +packet_ignored:76 +throughput:1091987.750000 +packet_duplicated:11 +packet_recovered:167 diff --git a/performance_results/ideal/receiver_2_without_FEC.csv b/performance_results/ideal/receiver_2_without_FEC.csv index 5f50fdc351dede3bf7b648118ee91a2a8c0c09ec..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/performance_results/ideal/receiver_2_without_FEC.csv +++ b/performance_results/ideal/receiver_2_without_FEC.csv @@ -1,12 +0,0 @@ -data_sent:0 -data_received:4818 -data_truncated_received:0 -fec_sent:0 -fec_received:0 -ack_sent:8364 -ack_received:0 -nack_received:0 -packet_ignored:126 -throughput:30230068.000000 -packet_duplicated:292 -packet_recovered:0 diff --git a/performance_results/ideal/receiver_3_with_FEC.csv b/performance_results/ideal/receiver_3_with_FEC.csv deleted file mode 100644 index 1507615adcdf4d565ecd12979511391fec8a9a87..0000000000000000000000000000000000000000 --- a/performance_results/ideal/receiver_3_with_FEC.csv +++ /dev/null @@ -1,12 +0,0 @@ -data_sent:0 -data_received:8030 -data_truncated_received:0 -fec_sent:0 -fec_received:621 -ack_sent:43182 -ack_received:0 -nack_received:0 -packet_ignored:476 -throughput:24160406.000000 -packet_duplicated:3706 -packet_recovered:202 diff --git a/performance_results/ideal/receiver_3_without_FEC.csv b/performance_results/ideal/receiver_3_without_FEC.csv deleted file mode 100644 index cff668cd66753024b04bb536b5bf6451a9bbcd71..0000000000000000000000000000000000000000 --- a/performance_results/ideal/receiver_3_without_FEC.csv +++ /dev/null @@ -1,12 +0,0 @@ -data_sent:0 -data_received:7806 -data_truncated_received:0 -fec_sent:0 -fec_received:0 -ack_sent:44336 -ack_received:0 -nack_received:0 -packet_ignored:468 -throughput:23338832.000000 -packet_duplicated:3280 -packet_recovered:0 diff --git a/performance_results/ideal/sender_1_with_FEC.csv b/performance_results/ideal/sender_1_with_FEC.csv index 5d5e35bbc57de064b0a47e2c8a25f949e9480d76..ac47dab81e5d8079a4c8dee6449f4d1682a073dd 100644 --- a/performance_results/ideal/sender_1_with_FEC.csv +++ b/performance_results/ideal/sender_1_with_FEC.csv @@ -1,13 +1,13 @@ -data_sent:40273 +data_sent:4586 data_received:0 data_truncated_received:0 fec_sent:1132 fec_received:0 ack_sent:0 -ack_received:35759 +ack_received:167 nack_received:0 packet_ignored:0 -throughput:26322488.000000 -min_rtt:2 -max_rtt:17 -packet_retransmitted:35747 +throughput:1098265.500000 +min_rtt:100 +max_rtt:404 +packet_retransmitted:60 diff --git a/performance_results/ideal/sender_1_without_FEC.csv b/performance_results/ideal/sender_1_without_FEC.csv index 691b388df006d467d9c216318d7ba3c5a26294a9..3b6d85e734159331bfeb7948c2d3dccba61a75db 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:24294 +data_sent:4664 data_received:0 data_truncated_received:0 fec_sent:0 fec_received:0 ack_sent:0 -ack_received:19774 +ack_received:216 nack_received:0 packet_ignored:0 -throughput:7130062.500000 -min_rtt:2 -max_rtt:2002 -packet_retransmitted:19768 +throughput:849190.312500 +min_rtt:99 +max_rtt:505 +packet_retransmitted:138 diff --git a/performance_results/ideal/sender_2_with_FEC.csv b/performance_results/ideal/sender_2_with_FEC.csv index 51be03e6fff9980f59bdde313d49d6f5655a6fce..dd17714741ba211d2d81d81cd4fbfa06fc8c5161 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:48946 +data_sent:4586 data_received:0 data_truncated_received:0 fec_sent:1132 fec_received:0 ack_sent:0 -ack_received:44429 +ack_received:169 nack_received:0 packet_ignored:0 -throughput:23911010.000000 -min_rtt:2 -max_rtt:21 -packet_retransmitted:44420 +throughput:1085463.375000 +min_rtt:98 +max_rtt:404 +packet_retransmitted:60 diff --git a/performance_results/ideal/sender_2_without_FEC.csv b/performance_results/ideal/sender_2_without_FEC.csv index 404d2d042cef3df999d3239bc59c8d81d4b6bd3e..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/performance_results/ideal/sender_2_without_FEC.csv +++ b/performance_results/ideal/sender_2_without_FEC.csv @@ -1,13 +0,0 @@ -data_sent:12881 -data_received:0 -data_truncated_received:0 -fec_sent:0 -fec_received:0 -ack_sent:0 -ack_received:8364 -nack_received:0 -packet_ignored:0 -throughput:30131758.000000 -min_rtt:2 -max_rtt:16 -packet_retransmitted:8355 diff --git a/performance_results/ideal/sender_3_with_FEC.csv b/performance_results/ideal/sender_3_with_FEC.csv deleted file mode 100644 index 7dbc209821e96595180930cc79e3367dd3d09dce..0000000000000000000000000000000000000000 --- a/performance_results/ideal/sender_3_with_FEC.csv +++ /dev/null @@ -1,13 +0,0 @@ -data_sent:47291 -data_received:0 -data_truncated_received:0 -fec_sent:1132 -fec_received:0 -ack_sent:0 -ack_received:42769 -nack_received:0 -packet_ignored:0 -throughput:24097572.000000 -min_rtt:2 -max_rtt:25 -packet_retransmitted:42765 diff --git a/performance_results/ideal/sender_3_without_FEC.csv b/performance_results/ideal/sender_3_without_FEC.csv deleted file mode 100644 index c0d8245b3577af3887a20a0e167820f3147ab8f7..0000000000000000000000000000000000000000 --- a/performance_results/ideal/sender_3_without_FEC.csv +++ /dev/null @@ -1,13 +0,0 @@ -data_sent:48632 -data_received:0 -data_truncated_received:0 -fec_sent:0 -fec_received:0 -ack_sent:0 -ack_received:44118 -nack_received:0 -packet_ignored:0 -throughput:23280190.000000 -min_rtt:1 -max_rtt:24 -packet_retransmitted:44106 diff --git a/src/receiver_utils.c b/src/receiver_utils.c index 68dd1f608fe0c59573fe9503e1209e3a1a789f00..1e3d145cb8691b9d4e5e4b52c94a0597e1a0c2ad 100644 --- a/src/receiver_utils.c +++ b/src/receiver_utils.c @@ -1,6 +1,5 @@ #include "receiver_utils.h" - /** * @brief The function is going to check if we need to send an ACK or NACK on the @pfd, * and will send at most one packet [either an ACK or NACK or nothing]. @@ -552,7 +551,9 @@ int handle_incoming(struct pollfd * pfd, receiver_state_t * state) */ void reception_loop(struct pollfd * pfd, receiver_state_t * state) { - struct timeval current_time, last_packet_received; + struct timeval current_time, last_packet_received, last_ack_nack_sent; + gettimeofday(&last_ack_nack_sent, NULL); + int can_send; while (state->ack_to_send != NULL || state->transfer_done == 0) { int ready = poll(pfd, 1, -1); @@ -562,7 +563,10 @@ void reception_loop(struct pollfd * pfd, receiver_state_t * state) return; } - if (pfd->revents & POLLIN) + gettimeofday(¤t_time, NULL); + float interval = time_milliseconds(¤t_time) - time_milliseconds(&last_ack_nack_sent); + can_send = interval > (float) MAX_ACK_INTERVAL; + if (pfd->revents & POLLIN && !(can_send && state->ack_to_send != NULL)) { if (handle_incoming(pfd, state) != 0) return; @@ -570,10 +574,11 @@ void reception_loop(struct pollfd * pfd, receiver_state_t * state) if (state->last_data_packet < TWO_EXP_EIGHT) /* This means we received last data packet transfer */ gettimeofday(&last_packet_received, NULL); - } else if (pfd->revents & POLLOUT) + } else if (pfd->revents & POLLOUT && can_send) { if (send_if_inneed(pfd, state) != 0) return; + gettimeofday(&last_ack_nack_sent, NULL); } if (state->last_data_packet < TWO_EXP_EIGHT) /* This is a signal we use between us in order to mark the last datapacket containing data */ diff --git a/src/receiver_utils.h b/src/receiver_utils.h index 4a2882a2a7388b27f180bcbdf0cb0e2451c258ca..5f5491fa065434c59c1585bc22e372569ee0d146 100644 --- a/src/receiver_utils.h +++ b/src/receiver_utils.h @@ -32,7 +32,7 @@ #define TIMER_MULTIPLIER_BY_2 2 #define RECEIVER_INACTIVE_TIMEOUT 20 #define FEC_CALCULATED_ON 4 -#define MAX_ACK_INTERVAL 500 // In milliseconds +#define MAX_ACK_INTERVAL 100 // In milliseconds /* Represent the receiver's connection state 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 3ae3a1d9cf0c8953d908b9e9384849da29bda8de..211b3161b870ad78d5330197481af3e3227f5708 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,21 +1,20 @@ -@@ Using random seed: 1650995751 +@@ Using random seed: 1651002406 @@ Using parameters: -.. port: 65108 -.. forward_port: 65185 +.. port: 65103 +.. forward_port: 65021 .. delay: 100 .. jitter: 100 .. err_rate: 5 .. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650995751 +.. seed: 1651002406 .. link_direction: Forward -@@ Remote host is ::1 [42568] -[SEQ 0] Delayed packet by 117 ms +@@ Remote host is ::1 [57439] +[SEQ 0] Delayed packet by 147 ms [SEQ 0] Sent packet (Forward). [SEQ 1] Sent packet (Reverse). -[SEQ 1] Dropping packet -[FEC 0] Delayed packet by 3 ms +[SEQ 1] Delayed packet by 181 ms +[FEC 0] Delayed packet by 90 ms [FEC 0] Sent packet (Forward). -[SEQ 1] Delayed packet by 148 ms [SEQ 1] 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 69e57432f075b529788ea9c4a0407d1786830580..0fe877ab13e6879034e765cebb1e30bcac9fe658 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,6 +1,6 @@ -[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 65185[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65185[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65108[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 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] 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 @@ -11,6 +11,6 @@ [36m[DEBUG] Received the last packet[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 2174000.000000 seconds[0m -[36m[DEBUG] The transfer took 2174.000000 seconds[0m +[36m[DEBUG] The difference between the two is 112000.000000 seconds[0m +[36m[DEBUG] The transfer took 112.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 be29efda3552d9628e0686855f6cbc6cf2345494..b8565d9ad5c20b409de9b9da01902ff2897a66c7 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 65108[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65108[0m + receiver_port is 65103[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103[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 @@ -18,8 +18,6 @@ [36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 30 | receiver window size: 29[0m [36m[DEBUG] Sending LAST FEC pkt with seqnum: 0[0m [36m[DEBUG] A timer of -> 30000ms <- has started after sending the last PTYPE_DATA pkt ![0m -[36m[DEBUG] The pkt with seqnum: 1 has timeout[0m -[36m[DEBUG] Sending the pkt with seqnum: 1[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 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 3aa67698b34710c288dfc24293fa725422001671..031e83cbcd913c7573b267016af03aa1fb73bb92 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 @@ -==45956== Memcheck, a memory error detector -==45956== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==45956== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==45956== Command: ./receiver ::1 65185 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv -==45956== Parent PID: 45925 -==45956== -==45956== -==45956== HEAP SUMMARY: -==45956== in use at exit: 0 bytes in 0 blocks -==45956== total heap usage: 14 allocs, 14 frees, 10,400 bytes allocated -==45956== -==45956== All heap blocks were freed -- no leaks are possible -==45956== -==45956== For lists of detected and suppressed errors, rerun with: -s -==45956== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==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) 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 08c68949a8b0d8d2ce66b66a2c680521dac20420..d8dc7182e1c0047ca3a34de9d0e7cfcc0c439e51 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 @@ -==45957== Memcheck, a memory error detector -==45957== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==45957== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==45957== Command: ./sender -f tests_files/greeting.txt ::1 65108 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv -==45957== Parent PID: 45925 -==45957== -==45957== -==45957== HEAP SUMMARY: -==45957== in use at exit: 0 bytes in 0 blocks -==45957== total heap usage: 10 allocs, 10 frees, 4,420 bytes allocated -==45957== -==45957== All heap blocks were freed -- no leaks are possible -==45957== -==45957== For lists of detected and suppressed errors, rerun with: -s -==45957== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==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) 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 6ae5559548df3a9584e76a6cea152bb6142f4fdf..618b0cae9875a7d074f5ee5b29dac9ce909d1d2f 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 @@ -7,6 +7,6 @@ ack_sent:2 ack_received:0 nack_received:0 packet_ignored:0 -throughput:44.158234 +throughput:857.142883 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 ba4e155b55f307d3e5f496930d201812464ca416..6ec9d3e316d14092a39bec662b6a8d30c6e2fee9 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 @@ -1,4 +1,4 @@ -data_sent:3 +data_sent:2 data_received:0 data_truncated_received:0 fec_sent:1 @@ -7,7 +7,7 @@ ack_sent:0 ack_received:2 nack_received:0 packet_ignored:0 -throughput:41.504539 -min_rtt:139 -max_rtt:2160 -packet_retransmitted:1 +throughput:351.648346 +min_rtt:103 +max_rtt:159 +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 089c927b081523ba8aa8519c9e0fb38bfc0a94f4..9657be4b9cc3d42ace6e8c8c967d96ebec55e327 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,28 +1,30 @@ -@@ Using random seed: 1650995765 +@@ Using random seed: 1651002418 @@ Using parameters: -.. port: 65050 -.. forward_port: 65013 +.. port: 65073 +.. forward_port: 65075 .. delay: 100 .. jitter: 100 .. err_rate: 5 .. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650995765 +.. seed: 1651002418 .. link_direction: Forward -@@ Remote host is ::1 [32846] -[SEQ 0] Delayed packet by 133 ms +@@ Remote host is ::1 [43801] +[SEQ 0] Delayed packet by 10 ms [SEQ 0] Sent packet (Forward). [SEQ 1] Sent packet (Reverse). -[SEQ 1] Delayed packet by 122 ms -[SEQ 2] Delayed packet by 130 ms +[SEQ 1] Delayed packet by 58 ms +[SEQ 2] Dropping packet [SEQ 1] Sent packet (Forward). [SEQ 2] Sent packet (Reverse). -[SEQ 2] Delayed packet by 194 ms +[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 31 ms -[FEC 0] Delayed packet by 149 ms +[SEQ 3] Delayed packet by 77 ms +[FEC 0] Delayed packet by 159 ms [SEQ 3] Sent packet (Forward). [SEQ 4] Sent packet (Reverse). [FEC 0] Sent packet (Forward). -[SEQ 2] Sent packet (Forward). 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 9fc5e6beb671f8df079e6148bc6e459400057024..b081f12eea45d6c094651e69ff053a3a7d04fe3a 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,10 +1,11 @@ -[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 65013[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65013[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65050[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 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] 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 @@ -16,6 +17,6 @@ [36m[DEBUG] Received the last packet[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 189000.000000 seconds[0m -[36m[DEBUG] The transfer took 189.000000 seconds[0m +[36m[DEBUG] The difference between the two is 2210000.000000 seconds[0m +[36m[DEBUG] The transfer took 2210.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 1c88cb018d7149e0dc6b01efa35b54cc99c6c9e1..22fa5662f889605b65dc6e94cdc579e1d2e321b4 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,8 +3,8 @@ 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 65050[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65050[0m + receiver_port is 65073[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65073[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 sender is reading from the socket.[0m @@ -19,6 +19,8 @@ [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 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 e02530f248ae233b4525fa6a61d0ef9f9990c11e..5a8cff78548d0007caea8add976e01d3eb97921e 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 @@ -==46061== Memcheck, a memory error detector -==46061== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==46061== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==46061== Command: ./receiver ::1 65013 -s tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv -==46061== Parent PID: 46031 -==46061== -==46061== -==46061== HEAP SUMMARY: -==46061== in use at exit: 0 bytes in 0 blocks -==46061== total heap usage: 19 allocs, 19 frees, 13,040 bytes allocated -==46061== -==46061== All heap blocks were freed -- no leaks are possible -==46061== -==46061== For lists of detected and suppressed errors, rerun with: -s -==46061== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==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) 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 a33ad24be9cb08fc940166e199de1d9e50462c79..91555a1da1f18e1591dc96909e5a3c4c390cf56f 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 @@ -==46062== Memcheck, a memory error detector -==46062== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==46062== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==46062== Command: ./sender -f tests_files/long_message.txt ::1 65050 -c -s tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv -==46062== Parent PID: 46031 -==46062== -==46062== -==46062== HEAP SUMMARY: -==46062== in use at exit: 0 bytes in 0 blocks -==46062== total heap usage: 14 allocs, 14 frees, 6,532 bytes allocated -==46062== -==46062== All heap blocks were freed -- no leaks are possible -==46062== -==46062== For lists of detected and suppressed errors, rerun with: -s -==46062== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==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) 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 844dfb8bf76790389712f3154f1c14f5a38f76cc..330c1393f9483deeacdb0b8a186deae4e147ce3f 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 @@ -6,7 +6,7 @@ fec_received:0 ack_sent:4 ack_received:0 nack_received:0 -packet_ignored:0 -throughput:63915.343750 +packet_ignored:1 +throughput:5466.063477 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 3c2832c776b567b90b660e468f68bdf45c71462c..5dc3d81d49609f0f641845ed55e0c75b4b504d4f 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,4 +1,4 @@ -data_sent:5 +data_sent:6 data_received:0 data_truncated_received:0 fec_sent:1 @@ -7,7 +7,7 @@ ack_sent:0 ack_received:4 nack_received:0 packet_ignored:0 -throughput:34812.679688 -min_rtt:45 -max_rtt:154 -packet_retransmitted:1 +throughput:5397.676758 +min_rtt:31 +max_rtt:2111 +packet_retransmitted:2