通过多个套接字传输文件是否比仅使用一个套接字更快?

2023-12-28

在这个旧(从 2002 年开始),它说如果您将一个文件分成多个块,然后使用不同的套接字传输每个块,那么它的到达速度将比使用一个套接字将其作为一个整体传输要快得多。我还记得(很多年前)读过一些下载管理器也使用这种技术。这有多准确?


鉴于具有大窗口或小 RTT 的单个 TCP 连接可能会使任何网络链接饱和,我看不出您期望从多个 TCP 会话中获得什么好处。每个新部分将以慢启动开始,因此传输速率低于已建立的连接。

TCP 已经具有高吞吐量、高延迟连接的代码(“窗口比例选项 http://en.wikipedia.org/wiki/TCP_window_scale_option”)并处理数据包丢失。尝试通过并行连接来改进这一点通常会产生负面影响,因为会出现更多的故障情况和增加数据包丢失(由于单个连接上的 TCP 可以管理的拥塞)。

仅当您同时进行提取时,多个 TCP 会话才有用不同的并且网络瓶颈位于本地网络之外(例如 BitTorrent),或者服务器对每个连接进行带宽限制(此时您正在针对服务器而不是 TCP 或网络进行优化)。

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

通过多个套接字传输文件是否比仅使用一个套接字更快? 的相关文章

随机推荐

  • MySQL If 语句问题

    我正在尝试做这个IF声明有效 但我似乎无法让它执行我想要的操作 如果我做一个选择 result 它会给我价值0 那么为什么不IF声明工作 SET message sometihng here select LEFT message 1 in
  • git 错误:RPC 失败,curl 56 GnuTLS 接收错误(-110)

    运行时出现这个错误如何解决git clone在 Linux git 存储库上 错误 RPC 失败 curl 56 GnuTLS 接收错误 110 TLS 连接未正确终止 root git clone https git kernel org
  • 获取对组件中使用的指令的引用

    我有一个组件 其模板如下所示 div Some content here div 我需要访问MyCustomDirective这里使用的类实例 当我想访问子组件时 我使用ViewChild query 是否有等效的功能来访问子指令 您可以使
  • 将highcharts y轴最小值设置为0,除非有负数数据

    我遇到了 highcharts 的问题 其中有许多由 JSON 调用生成的不同图表 对于大多数图表 我需要将最小 y 轴值设置为 0 但也有一些情况需要显示负值 仅当数据中没有负值时 如何告诉 highcharts 将 y 轴最小值设置为
  • 警告:JSF1091:找不到文件 QcFormDean.jsp 的 mime 类型,但请等待它是 jsf 文件

    我刚刚将 jstl 1 2 jar JSF api 和 impl jar 添加到我的库中 以便这可以在我的 jsf xhtml 文件上运行
  • 如何查找数组中缺失值的索引?

    我有一个像这样的数组 a 1 2 3 4 5 所以现在我想找到缺失值索引 即3 using indexOf 检查该值是否为undefined就像下面的代码 for var i 0 i lt a length i if typeof a i
  • 当我打开 Twitter Bootstrap 模式时,如何更改查看后面页面的方式?

    我正在打开一个模式 但是当我这样做时 模式后面的页面会变得非常暗 有人可以解释一下我该如何改变这一点吗 例如 我怎样才能做到背景上只有非常浅的阴影 我还注意到 当我单击背景时 我的模式就会消失 有什么办法可以删除这个功能 我希望我的模式仅在
  • 如何在匿名函数中使用变量?

    我试图定义 f x d x 其中 d 是之前定义的变量 假设 d 2 我的目标是让它返回 x 2 x 但是 MATLAB 返回 x d x 我这样做的原因是在 for 循环中定义一系列函数句柄 例如 q cell n 1 for i 1 n
  • Abc.app 未密封的内容存在于捆绑根目录中 - Xcode,捆绑需要进行任何更改吗?

    我已将 XCode 版本从 3 2 6 切换到 5 1 1 我被要求更改项目设置并移植到新格式 并解决了许多编译错误 现在没有编译错误 我可以成功构建我的项目 当我尝试使用 codesign v2 mac 10 9 5 签署项目时 我可以看
  • ini_set 不会覆盖 php 设置

    我正在尝试上传更大的文件 所以我在 php 代码中设置它 ini set upload max filesize 1000M ini set post max size 1100M ini set memory limit 1200M 但
  • 网络流算法的适当图形表示

    实施时福特 富尔克森 http en wikipedia org wiki Ford E2 80 93Fulkerson algorithm or Dinitz http en wikipedia org wiki Dinic 27s al
  • Mock 的 autospec 将错误的参数注入到被调用的函数中

    我的理解是autospec此处使用的最简单的形式将检查正在根据所提供的参数进行模拟的函数的签名 其目的是在它们不匹配时引发错误 在下面的代码中 它似乎注入了一个额外的参数 对象本身 为什么使用mock模块的autospec导致此处显示的意外
  • 为什么声纳需要二进制文件(sonar.binaries)

    为什么声纳需要二进制文件 sonar binaries 它如何使用二进制文件来完成它对二进制文件所做的事情 sonar binaries是一个已弃用的属性 您现在应该使用sonar java binaries 该属性由 java 分析使用
  • 如何使用 Laravel 在 PHP 中处理 paypal webhook 事件?

    我正在尝试将 Paypal 功能集成到我的网站中 我已经安装了 SDK 并且可以调用 Paypal API 我的主要任务是创建发票 然后在客户支付发票时更新数据库 我能够正确创建发票 它们显示在我的沙箱通知下 我还在 Paypal 上的 R
  • 在 Orchard MVC CMS 中更改数据库连接设置的位置

    我在 Orchard CMS 中建立了一个网站 在选择数据存储设置时 我选择了 使用现有的 SQL Server 或 SQL Express 数据库 代替 使用内置数据存储 SQL Server Compact 它对我来说效果很好 但我想知
  • 如何在 Laravel 5.3 注册上添加动态下拉列表栏?

    我想创建一个下拉列表 其中从数据库检索数据 即下拉级别 下拉级别的值取自表级别 我的注册控制器是这样的
  • org.openqa.selenium.NoSuchElementException:无法找到元素

    如果 saleIdValueIs 正确 此代码可以正常工作 但当 saleIdValueIs 数据不正确时 此代码无法正常工作 然后它显示一条错误消息 org openqa selenium NoSuchElementException 无
  • 插入 postgresQL

    有没有一种方法可以在没有自动递增ID的表中插入新记录 而无需专门输入ID 我只希望ID是lastId 1 INSERT INTO lists VALUES id KO SPH 5 新的ID 不要那样做 EVER 根本就别想这么做 This
  • Oracle 字符串替换

    我的 Oracle 数据库中有一个列 由于我无法控制的原因 该列包含一个 CSV 字符串 例如 项目a 项目b 项目c 项目d 我想运行 UPDATE 语句来删除项目 c 因此最终得到 项目a 项目b 项目d 我怎样才能实现这个目标 你可以
  • 通过多个套接字传输文件是否比仅使用一个套接字更快?

    在这个旧 从 2002 年开始 它说如果您将一个文件分成多个块 然后使用不同的套接字传输每个块 那么它的到达速度将比使用一个套接字将其作为一个整体传输要快得多 我还记得 很多年前 读过一些下载管理器也使用这种技术 这有多准确 鉴于具有大窗口