TCP长连接和短链接的区别及应用场景
TCP长连接和短链接的区别及应用场景
TCP在真正的读写操作之前,服务端与客户端之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立通过三次握手,释放则需要四次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的。
长连接的操作步骤是:
建立连接->数据传输…(保持连接)…数据传输->关闭连接。
短连接的步骤是:
建立连接->数据传输->关闭连接…建立连接->数据传输->关闭连接。
长连接和短链接各自的优缺点:
1、长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间,但是一直连接对于客户端来说比较耗电。
2、对于频繁请求资源的客户来说,较适用长连接。
3、客户端与服务端之间的连接如果一直不关闭的话,会存在一个问题,
4、随着客户端连接越来越多,server早晚有扛不住的时候,这时候server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致服务端服务受损;
5、如果条件再允许就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某些的客户端连累后端服务。
6、短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。
7、一次TCP连接和断开需要7个来回,如果客户端请求频繁,将在TCP的建立和关闭操作上浪费大量时间和带宽。
TCP长/短连接的应用场景
1、长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,再次处理时直接发送数据包就OK了,不用建立TCP连接。例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket 创建也是对资源的浪费。
2、而像WEB网站的http服务一般都用短连接,因为长连接对于服务端来说会耗费一定的资源,而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连接好。
TCP长连接和短链接的区别及应用场景相关推荐
- TCP长连接与短链接
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
- TCP长连接和短链接及优缺点
TCP和UDP tcp:面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手断开连接 优点:在数据传输时,有确认.窗口.重传.拥塞控制机制,能保证数据正确性,较为可靠 缺点:速度相对慢一点,要 ...
- 长连接和短链接的区别
长连接意味着进行一次数据传输后,不关闭连接,长期保持连通状态.如果两个应用程序之间有新的数据需要传输,则直接复用这个连接,无需再建立一个新的连接.就像下图这样. 它的优势是在多次通信中可以省去连接建立 ...
- TCP长连接和短链接
目录 短连接 长连接 keepalive功能 中间设备删除超时的连接过程 TCP keepalive交互过程 TCP keepalive带来的问题: 为什么需要长连接? http keepalive ...
- TCP长连接和短连接的区别
TCP长连接和短连接的区别 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立 ...
- 什么是长连接和短连接?(长链接、短链接)什么时候使用长连接、短链接?
文章目录 什么是长连接和短连接? 什么时候使用长连接.短链接? 定义 适用场景 什么是长连接和短连接? 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 ...
- TCP 长连接和短连接:
参考文章: TCP长连接和短连接的区别_yanglianzhuang的博客-CSDN博客_tcp短连接 tcp的长连接和短连接 - 皮皮虾打怪兽 - 博客园 长连接: 介绍: 指在一个TCP连接上可以 ...
- http / 关于长连接和短链接的理解
HTTP 协议是基于请求 / 响应模式的,因此只要服务端给了响应,本次 HTTP 请求就结束了,也可以理解成 HTTP 是面向请求 / 响应的. TCP 协议是面上连接的. 综上,如果 HTTP 请求 ...
- TCP长连接和短连接代码及其比较
前言: 最近又看到了关于TCP长连接和短连接的概念,以前也看过Http长连接和短连接的概念,因为Http是建立在TCP协议之上的,所以它其实是依赖TCP的长连接和短连接.所以,我就萌生了一个想法,看看 ...
最新文章
- 机器学习(MACHINE LEARNING)MATLAB人口增长模型logistic参数确定
- Python Argparse模块
- DFS(入门题,走迷宫)
- 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
- python 3.x 爬虫基础---http headers详解
- 你的网页加载太慢了怎么办?
- (转)Java随机数
- 征稿 | 2019年全国知识图谱与语义计算大会(CCKS2019)第二轮征稿启事
- mysql 临时表 限制_Mysql临时表
- MySql 性能优化
- H2O_Hyper_V-master网页端管理程序源码
- 荣耀50 Pro+配置参数曝光:AMOLED高刷屏+骁龙888旗舰芯片
- cesium 知乎_Cesium 源码笔记[2] CesiumWidget模块的实例化过程 ver1.67
- Python(2.7.6) 迭代器
- IAR软件生成库文件.a的license限制
- java poi excel转pdf_java_poi导入导出excel.pdf
- PDMS二次开发(十二)——螺栓材料统计功能一批bug修复之后再次用sample项目进行验证
- 阅读源码的经验总结,以进一步的提升自己,加油小甜妮儿
- TCP的快速重传机制
- 最小生成树(克鲁斯卡尔算法 普里姆算法)