Category Archives: ztianlong.iteye.com

© 2013 . All rights reserved.

长连接和短连接 – 天龙的博客 – ITeye技术网站

一、长连接与短连接: 长连接:client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收。 这种方式下由于通讯连接一直存在。此种方式常用于P2P通信。 短连接:Client方与server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。 此方式常用于一点对多点通讯。C/S通信。 二、长连接与短连接的操作过程: 短连接的操作步骤是: 建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接 长连接的操作步骤是: 建立连接——数据传输…(保持连接)…数据传输——关闭连接 三、长连接与短连接的使用时机:   短连接多用于操作频繁,点对点的通讯,而且连接数不能太多的情况。 每个TCP连接的建立都需要三次握手,每个TCP连接的断开要四次握手。 如果每次操作都要建立连接然后再操作的话处理速度会降低,所以每次操作后,下次操作时直接发送数据就可以了,不用再建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,频繁的socket创建也是对资源的浪费。 短连接:web网站的http服务一般都用短连接。因为长连接对于服务器来说要耗费一定的资源。像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接更省一些资源。试想如果都用长连接,而且同时用成千上万的用户,每个用户都占有一个连接的话,可想而知服务器的压力有多大。所以并发量大,但是每个用户又不需频繁操作的情况下需要短连接。总之:长连接和短连接的选择要根据需求而定。   长连接和短连接的产生在于client和server采取的关闭策略,具体的应用场景采用具体的策略,没有十全十美的选择,只有合适的选择。 HTTP协议长连接、短连接总结: 长连接与短连接的不同主要在于client和server采取的关闭策略不同。短连接在建立连接以后只进行一次数据传输就关闭连接,而长连接在建立连接以后会进行多次数据数据传输直至关闭连接(长连接中关闭连接通过Connection:closed头部字段)。二者关闭策略的不同,就产生了长连接的优点:1)通过开启、关闭更少的TCP连接,节约CPU时间和内存 2)通过减少TCP开启引起的包的数目,降低网络阻塞。 二者所应用的具体场景不同。短连接多用于操作频繁、点对点的通讯,且连接数不能太多的情况。数据库的连接则采用长连接。       =======================================================   从网络技术层面来说:TCP本身是长连接的。 当然从业务层面来说:每次连接只处理一笔请求的可以称为短连接;处理业务后不断开连接而是等待处理下一笔可以称为长连接。 至于实际场合究竟需要使用短连接还是长连接,主要看实时性要求、数据流向 和 并发量 这三个问题。 由于你没有说明请求关于这三个问题上的特点,所以没法给你具体建议。 长连接优点:节约TCP握手时间,可以保证高实时性,数据流向可以采用服务器端的主动推模式。长连接缺点:并发量不宜太高,持续占用服务端口(相对消耗资源)。     ==================================================================== 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 短连接是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接,一般银行都使用短连接。 比如http的,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。 长连接与短连接的操作过程 … Continue reading