当前位置:首页 > 短网址资讯

Socket长链接与短链接

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

长链接与短链接

 

        所谓长链接,指在一个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
分享给朋友:

相关文章

FT12短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址教你如何利用大数据算法定位网站性能瓶颈(BOSS)

FT12短网址资讯:架构师非常关注性能问题,上篇文章中我们介绍了京东的自动化压测体系 ForceBot,这篇文章来自 LinkedIn 的技术博客,介绍如何通过大数据算法来分析调用数据,自动定位性能瓶颈。本文由高可用架构翻译。背景我们 FT…

谁来取代站长之家和A5站长网

谁来取代站长之家和A5站长网

处于第一阶梯的站长类门户非站长之家(chinaz)和A5(站长网)莫属,根据alexa显示,chinaz和A5长期排名是100位和400位左右,可以说现在站长门户这个市场基本上被chinaz和短网址垄断。昨天读了牟长青的《挂羊头卖猪肉的站长…

域名解析实践——HTTPDNS

几乎一切需求网络连接的使用都会依赖域名体系(Domain Name System,DNS)。域名解析效劳一般作为一次网络连接的先导,将人们便于记忆的计算机名称解析成计算机合适处理的网络地址。因而DNS安稳效劳是上述网络使用正常运转的条件,地…

从产品、市场、投资等,深入了解与分析共享充电宝

从产品、市场、投资等,深入了解与分析共享充电宝

从4月开始,继共享单车之后,共享充电宝突然为科技创投圈所青睐。共享充电宝前景如何?本文作者从产品、市场、投资等多个维度对此进行了分析,共享充电宝的未来似乎并不那么扑朔迷离。忽如一夜春风来,千树万树梨花开。今年春天,共享充电宝火了。3月31日…

否认全盘接手,百度外卖或与顺丰成立合资公司

否认全盘接手,百度外卖或与顺丰成立合资公司

[ 亿欧导读 ] 现在顺丰控股收购baidu外卖的方向是,双方将按照5:5的出资份额,一起出资经过建立合资公司来运营,不过一切都未确定,还存在变数。一位接近交易的人士表示:“之所以不会全盘接手baidu外卖,主要是因为顺丰以为全资…

黑客盗取NSA工具,引发全球网络攻击

被驱逐的联邦调查局局长詹姆斯·科梅(Simon Comey)的阴影昨天挂在参议院情报委员会的全球威胁听证会上。 像麦克白岛的Banquo的鬼一样,Comey的缺席无处不在。 但这不是当今最超现实的方面。 这是在内部威胁越来越严重和可怕的时候…

发表评论

访客

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