when a TCP client initiates a TCP connection with a remote TCP server, it will announce its MSS in the TCP option.
I'm at a loss how TCP knows the path MSS value. This value is specific to the path between the client and the server, and generally speaking, path MTU detection can be used to get the value, but that will be before TCP SYN packet is sent and will cause some delay.
So, in practice, how does TCP get the MSS values for a certain path?