`
cakin24
  • 浏览: 1383954 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

FTP工作原理与抓包

阅读更多

一 简介

FTP的传输使用的是TCP数据包协议,TCP在建立连接前会先进行三次握手。不过FTP服务器比较麻烦一些,因为FTP服务器使用了两个连接,分别是命令通道与数据通道。因为是TCP数据包,所以这两个连接都需要经过三次握手。
根据数据连接的建立方式,FTP服务的数据传输可以分为主动模式(Active)和被动(Passive)模式。下面就这两种模式分别进行介绍。
 
二 主动模式
1、定义
主动模式是FTP服务器向FTP客户端传输数据的默认模式。当FTP客户端请求以主动模式传输数据时,由客户端向服务器端发送准备接受数据的IP地址和端口Y,该端口应该是大于1024的非特权端口。服务器端主动发起并建立到指定的IP地址和端口Y上的连接。由于Y端可以随机指定,导致这种方案要求客户端机器必须允许FTP服务器能够顺利地连接所有的端口,因此可能存在一定的安全隐患。
2、FTP服务器主动连接示意图
3、主动模式分析
步骤一:建立命令通道连接
如上图,客户端会随机取一个大于1024以上的端口(port AA)来与FTP服务器端的port 21实现连接,这个过程当然需要三次握手。实现连接后客户端便可以通过这个连接来对FTP服务器执行命令,查询文件名、下载、上传等等命令都是利用这个通道来执行的。
步骤二:通知FTP服务端使用Active且告诉连接的端口号
FTP服务器端的端口 21号主要用在命令的执行,但是当牵涉到数据流时,就不是使用这个连接了。客户端在需要数据的情况下,会告知服务器端要用什么方式连接,如果是主动模式连接,客户端会随机启用一个端口(port BB),且通过命令通道告知FTP服务器这两个信息,并等待FTP服务器端的连接。
步骤三:FTP服务端主动向客户端连接
FTP服务器由命令通道了解客户端的需求后,会主动由port 20向客户端port BB连接,这个连接当然也会经过三次握手。此时FTP的客户端与服务器端建立了两条连接,分别用在命令的执行和数据的传输。而默认FTP服务端使用主动连接端口就是port 20。这样就建立起“命令”与“数据传输”两个通道。
注意:
第1点:数据传输通道是在有数据传输的行为才会建立连接,并不是一开始连接到FTP服务器就立刻建立的数据通道。
第2点:命令通道的FTP默认为port 21。数据传输的FTP-DATA默认为port 20。
第3点:这两个端口的工作原理是不一样的,而且,两者的连接发起端是不一样的。首先port 21接受来自客户端的主动连接,port 20则是FTP服务器主动连接到客户端。
 
二 被动模式
1.定义
在被动模式下,客户端通过PASV命令获得服务器端IP地址和数据端口,然后向服务器端发起连接请求,从而建立数据连接。因此服务器端只是被动地监听在指定端口上的请求。
当连接某个FTP服务器失败时可以试着修改FTP客户端工具配置,改变传输模式,这样或许能够连接成功。
2、FTP被动连接示意图

3、被动模式分析
步骤一:客户端与服务器建立命令通道
同样需要建立命令通道,通过三次握手就可以建立起这个通道了。
步骤二:客户端发起PASV的连接要求
当使用数据通道命令时,客户端可通过命令通道发起PASV的被动式连接要求,并等待服务器的回应。
步骤三:FTP服务器启动数据端口,并通知客户端连接
如果你使用的FTP服务器是能够处理被动式连接的,此时FTP服务器会先启动一个监听端口。这个端口号码可以是随机的,也可以自定义某个范围的端口。然后FTP服务器会通过命令通道告知客户端已经启动的端口(port PASV),并等待客户端的连接。
步骤四:客户端随机取用大于1024的端口进行连接
最后你的客户端会随机取用一个大于1024端口来进行对FTP服务器port PASV连接。如果一切都顺利,那么FTP数据就可以通过port BB和port PASV来传送了。
注意:
第1点:被动模式FTP数据通道是由客户端向服务器端发起连接的。
4、被动模式抓包分析
通过ftp到ftp.ksu.edu.tw这个FTP服务器,我们抓一下包,下面是登录过程。

第一步:客户端发起命令通道的三次握手。

第二步:客户端发起PASV的连接请求。
第三步:服务器端启动数据端口,并告知客户端该端口号。

第四步:客户端发起数据通道的三次握手。

 
  • 大小: 25.5 KB
  • 大小: 27.1 KB
  • 大小: 70.6 KB
  • 大小: 58.1 KB
  • 大小: 54.8 KB
  • 大小: 59.2 KB
  • 大小: 50.2 KB
1
5
分享到:
评论

相关推荐

    FTP的wireshark抓包.zip

    在这个名为"FTP的wireshark抓包.zip"的压缩包中,包含了五个与FTP操作相关的Wireshark捕获文件,分别是FTP目录创建和重命名、FTP目录删除、FTP上传、FTP下载以及FTP登录。下面将详细讲解这些操作在FTP协议中的实现...

    实验:使用Sniffer 抓包分析FTP、TCP、ICMP等协议

    通过本实验,我们可以掌握如何使用 Sniffer 工具对 FTP、TCP、ICMP 等协议进行抓包分析,掌握协议的数据结构和工作机理,理解网络中数据流的封包格式与输出字段,掌握脆片的原理和重组过程。 在实验报告中,我们...

    迅雷抓包数据

    总结来说,"迅雷抓包数据"的分析可以揭示迅雷下载的底层网络通信细节,帮助我们理解P2SP下载技术的工作原理,以及迅雷如何利用各种网络协议来优化下载体验。这对于网络工程师、开发者以及对网络通信感兴趣的人员来说...

    抓包工具(锐捷) 以太网专用

    2. **抓包原理**:抓包工具如Wireshark、tcpdump或锐捷提供的工具,通过监听网络接口,捕获在网络中传输的数据包。这些工具在数据链路层工作,读取并记录通过网络接口发送和接收的所有帧,然后保存为 pcap 或 pcapng...

    Wireshark抓包全集(85种协议、类别的抓包文件

    7. **教学与研究**:这些抓包文件对于教育和研究也是极好的素材,可以直观展示各种网络协议的实际应用,帮助学生快速掌握网络原理。 8. **自定义抓包**:尽管提供了现成的抓包文件,但亲手抓包仍然是提升技能的重要...

    抓包工具,亲测可用,32,64位都有

    1. 抓包原理: 抓包工具通过监听网络接口,捕获经过该接口的数据包。这些工具在操作系统内核级别工作,获取网络接口层的数据,而不仅仅是应用层的处理结果。常见的抓包机制包括在Linux上的libpcap库和在Windows上的...

    抓包工具,抓包工具,抓包工具

    - **应用开发与调试**:开发者可以利用抓包工具检查HTTP、HTTPS请求,了解API交互、头信息和响应内容。 - **性能优化**:分析网络带宽使用,查找瓶颈,优化网络配置和应用程序性能。 4. **HttpAnalyzerFullV4_...

    智能卡驱动_抓包工具_登录工具ftp_putty

    在实际应用中,这三者常常结合在一起,例如在智能卡认证的远程登录场景中,可能需要使用FTP_PuTTY通过安全的SSH连接登录到服务器,同时利用抓包工具监控网络通信,确保数据传输的安全。而智能卡驱动则确保智能卡的...

    Wireshark抓包全集(85种协议、类别的抓包文件)

    这些抓包文件能帮助用户了解协议的工作原理,例如TCP的三次握手、四次挥手过程,HTTP请求和响应的结构,DNS查询和响应的过程等。通过实际案例,可以加深对每个协议功能和交互的理解。 4. **网络分析**: ...

    Wireshark抓包全集(85种协议、类别的抓包文件).zip

    这些协议的抓包文件可以帮助我们深入理解每种协议的工作原理。例如,通过分析TCP流量,可以了解三次握手和四次挥手的过程,理解连接建立与关闭的机制;通过查看DNS请求和响应,能掌握域名解析的流程;在HTTP或HTTPS...

    抓包.zip

    通过抓包,我们可以深入了解各种网络协议的工作机制,如TCP/IP、UDP、HTTP、FTP等。例如,TCP协议的三次握手和四次挥手过程,HTTP请求的头信息,以及FTP的数据传输模式等,都能在抓包结果中找到清晰的踪迹。 五、...

    抓包提交工具

    5. **学习曲线**:对于初学者,理解抓包工具的工作原理和分析结果可能有一定难度,需要投入时间和精力学习相关知识。 总的来说,"抓包提交工具"是网络调试中的得力助手,而HKCPost.exe 和 Usp10.dll 分别提供了抓包...

    java实现网络抓包

    Java 实现网络抓包主要涉及网络通信协议的理解、数据包捕获与解析、以及HTTP协议的深入认识。在这个过程中,开发者通常会用到Java的Socket编程、数据流处理以及第三方库,如Jpcap或Wireshark的Java绑定库。 首先,...

    抓包工具,抓包客户端

    本篇文章将深入探讨抓包工具的基本原理、功能以及常见应用。 首先,理解抓包的基本概念。抓包,也称为网络嗅探,是指在计算机网络中捕获数据包的过程。这些数据包包含了网络传输的所有信息,包括源和目标地址、端口...

    JAVA网络抓包程序源代码

    了解这些协议的工作原理,是实现抓包功能的基础。 2. **JNI (Java Native Interface)**:Java本身并不直接支持底层的数据包捕获,因此可能需要借助JNI来调用C/C++的libpcap库,这个库是许多网络抓包工具(如...

    TCP-IP协议抓包分析实验报告.docx

    3. 使用 Sniffer 嗅探器抓包:在 Sniffer 软件界面上点击“stop and display”,选择 Decode 选项,完成 FTP 命令操作过程数据包的捕获。 四、实验结果及分析 实验结果显示,使用 Sniffer 嗅探器可以成功截获 FTP ...

    抓包工具,网络管理员必备

    本文将详细介绍抓包工具的功能、工作原理及如何使用。 ### 一、什么是抓包工具 抓包工具,也被称为网络嗅探器(Network Analyzer),是一种软件应用,它能够记录通过网络传输的数据包。这些数据包包含了网络通信中...

    网卡抓包工具

    本文将深入探讨网卡抓包工具的核心功能、工作原理以及如何使用。 一、网卡抓包工具介绍 网卡抓包工具,如Wireshark(前身为Ethereal)和Microsoft Network Monitor,是广泛使用的开源工具,它们允许用户实时查看...

    常见协议抓包

    总结来说,通过抓包分析,我们可以深入了解这些常见协议的工作原理,这对于网络故障排查、性能优化以及网络安全分析都具有极大的价值。在实际操作中,应熟练掌握抓包工具的使用,并结合协议规范,解读抓包数据,以...

Global site tag (gtag.js) - Google Analytics