iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测

domosekai:前情提要: https://www.v2ex.com/t/699027

上次发现 iOS14 会查询域名的 HTTPS 记录(TYPE65,以前叫 HTTPSSVC)后,本以为只是个试探性功能没多大用,结果今天看到 cloudflare 的贴文,已经完全实用化了。

简单来说,使用 CF 的域名已增加 HTTPS 记录,记录里罗列服务器支持的协议类型(如 HTTP/3,HTTP/2 ),同时提供 IPv4 和 v6 地址,免去查询 A 和 AAAA 记录的必要,使得客户端可以直接用合适的协议连接,不需要先 HTTP 再 fallback 。

原文: https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns/

不罗嗦,下面是网关上的抓包分析,以 iOS14 设备连接 V2EX 为例( Safari 要先开启 HTTP/3 支持):
iOS14 结合 DNS 的 HTTPS 记录进行 HTTP/3 连接的实测

1 、包 497-499:客户端发出 HTTPS(65),A,AAAA 三种类型的 DNS 查询

2 、包 500:HTTPS 结果返回,由于 wireshark 不支持 decode 65 记录,翻译如下,data 部分共 96 字节:

0000   00 01 00 00 01 00 15 05 68 33 2d 32 39 05 68 33   ........h3-29.h3
0010   2d 32 38 05 68 33 2d 32 37 02 68 32 00 04 00 0c   -28.h3-27.h2....
0020   68 14 09 da 68 14 0a da ac 43 03 bc 00 06 00 30   h..Úh..Ú¬C.¼...0
0030   26 06 47 00 00 10 00 00 00 00 00 00 68 14 09 da   &.G.........h..Ú
0040   26 06 47 00 00 10 00 00 00 00 00 00 68 14 0a da   &.G.........h..Ú
0050   26 06 47 00 00 10 00 00 00 00 00 00 ac 43 03 bc   &.G.........¬C.¼

跳过前三字节,此后每条记录有 4 字节 header,2 字节 key 和 2 字节 length 。

记录 1:00010015,0001 是 alpn,15 是长度,内容是支持的协议:h3-29,h3-28,h3-27,h2 四种,由于 http/3 还在 draft,后面带的是草案版本

记录 2:0004000c,0004 是 ipv4hint,就是 ipv4 地址,省得你去查 A 记录,值当然就是 ip 地址

记录 3:00060030,0006 是 ipv6hint,内容正好是最后 3 行,从 hex 就看得出是三条 v6 地址,2606:4700 开头

3 、包 501,504:Safari 发出 HTTP/3 请求和服务端应答,可以看到是 UDP(QUIC),没有进一步研究

4 、包 502-503:A 和 AAAA 的应答,在这里已经没用了

另外,目前 Google 、CF DNS 都可以正常返回 HTTPS 记录,dnspod 和 alidns 不支持,114 和百度支持但非常缓慢,可用dig type65 example.com测试。小白注意,HTTPS 记录和 DOH 没有任何关系。

ios14 短信过滤功能的一个进步

talentl:新版本,被过滤软件归类的垃圾短信,不在桌面角标中计数。我觉得这很好,以前一起计数,不知道是不是有用的信息,还要点开才知道。 我用的是熊猫吃短信。

IOS14 小组件,编辑叠放怎么增加组件?

xiaoheige:只能删除,不能增加Dachunlv:单独增加一个小组件,然后手动按住往需要合并的小组件上拖 xiaoheige:@Dachunlv 可以了,感谢感谢

iOS14 里面那个区域网络权限是干什么的

BradZhou:升级后打开一些第三方 app 就会跳出让你授予区域网络,不给也可以连接网络啊Baymaxbowen:扫描你局域网内的其他能联网的电子设备给你打标签 Unclev21x:反正拒绝就好了。

ios14 不显示来电归属

ak47007:刚刚发现不显示来电归属地了,只显示中国大陆,但是在通话记录里面又会显示归属地,你们的也是这样吗?DesmondQ:同“中国大陆”,今天才刚发现,接电话的时候还懵了一下。。。 shawnliu03:是的,不显示具体城市了。

IOS14 下自带输入法卡顿严重

ixuefeng:不定时出现,又不定时消失,问题出现后重启系统能解决,但是之后使用时又会不定时出现,不知道是什么引发的。 微信和其他 app 都如此。