IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 文件传输协议:FTP和TFTP -> 正文阅读

[网络协议]文件传输协议:FTP和TFTP

一、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.被动模式

  1. 被动模式时,两个连接都由客户端发起
  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字节的文件块作为文件结束标志

  • 读请求报文包含需下载的文件名信息文件传输模式
  • 读请求和写请求稍微有点不同

在这里插入图述ad

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:51:11  更:2021-07-13 17:53:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 14:00:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计