TCP/IP FTP/TFTP
引言
从一台计算机向另一台计算机传送文件是在连网或互联网环境中最常见的任务。而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的更多相关文章
- TCP/IP 目录导航
用了近二十天的时间,把一本800页的书看完,感觉收获还是很大的.对网络,对这些协议有了深刻的认识! 知道了路由器与交换机的区别. 知道了IP地址的特点. 知道了网络的分层,物理层,数据链路层,网络层, ...
- 聊聊Socket、TCP/IP、HTTP、FTP及网络编程
1 这些都是什么 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,另一个是如何进行可靠高效的数据传输.这里就要使用到TCP/IP协议. 1.1 TCP ...
- SOCKET,TCP/IP,UDP,HTTP,FTP总结
一.TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组(主要解决数据如何在网络中传输),可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议 ...
- 关于Socket、TCP/IP、HTTP、FTP及网络编程
来源:陶邦仁 链接:http://blog.jobbole.com/99694/ 既然是网络传输,涉及几个系统之间的交互,那么首先要考虑的是如何准确的定位到网络上的一台或几台主机,再者如何进行可靠高效 ...
- Socket,TCP/IP,UDP,HTTP,FTP
1.Socket:套接字,是传输层协议的一种编程API 作用:用于描述IP地址和端口,区分来自不同应用程序的通信,实现数据传输的并发服务 JDK Socket:在java.net包下有两个类Sock ...
- TCP/IP详解学习笔记(11)-- TFTP:简单文本传输协议,BOOTP:引导程序协议
1.TFTP: TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,基于UD ...
- 网络通信 --> Socket、TCP/IP、HTTP、FTP及网络编程
Socket.TCP/IP.HTTP.FTP及网络编程 聊聊Socket.TCP/IP.HTTP.FTP及网络编程
- 理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservic
TCP/IP:网络宽带,传输数据的基础协议,所有得数据要在网络上传输都是基于TCP/IP协议(或UDP),才能送达到指定的目的地(IP,服务器硬件地址). SOCKET:SOCKET只是面对编程人员的 ...
- OSI七层模型详解 TCP/IP协议
总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转 ...
随机推荐
- spring使用aop
基于spring-framework-4.1.7使用aop >>>>>>>>>>>>>>>>>&g ...
- gitcafe 使用hexo搭建博客
--缘由:因为看大家都用github等搭建博客,作为半个程序员的自己,也按捺不住了,终于有空来尝试一把了,选择了和github 相同功能的gitcafe网站,因为在国内比较快,这是大家的看法,下面写一 ...
- navicat 数据库管理工具快捷键
最近在使用navicat 管理数据库中,因为经常要写一些sql的,但是每次都要鼠标点击运行,感觉很不爽,于是找到navicat(以下) 快捷键(最常用的): ctrl + q 打开查询窗口 ctrl ...
- Java-struts2 配置hellow world
这里进行struts框架的配置问题,和简单的输出hellow world 配置的步骤 1. 配置TomCat 2. Jak 3. 拷贝struts.xml文件到src目录 ...
- [压缩解压缩] SharpZip--压缩、解压缩帮助类
里面有三个类都是用于压缩和解压缩的.大家看下图片 看下面代码吧 /// <summary> /// 类说明:SharpZip /// 编 码 人:苏飞 /// 联系方式:361983679 ...
- 写一个最简单的 Server
import java.net.*;import java.io.*;public class Server{ public static void main(String[] args) throw ...
- 查看当前使用的shell
1.实时查看当前进程中使用的shell种类:推荐 ps | grep $$ | awk '{print $4}' (注:$$表示shell的进程号) 2.最常用的查看shell的命令,但不能实时反映当 ...
- SQL大量数据查询的优化 及 非用like不可时的处理方案
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- Quartz-2D绘图之概览
最近公司新项目需求要把数据图形化,趁着这个机会,重温了下Quarts-2D这个强大的跨平台2D绘图引擎. 一.Quartz概述 1.Quartz 2D是一个二维的绘图引擎,支持iOS和Mac OS平台 ...
- XML&DTD&XML Schema学习
XML(eXtensible Markup Language)可扩展的标记语言.xml在web service编程中尤为重要.在网络传输中可以作为传输数据的载体.xml作为元语言,它可以用来标记数据. ...