文件传送协议

壹、文件传输协议FTP

一、FTP简介

文件传送协议FTP曾是互联网上使用最广泛的协议;

  • 在互联网发展的早期阶段,用FTP传送文件约占整个互联网的通信量的三分之一;知道1995年,www的通信量才首次超过FTP。

FTP实现的是通过网络实现异构计算机间文件的“拷贝”;

FTP屏蔽了计算机系统的细节,适合异构网络中任意计算机之间传送文件;

FTP提供交互式的访问,允许计算机指明文件的类型与格式,并允许文件具有存储权限。

FTP两个连接:

  • 一个用于传输数据(20号端口)
  • 一个用户传输命令(21号端口)

89beba80ba41467794ef533ec6454f1f.jpg

二、FTP的特点

采用客户服务器C/S模式,可为多个客户提供服务。

使用TCP可靠传输协议,客户在和服务器建立连接前要经过“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向对象,位数据传输提供可靠保证。

三、FTP工作方式与工作情况

主动方式:客户机与服务器21号端口建立连接之后,监听N+1号端口,服务器用20号数据端口主动向客户N+1端口建立连接。

被动方式:客户机用端口N与服务器21号端口建立连接之后,客户端打开N+1端口,发送命令给服务器,服务器开启端口P,客户从端口N+1和服务器端口P建立连接,用来进行数据传送。

FTP的工作情况

a460521a766944c18aff58f9ba8748d5.jpg

客户端除了控制进程和数据传输进程外,还有一个用户界面进程用来和用户交互。

四、FTP文件传输模式与存在的问题

文本模式:ASC II模式,以文本序列传输数据

二进制模式:以二进制序列传输数据

  • 传输文件之前必须要规定文件传输的模式

FTP存在的问题:

  • 用户状态与控制联系起来,没有传送数据的用户会断开连接
  • 必须追踪用户在服务器的目录树上的当前位置
  • 会话数增多,会降低FTP服务器的性能

贰、简单文件传输协议TFTP

一、TFTP简介

TFTP是TCP/IP协议族中的简单文件传送协议,使用客户服务器C/S模式,只支持文件传输而不支持交互。TFTP不支持对用户进行身份验证。

使用UDP无连接协议,不提供可靠性保证。UDP的数据包头相对简单,只包含源端口号和目的端口号,头部开销小。

二、TFTP的主要特点

每次传送的数据单元PDU中有512字节的数据,但最后一次可以不足512字节。

若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须最后发送一个只含首部而无数据的PDU。

TFTP的工作很像停止等待协议。发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发送完数据后在规定时间内收不到确认就要重发数据PDU。

三、TFTP报文格式

c15fb5ce0fff41fcb694e19a96cfc078.jpg

三、TFTP工作流程

384459006e81420bb27ee3e7d81a9008.jpg

ACK表示返回确认

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/6097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s: Helm搭建mysql集群(2)

搭建 mysql 集群 应用中心,mysql 文档参考https://artifacthub.io/packages/helm/bitnami/mysql 1 )helm 搭建 mysql A. 无存储,重启数据丢失 添加源 $ helm repo add mysql-repo https://charts.bitnami.com/bitnami安装 $ helm install…

GaussDB数据库事务管理

一、引言 事务管理是数据库系统中至关重要的一部分,它确保了数据库的一致性和可靠性。在GaussDB数据库中,事务管理不仅遵循传统的ACID特性,还提供了一些高级功能。本文将深入探讨GaussDB数据库事务管理的各个方面。 二、事务的基本概念 2.1…

机器学习:深入解析SVM的核心概念【四、软间隔与正则化】

软间隔与正则化 问题一:优化目标函数是如何得到的?得到的过程是怎样的?问题二:拉格朗日乘子法计算详细过程问题三:KKT条件求解过程问题四:结构风险最小化(SRM)的原理 在前面的讨论中…

Rust Turbofish 的由来

0x01 什么是 Turbofish 我们运行如下 Rust Snippet&#xff1a; fn main() {let numbers: Vec<i32> vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10];let even_numbers numbers.into_iter().filter(|n| n % 2 0).collect();println!("{:?}", even_numbers); }不出意…

mac 安装anaconda

1. anaconda Anaconda是一个开源的Python和R编程语言的发行版本&#xff0c;用于数据科学、机器学习、大数据处理和科学计算等领域。它包含了一系列用于数据分析和科学计算的软件包、库和工具&#xff0c;以及一个用于管理环境和依赖关系的包管理系统。 Anaconda主要包括以下…

2024年北京高校数学建模校际联赛竞赛B题

B题 铁道线路动态检测数据分析 铁道线路设备是铁路运输业的基础设备&#xff0c;它常年裸露在大自然中&#xff0c;经受着风雨冻融和列车荷载的作用&#xff0c;轨道几何尺寸不断变化&#xff0c;路基及道床不断产生变形&#xff0c;钢轨、联结零件及轨枕不断磨损&#xff0c…

富格林:有效控制暗箱阻挠被骗

富格林悉知&#xff0c;当前现货黄金的行情波动较为激烈&#xff0c;对于我们投资者来说意味着投资盈利的机会多了&#xff0c;但同时投资暗箱风险亦随之而来。如果我们面对暗箱风险没有做好半点准备的话&#xff0c;可能会遭遇巨大损失甚至无法阻挠被骗。那么我们该如何阻挠被…

Android 设置头像 - 相册拍照

Android开发在个人信息管理中&#xff0c;如果设置头像&#xff0c;一般都提供了从相册选择和拍照两种方式。下午将针对设置用户头像相册和拍照两种方式的具体实现进行详细说明。 在实际实现过程中需要使用到权限管理&#xff0c;新版本的Android需要动态申请权限&#xff0c;权…

OceanBase在实际应用中有哪些优势和不足?

OceanBase在实际应用中的优势和不足具体体现在以下几个方面&#xff1a; 优势&#xff1a; 架构创新&#xff1a;OceanBase发布的业内首个单机分布式一体化架构&#xff0c;能够实现单机部署并保持分布式架构的扩展性与集中式架构的性能优势。成本效益&#xff1a;OceanBase能…

mac上 完全清除新安装的python3环境

前言 之前未知的方式安装python3环境 导致python 混乱 先将其清除 操作 X 替换为自己的python版本 卸载 Python3 首先,需要卸载 Python3 及其相关文件。在终端中运行以下命令: sudo rm -rf /Library/Frameworks/Python.framework sudo rm -rf "/Applications/Python 3.…

React Context

Context https://juejin.cn/post/7244838033454727227?searchId202404012120436CD549D66BBD6C542177 context 提供了一个无需为每层组件手动添加 props, 就能在组件树间进行数据传递的方法 React 中数据通过 props 属性自上而下(由父及子)进行传递&#xff0c;但此种用法对…

Matlab|二阶锥松弛在配电网最优潮流计算中的应用

目录 一、主要内容 二、部分代码 三、程序代码 四、下载链接 一、主要内容 最优潮流计算是电网规划、优化运行的重要基础。首先建立了配电网全天有功损耗最小化的最优潮流计算模型&#xff1b;其次结合辐射型配电网潮流特点建立支路潮流约束&#xff0c;并考虑配电网中的可…

产品经理的产品思维

正确的思维 1&#xff1a;解决谁的&#xff0c;2&#xff1a;什么问题&#xff0c;3&#xff1a;用什么方法 错误的思维 技术转型的产品经理&#xff0c;接到一个需求&#xff0c;下意思里会想&#xff1a;用什么方法解决。 思维解读 解决谁的 即有哪些干系人&#xff0c…

macOS sonoma 14.4.1编译JDK 12

macOS sonoma 14.4.1编译JDK 12 环境参考文档开始简述问题心路历程着手解决最终解决(前面有点啰嗦了&#xff0c;可以直接看这里) 记录一次靠自己看代码解决问题的经历(总之就是非常开心)。 首先&#xff0c;先diss一下bing&#xff0c;我差一点就放弃了。 环境 macOS sonom…

git 子模块

git config -f .gitmodules submodule xxx xxx.git git submodule sync 删除&#xff1a; git submodule deinit <name_of_submodule> git rm -f <name_of_submodule> rm -rf .git/modules/<name_of_submodule> git commit -m “Deleted submodule xy” 重…

Java面试题:解释synchronized和java.util.concurrent包中的Lock有什么区别?

在Java中&#xff0c;synchronized和java.util.concurrent包中的Lock都是用于实现线程同步的机制&#xff0c;但它们之间存在一些关键的区别&#xff1a; 使用方式&#xff1a; synchronized是Java的一个关键字&#xff0c;可以用于修饰方法或者代码块&#xff0c;是一种内置的…

商场数据库项目MySQL实战(1——44)

我们在学习了MySQL基础语句后&#xff0c;终于迎来了第一次实战项目。 此次项目包含了88张商场可能用到的数据库表单&#xff0c;以便于商场的日常运行&#xff0c;并记录商场的各项数据。 通过表单的设计和建立&#xff0c;商城项目可以有效地管理用户信息、商品信息、订单和…

[力扣]——125.验证回文串

class Solution {public static boolean isValidChar(char ch){if((ch > a && ch < z) ||(ch > 0 && ch < 9)){return true;}return false;}public boolean isPalindrome(String s) {// 将大小写统一起来s s.toLowerCase();int left 0, right s…

vulnhub靶场之FunBox-2

一.环境搭建 1.靶场描述 Boot2Root ! This can be a real life scenario if rockies becomes admins. Easy going in round about 15 mins. Bit more, if you are find and stuck in the rabbit-hole first. This VM is created/tested with Virtualbox. Maybe it works with…

Stable Diffusion部署到Windows的详细教程

Stable Diffusion是一种文本到图像的潜在扩散模型,它可以从文本描述中生成高质量的图像。在Windows系统上部署Stable Diffusion,可以方便地利用这一功能进行创作或研究。本教程将指导你完成Stable Diffusion在Windows上的部署过程。 一、环境准备 安装Python:首先,确保你的…