[svc]ftp協議數據連接的2種模式
阿新 • • 發佈:2018-01-18
協議 隨機 分享圖片 script info scrip ftp服務 角度 報文
玩明白了以太網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
客戶端主動去和服務端建立數據連接(站在服務端角度,是服務端被動等客戶端)
客戶端和服務端之間斷開數據連接
客戶端和服務端之間斷開控制連接
[svc]ftp協議數據連接的2種模式