如何理解TCP长连接

经常看到各种应用中提到长连接的概念,那么该怎么理解这个长连接呢?所谓的长连接通俗的将就是建立TCP连接及端口TCP连接太消耗资源及时间(TCP建立连接需要三次握手断开需要四次挥手),一旦连接建立之后就不断开了,这样节省了很多资源。

这里补充一点,当连接建立后,客户端只需向服务端发送数据,如果循环发送数据,那么采用长连接节省的资源是相当可观的。另外TCP是可靠的连接,A向B发送数据后,如果B收到会向A发送确认收到数据包,否则A在一定时间范围内未收到B返回的数据包(超时)会执行重发。

时间: 2024-11-11 09:58:52

如何理解TCP长连接的相关文章

【Netty4 简单项目实践】六、断掉未鉴权的TCP长连接--ChannelHandelContext中的定时器用法

在TCP长连接模式下,我们需要及时释放那些未授权的TCP链接,让系统运行得更稳健一些. 首先是connect上来的TCP报文需要设置一个存活期,通过在pipleline上设置超时处理器ReadTimeoutHandler ch.pipeline().addLast(new ReadTimeoutHandler(120)); 使得一个TCP在120秒内没有收到数据就断掉. 这样做的目的是让连接者必须发TCP报文才能维持连接. 下一步在业务层对ChannelHandlerContext进行鉴权.与H

TCP 长连接、短连接和保活机制

当server和client进行TCP通信时,发送数据之前,需要先建立连接.数据发送完毕时,需要选择是否断开.这里就需要先认识下TCP的三次握手和四次分手机制. 3次握手时   第一次握手:client端向server端发送连接请求信息:SYN=1,seq=x, 第二次握手:server端回复:ACK=x+1的确认信息. 第三次握手:server端向client端发送连接请求信息:SYN=1,seq=y, 第四次握手:client端回复:ACK=y+1的确认信息. 因为连接之前,没有别的数据在发

极限优化:php巧用tcp长连接

极限优化:php巧用tcp长连接 提交 我的评论 加载中 已评论 极限优化:php巧用tcp长连接 2015-01-23 架构师之路 架构师之路 架构师之路 微信号 功能介绍 通往架构师之路,悠远而漫长,一路上,我们同行. 上一期,和大家分享了YouTube系统架构,本期将和大家分享一个大并发下php使用tcp长连接访问后端的优化方法. php巧用TCP长连接优化 一.面向人群如果你的站点架构满足以下几点,那么本文的优化方案会非常适合你:1)使用php等脚本语言作为开发语言2)需要连接后端服务,

TCP长连接与短链接

1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的 经典的三次握手示意图: 经典的四次握手关闭图: 2. TCP短连接我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,ser

基于Apache mina 的android 客户端tcp长连接实现

TCP-long-connection-based-on-Apache-mina 基于Apache mina 的tcp长连接实现,可用于android客户端推送. 项目Github地址:https://github.com/sddyljsx/Android-tcp-long-connection-based-on-Apache-mina 项目将Apache的mina项目移植到了android平台.实现长连接的主要思想是使用了mina的KeepAliveFilter过滤器. acceptor.ge

多进程解决datasnap支持的tcp长连接数量少的问题

对于实时采集数据的项目,应用场景比如是这样的:5000客户端,每个客户端每隔500MS要给服务器上传一次数据. 大家知道,像INDY这种阻塞型的通信控件,所能支持的TCP长连接的一般地不能超过1000的数量(如果想要维持稳定运行的话). 原因是大家都晓得的,阻塞方式会为每一个SOCKET连接创建一个新的线程为之服务,而WINDOWS单个进程理论上允许最多的线程数量是2048个, 实际当中要少得多才行. 有人说可以用WINDOWS的IOCP通信模型解决,诚然!但IOCP编程过于复杂. 有人说,可以

TCP长连接与短连接的区别

1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的 经典的三次握手示意图: 经典的四次握手关闭图: 2. TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,se

TCP长连接和短连接

1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的 经典的三次握手示意图: 经典的四次握手关闭图: 2. TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接.client向server发送消息,se

关于TCP长连接和发送心跳的一些理解

原因 TCP是一种有连接的协议,但是这个连接并不是指有一条实际的电路,而是一种虚拟的电路.TCP的建立连接和断开连接都是通过发送数据实现的,也就是我们常说的三次握手.四次挥手.TCP两端保存了一种数据的状态,就代表这种连接,TCP两端之间的路由设备只是将数据转发到目的地,并不知道这些数据实际代表了什么含义,也并没有在其中保存任何的状态信息,也就是说中间的路由设备没有什么连接的概念,只是将数据转发到目的地,只有数据的发送者和接受者两端真正的知道传输的数据代表着一条连接. 但是这就说明了一点,如果不