gpt4 book ai didi

c# - UDP 文件传输 - 是的,UDP

转载 作者:太空狗 更新时间:2023-10-29 23:17:46 29 4
gpt4 key购买 nike

我需要创建一个 UDP 文件传输系统。我知道 TCP 是有保证的并且更可靠,但我需要在不同位置之间传输大量文件,我认为这个项目的速度优势超过了使用 TCP 的好处。我刚刚开始这个项目,但如果有人以前做过这个,我想得到一些指导。我将编写双方(客户端和服务器),因此我不必担心其他产品的功能限制。

简而言之,我需要:

  • 获取大文件并分块发送
  • 能够从客户端限制带宽
  • 为错误创建某种数据包编号系统,在服务器上按 block 重新传输和组装文件(是的,所有我们从 TCP 免费获得的东西 :-)
  • 可配置的数据报大小——我认为有些防火墙会提示如果它们变得太大了?
  • 还有什么我可能遗漏的

我正在使用 UdpClient 开始这段旅程,并想用 C# 编写这个应用程序。有什么智慧的话(除了使用 TCP)吗?


它取得了巨大的成功。我们曾经使用 RocketStream.com,但他们将其产品出售给另一家公司,仅供内部使用。我们通常获得比 FTP 或原始 TCP 字节传输快 30 倍的速度。

最佳答案

关于

Configurable datagram size – I think some firewalls complain if they get too big?

一个数据报最多可达 65,536 字节。考虑到所有 ip header 信息,您最终会得到 65,507 字节的有效负载。但是您必须考虑如何沿着您的网络路径配置所有设备。通常大多数设备都将 MTU 大小设置为 1500 字节,因此这通常是您“在 Internet 上”的限制。如果您在您的位置之间设置专用网络,您可以增加所有设备的 MTU。

关于

Create some kind of packet numbering system for errors, retransmitions and assembling files by chunk on server (yes, all the stuff we get from TCP for free :-)

我认为在您的情况下最好的办法是实现应用程序级协议(protocol)。喜欢

32字节序号8 字节 crc32 校验和(纠正我的字节大小)剩下的任何字节都可以用于数据

希望这能给你一些方向

::编辑::

根据经验,我可以告诉您 UDP 在专用和 UDP 优化网络上比 TCP 快 10-15%。

关于c# - UDP 文件传输 - 是的,UDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603591/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com