iPhone 手机熄屏 20 分钟后收不到消息,断断续续排查了五年多终于找到原因

92 天前
 Rhianu

一句话总结:移动宽带的原因,地理位置河北保定下面的小县城

具体现象: 手机息屏 20 分钟后,发任何消息,如微信、FaceTime 等消息时,屏幕不亮,没有任何消息提示(声音、震动)只有手机解锁打开,亮屏后,才能收到消息,可以看到消息都是几分钟,十几分钟前发过来的。

断断续续排查了 5 年,起初一直怀疑是设备本身的问题,但随着家里都陆陆续续的用苹果手机,发现在我家会有很高概率这个消息收不到的问题,经过一系列的排查,才发现问题的根本起因是移动宽带。

之前没发现是因为当移动数据和 Wi-Fi 同时开启的时候,如果 Wi-Fi 无法连接到苹果的 APNs 推送服务时,它会自动切换到移动网络,这个问题影响了我排查的方向,现在所有的苹果设备关掉移动网络后,只连移动宽带,二十分钟后就会有这个问题。

但具体更深层次为什么宽带会有这个问题,请教大家有知道的么。

目前移动的人员来我家做的事情:关掉了 ipv6 ,但是没效果

6360 次点击
所在节点    Apple
53 条回复
Rhianu
92 天前
@longfei210 我的情况也不是这的问题,DHCP 这个我也排查过,目前就把路由器当成交换机在用,直接用猫拨号+DHCP 下发,也是不行。
Rhianu
92 天前
@longfei210 你这个情况应该会表现 Wi-Fi 图标是断开的,然后开机瞬间连上 Wi-Fi 类似这样。 我的情况不是,我的是 Wi-Fi 在手机上一直上显示连接的
JConlee
92 天前
问了一下 gemini:

综合以上所有线索,最可能的原因是:

河北保定该县城区域的中国移动宽带,其网络出口处的 NAT 设备或防火墙,对 TCP 长连接设置了非常短的“会话保持时间” (Session Timeout) 或 “NAT 老化时间”,大约在 20 分钟左右。

详细解释:
墙中墙 (Wall within a Wall): 网友 LxnChan 提到的“墙中墙”是一个非常形象的说法。这并非指 GFW ,而是指运营商在自己的网络内部,由于设备、管理策略、成本控制等原因,设置的额外网络限制。小县城的网络设备和配置策略,往往与大城市(如北京)不同,可能会更“激进”地回收网络资源。

TCP 长连接被“杀死”:

你的 iPhone 在连接 Wi-Fi 后,会与苹果 APNs 服务器建立一个 TCP 长连接(通常在 5223 或 443 端口)。
为了维持这个连接,即使没有消息,设备和服务器之间也会有定时的心跳包 (Keep-Alive) 来“保活”。
然而,你所在区域的移动宽带网络设备(可能是汇聚层交换机、BRAS 或出口防火墙)有一个规则:如果一条 TCP 连接在 20 分钟内没有“足够”的数据流量通过(心跳包可能被设备认为是非活动流量),就强制将其从会话表 (Session Table) 中清除,也就是“超时关闭”。
这种关闭是单方面的,它不会通知你的 iPhone 或苹果服务器。因此,在接下来的时间里,你的 iPhone 依然以为连接是好的,苹果服务器也以为连接是好的。
当有新消息时,苹果服务器通过这条“已经死亡”的连接发送推送,但消息石沉大海。
直到你点亮屏幕,iPhone 恢复网络活动,尝试通过该连接通信时才发现“路不通了”,于是立即重新建立连接,接收所有积压的消息。
为什么 longfei210 提到的 DHCP Lease Time 可能是个思路?
longfei210 提到的“增加 DHCP 租期”解决问题,虽然 OP 换路由器没解决,但原理是相通的。DHCP 租期过短(比如 10 分钟),会导致设备频繁重新获取 IP ,这个过程也可能中断网络,从而影响长连接。不过,从 OP 的描述来看,TCP 超时问题的可能性远大于 DHCP 问题。

给楼主的建议
既然已经和 Apple 技术团队沟通,并且他们确认了问题,这是最好的进展。在与移动沟通时,可以尝试提供更技术性的描述:

“你好,我家的移动宽带存在一个问题。所有苹果设备在 Wi-Fi 熄屏 20 分钟后都无法接收推送消息。经过排查,基本确定是贵公司在我这个区域的网络设备对 TCP 长连接的会话超时时间( Session Timeout )设置过短,导致设备与苹果推送服务器( APNs )的连接被强制中断。这个问题在北京的移动宽带上不存在,是地区性的网络策略问题。能否请技术人员检查并调整相关网络设备的 NAT 老化时间或 TCP 会话保持时间?”

这种具体的技术描述,比单纯说“收不到消息”更有可能让对方的高级技术人员理解并解决问题。

总结:这几乎可以肯定是地方运营商网络策略导致的 TCP 长连接超时问题。这是一个典型的、非用户侧能完美解决的 ISP 问题。
Rhianu
92 天前
@JConlee 哈哈,感谢感谢。我的确确实是类似的话术跟移动这么沟通的,我跟他们说就是 TCP 长连接被莫名其妙的挂起了。 目前他们已经承认这边的移动和苹果的通知有问题,但是因为小县城技术能力有限,他们对我的内容都是一知半解的。
chiaf
92 天前
@Rhianu #2 现在有省级防火墙了🌝

关键字,河南 防火墙 HFW ( Henan Firewall )
datocp
92 天前
iPhone 手机熄屏 20 分钟后收不到消息,那么亮屏 20 分钟后能收到消息嘛。。。
Rhianu
92 天前
@datocp 没有这样具体测试,但是可以肯定是手机如果在使用状态,是完全没问题的。 如果是 23 楼的长连接问题导致的,理论上来说亮屏和熄屏的本质是 TCP 数据包的活跃,那如果数据包不活跃的话,亮屏和熄屏理论上应该是一样的表现。
Lexgni
92 天前
@JConlee #23 你号要没
zhangyou1010
92 天前
携号转网,换电信
aduangduang
92 天前
其他手机在同网络环境下有这样的问题吗?
Leez088
92 天前
安卓手机会有这种问题吗
Comodo
92 天前
这个问题感觉应该算是很明显的,
我这边朋友换苹果设备给自己账号设置头像不显示,我就说你把 Wi-Fi 关了,用流量就看到了😂
nolan1864
92 天前
@longfei210 我觉得没啥用。在路由器侧持续 ping 手机 ip ,息屏后过一段时间也会断开,不过再过一会会恢复。感觉就是息屏后隔一段时间连一下网的样子。试了好几个路由器都是这个样子,数据则不会断。
xinzhanghello
92 天前
原来真有人会用移动的宽带
0312birdzhang
92 天前
@xinzhanghello 毕竟当年可以不要钱用一年,一年后可以通过一些操作继续免费用
Goooooos
92 天前
@JConlee #23 这位勇士,你号不想要了
littlewing
92 天前
不应该是宽带的问题,如果是宽带的问题会有很多人出现这个问题,而且你是熄屏的时候才出现,问题大概率出在 7 楼说的你的路由器和苹果的兼容性问题
PPPaul
92 天前
@nolan1864 不知道你说的是不是 ios 的后台机制吧,我试过基本上十分钟左右后台会休眠,然后隔几分钟唤醒一下连接网络,周而复始,我实在 network extension 里面测试的
LxnChan
92 天前
@Rhianu 一般是省公司在总公司基础上自己制定黑名单或规则
fengkookoo2
92 天前
微博问下 tombkeeper ,网络安全高手

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1139360

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX