当前位置:首页 > 短网址资讯 > 正文内容

Socket长链接与短链接

www.ft12.com8年前 (2017-06-20)短网址资讯3686

长链接与短链接

 

        所谓长链接,指在一个TCP链接上能够接连发送多个数据包,在TCP链接坚持期间,假如没有数据包发送,需求两边发检测包以维持此链接,通常需求自个做在线维持。 
       
短链接是指通讯两边有数据交互时,就建立一个TCP链接,数据发送完成后,则断开此TCP链接,通常银行都运用短链接。  
       
比如http的,仅仅链接、恳求、封闭,过程时刻较短,效劳器若是一段时刻内没有收到恳求即可封闭链接。 
       
其实长链接是相关于通常的短链接而说的,也即是长时刻坚持客户端与效劳端的链接状况。

        长链接与短链接的操作过程

        通常的短链接操作步骤是: 
       
链接数据传输封闭链接;

       
而长链接通常即是: 
       
链接数据传输坚持链接(心跳)→数据传输坚持链接(心跳)→……→封闭链接; 

        这就请求长链接在没有数据通讯时,定时发送数据包(心跳),以维持链接状况,短链接在没有数据传输时直接封闭就行了.

        

        什么时分用长链接,短链接

        长链接多用于操作频频,点对点的通讯,并且链接数不能太多状况,。每个TCP链接都需求三步握手,这需求时刻,假如每个操作都是先链接,再操作的话那么处理速度会降低许多,所以每个操作完后都不断开,次处理时直接发送数据包就OK了,不必建立TCP链接。例如:数据库的链接用长链接, 假如用短链接频频的通讯会造成socket错误,并且频频的socket 创建也是对资本的浪费。
 
        
发送接纳方法
        1
、异步 
       
报文发送和接纳是分开的,相互独立的,互不影响。这种方法又分两种状况: 
        (1)
异步双工:接纳和发送在同一个程序中,由两个不一样的子进程分别担任发送和接纳 
        (2)
异步单工:接纳和发送是用两个不一样的程序来完成。 
        2
、同步 
       
报文发送和接纳是同步进行,既报文发送后等待接纳回来报文。 同步方法通常需求考虑超时问题,即报文发出去后不能无限等待,需求设定超时时刻,超过该时刻发送方不再等待读回来报文,直接通知超时回来。
 
       
在长链接中通常是没有条件能够判断读写什么时分结束,所以必须要加长度报文头。读函数先是读取报文头的长度,再依据这个长度去读相应长度的报文。 
 
       
单工、半双工和全双工

        依据通讯两边的分工和信号传输方向可将通讯分为三种方法:单工、半双工与全双工。在计算机网络中首要选用双工方法,其中:局域网选用半双工方法,城域网和广域网选用全双年方法。   

        1. 单工(Simplex)方法:通讯两边设备中发送器与接纳器分工明确,只能在由发送器向接纳器的单一固定方向上传送数据。选用单工通讯的典型发送设备如早期计算机的读卡器,典型的接纳设备如打印机。   

        2. 半双工(Half Duplex)方法:通讯两边设备既是发送器,也是接纳器,两台设备能够相互传送数据,但某一时刻则只能向一个方向传送数据。例如,步话机是半双工设备,由于在一个时刻只能有一方说话。   

        3. 全双工(Full Duplex)方法:通讯两边设备既是发送器,也是接纳器,两台设备能够同时在两个方向上传送数据。例如,电话是全双工设备,由于两边可同时说话。


       
而像WEB网站的http效劳通常都用短链接,由于长链接关于效劳端来说会耗费必定的资本,而像WEB网站这么频频的成千上万乃至上亿客户端的链接用短链接会更省一些资本,假如用长链接,并且同时有成千上万的用户,假如每个用户都占用一个链接的话,那可想而知吧。所以并发量大,但每个用户无需频频操作状况下需用短连好。

        所以,长链接和短链接的挑选要视状况而定。

 

        长链接中心跳包及其作用:

         一:内网机器假如不主动向外发起链接,外网机没法直连内网的,这也是内网机安全的因素之一吧,又由于路由器会把这个关系记录下来,可是过一段时刻这个记录可能会丢掉 ,一切每一个客户端每隔必定时刻就会向效劳器发送消息,以确保效劳器能够随时找到你,这东西被称为心跳包。

         
二:理论上说,这个链接是一直坚持链接的,可是实践状况中,假如中间节点出现什么毛病是难以知道的。更要命的是,有的节点(防火墙)会主动把必定时刻之内没有数据交互的链接给断掉。在这个时分,就需求我们的心跳包了,用于维持长链接,保活。在获悉了断线之后,效劳器逻辑可能需求做一些事情,比如断线后的数据清理呀,从头链接呀……当然,这个自然是要由逻辑层依据需求去做了。总的来说,心跳包首要也即是用于长链接的保活和断线处理。通常的运用下,断定时刻在30-40秒对比不错。假如真实请求高,那就在6-9秒。

         
三:假如不主动封闭socket的话,体系不会主动封闭的,除非当时进程挂掉了,操作体系把占用的socket回收了才会封闭。为什么需求心跳链接首要是判断当时链接是否是有效的、可被运用的。在实践运用中假设一段时刻没有数据传输时分理论上说应该链接是没有问题的,可是网络复杂,中途出现问题也是多见的,网线被掐断了、对方进程挂掉了、频频丢包等,这时分TCP链接是不行运用的,可是关于运用层并不知道,假如需知道网络状况则要很复杂的超时进行了解,TCP从底层就实现了这样的功用。心跳机制是TCP在一段时刻间隔后发送确定链接端是否还存在,假如存在的话就会回传一个包确定网络有效,假如心跳包有问题,则通知上层运用当时网络有问题了。
这取决于你的server端的超时配置, 每个socket链接都是长链接,它是一个相当占用体系资本的通讯管道, 假如这个长链接什么事也没干硬是要占着资本,则server端能够挑选封闭这个链接,以省下资本让更多的用户链接进来。
所以,即使客户端的是选用死循环while(true)方法连到效劳端,关于特定的客户端和效劳端类型来说也需求必定时刻间隔的心跳(告诉效劳端,我还活着,尽管我没干活也没说话,但别把我关了)。







扫描二维码推送至手机访问。

版权声明:本文由短链接发布,如需转载请注明出处。

本文链接:https://www.ft12.com/article_223.html

标签: 短链接Socket
分享给朋友:

相关文章

飞牛网上线极速达业务 大润发正式布局全渠道

飞牛网上线极速达业务 大润发正式布局全渠道

2017年5月12日12点12分,飞牛网配送员小刘从大润发上海闸北店出发,历时12分钟,将12.00元的产品送至静安区江场三路12号。当客户汪先生承认收货时,飞牛急速达事务第一笔订单顺利完成。大润发飞牛网宣告,急速达正式上线,这也标志着大润...

YOURLS:打造属于自己的短网址网站

YOURLS:打造属于自己的短网址网站

有些朋友对赵容的短网址感兴趣询问我,很早的时候,我分享过一个wordpress插件对一些较长的地址实现URL缩短,今天,我再分享一个开源PHP程序—YOURLS。首先,我们下载YOURLS源码,目前最新版本为1.5,直接到官网下载(http...

简单高效的短网址生成服务C#实现

简单高效的短网址生成服务C#实现

项目中有一处需求,需要把长网址缩为短网址,把结果通过短信、微信等渠道推送给客户。刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务。由于以前做过socket服务,对数据包的封装排列还有...

从代码层面优化系统性能的解决方案

从代码层面优化系统性能的解决方案

我们以前看到的很多架构变迁或者演进方面的文章大多都是针对架构方面的介绍,很少有针对代码级别的性能优化介绍。本文将针对一些代码细节方面的东西进行介绍,欢迎大家吐槽以及提建议。 写在前面 在 上一篇 我们主要介...

小米发布智能音箱,欲打造成下一个小米手机?

亚马逊的echo智能音箱,天猫精灵音箱等等相继发布。巨头们争相进入智能音箱领域,小米发布智能音箱也在大家预料中。2017年7月26日,小米探究实验室发布售价299元的小米AI音箱“小爱同学“,8月7日-8月11日小米电视在全国13个城市举办...

原创保护之后自媒体们该何去何从?

原创保护之后自媒体们该何去何从?

自媒体平台兴起 内容创作者春天来临2016年可谓是自媒体平台发展元年,而2017年将成为自媒体平台爆发年,群雄纷争,一场无硝烟的战争一触即发。伴随着BAT等互联网巨头纷纷涌入自媒体平台之争,同时各自号称将出资10亿、20亿甚至100亿元刺激...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。