OGeek|极客世界-中国程序员成长平台

标题: ios - 是否可以在 iOS 应用程序中测量数据包丢失? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 11:11
标题: ios - 是否可以在 iOS 应用程序中测量数据包丢失?

我正在构建应用程序的一部分,该应用程序需要用户下载不同大小的文件。目前,我正在使用 Apple 的可达性代码让我知道我是否有连接。
(http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html)

虽然可达性代码可以跟踪“有连接”,但它无法让我知道连接恶化。看来我需要扩展 Apple 代码的功能以满足我的要求。我是否可以测量数据传输过程中丢弃数据包的数量或百分比?这将很有帮助,因此我可以向用户发送消息并能够暂停或停止下载。



Best Answer-推荐答案


没有可用的 iOS API 可以深入网络堆栈,告诉您何时以及为何丢弃数据包。它可能在路由器上被丢弃,也可能由于校验和错误而在本地被丢弃。

它是什么样的数据?我假设 TCP。 您可能可以通过检查吞吐率来推断连接的质量。您可以计算每秒接收的字节数。

TCP 有一个叫做 congestion control 的东西并且终端主机(iOS 设备)将在数据包被丢弃且未被确认时降低其吞吐量。因此吞吐量可能与网络质量相关。但是,您的吞吐率可能会因网络拥塞、数据包整形、QoS 等多种原因而有所不同。

iOS 没有公共(public) API to monitor the wifi signal strength .有一个私有(private) API,但如果您使用私有(private) API,您的应用将不会在应用商店中获得批准。

关于ios - 是否可以在 iOS 应用程序中测量数据包丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722379/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4