TCP短链接和长链接:

一、简介

TCP在真正的读写操作(数据传输)之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立通过三次握手,释放则需要四次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。
TCP通信的整个过程,如下图:

二、TCP短连接

模拟一种TCP短连接的情况:

1.client 向 server 发起连接请求
2.server 接到请求,双方建立连接
3.client 向 server 发送消息
4.server 回应 client

一次读写完成,此时双方任何一个都可以发起 close 操作在步骤5中,一般都是 client 先发起 close 操作。当然也不排除有特殊的情况。从上面的描述看,短连接一般只会在 client/server 间传递一次读写操作!

三、TCP长连接

再模拟一种长连接的情况:

1.client 向 server 发起连接
2.server 接到请求,双方建立连接
3.client 向 server 发送消息
4.server 回应 client
5.一次读写完成,连接不关闭
6.后续读写操作
7.长时间操作之后client发起关闭请求

四、TCP短/长连接操作过程

3.1 短连接的操作步骤是:
建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接

3.2 长连接的操作步骤是:
建立连接——数据传输…(保持连接)…数据传输——关闭连接

五、TCP短/长连接的优点和缺点

  1. 短连接对于服务器来说管理较为简单,存在的连接都是有用的连接,不需要额外的控制手段。但如果客户请求频繁,将在TCP的建立和关闭操作上浪费时间和带宽。
  2. 长连接可以省去较多的TCP建立和关闭的操作,减少浪费,节约时间。对于频繁请求资源的客户来说,较适用长连接。

六、TCP短/长连接的应用场景

  1. 像WEB网站的http服务一般都用短链接,因为长连接对于服务端来说会耗费一定的资源,
    而像WEB网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源。
  2. 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。
    每个TCP连接都需要三次握手,这需要时间,如果每个操作都是先连接,
    再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,
    再次处理时直接发送数据包就OK了,不用建立TCP连接。
    例如:数据库的连接用长连接,如果用短连接频繁的通信会造成socket错误,
    而且频繁的socket 创建也是对资源的浪费。

七、学习链接

链接1:https://blog.csdn.net/qq_44261632/article/details/86353399

TCP 短链接 和 长链接相关推荐

  1. java实现短链接得到长链接!!!

    java实现短链接得到长链接!!! 重点:params.setParameter(ClientPNames.HANDLE_REDIRECTS, false);//禁止重定向,不设置(有些短链接)获取不 ...

  2. SpringBoot-生成短链接(长链接转换成短链接-百度短网址)

    采用Google工具类 一.引入jar <dependency> <groupId>com.google.code.gson</groupId> <artif ...

  3. 长链接转短链接java_长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...

  4. java请求百度短链接_长链接生成短链接Java源码(调用百度接口)

    public static DefaultHttpClient httpclient; static { httpclient = new DefaultHttpClient(); //httpcli ...

  5. Android重定向,还原短链接为长链接

    1 需要添加网络请求权限 2 增加回调,网络请求成功之后才去操作数据 public class RedrictActivity extends AppCompatActivity {private S ...

  6. TCP短连接与长连接

    tcp长连接和短连接 2007/05/10 14:09 TCP/IP通信程序设计的丰富多样性 (转) 刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程 序,据此一些人可能会认为TCP/IP ...

  7. HTTP长链接与短连接?

    目录 前言 1. 长链接是什么? RST包是什么? 2. 长链接的过期时间 3.长连接的数据传输完成识别 4.TCP通道复用(长连接)并发连接数的数量限制 5.容易混淆的概念--TCP的keep al ...

  8. Python短链接生成、长链接还原,就是这么简单!

    问题引入 这个问题来自于一位群友的答疑.他的问题是这样的:如何找到一个短链接的原始URL地址.以此为基础,我准备写一篇文章,用Python如何实现长链接.短链接的相互转换. 长链接转短链接 实现长链接 ...

  9. 几个免费的长链接缩短链接工具

    如何把一个长链接缩短成一个短链接? 将长链接变成短链接,有朋友在京东.淘宝.拼多多搞了网店,需要把商品链接发到微信.QQ.小红书等地方去宣传,但商品链接非常长,很容易输错.而且她身边很多做网店的朋友也 ...

最新文章

  1. 谁说被吃是鸡的宿命?这只鸡长了个价值三个诺奖的肿瘤
  2. Spring Boot全面总结(超详细,建议收藏)
  3. 2021十大科技趋势来了!阿里巴巴达摩院全新发布
  4. Android ContentProvider和getContentResolver
  5. Android QQ、微信聊天消息界面设计原理与实现
  6. 背景图层和普通图层的区别_新手如何在PS中创建图层?不容错过的7种方法,你值得学习...
  7. 安卓编程用什么软件_震惊!安卓IOS都可以用的牛逼软件
  8. Xshell调节字体大小和样式
  9. Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
  10. undefined reference to `inflateInit2_'
  11. python断点_Python断点()
  12. set列表对象去重_java中List对象列表去重或取出以及排序
  13. 正则应用之--日期正则表达式
  14. 青岛大学苏晓泉组-微生物组16S扩增子功能校正算法Meta-Apo
  15. idea中项目文件颜色含义
  16. office2010无法卸载问题
  17. 用于时间机器备份的文件服务器地址,一日一技 | 如何解决时间机器在 NAS 上创建备份失败的问题?...
  18. Python_基础知识02
  19. bed文件 坐 标的调整(awk的用法)
  20. 计算机基础——1.1信息与信息技术

热门文章

  1. 上海致力于研发突破一批区块链共性关键技术
  2. Chrome浏览器安装Vue.js devtools插件
  3. 泰国证券交易所预计将在本月批准5个ICO项目
  4. 根据卫星的方位角和仰角画卫星星空图(QT实现)
  5. Java网页数据抓取实例
  6. java获取时间的各种风格_Java8新特性之新日期API
  7. 2.16VINETIC需要解决的问题
  8. React学习七(React Hooks)
  9. 培训班出来的程序员现在怎么样了
  10. (亲测可用)修改VisualSVN Server地址为ip地址,修改svn服务端地址为ip或者域名地址的方法