iKuai爱快流控路由

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 暗夜
打印 上一主题 下一主题

[问题反馈] 3.6.11_x64 版本苹果设备无法使用自带服务的问题

[复制链接]
11#
 楼主| 发表于 2023-1-12 23:19:33 | 只看该作者
然后把我找到的信息分享一下给大家吧,原文链接:https://blog.csdn.net/meihualing/article/details/113739693


什么是 MSS , MSS 的动机是什么
MSS(Maximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度。

    我们都知道,如果TCP/UDP往IP层发送数据时,因为物理网络层一般要限制每次发送数据帧的最大长度。所以IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU。
   
    IP把MTU与数据报长度进行比较,如果太长了一次发送不下(超过MTU)则需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上。

    UDP无法避免分片(除非应用层知道路径MTU并控制UDP报文大小),TCP则通过MSS协商来避免分片发生。

MSS 的大小与 MTU 有关, 为:


    MTU - (TCP 标头 + IP 标头) = MSS

假设 MTU= 1500 byte,那么 MSS = 1500- 20(IP Header) -20 (TCP Header) = 1460 byte,如果应用层有 2000 byte 发送,那么需要两个切片才可以完成发送,第一个 TCP 切片 = 1460,第二个 TCP 切片 = 540。




所以我尝试了将 TCP-MSS 由1500间隔4递减来测试服务是否正常,直到设置为1452,应用服务都恢复了,而我的MTU参照运营商的参数,设置为1492,按照上面的计算公式:


    1492 (MTU) - 20 (TCP标头) - 20 (IP标头) = 1452 (MSS)


是符合公式计算结果,也与实际的应用测试结果相一致,当然,只要 MSS 小于等于 1452(参照MTU的设置),且满足是4的整数倍,应用都能正常发送数据包,因此设置为1400也是可以的。


但还是留下一个疑问,为什么 3.5.X 版本以及更早的版本,在MSS一直设置为1500的时候没有受到影响呢,这一点估计要等 iKuai 官方的查证及回复了。
12#
 楼主| 发表于 2023-1-13 11:23:54 | 只看该作者
终于可以停留在最新版的ikuai了,解决了困扰我很久的问题,开森。:)
13#
发表于 2024-5-10 17:55:36 | 只看该作者
谢谢,这个很宝贵,也解决了我的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|论坛规章制度|iKuai Inc. ( 京ICP备13042604号 )

GMT+8, 2024-11-14 10:47

Powered by Discuz! X3.3

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表