Chinaunix首页 | 论坛 | 博客
  • 博客访问: 170157
  • 博文数量: 54
  • 博客积分: 1831
  • 博客等级: 上尉
  • 技术积分: 625
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-12 12:50
文章分类

全部博文(54)

文章存档

2009年(11)

2008年(43)

分类: LINUX

2009-03-02 13:33:07

                         FTP 协议简括
    FTP 与我们平时用的很多协议都不同,它采用两个TCP连接来传输一个文件
本文是我分析cu上面的cuftpd简易ftp实现而写,内容主要是概括一下ftp协议。

一: 连接管理
  1) 控制连接以通常的客户服务器方式连接(和我们平时看的c/s结构相似),使用21号端口。
  2)通过流的方式传输文件,以关闭数据连接为标志说明文件传输结束
  active
    a)客户发送命令要求建立连接
    b)客户随机的选择端口,发送一个被动打开的端口
    c)客户使用port命令从传输端口发送它的数据接收端口给服务器
    d)服务器接收客户端口,主动打开连接,用20端口传输数据
  pasv
    控制连接是一样的,所不同的是数据连接的主动打开方式,是由server发送一个pasv 命令告诉client server 用来接收数据的端口。而客户端用控制连接的端口来打开(所以这个需要设置套接口选项)。而且对以流方式传输的连接是有影响的)
二: 命令
  ABOR
  LIST filelist
  PASS password
  PORT n1,n2,n3,n4,n5,n6(前面4个是ip地址,后面是端口 256*n5+n6)
  QUIT
  RETE filename      取一个文件
  STOR  FILENAME     放一个文件
  SYST
  TYPE   type   说明文件类型: A 表示ASCII码, I表示图像
  user username

阅读(1385) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~