iPhone で TCP と UDP を評価するために、小さなエコー サーバーをコンピューターに作成し、iPhone で AsyncUdpSocket ライブラリを使用しましたが、レイテンシが驚くほど大きくなり、私の実装に何らかの問題があるのではないかと考えています。
私のセットアップには、外部静的 IP を持つ wifi-router (Apple Airport) があります。エコー サーバーが使用するポートは、開発用コンピューターに転送されます。
2 つの異なるセットアップを使用しました。
- iPhone -> Wifi -> Wifi ルーター -> Wifi -> パソコン
- iPhone -> 3G -> Wifi ルーター -> Wifi -> パソコン
パケット サイズは約 10 バイトでした。
最初のケースでは、ラウンドトリップは 9 ミリ秒から 600 ミリ秒まで変化しました。ほとんどの場合、約 300 ミリ秒の中央値が表示されますが、一部の実行では 30 ミリ秒しかありません。
2 番目のケース... 最良のケースは 2000 ミリ秒、最大 5000 ミリ秒です。
実装では、UDP パケットを送信し、戻ってくるまで待ってから、次のパケットを送信します。
最初は実装に問題があると思っていましたが、シミュレーターから実行すると、一貫してわずか 7 ミリ秒のレイテンシーが得られました。
私の数字は正しいですか、それとも何か奇妙なことが起こっていますか?