[svc]ftp协议数据连接的2种模式

玩明白了以太网2的二层数据格式, ip格式 tcp/udp个时候, 需要玩一玩一些有用的基于这些已上的协议数据了. 如 dhcp ftp等.比较有趣.

ftp协议#

分控制连接21端口 和数据连接 20端口

数据连接站在服务端角度来讲分两种模式: 主动模式(服务端主动用自己的20端口去连客户端,适合防火墙)
被动模式(服务端被动等客户端来连服务端的一个随机端口.)

每个协议都有控制层面(对应控制报文),和数据层面(对应的传输数据,有些只有控制层面,如dhcp不需要传数据)

FTP服务端会监听2个端口, 控制进程20,数据进程21(主动模式)

数据连接,站在服务器角度,有2种模式:
    主动模式:ftp server从20端口主动向客户端发起连接,由于源端口固定,所以适用于模式防火墙模式.
    被动模式:ftp server被动等待客户端来连我的这个端口(控制连接后会告知会将passive ip/port告知了客户端)
一般情况下默认都是被动模式

ftp两种模式#

原图和两枚ftp数据包: https://github.com/lannyMa/scripts/tree/master/pkgs/ftp

主动模式数据交互过程#

14.1 客户端 14.128服务端

  • 建立控制连接,3次握手, 客户端连服务端21端口

  • 待连接建立后,客户端告知服务端 active ip/port

  • 服务端主动和客户端建立数据连接(站在服务端角度,是服务端主动去找客户端)

  • 传输数据

  • 断开数据连接

  • 断开控制连接

被动模式数据交互过程#

  • 客户端主动去和服务端建立控制连接

  • 服务端告知客户端passive mode /ip/port

  • 客户端主动去和服务端建立数据连接(站在服务端角度,是服务端被动等客户端)

  • 客户端和服务端之间断开数据连接

  • 客户端和服务端之间断开控制连接

作者:iiiiiher

出处:https://www.cnblogs.com/iiiiiher/p/8311358.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   mmaotai  阅读(269)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu