- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
出于无聊的好奇心,我一直在研究 Nagle 的算法。我理解它背后的基本概念(TCP 数据包包含大量开销,尤其是在处理小负载时),但我不确定我是否理解了实现。
我正在阅读 this article在维基百科上,但我仍然不清楚它是如何工作的。让我们以 Telnet 连接为例。连接建立,我开始打字。假设我键入三个字符(例如 cat
)并按回车键。现在我们讨论的 cat\r\n
仍然只有 5 个字节。我认为这不会被发送,直到我们排队足够的字节来发送 - 然而,它确实立即被发送(从用户的角度来看),因为 cat
是点击返回立即执行。
我认为我对算法的工作原理存在根本性的误解,特别是关于“如果管道中仍有未确认的数据,则入队,否则立即发送”这一点。
最佳答案
只有当服务器已经响应了您之前的任何消息(或者这是您在此 session 中第一次与它联系)时,数据才会立即发送。因此,随着服务器变得更加繁忙和响应速度变慢,为了避免过多的数据包淹没它,数据在发送之前排队达到最大数据包大小。
因此,是否立即发送数据只能在先前消息的上下文中确定,如果有的话。
关于algorithm - 不清楚 Nagle 的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040462/
MVC3 中的助手是否在 Controller 和 View 中使用? 助手是放置常用 Controller 方法的正确位置吗? 我想创建一个通用方法来获取数据库中的所有子子 ID,并确保它位于正确的
有人可以阐明这两者之间的区别吗,因为它们存在于执行上下文中?我很难阅读 ECMA 262 v 5规范并清楚地看到差异。 谢谢你, 最佳答案 两者都是执行上下文的组件(相同类型),但它们有不同的用途(f
我是一名优秀的程序员,十分优秀!