长连接和短链接的区别
长连接意味着进行一次数据传输后,不关闭连接,长期保持连通状态。如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接。就像下图这样。
它的优势是在多次通信中可以省去连接建立和关闭连接的开销,并且从总体上来看,进行多次数据传输的总耗时更少。缺点是需要花费额外的精力来保持这个连接一直是可用的,因为网络抖动、服务器故障等都会导致这个连接不可用,甚至是由于防火墙的原因。所以,一般我们会通过下面这几种方式来做“保活”工作,确保连接在被使用的时候是可用状态:
1.利用 TCP 自身的保活(Keepalive)机制来实现,保活机制会定时发送探测报文来识别对方是否可达。一般的默认定时间隔是 2 小时,你可以根据自己的需要在操作系统层面去调整这个间隔,不管是 linux 还是 windows 系统。
2.上层应用主动的定时发送一个小数据包作为“心跳”,探测是否能成功送达到另外一端。 保活功能大多数情况下用于服务端探测客户端的场景,一旦识别客户端不可达,则断开连接,缓解服务端压力。
提前多说一句,如果在做了高可用的分布式系统场景中运用长连接会更麻烦一些。因为高可用必然包含自动故障转移、故障隔离等机制。这恰恰导致了一旦发生故障,客户端需要及时发现哪些连接已处于不可用状态,并进行相应的重连,包括重新做负载均衡等工作。
了解完了长连接,那么短连接就很容易理解了。短连接意味着每一次的数据传输都需要建立一个新的连接,用完再马上关闭它。下次再用的时候重新建立一个新的连接,如此反复。
它的优势是由于每次使用的连接都是新建的,所以基本上只要能够建立连接,数据就大概率能送达到对方。并且哪怕这次传输出现异常也不用担心影响后续新的数据传输,因为届时又是一个新的连接。缺点是每个连接都需要经过三次握手和四次握手的过程,耗时大大增加。
另外,短连接还有一个致命的缺点。我们回到前面提到的维基百科对 socket 的定义,其中说到 socket 包含通信协议、目标地址、状态等。实际当你在基于 socket 进行开发的时候,这些包含的具体资源主要就是这 5 个:源 IP、源端口、目的 IP、目的端口、协议,有个专业的叫法称之为“五元组”。在一台计算机上只要这五元组的值不重复,那么连接就可以被建立。然而一台计算机最多只能开启 65535 个端口,如果现在两个进程之间需要通信,作为服务端的 IP 和端口必然是固定的,因此单个客户端理论上最多只能与服务端同时建立 65535 个 socket 连接。如果除去操作系统和其它进程所占用的端口,实际还会更少。所以,一旦使用不当,在很短的时间内建立了大量连接,端口很容易被占用完。这不但会导致自身无法正常工作,还会影响到同一台计算机上的其它进程。
长连接和短链接的区别相关推荐
- TCP长连接和短链接的区别及应用场景
TCP长连接和短链接的区别及应用场景 TCP在真正的读写操作之前,服务端与客户端之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立通过三次握手,释放则需要四 ...
- 什么是长连接和短连接?(长链接、短链接)什么时候使用长连接、短链接?
文章目录 什么是长连接和短连接? 什么时候使用长连接.短链接? 定义 适用场景 什么是长连接和短连接? 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 ...
- http / 关于长连接和短链接的理解
HTTP 协议是基于请求 / 响应模式的,因此只要服务端给了响应,本次 HTTP 请求就结束了,也可以理解成 HTTP 是面向请求 / 响应的. TCP 协议是面上连接的. 综上,如果 HTTP 请求 ...
- HTTP长连接,短链接,持久连接的区别
什么是Http长连接 长连接定义: client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收.这种方式下由于通讯连接一直存在.此种方式常用于P2P点对点的通信. 长连接的操 ...
- tcp协议中的长连接和短连接服务器,谈谈HTTP协议中的短轮询、长轮询、长连接和短链接...
undefined 在之前总结 WebSocket 的时候就已经提到过短长轮询了~~今天看公众号文章,又把长短连接引进来一起分析.感觉这种总结很棒,那么我们一起看看呗 长短连接 听说长短连接的话,应该 ...
- 长连接与短链接问题的探讨
通常我们会提及HTTP的长连接和短连接,因为HTTP本身是一个请求-响应的无状态协议.所以就它自身来说是无法实现长连接的. HTTP长连接的本质是TCP传输层的长连接. 如图 图片来自http://w ...
- TCP长连接与短链接
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
- TCP长连接和短链接及优缺点
TCP和UDP tcp:面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手断开连接 优点:在数据传输时,有确认.窗口.重传.拥塞控制机制,能保证数据正确性,较为可靠 缺点:速度相对慢一点,要 ...
- TCP长连接和短链接
目录 短连接 长连接 keepalive功能 中间设备删除超时的连接过程 TCP keepalive交互过程 TCP keepalive带来的问题: 为什么需要长连接? http keepalive ...
最新文章
- YOLOv4中的tricks概念总结——Bag of freebies
- sql join on 多表连接_阿里规范不建议多表Join,可这SQL要怎么写啊?
- rust 编程入门_面向初学者的Rust –最受欢迎的编程语言入门
- 2021汉语言文学对高考成绩查询,2021汉语言文学专业就业前景怎么样
- 如何将地址栏打开的图标隐藏_如何制作一款手机主题?这套UI主题图标教程将为你解密!...
- 结构体,文件操作,指针,简单练习
- Android View layout方法的简单使用案例
- [面试必考]OSI 网络七层协议以及各层的功能
- 厚积‘博’发,成就卓越IT人生!
- c#记录合并PDF和word
- 什么软件可以测试皮肤色号,肤色测试卡怎么用?肤色测试卡的使用方法
- 我的世界服务器无限繁殖,村民无限繁殖!我的世界自制超速繁殖机
- 数据库候选关键词怎么求_数据库中主键、主码、主属性、关键字、候选关键字、码的区别...
- 在MPLAB X IDE下用SEGGER J-LINK调试PIC32
- 本机IP地址,ios的IP地址,www.ip138.com,
- 2017年,加密货币对冲基金收益超过1000%
- 2023中职组网络安全技能竞赛——代码审计解析(超级详细)
- 孕妇好的软件有哪些 孕妇软件哪个好 孕妇软件
- 怎么删除PPT设置的打印限制
- matlab上能仿真功率吗,基于MATLAB的高功率因数整流器仿真实验平台