1、概念区别

  所谓TCP短连接,是指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接。也就是说TCP连接维持的时间比较短。一般银行网页数据交互都使用短连接。再比如说http协议中,只是连接、请求、关闭,过程时间较短,服务器若是一段时间内没有收到请求即可关闭连接。

  所谓TCP长连接,是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。长连接实际是相对于通常的短连接来说的,也就是长时间保持客户端与服务端的连接状态。

2、操作过程不同

  短连接的操作步骤是:连接→数据传输→关闭连接;

  长连接则需要不断的维护连接的通信状态,所以过程更加复杂一点:连接→数据传输→保持连接(心跳)→数据传输→保持连接(心跳)→…→关闭连接。

3、适用范围不同

  短连接通常应用于WEB网页传输的HTTP服务等。由于网站的访问量可能很大,所以此时应该适用短连接以节省服务器资源;

  长连接则应用于操作频繁、数据量交大、连接数不太多的情况,例如数据库操作。由于TCP的连接建立和关闭也需要消耗较多的资源,因此在操作较为频繁的情况下,不应该使用短连接,而是要用长连接以节省系统资源。

4、特点对比

  短连接的特点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段;适用于传输量较小的应用场合。

  长连接的特点是:长连接建立后双方不会主动断开连接。一段时间没有动作之后,服务器段需要应用TCP的保活功能来探测客户端是否仍然在线,服务器总共发送10个这样的探测,每个间隔75秒。如果服务器没有收到任何响应,它就认为客户主机已经关闭并终止连接。在长连接的应用场景下,Client端一般不会主动关闭它们之间的连接,Client与Server之间的连接如果一直不关闭的话,会存在一个问题,随着客户端连接越来越多,Server早晚有扛不住的时候,这时候Server端需要采取一些策略,如关闭一些长时间没有读写事件发生的连接,这样可以避免一些恶意连接导致Server端服务受损;如果条件再允许就可以以客户端机器为颗粒度,限制每个客户端的最大长连接数,这样可以完全避免某个不良客户端连累后端服务。

TCP长连接与短连接的更多相关文章

  1. TCP同步与异步,长连接与短连接【转载】

    原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到T ...

  2. Http 和TCP的关系,TCP长连接和短连接有什么区别?

    HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用.由于HTTP在 ...

  3. 基于TCP/IP的长连接和短连接

    1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...

  4. TCP 长连接与短连接的区别

    TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的 ...

  5. TCP的长连接和短连接

    TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应用层有FTP. ...

  6. TCP/IP长连接和短连接

    http://www.cnblogs.com/bigwalnut/articles/2129070.html TCP/IP通信程序设计的丰富多样性 刚接触TCP/IP通信设计的人根据范例可以很快编出一 ...

  7. TCP长连接与短连接的区别

    http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,se ...

  8. TCP/IP系列——长连接与短连接的区别

    1 什么是长连接和短连接       三次握手和四次挥手   TCP区别于UDP最重要的特点是TCP必须建立在可靠的连接之上,连接的建立和释放就是握手和挥手的过程. 三次握手为连接的建立过程,握手失败 ...

  9. TCP/IP,http,socket,长连接,短连接

    TCP/IP TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中有TCP协议与UDP协议. 在应 ...

  10. TCP/IP,http,socket,长连接,短连接——小结。

    来源:http://blog.chinaunix.net/uid-9622484-id-3392992.html TCP/IP是什么? TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. ...

随机推荐

  1. 使用SCP在命令行传输文件

    下载远程服务器上的文件 scp   root@10.0.10.10:/home/user/download.txt  ./download.txt 上传文件到远程服务器 scp  ./upload.t ...

  2. 怎样知道linux是否安装了mysql

    1. 使用 [root@localhost Desktop]# rpm -qa |grep mysql (-qa查询已经安装的软件) mysql-libs-5.1.71-1.el6.x86_64 结果 ...

  3. RelativeLayout相对布局

    RelativeLayout相对布局常用属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_center ...

  4. Single Number-C++中的异或

    Single Number Given an array of integers, every element appears twice except for one. Find that sing ...

  5. Ultra Pull To Refresh下拉刷新

    http://www.jcodecraeer.com/a/opensource/2014/1205/2111.html

  6. 转:【Spring MVC Controller单例陷阱】

    http://lavasoft.blog.51cto.com/62575/1394669/ Spring MVC Controller默认是单例的: 单例的原因有二:1.为了性能.2.不需要多例. 1 ...

  7. UVa 1225 Digit Counting --- 水题

    UVa 1225 题目大意:把前n(n<=10000)个整数顺次写在一起,12345678910111213...,数一数0-9各出现多少字 解题思路:用一个cnt数组记录0-9这10个数字出现 ...

  8. HTML初讲

    整理老师所讲: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  9. jQuery序列化后的表单值转换成Json

    $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() ...

  10. JSBinding + SharpKit / JavaScript 加载流程

    首先,现在的方案是游戏启动就加载全部的 JavaScript 代码. 先看下 StreamingAssets/JavaScript/ 文件夹下的目录结构: