纳格算法

✍ dations ◷ 2025-12-08 22:59:28 #纳格算法

纳格算法是以减少数据包发送量来增进TCP/IP网络的性能。它由约翰·纳格任职于Ford Aerospace(英语:Ford Aerospace)时命名。

纳格的文件描述了他所谓的“小数据包问题”-某个应用程序不断地提交小单位的资料,且某些常只占1字节大小。因为TCP数据包具有40字节的标头信息(TCP与IPv4各占20字节),这导致了41字节大小的数据包只有1字节的可用信息,造成庞大的浪费。这种状况常常发生于Telnet工作阶段-大部分的键盘操作会产生1字节的资料并马上提交。更糟的是,在慢速的网络连线下,这类的数据包会大量地在同一时点传输,造成壅塞碰撞(英语:Congestion Collapse)。

纳格算法的工作方式是合并(coalescing)一定数量的输出资料后一次提交。特别的是,只要有已提交的数据包尚未确认,发送者会持续缓冲数据包,直到累积一定数量的资料才提交。

 if有新資料要傳送   if訊窗大小>= MSS and可傳送的資料>= MSS     立刻傳送完整MSS大小的segment   else    if管線中有尚未確認的資料      在下一個確認(ACK)封包收到前,將資料排進緩衝區佇列    else      立即傳送資料  

该算法与 TCP延迟确认 会有不好的相互作用,例如当程序发送端进行两次连续的小段写再跟着读时,接收端接收到第一次写后因TCP延迟确认而等待第二次写后一并发送ACK,发送端则因第二次写数据长度小于MSS而等待第一次写的ACK(如上算法所示),最终将导致两对端都进入等待直到ACK延迟超时。因为这个原因,TCP实现通常为应用程序提供一个禁用Nagle算法的接口(通常称为TCP_NODELAY选项)。用户级解决方案是避免套接字上的 写-写-读 序列。 写-读-读 和 写-写-写 都是没问题的。但 写-写-读 则是性能杀手。所以,如果可以的话,缓冲你对TCP的小段写,然后一次发送它们。在每次读之前使用标准的UNIX I/O包并冲刷写缓存通常能起作用。


相关

  • 中成药科学中药,中国大陆多称为中成药,是指用现代制剂方法制成的中药产品,形态包括但不限于粉末、颗粒、锭、片,以及胶囊等,有别于传统中医通过煎煮或研磨等方法制成的膏、丸、丹、散等
  • 生物降解塑料生物可分解塑胶是可以在自然界降解的塑胶材质。在有足够的湿度、氧气与适当微生物存在的自然掩埋或堆肥环境中,可被微生物所代谢分解产生水和二氧化碳或甲烷,对环境危害较小。
  • .ug.ug为乌干达国家及地区顶级域(ccTLD)的域名。A .ac .ad .ae .af .ag .ai .al .am .ao .aq .ar .as .at .au .aw .ax .az   B .ba .bb .bd .be .bf .bg .bh .bi .bj .bm .b
  • 磁约束聚变磁约束聚变(英语:Magnetic confinement fusion),利用磁场与高热等离子体来引发核聚变反应的技术。聚变反应合并轻的原子核,例如氢,以形成更重的原子核,如氦。磁约束聚变的作法是,先
  • 傅惟慈傅惟慈(1923年-2014年3月16日),中国翻译家。生于哈尔滨,逝于北京。1950年毕业于北京大学西方语言文学系,1987年退休,退休前执教于北京大学、北京语言文化大学等高校(其中1950—1952
  • POP字体POP字体是一种常使用于广告与海报设计的字体,类似于拉丁字母文字中的无衬线体。POP为Point of Purchase advertising的缩写,中文翻译应为“购买广告的据点”,此翻译非直译法,翻
  • 大菩萨岭 完结篇‘大菩萨岭 完结篇’(大菩薩峠 完結篇)是日本在1961年上映的时代剧电影,原作为中里介山,此为大映电影公司制作《大菩萨岭》系列第三部。Template:森一生监督作品
  • 亨利六世 (神圣罗马帝国)亨利六世 Heinrich VI (1165年11月-1197年9月28日),霍亨斯陶芬王朝的罗马人的国王(1167年—1197年在位)和神圣罗马帝国皇帝(1190年—1197年在位)。他自1194年起也是西西里王国国王。
  • 樋口真嗣樋口真嗣(1965年9月22日 - )日本特效导演、电影导演、映像作家、装帧家。东京都新宿区出生,一直居住在茨城县古河市。茨城县立古河第三高等学校卒业。
  • 天主教南非军中教长区天主教南非军中教长区(拉丁语:Ordinariatus Militaris Africa Australis;英语:Military Ordinariate of South Africa)是南非一个罗马天主教军中教长区,直属圣座。此军中教长区负责牧养信奉天主教的南非军人及其家眷。1951年5月17日成立军中代牧区,1986年7月21日升为军中教长区。军中教长区于2003年时有一个堂区和三名司铎。教长一职由比勒陀利亚总教区总主教兼任。现任军中教长为达布拉·安多尼·姆帕科(英语:Dabula Mpako),