I'm using NSURLConnection
to access a web service (on a .local
host). When I access the host by hostname, I'm seeing a delay of 5+ seconds, but when I access it by IP, the connection completes almost instantly.
Running the app on an actual iPhone, instead of the simulator, does not show any delays at all (testing was done on the same network connection). So this seems to be a problem specific to the iOS Simulator or OS X.
I'm able to simulate the problem using the following terminal commands:
nslookup webservice.myhost.local
(which is fast)
dscacheutil -q host -a name webservice.myhost.local
(shows the delay)
When analyzing the network traffic using Wireshark of the dscacheutil
command, I'm seeing several Standard query AAAA
requests which are marked red and get an empty response. Once these are done, I see a Standard query A
request which has a response containing the correct IP address. The AAAA requests take up about 5 seconds, which would explain the delay.