引言

从一台计算机向另一台计算机传送文件是在连网或互联网环境中最常见的任务。而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协议族之应用层协议(FTP、TFTP)

    文件传送协议FTP: File Transfer Protocol 是因特网上使用得最广泛的文件传送协议.提供交互式的访问,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存 ...

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

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

  3. 一次完整的抓包分析 Reserved TCP/IP Port List

    抓包如图所示: 本机IP被粉色遮住... http://www.skynet.ie/~colinmac/Programming/port_listing.html Reserved TCP/IP Po ...

  4. TCP/IP四层模型和OSI七层模型

    TCP/IP四层模型和OSI七层模型对应表.我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类.     表1-1  TCP/IP四层模型和OSI七层模型对应表 ...

  5. 计算机网络7层协议模型,计算机网络(一) OSI七层模型及TCP/IP dubbo协议

    3.TCP/IP 四层模型: TCP/IP协议:是一个网络通信模型,是OSI 七层模型的简化,为4层模型,泛指众多(TCP,UDP,IP等)协议: OSI TCP/IP 功能 协议 应用层 应用层 文 ...

  6. osi七层协议和tcp/ip四层协议

    (大部分内容为转载) OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议.OSI七层协议是由ISO (I ...

  7. OSI七层 TCP/IP四层 TCP/IP协议栈: 不同的通信协议的大集合

    应用层: 网络服务与最终用户的一个接口. 协议有:HTTP FTP TFTP SMTP SNMP DNS TELNET HTTPS POP3 DHCP 表示层: 数据的表示.安全.压缩.(在五层模型里 ...

  8. TCP/IP 协议栈及 OSI 参考模型详解--云平台技术栈04

    导读:之前发布了云平台技术栈(ps:点击可查看),本文主要说一下其中的tcp/ip和网络! 来源:王东裕 http://wangdy.blog.51cto.com/3845563/1588379 OS ...

  9. TCP/IP学习入门笔记

    近期需要做一个用到UDP的工程,之前的情况是上位机计算出的车速(左右轮速),发送给各个小车(具体实现还不知道,等下去问硬件的同学),现在我们要改成用WIFI通信,大致的想法是:以后电脑和小车都连接好手 ...

  10. TCP/IP详解--第十五章

     第15章 TFTP:简单文件传送协议 15.1    引言   TFTP(Trivial File Transfer Protocol) 即简单文件传送协议,最初打算用于引导无盘系统 (通常是工作站 ...

最新文章

  1. Sequelize 4.43.0 发布,基于 Nodejs 的异步 ORM 框架
  2. linux系统 wm9713声卡配置 记录
  3. 逆向工具之IDA的使用
  4. linux修改ftp锁定目录,解决linux下ftp指定访问目录无法修改的问题
  5. 蒙特卡洛方法_基本理论-蒙特卡洛方法与定积分
  6. cisco engine memory
  7. 页面切换主题风格,利用本地缓存
  8. [Hadoop大数据]——Hive数据的导入导出
  9. 【音频隐写提取】MP3Stego下载、命令、使用方法
  10. Arcgis 10.2 软件安装教程
  11. ENVI监督分类图像分割
  12. 2022年政府工作报告词频分析
  13. 小程序外链,实现桌面图标、短信和邮件外链跳转到小程序的工具
  14. 时间计算题100道_2019消防工程师考试易考6大类型计算题
  15. x265 (HEVC编码器,基于x264) 介绍
  16. 移动端开发——APP端上H5容器化建设
  17. 不安装Office操作Excel文件(.xlsx)
  18. 计算机国际会议开幕词,国际会议开幕词英文
  19. Java中的数值计算
  20. 【从0到1搭建LoRa物联网】19、LoRa串口透传例程(补充)

热门文章

  1. 5、WPF实现简单计算器-非常适合初学者练习
  2. [bbk2193] 第34集 - Chapter 09-Optimizing Sore Perations(03)
  3. 为imageView添加图片实现动画
  4. [转]Delphi的运算符重载
  5. 【转载】HTML之表单的设计(十)
  6. 日期转换成时间戳的问题
  7. django-rest-framework-jwt的使用
  8. Hive学习笔记(二)——数据模型
  9. swwht(canvas).demo
  10. SP1812 LCS2 - Longest Common Substring II