自己写完FTP之后,找了一个别人写的FTP源码来分析了一下,以下为简要分析。

TinyFTP 简析-LMLPHP

  • FTP需要以root权限启动
  • 守护进程维护两张哈希表,分别是ip->count,pid->ip,记录的数据用于限制每个IP最大连接数
  • SIGALARM用于设置连接超时定时器
  • 进程间传递fd用可用sendmsg在Unix域socket上传输
  • 限速实现为根据发送的字节数来睡眠相应时间
  • Q---带外数据、ABOR标志、session.data_process成员
01-17 19:02