华为数通笔记-文件传输协议FTP
文件傳輸協議
主機之間傳輸文件是IP網絡的一個重要功能,如今人們可以方便地使用網頁、郵箱進行文件傳輸。
然而在互聯網早期,Web(World Wide Web,萬維網)還未出現,操作系統使用命令行的時代,用戶使用命令行工具進行文件傳輸。其中最通用的方式就是使用FTP(File Transfer Protocol,文件傳輸協議)以及TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)。
?
FTP基本概念
FTP采用典型的C/S架構(即服務器端與客戶端模型),客戶端與服務器端建立TCP連接之后即可實現文件的上傳、下載。
針對傳輸的文件類型不同,FTP可以采用不同的傳輸模式:
- ASCII模式:傳輸文本文件(TXT、LOG、CFG )時會對文本內容進行編碼方式轉換,提高傳輸效率。當傳輸網絡設備的配置文件、日志文件時推薦使用該模式。
- Binary(二進制)模式:非文本文件(cc、BIN、EXE、PNG),如圖片、可執行程序等,以二進制直接傳輸原始文件內容。當傳輸網絡設備的版本文件時推薦使用該模式。
FTP傳輸數據時支持兩種傳輸模式:ASCII模式和Binary模式。
ASCII模式用于傳輸文本文件。發送端的字符在發送前被轉換成ASCII碼格式之后進行傳輸,接收端收到之后再將其轉換成字符。二進制模式常用于發送圖片文件和程序文件,發送端在發送這些文件時無需轉換格式即可傳輸。
cc:VRP版本文件。
?
FTP傳輸過程 - 主動模式
主動模式工作原理如下:
客戶端隨機生成源端口N(一般大于1024)訪問FTP服務器的21端口,完成TCP的3次握手,客戶端向服務器發送PORT消息并攜帶(X,X,X,X,p1,p2),其中x,x,x,x為客戶端IP地址,P1,P2是客戶端產生的2個隨機正整數。
當需要傳輸數據時,FTP服務器端從端口20向FTP客戶端的端口P發送連接請求,(P=p1*256+p2),完成數據通道TCP的3次握手,建立數據通道。
FTP傳輸過程 - 被動模式
客戶端隨機生成源端口N訪問FTP服務器的21端口,完成TCP的3次握手后,客戶端給服務器端發送PASV消息,告知服務器處于被動模式,服務器回應Entering Passive Mode消息并攜帶(X,X,X,X,p1,p2).其中X,X,X,X為服務器自身的IP地址,P1,P2為服務器產生的2個隨機正整數。當需要傳輸數據時,客戶端使用N+1做為源端口,訪問服務器的p1*256+p2端口,完成數據通道的TCP的3次握手,建立數據通道。該模式下,2個通道均由客戶機發起。
主動模式和被動模式建立數據連接方式完全不同,在實際使用中各有利弊:
- 使用主動模式傳輸數據時,如果FTP客戶端在私有網絡中并且FTP客戶端和FTP服務器端之間存在NAT設備,那么FTP服務器端收到的PORT報文中攜帶的端口號、IP地址并不是FTP客戶端經過NAT轉換之后的地址、端口號,因此服務器端無法向PORT報文中攜帶的私網地址發起TCP連接(此時,客戶端的私網地址在公有網絡中路由不可達)。
- 使用被動模式傳輸數據時,FTP客戶端主動向服務器端的一個開放端口發起連接,如果FTP服務器端在防火墻內部區域中,并且沒有放通客戶端所在區域到服務器端所在區域的主動訪問,那么這個連接將無法建立成功,從而導致FTP無法正常傳輸。
TFTP基礎
相較于FTP,TFTP的設計就是以傳輸小文件為目標,協議實現就簡單很多:
- 使用UDP進行傳輸(端口號69)
- 無需認證
- 只能直接向服務器端請求某個文件或者上傳某個文件,無法查看服務器端的文件目錄。
上傳文件只要客戶端收到服務端確認,便上傳文件,下載文件時,客戶端收到服務器確認,發出確認報文,服務器收到確認報文后,才開始下發文件。
TFTP存在5種報文格式:
- RRQ:讀請求包。
- WRQ:寫請求包。
- DATA:數據傳輸報文。
- ACK:應答包,用于確認收到對端的報文。
- ERROR:差錯控制報文。
總結
以上是生活随笔為你收集整理的华为数通笔记-文件传输协议FTP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高新计算机考试试题ps,最新版计算机高新
- 下一篇: 微信支付之App支付