0 Replies
      Latest reply on Jun 16, 2016 4:39 PM by rtrouton
      rtrouton Level 1 Level 1 (0 points)

        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.





        For IPv6:


        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.



        Best Practices:


        • Use UTF-8 for everything
        • Don't worry about DNS' Punycode
        • Be liberal in what text input you accept.





        Wi-Fi Assist:



        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: