FTP(目前最全面,最详细,最简单易懂)
3.FTP文件传输协议背景FTP是位于 TCP/IP 应用层协议。日常中我们想把文件分享给对方。使用最多的就是FTP服务器然后对方再通过FTP客户端程序下载分享的文件。端口TCP 20数据连接、TCP 21 控制连接控制连接用来在FTP客户端与服务器之间传递命令所有你发往FTP服务器的命令与服务器反馈的指令都是通过服务器的21的端口传送的数据连接主要用来传递数据比如客户端用来传递上传下载文件以及显示服务端目录的内容。数据表示类型ASCII类型假定传输的是纯文本会根据发送端和接收端的操作系统自动转换换行符将本地文件转为标准ASCII再传输。适合.txt、.html但是会直接毁掉二进制文件。Binary二进制类型原样逐比特传输绝无转换。这是目前默认并且唯一的推荐类型适合用于图片、压缩包、可执行文件等一切非文本文件。数据连接建立类型这决定了数据连接由谁发起是NAT/防火墙兼容性的关键。工作原理首先FTP是分为俩种模式的所以它们建立连接的过程有差异化不过也会有相同的地方。相同的地方就在于在俩种模式的前提都需要先通过客户端随机开放的一个大于1024的高位端口N向FTP服务器的控制端口21建立TCP连接。接着根据模式进行不同的数据连接进程主动模式PORT当客户端需要服务器端传递数据时就会利用之前建立的控制连接发送一个Port指令含有h1,h2,h3,h4,h5,h6)后俩位h5 * 256 h6组合就是告诉服务器我又开放了一个用来传递数据的随机端口M然后服务器主动通过自己的TCP 20端口与端口M进行TCP连接从而建立数据连接。被动模式PASV客户端发送PASV指令给服务端服务器在收到指令后会选择一个随机端口打开然后返回一条227h1h2h3h4h5h6的响应消息告知客户端开放的高位端口A最后客户端通过获取到消息主动利用自身的随机高位端口与端口A继续TCP数据连接并且传输。注意为什么在每次传输完之后都要断开数据连接为什么不能用同一个连接因为这是一个文件传输的天然的结束标志首先一次数据连接就对应着一个明确的任务便于管理。其次每次数据传输完就断开还减轻了服务器部分的负担。TCP的本质是可靠的数据流它不知道这是命令还是文件内容。俩个模式的区别最大的的区别是谁来主动发起连接。被动模式服务器只开放了用于数据控制连接的TCP21端口。主动模式服务器还额外开放了用于数据连接的TCP20端口。我们为什么平常使用被动模式多1.核心原因就是主动模式下私网地址公网不可达的原因。并且这个连接的服务器主动发起的NAT路由器不知道应该转发给谁目的NAT与端口映射很麻烦每次开放的端口都不一样。2.被动模式是客户端主动发起的所以 NAT 可以像处理普通上网流量一样自动建立映射。补充也有解决办法有FTP ALG的出现可以识别数据连接里面的PORT指令里含有的端口。安全演化因为FTP上面的所有内容都是明文传输极其不安全因此出现了加密的FTP协议FTPSFTP TLS加密本质还是FTP。工作原理首先都是基于FTP的TCP21端口控制连接建立的基础上只是区分了俩个模式显式FTPS常用首先在建立了控制连接后客户端会发送一个AUTH TLS命令用来升级控制连接为TLS服务器接受后回复234 AUTH TLS successful响应命令意味着接下来开始TLS握手。在握手后控制连接通道变成了加密通道不过数据连接还是需要再次进行TLS加密的。这一加密是在数据连接建立之后再次进行TLS三次握手的。这次握手跟FPT的模式没有关系都是在数据连接建立之后再进行TLS握手连接的。TLS握手过程1.服务器发送数字证书、公钥、证书链用于客户端进行CA签发1、是福哦过期、域名是否匹配。2.协商加密参数TLS版本、加密算法、会话密钥。3.建立安全通道就是将控制连接加上了TLS加密。隐式FTPS它跟显式的FTPS不一样的地方在于从一开始建立连接时就强制使用TLS服务器的990端口加密。没有中间的AUTH TLS命令

相关新闻

Notion 从入门到精通:掌握 All-in-One 工作区的核心概念与实战应用

Notion 从入门到精通:掌握 All-in-One 工作区的核心概念与实战应用

最近在整理个人知识库和团队协作文档时,发现很多工具要么功能单一,要么过于复杂。直到深度使用了 Notion,才真正体会到“All-in-One”工作区的魅力。它不仅仅是一个笔记工具,更是一个可以自由搭建的数据库、项目管理面板和个人Wik…

2026/10/18 20:18:57 阅读更多 →
一次 nacos 配置不生效问题的总结

一次 nacos 配置不生效问题的总结

这是一个典型的 Nacos 配置覆盖/优先级 问题。@Value 只拿到了代码中的默认值 449,说明 Nacos 中的配置 1552 没有生效。 我帮你分析一下可能的原因和解决方案: 🔍 问题排查步骤 1. 确认 Nacos 配置是否真的加载了 在启动类或配置类上加 @RefreshScope,并在日志中打印配…

2026/10/20 14:41:40 阅读更多 →
Django与Flask混合开发自习室预约系统实践

Django与Flask混合开发自习室预约系统实践

1. 项目概述:自习室座位预约系统的核心需求自习室座位预约系统是高校、图书馆和共享办公空间常见的数字化管理工具。这个Python项目采用Django和Flask框架实现,核心功能包括座位预约、签到签退、使用时长统计等模块。我去年为本地大学图书馆开发的这套系…

2026/10/19 22:08:53 阅读更多 →

最新新闻

React项目实战:从极简标题到完整前端方案的技术选型与性能优化

React项目实战:从极简标题到完整前端方案的技术选型与性能优化

1. 从“rea”这个标题说起:一个被极简命名掩盖的完整项目第一次看到“rea”这个标题,我承认自己愣了几秒。没有正文,没有关键词,没有摘要,只有一个三字母的短词。这种极简到近乎空白的输入,反而让我觉得有意…

2026/10/20 19:00:00 阅读更多 →
新概念第四册Lesson 35精读:用英语重装思维操作系统

新概念第四册Lesson 35精读:用英语重装思维操作系统

1. 为什么这篇课文值得花时间精读:不是背单词,而是重建思维节奏“新概念英语第四册Lesson 35 — The Pegasus Book of Inventors”,光看标题,很多人第一反应是:“哦,老教材,讲发明家故事的阅读课…

2026/10/20 19:00:00 阅读更多 →
零信任架构结合SPIFFE/SPIRE的本地大模型WebUI服务

零信任架构结合SPIFFE/SPIRE的本地大模型WebUI服务

开篇先把话说明白:这套东西不是“我搭了个聊天机器人”,而是一套完整的本地化WebUI作品集,底层用的开源社区12B参数级别的指令微调大模型,也就是标题里的Gemma-3-12B-IT,外层再包一层交互展示界面,同时把整…

2026/10/20 19:00:00 阅读更多 →
社交网络分析中的数据建模:从属性图到图数据库的工程实践

社交网络分析中的数据建模:从属性图到图数据库的工程实践

2021年我在某社交平台的数据团队做用户分析时,每天要处理的数据量级以亿计,但真正困扰我们的不是存储和计算,而是“这些数据到底该怎么组织”。同样是“用户”和“用户之间发生了互动”,在关系数据库里拆成三张表,在图…

2026/10/20 19:00:00 阅读更多 →
VHDL手写FFT:参数化定点RTL实现,摆脱IP核依赖

VHDL手写FFT:参数化定点RTL实现,摆脱IP核依赖

FFT的VHDL手写实现,我在项目里折腾过好几版,从最简单的16点验证到1024点应用,踩了不少坑也积累了一些经验。这次分享的这套代码,核心特点是完全绕开厂商IP核,N点长度通过顶层参数配置,输入16位有符号定点数…

2026/10/20 19:00:00 阅读更多 →
Claude Skill 下载安装完全指南:三种方法与排错思路

Claude Skill 下载安装完全指南:三种方法与排错思路

我估摸着不少人和我一样,第一次听到"Claude Skill"这四个字的时候,脑子里冒出来的问题就一个:这到底是个插件、一套配置,还是一个能自动干活的小助手?等你真正打开搜索框开始找下载安装教程,又会…

2026/10/20 18:58:59 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →