iOS TCP 一个毫秒级网络问题: 间断性出现相同时间的丢包

图片描述

图片描述

问题的表现是:

  • 同一个服务端(一个独立的 wifi 设备, mac 和 iphone 通过 wifi 和这个设备连接)
  • 有三个请求方, mac 上的 python 程序, mac 上的 ping, iphone X 上的 APP
  • python 和 APP 都在以 50hz(20ms)的频率请求服务器
  • 从服务器接收指令的角度看: 服务器前后两条指令的间隔(后收到的时间戳减前一条的时间戳),

    • python 的间隔不超过 0.25s
    • APP 间断性出现 0.47s(固定值)的时间间隔(此时,APP 的发送间隔没有大于 28ms)

综合起来描述就是: iPhoneX(机型很重要) 中用 tcp 以固定频率访问服务器。服务器会间断性的出现 0.47s 的指令空白。(需求要求不能出现 0.5 以上的间隔)。并且每次空白出现时都伴随重传(xcode 调试工具查找的,重传次数等同于图表中锋值出现的次数)。同时,只要换手机,或者用模拟器,都不会出现 0.2s 以上的间隔。

在此请教:

  • 哪位有什么思路大概原因在哪,我有什么办法找到原因所在?
  • 因为需求要求不能超过 0.5s 的指令空白,如何解这个问题?

补充: grpc nonamsg 都尝试过

阅读 2.3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题