文件传输:框架思考

  1. 低层传输模块:对外与网络交互,对内与硬盘文件交互
  2. 中间控制模块:对下控制传输模块,对上服务于业务模块
  3. 业务接口模块:解释业务配置与调试指令,转换为中间控制模块可识别的语言,最终转换为传输动作
  4. 基础服务模块:提供各个模块的基础服务,相当于utils-工具

基础服务模块

  • 内存申请
  • 消息构造

低层传输模块

  • 基于socket的UDP、TCP协议;基于ssl的ssh安全;
  • 每个网络链接为线程支撑;

低层传输模块直接与对端的低层的传输进行数据传输,

中间控制模块

  • 消息传输 消息队列

业务需求:

  1. 数据走私有网络时,无需考虑安全因素;但当走互联网时,需要考虑安全因素。也就是说对传输软件有安全与非安全考虑两种选择
  2. 一次传输任务可能需要进行多个文件传输,但其中任何一个文件传输失败意味着此次文件传输失败
  3. 文件传输会周期性地进行,必须一个常驻的服务监听业务层的传输任务
  4. 如果传输任务的一切条件已经具备(文件,指令,网络通道。。),那么此次传输任务必须成功完成,即传输软件需要进行高可靠保证:高速模式与低速模式(浏览器的高速浏览与兼容浏览)
  5. 允许网络出现中断,导致此次传输任务失败,但网络恢复后,可以最大限度地利用上次失败传输的‘劳动成果’
  6. 可以根据自动调节网络传输速度,如同迅雷式的上网模式与下载模式
  7. 可变动因素,需要使用配置文件来设定:如文件传输最小单元,线程数,允许接入的‘客户端’

发表评论