Stuart Cheshire - Apple DEST
Update on ECN (Explicit Congestion Notification)
International text in networking
Cellular vs. WiFi
Network Quality of Service (QoS)
Recap from WWDC 2015 about ECN (watch video)
iOS 9 Launch revealed problem in Germany
One German ISP marked all packets "Congestion Experienced"
Fixed within a couple of weeks
No other issues seen worldwide
In iOS 9.3 and OS X 10.11.5 - 50% of network traffic requested ECN.
Time to start doing ECN marking
Mark packets instead of dropping
Reduce packet loss
Reduce delays and wasted bandwidth
IPv6 continues to grow, since worldwide launch in 2012.
Starting June 1, 2016, all apps submitted to the App Store must support IPv6-only networking.
Apple took a look at the review process to see if this would cause problems, and there's been no noticeable change in the app acceptance rate as the result of this change.
Use hostnames, not literal addresses
- Let DNS64 work
Use higher-level address-agnostic APIs
For details on NAT64, watch video.
Using Literal IPv4 addresses
Supported in selected APIs (watch video)
Using literal IPv4 addresses will prevent the app from connecting to IPv6 services.
Connecting to devices on the Local Link:
Ideally, devices should support IPv6.
If not, alternative is for device to support IPv4 link-local addressing
If device doesn't support IPv6 or IPv4 link-local addressing and it's not something you can fix:
Let Apple know and they can work with you to get it approved for the App Store.
International Text in Networking:
This is not actually a networking issue.
- It's a font display and text issue.
Watch video for Unicode information.
- Use UTF-8 for everything
- Don't worry about DNS' Punycode
- Be liberal in what text input you accept.
Try to use Wi-Fi, if Wi-Fi doesn't work; use Cellular data.
May wind up with large cellular data bill.
Build apps to distinguish between large data downloads and small.
For example, your video streaming app downloads both the streaming video and a thumbnail for the video.
If you're on cellular,allow the thumbnail to download and either:
A. give the user the choice of downloading the streaming video
B. block the streaming video from downloading until the mobile device is back on Wi-Fi.
New Quality of Service features in iOS 10:
New Socket option to select Network Service Type for UDP traffic
Don't try to use the old IP Type Of Service (TOS) bits.
Link-Layer QoS Marking
Controls packet queueing and scheduling on network interface
Missed the others; watch video.
IP-Layer DSCP QoS Marking
Recognizes Cisco Fast Lane network (more details, watch video)
IP-Layer DSCP QoS Marking:
- Only supported on Cisco networks with compatible hardware
- Only supported on iOS (not on macOS, watchOS or tvOS)
- Only supported on Wi-Fi, not ethernet
Choose Network Service Type wisely
- Most traffic should be Best Effort
- Large transfers should be in the background
See complete list of session and lab notes here: