网络-FTP协议与TFTP协议

简介: 网络-FTP协议与TFTP协议

TFTP

TFTP比较简单,简单介绍一下。

TFTP(Trivial File Transfer Protocol,简单文件传送协议),它是一个很小且易于实现的文件传送协议。TFTP使用客户/服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。TFTP只支持文件传输而不支持交互。TFTP没有一个庞大的命令集,没有列目录的功能,也不能对用户进行身份鉴别。

TFTP的主要特点是:

(1)每次传送的数据报文中有512字节的数据,但最后一次可不足512字节。

(2)数据报文按序编号,从1开始。

(3)支持ASCII码或二进制传送。

(4)可对文件进行读或写。

(5)使用很简单的首部。

FTP

简介

FTP(File Transfer Protocol,文件传送协议)是互联网上使用得最广泛的文件传送协议。FTP提供交互式的访问,使用TCP实现可靠传输,采用客户/服务器模式,允许客户指明文件的类型与格式(如指明是否使用ASCII码),并允许文件具有存取权限(如访问文件的用户必须经过授权,并输入有效的口令),FTP屏蔽了计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。

文件传输协议的目标是:

  • 促进文件(计算机程序和/或数据)的共享
  • 鼓励间接或通过程序使用远程计算机
  • 保护用户免受主机之间文件存储系统的变化
  • 可靠有效地传输数据

一般我们熟知的都是21端口,还有以下分类:

主动FTP(PORT)

    命令连接:客户端 >1023端口 -> 服务器 21端口

    数据连接:客户端 >1023端口 <- 服务器 20端口

被动FTP(PASV)

    命令连接:客户端 >1023端口 -> 服务器 21端口

    数据连接:客户端 >1023端口 -> 服务器 >1023端口

工作原理

登录

使用用户名&密码进行登录

匿名FTP:对于一些提供公众文件拷贝服务的FTP服务器,使用匿名方式,即不需要登录。

传输

一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。

主进程的工作步骤如下:

  1. 打开熟知端口(端口号为21),使客户进程能够连接上。
  2. 等待客户进程发出连接请求。
  3. 启动从属进程处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其他一些子进程

 4.回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发进行的。

2020062310470442.png

FTP使用的两个TCP连接

在进行文件传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:控制连接和数据连接。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求,通过控制连接发送给服务器端的控制进程,但控制连接并不用来传送文件。实际用于传输文件的是数据连接(一般使用端口20)。服务器端的控制进程在接收到FTP客户发送来的文件传输请求后就创建数据传送进程和数据连接,用来连接客户端和服务器端的数据传送进程。数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。由于FTP使用了一个分离的控制连接,因此FTP的控制信息是带外(out of band)传送的。

NFS:FTP协议中,如果客户端A想要修改服务器端B中的某个文件,需要下载B中的文件,修改后再进行上传,传输过程浪费了很多时间。而NFS则采用另一种思路,NFS允许应用进程打开一个远地文件,并能在该文件的某一个特定的位置上开始读写数据。这样,NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。对于上述例子,计算机A中的NFS客户软件,把要添加的数据和在文件后面写数据的请求一起发送到远地的计算机B中的NFS服务器,NFS服务器更新文件后返回应答信息,在网络上传送的只是少量的修改数据。

数据传输模式

ASClI模式

假定正在传输的文件为简单的ASClI码文本,此时ftp通常会自动地调整文件内容以便于把文件解释成另外一台计算机存储文本文件的格式(例如,互换WINDOWS和UNIX的行结束符)。

二进制模式

在二进制传输中,保存文件的位序,以便拷贝和原始文件是逐位一一对应的。

更多模式可参考RFC959-DataTransfer

参考

《TCP/IP详解I》第27章

《计算机网络第7版 谢希仁》6.2

RFC 959

RFC1350








相关文章
|
4月前
|
数据采集 算法 数据挖掘
模块化控制协议(MCP)在网络中增强智能体执行效率的研究
随着Web3技术的迅速发展,去中心化应用和智能体在各种领域的应用逐渐增多。MCP(Modularized Control Protocol,模块化控制协议)作为一种增强智能体执行能力的关键技术,为Web3场景中的智能体提供了更强的灵活性和可扩展性。本文将探讨如何利用MCP技术提升智能体在Web3场景中的执行能力,并通过实例代码展示其实现路径。
324 22
|
30天前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
2月前
|
运维 架构师 安全
二层协议透明传输:让跨域二层协议“无感穿越”多服务商网络
简介:本文详解二层协议透明传输技术,适用于企业网工、运营商及架构师,解决LLDP/LACP/BPDU跨运营商传输难题,实现端到端协议透传,提升网络韧性与运维效率。
|
6月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
170 18
|
6月前
|
安全 网络协议 算法
FTP/TFTP/SSH/Telnet
本文详细介绍了FTP、TFTP、SSH和Telnet四种网络通信协议。FTP用于文件传输,功能强大但安全性低;TFTP是简化版文件传输协议,适合小文件快速传输,无用户认证;SSH是一种高安全性的远程登录协议,支持加密传输,广泛应用于服务器管理;Telnet虽简单易用,但因明文传输数据而安全性较低。文章还对比了各协议的功能、端口、加密情况及应用场景,帮助读者根据需求选择合适的协议。
429 21
|
7月前
|
安全 网络安全 定位技术
网络通讯技术:HTTP POST协议用于发送本地压缩数据到服务器的方案。
总的来说,无论你是一名网络开发者,还是普通的IT工作人员,理解并掌握POST方法的运用是非常有价值的。它就像一艘快速,稳定,安全的大船,始终为我们在网络海洋中的冒险提供了可靠的支持。
221 22
|
7月前
|
网络协议 数据安全/隐私保护 网络架构
|
8月前
|
缓存 网络协议 API
掌握网络通信协议和技术:开发者指南
本文探讨了常见的网络通信协议和技术,如HTTP、SSE、GraphQL、TCP、WebSocket和Socket.IO,分析了它们的功能、优劣势及适用场景。开发者需根据应用需求选择合适的协议,以构建高效、可扩展的应用程序。同时,测试与调试工具(如Apipost)能助力开发者在不同网络环境下优化性能,提升用户体验。掌握这些协议是现代软件开发者的必备技能,对项目成功至关重要。
|
9月前
|
人工智能 自然语言处理 决策智能
智能体竟能自行组建通信网络,还能自创协议提升通信效率
《一种适用于大型语言模型网络的可扩展通信协议》提出创新协议Agora,解决多智能体系统中的“通信三难困境”,即异构性、通用性和成本问题。Agora通过标准协议、结构化数据和自然语言三种通信格式,实现高效协作,支持复杂任务自动化。演示场景显示其在预订服务和天气预报等应用中的优越性能。论文地址:https://arxiv.org/pdf/2410.11905。
282 6
|
11月前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
下一篇
开通oss服务