1.简介:用于网络上进行文件传输的一套标准协议,同合http,https,dhcp,ssh(远程连接)都属于网络传输协议的应用层。 常用协议端口号:
主要功能:在服务器与客户端之间进行文件传输(明文传输,现浏览器以经不支持) 主要功能: 1.可根据不同的用户身份(实体用户,访客,匿名用户)来访问 2.命令记录与日志文件的记录,如:曾使用过的命令,用户传输的数据(传输时间,文件大小),可在/var/log内找到各项日志信息。 3.限制用户活动的目录,change root
FTP的工作流程: 无论是命令通道的建立还是数据通道的建立,都需要先建立TCP的连接,都需要经厉三次握手: 第一次握手: 客户端发送一个TCP的SYN标志位置1的包,指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号字段里。 第二次握手: 服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号,设置为客户的I S N加1以.即X+1。 第三次握手. 客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1
1.建立命令通道: 客户端会随机获取一个大于1024以上的端口来与FTP服务器的21号端口进行连接(需要经历三次握手),实现后客户端便可通过·该连接对对服务器进行命令,如:查询文件名,下载,上传等
2.建立数据通道:
1)通知FTP服务器端主动连接且告知连接的端口号: 当TCP服务器主动向客户端连接时,不再使用21号端口,而是会主动的由20号端口(默认的服务器端主动连接端口)向客户端进行连接(三次握手),此时会有两条连接,分别用在命令执行与数据的传递。 数据通道仅会在有数据传输行为时才会建立,并不是连接上FTP服务器后就立即建立好的
2)客户端选择被动连接方式(客户端通过命令通道发出被动连接的要求,并等待服务器的回应) FTP服务器启动数据端口,并通知客户端连接 此时FTP会先启动一个监听端口,端口号可是随机的,也可是某一范围内固定的,FTP服务器会通过命令通道来告知客户端,并等待客户端连接。 客户端会随机选取一个大于1024的端口进行连接
|