diff --git a/performance_results/average/output.gif b/performance_results/average/output.gif new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/performance_results/average/receiver_1_with_FEC.csv b/performance_results/average/receiver_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/performance_results/average/sender_1_with_FEC.csv b/performance_results/average/sender_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/performance_results/ideal/output.gif b/performance_results/ideal/output.gif new file mode 100644 index 0000000000000000000000000000000000000000..36bf9f94f83094a6c326563779624908605cf599 Binary files /dev/null and b/performance_results/ideal/output.gif differ diff --git a/performance_results/ideal/output.txt b/performance_results/ideal/output.txt new file mode 100644 index 0000000000000000000000000000000000000000..c57eff55ebc0c54973903af5f72bac72762cf4f4 --- /dev/null +++ b/performance_results/ideal/output.txt @@ -0,0 +1 @@ +Hello World! \ No newline at end of file diff --git a/performance_results/ideal/receiver_1_with_FEC.csv b/performance_results/ideal/receiver_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..3ff91771a54b0175db3b1d05c60f39ceafb53786 --- /dev/null +++ b/performance_results/ideal/receiver_1_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:3 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:2 +ack_received:0 +nack_received:0 +packet_ignored:0 +throughput:47.904190 +packet_duplicated:1 +packet_recovered:0 diff --git a/performance_results/ideal/receiver_1_without_FEC.csv b/performance_results/ideal/receiver_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..3ff91771a54b0175db3b1d05c60f39ceafb53786 --- /dev/null +++ b/performance_results/ideal/receiver_1_without_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:3 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:2 +ack_received:0 +nack_received:0 +packet_ignored:0 +throughput:47.904190 +packet_duplicated:1 +packet_recovered:0 diff --git a/performance_results/ideal/receiver_2_with_FEC.csv b/performance_results/ideal/receiver_2_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..e08d64fa78c577dffdddd023b98fd321dfbb4cc3 --- /dev/null +++ b/performance_results/ideal/receiver_2_with_FEC.csv @@ -0,0 +1,12 @@ +data_sent:0 +data_received:3 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:2 +ack_received:0 +nack_received:0 +packet_ignored:0 +throughput:47.928108 +packet_duplicated:1 +packet_recovered:0 diff --git a/performance_results/ideal/sender_1_with_FEC.csv b/performance_results/ideal/sender_1_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..5072be82b51ce84b931c2426431e0c2cf5cd9a05 --- /dev/null +++ b/performance_results/ideal/sender_1_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4 +data_received:0 +data_truncated_received:0 +fec_sent:1 +fec_received:0 +ack_sent:0 +ack_received:2 +nack_received:0 +packet_ignored:0 +throughput:23.964054 +min_rtt:2001 +max_rtt:2004 +packet_retransmitted:2 diff --git a/performance_results/ideal/sender_1_without_FEC.csv b/performance_results/ideal/sender_1_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..8affded02215acf29664e23c151b36647bab665a --- /dev/null +++ b/performance_results/ideal/sender_1_without_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4 +data_received:0 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:0 +ack_received:2 +nack_received:0 +packet_ignored:0 +throughput:23.958073 +min_rtt:2001 +max_rtt:2006 +packet_retransmitted:2 diff --git a/performance_results/ideal/sender_2_with_FEC.csv b/performance_results/ideal/sender_2_with_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..c545964e0e61a24090565fdce86f045dfb695447 --- /dev/null +++ b/performance_results/ideal/sender_2_with_FEC.csv @@ -0,0 +1,13 @@ +data_sent:4 +data_received:0 +data_truncated_received:0 +fec_sent:1 +fec_received:0 +ack_sent:0 +ack_received:2 +nack_received:0 +packet_ignored:0 +throughput:23.970037 +min_rtt:2001 +max_rtt:2004 +packet_retransmitted:2 diff --git a/performance_results/worst/output.gif b/performance_results/worst/output.gif new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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..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..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/receiver_utils.c b/src/receiver_utils.c index 199338601c06604edeb6141bef212100687ffef5..d572b3c7be4d4f5027e4da9912e7a25340289470 100644 --- a/src/receiver_utils.c +++ b/src/receiver_utils.c @@ -128,7 +128,7 @@ uint16_t can_consume(receiver_state_t * state, const pkt_t * latest_packet_recei // We have received the last 4 paquets harmless or we just received the last packet int to_consume = 0; ASSERT(state->next_to_consume >= 0 && state->next_to_consume < TWO_EXP_EIGHT); - if (pkt_get_length(latest_packet_received) == 0) + if (pkt_get_length(latest_packet_received) == 0 && state->last_received_in_order == pkt_get_seqnum(latest_packet_received)) { // Last packet we read everything from the buffer for (uint16_t i = state->next_to_consume; state->recvd_data_buf[i] != NULL; i = (i + 1) % TWO_EXP_EIGHT ) to_consume++; diff --git a/tests/advanced_test.sh b/tests/advanced_test.sh index c140a37b71b721c8a8541eaf14a0df4b51708562..b657f66577e28d7007d1717d3d29c405147efe1f 100755 --- a/tests/advanced_test.sh +++ b/tests/advanced_test.sh @@ -27,8 +27,8 @@ MODES=( 'without_FEC' ) -ERROR_RATE=1 -CUT_RATE=1 +ERROR_RATE=5 +CUT_RATE=5 DELAY=100 JITTER=100 LOSS_RATE=1 diff --git a/tests/run_perfomance.sh b/tests/run_perfomance.sh index e05fbbce6c9b40a4783b8236af7cf6441447d22a..b9501e503ee93a8a2a6335a0617eec1a555b7887 100755 --- a/tests/run_perfomance.sh +++ b/tests/run_perfomance.sh @@ -20,8 +20,8 @@ LOSS_RATE=0 if [ ! -d "performance_results/ideal" ]; then mkdir "performance_results/ideal" fi -export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/ideal/" - +export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/ideal/" & +wait $! ### 2. Average Case Transfer @@ -35,18 +35,20 @@ LOSS_RATE=1 if [ ! -d "performance_results/average" ]; then mkdir "performance_results/average" fi -export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/average/" +export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/average/" & +wait $! -### 2. Average Case Transfer +### 3. Worst Case Transfer # Chosen parameters for Ideal scenario -ERROR_RATE=10 +ERROR_RATE=15 CUT_RATE=1 DELAY=1500 JITTER=500 -LOSS_RATE=1 +LOSS_RATE=13 if [ ! -d "performance_results/worst" ]; then mkdir "performance_results/worst" fi -export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/worst/" \ No newline at end of file +export ERROR_RATE CUT_RATE DELAY JITTER LOSS_RATE && ./tests/perfomance_test.sh ${FILE_TO_TRANSFER} "performance_results/worst/" & +wait $! \ No newline at end of file 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 1f6ec7cb7b2d60382864f5669fd0c9ed6489c5d8..c2ebc87ef50e91c13d005389804f47688c309a79 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,14 +1,18 @@ -@@ Using random seed: 1650987716 +@@ Using random seed: 1650988936 @@ Using parameters: -.. port: 65169 -.. forward_port: 65135 +.. port: 65074 +.. forward_port: 65008 .. delay: 100 .. jitter: 100 -.. err_rate: 1 -.. cut_rate: 1 +.. err_rate: 5 +.. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650987716 +.. seed: 1650988936 .. link_direction: Forward -@@ Remote host is ::1 [59206] -[SEQ 0] Delayed packet by 143 ms +@@ Remote host is ::1 [43169] +[SEQ 0] Delayed packet by 144 ms [SEQ 0] Sent packet (Forward). +[SEQ 1] Sent packet (Reverse). +[SEQ 1] Delayed packet by 87 ms +[SEQ 1] Sent packet (Forward). +[SEQ 2] Sent packet (Reverse). diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c57eff55ebc0c54973903af5f72bac72762cf4f4 100644 --- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt +++ b/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt @@ -0,0 +1 @@ +Hello World! \ No newline at end of file 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 7b72f22bd6650637abab42bf58aecdc98be8f8f3..c6145a5c4c32b55d40153f01530bf94e1ef94ad4 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,4 +1,15 @@ -[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 65135[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65135[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65169[0m -[36m[DEBUG] Received data packet seqnum 0 with timestamp 984824098 | current_window_size : 31, current_window_start : 0[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 65008[0m +[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65008[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65074[0m +[36m[DEBUG] Received data packet seqnum 0 with timestamp 1650988936 | 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 1650988938 | 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] Sent ACK saying we are waiting for 2, timestamp 1650988938[0m +[36m[DEBUG] Done the transfer with done status being true[0m +[36m[DEBUG] The difference between the two is 2095000.000000 seconds[0m +[36m[DEBUG] The transfer took 2095.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 27fb2b63087f3aa8cc2bbb84fa47c290a5424cae..29f222ca36cbb4e527948f22cb89eff8a54e9f31 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 @@ -1,10 +1,4 @@ -[36m[DEBUG] Sender has following arguments: - filename is tests_files/greeting.txt, - 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 65169[0m -[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65169[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 +[35m[SEND] [Seq: 000, Win_Rec: 1, Len: 12] (ack)[0m +[95m[RECV] [Seq: 001, Type: 2, len 0][0m +[35m[SEND] [Seq: 001, Win_Rec: 30, Len: 0] (ack)[0m +[95m[RECV] [Seq: 002, Type: 2, len 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 d3be1f2b1e3cf838dadbde53ba45afd1afae7502..2aea21b1d26c2f8b7a81d8704bfa5fb3d89cd01b 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,6 +1,15 @@ -==36399== Memcheck, a memory error detector -==36399== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==36399== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==36399== Command: ./receiver ::1 65135 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv -==36399== Parent PID: 36367 -==36399== +==38465== Memcheck, a memory error detector +==38465== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==38465== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==38465== Command: ./receiver ::1 65008 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv +==38465== Parent PID: 38434 +==38465== +==38465== +==38465== HEAP SUMMARY: +==38465== in use at exit: 0 bytes in 0 blocks +==38465== total heap usage: 13 allocs, 13 frees, 9,872 bytes allocated +==38465== +==38465== All heap blocks were freed -- no leaks are possible +==38465== +==38465== For lists of detected and suppressed errors, rerun with: -s +==38465== 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 ff6429b7b183d6cadb3ebe4dcb96a63ad1fc4f86..4d771618c20aa2f73b97687f711970ca5f24021c 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,33 +1,29 @@ -==36400== Memcheck, a memory error detector -==36400== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==36400== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==36400== Command: ./sender -f tests_files/greeting.txt ::1 65169 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv -==36400== Parent PID: 36367 -==36400== -==36400== -==36400== Process terminating with default action of signal 2 (SIGINT) -==36400== at 0x498D995: poll (poll.c:29) -==36400== by 0x1095F6: main (in /home/vany/Desktop/school/networking/project_trtp/sender) -==36400== -==36400== HEAP SUMMARY: -==36400== in use at exit: 2,756 bytes in 5 blocks -==36400== total heap usage: 7 allocs, 2 frees, 2,836 bytes allocated -==36400== -==36400== 8 bytes in 1 blocks are definitely lost in loss record 1 of 5 -==36400== at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) -==36400== by 0x1095AA: main (in /home/vany/Desktop/school/networking/project_trtp/sender) -==36400== -==36400== 2,748 (1,568 direct, 1,180 indirect) bytes in 1 blocks are definitely lost in loss record 5 of 5 -==36400== at 0x483DD99: calloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) -==36400== by 0x10AF9B: state_new (in /home/vany/Desktop/school/networking/project_trtp/sender) -==36400== by 0x1095CB: main (in /home/vany/Desktop/school/networking/project_trtp/sender) -==36400== -==36400== LEAK SUMMARY: -==36400== definitely lost: 1,576 bytes in 2 blocks -==36400== indirectly lost: 1,180 bytes in 3 blocks -==36400== possibly lost: 0 bytes in 0 blocks -==36400== still reachable: 0 bytes in 0 blocks -==36400== suppressed: 0 bytes in 0 blocks -==36400== -==36400== For lists of detected and suppressed errors, rerun with: -s -==36400== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) +==38466== Memcheck, a memory error detector +==38466== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==38466== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==38466== Command: ./sender -f tests_files/greeting.txt ::1 65074 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv +==38466== Parent PID: 38434 +==38466== +==38466== +==38466== HEAP SUMMARY: +==38466== in use at exit: 536 bytes in 2 blocks +==38466== total heap usage: 11 allocs, 9 frees, 884 bytes allocated +==38466== +==38466== 512 bytes in 1 blocks are definitely lost in loss record 2 of 2 +==38466== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) +==38466== by 0x10AE2F: pkt_set_payload (packet_implem.c:313) +==38466== by 0x1098A8: append_to_fec_pkt (sender.c:124) +==38466== by 0x10A44E: read_write_loop_sender (sender.c:449) +==38466== by 0x109559: main (sender.c:560) +==38466== +==38466== LEAK SUMMARY: +==38466== definitely lost: 512 bytes in 1 blocks +==38466== indirectly lost: 0 bytes in 0 blocks +==38466== possibly lost: 0 bytes in 0 blocks +==38466== still reachable: 24 bytes in 1 blocks +==38466== suppressed: 0 bytes in 0 blocks +==38466== Reachable blocks (those to which a pointer was found) are not shown. +==38466== To see them, rerun with: --leak-check=full --show-leak-kinds=all +==38466== +==38466== For lists of detected and suppressed errors, rerun with: -s +==38466== ERROR SUMMARY: 1 errors from 1 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..396f1032f6857b496f16377151b1e6f9b99c243d 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 @@ -0,0 +1,12 @@ +data_sent:0 +data_received:2 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:2 +ack_received:0 +nack_received:0 +packet_ignored:0 +throughput:45.823387 +packet_duplicated:0 +packet_recovered: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 d60443427c67e27434dafa2b4d7d82f05b74d9f1..651c26a63ef19850dcb6590158955c3bd596b95f 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,11 +1,22 @@ -@@ Using random seed: 1650987718 +@@ Using random seed: 1650988955 @@ Using parameters: -.. port: 65002 -.. forward_port: 65137 +.. port: 65068 +.. forward_port: 65085 .. delay: 100 .. jitter: 100 -.. err_rate: 1 -.. cut_rate: 1 +.. err_rate: 5 +.. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650987718 +.. seed: 1650988955 .. link_direction: Forward +@@ Remote host is ::1 [46889] +[SEQ 0] Delayed packet by 20 ms +[SEQ 0] Sent packet (Forward). +[SEQ 1] Sent packet (Reverse). +[SEQ 1] Delayed packet by 132 ms +[SEQ 2] Delayed packet by 50 ms +[SEQ 3] Delayed packet by 184 ms +[SEQ 2] Sent packet (Forward). +[SEQ 1] Sent packet (Forward). +[SEQ 3] Sent packet (Forward). +[SEQ 4] Sent packet (Reverse). diff --git a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_received_file.txt b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_received_file.txt index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a18b03ec08fdc53c1f0a5e0fc9187b5a0f18568f 100644 --- a/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_received_file.txt +++ b/tests_logs/advanced_tests/long_message/with_FEC/adv_long_message_received_file.txt @@ -0,0 +1,29 @@ +Hello I'm a good friend, I've seen that you are writing a protocol named TRTP. +How is it going ? Hard ? Good for you. See life is full of hard things just like your +network course. But when you manage to thrive throgh tough times then sweet things are +ahead. So good luck have a nice day of testing and remember : Tough Times Never Last. + +PS: Drink a beer when you pass the test. Share your knowledge to others, computer +science isn't a field for selfishness. If you want to switch to Law, Economy, some shit + +Hi Vany I'm pleased to read some news from you. As you know I work sometime a bit late in the night. +In a few hour you'll show up in the famous "Salle Intel" to be really productive as you are. + +Best regards, + +Samuel + +Sorry to be lazy but I'll past down what is above :') + +Hello I'm a good friend, I've seen that you are writing a protocol named TRTP. +How is it going ? Hard ? Good for you. See life is full of hard things just like your +network course. But when you manage to thrive throgh tough times then sweet things are +ahead. So good luck have a nice day of testing and remember : Tough Times Never Last. + +PS: Drink a beer when you pass the test. Share your knowledge to others, computer +science isn't a field for selfishness. If you want to switch to Law, Economy, some shit + +Hi Vany I'm pleased to read some news from you. As you know I work sometime a bit late in the night. +In a few hour you'll show up in the famous "Salle Intel" to be really productive as you are. + +Best regards, 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 d4228c71b69cf5b9ab5fd290a72ad30185f67615..807c84a77ad3237b8395a067def42195b76a4a0d 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,2 +1,19 @@ -[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 65137[0m -[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65137[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 65085[0m +[36m[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65085[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65068[0m +[36m[DEBUG] Received data packet seqnum 0 with timestamp 1650988956 | 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 2 with timestamp 1650988958 | current_window_size : 30, current_window_start : 0[0m +[36m[DEBUG] Received data packet seqnum 1 with timestamp 1650988958 | current_window_size : 29, current_window_start : 0[0m +[36m[DEBUG] Received data packet seqnum 3 with timestamp 1650988958 | current_window_size : 28, current_window_start : 0[0m +[36m[DEBUG] Going to consume the next 4 packets.[0m +[36m[DEBUG] Consuming packet : 0 | curr_recv_window = 27, recv_window_start = 0[0m +[36m[DEBUG] Consuming packet : 1 | curr_recv_window = 28, recv_window_start = 1[0m +[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] Sent ACK saying we are waiting for 4, timestamp 1650988958[0m +[36m[DEBUG] Done the transfer with done status being true[0m +[36m[DEBUG] The difference between the two is 2200000.000000 seconds[0m +[36m[DEBUG] The transfer took 2200.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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..aeab5b5f16a88bfd1007db626ccce3f0c2d2e32d 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 @@ -0,0 +1,6 @@ +[35m[SEND] [Seq: 000, Win_Rec: 1, Len: 512] (ack)[0m +[95m[RECV] [Seq: 001, Type: 2, len 0][0m +[35m[SEND] [Seq: 001, Win_Rec: 30, Len: 512] (ack)[0m +[35m[SEND] [Seq: 002, Win_Rec: 30, Len: 486] (ack)[0m +[35m[SEND] [Seq: 003, Win_Rec: 30, Len: 0] (ack)[0m +[95m[RECV] [Seq: 004, Type: 2, len 0][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 231a08ffaf91da47d5d1343abcf538e118d3002b..edbf717ddda04864f95f63954a8138b634b5fe79 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,6 +1,15 @@ -==36433== Memcheck, a memory error detector -==36433== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==36433== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==36433== Command: ./receiver ::1 65137 -s tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv -==36433== Parent PID: 36403 -==36433== +==38577== Memcheck, a memory error detector +==38577== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==38577== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==38577== Command: ./receiver ::1 65085 -s tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv +==38577== Parent PID: 38547 +==38577== +==38577== +==38577== HEAP SUMMARY: +==38577== in use at exit: 0 bytes in 0 blocks +==38577== total heap usage: 17 allocs, 17 frees, 11,984 bytes allocated +==38577== +==38577== All heap blocks were freed -- no leaks are possible +==38577== +==38577== For lists of detected and suppressed errors, rerun with: -s +==38577== 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 44cff375100e902ef494d2aca3162b4c94244b58..6d6986c8c1b1d206f42ced395137c61a1bca6296 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,26 +1,29 @@ -==36434== Memcheck, a memory error detector -==36434== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==36434== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info -==36434== Command: ./sender -f tests_files/long_message.txt ::1 65002 -c -s tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv -==36434== Parent PID: 36403 -==36434== -==36434== -==36434== Process terminating with default action of signal 2 (SIGINT) -==36434== at 0x49890A5: write (write.c:26) -==36434== by 0x4909EBC: _IO_file_write@@GLIBC_2.2.5 (fileops.c:1181) -==36434== by 0x490A7D7: new_do_write (fileops.c:449) -==36434== by 0x490A7D7: _IO_new_file_xsputn (fileops.c:1255) -==36434== by 0x490A7D7: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1197) -==36434== by 0x48F4F82: buffered_vfprintf (vfprintf-internal.c:2395) -==36434== by 0x48F1D53: __vfprintf_internal (vfprintf-internal.c:1346) -==36434== by 0x49A9152: __fprintf_chk (fprintf_chk.c:33) -==36434== by 0x1094E5: main (in /home/vany/Desktop/school/networking/project_trtp/sender) -==36434== -==36434== HEAP SUMMARY: -==36434== in use at exit: 0 bytes in 0 blocks -==36434== total heap usage: 0 allocs, 0 frees, 0 bytes allocated -==36434== -==36434== All heap blocks were freed -- no leaks are possible -==36434== -==36434== For lists of detected and suppressed errors, rerun with: -s -==36434== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==38578== Memcheck, a memory error detector +==38578== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==38578== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info +==38578== Command: ./sender -f tests_files/long_message.txt ::1 65068 -c -s tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv +==38578== Parent PID: 38547 +==38578== +==38578== +==38578== HEAP SUMMARY: +==38578== in use at exit: 536 bytes in 2 blocks +==38578== total heap usage: 17 allocs, 15 frees, 3,954 bytes allocated +==38578== +==38578== 512 bytes in 1 blocks are definitely lost in loss record 2 of 2 +==38578== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) +==38578== by 0x10AE2F: pkt_set_payload (packet_implem.c:313) +==38578== by 0x1098A8: append_to_fec_pkt (sender.c:124) +==38578== by 0x10A44E: read_write_loop_sender (sender.c:449) +==38578== by 0x109559: main (sender.c:560) +==38578== +==38578== LEAK SUMMARY: +==38578== definitely lost: 512 bytes in 1 blocks +==38578== indirectly lost: 0 bytes in 0 blocks +==38578== possibly lost: 0 bytes in 0 blocks +==38578== still reachable: 24 bytes in 1 blocks +==38578== suppressed: 0 bytes in 0 blocks +==38578== Reachable blocks (those to which a pointer was found) are not shown. +==38578== To see them, rerun with: --leak-check=full --show-leak-kinds=all +==38578== +==38578== For lists of detected and suppressed errors, rerun with: -s +==38578== ERROR SUMMARY: 1 errors from 1 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..58c8056b572dc3faaf3e7ff0542ffe13fbc08791 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 @@ -0,0 +1,12 @@ +data_sent:0 +data_received:4 +data_truncated_received:0 +fec_sent:0 +fec_received:0 +ack_sent:2 +ack_received:0 +nack_received:0 +packet_ignored:0 +throughput:5490.909180 +packet_duplicated:0 +packet_recovered:0