一、FTP协议
1.FTP协议介绍
(1)采用客户机/服务器设计模式
(2)进行文件传输时,需要在客户机和服务器建立两个TCP连接: FTP控制连接:负责两机间交互FTP控制命令与命令执行得应答信息,连接时一直保持打开 FTP数据连接进行文件传输,仅在需要传数据时才打开,TCP端口号20
(3)FTP服务器启动后,FTP服务打开TCP端口21作为侦听窗口,客户端随机选择一个TCP端口作为控制连接的源端口,主动发起FTP服务器端口21的TCP连接
(4)FTP传输模式(4种: ASCII模式: 转换成ASCII码,适用于传输文本文件 二进制模式: 按比特流方式传输,适用于传输程序文件 EBCDIC模式: 要求两端都是EBCDIC系统 本地文件模式:
2.FTP数据传输模式
分为:主动模式和被动模式
1.主动模式 (1)建立控制通道TCP连接:三次握手
重要的是FTP客户端用随机端口作为源端口向FTP服务器TCP端口21发送报文
(2)主动方式参数传递:
PORT命令:(A1,A2,A3,A4,P1,P2) A1-4表示ip地址,P1和P2表示端口号,临时端口号=256×P1+P2 FTP客户端发送PORT命令,包含自己的ip地址和端口号
(3)建立数据通道TCP连接:三次握手、服务器先发报文 (4)数据传输:
FTP服务器用的端口号为TCP端口20 传输完毕后又发送数据一方发送FIN报文,关闭数据连接
但防火墙不允许外部对内部的随机端口进行访问
2.被动模式
- 被动模式时,两个连接都由客户端发起
- FTP被动建立过程
(1)建立控制通道TCP连接 (2)被动方式参数传递
首先客户端发送PASV命令,告诉服务器进入被动模式,服务器对客户端的PASV应答,包含IP地址和端口号
(3)建立数据通道TCP连接:客户端先发报文 (4)数据传输
二、TFTP协议
1.TFTP协议介绍
- 客户端/服务器
- 承载在UDP上
- TFTP服务器用端口69
- 两种传输模式:netascii :ASCII模式和octet :二进制文件模式
2.TFTP协议报文
5种协议数据报文:
- 读请求报文:操作码为1
- 写请求报文:操作为2
- 数据报文:操作码为3
- 确认报文:操作码为4
- 错误报文:操作码为5
3.TFTP文件传输过程(重发机制
- 传输时将文件当初多个连续的文件块组成,每一个TFTP数据报文种包含一个文件块,对应一个文件块编号
- 客户端每次发出去之后都要接收到确认报文,规定时间内等不到则重传;接收端没收到下一个报文则重传上一个报文的确认报文
- 文件块大小固定为512字节
1.若文件块大小为512整数倍则最后要发送一个不含数据的数据报,表示发送完毕 2.若不是整数倍则最后一个小于512字节的文件块作为文件结束标志
- 读请求报文包含需下载的文件名信息和文件传输模式
- 读请求和写请求稍微有点不同
|