TCP协议为什么发送一个大的数据包比发送多个小包网络利用率高?

其他技术论坛 > 搜索引擎技术 [问题点数:20分,结帖人stormier]
等级
本版专家分:0
结帖率 88.24%
等级
本版专家分:0
勋章
Blank
黄花 2011年7月 Java大版内专家分月排行榜第二
2011年6月 Java大版内专家分月排行榜第二
Blank
蓝花 2012年1月 Java大版内专家分月排行榜第三
ckc
等级
本版专家分:0
勋章
Blank
黄花 2018年3月 Linux/Unix社区大版内专家分月排行榜第二
2002年6月 其他开发语言大版内专家分月排行榜第二
stormier

等级:

TCP传输小数据包效率问题(转载)

本文转自 ...  s摘要:当使用TCP传输小型数据包时,程序的设计是相当重要的。如果在设计方案中不对TCP数据包的延迟应答,Nagle算法,...这篇文章讨论了这些问题,列举了两案例,给出了一些传输小数据包的优化设

TCP传输小数据包效率问题

TCP传输小数据包效率问题(译自MSDN) http://www.ftpff.com/blog/?q=node/16   摘要:当使用TCP传输小型数据包时,程序的设计是相当重要的。如果在设计方案中不对TCP数据包的 延迟应答,Nagle算法,...

TCP/IP详解--TCP传输小数据包效率问题

摘要:当使用TCP传输小型数据包时,程序的设计是相当重要的。如果在设计方案中不对TCP数据包的...背景:当Microsoft TCP栈接收到一个数据包时,会启动一个200毫秒的计时器。当ACK确认数据包 发出之后,计时器会复位,接

TCP小包优化

在《TCP滑动窗口与缓冲区》的博文中说过接收方会通知发送方滑动窗口的大小,但是如果应用程序每调用read函数读出一些数据,就通知发送方,那么网络中将会有大量的只通知对方窗口大小的报文,而每个TCP报文都会添加几...

TCP传输小数据包效率问题(译自MSDN)

如果在设计方案中不对TCP数据包的延迟应答,Nagle算法,Winsock缓冲作用引起重视,将会严重影响程序的性能。这篇文章讨论了这些问题,列举了两案例,给出了一些传输小数据包的优化设计方案。背景:当Mic

TCP之糊涂窗口综合征

问题可以归结为小包的问题,就是由于发送端和接收端上的处理不一致,导致网络上产生很小包,之前也介绍过避免网络上产生过多小包的措施,比如Nagle算法。在滑动窗口机制下,如果发送端和接收端速率很不一致...

TCP协议中的窗口机制------滑动窗口详解

滑动窗口二、固定窗口存在的问题如下图所示:我们假设这个固定窗口的大小1,也就是每次只能发送一个数据,只有接收方对这个数据进行了确认后才能发送第二个数据。在图中我们可以看到,发送方每发送一个数据接收方...

不为人知的网络编程(二):浅析TCP协议中的疑难杂症(下篇)

本文接上篇《不为人知的网络编程():浅析TCP协议中的疑难杂症(上篇)》,我们提到第6疑问:TCP的头号疼症TIME_WAIT状态,下面我们继续这问题的解答。 2、TIME_WAIT的快速回收和重用 2.1 TIME_WAIT快速回收 ...

TCP协议要点和难点全解

ISO提出了OSI分层网络模型,这种分层模型是理论上的,TCP/IP最终实现了一个分层的协议模型,每一个层次对应一组网络协议完成一组特定的功能,该组网络协议被其下的层次复用和解复用。这就是分层模型的本质,最终所有...

TCP协议疑难杂症全景解析

说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以文字形式描述,我相信文字看...因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速

TCP协议选项详解

TCP头部的选项部分是为了TCP适应复杂的网络环境和更好地应用层服务而进行设计的。 SO_REUSEADDR 通常一个端口释放后会等待两分钟(TIME_WAIT时间)之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次...

唯快不破:谈谈TCP的Nagle算法与TCP_CORK选项

很多人都把Nagle算法的目的理解“提高网络利用率”,事实上,Nagle算法所谓的“提高网络利用率”只是它的一个副作用(Side effect...),Nagle算法的主旨在于“避免发送‘大量’的小包”。Nagle算法并没有阻止发送...

TCP/IP详解 卷一:协议TCP的小结

TCP协议作为 应用层 和 网络层 中间的 传输层协议,既要下面的网络协议保证连接的可靠性(IP协议)弥补不足,又要作为 应用层进程向网络发送数据的中转站(作为路复用/解复用器)。这就使得我们在审视TCP...

运输层TCP协议

协议格式TCP建连(三次握手)和TCP断...B Read了两次,可能一次过收到123456、也可能分两次接收12、3456如果源主机使用同样的连接发送一个报文段,那么这个报文段的序列号等于前一个报文段的序列号与前一个报文段...

TCP协议疑难问题集锦3

TCP协议疑难问题集锦3   疑难杂症10:流量控制的真实意义 ...很多人以为流量控制会很有效的协调两端...结果导致一些很小的数据被封装成TCP分段,报文协议头所占的比例过于,造成网络利用率下降,这就引出了接下

TCP连接中启用和禁用TCP_NODELAY有什么影响?

TCP/IP协议中针对TCP默认开启了Nagle算法。Nagle算法通过减少需要传输的数据包,来优化网络。在内核实现中,数据包发送和接受会先做缓存,分别对应于写缓存和读缓存。 启动TCP_NODELAY,就意味着禁用了Nagle算法,...

TCP三次握手说起——浅析TCP协议中的疑难杂症

声明:本文来自腾讯增值产品部官方公众号小时光茶社,CSDN原创投稿,未经许可,禁止任何形式的转载。 作者:黄日成,手Q游戏中心后台开发,腾讯高级工程师。从事C++服务后台开发4年,主要负责手Q游戏中心后台...

TCP流量控制-滑动窗口协议&Nagle算法

发送窗口是发送缓存中的部分, 是可以被TCP协议发送的那部分。 发送缓冲区: 已发送并收到确认的数据、已发送但未收到确认的数据、允许发送但尚未发送的数据,以及暂不允许发送的数据; 黄色部分组成了发送窗口...

TCP/IP详解·卷1:协议》随笔(已完结)

第一章.概述 Internet的成功 Internet体系结构被设计成支持现有网络互联,同时...TCP/IP:4层(若分层5层则加上一个物理层) TCP/IP协议族的三个主要层次是网络层、传输层与应用层 差错控制与流量控制 总体...

TCP Nagle算法简述

TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够的数据。(一个连接会设置MSS参数,因此,...

Linux转发性能评估与优化-转发瓶颈分析与解决方案(补遗)

补遗关于网络接收的软中断负载均衡,已经有了成熟的方案,但是该方案并不特别适合数据包转发,它对服务器的小包处理非常好,这就是RPS。我针对RPS做了一个patch,提升了其转发效率。下面是我转载的我自己的原文。线...

TCP协议详解

说明: 1).本文以TCP的发展历程解析...因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义 4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,

TCP三次握手说起——浅析TCP协议中的疑难杂症(真心不错)

说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。那么从哪说起呢?当然是从...

并发服务器不得不说的技术--TCP_CORK

CORK选项提高了网络利用率,因为它直接禁止了小包发送。 Nagle算法没有禁止小包发送,只是禁止了大量小包发送。     如果把tcp当成服务端与客户端的管道,cork 就是给管道加塞子。 为什么 要加塞子...

TCP协议疑难问题集锦

ISO提出了OSI分层网络模型,这种分层模型是理论上的,TCP/IP最终实现了一个分层的协议模型,每一个层次对应一组网络协议完成一组特定的功能,该组网络协议被其下的层次复用和解复用。这就是分层模型的本质,最终所有...

TCP协议疑难杂症全景分析

说明: 1).本文以TCP的发展历程解析容易...因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义 4).除了《TCP/IP详解》(卷一,卷二)以及《Unix网络编程》以及Linux源代码之外,

TCP协议解析

说明:1).本文以TCP的发展历程解析容易引起混淆,误会的方方面面2).本文不会贴大量的源码,大多数是以...因为本文不会解析TCP头里面的每一个字段或者3次握手的细节,也不会解释慢启动和快速重传的定义4).除了《TCP/...

TCP协议对于流量控制和拥塞控制

1.HTTP事务时延的原因1:DNS解析系统将URL中的主机名转换成一IP地址要花费数十秒时间2:每条新的TCP连接都会有连接建立时延,同时又数百http事务的话,这值快速叠加上去。3:web服务器读取请求报文并进行处理...

TCP中的Nagle算法

TCP中的Nagle算法 ...为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据.(在一个连接中会设置MSS参数,因此,TCP/IP希望每次都能够以MSS尺寸的数据块来发送数据).Nagle算法就是为了尽可能发送大块数据,

相关热词 c# 控件改了name c#枚举类型有什么用 c# 循环多线程 c#在什么情况用事件 c# exe 运行 静默 c#如何打开一组图片 c# sql 引用那些 c#引用py第三方库 c# 属性 结构体 c# 加小时