networking - 是什么让 SFTP 和 SCP 协议(protocol)的吞吐量不同

标签 networking scp ssh2-sftp

在 Windows 中,我使用 sftp 和 scp(安全复制协议(protocol))传输了一个数据文件 (8GB),得到的结果如下:

Link speed is 1000 Mbps

I'm getting this data from Wireshark filter by SSHv2 Protocol

计算出的吞吐量=数据量/时间(秒)

this is throughput of both protocol

我是网络新手。我不知道是什么让这些协议(protocol)的吞吐量不同?我认为这与交互式和非交互式无关,因为在调试文件时,我看到传输文件期间的命令行是相同的。谁能给我解释一下?

最佳答案

这两种协议(protocol)都基于 SSH。和 SSH itself has some overhead : wiki

SCP 是非常简单的协议(protocol),使用非常简单的算法来传输一些小文件。它有很多同步(RTT - 往返时间)和小缓冲区(基本上是 2048 B -- source)。

另一方面,SFTP 更先进,更适合传输文件。它有更大的缓冲区,减少了对同步的需求并提高了速度。我猜您会使用 rsync 获得类似的结果,这可能是最适合传输数据的工具。 Buffer has by default 32 768 B = 32 kB,但它是使用 -B 开关在命令行上配置的。

关于networking - 是什么让 SFTP 和 SCP 协议(protocol)的吞吐量不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36769366/

相关文章:

macos - 适用于PHP7 MacOS的SSH2?

networking - 如何获取服务器上正在使用的端口列表

java - 从网络启动时列出可运行 jar 中的资源失败

java - 没有显示监听套接字

linux - 错误捕获 scp 退出代码不起作用

nginx - 在 kubernetes 中接收和提供静态文件

node.js - SFTP 内部循环 promise 不将文件数据下载到本地文件?

c# - 我如何等待异步 ping 负载在 C# 中全部完成?

linux - 在 bash shell 中使用 scp 时出现段错误(核心已转储)

node.js - 从 Node 上传多个文件到 SFTP