Retransmission
Retransmission timeouts in the IKE charon daemon
can be configured globally via strongswan.conf
options.
The following keys are used to configure retransmission behavior:
| Key | Type | Default | Description | 
|---|---|---|---|
charon.retransmit_tries  | 
Integer  | 
  | 
Number of retransmissions to send before giving up  | 
charon.retransmit_timeout  | 
Double  | 
  | 
Timeout in seconds  | 
charon.retransmit_base  | 
Double  | 
  | 
Base of exponential backoff  | 
charon.retransmit_jitter  | 
Integer  | 
  | 
Maximum jitter in percent to apply randomly to calculated retransmission timeout
 (  | 
charon.retransmit_limit  | 
Integer  | 
  | 
Upper limit in seconds for calculated retransmission timeout (  | 
The following formula is used to calculate the timeout:
relative timeout = retransmit_timeout * retransmit_base ^ (n-1)
Where n is the current retransmission count. The calculated timeout can’t
exceed the configured retransmit_limit (if any) which is useful if the number
of retries is high.
If a jitter in percent is configured, the timeout is modified as follows:
relative timeout = relative timeout - random(0, retransmit_jitter * relative timeout)
Using the default values, packets are retransmitted as follows:
| Retransmission | Formula | Relative timeout | Absolute timeout | 
|---|---|---|---|
1  | 
4 * 1.8 ^ 0  | 
4s  | 
4s  | 
2  | 
4 * 1.8 ^ 1  | 
7s  | 
11s  | 
3  | 
4 * 1.8 ^ 2  | 
13s  | 
24s  | 
4  | 
4 * 1.8 ^ 3  | 
23s  | 
47s  | 
5  | 
4 * 1.8 ^ 4  | 
42s  | 
89s  | 
giving up  | 
4 * 1.8 ^ 5  | 
76s  | 
165s  |