精华内容
下载资源
问答
  • 文件传输协议

    千次阅读 2007-07-26 14:55:00
    下载第26章文件传输协议作者:Anne Carasik本章内容包括:• FTP 和T F T P在网络世界中的作用• 使用F T P传输文件• 使用T F T P将文件从一个系统发送到另一个系统是网络功能的重要组成部分。用户可以使用e m a i ...
    下载
    第26章文件传输协议
    作者:Anne Carasik
    本章内容包括:
    • FTP 和T F T P在网络世界中的作用
    • 使用F T P传输文件
    • 使用T F T P
    将文件从一个系统发送到另一个系统是网络功能的重要组成部分。用户可以使用e m a i l完
    成这一任务,但要获得较快的传输速度,则可以使用文件传输协议,它包括文件传输协议
    (File Transfer Protocol,F T P )和普通文件传输协议( Trivial File Transfer Protocol,T F T P )。远
    程拷贝将在第2 8章中讨论。
    26.1 FTP和TFTP在网络世界中的作用
    大多数站点都使用We b在服务器间传送文件,文件传输协议F T P和T F T P已不如过去那么
    流行。然而,并不是所有系统都运行了We b服务器。因此,在文件传输时,仍需要使用F T P和
    T F T P。
    即使安装了We b,将文件传送到服务器也比较困难。许多We b命令不如F T P命令健壮,不
    支持许多开关和功能。
    许多F T P应用仍被广泛使用。这些命令行方式的应用允许用户在没有安装We b服务器的系
    统间传输文件。大多数U N I X和L i n u x系统,均安装了F T P应用。
    因为大多数F T P应用都不基于图形界面(有一些应用包含图形接口),本章使用U N I X系统
    中基于命令行方式的F T P应用程序以便更好地说明F T P协议。
    虽然T F T P不如F T P常见,但本章还是对它进行了一定的阐述。
    26.2 使用FTP传输文件
    F T P是I n t e r n e t和I P网络上传输文件的
    通用方法。在万维网( W W W )出现以前,
    用户使用命令行方式传输文件,最通用的
    应用程序是F T P。虽然,目前大多数用户
    选择使用E m a i l和We b传输文件,以代替命
    令行方式的接口,但是F T P仍然被使用。
    F T P是T C P / I P应用,它工作在O S I模
    型的第七层, T C P模型的第四层上,在
    RFC 959中定义。F T P使用T C P传输而不
    是U D P。F T P位于O S I和T C P模型的应用
    层(见图2 6 - 1 )。图26-1 FTP在OSI和TCP模型中的设置
    应用层
    传输层
    网络层
    物理层
    应用层
    表示层
    会话层
    传输层
    网络层
    数据链路层
    物理层
    T C P模型
    F T P
    F T P
    O S I模型
    起初, F T P是A R PA N E T网络中计算机间的文件传输协议, A R PA N E T是美国国防部组建
    的老网络,于1 9 6 0~1 9 8 0年使用。在那时, F T P的主要功能是在主机间高速可靠地传输文件。
    目前F T P仍然保持其可靠性,即使在今天,它还允许文件远程存取。
    这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行
    We b服务器,需要从远程主机上取得H T M L文件和C G I程序在本机上工作,他需要从远程存储
    站点获取文件(远程站点也需安装We b服务器)。
    当用户完成工作后,可使用F T P将文件传回到We b服务器。采用这种方法,用户无需使用
    Te l n e t登录到远程主机进行工作。
    26.2.1 FTP连接
    当用户建立F T P连接时,将与两个端
    口建立联系:端口2 0和2 1。这两个端口有
    不同的功能—端口2 0是数据端口, 2 1是
    控制端口。
    图2 6 - 2说明F T P客户端是如何与远程服
    务器F T P守护进程建立连接的。
    1. 控制端口
    F T P控制端口用于交换命令信息及对命令的响应信息。其工作过程类似于军官和新兵。军
    官发出命令,新兵迅速响应命令。
    在F T P中,如果用户发送命令如get this file,其响应如下:
    控制端口的命令以P O RT开始,这表示命令通过控制端口2 1而不是数据端口进行传输。命
    令也允许通过设置被动方式( PA S V )发送到数据端口。
    控制连接用于显示数据的状态、所处的模型、传输状态及数据传输总量。控制连接使用
    Te l n e t协议,在RFC 495中定义。
    PA S V命令允许原始F T P连接,它不使用用户熟悉的命令。PA S V连接仅使用一个端口进行
    文件传输(端口2 0 ),而不像其他连接那样使用端口2 0和2 1。
    用户也可以使用相同的命令进行PA S V连接,但是,使用控制命令的“ c o o k e d”连接更加
    安全并且便于管理,因为管理员可以设置用户可以使用的命令。
    2. 数据端口
    数据端口是F T P数据文件发送到F T P服务器( f t p d )时使用的端口。
    注意FTP服务器,ftpd是UNIX系统服务器守护进程,它可能与其他操作系统不同。
    与控制端口不同,控制端口是用户发送命令的端口,数据端口是用户传输文件的端口,
    一般为端口号为2 0。
    与数据端口的连接一般称为被动( p a s s i v e )连接,它有自己的一组命令。所有数据连接均知
    第2 6章文件传输协议使用287
    下载
    图26-2 FTP客户端与FTP服务器建立连接的过程
    端口2 1
    端口2 0
    F T P客户端
    控制端口
    数据端口
    1 0 2 4以上的任
    何端口
    F T P服务器
    道文件的模式、文件类型和文件传输量。用户还可以仅传送文件的一部分,虽然并没有太多
    很实际的应用要求这么做。
    一般情况下,命令通过控制端口发送,但用户也可直接使用被动F T P命令控制数据端口。
    被动F T P命令
    PA S V命令不直接被用户使用,其用户接口为P O RT命令。虽然不是每一台F T P服
    务器均支持被动命令(RFC 11 2 3 ),但大多数服务器都支持RFC 11 2 3。
    用户可以通过t e l n e t到端口2 1调用这些命令:
    然后将会看到:
    接着,所有用户敲入的命令都是被动命令。
    现在,P W D命令将显示用户当前路径:
    如果用户使用‘C D U P’被动F T P命令,将进入到用户当前目录的上一级目录。
    现在可用P W D显示当前路径:
    用户可以看到其他用户的目录。
    在每个用户命令前并未加上P O RT命令,因为命令并未使用控制端口,而是直接访问了数
    据端口。
    26.2.2 使用FTP客户端建立连接
    使用F T P命令打开连接,在F T P命令后加入主机名即可。F T P的语法格式如下:
    ftp [开关] [主机名称]
    表26-1 ftp命令行属性
    属性功能
    - d 启用调试功能
    - i 关闭提示功能
    - n 关闭自动登录
    - v 显示远程服务器响应
    - g 关闭通配符功能
    288使用第七部分使用T C P / I P应用
    下载
    例如,用户需要与f t p . t i g e r l a i r. c o m建立连接,可以敲入如下命令:
    tigerlair:/home/stripes -ftp ftp.example.org
    如果用户需要F T P客户端完成平时不常用的任务,可以使用一些命令属性。表2 6 - 1列出了
    f t p客户方可以使用的命令属性。
    当用户需要使用F T P客户方关闭自动登录功能( F T P客户端自动提示用户名及登录口令),
    并且在多文件传输时不显示提示功能,可用以下命令:
    ftp -i -n ftp.example.org
    当我们不使用任何命令属性时,即使用最初的f t p命令:
    tigerlair:/home/stripes-ftp ftp.example.org
    将获得以下消息:
    由以上消息可以看到,登录到远程节点的缺省用户名为本地帐号名(在本例中为s t r i p e s ),
    如果登录用户名不同,必须敲入正确的用户名:
    注意不要使用e x a m p l e . o rg作为F T P站点。它仅用于示例说明。如果用户需要使用F T P
    客户方而不愿登录到远程站点,可以使用FTP客户端连接本地主机。
    用户将被提示输入口令,确认口令输入正确。口令不在屏幕上显示,甚至敲入时不显示
    星号。
    下面,用户将获得F T P提示符,如下:
    f t p >
    提示符表明用户可以输入命令传输文件,这通常称为命令解释器(command interpreter)。
    1. FTP 命令解释器
    f t p命令解释器使用户可与F T P客户方进行交互,它使用户可以通过命令打开/关闭特定连
    接,传输文件、改变传输文件类型等,而不需要断开F T P。
    表2 6 - 2列出了用户在交互模式下使用F T P时可使用的命令。
    表26-2 交互式模式下的F T P命令
    命令功能
    !<local command> 在本地系统运行命令
    $ < m a c r o > 运行宏
    account [password] 应用其他用户名/口令以获取额外的对远程系统的访问权限
    a s c i i 将文件传输模式设为A S C I I
    append localfile [remotefile] 将本地文件添加到远程文件中(文件在远程计算机中)
    b e l l 文件传输完成后响铃
    第2 6章文件传输协议使用289
    下载
    (续)
    命令功能
    b i n a r y 将文件传输模式设为二进制方式
    bye, exit 退出,结束远程连接
    c a s e 打开c a s e功能
    close, disconnect 关闭远程连接
    cd <directory> 改变远程系统目录名
    cd up 进入父目录
    debug <level> 设置调试级别
    d i r 打印路径名
    delete <filename> 在远程计算机中删除文件
    get <filename> 将文件从远程系统下载到本地系统
    g l o b 在文件传输时使用通配符
    h a s h 每传输1 0 2 4字节打印一个“#”
    h e l p 打印帮助文件
    l c d < d i r e c t o r y > 改变本地系统路径
    l s 打印远程主机目录
    l p w d 打印本地主机工作路径
    macdef <macroname> 定义宏
    mdel <filename (s)> 删除多个宏文件
    mdir <filename (s)> 打印多个文件的路径
    mget <filename (s)> 将多个文件从远程系统下载到本地系统
    mkdir <directory> 在远程计算机上创建路径
    mput <filename (s)> 将多个文件上载到远程计算机
    open <site> 打开到< s i t e >的连接
    p r o m p t 交互式提示
    put <filename> 将文件上载到远程计算机
    p w d 显示当前工作路径
    user [user] [password] 登录到远程计算机系统
    v e r b o s e 激活冗余模式
    通过对上述命令的运用,用户可以使用F T P完成多种功能,为了使用户有一个列形象具体
    的认识,下面一小节将列举一个具体的F T P会话实例。
    2. FTP 会话示例
    并非所有的F T P会话均包含在以下示例之内,示例仅对用户使用F T P经常碰到的情况加以
    说明。首先,用户需要与远程F T P站点建立连接。
    至此,用户可以访问远程节点。当需要查看远程节点的文件时,有两种列出文件的方法,
    290使用第七部分使用T C P / I P应用
    下载
    l s和d i r。注意F T P列的是U N I X系统。下面是l s命令的输出:
    d i r命令的输出如下:
    d i r命令不仅显示出l s命令列举出的文件的更详细信息,而且它还列出了U N I X的隐含文件
    (以.开头的文件)。
    注意在U N I X系统中,l s和d i r均可列举文件,但d i r可显示文件的信息更为详细,包括
    最近修改时间、文件所有者、权限和大小等。如果用户F T P登录到N T或Wi n d o w s系统,
    ls将不能工作。仅dir可用来列举文件,但它不能列出文件的详细信息。
    列出系统当前目录中的文件后,可以从远程系统获取文件并将它存放入本地系统。用户
    第2 6章文件传输协议使用291
    下载
    在下载文件前,可以先检查本地工作路径,以确定文件被下载在正确的位置。
    如果用户想要将文件下载到H o m e目录,则不需做任何修改就可下载文件。
    从远程系统下载到本地计算机的文件名将不会发生改变,除非用户指定新的文件名。要
    修改文件名,需使用以下语法格式:
    get 远程文件名用户指定的本地文件名
    因此,当用户需要下载另一个名为n o t e s的文件时,需将文件更名。
    在本地系统中,用户已有一个文件名为n o t e s,因此,用户必须修改本地文件名;或下载
    时修改远地文件名。本例中,我们将第二个下载的文件更名为n o t e s 2。用户可从F T P输出中看
    到下载文件的本地文件名和远程文件名。
    上述两个n o t e s文件均为文本文件。用户可以看到F T P使用A S C I I方式传输文本文件。它确
    保传输的文件为文本文件。如果需要传输二进制文件,需要修改文件类型:
    类型I表示二进制,类型A表示A S C I I。二进制文件包括可执行文件、压缩文件和库文件。
    基本上,二进制文件是不可读文件。
    用户可将文件类型设为二进制文件类型,以传输二进制文件。
    注意, F T P会显示文件传输方式。如果用户需要将传输类型设为A S C I I方式,只需敲入
    a s c i i即可。
    292使用第七部分使用T C P / I P应用
    下载
    当用户下载单个文件时,采用上述方法,当用户需要一次下载多个文件呢?
    例如,用户需要下载以“ s”开头的所有文件,可能会尝试使用s *,但F T P将显示失败信
    息。
    当用户需要F T P识别通配符时,需要使用m g e t命令下载多个文件。
    当用户使用m g e t或m p u t下载或上载多个文件时,缺省情况下, F T P将询问用户文件是否
    需要下载或上载。当用户需要下载或上载时,敲入“ y”。
    每下载一个文件都需敲入“ y”,是一件十分枯燥的工作,尤其当下大量文件时。为了除
    去提示信息,可敲入p r o m p t。
    除去提示信息后,用户敲入相同的命令,将不需每下载一个文件均需确认。因此,文件
    第2 6章文件传输协议使用293
    下载
    传输速度快得多。
    这比使用提示模式快捷得多。
    警告如果用户打算覆盖一个文件(在上述例子中,使用相同文件),F T P将不会在覆盖
    之前收到警告信息。
    现在,我们已经示例了如何下载文件,下面举例说明如何将文件上载到远程服务器。上
    载文件需要使用命令p u t。
    它将本地文件传送到远程服务器。如果用户需要一次传输多个文件,可使用m p u t命令。
    294使用第七部分使用T C P / I P应用
    下载
    *
    与m g e t类似,用户首先需要关闭提示功能,以避免每传输一个文件都要敲入“ Y”或“N”
    确认。
    注意在与传输文件相关的命令(get、put或delete)前加上“m”可对多个文件进行操作。
    如果用户需要删除远程系统上的文件(用户有权限完成此操作),用户可以非常简便地完成
    删除文件的任务。d e l e t e命令专门用于删除文件,它还可简写为d e l。
    如果用户需要一次删除多个文件,可使用m d e l。同时, p r o m p t命令对于m d e l的作用与
    m g e t或m p u t相同。
    警告与覆盖文件类似,用户在远程系统删除文件时也不会得到警告信息。
    用户不仅可以在本地系统与远程系统间进行文件复制、删除操作,而且也可以创建和删
    除目录。m k d i r命令用于创建一个目录。
    用户也可以在不同的目录间移动。与U N I X和Wi n d o w s命令行(其命令解释器称为D O S )相
    似,可以使用c d改变当前目径。
    如果用户不知道当前路径或需要查看当前所处的路径,可以使用p w d命令。
    如果用户需要对大文件进行传输,可能需要使能h a s h,它将显示F T P的工作状态,即使
    F T P空闲几分钟甚至数小时。激活这一功能,仅需敲入h a s h。
    第2 6章文件传输协议使用295
    下载
    如果用户在h a s h模式下p u t或g e t一个文件,可以看到文件传输的速度。
    现在,我们已经完成了对一个站点的操作,如果不想退出F T P而只想关闭连接,可以敲入
    c l o s e命令,它仅断开与远程系统的连接但仍处在F T P命令解释器中。
    注意我们仍有ftp>提示符,当需要打开到另外一主机的连接时,使用open命令:
    现在,已经处在另外一个系统中。用户可以使用相同的命令,但得到的信息将与上一个
    系统不同。
    完成了对F T P的操作后,可以敲入q u i t或b y e命令。
    26.2.3 FTP安全
    虽然F T P可以对文件进行访问,但没有一个用户会允许别人在自己的系统制造混乱。F T P
    可以实现基本的访问控制,但它不能解决F T P基本的安全问题。
    F T P一直使用明文认证。这意味着用户的口令未经加密就在网上传输,这是一个很严重的
    安全问题。不恰当的匿名F T P服务器的配置将使用户进入他们不能访问的目录, F T P服务需要
    两个端口而不像大多数T C P / I P网络服务仅需一个端口也是F T P的一个安全隐患。
    1. /etc/ftpusers文件
    如果用户需要控制F T P服务器上客户对特定帐号的访问权限,可以使用/ e t c / f t p u s e r s文件。
    文件中列出了不能使用f t p的用户名。而且它不限制用户对其他网络应用如r s h、t e l n e t和S e c u r e
    shell (SSH)的访问。
    296使用第七部分使用T C P / I P应用
    下载
    一个合理的/ e t c / f t p u s e r s文件如下:
    它限制管理员帐号及相关帐号不能使用F T P。
    2. 使用. n e t r c
    . n e t r c文件用于F T P客户自动登录到远程主机,该文件位于用户根目录,并且可在不需要
    键入用户名和口令的情况下进入不同的系统。该文件的权限为7 0 0 (除了所有者外,没有人可
    读/写该文件)。
    . n e t r c文件的格式如下:
    machine <机器名> login<用户名> password<用户口令>
    如果用户要设置到e x a m p l e . o rg的访问,文件如下:
    . n e t r c通常用于登录帐号,因此它可以很安全地用于匿名F T P站点,它仅需要用户的电子
    邮件地址,而无需用户口令。同时,匿名F T P站点仅向用户提供公用信息——即无需口令就可
    获取的信息。
    警告在当今社会,设置. n e t r c文件不是一个好主意。它包含可被任何人获取的口令,
    因此,帐号可被轻易地破解。
    3. 使用不同的f t p客户端软件
    前述的案例中,我们使用的是操作系统如U N I X、Wi n d o w s或V M S自带的标准F T P客户端
    软件。此外,因用户使用的操作系统不同, F T P客户端软件的功能也略有差异。下面简单介绍
    这些差异。
    图26-3 激活的xftp会话
    第2 6章文件传输协议使用297
    下载
    4. UNIX
    在U N I X系统中,有两个不同的F T P客户端软件可以提供比标准F T P客户软件更复杂的功
    能:n c f t p和x f t p (见图2 6 - 3 )。
    n c f t p自动登录匿名f t p,因此,用户无需敲入口令(可能是用户邮件地址)或不必担心保
    存. n e t r c文件。同时,它也提供一些基于文本的图形界面,以显示文件传输速度及其他命令行
    编辑功能。n c f t p可从h t t p : / / w w w.ncftp.com 中获得。
    x f t p软件提供图形化用户接口,它使用户无需与命令解释器直接接触即可完成F T P传输,
    图2 6 - 3显示x f t p窗口。x f t p软件可从h t t p : / / w w w.llnl.gov/ia/xdir_xftp/xftp.html 中获得。
    5. Wi n d o w s和M a c i n t o s h客户端软件
    有大量F T P软件可用于Wi n o d w s和M a c i n t o s h平台,其中大部分都有与x f t p类似的图形界面,
    它允许用户在远程系统和本地计算机间拖放文件。
    同时,也有一些F T P客户端软件支持命令行方式。其他的客户端软件将激活浏览器,基于
    浏览器的F T P仅能提供部分F T P功能。
    表2 6 - 3列出了部分可用于Wi n d o w s和M a c i n t o s h的F T P客户端软件。
    表26-3 支持Wi n d o w s和M a c i n t o s h平台的F T P客户端软件
    F T P客户端站点
    WS-FTP Pro h t t p : / / w w w. i p s w i t c h . c o m
    f e t c h h t t p : / / w w w. d a r t m o u t h . e d u / p a g e s / s o f t d e v / f e t c h . h t m l
    c u t e F T P h t t p : / / w w w. c u t e f t p . c o m
    F T P P r o 2 0 0 0 h t t p : / / w w w. f t p p r o . c o m
    E m a i l
    无论相信与否,用户可以通过电子邮件使用F T P客户端。F T P m a i l可使得仅能通过电子邮
    件访问互联网的用户使用F T P。这种方法可使用户不需直接使用F T P而只需通过e m a i l就可从
    F T P站点获取文件。
    互联网上的某些服务器为用户提供F T P m a i l服务。这些服务器提供F T P m a i l帐号,用户可
    将包含F T P请求的消息发送到F T P m a i l帐号( F T P请求使用与F T P命令解释器类似的命令)。
    F T P会话通过发送的F T P请求进行,结果发送到用户电子邮件地址。如果F T P m a i l连接
    F T P服务器失败,返回给用户的邮件将解释失败的原因。
    许多站点提供F T P m a i l服务,任何可以使用电子邮件的用户均可使用这些服务。建议大家
    最好使用本国站点的服务。
    表2 6 - 4列出了部分F T P m a i l服务器及其所处的国家。
    表26-4 FTPmail服务器
    298使用第七部分使用T C P / I P应用
    下载
    服务器国家
    ftpmail@grasp.insalyon.fr 法国
    ftpmail@doc.ic.ac.uk 英国
    f t p m a i l @ d e c w r 1 . d e c . c o m 美国
    26.2.4 FTP服务器及守护进程
    理解F T P客户端的工作过程,将有助于用户理解F T P服务器及其工作过程。因为F T P由服
    务器方控制,所以用户需要了解F T P服务器基本工作流程。
    1. UNIX和L i n u x
    在U N I X和L i n u x系统中, F T P守护进程i n . f t p d通常由I n t e r n e t超级守护进程i n e t d运行。
    i n e t d监听连接,它可以更安全地管理连接。i n e t d更详细的信息见3 5章。
    因此,在/ e t c / i n e t d . c o n f文件中,包含如下行:
    f t p stream tcp nowait root / u s r / s b i n / i n . f t p d . i n . f t p d
    这一行启动i n . f t p d,用户可以添加一些属性如- d调试、- l记录日志及- t修改活跃时间域等。
    2. Windows NT
    同时也存在一些可运行于N T、Windows 95和Windows 98的F T P服务器,包括FTP Servu
    (可从h t t p : / / w w w. f t p s e r v - u . c o m下载)和War FTP daemon(可从h t t p : / / w w w. j g a a . c o m / t f t p d . h t m下
    载)。
    26.2.5 匿名FTP访问
    即使当前We b站点蓬勃发展,匿名F T P站点仍然是I n t e r n e t的重要组成部分。在众多的匿名
    F T P站点上,我们可以获取各种各样的信息、文件和软件。其中最著名的匿名F T P站点之一为
    w u a r c h i v e . w u s t l . e d u。
    大量匿名F T P站点对所有用户公开文件访问权,它们旨在发布软件和信息,因而免去了需
    要用户名和口令所带来的不便。
    1. 匿名F T P服务器
    匿名F T P服务器是提供文件访问的公用站点。在We b出现前,g o p h e r (菜单驱动的互联网应
    用)和F T P是人们从互联网获取信息和文件的主要手段。
    因此,匿名F T P日益流行,至今仍有许多匿名F T P站点运行。匿名F T P站点需要单独的环
    境和硬盘且完全与系统文件分离。我们通常称之为c h r o o t e d环境。
    例如, U N I X系统有/ u s r和/ e t c目录。U N I X系统中的匿名F T P服务器也包含这两个目录。
    并且,存储于U N I X系统/ e t c目录下的文件与匿名F T P服务器中/ e t c下的文件不能相同。
    系统文件不能存贮在匿名F T P目录下。F T P的运行环境一定要与系统的运行环境彻底分
    开。
    2. 匿名F T P客户端
    为了便于使用,匿名F T P允许用户使用“a n o n y m o u s”或f t p作为用户名,邮件地址作为口
    令(例如:stripes @ tigerlair. c o m )。
    匿名F T P也控制用户的访问权限。通常用户仅能访问公用目录下的文件,而不能访问系统
    及配置文件,这可使系统更加安全。
    以下示例说明一个匿名F T P的会话过程:
    第2 6章文件传输协议使用299
    下载
    因为We b的日益普及,许多匿名F T P站点可通过We b浏览器直接访问而无需F T P客户软件。
    提示用户在敲入口令时,不需要输入整个邮件地址,仅需要键入:
    用户名@
    例如,用户可敲入:
    stripes @
    代替:
    stripes @ tigerlair. c o m
    26.3 使用TFTP
    在网络发展早期,T F T P是局域网传输文件的通用方式。T F T P是普通文件传输协议,它也
    用于文件传输,缺省端口为6 9。
    T F T P不需要任何形式的用户登录认证, T F T P有共享安全问题。目前,它常用于工作站向
    路由器发送路由器访问列表及无盘工作站的启动中。
    警告除非特别需要,否则不要启动T F T P服务,因为如果用户疏忽,它可带来许多安
    全问题,包括允许客户访问口令文件。
    T F T P目前已开发出第2版,在RFC 1350中定义。与F T P不同, F T P使用T C P而T F T P使用
    U D P。因此,T F T P简单并且紧凑。与F T P类似,T F T P也由i n e t d启动。
    每一个客户和服务器间的报文交换均开始于客户向服务器发送的文件读/写请求。
    300使用第七部分使用T C P / I P应用
    下载
    文件以o c t e t (八进制)或n e t a s c i i方式传输。在n e t a s c i i方式下,数据为以返回符加上行结束
    符( C R / L F )结尾的A S C I I码文本。
    26.3.1 FTP与TFTP的区别
    T F T P的功能比F T P少。例如,T F T P不能使用通配符,不能创建和删除目录,不能删除文
    件。同时,它也不提供用户名与口令认证,其访问由其他手段限制(TCP Wr a p p e r等)。
    因为T F T P的简洁性,所以路由器使用T F T P传输访问列表及路由配置信息。因为路由器无
    需登录(除非用户运行TA C A C S +或R A D I U S实施访问控制),在已有文本上进行编辑远比一行
    行敲入简单。
    26.3.2 TFTP命令
    如果用户熟悉F T P,T F T P将不难理解。T F T P命令较少,表2 6 - 5中列出了所有命令。其中
    大部分与F T P类似。
    表26-5 TFTP命令
    命令描述
    a s c i i 将传输模式设为n e t a s c i i (文本)
    b i n a r y 将传输模式设为o c t e t (非文本)
    c o n n e c t 连接远程T F T P
    m o d e 设置文件传输模式
    p u t 发送文件到远程站点
    g e t 从远程站点下载文件
    q u i t 退出T F T P
    rexmt <value> 设置每个报文的超时值
    s t a t u s 显示服务器的状态
    timeout <seconds> 设置传输超时(秒)
    t r a c e 打开报文路径
    v e r b o s e 激活冗余模式
    26.4 小结
    文件传输对于在T C P / I P网络不同系统间传输文件至关重要。T C P / I P使用文件传输协议
    ( F T P )和普通文件传输协议( T F T P )作为T C P / I P网络发送文件的重要方式。
    使用T C P传输文件的F T P需要打开两个端口:端口2 0为数据端口,端口2 1为控制端口。数
    据端口传输文件,控制端口用于传输命令和消息。
    T F T P使用U D P传输文件,它仅需要端口6 9。T F T P远比F T P简单,其功能也较F T P少。
    T F T P通常用于路由器管理访问列表和配置信息。它也用于无盘工作站的启动。
    在下一章,我们将讨论Te l n e t,学习另一种类型的交互式T C P / I P网络服务。
    第2 6章文件传输协议使用301
    下载 
    展开全文
  • FTP文件传输协议详解

    2019-10-15 20:21:17
    FTP文件传输协议 FTP连接及传输模式 控制连接:TCP21,用于发送FTP命令信息 数据连接:TCP20,用于上传,下载数据 数据连接的建立类型 主动模式:服务端从20端口主动向客户端发起连接 被动模式...
    • FTP文件传输协议

      • FTP连接及传输模式

        • 控制连接:TCP21,用于发送FTP命令信息
        • 数据连接:TCP20,用于上传,下载数据
        • 数据连接的建立类型
          • 主动模式:服务端从20端口主动向客户端发起连接
          • 被动模式:服务端在指定范围内某个端口被动等待客户端连接
      • FTP传输模式

        • 文本模式:ASCLL模式,以文本序列传输数据
        • 二进制 :Binary模式,以二进制序列传输数据(常用)
      • FTP用户的类型

        • 匿名用户:anonymous 或 ftp
        • 本地用户:账号名称、密码等信息保存在passwd、shadow文件中
        • 虚拟用户:使用独立的账户/密码数据文件
      • 常见的FTP服务器程序

        • IIS、Serv-U
        • wu-ftpd、Proftpd
        • vsftpd(Very Secure FTP Daemon)rpm安装自动添加系统服务
      • 常见的FTP客户端程序

        • ftp命令
        • gftp、kuftp
        • CuteFTP、FlashFXP、LeapFTP、Filezilla
    • Vsftpd的配置文件

      • 官方站点:http://vsftpd.beasts.org/
      • 主程序:/usr/sbin/vsftpd
      • 服务名:vsftpd
      • 用户控制列表文件
        • /etc/vsftpd/ftpusers //禁止登录用户列表
        • /etc/vsftpd/user_list //根据主配置文件设置是否允许登陆
      • 主配置文件
        • /etc/vsftpd/vsftpd.conf
      • 宿主目录
        • /var/ftp
      • 登录ftp默认所在目录
        • /var/ftp/pub
      • umask

        • umask是在linux中常见的一个东西,它其实是一个掩码。当然,也有umask这样一个命令,它是对用户建立的文件的默认属性的定义。该 定义为:假设umask为022,则对于一个文件夹的话,它的默认属性为 777-022=755,这也就是我们平时建立文件夹的权限。而对于一般的文件的话,则是用 666-022=644.
        • umask是unix操作系统的概念,umask决定目录和文件被创建时得到的初始权限
        • umask = 022 时,新建的目录 权限是755,文件的权限是 644
        • umask = 077 时,新建的目录 权限是700,文件的权限时 600
        • vsftpd的local_umask和anon_umask借鉴了它
        • 默认情况下vsftp上传之后文件的权限是600,目录权限是700
    展开全文
  • 网络传输协议概念和HTTP协议

    千次阅读 2016-12-24 10:28:29
    网络传输协议概念网络传输协议或简称为传送协议,是指计算机通信或网络设备的共同语言。现在最普及的计算机通信为网络通信,所以“传送协议”一般都指计算机通信的传送协议,如:TCP/IP、NetBEUI、DHCP、FTP、HTTP等...

    网络传输协议概念

    网络传输协议或简称为传送协议,是指计算机通信或网络设备的共同语言。现在最普及的计算机通信为网络通信,所以“传送协议”一般都指计算机通信的传送协议,如:TCP/IP、NetBEUI、DHCP、FTP、HTTP等。然而,传送协议也存在于计算机的其他形式通信,例如:面向对象编程里面对象之间的通信;操作系统内不同程序之间的消息,都需要有一个传送协议,以确保传信双方能够沟通无间。

    放在现实中的协议也有很多,这个协议是,相互遵守,单方面违背了,不叫协议,比如停战协议,全球贸易协议等等.没有协议,世界将一片混乱.

    当然以上例子只列举了几个,如果想了解更多网络传输协议,请参考维基百科关键词:网络传输协议.

    HTTP协议

    我们重点了解一下平时上网玩网络游戏等等都需要涉及到的HTTP协议.

    HTTP协议中文名叫:超文本传输协议,HTTP是英文单词HyperText Transfer Protocol开头字母的缩写.

    它是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符来标识。

    该协议发展由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织所发起。由万维网协会和互联网工程任务组制定标准,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。

    协议概述

    HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道。

    尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。

    通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。

    请求信息

    发出的请求信息包括如下:

    请求行(例如:GET /images/log.png HTTP/1.1) --> 表示从哪个目录中用什么样的标准用什么样的方式请求log.png
    请求头(格式key:value)
    空行 
    其他信息体

    例如:

    POST /01/01/php HTTP/1.1
    Host:localhost
    Content-type:
    application/x-www-form-urlencode
    Content-length:5
    
    age=3

    请求方法

    HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:
    OPTIONS:这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*’来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

    HEAD:与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

    GET:向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

    POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

    PUT:向指定资源位置上传其最新内容。

    DELETE:请求服务器删除Request-URI所标识的资源。

    TRACE:回显服务器收到的请求,主要用于测试或诊断。

    **CONNECT:**HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。
    方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。
    HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当匹配下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。例如:

    PATCH:用于将局部修改应用到资源。

    响应信息

    服务器响应回来的信息如下:

    响应行(协议 状态吗 状态文字)
    响应头信息(格式为 key:value)
    空行
    主体信息(也可以没有)

    例如:

    HTTP/1.1 200 OK
    Content-type:text/html
    Content-length:5
    
    hello

    所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。
    状态代码的第一个数字代表当前响应的类型:
    1xx消息——请求已被服务器接收,继续处理
    2xx成功——请求已成功被服务器接收、理解、并接受
    3xx重定向——需要后续操作才能完成这一请求
    4xx请求错误——请求含有词法错误或者无法被执行
    5xx服务器错误——服务器在处理某个正确请求时发生错误
    虽然 RFC 2616 中已经推荐了描述状态的短语,例如”200 OK”,”404 Not Found”,但是WEB开发者仍然能够自行决定采用何种短语,用以显示本地化的状态描述或者自定义信息。

    展开全文
  • 简单邮件传输协议SMTP

    千次阅读 2018-05-11 15:46:15
    1. SMTP协议概述SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它使每台计算机在发送或中转信件时能...
    1. SMTP协议概述
    SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是由源地址到目的地址传送邮件的一组规则,用来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它使每台计算机在发送或中转信件时能找到下一个目的地。通过使用指定的服务器,把Email寄到收信人的服务器上。

    SMTP服务器是遵循SMTP协议的邮件服务器,用来发送或中转电子邮件。首先,客户端需要建立一个与SMTP服务器的TCP连接端口一般为25。在连接建立之后,客户端和服务器先执行一些应用层的握手操作,让SMTP服务器知道客户端的信息,并且对客户端需求做出响应等。

    在SMTP握手阶段,客户端向SMTP服务器分别指定发件人和收件人的电子邮件地址。握手阶段完毕,SMTP服务器把客户端发出的邮件消息添加到发信队列中,通过TCP提供的可靠数据传输服务把该消息准确地传送到收件人的服务器。

    连接和发送过程如下:
    (1)建立TCP连接。
    (2)客户端发送HELO命令以标识发件人自己的身份,客户端发送MAIL命令。服务器以OK作为响应,表明准备接收。
    (3)使用AUTH命令登录SMTP服务器,输入用户名和密码(注意,用户名和密码都需要base64加密)。
    (4)客户端发送RCPT命令,标识该电子邮件的计划接收人,可以有多个RCPT行。服务器以OK作为响应,表示愿意为收件人发送邮件。
    (5)协商结束后,使用DATA命令发送。
    (6)以 . 号表示结束,输入内容一起发送出去,结束此次发送,用QUIT命令退出。

    一个电子邮件系统应具有三个主要组成构件,用户代理、邮件服务器、SMTP和POP3(注:POP3是邮局协议(Post Office Protocol)的版本3),如下图:

     

    说明:

    1、用户代理UA(User Agent)就是用户与电子邮件系统的接口,在大多数情况下它就是运行在用户PC机中的一个程序,因此又称为电子邮件客户端软件,如Outlook Express、Foxmail等;

    2、电子邮件地址的一般格式为:

    收件人邮箱名@邮箱所在主机的域名

    SMTP协议简介:

    SMTP规定了在两个互相通信的SMTP进程之间应如何交换信息。由于SMTP采用C/S格式,因此负责发送邮件的SMTP进程就是SMTP客户,而负责接受邮件的SMTP进程就是SMTP服务器。SMTP规定了14条命令和21种应答信息。每条命令用4个字母组成,而每一种应答信息一般只有一行信息,由一个3位数字的代码开始,后面附上(也可不附)很简单的文字说明。其主要过程如下:

    1、连接建立

    SMTP客户每隔一定时间对邮件缓存扫描一次。如发现有邮件,就使用SMTP的熟知端口号码25与接收方邮件服务器的SMTP服务器建立TCP连接。在建立连接后,接收方SMTP服务器要发出“220 Service ready”(服务就绪)。然后SMTP客户向SMTP服务器发送HELO命令,附上发送方的主机名。SMTP服务器若有能力接收邮件,则回答:“250 OK”,表示已准备好接收。

    注:SMTP不使用中间的邮件服务器。

    2、邮件传送

    1)、邮件的传送从MAIL命令开始。MAIL命令后面有发件人的地址。如MAIL FROM:<test@163.com> 。服务器给出响应回应;

    2)、接下来便是一个或多个RCPT命令,取决于把同一个邮件发送给一个或多个收件人,其格式为RCPT TO:<收件人地址>

    3)、再接下来就是DATA命令,表示要开始传送邮件的内容了。SMTP服务器返回的信息是:354 Start mail input;end with <CRLF>.<CRLF> ;这里<CRLF>是回车换行的意思。发送完毕后,再发送<CRLF>.<CRLF>表示邮件内容结束

    3、连接释放

    邮件发送完毕后,SMTP客户发送QUIT命令。SMTP服务器返回的信息是:221 服务关闭,表示SMTP同意释放TCP连接。邮件传送的全部过程即结束。


    HTTP和SMTP比较:

    同:

    都被用来从一个主机向另一主机传递文件;http一般把一些文件(也成为对象)从一个web服务器传递到 web客户那里,例如你平时打开个网页。SMTP传递的是电子文件,从一个邮件服务器传递到另一 个邮件服务器,并且持续的HTTP和SMTP都是持续连接。

    异:

    1、HTTP 是一种拉协议tcp连接由想接收文件的机器发起的,所谓pull型协议是指:某人是把文件信息,从web server那里取出来,也就是客户主动去拿文件,因此是pull。而SMPT是一种推协议tcp连接由要发送该文件的机器发起的,是发送邮件的服务器向接收邮件的服务器主动发送信息。

    具体理解图示:

    2、SMTP要求每个报文(包括它们的体)必须是7比特的ASII码。http数据不受这种限制。
    3、HTTP把每个对象封装到自己的HTTP响应报文中,SMTP则把所有报文对象放在一个报文之中。


    2. SMTP协议应用:使用Socket发送邮件
    SMTP协议建立在TCP协议之上,所以原则上按照SMTP协议的规范,使用Socket跟SMTP服务器进行交互


    展开全文
  • SFTP文件传输

    2019-10-18 11:21:07
     我们平时习惯了使用FTP来上传下载文件,尤其是很多Linux的环境下,我们一般都会通过第三方的SSH工具连接到Linux的,但是当我们需要传输文件到Linux的服务器当中,很多人习惯用FTP来传输,其实Linux的默认是不提供...
  • 工作總結@TOC 主要用于文件的共享,但不是所有的URL都可以是用浏览器打开,总结下有下面几种: ...大家听过看过可能没怎么用过,全称叫文件传输协议,请用专门的FTP客户端打开,当然也可以直接用Windows自带的文
  • 用于网络上实时传输音视频数据的标准数据包格式,例如流媒体、视频会议、电视服务等等。 2)RTP为何需要RTCP配合使用: RTP可以提供低延时的数据传送服务,但无法保证数据包到达客户端时仍然保持着发送时的顺序,...
  • 几种常用的网络传输协议

    千次阅读 2019-10-07 10:36:08
    应用层包含用户应用程序执行通信任务所需要的协议和功能,如电子邮件和文件传输等,在这一层中TCP/IP协议中的FTP、SMTP、POP等协议得到了充分应用。  SNMP(Simple Network Management Protocol,简单网络管理协议)的...
  • 超文本传输协议HTTP

    万次阅读 2018-01-08 14:14:34
    在了解HTTP 协议之前需要先了解一些其他的概念,了解它们之间的关系才能更好的理解HTTP 协议。 内容偏于理论知识,理解起来可能不是很容易,所以在阅读之前希望带着以下几个问题,增加阅读的兴趣。 为什么计算机...
  • 假期使用BAE和SAE开发应用,两个服务器都需要通过SVN提交代码,因为平时大多使用Dreamwaver,所以查了查资料,通过Subversion方便了开发。 因为网上的资料都不全,所以根据自己的经验整理了这篇文章,希望对大家...
  • 1)我是怎么在Ubuntu服务器和自己的ubutu个人电脑上实现文件传输的; 2)我是怎么在Ubuntu服务器和自己的windows个人电脑上实现文件传输的; 3)怎么远程控制(访问、操作)Ubuntu个人电脑; 4)寻找给Ubuntu...
  • 计算机网络协议——通信协议综述

    万次阅读 多人点赞 2019-09-03 23:20:58
    通信协议综述概述一、为什么学习网络协议1.1 常见的网络协议二、网络分层的真正含义2.1 为什么网络要分层?2.2 浏览点击请求过程2.3 揭秘层与层之间的关系三、ifconfig 命令行的由来3.1 ip地址3.2 无类型域间选路...
  • 几种常用网络传输协议

    千次阅读 2018-12-07 16:19:00
    一、OSI模型 名称 层次 功能 物理层 1 实现计算机系统与网络间的物理连接 数据链路层 2 进行数据打包与解包,形成信息帧 网络层 3 提供数据通过的路由 传输层 4...
  • http 协议

    2018-12-29 09:41:17
    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP 是基于 TCP/IP 协议通信协议来传递数据(HTML 文件、图片文件、查询结果等)。它不...
  • HTTP协议简介

    2019-07-09 15:56:10
    FTP协议——文件传输协议 SMTP协议——简单邮件传输协议 DNS协议——域名解析协议 应用层有好多协议,都是由我们程序员自己处理的,在这些协议中,我们最常用的就是HTTP协议,那么接下来就让我们一起来看...
  • 远程文件传输的实现

    千次阅读 2006-07-14 09:16:00
    这篇文章将为你讲述远程文件传输的原理和一个基于TCP/IP协议的远程文件传输的编程实现样例,所以有过使用Winsock编程经历的读者,只需要关心本文中讲到的关键代码就成。因为这是一篇针对初中级网络编程爱好者的文章...
  • TLS安全传输协议(加密)配置文档 Tomcat服务器配置https双向认证(使用keytool生成证书) 一,HTTPS原理 1,HTTP、HTTPS、SSL、TLS介绍与相互关系   (1)HTTP:平时浏览网页时候使用的一种协议。HTTP协议...
  • 使用Vsftpd服务传输文件

    千次阅读 2016-05-17 20:35:52
    本章节先通过介绍文件传输协议来帮助读者理解FTP协议的用处,安装vsftpd服务程序并逐条分析服务文件的配置参数。 完整演示vsftpd服务匿名访问模式、本地用户模式及虚拟用户模式的配置方法,介绍PAM可插拔式认证...
  • HTTP协议

    2019-03-06 21:56:00
    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从网络服务器传输超文本到本地浏览器的传送协议。 HTTP基于TCP/IP协议来传输数据(HTML 文件, 图片文件, 查询结果等)。它和TCP/IP协议簇内...
  • HTTP 协议极简教程

    2018-11-21 09:33:36
    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP 是基于 TCP/IP 协议通信协议来传递数据(HTML 文件、图片文件、查询结果等)。它不...
  • 搞懂http协议

    2019-01-02 21:56:50
    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP 是基于 TCP/IP 协议通信协议来传递数据(HTML 文件、图片文件、查询结果等)。它不...
  • YModem协议简介

    千次阅读 2018-06-22 09:27:59
    YModem协议是XModem的改进协议,它最用于调制解调器之间的文件传输协议,具有快速,稳定传输的优点。它的传输速度比XModem快,这是由于它可以一次传输1024字节的信息块,同时它还支持传输多个文件,也就是常说的...
  •  MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。我们做题中经常会遇到一些有关MD5加密的东西,任意长度的数据,算出的MD5值长度都是固定的,均是32位。  对于常见的比较简单...
  • Ymodem协议简介

    2018-04-19 14:12:10
    YModem协议是XModem的改进协议,它最用于调制解调器之间的文件传输协议,具有快速,稳定传输的优点。它的传输速度比XModem快,这是由于它可以一次传输1024字节的信息块,同时它还支持传输多个文件,也就是常
  • 文章目录端口号UDP协议TCP协议 端口号 UDP协议 TCP协议
  • 网络协议

    2018-09-01 10:19:06
    从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传输方; 第二次,发送文件的尺寸,接收方接收到该...
  • git支持的协议大全

    2019-10-25 22:25:35
    git可以使用四种主要的协议传输资料:本地协议、HTTP协议、SSH协议以及Git协议。在此,将讨论不同协议的使用场景。 1.1本地协议 1.1.1基本知识 最基本的就是 本地协议(Local protocol) ,其中的远程版本库就是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,165
精华内容 6,866
关键字:

平时用于文件传输的协议