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(&current_time, NULL);
+        float interval = time_milliseconds(&current_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 @@
-[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
-[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65185
-[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65108
+[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
+[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65021
+[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103
 [DEBUG] Received data packet seqnum 0 with timestamp 984824098 | current_window_size : 31, current_window_start : 0
 [DEBUG] Sent ACK saying we are waiting for 1, timestamp 0
 [DEBUG] Received FEC with seqnum [0] but wasn't used
@@ -11,6 +11,6 @@
 [DEBUG] Received the last packet
 [DEBUG] Sent ACK saying we are waiting for 2, timestamp 0
 [DEBUG] Done the transfer with done status being true
-[DEBUG] The difference between the two is 2174000.000000 seconds
-[DEBUG] The transfer took 2174.000000 seconds
+[DEBUG] The difference between the two is 112000.000000 seconds
+[DEBUG] The transfer took 112.000000 seconds
 [DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv.
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
-[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65108
+		receiver_port is 65103
+[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103
 [DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 1
 [DEBUG] The LAST PTYPE_DATA is being sent !
 [DEBUG] Sending the pkt with seqnum: 0
@@ -18,8 +18,6 @@
 [DEBUG] The sender will send a pkt on the socket, the current sender window size is: 30 | receiver window size: 29
 [DEBUG] Sending LAST FEC pkt with seqnum: 0
 [DEBUG] A timer of -> 30000ms <- has started after sending the last PTYPE_DATA pkt !
-[DEBUG] The pkt with seqnum: 1 has timeout
-[DEBUG] Sending the pkt with seqnum: 1
 [DEBUG] The sender is reading from the socket.
 [DEBUG] The ACK with the seqnum: 2 has been received
 [DEBUG] The sender is cumulatively acknowledging [1 : 2[ (place in the buffer) | [1, 2[ (seqnum)
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 @@
-[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
-[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65013
-[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65050
+[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
+[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65075
+[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65073
 [DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 31, current_window_start : 0
 [DEBUG] Sent ACK saying we are waiting for 1, timestamp 0
 [DEBUG] Received data packet seqnum 1 with timestamp 0 | current_window_size : 30, current_window_start : 0
 [DEBUG] Sent ACK saying we are waiting for 2, timestamp 0
+[DEBUG] Received a damaged packet with 4 status. and seqnum as 0
 [DEBUG] Received data packet seqnum 2 with timestamp 984824098 | current_window_size : 29, current_window_start : 0
 [DEBUG] Sent ACK saying we are waiting for 3, timestamp 0
 [DEBUG] Received data packet seqnum 3 with timestamp 0 | current_window_size : 28, current_window_start : 0
@@ -16,6 +17,6 @@
 [DEBUG] Received the last packet
 [DEBUG] Sent ACK saying we are waiting for 4, timestamp 0
 [DEBUG] Done the transfer with done status being true
-[DEBUG] The difference between the two is 189000.000000 seconds
-[DEBUG] The transfer took 189.000000 seconds
+[DEBUG] The difference between the two is 2210000.000000 seconds
+[DEBUG] The transfer took 2210.000000 seconds
 [DEBUG] Wrote the transfer statistics to tests_logs/advanced_tests/long_message/with_FEC/long_message_receiver_stats.csv.
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
-[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65050
+		receiver_port is 65073
+[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65073
 [DEBUG] The sender will send a pkt on the socket, the current sender window size is: 31 | receiver window size: 1
 [DEBUG] Sending the pkt with seqnum: 0
 [DEBUG] The sender is reading from the socket.
@@ -19,6 +19,8 @@
 [DEBUG] The ACK with the seqnum: 2 has been received
 [DEBUG] The sender is cumulatively acknowledging [1 : 2[ (place in the buffer) | [1, 2[ (seqnum)
 [DEBUG] Sending the pkt with seqnum: 2
+[DEBUG] The pkt with seqnum: 2 has timeout
+[DEBUG] Sending the pkt with seqnum: 2
 [DEBUG] The sender is reading from the socket.
 [DEBUG] The ACK with the seqnum: 3 has been received
 [DEBUG] The sender is cumulatively acknowledging [2 : 3[ (place in the buffer) | [2, 3[ (seqnum)
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