下面是一个MSS交互的例子,在三次握手的过程中两个主机捎带了不同的MSS值,192.168.189.22接口的MTU值为1500,192.168.189.21接口的MTU值为1454。
下面的内核流程展示了MSS的设置过程。
1) 初始化MSS
2) 客户端发送syn
3) Server端接收到SYN的处理
4)Server端构建SYN+ACK,
5) Client接收到SYN+ACK,根据Server端发送过来的mss计算mss_cache
6) 服务器端接收到client端三次握手的ACK报文,确定最终的tp->mss_cache的值
7) 后续数据的发送,根据mss_cache的值进行填充,但是这里也有判断以防PMTU发生变化