长连接:

连接建立后,需要通过心跳继续维持连接,这样发消息的时候不用每次都建立连接。

通信的过程:建立连接 --> 数据传输 -->  维持心跳  --> 数据传输  -->   -->  关闭连接。

相当于自己要维护一个心跳来确保客户端和服务端没有断开。

短连接:

连接建立后,检测到通信交互完毕,就会关闭连接。下次需要通信时,需要再次建立连接。

通信的过程:建立连接  --> 数据传输  -->  关闭连接。

比如银行业务通信,都是采用的短连接。

Tcp 的长连接和短连接

长连接:在Tcp握手成功后,不立即断开连接,在此连接上进行数据传输,心跳交互,直至客户端或服务端中的任一方主动断开连接,此过程称为长连接。Http1.1 相对于Http1.0 最重要的特性就是引入了长连接。

短连接:客户端在收到服务端的响应后,立刻发送FIN 消息,主动释放连接。当然也有服务端主动断开连接的情况。

Tcp keepalive(保活机制)

Tcp keepalive 通过定时发送 keepalive 探测包 来探测连接的对端是否存活。

一旦发送的探测包没有响应,在重复几次后,就会断开连接。

http keep-alive(是否复用tcp连接)

在http 1.0 的时候,每个http请求都要打开一个tcp socket 连接,并且使用一次之后就关闭这个tcp连接。

在http 1.1 之后,引入了keep-alive 请求头参数,可以通过这个参数控制在一次tcp 连接中可以持续发送多份数据而不会断开连接。这样就能复用tcp 连接,减少tcp连接建立的次数。

http 位于网络协议的应用层,tcp 位于网络协议的传输层。两者的keep-alive的作用是不一样的。http的keep-alive 主要是为了复用tcp连接,避免每次连接都建立tcp。tcp的keepalive主要是一种保活机制,检测对端是否依然存活。

根据通信双方的一个分工 以及 信息传输的方向,可以将通信分为三种方式:全双工,半双工和单工。

全双工(Full Duplex):

一条宽道,通信双方都可以相互发送信息,并且可以同时发送信息。典型的场景比如打电话

半双工(Half Duplex):

一条窄道,通信双方都可以相互发送信息,但是同一时刻只能有一方向另一方发送信息。典型的应用场景比如对讲机。

单工(Simplex):

单行道,通信双方只能有一方向另一方发送消息,典型场景比如打印机。

最近研究的netty 就是 异步全双工长连接通信。

长连接与短连接、全双工与半双工,单工相关推荐

  1. http长连接与短连接

    一.长连接与短连接: 长连接:client方与server方先建立连接,连接建立后不断开,然后再进行报文发送和接收. 这种方式下由于通讯连接一直存在.此种方式常用于P2P通信. 短连接:Client方 ...

  2. Socket的长连接和短连接(很详细)

    长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持.  短连接是指通信双方有数据交互 ...

  3. 跨进程通信,到底用长连接还是短连接

    一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...

  4. 长连接、短连接、短轮询、长轮询

    长连接.短连接.短轮询.长轮询 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 短轮询:重复发送Http请求, ...

  5. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  6. HTTP长连接和短连接 + Websocket

    HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...

  7. PHP tcp短链接,http请求怎样实现TCP长连接、短连接

    HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接. 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接.但是 ...

  8. TCP长连接和短连接

    2019独角兽企业重金招聘Python工程师标准>>> 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操 ...

  9. HTTP长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

最新文章

  1. 老张喝茶 教你同步异步 阻塞与非阻塞(转)
  2. 「镁客·请讲」嘿蘑法王亮:用VR给青年艺术家创造更多机会...
  3. python【蓝桥杯vip练习题库】ADV-181质因数2(短除法)
  4. 阿里云为澳门装上“城市大脑”
  5. WINCE5.0+S3C2440支持大容量SD卡(SDHC卡)
  6. CMD指令收集(持续)
  7. java可视化模板——java可视化操作步骤
  8. 不要错过这轮疫情的“洗牌”机会
  9. 计算机设备投标标书范本,OA办公自动化系统投标文件(标书范本)
  10. Selenium的一些技巧与错误处理
  11. windows下 Mysql 错误1067 Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
  12. .desktop 桌面快捷_两个按键:手机截屏且保存至电脑桌面
  13. CAN协议详解-01
  14. MATLAB实现一组随机点分成两组,每组随机点分别与一个特定点连线
  15. 分类模型的再考以及随机森林的应用
  16. 蚂蚁电竞ANT27VQ评测
  17. 手机PDF如何转图片格式
  18. c语言小写A对应数字,C语言ascII与数字转化的问题,值得新手看看
  19. 路由交换技术与路由交换技术基础知识
  20. edb的安装以及带参数使用

热门文章

  1. 射箭走进陆家嘴,学校、社区、商圈全覆盖!
  2. Ajax面试常见问题及答案
  3. 索贝4k信号采集服务器,浪潮联合索贝:软件定义存储AS13000服务世界杯
  4. 洛阳地铁一号线无人驾驶_洛阳超级拖拉机I号实现无人驾驶功能
  5. web:H5和小程序的区别
  6. 我的世界服务器维护多少钱,我的世界:一个服务器5年心血,如今却只剩下一则长长的公告...
  7. 初识互联网敏捷的三大支柱
  8. mysql 查询多级类别_SQL处理多级分类,查询结果呈树形结构
  9. 蓝桥杯 地宫寻宝 java_蓝桥杯 地宫寻宝 带缓存的DFS
  10. 再生龙 (Clonezilla)。比 Ghost更棒的、免费的、中文接口的 硬盘备份与还原