引言

从一台计算机向另一台计算机传送文件是在连网或互联网环境中最常见的任务。而FTP和TFTP就是这样的协议。

关于文件传输协议FTP?

端口21
使用服务TCP

【FTP模型】

FTP连接?

1.控制连接
a.服务器在熟知端口21发出被动打开命令,等待客户。
b.客户使用临时端口发出主动打开命令。
2.数据连接
数据连接使用服务器端的熟知端口20。
a.客户使用一个临时端口发出被动打开。
b.客户使用PORT命令把这个端口号发送给服务器。
c.服务器收到这个端口号,并使用熟知端口20和临时端口号发出主动打开。

FTP通信?

两台计算机可以使用不同的操作系统、不同的字符集、不同的文件结构以及不同的文件格式。FTP必须使这种异构性得到兼容。
FTP使用了两种解决问题的方法,一种用于控制连接,一种用于数据连接。
1.在控制连接上的通信
它使用NVT字符集


【图示】
2.在数据连接上的通信
异构性问题可以通过文件类型、数据结构以及传输方式三个通信属性来解决。
文件类型(ASCLL文件、EBCDIC文件、图像文件,非打印,TELNET)
数据结构
传输方式(流方式、块方式、压缩方式)

【图示】

FTP命令处理?

接入命令(USER、PASS,ACCT,REIN,QUIT,ABOR)
文件管理命令(CWD,CDUP,DELE,LIST,PWD等等)
数据格式化命令(TYPE,STRU,MODE)
端口定义命令(PORT,PASV)
文件传送命令
杂项命令(HELP、SYST)
响应
每一个FTP命令至少产生一个响应,由三位数字的数以及跟随后面的文本。

FTP文件传送?

从服务器把文件复制给客户,这称为读取文件。
从客户把文件复制到服务器称为存储文件。
从服务器向客户发送目录列表或文件名。是在LIST命令的监督下完成的。

【图例控制连接与数据连接】

简单文件传送协议(TFTP)?

有时候我们只需要复制一个文件而不需要FTP协议的全部功能。简单文件传送协议应运而生。
TFTP端口69
使用服务UDP

TFTP的报文?

共有五种类型,RRQ,WRQ,DATA,ACK和ERROR。

1.RRQ,读请求报文
2.WRQ,写请求
3.DATA,数据报文
4.ACK,确认报文
5.ERROR,错误报文
差错号
0    未定义
1    文件未找到
2    存取被破坏
3    磁盘满
4    非法操作
5    未知端口
6    文件已存在
7    无此用户

TFTP连接?

TFTP使用UDP服务。UDP不提供连接建立和终止,所以TFTP自己建立连接。

TFTP数据传送?

UDP没有流量控制和差错控制机制。TFTP必须创建流量控制和差错控制机制,以便传送由连续数据块构成的文件。
1.流量控制
TFTP使用DATA报文发送数据块,并等待ACK报文。若在超时之前发送端就收到了确认,它就发送下一个块。
读取文件,发送RPQ报文。存储文件发送WRQ报文。

2.差错控制
对称的,发送端和接收端都使用超时。

UDP端口?

【UDP通信过程】

TFTP案例?

客户打算读取名叫file1的2000字节的文件的内容。客户发送RRQ报文。服务器发送第一个报文,携带第一个512字节,它原封不动地被接收和确认了。
携带第二个512字节的数据块丢失了。超时后,服务器重新传送这个数据块,被收到了。
第三个512收到了,但确认丢失了。超时后,接收端重新确认。携带剩下464字节的最后一个数据块收到了,但受到损伤,因此客户简单地把它丢弃。超时后,服务器重新传送。
连接终止。


【图解】
tips:通过这个流程,在大脑中过了一遍,更加清晰了它的具体过程。

TCP/IP FTP/TFTP的更多相关文章

  1. TCP/IP 目录导航

    用了近二十天的时间,把一本800页的书看完,感觉收获还是很大的.对网络,对这些协议有了深刻的认识! 知道了路由器与交换机的区别. 知道了IP地址的特点. 知道了网络的分层,物理层,数据链路层,网络层, ...

  2. 聊聊Socket、TCP/IP、HTTP、FTP及网络编程

    1 这些都是什么 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输.这里就要使用到TCP/IP协议. 1.1 TCP ...

  3. SOCKET,TCP/IP,UDP,HTTP,FTP总结

    一.TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议 ...

  4. 关于Socket、TCP/IP、HTTP、FTP及网络编程

    来源:陶邦仁 链接:http://blog.jobbole.com/99694/ 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,再者如何进行可靠高效 ...

  5. Socket,TCP/IP,UDP,HTTP,FTP

    1.Socket:套接字,是传输层协议的一种编程API 作用:用于描述IP地址和端口,区分来自不同应用程序的通信,实现数据传输的并发服务 JDK  Socket:在java.net包下有两个类Sock ...

  6. TCP/IP详解学习笔记(11)-- TFTP:简单文本传输协议,BOOTP:引导程序协议

    1.TFTP:      TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,基于UD ...

  7. 网络通信 --> Socket、TCP/IP、HTTP、FTP及网络编程

    Socket.TCP/IP.HTTP.FTP及网络编程 聊聊Socket.TCP/IP.HTTP.FTP及网络编程

  8. 理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservic

    TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址). SOCKET:SOCKET只是面对编程人员的 ...

  9. OSI七层模型详解 TCP/IP协议

      总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...

随机推荐

  1. php字符串函数(1)

    下面去学习一下php的字符串函数,那么怎么去看手册呢,举个例子 int strcasecmp ( string $str1 , string $str2 ) 第一个int,表示此函数返回的类型是int ...

  2. WisDom.Net 框架设计(八) 持久层

    WisDom.Net ---持久层  1.什么是持久层        持久层负责最基础的功能支撑,为项目提供一个高层,统一,和并发的数据持久机制,提供了比如建立数据库连接,关闭数据库连接,执行sql语 ...

  3. Attribute 特性

    转载   不错   摘要:纠结地说,这应该算是一篇关于Attribute 的笔记,其中的一些思路和代码借鉴了他人的文笔(见本文底部链接).但是,由于此文对Attribute 的讲解实在是叫好(自夸一下 ...

  4. python基础知识七

    我们会使用raw_input和print语句来完成这些功能. 对于输出,也可以使用多种多样的str(字符串)类. 例如使用rjust方法来得到一个按一定宽度右对齐的字符串. 可以通过创建一个file类 ...

  5. asp.net服务器控件开发系列一

    最近想写写博客记录下自己学习开发服务器控件. 第一步:搭建环境. 1.新建一个项目类库,用于保存控件: 2.新建一个Web工程,用于调用控件: 如图: 第二步:在控件类库下,新建一个服务器控件类Tex ...

  6. RESTful 架构风格概述

    http://blog.igevin.info/posts/restful-architecture-in-general/(非常好) http://blog.igevin.info/posts/re ...

  7. (四)值栈与OGNL

    所有的学习我们必须先搭建好Struts2的环境(1.导入对应的jar包,2.web.xml,3.struts.xml) 第一节:值栈简介 值栈是对应每个请求对象的一套内存数据的封装,Struts2 会 ...

  8. 网页快照 - C#实现

    /// <summary> /// 图片类型枚举 /// </summary> public enum ImageType { GIF = , JPG = , PNG = } ...

  9. ios专题 -动画

    知识点 : 1)ios 核心动画的基础是图层.图层的基础是CALayer,它是所有核心图层类的父类. 2)CATransaction是核心动画类负责协调多个动画原子显示更新.事务支持嵌套使用. 3)图 ...

  10. DependencyProperty

    <Window x:Class="DependencyPropertyDemo.MainWindow" xmlns="http://schemas.microsof ...