可靠性udp传输大文件

实验数据

代码链接:https://github.com/whisperLiang/UDP_for_RDT.git

zstd压缩

1G文件(延迟100ms、丢包1%)

level=3:
13level=10:
110level=22:
122

0.1G文件(延迟100ms、丢包1%)

level=3:
013level=10:
0110level=22:
0122

0.01G文件(延迟100ms、丢包1%)

level=3:
0013level=10:
00110level=22:
00122

多线程lzma压缩

1G文件(延迟100ms、丢包1%)

preset=6:
l16可以看到这时md5检测值为False,通过结合下面实验可以判断,当lzma压缩大文件时文件受损,且压缩时间长,如下图:
ct16preset=9:
ct9直接杀死进程,无法压缩

0.1G文件(延迟100ms、丢包1%)

preset=6:
在这里插入图片描述preset=9:
在这里插入图片描述

0.01G文件(延迟100ms、丢包1%)

preset=6:
l0016preset=9:
在这里插入图片描述
通过上面实现可以看出zstd压缩算法比多线程lzma算法效果较好,且在不同的情况下都能准确地传输文件数据。其中压缩等级level=22由于其他等级。

最佳窗口数量

size=10:
ws10size=50:
ws50size=80:
ws80size=100:
ws100size=200:
ws200
由上选择size=50作为最佳窗口。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UDP(User Datagram Protocol,用户数据报协议)是一种无连接、非可靠传输协议,适用于对实时性要求较高的应用场景。UDP文件传输指的是利用UDP协议进行文件传输。 在进行UDP文件传输时,由于UDP是无连接的,不会保证数据包的按序到达、正确接收,所以在传输大量文件时需要进行以下的处理: 1. 分割文件:将大文件分割成较小的数据包,每个数据包的大小控制在UDP协议所允许的长度内,一般不超过64KB。这样可以避免UDP协议固定长度引起的数据包丢失或溢出问题。 2. 编号和标记:对每个分割后的数据包进行编号和标记,以便接收方能够按序收集并组合文件。通过编号和标记,可以识别丢失的数据包,并进行重传。 3. 分段发送:根据网络带宽的限制,将多个数据包进行分段发送,而不是一次性发送所有数据包。分段发送可以降低网络拥堵的风险,提高传输效率。 4. 超时重传:在发送方设置超时时间,如果发送的数据包没有在规定时间内收到接收方的确认信息,发送方会进行重传,以确保数据完整性。 5. 错误检测和纠正:可以使用校验和或者CRC等方式对数据包进行错误检测,保证传输的准确性。在接收方,如果发现数据包错误,可以请求发送方重新发送。 综上所述,UDP文件传输在处理大量文件时需要采取适当的分割、编号、分段发送、超时重传以及错误检测和纠正等策略,以提高传输效率和保证数据的完整性。同时,对于重要性较高的文件,可以考虑使用其他可靠性较高的传输协议,如TCP(Transmission Control Protocol,传输控制协议)来进行传输
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值