2

ユーザーがさまざまなサイズのファイルをダウンロードする必要があるアプリの一部を構築しています。現在、Apple の到達可能性コードを使用して、接続があるかどうかを知らせています。
( http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html )

到達可能性コードは「接続している」ことを追跡できますが、接続の悪化を知らせる機能はありません。私の要件を満たすには、Apple コードの機能を拡張する必要があるようです。データ転送中にドロップされたパケットの数または割合を測定することはできますか? これは、ユーザーにメッセージを送信して、ダウンロードを一時停止または停止できるので便利です。

4

1 に答える 1

1

パケットがドロップされるタイミングと理由を通知する、ネットワーク スタックの奥深くにフックする iOS API はありません。ルーターでドロップされるか、チェックサム エラーが原因でローカルでドロップされる可能性があります。

それはどのようなデータですか?私はTCPを想定しています。スループット レートを調べることで、接続の品質を推測できる場合があります。1 秒間に受信するバイト数を数えることができます。

TCP には輻輳制御と呼ばれるものがあり、エンド ホスト (iOS デバイス) は、パケットがドロップされて未確認になるとスループットを抑制します。そのため、スループットはネットワークの品質と相関している可能性があります。ただし、スループット レートは、ネットワークの輻輳、パケット シェーピング、QoS などの多くの理由で異なる場合があります。

iOS には、wifi 信号強度を監視するための公開 API がありません。プライベート API がありますが、プライベート API を使用すると、アプリはアプリ ストアで承認されません。

于 2014-01-11T05:17:04.197 に答える