测试方法,2 台服务器之间 ping 延迟 200ms (都在国外且 ping 稳定),其中一台安装了 dns server ,另一台用 dig 命令测试。
发现不管用是 udp 还是 tcp 方式去查询,延迟都在 200ms 左右。
udp 方式在 200ms 比较好理解,就一个来回,而 tcp 方式有个三次握手的过程,正常来说肯定要远高于 200ms ,至少在 500ms 以上才对。
通过抓包发现,tcp 方式第一条数据是 sackOK ,再接收到服务器端发回的 sackOK 后,DNS 结果就出来了,后面再是 ack 包,也就是实际上也只有一个来回就获得结果了,所以延迟也是在 200ms 左右。
这是 dns 的 tcp 协议的特点? sackOK 直接查询?有大佬能解释下吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.