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

用 UDP 协议来传输大量数据的方法?

  •  
  •   JL1990 · 2019-02-28 10:48:17 +08:00 · 2257 次点击
    这是一个创建于 2099 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引用 SO 中的一段话。 Thus, safe packet size of 508 = 576 - 60 (IP header) - 8 (udp header) is reasonable.

    一个大的文本文件打算压缩后传输,有没有什么可靠的方式来做呢, 感觉只能通过自己定义协议层来实现了,把文件压缩后分片,双方再保证可靠的通信传输。 希望大伙指教一下,有没有什么更好的方法!

    10 条回复    2019-02-28 15:34:50 +08:00
    Cbdy
        1
    Cbdy  
       2019-02-28 11:04:33 +08:00
    如果一定要用 UDP,可以试试 QUIC
    MeteorCat
        2
    MeteorCat  
       2019-02-28 11:08:03 +08:00 via Android
    题主的思路是正确的,要么只能自己实现,要可以参照二楼这些去找可靠第三方的方案
    ysc3839
        3
    ysc3839  
       2019-02-28 11:14:12 +08:00 via Android
    要保证可靠的话还是用 TCP 吧,实在必须用 UDP 的话考虑 TCP over UDP。
    alvin666
        4
    alvin666  
       2019-02-28 11:15:47 +08:00 via Android
    kcp/quic 都可以试试,kcp 原理就是重复发包
    misaka19000
        5
    misaka19000  
       2019-02-28 11:15:54 +08:00 via Android
    可以试一试 RUDP 协议
    JL1990
        6
    JL1990  
    OP
       2019-02-28 12:39:25 +08:00
    感谢各位
    funcman
        7
    funcman  
       2019-02-28 14:19:58 +08:00 via iPhone
    除非需要内网穿刺,否则大量数据没必要用 UDP。
    tabris17
        8
    tabris17  
       2019-02-28 14:22:57 +08:00
    现成库有很多啊,比如 kcp
    WordTian
        9
    WordTian  
       2019-02-28 14:23:55 +08:00 via Android   ❤️ 1
    内网里的数据怎么弄都好说,要是经过外网的话,就得考虑运营商对 udp 的 qos
    JL1990
        10
    JL1990  
    OP
       2019-02-28 15:34:50 +08:00
    @WordTian 你这点我没考虑到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5501 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:46 · PVG 15:46 · LAX 23:46 · JFK 02:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.