基于netty实现一个完整的TFTP服务器

背景

  之所以造这个轮子,是因为我在项目中需要集成TFTP Server,但没有找到合适的java库。现有的几个java库有以下的问题:

  • 不支持选项协商,每个包只能传输512B,传输速度慢。

  • 不支持大于32M的文件。

TFTP规范

  TFTP是标准的协议。本项目严格遵守以下RFC规范:

特性

  • 可传输大于32M的文件。
  • 支持协商选项blksize。用于配置每次传输多少字节,当块大小为8192B时,会比512B要快16倍。
  • 支持协商选项timeout,用于配置丢包时重试等待的时间。当网络状态良好时,timeout可以配置得低一些,这样传输会快一些。
  • 支持协商选项tsize,用于指示要传输的文件的大小,可以据此实现下载进度功能。
  • 实现了简单的权限功能,可以配置为是否可读、是否可写、是否可覆盖。

项目地址

https://github.com/hedehai/netty-tftp

posted @ 2020-08-28 18:10  何德海  阅读(592)  评论(0编辑  收藏  举报