风暴俱乐部|带来哪些启发?,WWDC:无线网络优化实践

徐杰(无宸)淘系技术
网络技术作为互联网应用赖以存在的技术基础 , 速度与安全永远是其核心使命 , 本次WWDC的网络类topic涵盖内容基本还是围绕这两个点来展开 。 本次WWDC网络类session在基础网络技术上譬如新协议、新算法方面着墨并不多;也未提出新的类似NSURLSession/Network.framework之类的新网络组件 。 站在应用视角 , 本次WWDC网络类session可分为两大类:
无线网络体验优化实践在系统层面的标准化;本地网络应用的权限管控增强 。在第一类议题中 , 我们看到很多已经在手淘中的类似实践 , 或标准或自研 , 说明手淘在网络技术的开发与应用上还是较为深入和前沿的 , 基本走在全球业界前列 。 根据我们手淘的业务特点 , 笔者重点关注第一类session , 并简单探讨该新技术可以我们带来什么样启发和变化 。
使用加密DNSDNS解析是网络的连接的第一步 , 这里提到的"加密DNS"是什么、它解决什么问题?
?解决什么问题一是传统LocalDNS的查询与回复均基于非加密UDP , 我们常见的DNS劫持问题
现有HTTPDNS有两个很大的问题:
一是对业务的侵入性 , 即如果某个网络连接需要使用HTTPDNS的能力 , 首先他需要集成服务商提供的SDK,引入相应的Class , 然后修改网络连接的阶段的代码;二是面临各种技术坑 , 比如302场景的IP直连处理、WebView下IP直连如何处理Cookie、以及iOS上的老大难的SNI问题等 , 这些都需要业务开发者付出极大的努力和尝试 。iOS14上的EncryptedDNS功能很好的解决了现有HTTPDNS的存在的问题 。
?规范与标准iOS14开始系统原生支持两种标准规范的EncryptedDNS,分别是DNSoverTLS与DNSoverHTTPS.
?如何实现iOS14提供了两种设置加密DNS的方法 。 第一种方式是选择一个DNS服务器作为系统全局所有App默认的DNS解析器 , 如果你提供的是一个公共DNS服务器 , 你可以使用NEDNSSettingsManagerAPI编写一个NetworkExtensionApp完成系统全局加密DNS设置 。 或者如果你使用MDM(MobileDeviceManagement)管理设备的企业设置;你可以推送一个包含DNSSettingspaload的profile文件完成加密DNS设置 。
一条DNS配置包括DNS服务器地址、DoT/DoH协议、一组网络规则 。 网络规则确保DNS设置兼容不同的网络 。 因为公共DNS服务器是无法解析本地网络的私有域名 , 比如只有企业WiFi网络内的DNS服务器可以解析员工访问的私有域名 , 这类情况就需要手动指定网络规则兼容企业WiFi网 。