一种不支持分片环境下tftp传输大文件的方法技术

技术编号:37242263 阅读:7 留言:0更新日期:2023-04-20 23:23
一种不支持分片环境下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传输大文件。文件。文件。

【技术实现步骤摘要】
一种不支持分片环境下tftp传输大文件的方法


[0001]本专利技术涉及数据传输
,尤其是一种不支持分片环境下tftp传输大文件的方法。

技术介绍

[0002]Tftp协议简单方便,常用于嵌入式操作系统如嵌入式x86LINUX,ARM LINUX的系统升级。
[0003]根据使用tftpd32或tftpd64程序的经验,发现最大块大小(blksize)默认是512字节,最大块大小通常设置为8192字节,最大可以设置为32768字节。
[0004]对于不支持IP分片的tftp客户端或者IP环境,通常不允许大于1500字节大小(mtu值)的包分片传输,因而如果将最大块大小设置的过大(稍微大于1500字节),就不会被成功的分片传输到tftp对端。因而这种场景下最大块大小选项设置的上限不能高于1500字节。
[0005]由于RFC1350里,关于块id的大小要求是2个字节,因而可以计算出来,通过tftp最大允许传输的文件大小是,2^16*blksize
[0006]其中,16代表块id的大小(2字节=16比特,所以最大是2的16次方个块),每块大小如上所述,为512到32768不等。
[0007]因而tftp可传输最大文件限额是2^16*32768约=2147M约=2GB,即2G字节的文件。不允许分片的场景最大文件限额是,2^16*1480约=96MB。
[0008]对于2G以上的文件传输,会导致tftp传输失败,而在不允许分片的场景下,远远小于2G的文件传输(例如96MB)就已经不被允许上传。
[0009]本专利技术针对此种情况,提出了针对大文件的tftp传输解决方法,解决了大文件利用tftp无法传输的问题。

技术实现思路

[0010]本专利技术提供一种不支持分片环境下tftp传输大文件的方法,包括以下步骤:
[0011]A.在tftp客户端/服务端上设置permitreverse选项为1;
[0012]B.服务器向客户端传输数据或者客户端向服务器传输数据,采用2个字节表示块id,确认块id值是否为最大值0xffff,当块id为最大值0xffff并且permitreverse选项为1时,块id下一数据翻转为0x0000。
[0013]进一步地,当permitreverse选项为0时,块id不进行翻转。
[0014]采用本专利技术地技术方案,具有以下技术效果:
[0015]当permitreverse选项设置为0时,其可以与旧的tftp客户端/服务端兼容传输数据,当permitreverse选项设置为1时,其可以在块id达到最大值时进行块id翻转,从而实现块id的循环,实现在不支持分片环境下,实现tftp传输大文件。
附图说明
[0016]图1为实施例一的结构示意图。
具体实施方式
[0017]下面将对本专利技术中的技术方案进行清楚、完整地描述,另外,在以下的实施方式中记载的各结构的形态只不过是例示,本专利技术所涉及的基于BIM和GIS构建智慧园区的方法并不限定于在以下的实施方式中记载的各结构,在本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施方式都属于本专利技术保护的范围。
[0018]基于RFC2347扩充选项,该选项名为permitreverse,标识是否允许块id翻转。默认如果未设置permitreverse选项,则采用默认值为0(不允许翻转)。参考https://tools.ietf.org/html/rfc2347,其结构如图1所示。
[0019]设置optN选项名为permitreverse
[0020]设置valueN结果为0或1,0代表不允许块id翻转,1代表允许。
[0021]块id的存储大小是2,代表2个字节,即基于RFC1350的默认块id的存储大小是2^16。通过将块id大小到达最大值0xffff后,继续翻转到0,这样就可以将大文件不停的通过tftp协议传给对端。这样即便在不允许分片的场景下使用tftp也可以优雅的传递大文件了。
[0022]在tftp客户端/服务端上通过设置permitreverse选项选择是否使用permitreverse选项,当采用默认值为0的选项时,默认不采用本选项,这样可以兼容旧的tftp客户端/服务端。当不采用默认值为0的选项时,将采用本方法所改进的permitreverse。
[0023]本专利技术只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计,在不冲突情况下,本专利技术同一实施例及不同实施例可以相互组合;
[0024]以上所述仅为本专利技术的优选实施例而已,并不用于限制本专利技术,凡在本专利技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种不支持分片环境下tftp传输大文件的方法,其特征在于,包括以下步骤:A.在tftp客户端/服务端上设置permitreverse选项为1;B.服务器向客户端传输数据或者客户端向服务器传输数据,采用2个字节表示块id,确认块id值是否为最大值0xfff...

【专利技术属性】
技术研发人员:张涛朱正路
申请(专利权)人:苏州椰云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1