node.js - Node.js 可以强制更大的 POST 请求 block 大小吗?

标签 node.js http

这可能超出了 Node.js 可以控制的范围,但也欢迎任何指向此问题的其他解决方案的指针。

我正在通过 HTTP POST 将大文件上传到 Node.js 服务。当它在本地或 LAN 上运行时,服务器接收的 block 大小始终为 65536 字节并且上传速度很快。

当我将相同的文件上传到运行在远程服务器(谷歌云虚拟机,或 co-lo 的真实硬件)上的相同代码时,接收到的 block 在 1448-2869 字节之间,上传速度要慢得多(远低于连接的带宽限制)。

我不确定通过 WAN 连接发送较小块的决定是在哪里做出的,如果它是由客户端软件执行的计算(curl 和 node.js 客户端产生相同的结果),或者它是否是路由分割数据包的中间硬件,或完全不同的东西。

我想知道我是否可以做些什么来强制将更大的数据 block 传送到服务器,或者是否有一种替代方法可以克服与处理这些小数据 block 相关的服务器抖动?

最佳答案

经过大量实验并与网络工程师讨论后,问题的核心是当连接超出直接以太网链路时 MTU 大小施加的限制。

我的解决方案是修改应用程序以使用多个并发请求来基本上“填补由较小块的网络开销造成的空白”。结果是网络传输速度大大加快,但复杂性略有增加。

关于node.js - Node.js 可以强制更大的 POST 请求 block 大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054689/

相关文章:

javascript - 从各个模块获取单独的导出

ios - 无法使用订阅优惠购买

php - 如何使用 Guzzle 进行 HTTP 基本身份验证?

scala - 如何在 Gatling 的 http 请求中获取随机 URL?

http - 如何强制页面仅在 IFrame 中加载?

javascript - $asyncValidators Angular

javascript - 如何在同一端口上启动 react 和 Node api 服务器?

javascript - 由于node和webpack版本冲突,无法安装依赖项

c - 如何用c语言实现gmail的Oauth2.0

javascript - 对 TypeScript 类型的 ChildProcess 类的引用