首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RicardoY
V2EX  ›  问与答

关于 TLS 短连接访问时间过长的的一些问题

  •  
  •   RicardoY · 103 天前 · 840 次点击
    这是一个创建于 103 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在折腾一个把 Google Dns Over TLS 转换到本地使用的小玩具, 是用 Python 实现的, 但是发现单次连接耗费的时间特别长,使用的 TLS 协议不管是 TLS1.3 还是 TLS1.2 单次查询的时间都相似且长到不可接受。我同时还设置了 TCP_NODELAY 试图改善一下性能,但是似乎变得更慢了

    抓包的结果如下 uI4mi8.png

    我有一些问题

    1.网上有很多资料显示 TLS1.3 的握手过程仅需要 1-RTT, 但是抓包结果似乎显示使用了 2-RTT 的时间进行握手(第一个数据包应该是编号为 13 的包)

    2.使用 Python 有办法开启 TCP Fast Open, TLS session resumption 和 TLS early data 这些技术来改善连接的速度吗? Python 自带的 ssl 模块似乎不直接支持这些技术, 我尝试将 TLS 协议版本设置为 TLS1.2 并使用 session ticket 进行连接恢复,但是还是没有任何改善

    9 回复  |  直到 2019-10-10 19:50:13 +08:00
    RicardoY
        1
    RicardoY   102 天前
    午饭时间捞一下自己..希望有好心人看到吧..
    imWBB
        2
    imWBB   102 天前 via Android
    想想 是不是 墙的原因
    RicardoY
        3
    RicardoY   102 天前 via Android
    @imWBB 我测试了一下 在墙外还是差不多的情况
    allenforrest
        4
    allenforrest   102 天前
    为啥不用长连接?
    RicardoY
        5
    RicardoY   102 天前 via Android
    @allenforrest 一次查询之后会被对端关掉
    allenforrest
        6
    allenforrest   102 天前   ♥ 1
    从抓包看,dns.google 的相应太慢了
    响应 SYN 花了 212ms
    响应 Client Hello 花了 210ms
    响应 Change Cipher Spec 花了 213ms
    响应 TLS 建立以后的 DNS 查询请求,花了 220ms

    你 ping 一下 dns.google 看看时延?
    RicardoY
        7
    RicardoY   102 天前 via Android
    @allenforrest ping 的时延是 200ms 左右
    allenforrest
        8
    allenforrest   102 天前
    @RicardoY 那 TLS 本身也没啥好优化的了。。。
    fengtons
        9
    fengtons   102 天前 via Android   ♥ 1
    从抓包结果来看正常,TCP 握手 1RTT,SSL 握手 1RTT,TLS1.3 的 1RTT 不包握 TCP 握手的时间,这个不能省。如果使用 early data 的话可以在发送 client hello 的同时将一些数据发出去,这就是 TLS1.3 的 0RTT。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2058 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 44ms · UTC 16:09 · PVG 00:09 · LAX 08:09 · JFK 11:09
    ♥ Do have faith in what you're doing.