999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兩種FTP增強功能的實現

2008-12-31 00:00:00
電腦知識與技術 2008年29期

摘要:論文主要介紹了在深入研究FTP協議及工作原理的基礎上,進行FTP增強功能的可行性探討,在分析和實現的過程中,配合協議分析儀進行抓包,展示實現的協議功能。程序主要需要實現界面和程序框架,完成界面設計、程序框架、多線程支持等任務;在FTP標準協議模塊中,完成FTP協議中發送命令和接收應答的任務,完成對于文件接收和發送的處理;對于FTP協議的增強功能模塊,需要完成FTP斷點續傳功能和校驗和檢驗機制任務,并且提供日志功能。

關鍵詞:TCP/IP協議;FTP協議;Socket;斷點續傳;Checksum

中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2008)29-0330-04

The Realization of Two Kinds of FTP Intensify Function

LI Qi

(Xuzhou Economic and Trade Higher Vocational School,Xuzhou 221000,China)

Abstract: The paper, in-depth study on the FTP protocol and work on the basis of principle, FTP enhancements to the feasibility study, Analysis and in the process of achieving, catch packet with protocol sniffer, to show the protocol to achieve function.Procedures need to Complete interface design、Framework、Multithreading support and other tasks. At FTP standard protocol modules, FTP to complete the protocol in response to send commands and receive the mandate, completed receive and send the document processing. For FTP protocol enhancements modules, need FTP to completed Resume broken transfer and Checksum testing task, and provide logging.

Key words: network protocol; FTP protocol; socket; resume broken transfer; checksum

21世紀是網絡的時代,是信息的時代,是多媒體的時代。以國際互聯網(Internet)為主要特征的信息基礎設施正在改變人們的生活方式,資源共享已經成為人們生活的迫切需要。Internet技術的迅猛發展與普及,推動了世界范圍的信息傳輸和信息交流。隨著Internet的發展,Internet將提供越來越多的服務。但就目前而言,網民使用較多的主要有下列服務:電子郵件(E-mail),文件傳輸(FTP),遠程登錄(Telnet),萬維網(World Wide Web),新聞組(Newsgroup/Usenet)和電子公告牌(BBS),聊天系統(chat)。

Internet如此流行,通過瀏覽器獲取信息已經不能滿足人們的需要。在當今的網絡時代,下載軟件是使用最為頻繁的軟件之一。幾年來,下載技術也在不停地發展,其中FTP功不可沒。盡管遠程登陸(Telnet)提供了訪問遠程文件的極好方法,但怎么也比不上使用自己計算機中的文件方便。如果用戶想使用其它計算機上的文件,最理想的方法就是把它復制到自己的計算機中,以便在本地計算機上操作。FTP正是完成這項工作的工具,你可以在任意個可經文件傳輸協議(FTP)訪問的公共有效的聯機數據庫或文檔中找到你想要的任何東西。成千上萬的數據、軟件分布在世界各地,有了FTP,足不出戶,只要敲幾個字,就能輕而易舉地得到想要的。現在全世界已有10000多個FTP文件服務器對所有Internet用戶開放,用戶可以通過與Internet相連的計算機,把自己需要的文件傳輸過來或是把自己的收集傳輸上去與他人共享。現在,已經有許多互聯網站點都建立了可供大眾訪問的資料庫,這些資料都可以被通過FTP獲取。匿名FTP使用戶有機會存取到世界上最大的信息庫,這個信息庫是日積月累起來的,并且還在不斷增長,永不關閉,涉及到幾乎所有主題。而且,這一切是免費的。Internet之所以能延續到今天,是因為人們使用通過標準協議提供標準服務的程序。匿名FTP是Internet網上發布軟件的常用方法。Internet上的很多程序是由個人創造和維護的,他們通過匿名FTP把它們分發給世界各地的人們。也可以找到電子雜志、用戶網討論組的檔案、技術文件等等。一個經驗豐富的Internet用戶,將在很大程度上依賴于匿名FTP。在目前的國內大學里,FTP也成為學生交流信息、共享資源、合作項目的重要工具。

最原始的下載功能僅僅是個“下載”過程,即從WEB服務器上連續地讀取文件。其最大的問題是,由于網絡的不穩定性,一旦連接斷開使得下載過程中斷,就不得不全部從頭再來一次。隨后,“斷點續傳”的概念就出來了,顧名思義,就是如果下載中斷,在重新建立連接后,跳過已經下載的部分,而只下載還沒有下載的部分。文件傳輸已經成互聯網用戶非常重要的一個應用,不斷改善文件傳輸質量,提高文件傳輸效率,在很大程度上給互聯網提出越來越嚴峻的挑戰。

FTP是TCP/IP的一種具體應用,它工作在OSI模型的第七層,TCP模型的第四層上,即應用層,使用TCP傳輸而不是UDP,FTP連接是可靠的,而且是面向連接,為數據的傳輸提供了可靠的保證。FTP提供交互式的訪問,允許客戶指明文件類型與格式(如指明是否使用ASCII碼),并允許文件具有存取權限(如訪問文件的用戶必須經過授權,并輸入有效的口令)。FTP屏蔽了各計算機系統的細節,因而適合于在異構網絡中任意計算機之間傳送文件。FTP的目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。用戶通過FTP協議,可從FTP服務器下載(Download)或上傳(Upload)文件。尤其是在瀏覽器將FTP協議整合其中之后,用戶可以輕易地利用瀏覽器通過超鏈接(Hyperlink)的使用,下載服務器所開放的任意文件,以達到資源共享的目的。

該論文主要研究方向是對FTP標準協議的強化。在掌握應用層協議分析方法的基礎上,深入理解文件傳輸協議,實現FTP的斷點續傳功能,包括下載和上傳兩個方向。并且實現FTP的校驗和檢驗機制,提高協議的可靠性,以達到不斷改善文件傳輸質量,提高文件傳輸效率的目的,完善文件傳輸應用的功能。

1 FTP協議概述

FTP是File Transfer Protocol(文件傳輸協議)的縮寫,用來在兩臺計算機之間互相傳送文件。相比于HTTP,FTP協議要復雜得多。復雜的原因,是因為FTP協議要用到兩個TCP連接,一個是命令鏈路,用來在FTP客戶端與服務器之間傳遞命令;另一個是數據鏈路,用來上傳或下載數據。

FTP協議是由RFC 959 File Transfer Protocol (FTP)所定義的,在此RFC中,強調了FTP的目的為:

1) 文件共享。

2) 通過應用程序直接或間接使用遠程主機。

3) 提供一致性的協議,避免用戶在不同主機上產生不同的操作方式。

4) 提供可靠及有效的數據傳輸。

FTP的主要功能如下:

1) 客戶與服務器之間交換一個或多個文件,文件是復制不是移動。

2) 能夠傳輸多種類型、多種結構、多種格式的文件,可以包括:文件(File),記錄(Record),頁(Page)。

3) 提供對本地和遠程系統的目錄操作功能。

4) 具有對文件改名、顯示內容、改變屬性、刪除文件功能,以及其他一些操作。

5) 具有匿名FTP功能。

文件傳輸協議FTP只提供文件傳輸的一些基本的服務,它使用TCP可靠的運輸服務。FTP的主要功能是減少或消除在不同操作系統下處理文件的不兼容性。

2 FTP結構

FTP使用客戶服務器方式。FTP協議與一般的Client/Server應用最大的不同點在于,一般的Client/Server應用程序只會在服務器端與客戶端建立一個Socket連接,此連接同時處理服務器端與客戶端間連接以及數據的傳輸。但FTP協議則不同,服務器端與客戶端之間共建立兩個Socket連接,一個以FTP協議默認的端口21作為兩者間的通信連接,另一個連接則作為客戶端傳輸指令與服務器端響應結果只用。一個FTP服務器進程可同時為多個客戶進程提供服務。FTP的服務器進程由兩大部分組成:一個主進程,負責接受新的請求;另外有若干個從屬進程,負責處理單個請求。

主進程的工作步驟如下:

1) 打開熟知端口(端口號為21),使客戶進程能夠連接上。

2) 等待客戶進程發出連接請求。

3) 啟動從屬進程來處理客戶進程發來的請求。從屬進程對客戶進程的請求處理完畢后即終止,但從屬進程在運行期間根據需要還可能創建其他一些子進程。

4) 回到等待狀態,繼續接受其他客戶進程發來的請求。主進程與從屬進程的處理是并發地進行。

如圖1所示, 在FTP服務器中,分別為協議解釋器Protocol Interpreter(PI)及數據傳輸進程Data Transfer Process(DTP)兩個模塊。PI如同一般服務器應用程序,用來建立服務器Socket以監聽(Listen)并接收(Accept)處理FTP客戶端的連接請求(Connection Request),此連接會一直持續至客戶端結束FTP應用程序為止(則下達QUIT指令)。FTP服務器的DTP則專門處理FTP協議所定義的特殊指令,并將執行結果或信息返回至客戶端,因此DTP主要是負責傳輸數據(包括文件)之用。

在客戶端中,則分別為Protocol Interpreter(PI)、Data Transfer Process(DTP)及User Interpreter(UI)三個模塊,客戶端PI主要用來與服務器建立連接。DTP則是將用戶輸入的FTP指令傳輸至服務器端處理,并且接收服務器端的響應(包括文件處理)。而UI則是提供用戶與PI間的交互界面。

在進行文件傳輸時,FTP的客戶端和服務器之間要建立兩個連接:“控制連接”和“數據連接”。控制連接在整個會話期間一直保持打開,FTP客戶所發出的傳送請求通過控制連接發送給服務器端的控制進程,但控制連接并不用來傳送文件。實際用于傳送文件的是“數據連接”。服務器端的控制進程在接收到FTP客戶發送來的文件傳輸請求后就創建“數據傳送進程”和“數據連接”,數據連接用來連接到客戶端和服務器端的數據傳送進程,數據傳送進程實際完成文件的傳送,在傳送完畢后關閉“數據傳送連接”,并結束運行。

當客戶進程向服務器進程發送建立連接請求時,要尋找連接服務器進程的熟知端口(21),同時還要告訴服務器進程自己的另一個端口號碼,用于建立數據傳送連接。接著,服務器進程用自己傳送數據的熟知端口(20)與客戶進程所提供的端口號碼建立數據傳送連接。由于FTP使用了兩個不同的端口號,所以數據連接與控制連接不會發生混亂。

使用兩個獨立的連接的主要好處是使協議更加簡單和更容易實現,同時在傳輸文件時還可以利用控制連接。

3 FTP協議消息流程

FTP協議規范中定義了許多FTP命令,這些命令用于登錄FTP服務器、設置傳輸參數、瀏覽服務器上的文件與目錄列表、獲取服務器上的文件、存儲文件到服務器上,并管理服務器與客戶端之間文件的傳輸過程。

客戶端將用戶下達的通過控制連接發送給服務器,服務器接受命令并處理之后,會返回給客戶端相應的命令相應信息。FTP應答保證了文件傳輸過程中請求與行為的同步,并使得用戶進程總是能了解服務器的狀態。

FTP服務器指令都以大寫表示,均分別對應于一個客戶端指令,共分為以下幾大類:

1) 存取控制指令(Access Control Command):定義用戶的登陸名稱及密碼。

存取控制指令主要提供了用戶身份驗證功能和目錄切換功能,如用戶登錄到服務器時,必須連續使用USER命令和PASS命令,正常退出必須使用QUIT命令等。

2) 傳輸指令(Transfer Command):定義數據或文件的傳輸模式。

傳輸參數命令數目不多,但對于數據的正確傳輸卻相當重要。參數傳輸設置后一直有效,除非用新的命令改變傳輸參數,或者新建立了數據連接。

3) 服務指令(Service Command):定義處理文件如上傳、下載等的指令。

FTP服務命令定義了一系列文件傳輸及文件系統操作相關的命令,這些命令的參數通常是pathname(路徑名),路徑名的書寫必須符合服務器端的規范。

4 斷點續傳研究

FTP客戶端軟件斷點續傳指的是在下載或上傳時,將下載或上傳任務(一個文件或一個壓縮包)人為的劃分為幾個部分,每一個部分采用一個線程進行上傳或下載,如果碰到網絡故障,可以從已經上傳或下載的部分開始繼續上傳下載以后未上傳下載的部分,而沒有必要重頭開始上傳下載。這樣可以節省時間,提高速度。

有時用戶上傳下載文件需要歷時數小時,萬一線路中斷,不具備斷點續傳的FTP服務器或下載軟件就只能從頭重傳;比較好的FTP服務器或下載軟件具有FTP斷點續傳能力,允許用戶從上傳下載斷線的地方繼續傳動,這樣大大減少了用戶的煩惱。

4.1 下載

1) 向服務器發送“REST + 本地文件長度”命令,告訴服務器,客戶端要斷點下載了。這時服務器還不知道客戶端要下載哪個文件;

要實現FTP的斷點續傳,FTP服務器必須支持REST指令,這條指令在FTP協議文本RFC595中就已經定義了,不過它不是FTP服務器必須支持的指令。REST后面跟的數表示下載文件的起始位置,而REST 0表示從文件最開始處下載。REST命令本身并不執行下載功能,仍需要使用RETR命令執行下載工作。

2) 向服務器發送“RETR + 文件名”命令,通知服務器要下載的文件名,這時服務器開始定位文件指針讀文件并發送數據。

3) 客戶端定位本地文件指針(文件末尾);

4) 兩端的準備工作都做完了以后,客戶端創建socket,以被動或非被動方式建立數據通道,循環調用receive接收數據并追加入本地文件;

4.2 上傳

1) 獲取服務器上和本地要上傳文件的同名文件大小;

2) 向服務器發送“REST + 本地文件長度”命令,告訴服務器,客戶端要斷點上傳了。

3) 向服務器發送“STOR + 文件名”命令,通知服務器,接下來從數據通道發送給你的數據要附加到這個文件末尾。

4) 定位本地文件指針(和FTP上文件大小相同的位置)

5) 從文件指針處讀取數據并發送。

5 校驗和檢驗機制研究

一個TCP報文段分為首部和數據兩部分,TCP的全部功能都體現在它首部中各字段的作用。TCP報文段首部的前20 字節是固定的,后面有4N字節是根據需要而增加的選項(N必須是整數)。因此TCP首部的最小長度是20字節。

TCP首部格式如下:

16位源端口號 和16位目的端口號

32位序號

32位確認序號

4位首部長度

6位保留

URG

ACK

PSH

RST

SYN

FIN

16位窗口大小

16位檢驗和

16位緊急指針

選項

數據

說明:

1) 每個TCP段都包括源端和目的端的端口號,用于尋找發送端和接收端的應用進程。這兩個值加上IP首部的源端IP地址和目的端IP地址唯一確定一個TCP連接。

2) 序號用來標識從TCP發送端向接收端發送的數據字節流,它表示在這個報文段中的第一個數據字節。如果將字節流看作在兩個應用程序間的單向流動,則TCP用序號對每個字節進行計數。

3) 當建立一個新連接時,SYN標志變1。序號字段包含由這個主機選擇的該連接的初始序號ISN,該主機要發送數據的第一個字節的序號為這個ISN加1,因為SYN標志使用了一個序號。

4) 既然每個被傳輸的字節都被計數,確認序號包含發送確認的一端所期望收到的下一個序號。因此,確認序號應當時上次已成功收到數據字節序號加1。只有ACK標志為1時確認序號字段才有效。

5) 發送ACK無需任何代價,因為32位的確認序號字段和ACK標志一樣,總是TCP首部的一部分。因此一旦一個連接建立起來,這個字段總是被設置,ACK標志也總是被設置為1。

6) TCP為應用層提供全雙工的服務。因此,連接的每一端必須保持每個方向上的傳輸數據序號。

7) TCP可以表述為一個沒有選擇確認或否認的華東窗口協議。因此TCP首部中的確認序號表示發送方已成功收到字節,但還不包含確認序號所指的字節。當前還無法對數據流中選定的部分進行確認。

8) 首部長度需要設置,因為任選字段的長度是可變的。TCP首部最多60個字節。

9) 6個標志位中的多個可同時設置為1:

① URG-緊急指針有效;

② ACK-確認序號有效;

③ PSH-接收方應盡快將這個報文段交給應用層;

④ RST-重建連接;

⑤ SYN-同步序號用來發起一個連接;

⑥ FIN-發送端完成發送任務。

10) TCP的流量控制由連接的每一端通過聲明的窗口大小來提供。窗口大小為字節數,起始于確認序號字段指明的值,這個值是接收端期望接收的字節數。窗口大小是一個16為的字段,因而窗口大小最大為65535字節。

11) 檢驗和覆蓋整個TCP報文端:TCP首部和TCP數據。這是一個強制性的字段,一定是由發送端計算和存儲,并由接收端進行驗證。TCP檢驗和的計算和UDP首部檢驗和的計算一樣,也使用偽首部。

12) 緊急指針是一個正的偏移量,序號字段中的值相加表示緊急數據最后一個字節的序號。TCP的緊急方式是發送端向另一端發送緊急數據的一種方式。

13) 最常見的可選字段是最長報文大小MMS,每個連接方通常都在通信的第一個報文段中指明這個選項。它指明本端所能接收的最大長度的報文段。

首部校驗和字段是根據IP首部計算檢驗和碼,它不對后面的數據進行計算,IP 協議采用統一的校驗算法,其計算比較簡單。ICMP、IGMP、UDP和TCP在它們各自的首部中均包含有同時覆蓋首部和數據檢驗和碼。

在發送數據時,為了計算數IP據報的校驗和。應該按如下步驟:

1) 把IP數據報的首部都置為0,包括校驗和字段。

2) 把首部看成以16位為單位的數字組成,依次進行二進制反碼求和。

3) 把得到的結果存入校驗和字段中。

在接收數據時,計算數據報的校驗和相對簡單,按如下步驟:

1) 把首部看成以16位為單位的數字組成,依次進行二進制反碼求和,包括校驗和字段。

2) 檢查計算出的校驗和的結果是否等于零。

3) 如果等于零,說明被整除,校驗是和正確。否則,校驗和就是錯誤的,協議棧要拋棄這個數據包。但不生成差錯報文,由上層去發現丟失的數據報并進行重傳。

參考文獻:

[1] 謝希仁.計算機網絡[M].4版.北京:電子工業出版社,2002.

[2] 馬爭鳴.TCP/IP原理與應用[M].北京:冶金工業出版社,2006.

[3] 黃嘉輝.C# .NET網絡程序設計[M].北京:科學出版社,2004.

[4] 吳晨,陳建孝.C#網絡與通信程序設計案例精講[M].北京:清華大學出版社,2006.

[5] Douglas E Comer,David L Stevens.TCP/IP網絡互聯技術(卷3):客戶—服務器編程與應用(windows套接字版)[M].北京:清華大學出版社,2004.

[6] 陳明.網絡協議教程[M].北京:清華大學出版社,2004.

[7] 邱錦倫,曹旻.Visual C#.NET程序設計教程[M].北京:清華大學出版社,2006.

[8] 耿肇英,耿燚.C#應用程序設計教程[M].北京:人民郵電出版社,2007.

[9] Matthew G Naugle.Network Protocols(Signature Edition)網絡協議[M].北京:人民郵電出版社,2000.

[10] James F Kurose,Keith W Ross.計算機網絡:自頂向下方法與Internet特色[M].北京:高等教育出版社,2001.

主站蜘蛛池模板: 亚洲美女高潮久久久久久久| 中日韩一区二区三区中文免费视频| 91久草视频| 乱色熟女综合一区二区| 99精品免费欧美成人小视频| 欧美国产三级| 91久久性奴调教国产免费| 九色免费视频| 免费Aⅴ片在线观看蜜芽Tⅴ| 999福利激情视频 | 日韩资源站| 538国产视频| 97影院午夜在线观看视频| 亚洲中文字幕日产无码2021| 热久久这里是精品6免费观看| 国产成人成人一区二区| 国产亚洲欧美在线视频| 成人免费黄色小视频| 欧美日韩国产成人高清视频| 日韩国产黄色网站| 色丁丁毛片在线观看| 国产成人精品视频一区二区电影| 无码aaa视频| 亚洲精品视频免费观看| 自拍欧美亚洲| 在线看免费无码av天堂的| 国产精品v欧美| 亚洲第一网站男人都懂| 国产精品蜜芽在线观看| 国产女人在线| 亚洲最大在线观看| 亚洲男人的天堂在线观看| 欧美色图久久| 伊人91在线| 亚洲天堂.com| 国产女人综合久久精品视| 54pao国产成人免费视频| 欧美午夜视频在线| 成人午夜网址| 欧洲熟妇精品视频| 久久婷婷综合色一区二区| www.亚洲一区二区三区| 国产青榴视频| 免费一级成人毛片| 亚洲精品综合一二三区在线| 国产精品视频观看裸模| 亚洲精品视频网| 亚洲精品不卡午夜精品| 伊人婷婷色香五月综合缴缴情| 在线播放国产99re| 国产一区三区二区中文在线| 亚洲AV色香蕉一区二区| 欧美在线黄| 无码又爽又刺激的高潮视频| 免费看一级毛片波多结衣| 99re热精品视频国产免费| 人妻无码一区二区视频| 有专无码视频| 中国成人在线视频| 欧美有码在线| 久久婷婷国产综合尤物精品| 中文字幕丝袜一区二区| 国产精品欧美在线观看| 99免费视频观看| 麻豆精品在线播放| 久久男人资源站| 蜜臀AVWWW国产天堂| 新SSS无码手机在线观看| 五月婷婷欧美| a毛片在线| 久久久久久久97| 看你懂的巨臀中文字幕一区二区| 91久久偷偷做嫩草影院电| 97无码免费人妻超级碰碰碰| 国产精女同一区二区三区久| 伊人色天堂| 视频一本大道香蕉久在线播放| 国产乱码精品一区二区三区中文 | 国产一区二区精品福利| 精品久久久久久成人AV| 伊人大杳蕉中文无码| 亚洲精品大秀视频|