FTP 主动被动概念这里就不说了,网上太多了,下面是个人的一点例子,总结
Port模式 (主动模式)
Client(192.168.0.101) Server (10.251.30.69)
Client->Server Request: PORT 192,168,0,101,206,177
Server->Client Response: 200 PORT command successful
Server->Client TCP SYN src port = 20 dst port = 206*256+177=52913
EPRT 模式
和PORT模式类似,是RFC2428中取代PORT命令的,因为PORT模式是
(h1,h2,h3,h4,p1,p2)结构,不能表示ipv6.
基本(示例)格式为:
Ipv4的: Request EPRT |1|192.168.9.5|1056
Ipv6的: Request: EPRT|2|2002:FE00::4235|1032
-------------------------------------------------------------
Pasv模式 (被动模式)
Client(192.168.9.1) Server(192.168.9.2)
Client -> Server Request: PASV
Server->Client Response: 227 Entering Passive Mode(192,168,9,2,4,8)
注:4*256+8 =1032端口
Client->Server SYN 注:client的port由client自己决定(一般和信令不是同一个端口),Dst port(server)一定为1032(前面计算的)
Server->Client SYN ACK
Client -> Server ACK
Client->Server Request: SIZEfilepath dst port = 21
Server->Client Reponse: xxx bytes
Client->Server Request: RETR filepath
Server->Client Response: Opening BINARYmode data connection for filepath
Server->Client TCP data src port = 1032