文件传送协议FTP: File Transfer Protocol

是因特网上使用得最广泛的文件传送协议。提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令)。FTP屏蔽了各计算机系统的细节,可在异构网络中任意计算机之间传送文件。

FTP基于TCP,TFTP基于UDP,是文件共享协议的一大类,即复制整个文件。其特点是:若要存取一个文件,就必须先获得一个本地的文件副本。若要修改文件,只能对文件的副本进行修改,然后再将修改后的文件副本传回原节点。

文件共享协议的另一大类是联机访问。联机访问意味着允许多个应用程序同时对一个文件进行存取。和数据库系统不同的是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远地共享文件进行访问的服务,就如同对本地文件的访问一样。使用户可以用远地文件人微言轻输入和输出运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存取优点:将原来用于处理本地文件的应用程序用来处理远地文件时,不需要对该应用程序作明显改动。属于文件共享协议的有网络文件系统NFS。NFS使本地计算机共享远地的资源,就像这些资源在本地一样。NFS主要应用于TCP/IP网络上。现在也可OS/2、MS-Windows,NetWare等。

主机间传送文件需要解决的主要问题有:

计算机存储数据的格式不同;

文件的目录结构和文件命名的规定不同;

对于相同的文件存取功能,操作系统使用的命令不同;

访问控制方法不同。

FTP只提供文件传送的一些基本的服务,使用TCP可靠的运输服务。

主要功能是减少或消除在不同操作系统下处理文件的不兼容性。

使用客户服务器方式。一个FTP服务器进程可同时为多个客户进提供服务。FTP服务器进程主要由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤:

<1>. 打开熟知端口(TCP21),使客户进程能够连接上。

<2>. 等待客户进程发出连接请求。

<3>. 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程来运行期间根据需要还可能创建其他一些子进程。

<4>. 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。

在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:“控制连接”和“数据连接”。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。实际用于传输文件的是“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于FTP使用了一个分离控制连接,因此FTP的控制信息是带外传送的。

当客户进程向服务器进程发出建立连接请求的时候,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程自己的另一个端口号码,用于建立数据传送连接。接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码来建立数据传送连接。由于FTP使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。

NFS允许应用程序打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。这样,NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。在网络上传送的只是少量的修改数据。

简单文件传送协议TFTP: Trivial File Transfer Protocol

客户服务器方式,使用UDP数据报,需要有自己差错改正措施。TFTP只支持文件传输而不支持交互。TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份识别。

主要优点:<1>.TFTP可用于UDP环境。当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP。<2>.TFTP代码所占内存较小。

主要特点:

<1>.每次传送的数据报文有512字节的数据,但最后一次可不足512字节。

<2>.数据报文按序编号,从1开始。

<3>.支持ASCII码或二进制传送。

<4>.可对文件进行读或写。

<5>.使用很简单的首部。

TFTP工作很像停止等待协议,每发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发送数据后在规定时间内收不到确认就要重发数据PDU。发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告终。

在一开始工作时,TFTP客户进程发送一个读请求报文或写请求报文给TFTP服务器进程,其熟知端口号为69。TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据报文。若文件长度不是512字节的整数倍,则最后传送数据报文中的数据字段一定不满512字节,这正好可以作为文件结束的标志。

转载于:https://www.cnblogs.com/way_testlife/archive/2010/10/11/1847529.html

TCP/IP协议族之应用层协议(FTP、TFTP)相关推荐

  1. TCP/IP 协议族 And HTTP 协议 基基基础知识

    文章目录 TCP/IP协议群 HTTP 协议 1.HTTP 消息结构 2.HTTP 请求方法 3.HTTP 响应信息 4.HTTP 状态码 5.HTTP content-type 6.请求类型Get与 ...

  2. OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系

    OSI七层协议模型.TCP/IP四层模型和五层协议体系结构之间的关系 一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Ses ...

  3. OSI七层协议模型、TCP/IP四层模型和五层协议体系

    先放图 一.OSI七层协议模型 OSI的七层协议主要包括:物理层(physical layer).数据链路层(data link layer).网络层(network layer).运输层(trans ...

  4. TCP/IP网络协议栈:ARP协议详解

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  5. IPv6协议族的其它协议

    摘自:<深入理解计算机网络> 王达著 机械工业出版社 相关知识链接 1. IPV4数据报头部格式 2. IPv6数据报头部格式 3. IPv4数据报的封装与解封装 4. IPv4数据报的分 ...

  6. TCP/IP协议族之运输层协议 ( UDP, TCP)

    UDP  User Datagram Protocol    用户数据报协议 TCP  Transmission Control Protocol    传输控制协议 UDP:向应用层提供无连接的.不 ...

  7. 『TCP/IP详解——卷一:协议』读书笔记——03

    2013-08-17 17:31:49 1.7 分用 分用(Demultiplexing):这是一个过程--当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议上的报文首 ...

  8. 《TCP/IP详解卷一:协议》 概述

    分层 TCP/IP协议族是一组不同层次上的多个协议的组合.TCP/IP通常被认为是一个四层次协议系统. 链路层(数据链路层或网络接口层):通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡.用 ...

  9. 信息系统项目管理师教程(第3版)- OSI七层模型TCP/IP四层模型对应网络协议

    一.OSI七层模型: 1.应用层 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 2.表示层 数据的表示. ...

最新文章

  1. OSPF高级设置实现全网互通
  2. linux下载tomcat7命令,linux下安装tomcat7.0
  3. el-tree 权限 勾选_一周新债总结,最高涨30%,10月26日起可转债交易需要先开权限...
  4. STL中map用法详解
  5. Java设计模式笔记(5)建造者模式
  6. 2021谷饶中学高考成绩查询,高考成绩
  7. python空行拼接字符串_在python中的每一个空行插入一个新的行字符串
  8. hive常见的建表方式有哪些?各自的使用场景是?
  9. ac3168无线网卡驱动下载_70块的笔记本网卡,值不值得换
  10. 阿里云对象存储OSS是怎么收费的?
  11. 单元格内容分列多行_excel拆分单元格内容 excel单元格拆分多行
  12. 服务器连接无线键盘,【罗技 K375s 无线蓝牙键盘使用总结】连接|手感_摘要频道_什么值得买...
  13. 合肥工业大学计算机和信息学院,合肥工业大学计算机与信息学院
  14. java中双冒号的用法
  15. js如何判断闰年?整除的符号是什么?
  16. 创维E900V22E_卡刷固件及升级说明
  17. 安卓打包出现“app:processReleaseManifest“问题的一种解决方案
  18. sudo apt-get install 可以安装的一些软件
  19. 无忧考吧java的题库准吗,无忧考吧题库_无忧考吧从业题库难度和真正考试难度一样吗_淘题吧...
  20. 毕业设计项目总结--幼儿托管安全接送系统

热门文章

  1. [c++] - 简单的冒泡
  2. dart --- 简单的闭包
  3. vue --- 模块从子组件获取数据
  4. 鼠标提上去弹出提示层(定位)
  5. Qualcomm QXDM工具简介和log抓取
  6. Tomcat 的 DefaultServlet
  7. Unity3D获取Andorid设备返回键,主页键等功能
  8. opacity用法:
  9. 数据结构 --- 堆
  10. asp.net ajax1.0基础回顾(七):综合应用