菜鸟教程小白 发表于 2022-12-12 11:11:46

ios - 是否可以在 iOS 应用程序中测量数据包丢失?


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

<p>虽然可达性代码可以跟踪“有连接”,但它无法让我知道连接恶化。看来我需要扩展 Apple 代码的功能以满足我的要求。我是否可以测量数据传输过程中丢弃数据包的数量或百分比?这将很有帮助,因此我可以向用户发送消息并能够暂停或停止下载。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>没有可用的 iOS API 可以深入网络堆栈,告诉您何时以及为何丢弃数据包。它可能在路由器上被丢弃,也可能由于校验和错误而在本地被丢弃。</p>

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

<p>TCP 有一个叫做 <a href="http://www.ietf.org/rfc/rfc2581.txt" rel="noreferrer noopener nofollow">congestion control</a> 的东西并且终端主机(iOS 设备)将在数据包被丢弃且未被确认时降低其吞吐量。因此吞吐量可能与网络质量相关。但是,您的吞吐率可能会因网络拥塞、数据包整形、QoS 等多种原因而有所不同。</p>

<p>iOS 没有公共(public) <a href="https://stackoverflow.com/questions/12054818/ios-wifi-scan-signal-strength/12056009#12056009" rel="noreferrer noopener nofollow">API to monitor the wifi signal strength</a> .有一个私有(private) API,但如果您使用私有(private) API,您的应用将不会在应用商店中获得批准。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 是否可以在 iOS 应用程序中测量数据包丢失?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16722379/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16722379/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 是否可以在 iOS 应用程序中测量数据包丢失?