博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP/IP系列——长连接与短连接的区别
阅读量:4676 次
发布时间:2019-06-09

本文共 939 字,大约阅读时间需要 3 分钟。

1 什么是长连接和短连接

 
 
 

三次握手和四次挥手

 
TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程。
三次握手为连接的建立过程,握手失败则连接建立失败。
四次挥手为连接的
完整释放过程,也会发生某个消息丢失或者超时的情况,有一方主动发送
FIN消息即表示连接即将释放。
注:
SYN、ACK、FIN消息具有哪些含义,以及连接的状态,请参考《TCP/IP详解 卷1》第18章。
 

长连接

 
长连接,也叫持久连接,在TCP层握手成功后,
不立即断开连接,并在此连接的基础上进行多次消息(包括心跳)交互,直至连接的任意一方(客户端OR服务端)主动断开连接,此过程称为一次完整的长连接。HTTP 1.1相对于1.0最重要的新特性就是引入了长连接。
 

短连接

 
短连接,顾名思义,与长连接的区别就是,客户端收到服务端的响应后,
立刻发送FIN消息,主动释放连接。也有服务端主动断连的情况,凡是在一次消息交互(发请求-收响应)之后立刻断开连接的情况都称为短连接。
注:短连接是建立在TCP协议上的,有完整的握手挥手流程,区别于UDP协议。
 

2 如何快速区分当前连接使用的是长连接还是短连接

 
1、
凡是在一次完整的消息交互(发请求-收响应)之后,立刻断开连接(有一方发送FIN消息)的情况都称为短连接
2、长连接的一个明显特征是会有心跳消息(也有没有心跳的情况),且一般心跳间隔都在30S或者1MIN左右,用wireshark抓包可以看到有规律的心跳消息交互(可能会存在毫秒级别的误差)。
 

3 什么时候用长连接,短连接?

 
1、需要
频繁交互的场景使用长连接,如即时通信工具(微信/QQ,QQ也有UDP),相反则使用短连接,比如普通的web网站,只有当浏览器发起请求时才会建立连接,服务器返回相应后,连接立即断开。
2、
维持长连接会有一定的系统开销,用户量少不容易看出系统瓶颈,一旦用户量上去了,就很有可能把服务器资源(内存/CPU/网卡)耗尽,所以使用需谨慎。
 
 
转载:
http://jgsj.iteye.com/blog/2050436

转载于:https://www.cnblogs.com/pangguoping/p/5571422.html

你可能感兴趣的文章
SQL Server 2008空间数据应用系列九:使用空间工具(Spatial Tools)导入ESRI格式地图数据...
查看>>
3大主流NoSQL数据库性能对比测试报告
查看>>
pandas.DataFrame对行和列求和及添加新行和列
查看>>
【转载】后缀自动机学习总结
查看>>
YTU 2896: J--Zipper
查看>>
jQuery 源码分析 7: sizzle
查看>>
程序员如何打造属于自己的云笔记服务
查看>>
Hadoop守护进程【简】
查看>>
VMware ESXi-6.7——使用
查看>>
Java中map集合系列原理剖析
查看>>
Python Tornado初学笔记之数据库(二)
查看>>
二叉树C语言
查看>>
jQuery操作json数据
查看>>
记忆讲师石伟华微信公众号2018所有文章汇总(待更新)
查看>>
Vue2.0选中当前鼠标移入移除加样式
查看>>
迷宫C描述——栈的举例
查看>>
Html5 tips
查看>>
Android——KEYCODE列表
查看>>
cf251.2.C (构造题的技巧)
查看>>
Suse碎碎念
查看>>