nctp协议(No Concurrent Transfer Protocol,即非并发传输协议) ,是一种处于应用层的单连接文件传输协议。nctp基于lwip协议底层回调(callback)的raw API进行开发,用于在网络上传输文件。
什么是“单连接文件传输”
microLite裸机系统上实现的是nctp服务器,PC端为客户端。
nctp协议仅支持单个客户端与服务器之间进行单连接文件传输。文件传输完毕后,服务器主动关闭该连接。
若PC端nctp客户端申请多个连接(如文件并发传输等),nctp服务器会仅仅执行一个连接,主动关闭掉多余连接。
为什么要设计成“单连接文件传输”
设计为单连接文件传输主要基于两个方面考虑:
- 因为microLite作为裸机系统,轮询执行各个任务,并发多连接传输并不能显著提升文件传输速度;
- 为了加快文件传输速度,会建立多级缓冲区,因此文件并发传输会耗费更多内存,这会导致硬件成本增加,另外频繁的申请和释放内存也会导致软件复杂度的增加。
nctp协议简述
nctp协议是类FTP协议,命令和控制采用独立连接。
nctp客户端支持文件目录显示、上传文件、下载文件等操作。nctp服务器内置下载多级缓冲区,因此下载文件速度较快。为节省内存且考虑到sd卡写入速度较慢,nctp服务器未内置上传多级缓冲区,因此上传文件速度较慢。
nctp协议仅支持passive模式,这样设计更容易