I'm interested to know whether it exists a case when the TCP MSS (Maximum Segment Size) is greater than MTU - 40bytes (40bytes comes from IP header of 20bytes + TCP header of 20bytes).
Or with another words could we set MSS independently from MTU? Or MSS is automatically re-computed according to the MTU (and maybe some other parameters, which I don't consider them in this discussion, though if you have the detailed algorithm, you're welcome to share it).
If we could set MSS higher than MTU-40bytes, then it means that the TCP segments passed towards IP layer would be grater than MTU-20bytes, and so the IP packets would be greater than MTU (MTU-20bytes+20bytes), hence they would be fragmented by IP layer (supposing fragmentation is not forbidden of course).
My understanding is that TCP takes care to perform the segmentation according to MSS=MTU-40bytes so that no IP fragmentation will be needed to be performed by IP layer afterwards.
Am I correct? Or there could be cases where we have "simultaneously" segmentation and fragmentation ?
To sum up, my current understanding is that:
a) In case UDP is used at transport layer, then we could have only fragmentation at Network layer, but no segmentation at Transport Layer
b) In case TCP is used at transport layer, we could have only segmentation at Transport Layer, but no fragmentation at Network Layer.
Thanks for any brainstorming around this topic.