FTP协议两种工作方式下消息交互的分析

2016-05-19 13:40葛伟伦
电脑知识与技术 2016年8期
关键词:端口

葛伟伦

摘要:分析了FTP协议的两种工作方式及安全性,探讨了每种方式适合的网络部署。在此基础上通过绘制的流程图深入剖析了两种方式下FTP客户端和服务器端通信的完整消息交互流程,通过对比分析进一步探究了FTP协议工作的本质。

关键词:主动方式;被动方式;端口;消息交互

中图分类号: TP393 文献标志码:A 文章编号:1009-3044(2016)08-0030-02

FTP (File Transfer Protocol)中文译为文件传输协议,是TCP/IP协议栈中应用层最重要协议之一[1] [2],基于C/S(Client/Server)工作模式,实现两台计算机之间文件的高速可靠传输,两台计算机分别称为FTP服务器和FTP客户机,FTP服务器集中提供和管理资源,客户机可通过FTP协议下载服务器的资源。

1 FTP主动和被动方式[4]

FTP使用传输层面向连接的可靠TCP(Transmission Control Protocol)协议建立FTP客户端和服务器通信的控制连接通道和数据传输通道,FTP服务器端使用21和20两个端口,21端口标识服务器端控制连接进程,控制通道传输客户端向服务器端发送的操作命令和服务器返回的应答信息;20端口表示服务器端数据传输进程,数据通道传输服务器和客户端的文件和文件列表数据。但FTP服务对数据传输是否使用20端口根据服务器和客户机网络部署和安全规划具有可选性,所有FTP协议有两种工作方式:主动和被动方式[3]。

1.1 主动方式含义

主动方式又称为Standard方式,是指在控制通道建立后,客户端向服务器端发送PORT(IP Addr,N1,N2)命令, IP Addr表示客户机IP地址, N1和N2参数告诉服务器传输数据客户端使用的临时端口号为表达式N1×256+N2的值,设为Pc,服务器端在传输数据时使用20端口主动发起到客户端Pc端口的数据连接,完成数据传输,服务器在数据通道建立时处于主动方式。

1.2 被动方式含义

被动方式又称为PASV方式,是指在控制通道建立后,客户端向服务器端发送PASV命令, 宣告下面数据传输进入被动方式,服务器收到PASV命令,返回的响应信息为entering passive mode(IP Addr,N1,N2),IP Addr表示服务器IP地址,N1和N2参数告诉客户端传输数据服务器端使用的临时端口号为表达式N1×256+N2的值。设为Ps。客户端在传输数据时用操作系统临时分配的大于1024端口号主动发起到服务器端Ps端口的数据连接,完成数据传输,服务器在数据通道建立时处于被动方式。

2 FTP协议消息交互流程[5][6]

2.1 主动方式

结合上文分析的FTP协议主动工作方式,此方式下FTP客户端和服务器通信时完整的消息交互流程如图1所示,消息交互剖析如下:

(1)FTP客户端通过操作系统临时分配的端口号1098向FTP服务器21端口主动发起SYN位置1的TCP控制连接请求报文段。

(2)服务器在资源和连接数可控范围内同意建立控制连接,向客户端发送SYN位置1,ACK位置1的控制连接请求确认报文段。

(3)客户端收到确认后,还要对服务器确认报文段再次发送ACK位置1的再确认报文段。

(4)经过上面的“三次握手”,服务器通过220应答消息响应客户端,双发控制连接通道成功建立。

(5)客户端首先通过user命令携带用户名消息发送给服务器,服务器验证用户名,再询问客户端密码,客户端通过pass命令携带密码发送给服务器,这一过程明文传输。

(6)服务器验证客户端身份成功,通过230应答消息响应客户端成功登陆。

(7)客户端通过控制通道向服务器发送port(IP Addr,N1,N2)命令,表达式N1×256+N2的值为客户端传输数据的临时端口号,本例设为4536。

(8)服务器通过发送200应答消息响应客户端,双发协商成功进入主动方式传输数据。

(9)客户端向服务器发送取数据命令,如get和ls等命令。

(10)服务器通过数据端口20向客户端数据端口4536的主动发送SYN位置1的数据连接请求报文段。

(11)客户端向服务器发送SYN位置1,ACK位置1的数据连接请求确认报文段。

(12)服务器收到客户端确认后,还要向客户端发送ACK位置1的再确认报文段。

(13)经过上面“三次握手”建立数据连接通道,服务器响应客户端取数据命令,把数据通过协商的数据通道发送到客户端。

(14)服务器确定完成数据传输后,向客户端发送FIN位置1的报文段请求释放本次数据连接通道。

(15)客户端向服务器发送ACK位置1的确认报文段应答服务器的释放连接请求,服务器到客户端方向的数据传输已经结束,数据连接通道处于半关闭状态。

(16) 客户端向服务器发送FIN位为置1的数据连接释放报文段,请求释放到服务器方向的数据连接通道。

(17)服务器向客户端发送ACK位置1的确认报文段应答客户端的数据连接释放请求,客户端到服务器方向的数据传输也结束,这样本次数据连接通道经过“四次握手”完全释放。

(18)如果客户端通过控制连接再次发出取数据命令,则客户端和服务器再次重复上文(10)-(17)步骤。

(19)客户端通过控制连接通道向服务器发送quit命令。

(20)服务器通过221应答响应Goodbye消息。

(21)服务器向客户端发送含有FIN位置1的控制连接释放报文段,请求释放到客户端方向的控制连接通道。

(22)客户端向服务器发送ACK位置1的报文段来应答服务器的控制连接释放请求,服务器到客户端方向的控制连接关闭,控制连接通道处于半关闭状态。

(23)客户端向服务器发送FIN位置1的控制连接释放报文段,请求释放到服务器方向的控制连接通道。

(24)服务器向客户端发送ACK位置1的报文段来应答客户端的控制连接释放请求,这样本次FTP控制连接通道经过“四次握手”完全释放。

结合上文分析的FTP协议被动工作方式,此方式下FTP客户端和服务器通信时完整的消息交互流程如图2所示,消息交互剖析如下:

(1)-(6)同主动方式的消息交互流程相同。

(7)客户端通过控制通道向服务器发送PASV命令,请求进入被动方式。

(8)服务器通过发送200应答消息响应客户端,双发协商成功进入被动方式传输数据,同时携带消息参数(IP Addr,N1,N2),表达式N1×256+N2的值为服务器传输数据的临时端口号,本例端口号设为5879。

(9)客户端向服务器发送取数据命令,如get和ls等命令。

(10)客户端通过系统临时分配的端口号5413向服务器数据端口5879主动发送SYN位置1的数据连接请求报文段。

(11)服务器向客户端发送SYN位置1,ACK位置1的数据连接请求确认报文段。

(12)客户端收到服务器确认后,还要向服务器发送ACK位置1的再确认报文段。

(13)经过“三次握手”建立数据连接通道,服务器响应客户端取数据命令,把数据通过协商好的数据通道发送到客户端。

(14)-(24)同主动方式下的消息交互流程相同。

3 结束语

本文分析了FTP协议工作的主动和被动方式,及每种方式的安全特性和适合的网络部署环境。在此基础上基于流程图深入剖析了两种工作方式下FTP客户端和服务器通信的消息交互完整流程,最后通过比较分析强调了两种工作方式的特点和区别。

参考文献:

[1] 谢希仁.计算机网络[M].北京:电子工业出版社,2013.

[2] 谢希仁.TCP/IP 协议族[M].北京:清华大学出版社,2006:215-221.

[3] DOUGLAS E COMER,DAVID L STEVENS,张娟,王海译.用 TCP/IP进行网际互连(第2卷):设计、实现和内部构造[M].北京:电子工业出版社,2001:188-192.

[4] 杭州华三通信技术有限公司.路由交换技术(第1卷)[Z].北京:清华大学出版社,2011.

[5] 孙韩林,金跃辉等.FTP协议的测试及分析[M].计算机工程,2008,34(23):133-135.

[6] 蔡艳丽.基于FTP协议网络流量模拟的设计与实现[J].海军航空工程学院学报,2014,29(3):221-223.

猜你喜欢
端口
硬件解耦三端口变换器的软开关分析与仿真
多按键情况下,单片机端口不足的解决方法
交换机生成树安全
端口阻塞与优先级
系统网络端口安全防护
LACP实验环境
初识电脑端口
8端口IO-Link参考设计套件加快开发速度
如何管理网络端口让系统更安全
卫星三端口DC-DC变换器技术综述