ftp抓包分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunny_ss12/article/details/53128292

ftp传输包含两种连接,一种是控制命令的socket连接,服务端口号一般为21,一种为数据的socket连接。关于数据连接有两种方式:被动模式和主动模式。这里是对一次ftp数据连接的网络包分析:

2951 22.083150 10.17.87.182 10.18.220.174 FTP 72 Request: EPSV

2952 22.084168 10.18.220.174 10.17.87.182 FTP 114 Response: 229 Entering Extended Passive Mode (|||51609|)

2953 22.085355 10.17.87.182 10.18.220.174 TCP 74 48528→51609 [SYN] Seq=0 Win=64240 Len=0 MSS=1460 SACK_PERM=1 TSval=40061497 TSecr=0 WS=2048

2954 22.085654 10.18.220.174 10.17.87.182 TCP 74 51609→48528 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1 TSval=423762 TSecr=40061497

2955 22.086755 10.17.87.182 10.18.220.174 TCP 66 48528→51609 [ACK] Seq=1 Ack=1 Win=65536 Len=0 TSval=40061498 TSecr=423762

ftp服务器IP:10.18.220.174 

从网络包中可以看出:两端传输ftp数据使用扩展被动模式。即当需要传输ftp数据时,客户端向服务器发送EPSV命令,之后服务器向客户端发送传输数据用的端口号(这里是51609),之后客户端连接服务器的端口号51609,传输完一次数据后该连接断开。


转载:

FTP工作过程的抓包分析     http://blog.csdn.NET/nndtdx/article/details/6547419

关于被动模式与主动模式书上这么解释来着。
客户端与服务器建立控制连接后,要告诉服务器采用哪种文件传输模式。FTP提供了两种传输模式,一种是Port(主动模式),一种是Passive被动模式。这个主被动指的是服务器端。
主动,是指服务器端主动向客户端发起数据连接请求,那么此时服务器端要用自己的一个固有端口一般是20去监听客户端。整个过程是这样的,客户端在最初 会用一个端口3716向服务器端的21发起控制连接请求(应该是在握手后中确定的吧),连接成功后,在发送port 3716+1,告诉服务服务器端坚定3717,那么服务器端就会用数据端口,一般是20与3717建立连接(这就是主动进行数据连接)。服务器端利用自己的20与客户端 3717来文件的数据传送通信,利用21和客户端最初的端口3616进行用户验证和管理。
  而被动模式,是服务器端被动的接受客户端的数据连接请求,这个端口号是由客户端告知服务器端的,在本地随机生成(1025-65535)。

阅读更多
换一批

没有更多推荐了,返回首页