日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ftp协议分析(一)

發(fā)布時(shí)間:2023/12/10 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ftp协议分析(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
作者: 肖建彬 | 可以轉(zhuǎn)載, 轉(zhuǎn)載時(shí)務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及版權(quán)聲明
網(wǎng)址:http://www.xiaojb.com/archives/it/ftp.shtml

根據(jù)是使用port模式還是passive模式,ftp使用不同的tcp端口號(hào),在詳細(xì)描述ftp前,我們來簡(jiǎn)單討論一下tcp端口號(hào)的一些基本概念。tcp使用端口號(hào)來標(biāo)識(shí)所發(fā)送和接收的應(yīng)用,端口號(hào)可以幫助tcp來分離字節(jié)流并且?guī)拖鄳?yīng)字節(jié)傳遞給正確的應(yīng)用程序。

  tcp端口號(hào)可以是半永久的和暫時(shí)的。服務(wù)器端監(jiān)聽在半永久的端口上來讓客戶端訪問。客戶端使用暫時(shí)的端口在本地標(biāo)識(shí)一個(gè)對(duì)話,客戶端端口只在使用tcp服務(wù)時(shí)候才存在,而服務(wù)器端口只要服務(wù)器在運(yùn)行就一直在監(jiān)聽。

tcp端口可以歸為3類:

  1、眾所周知的端口來標(biāo)識(shí)在tcp上運(yùn)行的標(biāo)準(zhǔn)服務(wù),包括ftp、http、elnet、smtp等,這些端口號(hào)碼范圍為0-1023;

  2、注冊(cè)端口號(hào)用來標(biāo)識(shí)那些已經(jīng)向iana(internet assigned numbers assigned numbers authority)注冊(cè)的應(yīng)用,注冊(cè)端口號(hào)為1024-49151;

  3、私有端口號(hào)是非注冊(cè)的并且可以動(dòng)態(tài)地分配給任何應(yīng)用,私有端口為49152-65535;注冊(cè)的端口號(hào)本來打算只給注冊(cè)的應(yīng)用使用,

ftp port模式和ftp passive模式

  當(dāng)你對(duì)一個(gè)ftp問題進(jìn)行排錯(cuò)時(shí)候,你首先要問的一個(gè)問題是使用的是port模式的還是passive模式。因?yàn)檫@兩種行為迥異,所以這兩種模式引起的問題也不同;在過去,客戶端缺省為active(port)模式;近來,由于port模式的安全問題,許多客戶端的ftp應(yīng)用缺省為passive模式。

2.1 ftp port模式

port模式的ftp步驟如下:

  1、 客戶端發(fā)送一個(gè)tcp syn(tcp同步)包給服務(wù)器段眾所周知的ftp控制端口21,客戶端使用暫時(shí)的端口作為它的源端口;

  2、 服務(wù)器端發(fā)送syn ack(同步確認(rèn))包給客戶端,源端口為21,目的端口為客戶端上使用的暫時(shí)端口;

  3、 客戶端發(fā)送一個(gè)ack(確認(rèn))包;客戶端使用這個(gè)連接來發(fā)送ftp命令,服務(wù)器端使用這個(gè)連接來發(fā)送ftp應(yīng)答;

  4、 當(dāng)用戶請(qǐng)求一個(gè)列表(list)請(qǐng)求或者發(fā)起一個(gè)要求發(fā)送或者接受文件的請(qǐng)求,客戶端軟件使用port命令,這個(gè)命令包含了一個(gè)暫時(shí)的端口,客戶端希望服務(wù)器在打開一個(gè)數(shù)據(jù)連接時(shí)候使用這個(gè)暫時(shí)端口;port命令也包含了一個(gè)ip地址,這個(gè)ip地址通常是客戶自己的ip地址,而且ftp也支持第三方(third-party)模式,第三方模式是客戶端告訴服務(wù)器端打開與另臺(tái)主機(jī)的連接;

  5、 服務(wù)器端發(fā)送一個(gè)syn包給客戶端的暫時(shí)端口,源端口為20,暫時(shí)端口為客戶端在port命令中發(fā)送給服務(wù)器端的暫時(shí)端口號(hào);

6、 客戶端以源端口為暫時(shí)端口,目的端口為20發(fā)送一個(gè)syn ack包;

7、 服務(wù)器端發(fā)送一個(gè)ack包;

  8、 發(fā)送數(shù)據(jù)的主機(jī)以這個(gè)連接來發(fā)送數(shù)據(jù),數(shù)據(jù)以tcp段(注:segment,第4層的pdu)形式發(fā)送(一些命令,如stor表示客戶端要發(fā)送數(shù)據(jù),retr表示服務(wù)器段發(fā)送數(shù)據(jù)),這些tcp段都需要對(duì)方進(jìn)行ack確認(rèn)(注:因?yàn)閠cp協(xié)議是一個(gè)面向連接的協(xié)議)

  9、 當(dāng)數(shù)據(jù)傳輸完成以后,發(fā)送數(shù)據(jù)的主機(jī)以一個(gè)fin命令來結(jié)束數(shù)據(jù)連接,這個(gè)fin命令需要另一臺(tái)主機(jī)以ack確認(rèn),另一臺(tái)主機(jī)也發(fā)送一個(gè)fin命令,這個(gè)fin命令同樣需要發(fā)送數(shù)據(jù)的主機(jī)以ack確認(rèn);

  10、 客戶端能在控制連接上發(fā)送更多的命令,這可以打開和關(guān)閉另外的數(shù)據(jù)連接;有時(shí)候客戶端結(jié)束后,客戶端以fin命令來關(guān)閉一個(gè)控制連接,服務(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 |
| . |
| . |
| . |
| |
\====================================================================/

one response to “ftp協(xié)議分析(一)” linuxfool says:
june 29th, 2007 at 23:43

| (控制操作: 用戶列目錄或傳輸文件) |
| |
| port, ip, port yyyy |
| port xxxx port 21 |
| |

第一個(gè)我覺得方向錯(cuò)了,不知道說的對(duì)不對(duì)?

leave a reply

name (required)

mail (will not be published) (required)

website

spam protection: sum of 6 + 8 ?

轉(zhuǎn)載于:https://www.cnblogs.com/kangderui/archive/2010/01/05/1639327.html

總結(jié)

以上是生活随笔為你收集整理的ftp协议分析(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。