ftp交互和控制命令总结

一、FTP管理:

基于tcp,首先有客户端相服务端的知名端口21发起tcp连接建立ftp控制连接,控制连接在整个会话期间都保持打开,只用来发送连接/传送请求。

这里分为两种模式:

主动模式(PORT)和被动模式(PASV),这两种模式是站在FTP服务器的“角度”来说的,如果设置为主动模式,则需要传输数据时,服务器主动连接客户端,那么客户端就需要有数据监听端口(从port h1,h2,h3,h4,p1,p2命令中获知);如果设置为被动模式,则需要服务器告诉客户端(通过对pasv命令响应告知))自己用于数据传输的监听端口,同时在该端口上监听被动的等待客户端来连接,被动方式通常用于客户端位于nat内网,服务器位于nat外网的场景中以避免被防火墙阻止数据连接的建立。

这里说一下注意点:port命令的参数h1,h2,h3,h4,p1,p2 前面4个h分别对应客户端ip地址的4个十进制数字,p1和p2分别表示端口的高8位和低8位,因次端口计算为p1*256+p2。

二、FTP数据传输:

在数据连接建立好后则开始传输数据,数据传输按方向分为上传下载:

下载时客户端命令行使用get或mget等命令(对应内部协议命令为RETR filename),向服务器请求下载filename,服务器打开该文件读出数据以某种传输方式向服务器传送数据,客户端收数据直到数据传输完。一旦数据传输完成则数据连接关闭。

上载文件时客户端命令行使用put或mput等命令(对应内部协议命令为STOR filename),向服务器请求上传filename,客户端打开文件读取数据发送给服务端,服务端创建文件并写入数据。完成后数据连接关闭。

  FTP协议规定了控制协议传送与存储的多种选择,在以下4个方面必须做出一个选择。

  • 文件类型:ASCII码文件(默认的)/ 图像文件类型(二进制的)/ 本地文件类型(用于在具有不同字节大小主机间传送二进制数据)
  • 格式控制:该选项针对ASCII类型文件适用,非打印(默认选择,文件中不包含垂直格式信息)/ 远程登录格式控制
  • 结构:文件结构(默认选择,文件被认为是一个连续的字节流,不存在内部的文件结构)/ 记录结构(用于文本文件)
  • 传输方式:流方式(模式选择,文件以字节流方式传输,对于文件结构,发方在文件尾提示关闭数据连接,对于记录结构,有专用的两字节序列码记录结束和文件结束)/ 块方式(文件以一系列块来传送,每块前面有一个或多个首部字节)/ 压缩方式

三、FTP内部协议控制命令和应答编码/消息

  命令和应答在客户和服务器的控制连接上以 NVT ASCII码形式传送。这就要求在每行结尾都要返回C R、 L F对(也就是每个命令或每个应答)。这些命令都是3或4个字节的大写ASCII字符,其中一些带选项参数。从客户向服务器发送的FTP命令超过30种。下图是比较常用的几种命令:

  应答都是A S C I I码形式的3位数字,并跟有报文选项。其原因是软件系统需要根据数字代码来决定如何应答,而选项串是面向人工处理的。由于客户通常都要输出数字应答和报文串,一个可交互的用户可以通过阅读报文串(而不必记忆所有数字回答代码的含义)来确定应答的含义。

原文地址:https://www.cnblogs.com/dingbj/p/ftp.html

时间: 2024-07-30 13:21:44

ftp交互和控制命令总结的相关文章

windows系统内置ftp客户端和相关命令

目的:学会使用windows系统内置ftp客户端和相关命令. 环境:windows 7 情景:多个设备需要备份它们的配置文件,设置为明天自动备份,以FTP服务下载到服务器,并以日期保存. 这里需要使用FTP服务,这个服务一般系统都自带有,可以使用命令模式,或写成批处理脚本运行. ftp命令支持交互和执行配置操作: 有如下参数: -v              禁止显示远程服务器响应. -n              禁止在初始连接时自动登录. -i              关闭多文件传输过程中

64,管道符,控制命令,变量

管道符 注:管道符 就是 把上一个命令 的结果 丢给下一个命令来执行显示出来如下: 案例一 [[email protected] /]# cat 1.txt | wc -l19[[email protected] /]# 案例二 [[email protected] /]# cat 1.txt | grep 1bin:x:1:1:bin:/bin:/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:

Docker基本部署及基本控制命令(理论篇)

Docker基本部署及基本控制命令 Docker概述 ? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,两者之间完全独立. 与虚拟机的比较 特性 容器 虚拟机 启动速度 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于原生 系统支持量 单击支持上千个容器 一般几十个 隔离性 完全屏蔽底层 相对独立 Do

Docker基本控制命令(二)

Docker基本控制命令(二) 资源控制 CPU使用率控制 限制该镜像本次建立的容器最大只能占总资源的10% docker run --cpu-quota 10000 centos 按比例分配 创建两个容器为c1和c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为33.3%和66. 7% docker run -itd --name c1 --cpu-shares 512 centos(镜像名)docker run -itd --name c2 --cpu-shares 1

Docker基本部署及基本控制命令

一.Docker概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,两者之间完全独立. 二.与虚拟机的比较 三.Docker核心概念 镜像(Image): 类似虚拟机镜像 容器(Container): 类似linux系统环境,运行和隔离应用.容器从镜像启动的时候,docker会在镜像的最上一层创建一个可写层,镜像本身是只读

使用expect实现自动交互,shell命令行自动输入

背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的.如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况. 安装expect 安装依赖:yum install tcl -y 安装expect:Centos系统yum install expect -y或Ubuntu系统ap

ftp 交互脚本

expect ftp 交互 yum -y install expect vim ftp_upload.sh #!/usr/bin/expect spawn ftp localhost expect "Name*" send "ftp\n" expect "ftp>*" send "cd pub/other\n" expect "ftp>*" send "put /tmp/123.txt

Matlab绘图基本控制命令

图形的控制与表现 (Figure control and representation) MATLAB提供的用于图形控制的函数和命令:   axis:  人工选择坐标轴尺寸.    clf:清图形窗口. ginput: 利用鼠标的十字准线输入.   hold: 保持图形.    shg:显示图形窗口.subplot: 将图形窗口分成N块子窗口.1.图形窗口(figure window)(1). 图形窗口的创建和选择(Creating and selecting of figure window)

Sass控制命令及函数知识整理

2017-07-07  20:17:17 最底部附结构图(实在是结构图太长了没办法) 2017-06-22  09:11:43 一.Sass的控制命令 [email protected]语句 @if 指令是一个 SassScript,它可以根据条件来处理样式块,如果条件为 true 返回一个样式块,反之 false 返回另一个样式块. 在 Sass 中除了 @if 之,还可以配合 @else if 和 @else 一起使用. 示例::控制一个元素隐藏或显示的代码, 原理:定义一个混合宏,通过 @