通过网络(FTP、HTTP、RSync 等)传输文件的最快方法是什么[关闭]

2024-01-31

我试图找出通过网络在两个系统之间传输大量数据的最佳方法。我目前正在研究 FTP、HTTP 或 RSync,我想知道哪一个最快。我在网上寻找一些答案并找到了以下网站:

  • http://daniel.haxx.se/docs/ftp-vs-http.html http://daniel.haxx.se/docs/ftp-vs-http.html
  • http://www.isi.edu/lsam/publications/http-perf/ http://www.isi.edu/lsam/publications/http-perf/

问题是这些已经过时了,并且更多地讨论了协议通信方式之间的理论差异。我对实际基准更感兴趣,可以说,对于特定设置,当传输不同大小的文件时,一种协议比其他协议快 x%。

有人测试过这些并将结果发布在某处吗?


好吧,所以我设置了以下测试:

  • 硬件:2 台台式机 Intel Core Duo CPU @ 2.33GHz,具有 4G RAM。
  • 操作系统:两台机器上的 Ubuntu 11.10
  • 网络:100Mb专用交换机,两台机器都连接到它。
  • Software:
    • Python HTTP 服务器(受此启发 https://gist.github.com/1227973).
    • Python FTP 服务器(受此启发 http://code.google.com/p/pyftpdlib/source/browse/trunk/demo/basic_ftpd.py).
    • Python HTTP 客户端(受此启发 http://code.activestate.com/recipes/146306-http-client-to-post-using-multipartform-data/).
    • Python FTP 客户端(受此启发 http://zephyrfalcon.org/weblog/arch_d7_2003_06_28.html#e262).

我将以下几组文件上传到每个服务器:

  1. 1个100M文件。
  2. 10个10M文件。
  3. 100 个 1M 文件。
  4. 1,000 个 100K 文件。
  5. 10,000 个 10K 文件。

我在多次运行中得到了以下平均结果(以秒为单位的数字):

|-----------+---------+----------|
| File Size | FTP (s) | HTTP (s) |
|-----------+---------+----------|
|      100M |       8 |        9 |
|       10M |       8 |        9 |
|        1M |       8 |        9 |
|      100K |      14 |       12 |
|       10K |      46 |       41 |
|-----------+---------+----------| 

因此,似乎 FTP 在大文件中稍快一些,而 HTTP 在许多小文件中稍快一些。总而言之,我认为它们是具有可比性的,并且服务器实现比协议重要得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过网络(FTP、HTTP、RSync 等)传输文件的最快方法是什么[关闭] 的相关文章

  • Node.js 中的 HTTPS 代理服务器

    我正在开发一个node js代理服务器应用程序 我希望它支持HTTP and HTTPS SSL 协议 作为服务器 我目前正在使用node http proxy https github com nodejitsu node http pr
  • 比较 TCP 校验和与 Scapy?

    我试图在使用 Scapy 作为嗅探器时识别校验和不正确的数据包 我可以通过访问获得原始校验和 packet TCP chksum 然后我使用删除它 del packet TCP chksum 我想做类似的事情 if originalChec
  • 通过 HTTPS 包含 Twitter Widgets.js

    当我们包含以下内容时 我在我们网站上的 HTTPS 服务页面上的混合内容方面遇到了一个小问题http platform twitter com widgets js http platform twitter com widgets js
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • gRPC(HTTP/2) 比使用 HTTP/2 的 REST 更快吗?

    目标是引入一种性能更好的传输和应用层协议latency and 网络吞吐量 目前 该应用程序使用REST with HTTP 1 1并且我们遇到了很高的延迟 我需要解决这个延迟问题并且我愿意使用gRPC HTTP 2 or 休息 HTTP2
  • P2P网络游戏/应用程序:类似“战网”匹配服务器的不错选择

    我正在制作一个网络游戏 1v1 游戏中是 p2p 不需要游戏服务器 然而 为了让玩家能够 找到彼此 而不需要在另一种媒介中协调并输入IP地址 类似于网络游戏的现代时代 我需要有一个协调 匹配服务器 我无法使用常规网络托管 因为 客户端将使用
  • 本地主机:8080 是什么意思? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有什么区别本地主机 网络 vs 本地主机 8080 web TCP IP 连接始终与 IP 地址建立 您可以将 IP 地址视为某台计算机的
  • PHP ajax使用新数组上传多个文件

    它是我的上传 html 代码 div class col xs 12 div
  • 如果防火墙打开,Java 7 会阻止 Windows Vista 和 7 上的 FTP 传输。有任何想法吗?

    Java 7 阻止 Windows Vista 和 7 上的 FTP 传输 在 FTP 中 在传输文件之前 必须发送 PORT 或 PASV 命令 一旦发送其中一个命令 Windows 防火墙就会关闭发送该命令的套接字 仅当防火墙打开并且
  • 使用 Flash 在本地托管游戏?

    我只是找不到合适的谷歌搜索词 是否可以使用 Flash 或 Flash 兼容服务 来允许游戏中的玩家通过 Web 浏览器托管自己的游戏 使用自己的带宽 在某种程度上 从他们的计算机运行他们自己的游戏服务器 对于 Flash 浏览器内游戏 但
  • 使用 Python 了解何时已从 FTP 源完全接收文件

    我正在使用 Python 开发一个执行以下操作的应用程序 监视特定目录并监视文件 转移到它 文件完成传输后 运行一些 文件上的外部程序 我开发这个应用程序的主要问题是知道文件何时完成传输 据我所知 该文件将通过 SFTP 传输到特定目录 P
  • 在我的网络上的其他计算机上查看我的 IIS 托管站点

    在家里 我有一个包含两台机器的简单网络设置 在一台机器上 我有一个使用 IIS7 托管的网站 而不是标准localhost index htm地址我已经添加了一个条目HOSTS将本地 IP 127 0 0 1 指向该域的文件 www mys
  • 如何从对Web服务发出的请求中获取客户端IP地址

    我的 IIS 中托管有一个 Web 服务 当客户端直接使用我的服务时 我需要找出客户端 IP 地址 like http MyIpAddress MyApplication MyWebServiceClass asmx http MyIpAd
  • 如何测试“If-Modified-Since”HTTP 标头支持

    使用 PHP 如何准确测试远程网站supports If Modified Since HTTP 标头 据我所知 如果您获取的远程文件自标头请求中指定的日期以来已被修改 它应该返回 200 OK 状态 如果尚未修改 则应返回 304 Not
  • Golang 优雅地关闭 HTTP 服务器并进行错误处理

    我正在让我的 HTTP 服务器正常关闭 我从帖子中获取了提示here https stackoverflow com questions 39320025 how to stop http listenandserve 并且到目前为止已经像
  • blueimp jQuery 文件上传,无需 ajax

    我真的很喜欢选择文件并进行预览以及取消或删除选项的客户端处理 但是我想用表单上传页面 并且不需要使用ajax 我一直在摆弄所有选项 但无论如何我都找不到用同步选择的文件发布到表单的方法 是否可以让 data files 与表单一起发布 您可
  • asp.net core http 如果没有内容类型标头,则删除 `FromBody` 忽略

    我在 http 中使用 bodyDELETE要求 我知道目前删除主体是非标准的 但是允许的 使用时出现问题HttpClient它不允许删除请求的正文 我知道我可以使用SendAsync 但我宁愿让我的 API 更加灵活 我希望这个机构是可选
  • 如何使用 http 将 Android 中的文件从移动设备发送到服务器?

    在android中 如何使用http将文件 数据 从移动设备发送到服务器 很简单 您可以使用 Post 请求并将文件作为二进制 字节数组 提交 String url http yourserver File file new File En
  • 扭曲多种协议

    我希望为我正在从事的项目学习扭曲 该项目需要服务器响应 HTTP 请求以及通过 TCP 连接的其他协议 Twisted能够同时处理多种协议吗 我想使用 Twisted Web 来帮助处理 HTTP 但同时需要响应其他端口上的 TCP 连接
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt

随机推荐

  • Scala 中的 Drools Expert 输出对象

    我是 Scala 和 Drools Expert 的新手 需要一些帮助来从 Drools 会话中获取信息 我已经成功设置了一些由 Drools 规则操作的 Scala 类 现在我想创建一个对象来存储一组输出事实 以便在 Drools 外部进
  • 从 GeoPandas 图中重新定位图例

    I m plotting a map with legends using the GeoPandas plotting function When I plot my legends appear in the upper right c
  • 防御 XSS 攻击?

    我对 PHP 很陌生 但我听说 XSS 漏洞很糟糕 我知道它们是什么 但如何保护我的网站 为了防止 XSS 攻击 您只需正确检查和验证您计划使用的所有用户输入的数据 并且不允许从该表单插入 html 或 javascript 代码 或者您可
  • 为 Twilio-Whatsapp 电话号码上的传入消息设置 Webhook

    我们有一个支持 Whatsapp 的 Twilio 电话号码 当尝试以编程方式设置传入消息的 Webhook 时 Webhook 设置正确 但消息未通过 Whatsapp 电话号码的 Webhook 似乎位于与普通电话号码不同的位置 要手动
  • 范围内的字符类 - vim

    鉴于我有以下字符串 This is a test string string string 并尝试执行以下替换 s w substitute g 它不会出现错误 未找到模式 当我使用时 s a zA Z substitute g 有用 有没
  • 什么情况下fgetcsv返回false?

    The 文档 http php net manual en function fgetcsv php says 如果提供了无效句柄 则 fgetcsv 返回 NULL 如果出现其他错误 包括文件结尾 则返回 FALSE 除了文件结尾之外 什
  • 访问 static constexpr std::array 而不使用类外定义

    我有一个定义一些数组的类 点 hpp class Points public static constexpr std array lt double 1 gt a1 0 0 static constexpr std array lt do
  • 如何在java中生成所有可能的64位随机值?

    是否有JavaSecureRandom nextLong 返回所有可能的值 因为它继承自Random它只使用 48 位 如果没有 我仍然可以在 Java 中通过修改 Random 类来实现它吗 如何做到这一点 我只想使用一个全随机长数生成器
  • 无需刷新页面即可启用地理位置?

    目前 我们必须刷新网页 实际上PhoneGap应用程序 如果 GPS 关闭并且 通知用户后 然后打开 我们怎样才能更新GeoLocation状态无需刷新页面 应用程序 为什么不简单地使用 setInterval 每隔几秒检查一次支持
  • 在 Heroku 的生产中使用 ENV 文件

    我的配置中有以下行生产 rb环境文件 按照说明本文 https devcenter heroku com articles memcachedcloud using memcached from ruby config cache stor
  • 抽象类的复制构造函数

    我有一个名为的抽象类AClass 在同一个包中我有AnotherClass 其中我有一个ArrayList of AClass对象 在复制构造函数中AnotherClass我需要复制一份AClass里面的物体ArrayList 问题 我无法
  • 有没有用于可视化 Node.js 中模块依赖关系的库?

    作为 Node js 应用程序主要重构的一部分 走向 DDD 我正在寻找一个库 通过检查代码能够可视化不同节点模块之间的模块依赖关系 通过 要求 它们 以表格格式可视化很好 我不需要花哨的图表 有没有 Node 库 如果您也可以接受一些花哨
  • Java - 线程、Swing 和 ServerSocket

    我知道我知道 已经有一百万个关于这个问题的问题和答案无处不在 有大量关于它的非常详细的文章 以及几种类型的示例 我花了几个小时阅读有关它的内容 但这并没有解决问题 我问这个的原因是因为我仍然不明白我需要做什么 因为我的代码仍然无法工作 我了
  • Powershell 参数路径的值为 NULL

    我开发了一个 PS1 文件 它将负责基于服务器列表应用 SQL Server 补丁 因此 它将读取一个文本文件 其中包含我需要修补并应用修补程序的所有服务器 我决定使用 PARAM 作为 源文件夹 我将在其中获取服务器列表并记录输出 目标文
  • 替换 CSV 第一列中的数据

    我有一个包含许多列的 CSV 第一列中的数据是日期 但格式错误 我可以仅选择第一列并重新格式化日期 但我无法弄清楚如何将新数据保存到现有 CSV 而不覆盖所有其他数据 File File csv Content Get Content Fi
  • 新的Google Play控制台:在哪里上传mapping.txt?

    我不知道在新的 Google Play 管理中心中将mapping txt 上传到哪里 要上传反混淆 打开 Play 管理中心 选择一个应用程序 在左侧菜单中 选择 发布 gt 应用程序包资源管理器 选择 下载 选项卡 然后向下滚动到 资产
  • 将单元格中的值范围转换为逗号分隔列表

    我可以在单元格 B1 中使用一个公式来查看 A1 并创建一个基于逗号的列表吗 所以下面我可以输入 A1 B1是一个公式 这可能吗 我会让 A1 始终遵循与 XXX XXX 范围相同的格式 TABLE A Input B Result 1 1
  • 网站图标-MVC3 ASP.NET

    favicon ico 需要什么 我正在尝试使用 MVC 错误处理 但它抱怨文件丢失 如何摆脱此错误 Thanks 前往RegisterRoutes的方法全局 asax cs文件 并将其添加为第一行之一 routes IgnoreRoute
  • MATLAB脚本代码和函数代码在同一个文件中? [复制]

    这个问题在这里已经有答案了 可能的重复 在 MATLAB 中 我可以在同一个文件中包含脚本和函数定义吗 https stackoverflow com questions 5363397 in matlab can i have a scr
  • 通过网络(FTP、HTTP、RSync 等)传输文件的最快方法是什么[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我试图找出通过网络在两个系统之间传输大量数据的最佳方法 我目前正在研究 FTP HTTP 或 RSync 我想知道哪一个最快 我在网上寻找