網絡通信協議分層
應用層:
- HTTP(Hypertext Transfer Protocol 超文本傳輸協議,顯示網頁)
- DNS(Domain Name System)
- FTP(File Transfer Protocol)
- SFTP(SSH File Transfer Protocol,和FTP不一樣)
- SCP(Secure copy,based on SSH)
- SSH (Secure Shell)
通信層:
- TCP(Transmission Control Protocol 三次握手傳輸協議)
- UDP
網絡層:
- IP(Internet Protocol)
- ICMP(Internet Control Message Protocol,主要用於路由發送錯誤報告)
鏈接層:
- MAC(media access control)
文件傳輸協議:
PASV(Passive被動)方式的連接過程是:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了一個1024+的隨機端口,你過來連接我”。於是客戶端向服務器的指定端口發送連接請求,建立一條數據鏈路來傳送數據。
PORT方式,服務器會主動連接客戶端的指定端口,那麼如果客戶端通過代理服務器鏈接到internet上的網絡的話,服務器端可能會連接不到客戶端本機指定的端口,或者被客戶端、代理服務器防火牆阻塞了連接,導致連接失敗。PASV方式,服務器端防火牆除了要放開21端口外,還要放開PASV配置指定的端口範圍。
SFTP(Secure File Transfer Protocol):安全文件傳送協議。可以爲傳輸文件提供一種安全的加密方法。SFTP與 FTP有着幾乎一樣的語法和功能。SFTP爲SSH的一部份,是一種傳輸文件到服務器的安全方式。在SSH軟件包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全文件傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(端口號默認是22)來完成相應的連接操作,所以從某種意義上來說,SFTP並不像一個服務器程序,而更像是一個客戶端程序。SFTP同樣是使用加密傳輸認證信息和傳輸的數據,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網絡安全性要求更高時,可以使用SFTP代替FTP。
SCP(Secure Copy):SCP就是Secure copy,是用來進行遠程文件複製的,並且整個複製過程是加密的。數據傳輸使用ssh,並且和使用和ssh相同的認證方式,提供相同的安全保證。
FTP 基於TCP來傳輸文件,明文傳輸用戶信息和數據。