TCP/IP FTP/TFTP

引言

从一台计算机向另一台计算机传送文件是在连网或互联网环境中最常见的任务。而FTP和TFTP就是这样的协议。

关于文件传输协议FTP?

端口21
使用服务TCP

 

【FTP模型】

FTP连接?

1.控制连接
a.服务器在熟知端口21发出被动打开命令,等待客户。
b.客户使用临时端口发出主动打开命令。
2.数据连接
数据连接使用服务器端的熟知端口20。
a.客户使用一个临时端口发出被动打开。
b.客户使用PORT命令把这个端口号发送给服务器。
c.服务器收到这个端口号,并使用熟知端口20和临时端口号发出主动打开。

FTP通信?

两台计算机可以使用不同的操作系统、不同的字符集、不同的文件结构以及不同的文件格式。FTP必须使这种异构性得到兼容。
FTP使用了两种解决问题的方法,一种用于控制连接,一种用于数据连接。
1.在控制连接上的通信
它使用NVT字符集


【图示】
2.在数据连接上的通信
异构性问题可以通过文件类型、数据结构以及传输方式三个通信属性来解决。
文件类型(ASCLL文件、EBCDIC文件、图像文件,非打印,TELNET)
数据结构
传输方式(流方式、块方式、压缩方式)

【图示】

FTP命令处理?

接入命令(USER、PASS,ACCT,REIN,QUIT,ABOR)
文件管理命令(CWD,CDUP,DELE,LIST,PWD等等)
数据格式化命令(TYPE,STRU,MODE)
端口定义命令(PORT,PASV)
文件传送命令
杂项命令(HELP、SYST)
响应
每一个FTP命令至少产生一个响应,由三位数字的数以及跟随后面的文本。 

FTP文件传送?

从服务器把文件复制给客户,这称为读取文件。
从客户把文件复制到服务器称为存储文件。
从服务器向客户发送目录列表或文件名。是在LIST命令的监督下完成的。

【图例控制连接与数据连接】

简单文件传送协议(TFTP)?

有时候我们只需要复制一个文件而不需要FTP协议的全部功能。简单文件传送协议应运而生。
TFTP端口69
使用服务UDP

TFTP的报文?

 共有五种类型,RRQ,WRQ,DATA,ACK和ERROR。


1.RRQ,读请求报文
2.WRQ,写请求
3.DATA,数据报文
4.ACK,确认报文
5.ERROR,错误报文
差错号
0    未定义
1    文件未找到
2    存取被破坏
3    磁盘满
4    非法操作
5    未知端口
6    文件已存在
7    无此用户

TFTP连接?

 TFTP使用UDP服务。UDP不提供连接建立和终止,所以TFTP自己建立连接。

TFTP数据传送?

UDP没有流量控制和差错控制机制。TFTP必须创建流量控制和差错控制机制,以便传送由连续数据块构成的文件。
1.流量控制
TFTP使用DATA报文发送数据块,并等待ACK报文。若在超时之前发送端就收到了确认,它就发送下一个块。
读取文件,发送RPQ报文。存储文件发送WRQ报文。

2.差错控制
对称的,发送端和接收端都使用超时。

UDP端口?

【UDP通信过程】

TFTP案例?

客户打算读取名叫file1的2000字节的文件的内容。客户发送RRQ报文。服务器发送第一个报文,携带第一个512字节,它原封不动地被接收和确认了。
携带第二个512字节的数据块丢失了。超时后,服务器重新传送这个数据块,被收到了。
第三个512收到了,但确认丢失了。超时后,接收端重新确认。携带剩下464字节的最后一个数据块收到了,但受到损伤,因此客户简单地把它丢弃。超时后,服务器重新传送。
连接终止。


【图解】
tips:通过这个流程,在大脑中过了一遍,更加清晰了它的具体过程。

原文地址:https://www.cnblogs.com/jiqing9006/p/3142626.html