diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
index 616de17..b307dd3 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/WakeParameters.java
@@ -30,7 +30,7 @@
 
   public static final long EXECUTOR_SHUTDOWN_TIMEOUT = 1000;
 
-  public static final long REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT = 10000;
+  public static final long REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT = 20000;
 
   /**
    * Maximum frame length unit.
diff --git a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
index db5eed4..4e3dfa2 100644
--- a/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
+++ b/lang/java/reef-wake/wake/src/main/java/org/apache/reef/wake/remote/RemoteConfiguration.java
@@ -22,6 +22,7 @@
 import org.apache.reef.tang.annotations.NamedParameter;
 import org.apache.reef.wake.EStage;
 import org.apache.reef.wake.EventHandler;
+import org.apache.reef.wake.WakeParameters;
 import org.apache.reef.wake.remote.impl.DefaultTransportEStage;
 import org.apache.reef.wake.remote.impl.ObjectSerializableCodec;
 import org.apache.reef.wake.remote.impl.TransportEvent;
@@ -32,6 +33,25 @@
 public final class RemoteConfiguration {
 
   /**
+   * The number of tries to reconnect the remote connection.
+   */
+  public static final long REMOTE_CONNECTION_NUMBER_OF_RETRIES = 3;
+
+  /**
+   * The timeout of connection retrying.
+   * To prevent retrying connections from being rejected by the remote stages,
+   * the retrying_timeout * number_of_retries should be less than the remote_executor_shutdown_timeout.
+   * If not, the remote stage can shutdown the connection retries before it is established,
+   * and can drop a message that should be sent to the remote.
+   */
+  public static final long REMOTE_CONNECTION_RETRY_TIMEOUT =
+      WakeParameters.REMOTE_EXECUTOR_SHUTDOWN_TIMEOUT / (REMOTE_CONNECTION_NUMBER_OF_RETRIES + 1);
+
+  private RemoteConfiguration() {
+    // empty
+  }
+
+  /**
    * The name of the remote manager.
    */
   @NamedParameter(short_name = "rm_name", doc = "The name of the remote manager.", default_value = "REEF_CLIENT")
@@ -84,7 +104,7 @@
   /**
    * The number of tries.
    */
-  @NamedParameter(doc = "The number of tries.", default_value = "3")
+  @NamedParameter(doc = "The number of tries.", default_value = "" + REMOTE_CONNECTION_NUMBER_OF_RETRIES)
   public static final class NumberOfTries implements Name<Integer> {
     // Intentionally empty    
   }
@@ -92,7 +112,7 @@
   /**
    * The timeout of connection retrying.
    */
-  @NamedParameter(doc = "The timeout of connection retrying.", default_value = "10000")
+  @NamedParameter(doc = "The timeout of connection retrying.", default_value = "" + REMOTE_CONNECTION_RETRY_TIMEOUT)
   public static final class RetryTimeout implements Name<Integer> {
     // Intentionally empty       
   }
