zoukankan      html  css  js  c++  java
  • 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

     

      

     

  • 相关阅读:
    IDEA开发常用快捷键
    常见操作系统的分类
    预科班第四次考核总结
    博客园使用office 365写博客
    大三上学期十二周总结
    python循环和布尔表达式总结
    灵活运用绑定变量---declare匿名块使用绑定变量
    Oracle 10G强大的SQL优化工具:SQL Tuning Advisor
    40个DBA日常维护的SQL脚本--1113
    awr相关指标解析
  • 原文地址:https://www.cnblogs.com/2714585551summer/p/5614740.html
Copyright © 2011-2022 走看看