Linux学习小标兵,专注Linux资讯分享,技术文章分享
分类: LINUX
2022-11-10 22:36:59
接触过 操作系统的同学一定对文件传输协议并不陌生,因为在 Linux 操作系统里我们对文件的上传下载通常不会像我们操作 window 系统那么直观,一般都是通过文件传输协议去完成的。在我的日常工作中,常用的文件传输协议有 FTP 、 SFTP 和 SCP ,今天就把对此协议浅薄的理解整理出来,希望能够帮到大家。
一、网络通信协议的分层
在 OSI 网络模型一共有七层,每一层接收其下一层所提供的服务(听从下属反馈),并且为为自己的上层提供服务(向领导汇报),上下层通信所遵循的规范叫接口,同层之间相互通信所遵循的规范叫协议。 OSI 网络模型对应的七层从上到下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
接触过 操作系统的同学一定对文件传输协议并不陌生,因为在 Linux 操作系统里我们对文件的上传下载通常不会像我们操作 window 系统那么直观,一般都是通过文件传输协议去完成的。在我的日常工作中,常用的文件传输协议有 FTP 、 SFTP 和 SCP ,今天就把对此协议浅薄的理解整理出来,希望能够帮到大家。
一、网络通信协议的分层
在 OSI 网络模型一共有七层,每一层接收其下一层所提供的服务(听从下属反馈),并且为为自己的上层提供服务(向领导汇报),上下层通信所遵循的规范叫接口,同层之间相互通信所遵循的规范叫协议。 OSI 网络模型对应的七层从上到下分别为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
应用层:是我们{BANNED}最佳有直观感受的,它负责为应用程序提供服务,比如文件传输,电子邮件等,今天跟大家分享的文件传输协议就处在应用层。
表示层:主要负责将接收到的信息转换成协议规定的数据格式。
会话层:主要负责通信的链接和断开。
传输层:负责节点之间的数据传输,如 UDP (无状态传输)和 TCP (有状态传输)。
网络层:负责将数据传到指定的地址,如 IP 、 ICMP 。
数据链路层:负责物理层面上两个节点的传输,如 MAC 。
物理层:负责比特流与电子信号之间的切换。
需要注意的是 , 在实际的数据通信过程中,并不是每次都要用到这七层协议的。
二、文件传输协议
FTP 的全称是 File Transfer Protocol ,是网络中两台计算机进行文件传输的协议规范,也是网络史上{BANNED}最佳早被使用的协议之一,处在 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 的知识点梳理,比较浅显,只是停留在使用层面上,如果你需要深层次的理解和应用,可以去 这本书去查阅。好了,今天就到这里啦,希望能帮到大家!