WebAuthenticationSession under a carrier-provided satellite network?

(related post: How to optimize my app for for a carrier-provided satellite network? )

I am trying to implement an app so that it works under a carrier-provided satellite network.

The app uses (AS)WebAuthenticationSession for signing in. If the app is entitled to access a satellite network, will (AS)WebAuthenticationSession work as well?

How about WKWebView and SFSafariViewController?

Is there a way to test(simulate) a ultra-constrained network on a device or a simulator to see the expected behavior?

Thanks,

Answered by DTS Engineer in 847149022

I was hoping that you’d be able to use Network Link Conditioner to simulate an ultra-constrained network, but I ran that past the networking team and they told me that it’s not really set up for that:

  • It doesn’t provide a way to flag an interface as ultra-constrained.

  • While it lets you manually configure various network parameters, there isn’t a combination of parameters that reasonably simulate satellite networking.

Clearly this is less than ideal, in that it gives you no good way to test your code. You have to have a real device with a carrier that supports satellite and then take that device somewhere it can see satellites but has no cell service.

I encourage you to file an enhancement request for a developer-oriented feature that let’s you test your ultra-constrained networking code. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

If the app is entitled to access a satellite network, will (AS)WebAuthenticationSession work as well?

That seems unlikely. As I mentioned on your other thread, you have to opt in to this support via the allowUltraConstrainedPaths property, and it’s unlikely that these sorts of high-level APIs will do that.

Moreover, I suspect that you wouldn’t want them to do that, because ultra constrained networks are far too constrained for the large HTTP transactions used by these technologies.

Is there a way to test(simulate) a ultra-constrained network on a device or a simulator to see the expected behavior?

The simulator won’t help here. In general, you should test this sort of weird networking edge cases in on an actual device.

As to what you can do on a real device, I suspect that there might be some useful options to explore but I need to confirm some things first. I’ll get back to you.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Moreover, I suspect that you wouldn’t want them to do that, because ultra constrained networks are far too constrained for the large HTTP transactions used by these technologies.

I'm not asking with a specific carrier in my mind, but a source says a direct-to-cell satellite network can provide 4.4Mbps or 18.3Mbps of downlink bandwidth. Will iOS still consider such a network as an ultraConstrained network?

(ref: https://www.scribd.com/document/612879369/Technical-Narrative-1 )

Again, what I want to achieve is to allow users to log in to my app with WebAuthenticationSession or UIWebView even when the device is under a carrier-provided satellite network. Typical users should have logged in before coming to a place where cellular networks is not readily available, but I don't want to lose a possible edge case when a user happened to have my app installed on their device but not have logged in.

If a carrier-provided satellite network could only provide a few Kbps of bandwidth, iOS should have considered such a network as ultraConstrained, but if the network has a few Mbps or even a few hundred Kbps of bandwidth, then showing a simple login web page should be possible.

I have assumed that a carrier-provided satellite network is always a ultraConstrained network, and to be able to use it my app needs to opt in to allowUltraConstainedPaths property. Is my assumption still true?

Thanks again,

I was hoping that you’d be able to use Network Link Conditioner to simulate an ultra-constrained network, but I ran that past the networking team and they told me that it’s not really set up for that:

  • It doesn’t provide a way to flag an interface as ultra-constrained.

  • While it lets you manually configure various network parameters, there isn’t a combination of parameters that reasonably simulate satellite networking.

Clearly this is less than ideal, in that it gives you no good way to test your code. You have to have a real device with a carrier that supports satellite and then take that device somewhere it can see satellites but has no cell service.

I encourage you to file an enhancement request for a developer-oriented feature that let’s you test your ultra-constrained networking code. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

It’s better to reply as a reply, rather than in the comments; see Quinn’s Top Ten DevForums Tips for this and other titbits.

I appreciate if you can comment on that as well.

I don’t have a definitive answer for you. Sorry. My best guess is that ultra-constrained networks are way too constrained to support this sort of thing, but right now that’s just a guess.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

So, it took me a while but I finally have some info to share on this front:

My best guess is that ultra-constrained networks are too constrained to support this sort of thing

Ultra-constrained networks are, as the name suggests, tightly constrained. The exact bandwidth and latency constraints will vary significantly. And, as always with networking, the network can go away at any time. However, I can provide some rough guidance:

  • You can reasonably expect a bandwidth O(100 Kbps). It could be significantly higher, but if your app works well with this bandwidth then it’s a reasonable candidate for an ultra-constrained network.
  • Latency can vary significantly. The ultra-constrained network will typically add a few hundred milliseconds to your latency, but it’s also common to see latency increases of a second or two.

There are a couple of take-home messages here:

  • You really need to test in real world. You are likely to see huge swings in both bandwidth and latency, and the only way to be sure that your app deals with that is to actually test it.
  • As I mentioned in my earlier post, there isn’t a good way to simulate this with Network Link Conditioner [1]. You can use that facility to customise bandwidth and latency, but it doesn’t have a way to simulate the variations you’ll see on a real ultra-constrained network.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] And thank you for filing FB18574701 requesting enhancements for that.

WebAuthenticationSession under a carrier-provided satellite network?
 
 
Q