一种不支持分片环境下tftp传输大文件的方法与流程

文档序号:33769258发布日期:2023-04-18 20:41阅读:49来源:国知局
一种不支持分片环境下tftp传输大文件的方法与流程

本发明涉及数据传输,尤其是一种不支持分片环境下tftp传输大文件的方法。


背景技术:

1、tftp协议简单方便,常用于嵌入式操作系统如嵌入式x86linux,arm linux的系统升级。

2、根据使用tftpd32或tftpd64程序的经验,发现最大块大小(blksize)默认是512字节,最大块大小通常设置为8192字节,最大可以设置为32768字节。

3、对于不支持ip分片的tftp客户端或者ip环境,通常不允许大于1500字节大小(mtu值)的包分片传输,因而如果将最大块大小设置的过大(稍微大于1500字节),就不会被成功的分片传输到tftp对端。因而这种场景下最大块大小选项设置的上限不能高于1500字节。

4、由于rfc1350里,关于块id的大小要求是2个字节,因而可以计算出来,通过tftp最大允许传输的文件大小是,2^16*blksize

5、其中,16代表块id的大小(2字节=16比特,所以最大是2的16次方个块),每块大小如上所述,为512到32768不等。

6、因而tftp可传输最大文件限额是2^16*32768约=2147m约=2gb,即2g字节的文件。不允许分片的场景最大文件限额是,2^16*1480约=96mb。

7、对于2g以上的文件传输,会导致tftp传输失败,而在不允许分片的场景下,远远小于2g的文件传输(例如96mb)就已经不被允许上传。

8、本发明针对此种情况,提出了针对大文件的tftp传输解决方法,解决了大文件利用tftp无法传输的问题。


技术实现思路

1、本发明提供一种不支持分片环境下tftp传输大文件的方法,包括以下步骤:

2、a.在tftp客户端/服务端上设置permitreverse选项为1;

3、b.服务器向客户端传输数据或者客户端向服务器传输数据,采用2个字节表示块id,确认块id值是否为最大值0xffff,当块id为最大值0xffff并且permitreverse选项为1时,块id下一数据翻转为0x0000。

4、进一步地,当permitreverse选项为0时,块id不进行翻转。

5、采用本发明地技术方案,具有以下技术效果:

6、当permitreverse选项设置为0时,其可以与旧的tftp客户端/服务端兼容传输数据,当permitreverse选项设置为1时,其可以在块id达到最大值时进行块id翻转,从而实现块id的循环,实现在不支持分片环境下,实现tftp传输大文件。



技术特征:

1.一种不支持分片环境下tftp传输大文件的方法,其特征在于,包括以下步骤:

2.根据权利要求1所示的不支持分片环境下tftp传输大文件的方法,其特征在于,当permitreverse选项为0时,块id不进行翻转。


技术总结
一种不支持分片环境下tftp传输大文件的方法,包括以下步骤:A.在tftp客户端/服务端上设置permitreverse选项为1;B.服务器向客户端传输数据或者客户端向服务器传输数据,采用2个字节表示块id,确认块id值是否为最大值0xffff,当块id为最大值0xffff并且permitreverse选项为1时,块id下一数据翻转为0x0000。当permitreverse选项设置为0时,其可以与旧的tftp客户端/服务端兼容传输数据,当permitreverse选项设置为1时,其可以在块id达到最大值时进行块id翻转,从而实现块id的循环,实现在不支持分片环境下,实现tftp传输大文件。

技术研发人员:张涛,朱正路
受保护的技术使用者:苏州椰云科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1