Linux——檔案傳輸協議知識點梳理

roc_guo發表於2022-11-10

接觸過 作業系統的同學一定對檔案傳輸協議並不陌生,因為在 Linux 作業系統裡我們對檔案的上傳下載通常不會像我們操作 window 系統那麼直觀,一般都是透過檔案傳輸協議去完成的。在我的日常工作中,常用的檔案傳輸協議有 FTP SFTP SCP ,今天就把對此協議淺薄的理解整理出來,希望能夠幫到大家。

             一、網路通訊協議的分層

OSI 網路模型一共有七層,每一層接收其下一層所提供的服務(聽從下屬反饋),並且為為自己的上層提供服務(向領導彙報),上下層通訊所遵循的規範叫介面,同層之間相互通訊所遵循的規範叫協議。 OSI 網路模型對應的七層從上到下分別為:應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理層。

應用層:是我們最有直觀感受的,它負責為應用程式提供服務,比如檔案傳輸,電子郵件等,今天跟大家分享的檔案傳輸協議就處在應用層。

表示層:主要負責將接收到的資訊轉換成協議規定的資料格式。

會話層:主要負責通訊的連結和斷開。

傳輸層:負責節點之間的資料傳輸,如 UDP (無狀態傳輸)和 TCP (有狀態傳輸)。

網路層:負責將資料傳到指定的地址,如 IP ICMP

資料鏈路層:負責物理層面上兩個節點的傳輸,如 MAC

物理層:負責位元流與電子訊號之間的切換。

需要注意的是 , 在實際的資料通訊過程中,並不是每次都要用到這七層協議的。

         二、檔案傳輸協議

FTP 的全稱是 File Transfer Protocol ,是網路中兩臺計算機進行檔案傳輸的協議規範,也是網路史上最早被使用的協議之一,處在 OSI 網路模型的應用層,既然用於檔案傳輸,必不可少傳送端和接收端, FTP 的傳送端和接收端都可用於以用於檔案的上傳,檔案的下載,向指定目錄傳送檔案。 FTP 是基於 TCP 協議的,由於 FTP 協議既涉及到資料的傳送,又涉及到傳送端和接收端的通訊,所以一次 FTP 通訊用到兩個 TCP 連結,一個用來傳遞資料,一個用來建立連線。

FTP 有兩種工作模式,主動 (PORT) 和被動 (PASV) 。主動的工作過程是:傳送端向接收端所在的伺服器傳送一個連線請求,接收端伺服器接收連線,當有檔案需要傳輸時,傳送端所在的伺服器告訴接收端所在的伺服器,然後接收端所在的伺服器向傳送端所在的伺服器傳送連線,建立資料通道傳輸資料。被動的主動的工作過程是:傳送端向接收端所在的伺服器傳送一個連線請求,接收端伺服器接收連線,當有檔案需要傳輸時,接收端所在的伺服器告訴傳送端所在的伺服器,通道開啟,你可以傳送資料過來。他們之間的區別就是,一個是主動傳送資料,一個是求傳送資料。

SFTP 的全稱是 Secure File Transfer Protocol ,是在 FTP 傳輸協議之間進行加密的一種傳輸方式, SFTP 屬於 SSH 的一部分,所以它的使用方法跟 SSH 一樣。但是因為 SFTP 做了加密處理,傳輸過程肯定會增加校驗處理,所以它的傳輸速度和傳輸效率要低於 FTP ,如果傳輸的檔案比較重要,建議用 SFTP 傳輸,降低檔案被破解的風險。 SFTP 的優勢在於如果傳輸過程中網路中斷,等網路恢復後可自行繼續傳輸,也就是支援斷點續傳。

SCP 的全稱是 Secure Copy ,是用來在兩個伺服器之間進行檔案複製的,等同於 Windows 系統裡的 copy 快捷鍵,傳輸過程也是基於 SSH 進行安全加密過的,但要知道目標路徑的詳細位置,如果傳輸過程中網路中斷,等網路恢復後不會像 SFTP 那樣繼續傳輸,也就是不支援斷點續傳。

以上就是對檔案傳輸協議 FTP SFTP SCP 的知識點梳理,比較淺顯,只是停留在使用層面上,如果你需要深層次的理解和應用,可以去 這本書去查閱。好了,今天就到這裡啦,希望能幫到大家!。

  


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2922714/,如需轉載,請註明出處,否則將追究法律責任。

相關文章