选择 FTP 和 HTTP 传输的缓冲区大小

2024-03-20

在实现低级 HTTP 和 FTP 传输时,如何选择缓冲区的大小(从套接字读取或写入套接字的字节数)以获得最大吞吐量?我的应用程序应该在 130 Kbps 到 3 Mbps 的连接上使用 HTTP 或 FTP 传输数据(我事先知道预期的速度)。有时是单向转移,有时是双向转移。我应该坚持使用某个平均缓冲区大小还是必须根据连接速度来改变它?

Thanks.


选择超过 8KB 的缓冲区大小。 9000 通常是最快网络中使用的最大 MTU(最大传输单元)大小。

当您使用大于连接 MTU 的缓冲区时,操作系统会根据需要将其分解为 MTU 大小的片段,因此您使用的任何超过 MTU 的内容对网络性能几乎没有影响。

但是,使用大缓冲区可能会对性能产生其他影响,如果您正在传输文件,那么使用大缓冲区可能会提高读取性能,从而提高应用程序的速度。

因此,通常选择一个合适的整数(例如 16KB)是一个好主意。绝对不要低于 1500,因为这会对网络性能产生负面影响(导致操作系统有时发送小数据包,从而降低网络性能)。

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

选择 FTP 和 HTTP 传输的缓冲区大小 的相关文章

  • 通过 HTTPS 加载页面但请求不安全的 XMLHttpRequest 端点

    我有一个页面 上面有一些 D3 javascript 该页面位于 HTTPS 网站内 但证书是自签名的 当我加载页面时 我的 D3 可视化效果不显示 并且出现错误 混合内容 页面位于 https integration jsite com
  • 将 HttpApi 与 I/O 完成端口结合使用

    我刚刚偶然发现了微软的HTTP 服务器 API http msdn microsoft com en us library aa364510 28v vs 85 29 aspx 简介中写道 HTTP 服务器 API 使应用程序能够通过 HT
  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 高维最近邻搜索的最佳数据结构

    我实际上正在处理高维数据 50 000 100 000 个特征 并且必须对其执行最近邻搜索 我知道随着维度的增长 KD 树的性能很差 而且我还了解到 一般来说 所有空间分区数据结构都倾向于对高维数据执行详尽的搜索 此外 还有两个重要事实需要
  • 在 iOS 中,http 204 响应返回空白页面,有办法阻止这种情况吗?

    以前可能有人问过这个问题 但我似乎找不到解决方案 所以如果是这种情况 我深表歉意 我正在开发一个使用express的简单节点应用程序 其中一个帖子路由返回 http 204 并发送它 下面是我的代码 router post id funct
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • 点集子集的最小周长凸包

    给定平面上的 n 个点 没有 3 个共线 给定数字 k 找到 k 个点的子集 使得 k 个点的凸包在 k 个点的子集的任何凸包中具有最小周长 我可以想到一个简单的方法 运行时间为 O n k k log k 找到大小为 k 的每个子集的凸包
  • 解释一下从 N 个给定集合中的每一个中给出第 K 个最大数字的示例?

    今天我尝试解决一个Facebook 编程挑战赛 https facebook interviewstreet com recruit challenges 我遇到的挑战是 酒吧问题 可以找到here https github com alo
  • 防止 ASP.Net 中的表单重新提交(不重定向到我自己)

    我有一个带有表单元素的母版页
  • 时间复杂度和运行时间有什么区别?

    时间复杂度和运行时间有什么区别 它们是一样的吗 运行时间是指程序运行所需的时间 时间复杂度是对输入大小趋于无穷大时运行时间渐进行为的描述 您可以说运行时间 是 O n 2 或其他什么 因为这是描述复杂性类和大 O 表示法的惯用方式 事实上
  • Chrome 开发工具无法显示响应,即使返回的内容具有标题 Content-Type:text/html;字符集=UTF-8

    为什么我的 Chrome 开发者工具显示 无法显示响应数据 当返回的内容是text html类型时响应 在开发者工具中查看返回的响应的替代方法是什么 我认为只有当您选中 保留日志 并且您在导航离开后尝试查看先前请求的响应数据时 才会发生这种
  • Karasuba算法递归过多

    我正在尝试用 c 实现 Karasuba 乘法算法 但现在我只是想让它在 python 中工作 这是我的代码 def mult x y b m if max x y lt b return x y bm pow b m x0 x bm x1
  • 将字符串中的“奇怪”字符转换为罗马字符

    我需要能够将用户输入仅转换为 a z 罗马字符 不区分大小写 所以 我感兴趣的角色只有26个 然而 用户可以输入他们想要的任何 形式 的字符 西班牙语 n 法语 e 和德语 u 都可以包含用户输入中的重音符号 这些重音符号会被程序删除 我已
  • ASP.NET 中 HTTP 缓存相关标头的有效含义

    我正在 ASP NET 2 0 中开发一个 Web 应用程序 其中涉及通过资源处理程序 ashx 提供图像 我刚刚实现了处理缓存标头和条件 GET 请求 这样我就不必为每个请求提供所有图像 但我不确定我是否完全理解浏览器缓存发生了什么 图像
  • 面向服务的架构 - AMQP 或 HTTP

    一点背景 非常大的整体 Django 应用程序 所有组件都使用相同的数据库 我们需要分离服务 以便我们可以独立升级系统的某些部分而不影响其余部分 我们使用 RabbitMQ 作为 Celery 的代理 现在我们有两个选择 使用 REST 接
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何

随机推荐

  • “无法读取未定义的属性‘加载’”

    我正在尝试遵循this https developers google com identity sign in web devconsole project与 Google 登录集成的文档 尽管我在控制台中遇到了此错误 Uncaught
  • async/await forEach 和 Promise.all + map 有什么区别

    In 类似问题的接受答案 https stackoverflow com a 37576787 12458473答案指出forEach调用只是抛出一个承诺然后退出 我认为情况应该是这样forEach回报undefined但是为什么下面的代码
  • atexit 被认为有害吗?

    使用是否存在固有的危险atexit在图书馆等大型项目中 如果是这样 背后的技术本质是什么 atexit这可能会导致大型项目出现问题 我避免使用的主要原因atexit在图书馆中 它的任何使用都涉及全局状态 一个好的库应该避免拥有全局状态 然而
  • 在 vue 组件的模板 html 中启用智能感知需要什么?

    我对 Vue 比较陌生 但精通 Typescript 和 Angular 我目前正在走打字稿路线 使用vue 类组件 https github com vuejs vue class component and vue 属性装饰器 http
  • 无法访问 Django 服务器 http://127.0.0.1:8000/

    第一次它工作得很好 但现在显示了这个问题 app python manage py runserver Performing system checks System check identified no issues 0 silence
  • 更改路线不会滚动到新页面的顶部

    当路线改变时 我发现了一些不受欢迎的行为 至少对我来说是这样 在教程的第11步中http angular github io angular phonecat step 11 app phones http angular github i
  • 如何将双精度值和浮点值插入到sqlite中?

    以下是我的数据库创建代码 Override public void onCreate SQLiteDatabase db db execSQL CREATE TABLE TABLE NAME ID INTEGER PRIMARY KEY A
  • 打开跟踪文件时出错:没有这样的文件或目录 (2)

    我收到上述错误 打开跟踪文件时出错 没有这样的文件或目录 2 当我在模拟器上运行我的 Android 应用程序时 有人能告诉我这可能是什么原因吗 我正在使用 android sdk 20 并将以下行添加到 AndroidManifest x
  • 未捕获的 ReferenceError:ReactDOM 未定义

    所以我有Rails应用程序 我安装了react rails gem 设置它并尝试运行测试应用程序 刚安装好后 当我尝试运行 hello world 程序时 发生了以下错误 未捕获的 ReferenceError ReactDOM 未定义 这
  • C#,WinForms 中的双缓冲区?

    private void button3 Click object sender EventArgs e this DoubleBuffered true for int i 0 i lt 350 i using Graphics g th
  • 如何解析 gridstack.js 项目?

    也许这很简单 但我仍在学习 JS 之类的东西 我正在使用插件https github com troolee gridstack js https github com troolee gridstack js并希望在小部件重新定位 调整大
  • Android:购买后使用产品(应用内计费)

    我在应用程序计费方面遇到一些问题 我想在应用程序内创建一个可以多次购买的产品 但谷歌在应用程序内计费的方式是 产品必须先被消费 然后才能再次购买 我用下面的代码尝试过 public class HomeFragment extends Fr
  • 使用 SonarQube Web api 分析项目

    我使用 SonarQube Web api 创建了一个项目 现在我正在尝试分析该项目 我找到了这个 POST api project analyses create event 当我尝试这项服务时 我得到了这样的回复 errors msg
  • jQuery html() 和 &

    我正在人员列表中进行搜索 我希望它能够即时显示结果 所以它确实做到了 但我需要一个链接 它应该如下所示 chatid 18 userid 45 create new 但通过此显示结果后 get ajax php sec search use
  • 经过身份验证后访问 [Authorize] 控制器时收到 404

    我正在尝试在 ASP NET MVC Core 应用程序 NetCore 2 上使用 IdentityServer4 实现身份验证和访问控制 虽然这不是我第一次实现后端 但这是第一次使用 net 并且我正在努力解决一些问题 我已按照以下说明
  • 文本分析:使用 python 查找列中最常见的单词

    我创建了一个数据框 其中只有一个带有主题行的列 df activities filter Subject axis 1 df shape 这返回了这个数据框 Subject 0 Call Out Quadria Capital May Lo
  • Azure IOT 配置服务中的个人注册无法通过 REST API 运行

    我目前面临着使用提供的 REST API 在 Azure 设备配置服务中进行个人注册的挑战 文档中也存在一些空白 我正在按照此网址中的官方文档中提到的步骤进行操作 https learn microsoft com en us rest a
  • DistributedNotificationCenter - 如何在应用程序之间传递数据?

    我构建了两个应用程序 主 应用程序和一个支持它的 Finder 扩展 使用分布式通知中心我可以成功地在应用程序之间来回发布消息 并且注册的观察者事件会按预期触发 问题似乎是我无法通过该事件传递任何用户数据 所有文档都表明您可以通过NS词典
  • Python 全局对象变量

    我想使用一个已从独立模块在类内部实例化的对象 我试图通过使对象引用全局来做到这一点 我想我想利用当前的对象而不是创建一个新的对象 假设我在模块文件中有这段代码 import moduleFile class A def checkAdmin
  • 选择 FTP 和 HTTP 传输的缓冲区大小

    在实现低级 HTTP 和 FTP 传输时 如何选择缓冲区的大小 从套接字读取或写入套接字的字节数 以获得最大吞吐量 我的应用程序应该在 130 Kbps 到 3 Mbps 的连接上使用 HTTP 或 FTP 传输数据 我事先知道预期的速度