我看到了一个问题,iPhone / iOS的MTU大小在从iOS 15升级到iOS 16之后似乎在缩小。在升级到iOS 16之前,从手机大小的MTU大小总是185个字节,这与大多数链接声称的iPhone的最大MTU大小相匹配(例1、例2和例3)。
但是,在升级到iOS 16之后,iPhone发送的MTU将减少到77个字节。这是使用相同的手机和完全相同的代码为iOS应用程序。我正在连接到一个可穿戴设备(即iPhone是中心设备,可穿戴设备是外围设备),其中包含一个nRF52芯片组,并且总是发送247个字节的MTU请求。
当使用iPhone iOS 15 (预期的)时,我设法捕获了显示MTU为185的应答的嗅探日志:-
下面的嗅探器日志显示了iPhone在使用iOS 16时如何发送77字节的压缩MTU:-
值得注意的是,重新启动电话似乎暂时解决了问题,iPhone的MTU响应恢复到185个字节,但是在几个连接之后,iPhone又开始发送77个字节。在iPhone上重新启动蓝牙并不能解决问题,临时修复的唯一方法就是重新启动手机。
我们一直在iPhone 11、iPhone 13 Pro Max和iPhone 14上重新创建问题。这个问题是使用iOS 16和iOS 16.0.2重新创建的。
考虑到没有CoreBluetooth API来修改MTU大小,这似乎纯粹是一个iOS 16错误,对吗?有什么方法可以克服这一点,迫使手机恢复到使用185字节的最大MTU?
发布于 2022-11-17 07:18:53
因此,这是一个错误/回归与iOS 16和16.0.2。从那以后,它已经在iOS 16.1上被修复,我们已经测试了修复,并且它在这里工作。
https://stackoverflow.com/questions/73960000
复制相似问题