Helfen Sie mir zu verstehen, was ich beim Testen des Erreichbarkeitscodes mit dem Network Link Conditioner sehe. Hier ist mein Vanilla-Erreichbarkeitscode:
%Vor% Wenn ich nun diesen Code mit dem Network Link Conditioner unter Verwendung des Presets "100% Loss" teste, ist der Wert von netStatus
ReachableViaWWAN
, was ich nicht erwartet habe. Ich habe viele Beschwerden gelesen, dass Reachability die Konnektivität nicht wirklich testet, sondern das Potential der Konnektivität testet. Also hier ist meine Frage:
Ist das Preset "100% Loss" (100% Verlust) so konfiguriert, dass DNS-Anfragen an den Apple-Server weitergeleitet werden, aber keine Pakete durchgelassen werden?
Dies hängt möglicherweise damit zusammen, dass die Erreichbarkeit nicht garantiert, dass ein Paket tatsächlich den Zielhost erreichen kann. Es geht um die lokale Netzwerkkonfiguration (Schnittstelle hoch / runter) und ob es ein Paket SENDEN kann.
Aus Apples SCNetworkReachability Reference :
Ein entfernter Host gilt als erreichbar, wenn ein Datenpaket, das von einer Anwendung in den Netzwerkstapel gesendet wird, das lokale Gerät verlassen kann. Die Erreichbarkeit garantiert nicht, dass das Datenpaket tatsächlich vom Host empfangen wird.
Wenn also die Schnittstelle aktiv ist und die Erreichbarkeit ein Paket senden kann, ist sie erfüllt und gibt den Status erreichbar zurück.
Aus Apples Entwicklerhandbuch Warum Networking schwierig ist :
Wichtig: Die SCNetworkReachability-API ist nicht als Preflight-Mechanismus zum Bestimmen der Netzwerkkonnektivität gedacht. Sie bestimmen die Netzwerkverbindung, indem Sie versuchen, eine Verbindung herzustellen. Wenn die Verbindung fehlschlägt, wenden Sie sich an die SCNetworkReachability-API, um die Ursache des Fehlers zu diagnostizieren.
Tags und Links cocoa networking reachability