• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Linux平臺下建立的ftp客戶端的命令處理

      2016-08-19 19:14:41馮媛媛劉建科
      電腦知識與技術(shù) 2016年20期
      關(guān)鍵詞:客戶端服務(wù)器

      馮媛媛++劉建科

      摘要:FTP(File Transfer Protocol,文件傳輸協(xié)議) 是用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議。它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層。本文介紹在Linux平臺下建立的ftp客戶端的控制連接。

      關(guān)鍵詞: 客戶端;服務(wù)器;控制連接;數(shù)據(jù)連接

      中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)20-0044-02

      當(dāng)FTP運(yùn)行程序開始后,首先根據(jù)傳遞參數(shù)創(chuàng)建控制連接,用來和服務(wù)器進(jìn)行通信??刂七B接創(chuàng)建成功后,客戶依次向服務(wù)器發(fā)USER和PASS命令。

      1 命令處理函數(shù)

      支持的用戶命令主要分三種。

      1)只在控制連接進(jìn)行通信。如delete,quit,mkdir,rmdir,pwd,rename等。

      2)在控制連接進(jìn)行通信,在數(shù)據(jù)連接進(jìn)行數(shù)據(jù)傳輸。如put,get等。

      3)不進(jìn)行網(wǎng)絡(luò)通信的。如help等。

      2 單連接命令

      這類命令比較容易,向服務(wù)器發(fā)送一個(gè)命令,然后接收響應(yīng)碼。實(shí)現(xiàn)方式基本上一樣,不同的是傳送給服務(wù)器的FTP命令不一樣。

      函數(shù)模型:

      1)對用戶命令進(jìn)行處理。

      2)發(fā)送命令到服務(wù)器,并接收服務(wù)器響應(yīng)碼,根據(jù)響應(yīng)碼判斷命令是否成功。

      其中cd發(fā)送給服務(wù)器的命令為CWD(將工作的路徑進(jìn)行改變),該命令可以在用戶登錄與賬戶狀態(tài)都保持不變的情況下運(yùn)行,在進(jìn)行數(shù)據(jù)或者是工作目錄下載或者是存儲的時(shí)候改變其原來的路徑。但是在這個(gè)過程中傳輸?shù)膮?shù)是不會變化的。傳輸參數(shù)就是指的特定目錄的路徑名稱或者是標(biāo)志其他文件的符號。

      其中delete發(fā)送給服務(wù)器的命令為刪除指令,該指令的發(fā)出刪除的目標(biāo)路徑文件是從服務(wù)器的站點(diǎn)上進(jìn)行的。假設(shè)需要進(jìn)行特殊的保護(hù)(像是,在刪除時(shí)再次詢問),這個(gè)功能是user-FTP進(jìn)行提供的。

      其中quit發(fā)送給服務(wù)器的命令為QUIT(退出現(xiàn)在的登錄模式)此指令是對一個(gè)用戶進(jìn)行終止活動,假設(shè)還用戶內(nèi)沒有正在運(yùn)行的文件時(shí),系統(tǒng)會直接將連接關(guān)閉控制,但是假設(shè)此時(shí)正在有數(shù)據(jù)傳輸,在傳輸?shù)玫交貞?yīng)以后系統(tǒng)連接關(guān)閉程序。

      其中mkdir發(fā)送給服務(wù)器的命令為MKD(創(chuàng)建新的目錄):該指令是對目標(biāo)路徑創(chuàng)建新的目錄(這是在絕對路徑中)也或者是在相對路徑中對現(xiàn)在工作的路徑進(jìn)行新目錄的創(chuàng)建。

      其中rmdir發(fā)送給服務(wù)器的命令為RMD(目錄刪除):在絕對的路徑下對目標(biāo)路徑進(jìn)行刪除或者是在相對的路徑中對現(xiàn)在正在運(yùn)行的工作子目錄進(jìn)行刪除。

      其中pwd發(fā)送給服務(wù)器的命令為PWD(打印工作目錄):此指令在回應(yīng)中返回當(dāng)前工作目錄名。

      其中rename發(fā)送給服務(wù)器的命令為RNFR和RNTO。

      RNFR(重新命名):該指令是對原來的路徑名稱進(jìn)行重新命名。該指令在執(zhí)行時(shí)一定跟著一個(gè)重新命名的指令來說明新的名稱下的路徑名稱。

      RNTO(重新命名以后):該指令是緊跟上面的指令說明新更改的路徑名稱的。在對文件進(jìn)行更名時(shí)需要上述兩個(gè)指令同時(shí)完成。

      3 雙連接命令

      這類命令除了要在控制連接進(jìn)行通信,還要在數(shù)據(jù)連接上傳輸數(shù)據(jù)。

      根據(jù)FTP數(shù)據(jù)連接建立的不同形式,將工作形式分為兩種,一是Standard又叫做PORT方式該方式是主動形式,一種是Passive又叫做PASV是一種被動形式。FTP的服務(wù)器內(nèi)Standard模式下發(fā)送一個(gè)PORT指令到相應(yīng)的服務(wù)器上。FTP服務(wù)器內(nèi)Passive模式下發(fā)出一個(gè)PASV指令到相應(yīng)的服務(wù)器上。上兩種形式的工作原理如下所述:

      在Port模式下客戶端會先于相關(guān)服務(wù)器上的TCP 21端口進(jìn)行連接,指令是借助該通道發(fā)出的,當(dāng)客戶端口接收到需要的數(shù)據(jù)時(shí)就需要通過這個(gè)端口發(fā)出一個(gè)POR的指令??蛻羰褂迷鯓拥亩丝诮邮障嚓P(guān)數(shù)據(jù)這是包含在PORT的指令內(nèi)的。數(shù)據(jù)的傳輸是通過服務(wù)器上自己的端口與客戶指定的端口連接實(shí)現(xiàn)數(shù)據(jù)的傳輸。在數(shù)據(jù)的傳輸過程中FTP服務(wù)器需要與客戶端構(gòu)建一個(gè)新連接實(shí)現(xiàn)數(shù)據(jù)的傳輸。連接過程如下:

      1)所有跟FTP服務(wù)器的連接都要與21端口相連(客戶端的初始狀態(tài)是S<-C)

      2)在FTP服務(wù)器上全部的21端口都比端口1024大(服務(wù)器連接客戶端的控制端口為S->C)

      3)在 FTP服務(wù)器上所有的20端口都比端口1024大(服務(wù)器上與客戶端數(shù)據(jù)端口連接的最初端口值為S->C)

      4)既比1024端口大又與服務(wù)器上的20端口相連接(服務(wù)器接受客戶端發(fā)送的ACK指令的數(shù)據(jù)端口為S<-C)

      Passive模式與Standard模式在構(gòu)建控制通道上是具有相似性的,但是區(qū)別之處在于前者發(fā)出的是Pasv指令后者發(fā)送的是Prot指令。Pasv指令發(fā)送到服務(wù)器以后,任意打開一個(gè)級別比較高端的數(shù)據(jù)端口值大于1024的,同時(shí)要求客戶端發(fā)出請求數(shù)據(jù)的指令,服務(wù)器上的端口與客戶端口連接,服務(wù)器上的數(shù)據(jù)借助該通道進(jìn)行數(shù)據(jù)的傳輸,此時(shí)服務(wù)器上就不需要構(gòu)建一個(gè)與客戶端新的連接方式了。連接過程如下:

      1)所有跟FTP服務(wù)器的連接都要與21端口相連(客戶端的初始狀態(tài)是S<-C)

      2)在FTP服務(wù)器上全部的21端口都比端口1024大(服務(wù)器連接客戶端的控制端口為S->C)

      3)隨便一個(gè)端口連接到任意一個(gè)比端口1024大的端口(服務(wù)器上與客戶端數(shù)據(jù)端口連接的最初端口值為S<-C)

      4)服務(wù)器以及所有遠(yuǎn)程過程中大于端口1024的(服務(wù)器接受客戶端發(fā)送的ACK指令的數(shù)據(jù)端口為S->C)

      ls命令執(zhí)行時(shí)首先判斷一下當(dāng)前客戶端采用的是主動模式還是被動模式。

      主動模式下ls命令向服務(wù)器發(fā)送的命令依次如下:

      PORT h1,h2,h3,h4,p1,p2

      LIST

      其中PORT命令將客戶端用來進(jìn)行數(shù)據(jù)連接的地址和端口傳送給服務(wù)器,然后服務(wù)器主動與客戶端建立數(shù)據(jù)連接。連接建立成功后,發(fā)送LIST命令,通知服務(wù)器發(fā)送文件列表,并在數(shù)據(jù)連接讀取服務(wù)器發(fā)來的文件列表。

      被動模式下ls命令向服務(wù)器發(fā)送的命令依次如下:

      PASV

      LIST

      其中PASV命令發(fā)出后,服務(wù)器會返回用來建立數(shù)據(jù)連接的服務(wù)器端的IP地址和端口,讓客戶端進(jìn)行連接,連接建立成功后,發(fā)送LIST命令,通知服務(wù)器發(fā)送文件列表,并在數(shù)據(jù)連接讀取服務(wù)器發(fā)來的文件列表。

      對于PORT數(shù)據(jù)端口:連接數(shù)據(jù)的端口是借助該指令的參數(shù)實(shí)現(xiàn)的??蛻襞c服務(wù)器都對數(shù)據(jù)缺口比較缺省,并且通常下該指令不需要必須的相應(yīng)指令進(jìn)行回復(fù)。假設(shè)使用該指令那么相應(yīng)的參數(shù)是由主機(jī)的32位和端口的16位串聯(lián)而成。地址信息以每8位分為一組,每一組的值都是用十進(jìn)制數(shù)表示的,逗號將那個(gè)小組分開。例如端口的數(shù)據(jù)指令是PORT h1,h2,h3,h4,p1,p2。那么被動形式PASV:此指令在不缺省的端口等待連接的命令,并不是接到指令后馬上將數(shù)值初始化。服務(wù)器的主機(jī)以及端口的地址是該指令回應(yīng)所包含的內(nèi)容。LIST(列表):該指令指示服務(wù)器向DTP被動列表發(fā)送指令。假設(shè)對路徑名進(jìn)行明確的確定,那么服務(wù)器會將相關(guān)的路徑名稱發(fā)送到文件列表中。但是假設(shè)路徑確定的是文件,那么服務(wù)器傳輸?shù)男畔⒕褪俏募F(xiàn)在狀態(tài)的一個(gè)信息。不用參數(shù)就用現(xiàn)階段用戶的目錄或缺省的那部分目錄。

      put和get命令實(shí)現(xiàn)方式和ls一樣,只是在數(shù)據(jù)連接建立成功后,發(fā)送給服務(wù)器的命令不一樣,分別STOR和RETR。

      STOR(保存):是把server-DTP接收到的數(shù)據(jù)存儲成服務(wù)器站點(diǎn)上的文件的指令。倘若接收來的路徑文件在原服務(wù)器站點(diǎn)上已經(jīng)有了,那原有的文件就會被新接收的文件數(shù)據(jù)所替換。相反若是接收來的路徑文件原本沒有,這樣就會在服務(wù)站點(diǎn)重新建立一個(gè)存儲文件。

      RETR(獲得文件):一個(gè)文件的副本用過這個(gè)指令用特定的路徑傳送到數(shù)據(jù)連的另一端。而原服務(wù)器站點(diǎn)的原文件狀態(tài)以及內(nèi)容不會發(fā)生變化。

      4 無連接命令

      這類命令不進(jìn)行任何網(wǎng)絡(luò)通信。其中help命令,僅僅打印出系統(tǒng)支持的命令。passive則是通過修改全局變量passivemode來改變FTP的工作方式。

      5 結(jié)束語

      上述為在運(yùn)行過程中客戶向服務(wù)器發(fā)出命令后接收支持用戶命令的三種狀態(tài)。

      參考文獻(xiàn):

      [1] Reynolds J, Request for Comments:959, Network Working Group, October 1985.

      [2] Richard Stevens, Stephen A. Rago. Advanced Programming in the UNIX Environment: Second Edition, Addison Wesley Professional,2005.

      [3] 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)[M].5版.電子工業(yè)出版社,2008.

      猜你喜歡
      客戶端服務(wù)器
      通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
      如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
      傳媒評論(2019年5期)2019-08-30 03:50:04
      縣級臺在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
      傳媒評論(2018年2期)2018-06-06 03:04:46
      得形忘意的服務(wù)器標(biāo)準(zhǔn)
      計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
      服務(wù)器操作系統(tǒng)可信加固技術(shù)研究
      湖北電力(2016年10期)2016-04-25 07:55:55
      關(guān)于Linux的視頻服務(wù)器開發(fā)與實(shí)現(xiàn)分析
      河南科技(2014年18期)2014-02-27 14:14:43
      宁河县| 滨州市| 台中县| 靖安县| 宾川县| 甘南县| 色达县| 凌海市| 石城县| 勐海县| 铁岭市| 来安县| 和田县| 乌拉特中旗| 桃江县| 墨竹工卡县| 涿鹿县| 凤城市| 秦安县| 新平| 陈巴尔虎旗| 泾源县| 库车县| 凤阳县| 名山县| 灌阳县| 福清市| 新野县| 岢岚县| 乃东县| 贵州省| 栾城县| 曲靖市| 崇义县| 江都市| 汽车| 上饶市| 铜山县| 宁武县| 钟祥市| 类乌齐县|