FTP

    xiaoxiao2021-03-25  124

    FTP

    FTP(File TransferProtocol,文件传输协议)用于在FTP服务器和FTP客户端之间传输文件,是IP网络上传输文件的通用协议,基于TCP

    FTP协议使用TCP端口2021进行传输端口20用于传输数据(数据连接),端口21用于传输控制消息(控制连接)。20 21 端口是TCP的端口,用于为FTP分别传输数据和控制连接的,在控制连接和传输数据过程中用到了FTP的什么端口是在报文中协商的。

    FTP有两种文件传输模式

    ·二进制模式,用于传输非文本文件(比如后缀名为.app、.bin和.btm的文件);

    ·ASCII码模式,用于传输文本格式的文件(比如后缀名为.txt、.bat和.cfg的文件)。

    当设备作为FTP客户端时,使用的传输模式用户可通过命令行修改,缺省为二进制模式;当设备作为FTP服务器时,使用的传输模式由FTP客户端决定。

    FTP有两种工作方式

    ·主动方式(PORT:建立数据连接时由FTP服务器发起连接请求,FTP客户端处于防火墙后时不适用(如FTP客户端处于私网内)。

    ·被动方式(PASVpassive mode:建立数据连接时由FTP客户端发起连接请求,当FTP服务器限制客户端连接其高位端口(一般情况下大于1024)时不适用。

    FTP组网应用示意图

    FTP登录过程(21号端口):利用FTP协议进行文件传输时,首先客户端向服务器发起TCP连接,三次握手,客户端到服务器的连接建立;FTP request报文客户端告知服务器要进行FTP文件传输;FTP response 报文,服务器做好传输准备,并告知客户端其所属公司和版本号;FTP request 报文,客户端告知服务器想要用哪个用户名登录;FTP response 报文,服务器向客户端要登录密码;FTP request 报文,客户端将登录密码已明文的形式发送给服务器;FTP response 服务器告知客户端密码正确,登录成功,至此客户端和服务器之间建立了FTP。

    文件下载过程主动方式(PORT(20号端口):在文件传输过程中,服务器主动发起TCP连接。FTP request报文,包含客户端的IP和想要连接服务器的端口;FTPresponse报文,同意建立连接,FTP request 报文,客户端告知服务器想要下载的文件名称;服务器向客户端发起建立TCP连接,三次握手,可以传输文件,FTP 协议传输文件的内容发送给客户端,客户端接收之后,FTP传输文件过程结束;服务器发起TCP关闭,四次握手过程。

    文件下载过程被动方式(PASV:FTP 登录过程是一样的,在被动模式下,是客户端向服务器发起TCP连接,首先,客户端FTP request 报文,告知服务器现在是被动模式传输数据,服务器收到之后,发出FTP response 报文,告知客户端可以连接到的IP地址和相应的客户端要打开的端口号,FTP request 报文,客户端告知服务器要下载的文件,此时,客户端发起TCP连接,三次握手过程,连接建立之后,服务器向客户端发送文件的具体内容,以明文发送,抓包可以看到。文件内容传输完毕之后,客户端发起TCP关闭,四次握手。

    cmd下如何登陆FTP

    FTP+FTP服务器IP可以登录到对应的FTP服务器,输入相应的用户名和密码(公司用3CD软件作为FTP服务器)。

    常用命令:

    Ls显示服务器的文件名

    Get+文件名:下载相应的文件

    Put+文件名:上传相应的文件

    Dir:显示文件详细信息

    Bye:退出FTP

    Quote pasv:进入被动模式,即本应该在传输数据过程中,客户端先向服务器发起连接,但是通过抓包可以看到,实际上还是处于主动模式。

    Cd ..  退出cmd下的目录

     

     

     

     

     

     

     

     

     

     

     

    抓包过程

    登录过程:客户端IP:192.168.1.3   服务器IP:192.200.201.8

    在客户端和服务器建立FTP连接之前,先建立TCP连接,三次握手(由客户端发起),控制端口为21;建立连接之后,FTP服务器发送其自身的版本号信息(231号包);FTP客户端用test用户名登录(261号包);FTP服务器通过用户名验证,并向客户端要登录密码(262包);客户端发送用户密码,以明文显示123456(271报文);服务器回复客户端登录成功(272报文)。整个客户端登录服务器过程完成。

    下载文件过程(主动方式,服务器向客户端主动发起连接):

    客户端请求以IP192.168.1.3,端口为255*256+202=65482(协商的数据传输所用的FTP端口号)登录服务器的数据端口(8报文);服务器给客户端回复同意(9报文);客户端发给服务器想要下载的文件名为 2.txt(10端口);服务器同意给客户端传输要求的文件(11报文);12 13  14  报文又是一次TCP连接,但这次是由服务器发起,且其端口号为20;16  17  18 为FTP传输数据过程,数据过大,分片传输,分片大小取决于链路协商的MTU值。

    文件传输完之后,对应的是TCP四次挥手断开连接的过程(19  20 21 22 )对应TCP的端口号为20,数据连接FTP的端口号是之前协商的65482;服务器回应客户端文件传输结束(21报文)。

    TFTP

    TFTP(Trivial File Transfer Protocol,简单文件传输协议)用于在TFTP服务器和TFTP客户端之间传输文件。它基于UDP协议,使用UDP端口建立连接、收/发数据报文。与基于TCP的FTP协议比较,TFTP不需要认证,没有复杂的报文交互,部署简单,适用于客户端和服务器均很可靠的网络环境。

    目前,设备只能作为TFTP客户端,不支持作为TFTP服务器。

    TFTP组网示意图

     

     

    当G2作为DHCP客户端时,G2和DHCP服务器的MTU分别为1500  576时,通过FTP抓包,看两端协商的MTU:

     

     

     

     

     

     

     

     

    G2和DHCP服务器的MTU分别为800  1500时,通过FTP抓包,看两端协商的MTU[qK1] :

     


     [qK1]为什么协商的不是以G2是值作为链路的MTU;看length,还是看传输的比特数??

    转载请注明原文地址: https://ju.6miu.com/read-17883.html

    最新回复(0)