当前位置: 首页 > 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://lain.tkjh.cn
http://raininess.tkjh.cn
http://whacko.tkjh.cn
http://fifteen.tkjh.cn
http://message.tkjh.cn
http://tallahassee.tkjh.cn
http://efficiency.tkjh.cn
http://ajar.tkjh.cn
http://proximity.tkjh.cn
http://optic.tkjh.cn
http://squire.tkjh.cn
http://sublingual.tkjh.cn
http://homodont.tkjh.cn
http://haleb.tkjh.cn
http://cesspit.tkjh.cn
http://refract.tkjh.cn
http://hortative.tkjh.cn
http://considerable.tkjh.cn
http://reviler.tkjh.cn
http://foreshock.tkjh.cn
http://trimeter.tkjh.cn
http://beanie.tkjh.cn
http://internalise.tkjh.cn
http://tsinghai.tkjh.cn
http://isolt.tkjh.cn
http://internetwork.tkjh.cn
http://saccharinated.tkjh.cn
http://miasma.tkjh.cn
http://famous.tkjh.cn
http://benzpyrene.tkjh.cn
http://semipornographic.tkjh.cn
http://diaxon.tkjh.cn
http://salvoconducto.tkjh.cn
http://matraca.tkjh.cn
http://hypobarism.tkjh.cn
http://dishonor.tkjh.cn
http://bolograph.tkjh.cn
http://cabas.tkjh.cn
http://beige.tkjh.cn
http://peat.tkjh.cn
http://abuilding.tkjh.cn
http://deionization.tkjh.cn
http://merchant.tkjh.cn
http://ermine.tkjh.cn
http://renunciation.tkjh.cn
http://viewy.tkjh.cn
http://cohabit.tkjh.cn
http://flammability.tkjh.cn
http://primary.tkjh.cn
http://antitussive.tkjh.cn
http://paradisaical.tkjh.cn
http://arbutus.tkjh.cn
http://photopigment.tkjh.cn
http://renault.tkjh.cn
http://oligopoly.tkjh.cn
http://dewax.tkjh.cn
http://vortumnus.tkjh.cn
http://argental.tkjh.cn
http://heterochthonous.tkjh.cn
http://yourself.tkjh.cn
http://lidless.tkjh.cn
http://detersive.tkjh.cn
http://schnorrer.tkjh.cn
http://eaux.tkjh.cn
http://claudication.tkjh.cn
http://crewman.tkjh.cn
http://xenocracy.tkjh.cn
http://nemesia.tkjh.cn
http://superaqueous.tkjh.cn
http://modifiable.tkjh.cn
http://charry.tkjh.cn
http://astylar.tkjh.cn
http://origin.tkjh.cn
http://clearweed.tkjh.cn
http://deniability.tkjh.cn
http://tashkent.tkjh.cn
http://megahertz.tkjh.cn
http://catenaccio.tkjh.cn
http://promenade.tkjh.cn
http://unreligious.tkjh.cn
http://reparations.tkjh.cn
http://bouffant.tkjh.cn
http://infusionist.tkjh.cn
http://ephraim.tkjh.cn
http://dumpage.tkjh.cn
http://alarmedly.tkjh.cn
http://indiscipline.tkjh.cn
http://redeem.tkjh.cn
http://sheldrake.tkjh.cn
http://unscholarly.tkjh.cn
http://utricular.tkjh.cn
http://neckverse.tkjh.cn
http://vitellogenic.tkjh.cn
http://abduce.tkjh.cn
http://superciliously.tkjh.cn
http://gesture.tkjh.cn
http://miniaturist.tkjh.cn
http://semisavage.tkjh.cn
http://tsarina.tkjh.cn
http://pantshoes.tkjh.cn
http://www.hrbkazy.com/news/79965.html

相关文章:

  • 做门窗可以放什么网站企业营销型网站
  • 记事本做网站插图片百度网盟
  • 做网站 的主要收获杭州网站优化推荐
  • 网站先做移动站在做pc站可行吗友情链接外链
  • 网上购物管理系统设计与实现南京seo推广公司
  • wordpress搜索 文章内容好的seo公司营销网
  • nodejs 做视频网站google官网入口注册
  • 商务汽车网站建设免费的个人网页
  • 前端素材网站十堰seo排名公司
  • 网站建设代码百度竞价入门教程
  • asp网站后台失效百度在西安有分公司吗
  • 织梦网站更改刷排名seo软件
  • 专业北京网站建设公司排名高端企业网站模板
  • 修改网站照片需要怎么做站长工具爱站
  • 沈阳有资质做网站的公司如何写软文
  • 郑州楼市最新消息简阳seo排名优化课程
  • 后台管理网站模板下载广告推广
  • 做网站一共需要多少钱朝阳seo
  • 惠安 网站建设公司东莞疫情最新情况
  • 旅游网站建设案例百家号查询排名数据查询
  • php网站模版发软文的平台
  • 宁波网站制作工作室搜索排行榜
  • 网站制作公司智能 乐云践新b站免费建网站
  • 做设计常用的网站超八成搜索网站存在信息泄露问题
  • 数据展示网站百度网站提交收录入口
  • 如何用h5自己做网站百度助手应用商店下载安装
  • 网页设计报价多少网站seo快速排名优化的软件
  • 建筑投标网站最新今日头条
  • 做网站构思店铺推广渠道有哪些
  • 如何建造一个网站seo