diff --git a/performance_results/average/output.gif b/performance_results/average/output.gif index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..89f1815f67f5bce229624ab2d910b7dc81bc4587 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..68a38854406d8e444ce39b7958fa7b55be74994a 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: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/worst/output.gif b/performance_results/average/receiver_1_without_FEC.csv similarity index 100% rename from performance_results/worst/output.gif rename to performance_results/average/receiver_1_without_FEC.csv diff --git a/performance_results/average/sender_1_with_FEC.csv b/performance_results/average/sender_1_with_FEC.csv index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..db8dee1c3b6b958cdb06473b1ddb9e99fff83d93 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: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/worst/receiver_1_with_FEC.csv b/performance_results/average/sender_1_without_FEC.csv similarity index 100% rename from performance_results/worst/receiver_1_with_FEC.csv rename to performance_results/average/sender_1_without_FEC.csv diff --git a/performance_results/ideal/output.gif b/performance_results/ideal/output.gif index 36bf9f94f83094a6c326563779624908605cf599..ae8a968b45b58c62a535e62648696f90a97b37d3 100644 Binary files a/performance_results/ideal/output.gif and b/performance_results/ideal/output.gif differ diff --git a/performance_results/ideal/output.txt b/performance_results/ideal/output.txt deleted file mode 100644 index c57eff55ebc0c54973903af5f72bac72762cf4f4..0000000000000000000000000000000000000000 --- a/performance_results/ideal/output.txt +++ /dev/null @@ -1 +0,0 @@ -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 index 3ff91771a54b0175db3b1d05c60f39ceafb53786..352e260e1b41cc71f55a8d487c8a935ed7cf3012 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:3 +data_received:6284 data_truncated_received:0 fec_sent:0 -fec_received:0 -ack_sent:2 +fec_received:588 +ack_sent:35961 ack_received:0 nack_received:0 -packet_ignored:0 -throughput:47.904190 -packet_duplicated:1 -packet_recovered:0 +packet_ignored:416 +throughput:26472902.000000 +packet_duplicated:1924 +packet_recovered:166 diff --git a/performance_results/ideal/receiver_1_without_FEC.csv b/performance_results/ideal/receiver_1_without_FEC.csv index 3ff91771a54b0175db3b1d05c60f39ceafb53786..e42f6ebcc9ebe112fb476ac901cdca6811fb4ed0 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:3 +data_received:4763 data_truncated_received:0 fec_sent:0 fec_received:0 -ack_sent:2 +ack_sent:19781 ack_received:0 nack_received:0 -packet_ignored:0 -throughput:47.904190 -packet_duplicated:1 +packet_ignored:225 +throughput:31092336.000000 +packet_duplicated:237 packet_recovered:0 diff --git a/performance_results/ideal/receiver_2_with_FEC.csv b/performance_results/ideal/receiver_2_with_FEC.csv index e08d64fa78c577dffdddd023b98fd321dfbb4cc3..55e390f5ff2d277ff85d3becd04475b1e31c2eb2 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:3 +data_received:9084 data_truncated_received:0 fec_sent:0 -fec_received:0 -ack_sent:2 +fec_received:632 +ack_sent:44779 ack_received:0 nack_received:0 -packet_ignored:0 -throughput:47.928108 -packet_duplicated:1 -packet_recovered:0 +packet_ignored:484 +throughput:24003928.000000 +packet_duplicated:4722 +packet_recovered:164 diff --git a/performance_results/ideal/receiver_2_without_FEC.csv b/performance_results/ideal/receiver_2_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..5f50fdc351dede3bf7b648118ee91a2a8c0c09ec --- /dev/null +++ b/performance_results/ideal/receiver_2_without_FEC.csv @@ -0,0 +1,12 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..1507615adcdf4d565ecd12979511391fec8a9a87 --- /dev/null +++ b/performance_results/ideal/receiver_3_with_FEC.csv @@ -0,0 +1,12 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..cff668cd66753024b04bb536b5bf6451a9bbcd71 --- /dev/null +++ b/performance_results/ideal/receiver_3_without_FEC.csv @@ -0,0 +1,12 @@ +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 5072be82b51ce84b931c2426431e0c2cf5cd9a05..5d5e35bbc57de064b0a47e2c8a25f949e9480d76 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:4 +data_sent:40273 data_received:0 data_truncated_received:0 -fec_sent:1 +fec_sent:1132 fec_received:0 ack_sent:0 -ack_received:2 +ack_received:35759 nack_received:0 packet_ignored:0 -throughput:23.964054 -min_rtt:2001 -max_rtt:2004 -packet_retransmitted:2 +throughput:26322488.000000 +min_rtt:2 +max_rtt:17 +packet_retransmitted:35747 diff --git a/performance_results/ideal/sender_1_without_FEC.csv b/performance_results/ideal/sender_1_without_FEC.csv index 8affded02215acf29664e23c151b36647bab665a..691b388df006d467d9c216318d7ba3c5a26294a9 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:4 +data_sent:24294 data_received:0 data_truncated_received:0 fec_sent:0 fec_received:0 ack_sent:0 -ack_received:2 +ack_received:19774 nack_received:0 packet_ignored:0 -throughput:23.958073 -min_rtt:2001 -max_rtt:2006 -packet_retransmitted:2 +throughput:7130062.500000 +min_rtt:2 +max_rtt:2002 +packet_retransmitted:19768 diff --git a/performance_results/ideal/sender_2_with_FEC.csv b/performance_results/ideal/sender_2_with_FEC.csv index c545964e0e61a24090565fdce86f045dfb695447..51be03e6fff9980f59bdde313d49d6f5655a6fce 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:4 +data_sent:48946 data_received:0 data_truncated_received:0 -fec_sent:1 +fec_sent:1132 fec_received:0 ack_sent:0 -ack_received:2 +ack_received:44429 nack_received:0 packet_ignored:0 -throughput:23.970037 -min_rtt:2001 -max_rtt:2004 -packet_retransmitted:2 +throughput:23911010.000000 +min_rtt:2 +max_rtt:21 +packet_retransmitted:44420 diff --git a/performance_results/ideal/sender_2_without_FEC.csv b/performance_results/ideal/sender_2_without_FEC.csv new file mode 100644 index 0000000000000000000000000000000000000000..404d2d042cef3df999d3239bc59c8d81d4b6bd3e --- /dev/null +++ b/performance_results/ideal/sender_2_without_FEC.csv @@ -0,0 +1,13 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..7dbc209821e96595180930cc79e3367dd3d09dce --- /dev/null +++ b/performance_results/ideal/sender_3_with_FEC.csv @@ -0,0 +1,13 @@ +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 new file mode 100644 index 0000000000000000000000000000000000000000..c0d8245b3577af3887a20a0e167820f3147ab8f7 --- /dev/null +++ b/performance_results/ideal/sender_3_without_FEC.csv @@ -0,0 +1,13 @@ +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/performance_results/worst/sender_1_with_FEC.csv b/performance_results/worst/sender_1_with_FEC.csv deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/packet_interface.h b/src/packet_interface.h index 930f455041fe902838849fdeab72af186c6faca1..788f863919a0b53b26f999265b7f549170e1e221 100644 --- a/src/packet_interface.h +++ b/src/packet_interface.h @@ -70,6 +70,7 @@ typedef enum { #define WINDOW_MASK 0x1F #define TR_SETTER_TO_ZERO 0xDF #define SECOND_TO_LAST_PKT 0x3AB33922 // Use to specify it was the second to last pkt sent by the sender -> Need to be random ? +#define HELLO_PARTNER 0x83F57019 #define TYPE_SHIFT 6 #define TR_SHIFT 5 diff --git a/src/receiver_utils.c b/src/receiver_utils.c index d572b3c7be4d4f5027e4da9912e7a25340289470..68dd1f608fe0c59573fe9503e1209e3a1a789f00 100644 --- a/src/receiver_utils.c +++ b/src/receiver_utils.c @@ -552,9 +552,7 @@ 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, last_ack_nack_sent; - gettimeofday(&last_ack_nack_sent, NULL); - int can_send; + struct timeval current_time, last_packet_received; while (state->ack_to_send != NULL || state->transfer_done == 0) { int ready = poll(pfd, 1, -1); @@ -564,9 +562,6 @@ void reception_loop(struct pollfd * pfd, receiver_state_t * state) return; } - gettimeofday(¤t_time, NULL); - float interval = time_milliseconds(¤t_time) - time_milliseconds(&last_ack_nack_sent); - can_send = interval > (float) MAX_NETWORK_DELAY; if (pfd->revents & POLLIN) { if (handle_incoming(pfd, state) != 0) @@ -575,11 +570,10 @@ 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 && can_send) + } else if (pfd->revents & POLLOUT) { 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 9f2f90246a8c0fd03b28655af104ef5b398c8696..4a2882a2a7388b27f180bcbdf0cb0e2451c258ca 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_NETWORK_DELAY 2000 // In milliseconds +#define MAX_ACK_INTERVAL 500 // In milliseconds /* Represent the receiver's connection state diff --git a/src/utils.h b/src/utils.h index 964c1037ff760a6a157416bc5ee136abe7db4c9b..9fd0cf15dbf0d2f1ca4f0fa571f6ab8ad2754dfb 100644 --- a/src/utils.h +++ b/src/utils.h @@ -17,7 +17,7 @@ #include <unistd.h> #include "log.h" - +#define OxFFFFFFF typedef struct __attribute__((__packed__)) { diff --git a/tests/run_perfomance.sh b/tests/run_perfomance.sh index b9501e503ee93a8a2a6335a0617eec1a555b7887..4b3ce89b00e3f8d92ff794b8fcdd8c587a0ba56e 100755 --- a/tests/run_perfomance.sh +++ b/tests/run_perfomance.sh @@ -51,4 +51,4 @@ 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/" & -wait $! \ No newline at end of file +wait $! 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 c2ebc87ef50e91c13d005389804f47688c309a79..3ae3a1d9cf0c8953d908b9e9384849da29bda8de 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,18 +1,21 @@ -@@ Using random seed: 1650988936 +@@ Using random seed: 1650995751 @@ Using parameters: -.. port: 65074 -.. forward_port: 65008 +.. port: 65108 +.. forward_port: 65185 .. delay: 100 .. jitter: 100 .. err_rate: 5 .. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650988936 +.. seed: 1650995751 .. link_direction: Forward -@@ Remote host is ::1 [43169] -[SEQ 0] Delayed packet by 144 ms +@@ Remote host is ::1 [42568] +[SEQ 0] Delayed packet by 117 ms [SEQ 0] Sent packet (Forward). [SEQ 1] Sent packet (Reverse). -[SEQ 1] Delayed packet by 87 ms +[SEQ 1] Dropping packet +[FEC 0] Delayed packet by 3 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 c6145a5c4c32b55d40153f01530bf94e1ef94ad4..69e57432f075b529788ea9c4a0407d1786830580 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,15 +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 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] 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] 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 data packet seqnum 1 with timestamp 1650988938 | current_window_size : 30, current_window_start : 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] Sent ACK saying we are waiting for 2, timestamp 1650988938[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 2095000.000000 seconds[0m -[36m[DEBUG] The transfer took 2095.000000 seconds[0m +[36m[DEBUG] The difference between the two is 2174000.000000 seconds[0m +[36m[DEBUG] The transfer took 2174.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 29f222ca36cbb4e527948f22cb89eff8a54e9f31..be29efda3552d9628e0686855f6cbc6cf2345494 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,4 +1,27 @@ -[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 +[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 65108[0m +[36m[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65108[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 +[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 +[36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 30[0m +[36m[DEBUG] The CLOSING pkt is being sent ![0m +[36m[DEBUG] Sending the pkt with seqnum: 1[0m +[36m[DEBUG] A timer of -> 30000ms <- has started after sending the last PTYPE_DATA pkt ![0m +[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 +[36m[DEBUG] Sender disconnected[0m +[36m[DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv.[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 2aea21b1d26c2f8b7a81d8704bfa5fb3d89cd01b..3aa67698b34710c288dfc24293fa725422001671 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 @@ -==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) +==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) 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 4d771618c20aa2f73b97687f711970ca5f24021c..08c68949a8b0d8d2ce66b66a2c680521dac20420 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,29 +1,15 @@ -==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) +==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) 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 396f1032f6857b496f16377151b1e6f9b99c243d..6ae5559548df3a9584e76a6cea152bb6142f4fdf 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:0 +fec_received:1 ack_sent:2 ack_received:0 nack_received:0 packet_ignored:0 -throughput:45.823387 +throughput:44.158234 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ba4e155b55f307d3e5f496930d201812464ca416 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 @@ -0,0 +1,13 @@ +data_sent:3 +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:41.504539 +min_rtt:139 +max_rtt:2160 +packet_retransmitted:1 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 651c26a63ef19850dcb6590158955c3bd596b95f..089c927b081523ba8aa8519c9e0fb38bfc0a94f4 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,22 +1,28 @@ -@@ Using random seed: 1650988955 +@@ Using random seed: 1650995765 @@ Using parameters: -.. port: 65068 -.. forward_port: 65085 +.. port: 65050 +.. forward_port: 65013 .. delay: 100 .. jitter: 100 .. err_rate: 5 .. cut_rate: 5 .. loss_rate: 1 -.. seed: 1650988955 +.. seed: 1650995765 .. link_direction: Forward -@@ Remote host is ::1 [46889] -[SEQ 0] Delayed packet by 20 ms +@@ Remote host is ::1 [32846] +[SEQ 0] Delayed packet by 133 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] Delayed packet by 122 ms +[SEQ 2] Delayed packet by 130 ms [SEQ 1] Sent packet (Forward). +[SEQ 2] Sent packet (Reverse). +[SEQ 2] Delayed packet by 194 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] 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 807c84a77ad3237b8395a067def42195b76a4a0d..9fc5e6beb671f8df079e6148bc6e459400057024 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,19 +1,21 @@ -[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] 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] 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 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] 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 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 [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] 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 2200000.000000 seconds[0m -[36m[DEBUG] The transfer took 2200.000000 seconds[0m +[36m[DEBUG] The difference between the two is 189000.000000 seconds[0m +[36m[DEBUG] The transfer took 189.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 aeab5b5f16a88bfd1007db626ccce3f0c2d2e32d..1c88cb018d7149e0dc6b01efa35b54cc99c6c9e1 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 @@ -1,6 +1,36 @@ -[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 +[36m[DEBUG] Sender has following arguments: + filename is tests_files/long_message.txt, + 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 +[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 +[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 +[36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 30[0m +[36m[DEBUG] Sending the pkt with seqnum: 1[0m +[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] 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 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 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 +[36m[DEBUG] A timer of -> 30000ms <- has started after sending the last PTYPE_DATA pkt ![0m +[36m[DEBUG] The sender will send a pkt on the socket, the current sender window size is: 30 | receiver window size: 27[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 sender is reading from the socket.[0m +[36m[DEBUG] The ACK with the seqnum: 4 has been received[0m +[36m[DEBUG] The sender is cumulatively acknowledging [3 : 4[ (place in the buffer) | [3, 4[ (seqnum)[0m +[36m[DEBUG] Sender disconnected[0m +[36m[DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/long_message/with_FEC/long_message_sender_stats.csv.[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 edbf717ddda04864f95f63954a8138b634b5fe79..e02530f248ae233b4525fa6a61d0ef9f9990c11e 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 @@ -==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) +==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) 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 6d6986c8c1b1d206f42ced395137c61a1bca6296..a33ad24be9cb08fc940166e199de1d9e50462c79 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,29 +1,15 @@ -==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) +==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) 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 58c8056b572dc3faaf3e7ff0542ffe13fbc08791..844dfb8bf76790389712f3154f1c14f5a38f76cc 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:2 +ack_sent:4 ack_received:0 nack_received:0 packet_ignored:0 -throughput:5490.909180 +throughput:63915.343750 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 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3c2832c776b567b90b660e468f68bdf45c71462c 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 @@ -0,0 +1,13 @@ +data_sent:5 +data_received:0 +data_truncated_received:0 +fec_sent:1 +fec_received:0 +ack_sent:0 +ack_received:4 +nack_received:0 +packet_ignored:0 +throughput:34812.679688 +min_rtt:45 +max_rtt:154 +packet_retransmitted:1