diff --git a/performance_results/average/output.gif b/performance_results/average/output.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2942ee0c8b96fc9f0a57718e07d3fb27f907ab1d
Binary files /dev/null and b/performance_results/average/output.gif differ
diff --git a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt b/performance_results/average/receiver_1_with_FEC.csv
similarity index 100%
rename from tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_received_file.txt
rename to performance_results/average/receiver_1_with_FEC.csv
diff --git a/tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv b/performance_results/average/sender_1_with_FEC.csv
similarity index 100%
rename from tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv
rename to performance_results/average/sender_1_with_FEC.csv
diff --git a/performance_results/ideal/merged_stats.csv b/performance_results/ideal/merged_stats.csv
deleted file mode 100644
index 369aab13dff0643ebde87f7623b1a207e78f5b25..0000000000000000000000000000000000000000
--- a/performance_results/ideal/merged_stats.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-data_sent,data_received,data_truncated_received,fec_sent,fec_received,ack_sent,ack_received,nack_received,packet_ignored,throughput,min_rtt,max_rtt,packet_retransmitted,fec
-43263.0,0.0,0.0,0.0,0.0,0.0,38716.0,30.0,0.0,996184.9375,7.0,222.0,38737.0,0
-43386.0,0.0,0.0,1132.0,0.0,0.0,38845.0,24.0,0.0,1002924.3125,4.0,294.0,38860.0,1
-44906.0,0.0,0.0,1132.0,0.0,0.0,40370.0,17.0,0.0,1033694.0,4.0,218.0,40380.0,1
-34710.0,0.0,0.0,0.0,0.0,0.0,30175.0,19.0,0.0,925487.25,6.0,545.0,30184.0,0
-36801.0,0.0,0.0,0.0,0.0,0.0,32265.0,19.0,0.0,968436.4375,4.0,300.0,32275.0,0
-30674.0,0.0,0.0,1132.0,0.0,0.0,26133.0,25.0,0.0,948363.9375,5.0,249.0,26148.0,1
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 6177c35a89de1a4159be0316a16ee8ff9a3e0828..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:5859
-data_truncated_received:19
+data_received:4362
+data_truncated_received:0
 fec_sent:0
-fec_received:724
-ack_sent:39291
+fec_received:611
+ack_sent:167
 ack_received:0
 nack_received:0
-packet_ignored:453
-throughput:1044119.437500
-packet_duplicated:1457
-packet_recovered:124
+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 de8471fab8a1a875c241d9694f7d3f153ede6b7a..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:5904
-data_truncated_received:23
+data_received:4526
+data_truncated_received:0
 fec_sent:0
 fec_received:0
-ack_sent:39165
+ack_sent:216
 ack_received:0
 nack_received:0
-packet_ignored:392
-throughput:1001298.562500
-packet_duplicated:1378
+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 0787b14cbd88158b2e6a67802cfb72a6595b2b95..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:5853
-data_truncated_received:19
+data_received:4370
+data_truncated_received:0
 fec_sent:0
-fec_received:721
-ack_sent:40197
+fec_received:589
+ack_sent:169
 ack_received:0
 nack_received:0
-packet_ignored:467
-throughput:1029673.375000
-packet_duplicated:1450
-packet_recovered:123
+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 c40a93eab833a87b56381be50973644aba18e783..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:5877
-data_truncated_received:27
-fec_sent:0
-fec_received:0
-ack_sent:37830
-ack_received:0
-nack_received:0
-packet_ignored:383
-throughput:993940.812500
-packet_duplicated:1351
-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 108a0757ff3d62f915eb7449032a296965682cef..0000000000000000000000000000000000000000
--- a/performance_results/ideal/receiver_3_with_FEC.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-data_sent:0
-data_received:5449
-data_truncated_received:18
-fec_sent:0
-fec_received:763
-ack_sent:27451
-ack_received:0
-nack_received:0
-packet_ignored:352
-throughput:971431.750000
-packet_duplicated:1072
-packet_recovered:149
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 22ca3b148e307d92c3920fe33d8aea21fbeaca08..0000000000000000000000000000000000000000
--- a/performance_results/ideal/receiver_3_without_FEC.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-data_sent:0
-data_received:5835
-data_truncated_received:27
-fec_sent:0
-fec_received:0
-ack_sent:38436
-ack_received:0
-nack_received:0
-packet_ignored:422
-throughput:992450.312500
-packet_duplicated:1309
-packet_recovered:0
diff --git a/performance_results/ideal/sender_1_with_FEC.csv b/performance_results/ideal/sender_1_with_FEC.csv
index d13c7407ddee13e74689be91d9a7dadb30cd6a04..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:43811
+data_sent:4586
 data_received:0
 data_truncated_received:0
 fec_sent:1132
 fec_received:0
 ack_sent:0
-ack_received:39275
-nack_received:19
+ack_received:167
+nack_received:0
 packet_ignored:0
-throughput:1039259.312500
-min_rtt:4
-max_rtt:240
-packet_retransmitted:39285
+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 f5cb9a721ce8edda9d1be664064bab690ee8d9bb..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:43706
+data_sent:4664
 data_received:0
 data_truncated_received:0
 fec_sent:0
 fec_received:0
 ack_sent:0
-ack_received:39165
-nack_received:23
+ack_received:216
+nack_received:0
 packet_ignored:0
-throughput:997203.437500
-min_rtt:5
-max_rtt:230
-packet_retransmitted:39180
+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 aef860215a8d0267f082557c9888d928e107dfe1..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:44734
+data_sent:4586
 data_received:0
 data_truncated_received:0
 fec_sent:1132
 fec_received:0
 ack_sent:0
-ack_received:40197
-nack_received:19
+ack_received:169
+nack_received:0
 packet_ignored:0
-throughput:1022288.937500
-min_rtt:2
-max_rtt:227
-packet_retransmitted:40208
+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 6b2f8d3f29c5071792cf015b71c2fd69e546d1c4..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:42374
-data_received:0
-data_truncated_received:0
-fec_sent:0
-fec_received:0
-ack_sent:0
-ack_received:37829
-nack_received:27
-packet_ignored:0
-throughput:984541.062500
-min_rtt:4
-max_rtt:238
-packet_retransmitted:37848
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 e76ed44be6c77c075d1c301d0e06b1dfa307582d..0000000000000000000000000000000000000000
--- a/performance_results/ideal/sender_3_with_FEC.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-data_sent:31985
-data_received:0
-data_truncated_received:0
-fec_sent:1132
-fec_received:0
-ack_sent:0
-ack_received:27451
-nack_received:18
-packet_ignored:0
-throughput:963552.000000
-min_rtt:1
-max_rtt:300
-packet_retransmitted:27459
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 c8e0b2410ddde808b85103b03e1261a64f72f2b4..0000000000000000000000000000000000000000
--- a/performance_results/ideal/sender_3_without_FEC.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-data_sent:42970
-data_received:0
-data_truncated_received:0
-fec_sent:0
-fec_received:0
-ack_sent:0
-ack_received:38427
-nack_received:27
-packet_ignored:0
-throughput:990699.375000
-min_rtt:6
-max_rtt:251
-packet_retransmitted:38444
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 f970bc3ea691d2b3e8be90857e80304301fa4d3e..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].
@@ -128,7 +127,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++;
@@ -566,8 +565,8 @@ void reception_loop(struct pollfd * pfd, receiver_state_t * state)
 
         gettimeofday(&current_time, NULL);
         float interval = time_milliseconds(&current_time) - time_milliseconds(&last_ack_nack_sent);
-        can_send = interval > (float) MAX_NETWORK_DELAY;
-        if (pfd->revents & POLLIN)
+        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;
@@ -663,7 +662,6 @@ void receiver_read_write_loop(int sfd, const char * pathname)
         reception_loop(pfd, state);
     }
     DEBUG("Done the transfer with done status being %s", (state->transfer_done) ? "true" : "false");
-    sleep(2);
     double time_in_ms = time_milliseconds(&(state->timestamp_last_packet)) - time_milliseconds(&(state->timestamp_first_packet));
     DEBUG("The difference between the two is %f seconds", (double) time_in_ms * 1000);
     DEBUG("The transfer took %f seconds", time_in_ms);
diff --git a/src/receiver_utils.h b/src/receiver_utils.h
index 9f2f90246a8c0fd03b28655af104ef5b398c8696..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_NETWORK_DELAY 2000 // In milliseconds
+#define MAX_ACK_INTERVAL 100 // 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/advanced_test.sh b/tests/advanced_test.sh
deleted file mode 100755
index ac44b651ba4dc710e0df8bea7a0fbc58323b85ad..0000000000000000000000000000000000000000
--- a/tests/advanced_test.sh
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/bash
-
-GREEN='\033[0;32m'
-RED='\033[0;31m'
-NC='\033[0m'
-
-if [ -z "$1" ]; then 
-  echo "Not given the file to send"
-  exit 1
-fi 
-
-# If the directory does not exist, we create it
-if [ ! -d "tests_logs/advanced_tests/" ]; then
-  mkdir 'tests_logs/advanced_tests/' 2>/dev/null
-fi
-
-FILENAME=$1
-BASENAME=$(basename $FILENAME)
-BSN_PRE="${BASENAME%.*}"
-BSN_EXT="${BASENAME##*.}"
-
-TEST_OUTPUT_FILES="tests_logs/advanced_tests/${BSN_PRE}"
-mkdir "${TEST_OUTPUT_FILES}/" 2>/dev/null
-
-MODES=(
-  'with_FEC'
-  'without_FEC'
-)
-
-ERROR_RATE=5
-CUT_RATE=10
-DELAY=100
-JITTER=100
-LOSS_RATE=20 
-
-echo -e "The linksimulator paramateres are:
-        \t\t-ERROR RATE: ${ERROR_RATE}%    \t-DELAY:  ${DELAY}ms
-        \t\t-CUT RATE:   ${CUT_RATE}%      \t-JITTER: ${JITTER}ms 
-        \t\t-LOSS RATE:  ${LOSS_RATE}%\n"
-
-for MODE in "${MODES[@]}"; do
-  
-  mkdir "${TEST_OUTPUT_FILES}/${MODE}/" 2>/dev/null
-  DIR="${TEST_OUTPUT_FILES}/${MODE}"
-
-  touch "${DIR}/adv_${BSN_PRE}_received_file.${BSN_EXT}" \
-        "${DIR}/adv_valgrind_${BSN_PRE}_receiver.log"    \
-        "${DIR}/adv_valgrind_${BSN_PRE}_sender.log"      \
-        "${DIR}/${BSN_PRE}_receiver_stats.csv"          \
-        "${DIR}/${BSN_PRE}_sender_stats.csv"
-
-
-
-  # The next 2 lines come from: https://unix.stackexchange.com/questions/55913/whats-the-easiest-way-to-find-an-unused-local-port
-  # We use this to be sure we're using unused port
-  port1=$(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1)
-  port2=$(comm -23 <(seq 65000 65200 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1)
-
-
-  #####   Launching the link simulator   #####
-  ./linksimulator/link_sim -p $port2 -P $port1 -l $LOSS_RATE -d $DELAY -e $ERROR_RATE -c $CUT_RATE -j $JITTER \
-    &>${DIR}/adv_${BSN_PRE}_link.log & link_pid=$!
-
-  #####   Launching the receiver and capturinig its output   #####
-  valgrind --leak-check=full --log-file=${DIR}/adv_valgrind_${BSN_PRE}_receiver.log \
-                ./receiver ::1 $port1 -s ${DIR}/${BSN_PRE}_receiver_stats.csv 1> ${DIR}/adv_${BSN_PRE}_received_file.${BSN_EXT} \
-                2> ${DIR}/adv_${BSN_PRE}_receiver.log & receiver_pid=$!
-
-  cleanup()
-  {
-      kill -9 $receiver_pid
-      kill -9 $link_pid
-      exit 0
-  }
-  trap cleanup SIGINT  # Kill the background procces in case of ^-C
-
-  # Checking the mode (with out without FEC)
-  if [ $MODE = "with_FEC" ]; then
-    # We start the transfer
-    if ! valgrind --leak-check=full --log-file=${DIR}/adv_valgrind_${BSN_PRE}_sender.log \
-        ./sender -f ${FILENAME} ::1 $port2 -c -s ${DIR}/${BSN_PRE}_sender_stats.csv 2> ${DIR}/adv_${BSN_PRE}_sender.log ; then
-      echo "The sender crashed!"
-      cat ${DIR}/adv_${BSN_PRE}_sender.log
-      err=1  # We record the error
-    fi
-  else
-    # We start the transfer
-    if ! valgrind --leak-check=full --log-file=${DIR}/adv_valgrind_${BSN_PRE}_sender.log \
-        ./sender -f ${FILENAME} ::1 $port2 -s ${DIR}/${BSN_PRE}_sender_stats.csv 2> ${DIR}/adv_${BSN_PRE}_sender.log ; then
-      echo "The sender crashed!"
-      cat ${DIR}/adv_${BSN_PRE}_sender.log
-      err=1  # We record the error
-    fi
-  fi
-
-  sleep 5 # We wait 5s for the receiver to finish up
-
-  if kill -0 $receiver_pid &> /dev/null ; then
-    echo "The receiver didn't stop at the end of the transfer!"
-    kill -9 $receiver_pid
-    err=1
-  else  # We check the return value of the receiver
-    if ! wait $receiver_pid ; then
-      echo "Crash of the receiver!"
-      cat ${DIR}/adv_${BSN_PRE}_receiver.log
-      err=1
-    fi
-  fi
-
-  # Stop the link simulator
-  kill -9 $link_pid
-  wait $link_pid 2>/dev/null
-
-  # We verify that the transfer ran through properly
-  if [[ "$(md5sum ${FILENAME} | awk '{print $1}')" != "$(md5sum ${DIR}/adv_${BSN_PRE}_received_file.${BSN_EXT} | awk '{print $1}')" ]]; then
-    echo "The transfer corrupted the file!"
-    echo "Binary difference between the 2 files: (expected vs actual)"
-    diff -C 9 <(od -Ax -t x1z ${FILENAME}) <(od -Ax -t x1z ${DIR}/adv_${BSN_PRE}_received_file.${BSN_EXT})
-    if [ $MODE = "with_FEC" ]; then
-      echo -e "${RED}The transfer (with FEC) has failed!${NC}"
-    else
-      echo -e "${RED}The transfer (without FEC) has failed!${NC}"
-    fi
-    exit 1
-  else
-    if [ $MODE = "with_FEC" ]; then
-      echo -e "${GREEN}The transfer (with FEC) has succeeded!${NC}"
-    else
-      echo -e "${GREEN}The transfer (without FEC) has succeeded!${NC}"
-    fi
-  fi
-done
-
-exit ${err:-0}  # In case of error, we return the error code
\ No newline at end of file
diff --git a/tests/run_perfomance.sh b/tests/run_perfomance.sh
index 491a8667093a4e698b42ba57d8791b8e618510a3..4b3ce89b00e3f8d92ff794b8fcdd8c587a0ba56e 100755
--- a/tests/run_perfomance.sh
+++ b/tests/run_perfomance.sh
@@ -3,19 +3,52 @@
 # File use for the test of performance
 FILE_TO_TRANSFER='tests_files/thumbs-up-nod.gif'
 
-### 1. Ideal Case Transferr
+if [ ! -d "performance_results/" ]; then
+  mkdir "performance_results/"
+fi
+
+### 1. Ideal Case Transfer
 
 # Chosen parameters for Ideal scenario
 ERROR_RATE=1
+CUT_RATE=0
+DELAY=3
+JITTER=1
+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/" &
+wait $!
+
+### 2. Average Case Transfer
+
+# Chosen parameters for Ideal scenario
+ERROR_RATE=10
 CUT_RATE=1
-DELAY=100
-JITTER=100
+DELAY=290
+JITTER=30
 LOSS_RATE=1 
-if [ ! -d "performance_results/" ]; then
-  mkdir "performance_results/"
+
+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/" &
+wait $!
 
-if [ ! -d "performance_results/ideal" ]; then
-  mkdir "performance_results/ideal"
+### 3. Worst Case Transfer
+
+# Chosen parameters for Ideal scenario
+ERROR_RATE=15
+CUT_RATE=1
+DELAY=1500
+JITTER=500
+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/ideal/"
\ 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 $!
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
deleted file mode 100644
index a6375a2441d7e1262f10fee4433c9c0aeba9ab31..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_link.log
+++ /dev/null
@@ -1,45 +0,0 @@
-@@ Using random seed: 1650995393
-@@ Using parameters:
-.. port: 65178
-.. forward_port: 65103
-.. delay: 100
-.. jitter: 100
-.. err_rate: 5
-.. cut_rate: 10
-.. loss_rate: 20
-.. seed: 1650995393
-.. link_direction: Forward
-@@ Remote host is ::1 [52117]
-[SEQ   0] Dropping packet
-[SEQ   0] Delayed packet by 89 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   0] Dropping packet
-[SEQ   0] Delayed packet by 101 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   0] Delayed packet by 197 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   0] Delayed packet by 144 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   0] Delayed packet by 178 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   0] Delayed packet by 44 ms
-[SEQ   0] Sent packet (Forward).
-[SEQ   1] Sent packet (Reverse).
-[SEQ   1] Delayed packet by 73 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Delayed packet by 73 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Delayed packet by 189 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Delayed packet by 151 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Delayed packet by 37 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Dropping packet
-[SEQ   1] Delayed packet by 111 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Dropping packet
-[SEQ   1] Delayed packet by 62 ms
-[SEQ   1] Sent packet (Forward).
-[SEQ   1] Delayed packet by 87 ms
-[SEQ   1] Sent packet (Forward).
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
deleted file mode 100644
index 53b636369b9fc7f59d88d7baa1e09dde0f2f5709..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_receiver.log
+++ /dev/null
@@ -1,18 +0,0 @@
-[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 65103
-[DEBUG] Successfully bound to IPv6 address : 0000:0000:0000:0000:0000:0000:0000:0001, port : 65103
-[DEBUG] Successfully connected to IPv6 addresss: 0000:0000:0000:0000:0000:0000:0000:0001, port : 65178
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 31, current_window_start : 0
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 30, current_window_start : 0
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 30, current_window_start : 0
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 30, current_window_start : 0
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 30, current_window_start : 0
-[DEBUG] Received data packet seqnum 0 with timestamp 0 | current_window_size : 30, current_window_start : 0
-[DEBUG] Sent ACK saying we are waiting for 1, timestamp 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
-[DEBUG] Received a damaged packet with 9 status. and seqnum as 0
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
deleted file mode 100644
index f133c43c4404dcd12df770ced02b24532394c179..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/adv_greeting_sender.log
+++ /dev/null
@@ -1,52 +0,0 @@
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[ERROR] poll failed
-g[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 0 and length 12
-[DEBUG] Packet with seqnum 0 retransmited
-[DEBUG] Received ack with seqnum 1
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
-[DEBUG] Sent data packet with seqnum 1 and length 0
-[DEBUG] Packet with seqnum 1 retransmited
-[ERROR] poll failed
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
deleted file mode 100644
index 79365b8b607f7158d2c07522fef858a89b0cc023..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_receiver.log
+++ /dev/null
@@ -1,6 +0,0 @@
-==25714== Memcheck, a memory error detector
-==25714== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
-==25714== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
-==25714== Command: ./receiver ::1 65103 -s tests_logs/advanced_tests/greeting/with_FEC/greeting_receiver_stats.csv
-==25714== Parent PID: 25679
-==25714== 
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
deleted file mode 100644
index 3f5b78e74152cd3bb8fb464ceb14f05682565223..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/adv_valgrind_greeting_sender.log
+++ /dev/null
@@ -1,40 +0,0 @@
-==25715== Memcheck, a memory error detector
-==25715== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
-==25715== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
-==25715== Command: ./sender -f tests_files/greeting.txt ::1 65178 -c -s tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv
-==25715== Parent PID: 25679
-==25715== 
-==25715== Conditional jump or move depends on uninitialised value(s)
-==25715==    at 0x401943: main (in /mnt/datalinux/Documents/BAC-SINF/bac3/Q2/reseaux/projet/project_trtp/sender)
-==25715== 
-==25715== 
-==25715== HEAP SUMMARY:
-==25715==     in use at exit: 937 bytes in 47 blocks
-==25715==   total heap usage: 87 allocs, 40 frees, 10,913 bytes allocated
-==25715== 
-==25715== 29 bytes in 1 blocks are definitely lost in loss record 1 of 4
-==25715==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
-==25715==    by 0x401E74: main (in /mnt/datalinux/Documents/BAC-SINF/bac3/Q2/reseaux/projet/project_trtp/sender)
-==25715== 
-==25715== 96 bytes in 18 blocks are definitely lost in loss record 2 of 4
-==25715==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
-==25715==    by 0x401B3D: main (in /mnt/datalinux/Documents/BAC-SINF/bac3/Q2/reseaux/projet/project_trtp/sender)
-==25715== 
-==25715== 290 bytes in 10 blocks are definitely lost in loss record 3 of 4
-==25715==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
-==25715==    by 0x401764: main (in /mnt/datalinux/Documents/BAC-SINF/bac3/Q2/reseaux/projet/project_trtp/sender)
-==25715== 
-==25715== 522 bytes in 18 blocks are definitely lost in loss record 4 of 4
-==25715==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
-==25715==    by 0x401B12: main (in /mnt/datalinux/Documents/BAC-SINF/bac3/Q2/reseaux/projet/project_trtp/sender)
-==25715== 
-==25715== LEAK SUMMARY:
-==25715==    definitely lost: 937 bytes in 47 blocks
-==25715==    indirectly lost: 0 bytes in 0 blocks
-==25715==      possibly lost: 0 bytes in 0 blocks
-==25715==    still reachable: 0 bytes in 0 blocks
-==25715==         suppressed: 0 bytes in 0 blocks
-==25715== 
-==25715== Use --track-origins=yes to see where uninitialised values come from
-==25715== For lists of detected and suppressed errors, rerun with: -s
-==25715== ERROR SUMMARY: 22 errors from 5 contexts (suppressed: 0 from 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
deleted file mode 100644
index cec93832cc8f96f8dc58d0d4575fc0f6559e6639..0000000000000000000000000000000000000000
--- a/tests_logs/advanced_tests/greeting/with_FEC/greeting_sender_stats.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-data_sent, 18
-data_received, 0
-data_truncated_received, 0
-fec_sent, 0
-fec_received, 0
-ack_sent, 0
-ack_received, 1
-nack_received, 0
-nack_sent, 0
-packet_ignored, 0
-min_rtt, 2406
-max_rtt, 2406
-packet_retransmitted, 16