Nagle算法是一种用于提高网络效率的系统,尤其是互联网。该系统涉及避免以不必要的小批量发送数据,这也增加了发送的批量。虽然Nagle的算法有它的用途,但它与网络通信的其他元素的交互效果很差。
由一位名叫约翰·纳格尔的人创建,纳格尔的算法适用于使用TCP/IP协议的网络。这些是网络传输数据的协议或“规则”。虽然这些协议可以应用于任何网络,但它们通常与Internet相关联。
该算法处理以小块或“数据包”形式传输数据的方式每个数据包包含一些数据和头信息,这些信息相当于物理信封上的发送者和接收者地址。包中还包含一个校验和,这在数学上相当于包含一个装箱单,以便收件人知道包中的所有内容已安全到达。
虽然该系统通常工作正常,但如果数据块特别小,则可能效率低下。在极端情况下,数据包中的数据可能只有一个字节,但不管数据大小如何,报头信息都将占用40个字节。这大致相当于给某人写一封信,然后把它切碎,把每个字装在一个单独的信封里。事实上,因为消息是以二进制格式发送的,所以效率甚至比这更低。除了浪费带宽外,这还增加了必须发送的数据包数量,从而增加了传输过程中发生错误的可能性。
Nagle算法的原理是,发送一个数据包后,发送计算机将等待两种情况中的一种发生,然后再发送下一个数据包。如果它收到最后一个数据包已被接收的确认,它将立即发送它拥有的数据,而不管其大小。否则,它将等待,直到它有一个“完整”的数据包发送。一旦发生这种情况,它将发送完整的数据包,无论是否已收到前一个数据包。
在某些情况下,Nagle的算法弊大于利。一个例子是在线视频游戏,其设计假设数据将立即发送。如果使用Nagle算法,一些数据将被延迟,直到一个完整的数据包准备就绪。这会对玩家对游戏的反应产生明显的影响,与其他玩家相比,会有效地减缓他们的反应时间。
...应路由算法 5. 摘要 什么是自适应路由算法(adaptive routing algorithms)? 动态路由或自适应路由使用自适应算法。这些算法根据拓扑结构和网络流量改变路由决策。相邻路由器或所有路由器提供路由信息。主要的优化参数是一些跳数...
...列比较-算法与表格形式的流程图 6. 摘要 什么是算法(an algorithm)? 每一个任务都是根据一个算法来完成的。如果Facebook有一个这样的问题,那么它将如何在一个日志中出现。首先,用户应该打开浏览器。然后他应该输入正确的网...
...区别的比较 关键术语 算法,伪代码,编程 什么是算法(algorithm)? 算法是一个逐步解决问题的过程。过程是一个有限的指令序列,每个指令在有限的时间内执行。每一个问题都可以借助一个算法来解决。例如,当用户想要登录...
...语 图,克鲁希尔算法,PRM算法,树 什么是prims算法(prims algorithm)? Prim的算法有助于从图中找到最小生成树。它确定包含图的每个顶点的边的子集。它还减少了边的权重之和。此外,该算法从根节点开始,在每一步检查所有相邻...
...、搜索、排序、分治、传统算法 什么是遗传算法(genetic algorithm)? 遗传算法是指基于遗传和自然选择的一类算法。这与物种适应环境变化并能够生存的过程相似。换句话说,它是建立在生物进化的基础上的。 此外,该算法不断...
...之前,他必须在几分钟内检查流程图。 什么是算法(an algorithm)? 算法是一个定义良好的逐步过程,用于处理数据(为特定问题提供解决方案)。Analogrithm准确地定义了程序执行操作所需的步骤。它包括输入、输出和逻辑...
密码算法是一系列过程或规则,用于在密码系统中对消息进行加密和解密。简单地说,它们是通过确保不需要的人不能访问数据来保护数据的过程。这些算法有着广泛的用...
数据挖掘算法是用于识别数据集中的模式和趋势的编程查询和程序。数据挖掘的主要用途是根据客户的实际活动确定客户需求和偏好。尽管这些信息是基于过去的表现,但...
图像处理算法利用计算机算法来操作硬件和软件,从而对图像处理产生比模拟图像处理更大的控制。它们用几种语言编写,并根据用途和目的使用不同的算法。图像处理不...
计算机数据通常存储在二进制文件中,二进制文件位于计算机文件系统中。当数据保存到计算机上时,它被转换成二进制格式。此转换过程需要验证文件大小,以确保正确...