我是靠谱客的博主 落寞水池,最近开发中收集的这篇文章主要介绍FTP 协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

      课设题目:使用某种语言(Java C# c或c++)编程实现一个基于C/S工作模式的客户端 服务器端的设计及编程实现,双方通信能够通过某种特定的协议进行交互通信。

      我选的是:FTP客户端/服务器  RFC959

      先介绍下 FTP协议:

      资料详见:http://wenku.baidu.com/link?url=gza5u6Bog78-awWR0i12gn0NLtXEx9ed8MNwv_vtWBoYth6CrCQZZRQyhkUC3gnxd6BQfaqRDuPy8xCiKsjIJISvECGMTCccz36jb9SaVb7

      学习过程:

      FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
       

(1)字节大小,在FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。(2)控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间。(4)DTP:数据传输过程(DTP)建立和管理数据连接,DTP可以是主动的也可以是被动的。(5)EOR代表记录尾。(6)NTV代表网络虚拟终端,它的定义与在Telnet协议中的定义一致。(7)NVFS代表网络虚拟文件系统。(8)FTP可以传输非连续的文件,这些文件的一部分称为页。(9)PI代表协议解释器。(10)服务器DTP代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据PI的指令传输数据。当然,DTP也可以转入“被动”状态。(11)服务器FTP进程,它是和用户FTP进程一起工作的,它由PI和DTP组成。至于用户FTP进程则是由PI,DTP和用户接口组成的。

    

      传输数据时下一个要考虑的问题是选择合适的传输模式。有三种传输模式:一个对数据格式化,并允许重新开始过程;一个压缩数据提供高效传输;一个不加修改的传输数据。

最后一种模式与结构属性配合决定处理过程。在压缩模式中,表示类型决定填充字节  另一种传输模式 :流模式 块模式 

      访问控制命令:  用户名(USER)    密码(PASS)  帐户(ACCT)改变工作目录(CWD) 注销(OUIT)

      1: open:与服务器相连接;
  2. send(put):上传文件;
  3. get:下载文件;
  4. mget:下载多个文件;
  5. cd:切换目录;
  6. dir:查看当前目录下的文件;
  7. del:删除文件;
  8. bye:中断与服务器的连接

      编码用来表示传送模式:S流B块C压缩   默认的传送模式是流

      常见状态码:

      230 用户登录成功 继续

      530 没有登录成功

      425 不能打开数据连接

      200  命令ok

      214  帮助信息

 

      附加:

          FTP是基于tcp协议的使用。20和22端口

          TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内[1] 另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

          Telnet协议(远程终端协议)是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法

           UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17

 

  

 

转载于:https://www.cnblogs.com/2714585551summer/p/5614740.html

最后

以上就是落寞水池为你收集整理的FTP 协议的全部内容,希望文章能够帮你解决FTP 协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部