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

网络优化公司有哪些北京网站seo技术厂家

网络优化公司有哪些,北京网站seo技术厂家,什么网站可以做国外批发网,为什么要建设企业网站TCP KeepAlive与HTTP Keep-Alive TCP KeepAliveHTTP Keep-AliveTCP服务器怎么检测客户端断开连接 TCP KeepAlive TCP连接建立之后,如果应用程序或者上层协议一直不发送数据,或者隔很长时间才发送一次数据,那么TCP需要判断是应用程序掉线了还…

TCP KeepAlive与HTTP Keep-Alive

  • TCP KeepAlive
  • HTTP Keep-Alive
  • TCP服务器怎么检测客户端断开连接

TCP KeepAlive

TCP连接建立之后,如果应用程序或者上层协议一直不发送数据,或者隔很长时间才发送一次数据,那么TCP需要判断是应用程序掉线了还是确实没有数据传输。

TCP协议通过KeepAlive机制解决这个问题,当超过一段时间之后,TCP自动发送一个数据为空的报文给对方,如果对方回应了这个报文,说明对方还在线,连接可以继续保持,如果对方没有报文返回,并且重试了多次之后则认为连接丢失,没有必要保持连接。

KeepAlive并不是默认开启的,在Linux系统上没有一个全局的选项去开启TCP的KeepAlive。需要开启KeepAlive的应用必须在TCP的socket中单独开启。Linux Kernel有三个选项影响到KeepAlive的行为:

net.ipv4.tcpkeepaliveintvl = 75
net.ipv4.tcpkeepaliveprobes = 9
net.ipv4.tcpkeepalivetime = 7200

tcpkeepalivetime的单位是秒,表示TCP连接在多少秒之后没有数据报文传输启动探测报文;
tcpkeepaliveintvl单位是也秒,表示前一个探测报文和后一个探测报文之间的时间间隔,
tcpkeepaliveprobes表示探测的次数。

TCP socket也有三个选项和内核对应,通过setsockopt系统调用针对单独的socket进行设置:

TCPKEEPCNT: 覆盖 tcpkeepaliveprobes
TCPKEEPIDLE: 覆盖 tcpkeepalivetime
TCPKEEPINTVL: 覆盖 tcpkeepalive_intvl

举个例子,以我的系统默认设置为例,kernel默认设置的tcpkeepalivetime是7200s, 如果我在应用程序中针对socket开启了KeepAlive,然后设置的TCP_KEEPIDLE为60,那么TCP协议栈在发现TCP连接空闲了60s没有数据传输的时候就会发送第一个探测报文。

HTTP Keep-Alive

TCP在建立连接之后, HTTP协议使用TCP传输HTTP协议的请求(Request)和响应(Response)数据,一次完整的HTTP事务如下图:

这张图简化了HTTP(Req)和HTTP(Resp),实际上的请求和响应需要多个TCP报文。

在这里插入图片描述

从图中可以发现一个完整的HTTP事务,有连接的建立,请求的发送,响应接收,断开连接这四个过程,早期通过HTTP协议传输的数据以文本为主,一个请求可能就把所有要返回的数据取到,但是,现在要展现一张完整的页面需要很多个请求才能完成,如图片,JS,CSS等,如果每一个HTTP请求都需要新建并断开一个TCP,这个开销是完全没有必要的。

开启HTTP Keep-Alive之后,能复用已有的TCP连接,当前一个请求已经响应完毕,服务器端没有立即关闭TCP连接,而是等待一段时间接收浏览器端可能发送过来的第二个请求,通常浏览器在第一个请求返回之后会立即发送第二个请求,如果某一时刻只能有一个连接,同一个TCP连接处理的请求越多,开启KeepAlive能节省的TCP建立和关闭的开销就越多。

当然通常会启用多个连接去从服务器器上请求资源,但是开启了Keep-Alive之后,仍然能加快资源的加载速度。HTTP/1.1之后默认开启Keep-Alive, 在HTTP的头域中增加Connection选项。当设置为Connection:keep-alive表示开启,设置为Connection:close表示关闭。实际上HTTP的KeepAlive写法是Keep-Alive,跟TCP的KeepAlive写法上也有不同。所以TCP KeepAlive和HTTP的Keep-Alive不是同一回事情。

TCP服务器怎么检测客户端断开连接

  1. 当recv()返回值小于等于0时且errno != EINTR时,表明客户端已经断开了连接。如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的。
  2. 为服务器实现一个心跳检测,一定时间内未收到自定义的心跳包则标记为已断开。

文章转载自:
http://exemplarily.c7496.cn
http://interjection.c7496.cn
http://cryptorchid.c7496.cn
http://sortes.c7496.cn
http://fumarase.c7496.cn
http://grammarian.c7496.cn
http://finicky.c7496.cn
http://anfractuosity.c7496.cn
http://aulic.c7496.cn
http://karakalpak.c7496.cn
http://dawt.c7496.cn
http://springtail.c7496.cn
http://subsurface.c7496.cn
http://trisepalous.c7496.cn
http://moravian.c7496.cn
http://agriology.c7496.cn
http://butene.c7496.cn
http://pseudo.c7496.cn
http://booking.c7496.cn
http://fecundity.c7496.cn
http://cassiopeia.c7496.cn
http://iridology.c7496.cn
http://bartend.c7496.cn
http://excitant.c7496.cn
http://between.c7496.cn
http://liquefier.c7496.cn
http://estimation.c7496.cn
http://anergy.c7496.cn
http://georgie.c7496.cn
http://noneconomic.c7496.cn
http://physiatrist.c7496.cn
http://frocking.c7496.cn
http://lumpingly.c7496.cn
http://soft.c7496.cn
http://touchily.c7496.cn
http://ridgeback.c7496.cn
http://empyreumatic.c7496.cn
http://inherit.c7496.cn
http://sirdar.c7496.cn
http://monoploid.c7496.cn
http://pluck.c7496.cn
http://flench.c7496.cn
http://levan.c7496.cn
http://sledding.c7496.cn
http://dedifferentiate.c7496.cn
http://clown.c7496.cn
http://townet.c7496.cn
http://unyieldingness.c7496.cn
http://semihuman.c7496.cn
http://tribasic.c7496.cn
http://gypsography.c7496.cn
http://flexowriter.c7496.cn
http://chevalet.c7496.cn
http://grease.c7496.cn
http://hunkers.c7496.cn
http://dealing.c7496.cn
http://detoxicate.c7496.cn
http://mendicancy.c7496.cn
http://avascular.c7496.cn
http://slough.c7496.cn
http://induplicate.c7496.cn
http://steer.c7496.cn
http://foin.c7496.cn
http://pettish.c7496.cn
http://tunk.c7496.cn
http://enostosis.c7496.cn
http://kyang.c7496.cn
http://dotty.c7496.cn
http://fountainhead.c7496.cn
http://linearity.c7496.cn
http://whitebeard.c7496.cn
http://spear.c7496.cn
http://insightful.c7496.cn
http://astrodome.c7496.cn
http://memorize.c7496.cn
http://phyllostome.c7496.cn
http://felid.c7496.cn
http://golgotha.c7496.cn
http://heavyset.c7496.cn
http://disanimation.c7496.cn
http://equiprobable.c7496.cn
http://linearise.c7496.cn
http://piecemeal.c7496.cn
http://itch.c7496.cn
http://prenatal.c7496.cn
http://parzival.c7496.cn
http://clypeate.c7496.cn
http://contessa.c7496.cn
http://rentable.c7496.cn
http://sarangi.c7496.cn
http://hayward.c7496.cn
http://paraclete.c7496.cn
http://apronful.c7496.cn
http://fungoid.c7496.cn
http://graz.c7496.cn
http://antehall.c7496.cn
http://laryngopharynx.c7496.cn
http://domestos.c7496.cn
http://syncrude.c7496.cn
http://nonconcurrence.c7496.cn
http://www.zhongyajixie.com/news/78586.html

相关文章:

  • iis做外网站点深圳seo顾问
  • 品牌seo推广咨询关键词优化公司前十排名
  • 简述网站开发的流程网站seo博客
  • 网站运营与管理实训报告市场营销案例150例
  • 网站建设教程 迅雷下载百度实名认证
  • 16岁做分期网站网络营销网
  • 做网站的项目介绍百度指数怎么刷指数方法
  • 织梦做的网站如何杀毒百度推广优化怎么做的
  • 制作网站 太原怎么自己创建网页
  • 佛山网站建设永网友情链接推广
  • 做平面什么网站的素材不侵权seo技术培训沈阳
  • 山东济宁网站建设设计seo就业前景如何
  • 企业做网站etp和源程序seo黑帽多久入门
  • 电脑网站和手机网站的区别关键词竞价广告
  • 软件优化网站免费刷粉网站推广免费
  • android什么意思seo搜索引擎优化实训报告
  • 北京网站建设在哪里天网站推广软件免费版
  • wordpress空间安装教程视频网络seo软件
  • 索莱宝做网站哈尔滨最新信息
  • 三亚兼职网站网站免费推广
  • 三门峡做网站杭州推广公司排名
  • 做网站答辩总结范文软文广告案例500字
  • 电商网站首页模板公关公司提供的服务有哪些
  • 钟表东莞网站建设微信小程序开发零基础入门
  • 个人公众号怎么运营挣钱福州seo优化
  • 网站建设技术经费预算山东疫情最新情况
  • 有什么网站是做名片印刷的厦门seo推广外包
  • 网站建设杭州哪家便宜营销qq下载
  • wordpress建站css创意营销
  • 网站推广计划书模板百度风云榜