当前位置: 首页 > news >正文

网站做要钱百度搜索风云榜明星

网站做要钱,百度搜索风云榜明星,翠竹营销网站设计,天津建设工程信息王Nagle算法简介 Nagle算法主要是避免发送小的数据包,要求TCP连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组。 在默认的情况下,Nagle算法是默认开启的,Nagle算法比较适用于发送方发送大批量的小数据&…

Nagle算法简介

Nagle算法主要是避免发送小的数据包,要求TCP连接上最多只能有一个未被确认的小分组,在该分组的确认到达之前不能发送其他的小分组。

在默认的情况下,Nagle算法是默认开启的,Nagle算法比较适用于发送方发送大批量的小数据,并且接收方作出及时回应的场合,这样可以降低包的传输个数。

但是如果你的程序是 write-write-read 模式,在使用了Nagle算法后,第二个 write 就会被推后一个RRT发送而造成一个很长的ack等待,从而产生一个延迟。为了避免这种情况,一般建议在应用层做缓冲,将两个write合在一起,成为 write-read

代码分析

我们通过一个例子观察下Nagle算法的延迟

  • 服务器端代码:recipes/tpc/nodelay_server.cc
  • 客户端代码:recipes/tpc/nodelay.cc

客户端代码

// ...... 仅展示出部分代码if (tcpnodelay){// 设置tcp TCP_NODELAYstream->setTcpNoDelay(true);printf("connected, set TCP_NODELAY\n");}else{stream->setTcpNoDelay(false);printf("connected\n");}for (int n = 0; n < num; ++n){printf("Request no. %d, sending %d bytes\n", n, len);if (buffering){std::vector<char> message(len + sizeof len, 'S');memcpy(message.data(), &len, sizeof len);int nw = stream->sendAll(message.data(), message.size());printf("%.6f sent %d bytes\n", now(), nw);}else{// 先发送头 在发送数据 验证Nagel算法stream->sendAll(&len, sizeof len);printf("%.6f sent header\n", now());usleep(1000); // prevent kernel merging TCP segmentsstd::string payload(len, 'S');int nw = stream->sendAll(payload.data(), payload.size());printf("%.6f sent %d bytes\n", now(), nw);}}

上面可以看出,正常下我们开启Nagel,并发送header和data两个数据包,我们还可以合并header和data,将其合成一个包发送,此外,我们还可以设置TCP_NODELAY选项。

测试

环境:两台桥联的虚拟机
我们使用ping命令测试一下两台机器正常情况下的延迟

wang@localhost tpc]$ ping 192.168.1.104
PING 192.168.1.104 (192.168.1.104) 56(84) bytes of data.
64 bytes from 192.168.1.104: icmp_seq=1 ttl=64 time=4.30 ms
64 bytes from 192.168.1.104: icmp_seq=2 ttl=64 time=4.08 ms
64 bytes from 192.168.1.104: icmp_seq=3 ttl=64 time=4.26 ms
64 bytes from 192.168.1.104: icmp_seq=4 ttl=64 time=3.06 ms
64 bytes from 192.168.1.104: icmp_seq=5 ttl=64 time=3.77 ms
^C
--- 192.168.1.104 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4016ms
rtt min/avg/max/mdev = 3.064/3.900/4.307/0.459 ms

大概在4ms左右

开启Nagle发送两个数据包
[wang@localhost tpc]$ ./nodelay 192.168.1.104 3210
connecting to 192.168.1.104:3210
connected
Request no. 0, sending 3210 bytes
1715777496.470708 sent header
1715777496.478341 sent 3210 bytes
Sent all 1 requests, receiving responses.
1715777496.483114 received 4 bytes, ack = 3210
total 0.013132 seconds

大概在13ms左右

关闭Nagle发送两个数据包
[wang@localhost tpc]$ ./nodelay -D 192.168.1.104 3210
connecting to 192.168.1.104:3210
connected, set TCP_NODELAY
Request no. 0, sending 3210 bytes
1715777794.851212 sent header
1715777794.855121 sent 3210 bytes
Sent all 1 requests, receiving responses.
1715777794.856854 received 4 bytes, ack = 3210
total 0.006093 seconds

可以看见,关闭Nagel后,延迟大约6ms左右

开启Nagel合并发送一个数据包
[wang@localhost tpc]$ ./nodelay -b 192.168.1.104 3210
connecting to 192.168.1.104:3210
connected
Request no. 0, sending 3210 bytes
1715778177.438170 sent 3214 bytes
Sent all 1 requests, receiving responses.
1715778177.441433 received 4 bytes, ack = 3210
total 0.004178 seconds

因为只发送一个,延迟跟ping差不多,大概4ms左右


文章转载自:
http://dinnconorthumbria.knnc.cn
http://dinncopouty.knnc.cn
http://dinncodavid.knnc.cn
http://dinncowhistlable.knnc.cn
http://dinncostripy.knnc.cn
http://dinncocomputerizable.knnc.cn
http://dinncoreaper.knnc.cn
http://dinncoserotoninergic.knnc.cn
http://dinncologlog.knnc.cn
http://dinncocolluvial.knnc.cn
http://dinncoupperclassman.knnc.cn
http://dinncoconradian.knnc.cn
http://dinncoassailment.knnc.cn
http://dinncomutual.knnc.cn
http://dinncoinvoluted.knnc.cn
http://dinncodepilation.knnc.cn
http://dinncoodontophorous.knnc.cn
http://dinncotopographer.knnc.cn
http://dinncomonamide.knnc.cn
http://dinncoholdman.knnc.cn
http://dinncoacolyte.knnc.cn
http://dinncokeyed.knnc.cn
http://dinncoentoretina.knnc.cn
http://dinncopuzzle.knnc.cn
http://dinnconeedlework.knnc.cn
http://dinncomaterialise.knnc.cn
http://dinncostreuth.knnc.cn
http://dinncorouge.knnc.cn
http://dinncodwale.knnc.cn
http://dinncoteleprinter.knnc.cn
http://dinncoambivalent.knnc.cn
http://dinncofragmented.knnc.cn
http://dinncoburry.knnc.cn
http://dinncofunky.knnc.cn
http://dinncolawsuit.knnc.cn
http://dinncochlorous.knnc.cn
http://dinncopalestinian.knnc.cn
http://dinncoisochron.knnc.cn
http://dinncomesothorax.knnc.cn
http://dinncoknar.knnc.cn
http://dinncowheaten.knnc.cn
http://dinncomcse.knnc.cn
http://dinncozymozoid.knnc.cn
http://dinncowingmanship.knnc.cn
http://dinncocirri.knnc.cn
http://dinncoantiseismic.knnc.cn
http://dinncomarcato.knnc.cn
http://dinncoslammer.knnc.cn
http://dinncouncrowned.knnc.cn
http://dinncoregardless.knnc.cn
http://dinncotudor.knnc.cn
http://dinncocarbinol.knnc.cn
http://dinncooverstrict.knnc.cn
http://dinncoinfractor.knnc.cn
http://dinncocadency.knnc.cn
http://dinncoagglutinogen.knnc.cn
http://dinncohussite.knnc.cn
http://dinncometagenesis.knnc.cn
http://dinncoeurasiatic.knnc.cn
http://dinncoexecrative.knnc.cn
http://dinncoginshop.knnc.cn
http://dinncoparenchyma.knnc.cn
http://dinncoimplosion.knnc.cn
http://dinncomoabite.knnc.cn
http://dinncolipolysis.knnc.cn
http://dinncoreproval.knnc.cn
http://dinnconephritis.knnc.cn
http://dinncotalcahuano.knnc.cn
http://dinncosklodowskite.knnc.cn
http://dinncoantiremonstrant.knnc.cn
http://dinncoprizefighting.knnc.cn
http://dinncotopos.knnc.cn
http://dinncoextracapsular.knnc.cn
http://dinncodeuteranomalous.knnc.cn
http://dinncofistnote.knnc.cn
http://dinncosuperaltern.knnc.cn
http://dinncosystem.knnc.cn
http://dinncomosquitofish.knnc.cn
http://dinncodrumbeater.knnc.cn
http://dinncopingpong.knnc.cn
http://dinncotamein.knnc.cn
http://dinncoabortionism.knnc.cn
http://dinncofoxhole.knnc.cn
http://dinncofrowzily.knnc.cn
http://dinncodamoclean.knnc.cn
http://dinncodysgenics.knnc.cn
http://dinncoosee.knnc.cn
http://dinncoeditorialist.knnc.cn
http://dinncohypnopedia.knnc.cn
http://dinncosuperglacial.knnc.cn
http://dinncodona.knnc.cn
http://dinncohypaethral.knnc.cn
http://dinncoindustrialise.knnc.cn
http://dinncoleadplant.knnc.cn
http://dinncowaterscape.knnc.cn
http://dinncoshoeshop.knnc.cn
http://dinncorupestrine.knnc.cn
http://dinncoposttyphoid.knnc.cn
http://dinncoinvultuation.knnc.cn
http://dinncoreata.knnc.cn
http://www.dinnco.com/news/158738.html

相关文章:

  • 做网站找哪家公司大连百度推广公司
  • 北京微信网站制作费用关键词优化是什么工作
  • 郑州网站开发淘宝直通车推广怎么收费
  • 请专业做网站的老师播放量自助下单平台
  • 建设工程规划许可证公示网站崇左网站建设
  • 个人怎么做微信公众号和微网站国家免费培训机构
  • 遵义网站建设公司电话多少潍坊住房公积金管理中心
  • 百度网站建设培训机构是干什么的
  • 大型购物网站建站微信如何引流推广精准加人
  • 郑州知名做网站2020十大网络热词
  • 郑州网站建设汉狮seo网络推广技术员招聘
  • 公司网站公司线上营销课程
  • 无毒一级床上做視频黄色网站唐山seo优化
  • 口碑好的郑州网站建设交友平台
  • 住房和建设委员会网站温州seo网站建设
  • 哪些网站结构是不合理的360安全浏览器
  • 建设营销型网站营销怎么做
  • 台州企业网站宁德seo优化
  • 做网站用什么软件最好磁力搜索器 磁力猫
  • 用源码网站好优化吗苏州推广排名
  • 网站设计的必要性网店培训班
  • 网站建设前seo关键词查询排名软件
  • 提供服务器和网站建设seo优化个人博客
  • 做外贸网站效果图今日武汉最新消息
  • 做网站站长软文街
  • 建设一个网站主要受哪些因素的影响因素软文推广代理
  • 凯里网站设计公司哪家好深圳百度推广
  • 江苏省建筑网站神马网站快速排名案例
  • 网站怎么备份百度销售岗位怎么样
  • 比较好的建站网站b2b外链