华为数通笔记-文件传输协议FTP

FTP和TFTP是早期互联网中用于文件传输的两种协议。FTP采用C/S架构,支持ASCII和Binary两种传输模式,适用于不同类型的文件。FTP的主动模式和被动模式分别在不同网络环境中有不同的优缺点。TFTP则更简洁,基于UDP,适用于小文件传输,具有五种报文格式。了解这两种协议有助于理解网络中的文件传输机制。
摘要由CSDN通过智能技术生成

文件传输协议

主机之间传输文件是IP网络的一个重要功能,如今人们可以方便地使用网页、邮箱进行文件传输。

然而在互联网早期,WebWorld Wide Web,万维网)还未出现,操作系统使用命令行的时代,用户使用命令行工具进行文件传输。其中最通用的方式就是使用FTPFile Transfer Protocol,文件传输协议)以及TFTPTrivial File Transfer Protocol,简单文件传输协议)。

 

FTP基本概念

FTP采用典型的C/S架构(即服务器端与客户端模型),客户端与服务器端建立TCP连接之后即可实现文件的上传、下载。

针对传输的文件类型不同,FTP可以采用不同的传输模式:

  • ASCII模式传输文本文件(TXTLOGCFG )时会对文本内容进行编码方式转换,提高传输效率。当传输网络设备的配置文件、日志文件时推荐使用该模式。
  • Binary(二进制)模式:非文本文件(ccBINEXEPNG,如图片、可执行程序等,以二进制直接传输原始文件内容。当传输网络设备的版本文件时推荐使用该模式。

FTP传输数据时支持两种传输模式:ASCII模式和Binary模式。

ASCII模式用于传输文本文件。发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。二进制模式常用于发送图片文件和程序文件,发送端在发送这些文件时无需转换格式即可传输。

cc:VRP版本文件。

 

FTP传输过程 - 主动模式

主动模式工作原理如下:

客户端随机生成源端口N(一般大于1024)访问FTP服务器的21端口,完成TCP的3次握手,客户端向服务器发送PORT消息并携带(X,X,X,X,p1,p2),其中x,x,x,x为客户端IP地址,P1,P2是客户端产生的2个随机正整数。

当需要传输数据时,FTP服务器端从端口20向FTP客户端的端口P发送连接请求,(P=p1*256+p2),完成数据通道TCP的3次握手,建立数据通道。

FTP传输过程 - 被动模式

客户端随机生成源端口N访问FTP服务器的21端口,完成TCP的3次握手后,客户端给服务器端发送PASV消息,告知服务器处于被动模式,服务器回应Entering Passive Mode消息并携带(X,X,X,X,p1,p2).其中X,X,X,X为服务器自身的IP地址,P1,P2为服务器产生的2个随机正整数。当需要传输数据时,客户端使用N+1做为源端口,访问服务器的p1*256+p2端口,完成数据通道的TCP的3次握手,建立数据通道。该模式下,2个通道均由客户机发起。

主动模式和被动模式建立数据连接方式完全不同,在实际使用中各有利弊:

  • 使用主动模式传输数据时,如果FTP客户端在私有网络中并且FTP客户端和FTP服务器端之间存在NAT设备,那么FTP服务器端收到的PORT报文中携带的端口号、IP地址并不是FTP客户端经过NAT转换之后的地址、端口号,因此服务器端无法向PORT报文中携带的私网地址发起TCP连接(此时,客户端的私网地址在公有网络中路由不可达)
  • 使用被动模式传输数据时,FTP客户端主动向服务器端的一个开放端口发起连接,如果FTP服务器端在防火墙内部区域中,并且没有放通客户端所在区域到服务器端所在区域的主动访问,那么这个连接将无法建立成功,从而导致FTP无法正常传输。

TFTP基础

相较于FTP,TFTP的设计就是以传输小文件为目标,协议实现就简单很多:

  • 使用UDP进行传输(端口号69)
  • 无需认证
  • 只能直接向服务器端请求某个文件或者上传某个文件,无法查看服务器端的文件目录。

上传文件只要客户端收到服务端确认,便上传文件,下载文件时,客户端收到服务器确认,发出确认报文,服务器收到确认报文后,才开始下发文件。

TFTP存在5种报文格式:

  • RRQ:读请求包。
  • WRQ:写请求包。
  • DATA:数据传输报文
  • ACK:应答包,用于确认收到对端的报文。
  • ERROR:差错控制报文。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值