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

有没有可能实现 QUIC to TCP to QUIC ?

  •  
  •   heiher · 2022-08-26 00:08:05 +08:00 · 1010 次点击
    这是一个创建于 828 天前的主题,其中的信息可能已经有所发展或是发生改变。
    UDP 容易被 QoS ,也不能直接通过 CDN ,当然可以 UDP over TCP 来代理。但是,如果 UDP 是 QUIC 的话,则会出现类似 TCP in TCP 的效果。暂不太了解 QUIC 协议的细节,那么能不能实现 QUIC to TCP to QUIC 呢? QUIC 是内置加解密的,这种情况下能不能做到密文透传呢?
    第 1 条附言  ·  2023-02-23 16:31:47 +08:00

    与ChatGPT讨论了一下,结果如下:

    Q: QUIC是否可以将密文流转为TCP流?

    A: QUIC是一种基于UDP的传输协议,它使用TLS(Transport Layer Security)来加密数据传输,并且在传输过程中将数据流分割成多个数据包(packet)来发送。相比之下,TCP是一种基于传输控制协议的传输协议,它在传输过程中使用明文数据流,并且数据流是以数据段(segment)为单位发送的。

    因此,直接将QUIC的密文流转换为TCP流并不是一件容易的事情。由于QUIC使用TLS来加密数据传输,因此要将其转换为TCP流,需要先解密数据流。解密后的数据流是明文的,但它仍然是以数据包的形式发送的,而TCP需要以数据段的形式发送数据流。因此,在将QUIC数据流转换为TCP流之前,还需要将数据包重新组装为数据段。

    总之,尽管可以将QUIC的密文数据流转换为TCP流,但这需要解密和重新组装数据流,因此需要进行额外的工作,而且可能会影响数据传输的效率。因此,除非有特殊的需求,否则不建议进行这种转换。

    Q: 不解密能否完成QUIC密文层面的流重组?

    A: 在不解密的情况下,无法对QUIC密文层面的数据流进行流重组,因为QUIC协议对数据流进行了加密和分段。由于加密后的数据流是无法理解的,因此不能直接对其进行流重组。

    QUIC协议在传输过程中将数据流分割成多个数据包,并在每个数据包中包含了一些必要的信息(例如序列号、加密数据、校验和等),这些信息可以在接收端用来对数据包进行解密和重组。如果不解密,那么就无法对这些数据包进行解析和重组,因此无法对QUIC密文层面的数据流进行流重组。

    总之,如果想要对QUIC数据流进行流重组,必须先解密数据流,以便能够对数据包进行解析和重组。

    4 条回复    2022-08-26 19:35:08 +08:00
    wanguorui123
        1
    wanguorui123  
       2022-08-26 10:36:58 +08:00
    udp2raw
    Kcptun
    FinalSpeed
    heiher
        2
    heiher  
    OP
       2022-08-26 10:39:35 +08:00
    @wanguorui123 CDN 是关键,因为 CF-HKG 是真香
    ysc3839
        3
    ysc3839  
       2022-08-26 18:39:36 +08:00
    不完全可以,QUIC 支持同一连接中有多条流,而 TCP 同一连接只有一条流。
    heiher
        4
    heiher  
    OP
       2022-08-26 19:35:08 +08:00 via Android
    @ysc3839 感觉这个问题不大,可以做多路复用,或直接多条 tcp 连接。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2550 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 05:06 · PVG 13:06 · LAX 21:06 · JFK 00:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.