实现一个简单的TFTP文件服务器
TFTP(Trivial File Transfer Protocol)是一个非常早期的基于UDP协议的可靠文件传输协议。其可靠性基于最简单的停等协议实现(即:Stop-and-WAIT ARQ协议),可见其性能非常一般。
但是由于它是基于UDP的,甚至可以直接构造IP包,所以可以离谱到裸机都可以跑,完全不需要操作系统或复杂的网络栈,实现也非常简单。所以,它能在嵌入式设备上“发光发热”就不足为奇了。
由于不知道具体的协议,硬是给我如何给我的Cudy TR3000路由器恢复原厂固件带来了麻烦。我甚至搞不懂为什么要给电脑设置手动IP地址。更好奇的是 U-Boot 如何能“塞”进去一个网络栈以下载固件?
看了4️⃣篇RFCs文档才知道了协议的具体细节。加上在一头雾水的情况了试用了几个别人写的,真是一言难尽。所以就决定自己写个最简能用的就行。我为什么不用系统的/自己安装?
-
MacOS上好像是自带的,但是要启动为一个后台服务,甚至还要launchctl来启动,太抽象了
-
Linux作为嵌入式开发主力设备,居然不自带,虽然前几天用过一次并成功了,还是觉得麻烦
-
Windows上有一个比较常见的,但是实在丑拒,另外,我没有 Windows 系统。

项目地址在这里:movsb/tts: A tiny/trivial² TFTP server that just works.。
零依赖,开箱应用。只有必要的基本功能,不废话。
我的目的明明是为了救砖,你们为什么搞那么复杂?