应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

傻傻分不清的TCPkeepalive和HTTPkeepali

  1。TCPkeepalive1。1。概念Akeepalive(KA)isamessagesentbyonedevicetoanothertocheckthatthelinkbetweenthetwoisoperating,ortopreventthelinkfrombeingbroken。
  Fromwiki
  TCPkeepalive是TCP的保活定时器。通俗地说,就是TCP有一个定时任务做倒计时,超时后会触发任务,内容是发送一个探测报文给对端,用来判断对端是否存活。(想到一个桥段:如果2小时后没等到我的消息,你们就快跑)1。2。作用
  正如概念中说的,用于探测对端是否存活,从而防止连接处于半打开状态。
  所谓半打开,就是网络连接的双端中,有一端已经断开,而另一端仍然处于连接状态。1。3。机制
  (图一)TCPkeepalive流程图
  建立连接的双端在通信的同时,存在一个定时任务A,每当传输完一个报文,都会重置定时任务A。如果在定时任务的时限tcpkeepalivetime内不再有新的报文传输,便会触发定时任务A,向对端发送存活探测报文。根据响应报文的不同情况,有不同的操作分支,如上图所示。
  定时任务B会被循环执行,具体逻辑是:定时任务A的探测报文没有得到响应报文,开始执行定时任务B。任务B的内容同样是发送探测报文,但不同的是,B会被执行tcpkeepaliveprobes次,时间间隔为tcpkeepaliveintvl。B的探测报文同样也是在收到响应报文后,重置定时任务A,维持连接状态。
  上文提到的三个参数存在于系统文件中,具体路径如下:procsysnetipv4tcpkeepalivetimeprocsysnetipv4tcpkeepaliveintvlprocsysnetipv4tcpkeepaliveprobes
  通信双端都存在一个文件作为数据缓冲区,对端发送给本地当前端口的数据都会缓冲在这个文件中。上文中讲的断开连接就是关闭这个文件,关闭后所有发送到当前端口的数据将无法存储到缓冲区,即数据被丢弃了。
  通过指令lsofi:8080,8080改成你的端口号,便能看到这个缓冲区文件。2。HTTPkeepalive2。1。概念HTTPpersistentconnection,alsocalledHTTPkeepalive,orHTTPconnectionreuse,istheideaofusingasingleTCPconnectiontosendandreceivemultipleHTTPrequestsresponses,asopposedtoopeninganewconnectionforeverysinglerequestresponsepair。ThenewerHTTP2protocolusesthesameideaandtakesitfurthertoallowmultipleconcurrentrequestsresponsestobemultiplexedoverasingleconnection。
  Fromwiki
  HTTPkeepalive指的是持久连接,强调复用TCP连接。(类似场景:挂电话之前总会问句,没啥事就先挂了,延长通话时长来确认没有新话题)2。2。作用
  延长TCP连接的时长,一次TCP连接从创建到关闭期间能传输更多的数据。2。3。机制
  (图二)HTTPkeepalive流程图
  通信连接的双端在通信的同时,存在一个HTTP层面的keepalive定时任务。当客户端发起Request,并且接收到Response之后,触发定时任务。定时任务会开始计时,达到keepalive的时间距离后,关闭连接。如果在计时期间,客户端再次发起Request,并且接收到Response,定时任务会被重置,从头计时。
  图二用Python的socket库为示例进行说明,在HTTP的请求响应过程中,HTTPkeepalive(或者称为HTTP持久连接)在底层是如何作用于连接释放流程,从而延长连接时长的。
  为什么不用Python的requests库来举例说明?requests底层也是socket连接管理,不同的是requests支持HTTP协议,可以解析出HTTP各部分信息;socket仅仅是从文件缓冲区读取二进制流。同样地,各种Web框架中的Request和Response对象的内部仍然是socket连接管理,只提socket可以排除很多干扰信息。
  服务端HTTPkeepalive超时后的数据丢弃的说明。刚入门的同学可能也会像我一样感到疑惑:服务端keepalive超时后再收到数据就会丢弃,那么服务端后续还怎么接收端口的数据?
  这就不得不提到服务端的fork模型了:服务端主进程监听端口,当数据到来时便交给子进程来处理,主进程继续循环监听端口。
  具体地说,当数据到来时,主进程先创建新的socket连接句柄(本质就是生成了socket文件描述符落在磁盘上,端口数据会存储在该文件中缓冲),随后fork出子进程;主进程关闭新的socket句柄,子进程则维持socket句柄的连接(当一个socket句柄在所有进程中都被close之后才会开始TCP四次挥手);此后,子进程接管了与客户端的通信。
  正如(图三)的例子,主进程会fork出很多子进程,A和B分别对接的是不同客户端发来的请求,socket文件描述符a不会影响b的数据读写。
  (图三)fork模型下传递socket句柄的过程
  结论是,服务端与外界建立的每一个socket连接,都有独立的文件描述符和独立的子进程与客户端通信。服务端断开连接是指关闭了某个文件描述符的读写,并非关闭了整个端口的数据往来,不影响其他的socket连接之间通信。至于丢弃,就是说外界如果还有发往这个socket文件描述符的数据被丢弃,因为这个文件描述符已经禁止写入,自然地数据便无法落地。3。两者之间的关系
  TCPkeepalive更像是保障系统有序工作的兜底机制,确保系统最终能收回半打开的socket连接,否则长期运行后无法再接收更多的请求(系统的socket最大连接数限制)。
  HTTPkeepalive则是应用层的骚操作,使得服务端的应用程序能自主决定socket的释放,因为TCPkeepalive的倒计时默认值很长,web服务的某次连接通常不需要等待那么久。说直白点,就是TCP有一个计时器,HTTP也可以自己搞个计时器,如果HTTP的计时器先超时,同样有权利让TCP进入四次挥手流程。
  在某个数据包传输后,两个keepalive的定时任务同时存在且一起进入倒计时状态,一个是系统内核TCP相关代码的程序,另一个是高级编程语言(PythonJavaGo等)Web框架代码的程序,他们一起运行并不冲突。4。念经
  HTTPkeepalive是应用层的东西,在上生产时对外提供服务的应用程序都会有keepalive参数,例如Gunicorn的keepalive、Nginx的keepalivetimeout。通过这个参数,我们能在更高级的层面控制等待下一个数据的时长。
  还有,如果同一台服务器有N个Web服务,TCPkeepalive参数是全局生效,众口难调。
  如果你的网络结构是类似clientnginxwebserver,那么你就要同时考虑nginx和webserver的keepalive参数大小搭配的问题,此处引用Gunicorn对keepalive参数的使用建议:
  Generallysetinthe15secondsrangeforserverswithdirectconnectiontotheclient(e。g。whenyoudon’thaveseparateloadbalancer)。WhenGunicornisdeployedbehindaloadbalancer,itoftenmakessensetosetthistoahighervalue。
  假设web等待时间比nginx短很多,clientnginx的连接还在,nginxweb就已经断开了,web就会错过一些数据,对于客户来说好端端的我拿不到结果是无法容忍的。因此最好是和nginx的等待时间协调好,不要相差太多(不要太短,也不要长很多)。
  关于不要太长,多说一句。如果等待很久,web服务会累积维持非常多的连接,这样子新的请求无法打进来,正在维持的连接不见得利用率很高(可能客户端的代码在打断点、可能客户端早就close)。结果就是服务端netstat显示一堆连接,新的请求全都被挂起甚至丢弃。
  原文链接:https:mp。weixin。qq。comsduDNJGbQtr05Y4S9abveQ

CableMatters推出8KUSBC转接适配器售49。9作为业内领先的线缆连接解决方案供应商之一,CableMatters刚刚推出了具有8K和4K60Hz显示支持的新款USBC视频连接适配器,以迎合终极的工作和视频娱乐需求。针对不同……尼康Z9旗舰无反相机被曝亮相东京奥运会PetaPixel报道称,在佳能被发现在奥运会期间测试EOSR3的同时,也有眼尖的人们发现了疑似两套尼康Z9相机的身影。从Photolari在两条推文中分享的谍照来看,尼康Z9……新专利显示苹果手表心电图可能需要一个额外的臂带在美国专利和商标局周二授予苹果一项名为便携式心电图设备的专利中,苹果公司解释了如何以一些新颖的方式创建一个心脏监测设备。其中一种方式实际上就是它在AppleWatch中使用的方……三星GalaxyBuds2真无线降噪耳机上架亚马逊三星将于8月11日晚举办发布会,发布两款折叠屏新机以及第二代真无线降噪耳机GalaxyBuds2、智能手表GalaxyWatch4系列。据外媒mspoweruser消息,尚未发……索尼在开发者峰会上披露了下一代PSVR的更多细节有关索尼下一代PlayStation虚拟现实头显的更多细节,刚刚得到了YouTube频道PSVRWithoutParole与UploadVR的进一步证实。周二的时候,索尼举办了……早上起来后,身体上没有3个现象,那就恭喜你了,身体还不错天气冷了,又到了起床困难时期,早上的凉意让自己难以从被窝里面爬出来。伴随着起床困难而来的,还有匍匐等待的疾病。秋冬是很多疾病的高发期,尤其是中老年人易患的一些疾病,……惠普推出七款游戏显示器包括三款曲面产品惠普一鼓作气,为旗下X系列显示器推出了七款新产品,具有一系列尺寸、面板类型和分辨率,还有一些曲面显示器。看起来惠普的目标是提供大量的选择,这些选择具有高刷新率、低响应时间、合格……新一代AirPods定于秋季推出外观设计向Pro型号对齐AirPods系列的更新预计将在今年秋季推出,预计将与iPhone13一起到来。按惯例,苹果将在秋季推出一些新产品,这一次可能包括对其AirPods系列设备的升级,在之前的报告……开车去欧洲第10集自驾抵达芬兰圣诞老人村,沪C首次进北极圈46000公里,152天,21国,这是2018年我带着爸妈走过的漫长自驾旅程。我们一路从中国开车抵达了法国,自驾穿越了亚欧两大洲,从夏季出发,到冬季回国,我们历经坎坷,经历难忘……Anker的新ApexThunderbolt4扩展坞拥有12Anker宣布了ApexThunderbolt4Dock,它在很多方面都可以说是王者,它的价格也是:299。99美元。但是如果能用上它全部的端口,对高级用户而言这反倒可能是一个……女星穿搭惨撞Joy,千元Zara绑带装裙子皱巴巴输了徐玄穿粉色Zara迷你洋装同时内搭粉色小可爱,裙子太皱成为败笔。女明星出席未必都是一线精品品牌,平价时尚品牌Zara是不少南韩女星的心头好,近日女团少女时代出身的女星徐玄……空气净化器对改善空气质量有用吗?空气净化器如何选?哈喽大家好,我是聚灵阵主。北方的冬天室外着实寒冷,宅在家看视频啃零食才是最好的选择。但是冬天开窗通风需要勇气,而且北方冬季雾霾天也多,空气质量也不好,但是门窗紧闭空气质量又惹人……
四川一定要去的古城,以十字大街为主干层层展开,游客络绎不绝四川一定要去的古城,以十字大街为主干层层展开,游客络绎不绝四川这个城市的历史还是非常悠久的,而且它还是一个非常受欢迎的城市,在这座城市当中可是有非常多的充满活力的年轻人。……儿童零食推荐,宅羊羊鲜奶酪脆三种口味:草莓、香蕉、原味;建议6以上的宝宝食用,选用醇正巴氏灭菌鲜奶,不添加食用盐和白砂糖防腐剂哦,含普通牛奶6倍的蛋白质和普通牛奶4倍钙质,可以拿在手里吃的牛奶入口缓……去有风的地方刘亦菲路透,在路人镜头下,这颜值也太真实了在2022年的一众待播剧中,单单是由刘亦菲主演的作品就有两部,一部是与陈晓合作的《梦华录》,一部是与井柏然合作的《一曲三笙》。古装剧题材对于刘亦菲来说并不陌生,最早刘亦菲……脾虚成为常态?那么多脾虚的人,健脾的思路又在哪?脾虚在一定程度上,出现了常态化的趋势,门诊的脾虚人群也是非常的多!加上很多粉丝经常问我:究竟如何健脾?我今天给大家讲清楚!脾胃虚弱,因为运化能力弱,好比是一肚子浊水、寒湿……愿做佛中那朵莲一花一世界,一叶一菩提。一朵花里,包容着世界全部的意义;一片叶子,影射的是宇宙人生的所有奥秘。悠远的生命,爱恨仇怨,几念相生,已是心若莲花万般禅,情过无痕凤凰已涅槃。看取……一箭之仇!中国女排31战胜加拿大,报了去年世界联赛的一箭仇中国女排终于复仇成功,3比1击败加拿大,报了去年世界联赛的一箭之仇。去年中国队替补阵容输给了加拿大,这让中国队和球迷非常窝火,可是今年不是最强阵容的中国队还是大比分赢了加拿大。……骁龙778G还敢卖到4K价位,华为nova11Ultra何来4月17日,华为如期召开了华为nova11系列及全场景新品发布会,会上,全新一代华为nova11系列正式跟大家见面,区别于前代产品,nova11系列此番推出了nova11、no……旗舰机看技术,2021年各手机品牌旗舰机对比,看看谁更强都说旗舰机看技术,入门机看良心,今天我们不讲良心,我们就看看各家技术如何,都知道,一个品牌,他的旗舰机才能代表这个手机品牌的实力和侧重点,比如三星是屏幕王者,华为是影像王者,但……MSI队伍基本确定,四大赛区仅差欧洲唯一名额,Bo有望晋级4月11日,随着BLG战胜EDG进入春季赛最终决赛,也依靠本场BO5拿下了LPL最后一张前往伦敦MSI的门票。至此,四大赛区仅差欧洲赛区的最后一个名额还未确定。目前来看欧洲LE……天津蓟州城一日游之鼓楼及鲁班庙从白塔寺出来,沿门前的小路白塔寺街向东出发,到第一个路口拐上向北的街巷,看到路口再向右拐上南四眼井街,沿南四眼井街向东走到渔阳南路上,北望就看到了鼓楼广场。我们走路是绕了点,其……湖人赢球后!浓眉官宣退出,拉塞尔毫不掩饰,詹姆斯好消息一箩筐NBA常规赛打得很热闹,比赛进行到现在这个阶段,谁都不敢大意,因为一旦大意,球队就会被甩开。现在不像赛季初期,还有机会去试错,现在连想一想的机会都没有。湖人和鹈鹕这场比赛,大家……新加坡赴华15天免签未恢复,中国签证中心人爆满!APEC商务新加坡游客入境中国15天免签政策仍未恢复,往返新加城利中国的航班恢复且陆续增加,更多人准备赴华探亲、旅游或公干。导致中国签证申请服务中心天天排长龙。接下来一个月的预约时段都已满……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网