FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

一、为什么写这个

昨天遇到个ftp相关的问题,关于ftp匿名访问的。花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问。

期间不会弹出输入用户名密码来登录的窗口。

今天我主要是有点好奇,在此过程中,究竟是否是用匿名账户“anonymous”该账户登录了,还是根本不需要登录呢?

于是用wireshark抓包了一下。

二、抓包过程

我这边直接用了捕获过滤器抓本机和ftp之间的包。抓包后直接ctrl+F进行文本查找。

果然发现是发送了USER anonymous命令的。

三、ftp的基础知识

来源于:https://blog.csdn.net/iloli/article/details/5805262

FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。

PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。

PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。

总结来说,主动模式时,由客户端提供数据传输端口。。被动时,由服务器端提供数据传输的端口。

四、ftp基础的几个命令进行抓包分析

1、操作记录

在windows的cmd里面,一般默认就是有ftp命令的。

操作步骤很简单,只是匿名用户登录,查看目录下文件,然后退出登录。

2、抓包分析

2.1建立连接

前面几个抓包为建立连接。

然后是服务端发回的响应:(请求的包没看到,不知道是不是对应我上面的ftp 10.10.20.2操作)

2.2登录操作:

然后是登录成功的响应:

2.3 ls命令请求包

接下来是ls命令触发的一个包:

该包主要是客户端向服务端发起的一个请求。

当 PORT 命令被提交时,它指定了客户端(10.15.4.46)上的一个端口而不是服务器的。

该端口号的计算规则就是:211*256 + 220 = 54236,211与220也就是下面红框标识出来的数字的最后两位.

下面是服务器端的响应,表示连接已建立。再下面一条是客户端发送的ls命令,查看目录下的文档。

2.4 服务端建立单独连接来发送ls的返回数据

再下来是服务端要返回数据了,于是主动向客户端的54236端口请求建立tcp连接。(就是上面计算出来的那个)

见下图,这期间,夹杂了原有的21端口与客户端的连接的响应消息。

2.5 ls的数据传输及连接断开

连接断开分了两部分,一部分是ftp层面的。一部分是tcp层面的连接断开。

其中tcp连接断开由服务器端发起。

五、个人一点感悟

以前面试腾讯时,被问过tcp粘包相关的问题。问到说ftp是怎么解决粘包的。

当时没答上来。后来才知,ftp的每个包都在包的结尾用了\r\n进行标识。

如下:

其中的0d、0a在asicc中就是回车、换行的意思。

六、一些参考资料

Wireshark数据抓包分析之FTP协议

深入理解ftp协议

ftp两种模式详解

原文地址:https://www.cnblogs.com/grey-wolf/p/9882125.html

时间: 2024-10-10 10:38:26

FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接的相关文章

从wireshark抓包分析rtmp协议,并提取出H264视频流

利用wireshark抓取rtmp流数据, 分析到rtmp流后,写入过滤条件,如 tcp.stream eq 6 导出tcp流 保存16进制的数据为纯文本格式 一定要选择 Hex转储,然后点击 "Sava as"注意,这个流开始的第一个字节一定是03,才是正确的.至此,我们有了可以用于分析的rtmp流的数据. 从wireshark抓包分析rtmp协议,并提取出H264视频流 原文地址:https://www.cnblogs.com/russinovich/p/9240944.html

利用Wireshark抓包登录博客园

1,打开WireShark,选择本地网卡. 2,在filter中输入过滤条件Http. 3,找到http包中的get 和post的包,这时你可以找到你登录的用户名和密码了,这个用户名和密码通过表单进行验证. 利用Wireshark抓包登录博客园,布布扣,bubuko.com

【计算机网络】wireshark抓包分析1

学习计算机网络很久了,但总是局限于书本知识,感觉get不到重点.经师兄建议用wireshark抓包分析看看. 我自己以前并没有做过抓包分析,所以这篇博文可能会有很多错误,只是我自己的一个记录,路过的亲们千万别当成教程,以免误入歧途.... TCP协议首部: 在Filter中设置为:ip.dst == 222.199.191.33 or ip.src == 222.199.191.33 这个地址是干什么的不知道,只是跟它的交互特别多,就选他了. 分析第一个包: 源地址:我自己电脑的IP,就不放上来

wireshark抓包分析

wireshark抓包分析 wireshark是非常流行的网络封包分析软件,功能十分强大.可以抓取各种网络包,并显示网络包的详细信息. 开始界面 wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡. 点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡.然后点击"Start"按钮, 开始抓包 Wireshark 窗口介绍 WireShark 主要分为这几个界面 1. Display Filter(显示过滤

云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> SLB -> 客户端浏览器. 下面是分析的过程: 1. 启动Wireshark,针对内网网卡进行抓包. 2. 在IIS日志中找出要分析的请求(借助Log Parser Studio) 通过c-ip(Client IP Address)可以获知SLB的内网IP,在分析Wireshar抓包时需要依据这个IP进

Wireshark抓包分析从入门到精通

曾近有个牛逼的实战课程放在你的面前,你不懂得好好珍惜,直到失去后才追悔莫及,如果G-LAB可以给你再来一次的机会,你会不会抓住?没错,G-LAB真的给了你再来一次的机会.[Wireshark抓包分析从入门到精通]主讲<郭主任>(月光宝盒索取)请联系QQ:2853771084

Wireshark抓包分析TCP 3次握手、4次挥手过程

Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是什么? Wireshark 是最著名的网络通讯抓包分析工具.功能十分强大,可以截取各种网络封包,显示网络封包的详细信息. 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样(当然比那个更高级).过去的此类工具要么是过于昂贵,要么是

使用wireshark抓包分析浏览器无法建立WebSocket连接的问题(server为Alchemy WebSockets组件)

工作时使用了Websocket技术,在使用的过程中发现,浏览器(Chrome)升级后可能会导致Websocket不可用,更换浏览器后可以正常使用. 近日偶尔一次在本地调试,发现使用相同版本的Chrome浏览器,不可连接线上服务器的WS服务,但是可以连接本地的WS服务. 此时初步怀疑是服务器在某种特殊情况下会触发无法连接的问题. 使用Wireshark抓包 Filter:    ip.dst==serverIP or (ip.dst==本地IP and ip.src==serverIP) 一.查看

锐捷CCNA系列(二) Wireshark抓包分析Ping过程

实训目的 初步了解Wireshark的使用. 能分析Ping过程. 实训背景 PING(Packet Internet Groper, 因特网包探索器),用于测试网络是否连通的程序,在Windows.Linux.Unix下都是标配程序,Ping发送一个ICMP (Internet Control Messages Protocol, 因特网信息控制协议)Request,接收方收到后,马上回复一个ICMP Echo(Reply). 实训拓扑 实验所需设备: 设备类型 设备型号 数量 交换机 S37