关于SFTP和网络分层的理解

首先需要先简单介绍一下网络七大层:

应用层            通信类型:E-mail、文件传输、客户端/服务器

表示层            加密、数据转换:ASCII转换为EBCDIC、BCD转换为二进制等

会话层            开始,停止会话。维持秩序

传输层            确保传送整个文件或消息

网络层            根据网络地址将数据路由到不同的局域网和广域网

数据链路层     通过站点地址从节点发送数据包

物理层            电信号和光纤

网络七大层,在编程运用最多的是TCP/IP四层参考模型:物理链路层、网络层、传输层、应用层

常见的应用层有:

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)

FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。FTP是基于TCP协议的,因此iptables防火墙设置中只需要放开指定端口(21 + PASV端口范围)的TCP协议即可。

SSH(Secure Shell):由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH是由客户端和服务端的软件组成的:服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接; 客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

从客户端来看,SSH提供两种级别的安全验证:第一种级别(基于口令的安全验证); 第二种级别(基于密匙的安全验证)。SSH 主要有三部分组成: 传输层协议 [SSH-TRANS] ;用户认证协议 [SSH-USERAUTH] ;连接协议 [SSH-CONNECT]。

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来传输文件,明文传输用户信息和数据。

SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。 

SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。 

你可能感兴趣的:(关于SFTP和网络分层的理解)