What is the value of TCP's MSL variable on SLES
This document (7018997) is provided subject to the disclaimer at the end of this document.
Environment
SUSE Linux Enterprise Server 11
SUSE Linux Enterprise Server 12
Situation
They include LISTEN, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSING, TIME-WAIT, CLOSE-WAIT, LAST-ACK, and the virtual state of CLOSED.
When a TCP connection has passed through an Active Close and is now in a TIME-WAIT state, it MUST remain in that state by TCP specification for 2*MSL.
That brings up the question,
What is the value MSL on a SLES server?
Resolution
It turns out that the value is hard coded in the kernel and 2*MSL = 60 seconds.
You can find where it is hard coded here:
$(kernel_code)/include/net/tcp.h: ... #define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
* state, about 60 seconds */
... The sysctl -a | grep -i fin command at the terminal returns net.ipv4.tcp_fin_timeout = 60.
This would appear to be a way to access and alter this functionality.
But since it is hard coded in the kernel there is no way to change it at the terminal.
Cause
Additional Information
FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT, CLOSE_WAIT, LAST_ACK
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7018997
- Creation Date: 16-May-2017
- Modified Date:03-Mar-2020
-
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com