亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號

FTP協(xié)議的分析和擴展
2008-04-22   中國協(xié)議分析網(wǎng)

根據(jù)是使用Port模式還是Passive模式,F(xiàn)TP使用不同的TCP端口號,在詳細(xì)描述FTP前,我們來
簡單討論一下TCP端口號的一些基本概念。TCP使用端口號來標(biāo)識所發(fā)送和接收的應(yīng)用,端口號
可以幫助TCP來分離字節(jié)流并且?guī)拖鄳?yīng)字節(jié)傳遞給正確的應(yīng)用程序。
TCP端口號可以是半永久的和暫時的。服務(wù)器端監(jiān)聽在半永久的端口上來讓客

戶端訪問。客戶
端使用暫時的端口在本地標(biāo)識一個對話,客戶端端口只在使用TCP服務(wù)時候才存在,而服務(wù)器
端口只要服務(wù)器在運行就一直在監(jiān)聽。

TCP端口可以歸為3類:
1、眾所周知的端口來標(biāo)識在TCP上運行的標(biāo)準(zhǔn)服務(wù),包括FTP、HTTP、TELNET、SMTP等,這些
端口號碼范圍為0-1023;
2、注冊端口號用來標(biāo)識那些已經(jīng)向IANA(Internet Assigned Numbers Assigned Numbers
Authority)注冊的應(yīng)用,注冊端口號為1024-49151;
3、私有端口號是非注冊的并且可以動態(tài)地分配給任何應(yīng)用,私有端口為49152-65535;
注冊的端口號本來打算只給注冊的應(yīng)用使用,可近年來端口號已經(jīng)陷入了到達極限的困境,你
可能會看到本來應(yīng)該是給注冊應(yīng)用使用的注冊端口被非注冊應(yīng)用用做暫時的端口。RFC1700詳
細(xì)標(biāo)注了眾所周知的和注冊的端口號,然而不幸的是,這個RFC文檔自從1994年以來一直沒有
被更新,然后你仍可以從IANA得到一個及時更新的端口列表,詳細(xì)URL為:
http://www.iana.org/assignments/port-numbers


>>2.0<< FTP Port模式和FTP Passive模式
當(dāng)你對一個FTP問題進行排錯時候,你首先要問的一個問題是使用的是port模式的還是passive
模式。因為這兩種行為迥異,所以這兩種模式引起的問題也不同;在過去,客戶端缺省為acti
ve(port)模式;近來,由于Port模式的安全問題,許多客戶端的FTP應(yīng)用缺省為Passive模式。

>>2.1 FTP Port模式
Port模式的FTP步驟如下:
1、 客戶端發(fā)送一個TCP SYN(TCP同步)包給服務(wù)器段眾所周知的FTP控制端口21,客戶端
使用暫時的端口作為它的源端口;
2、 服務(wù)器端發(fā)送SYN ACK(同步確認(rèn))包給客戶端,源端口為21,目的端口為客戶端上使用
的暫時端口;
3、 客戶端發(fā)送一個ACK(確認(rèn))包;客戶端使用這個連接來發(fā)送FTP命令,服務(wù)器端使用這個
連接來發(fā)送FTP應(yīng)答;
4、 當(dāng)用戶請求一個列表(List)請求或者發(fā)起一個要求發(fā)送或者接受文件的請求,客戶端軟件使用
PORT命令,這個命令包含了一個暫時的端口,客戶端希望服務(wù)器在打開一個數(shù)據(jù)連接時候使用
這個暫時端口;PORT命令也包含了一個IP地址,這個IP地址通常是客戶自己的IP地址,而且FT
P也支持第三方(third-party)模式,第三方模式是客戶端告訴服務(wù)器端打開與另臺主機的連接;
5、 服務(wù)器端發(fā)送一個SYN包給客戶端的暫時端口,源端口為20,暫時端口為客戶端在PORT命令中
發(fā)送給服務(wù)器端的暫時端口號;
6、 客戶端以源端口為暫時端口,目的端口為20發(fā)送一個SYN ACK包;
7、 服務(wù)器端發(fā)送一個ACK包;
8、 發(fā)送數(shù)據(jù)的主機以這個連接來發(fā)送數(shù)據(jù),數(shù)據(jù)以TCP段(注:segment,第4層的PDU)形式發(fā)送(
一些命令,如STOR表示客戶端要發(fā)送數(shù)據(jù),RETR表示服務(wù)器段發(fā)送數(shù)據(jù)),這些TCP段都需要
對方進行ACK確認(rèn)(注:因為TCP協(xié)議是一個面向連接的協(xié)議)
9、 當(dāng)數(shù)據(jù)傳輸完成以后,發(fā)送數(shù)據(jù)的主機以一個FIN命令來結(jié)束數(shù)據(jù)連接,這個FIN命令需要另一
臺主機以ACK確認(rèn),另一臺主機也發(fā)送一個FIN命令,這個FIN命令同樣需要發(fā)送數(shù)據(jù)的主機以A
CK確認(rèn);
10、 客戶端能在控制連接上發(fā)送更多的命令,這可以打開和關(guān)閉另外的數(shù)據(jù)連接;有時候客戶端結(jié)
束后,客戶端以FIN命令來關(guān)閉一個控制連接,服務(wù)器端以ACK包來確認(rèn)客戶端的FIN,服務(wù)器
同樣也發(fā)送它的FIN,客戶端用ACK來確認(rèn)。

下圖圖示了FTP PORT模式前幾步步驟:
/====================================================================
| |
| [ ftp Client ] [ ftp Server ] |
| |
| (TCP:21 連接初始化,控制端口) |
| SYN |
| Port xxxx ----------------------> Port 21 [TCP] |
| SYN+ACK |
| Port xxxx <---------------------- Port 21 |
| ACK |
| Port xxxx ----------------------> Port 21 |
| |
| (控制操作: 用戶列目錄或傳輸文件) |
| |
| Port, IP, Port yyyy |
| Port xxxx <---------------------- Port 21 |
| Port Seccussful |
| Port xxxx <---------------------- Port 21 |
| List, Retr or Stor |
| Port xxxx ----------------------> Port 21 |
| |
| |
| (TCP:20 連接初始化,數(shù)據(jù)端口) |
| SYN |
| Port yyyy <---------------------- Port 20 |
| SYN+ACK |
| Port yyyy ----------------------> Port 20 |
| ACK |
| Port yyyy <---------------------- Port 20 |
| |
| |
| (數(shù)據(jù)操作: 數(shù)據(jù)傳輸) |
| Data + ACK |
| Port yyyy <---------------------> Port 20 |
| . |
| . |
| . |
| |
====================================================================/

FTP Port模式會給網(wǎng)絡(luò)管理人員在許多方面帶來很多問題,首先,在PORT命令消息中的IP地址和端
口號的編碼不是直白地顯示。另外,應(yīng)用層的協(xié)議命令理論上不應(yīng)該包含網(wǎng)絡(luò)地址信息(注:
IP地址),因為這打破了協(xié)議層的原則并且可能導(dǎo)致協(xié)同性和安全性方面的問題。

下圖是WildPackets EtherPeek協(xié)議分析儀解碼了PORT命令的地址參數(shù),地址參數(shù)后是端口號,見PORT
192,168,10,232,6,127;6,127部分的第一個阿拉伯?dāng)?shù)字乘以256,然后加上第2個阿拉伯?dāng)?shù)字
就得到端口號,所以客戶端指定了端口號為6*256+127=1663;
/====================================================================
| IP Header - Internet Protocol Datagram |
| Version: 4 |
| Header Length: 5 (20 bytes) |
| |
| ............... |
| |
| Time To Live: 128 |
| Protocol: 6 TCP - Transmission Control Protocol |
| Header Checksum: 0xAA36 |
| Source IP Address: 192.168.0.1 DEMO |
| Dest. IP Address: 192.168.0.3 VI |
| No IP Options |
| |
| TCP - Transport Control Protocol |
| Source Port: 2342 manage-exec |
| Destination Port: 21 ftp |
| Sequence Number: 2435440100 |
| Ack Number: 9822605 |
| Offset: 5 (20 bytes) |
| Reserved:

熱詞搜索:

上一篇:什么是ftp及ftp服務(wù)器
下一篇:Serv-U:快速構(gòu)建功能強大FTP服務(wù)器

分享到: 收藏