一、什么是TCP加速?
TCP加速就是在高时延链路提高吞吐量的一系列解决方案。
二、为什么需要对TCP进行加速?
1、传统的TCP拥塞控制算法并不适用于高时延、高误码的链路。
2、随着web元素的丰富,用户量的增加对交互时延和处理能力的要求越来越高。
3、对资源和合理配置,提高网络带宽利用率的需求。
以同步卫星通信场景为例讲解1
卫星通信的传输时延是因为卫星在36000公里的高空,电波的从地面到卫星再回到地面的时间大约是0.27秒(30万公里/秒)。这就是所谓的卫星通信的传输延时。
实测来讲:卫星的传输时延远大于理论值,同步卫星天地往返时延在500ms以上,链路较差是在600ms-800ms之间波动。
实际测试:在时延500ms、时延抖动较小的情况下,TCP连接不做加速时传输速率为空口带宽(卫星口最大传输能力)的30%-40%。例:10Mbps的带宽最大只能利用3Mbps-4Mbps,其余资源被浪费。
三、如何对TCP加速?
如何对TCP进行加速业界并没有一个标准,但有一系列的推荐方法。详细可阅读RFC 3135
现在最常用的方法是:TCP透明代理 + 算法优化 
TCP透明代理(TCP加速的核心思想
原理:就是利用一些手段在内核或者协议栈捕获TCP报文,将TCP报文送入TCP加速器中处理并在处理完成后将报文头部还原并继续转发。
好处:1、透明代理可以把端到端的TCP分割为几个部分,这样就可以根据每个部分的丢包、时延情况进行不同的优化,从而提高TCP的性能。
2、TCP加速器将一端的连接终结,然后重新发起一个连接到另一端。这样两端的数据包都被缓存在两端的TCP加速器上,TCP加速器之间的数据发送由加速器自行控制。
算法优化
原理:利用透明代理机制,在加速器之间或加速器与Server端之间修改或优化算法,使用更适用链路特点的算法可以事倍功半!
 单边加速:只需要在tcp的一端部署的加速技术(绝大多数都是优化tcp的拥塞控制算法)
优点:部署容易,变动较小,应用范围广,研发厂商多算法丰富多样。
缺点:必须兼容标准的TCP协议,优化调整点不如双边多。
双边加速:双端部署
优点:可以采用更高效的传输协议,数据缓存,流量压缩,多路径转发
缺点:部署较为麻烦,必须双端部署;如果是客户端需要安装相应软件工具
注意!!!
上述所说的TCP加速方法只能提高TCP连接的带宽利用率不能提高TCP连接的建链速度等;简单来说就是不能提高你访问网页的速度,只能提高你下载文件的速度!
如果想提高HTTP的访问速度请选择压缩等方法
------------------------------------------------------------------------
注:如果想进一步研究TCP加速的优化方案建议研究RFC3135
卫星通信行业的大佬 休斯的TCP加速就是按照RFC 3135做的
之前和小伙伴们研究了一下
RFC 3135 大致有这几块(PEP就是TCP透明代理)
1、TCP ACK处理:  TCP PEP 基于TCP ACK操作
2、TCP ACK间距:  ACK间隔用于平滑遍历链路的TCP确认流
3、本地TCP确认:   PEP接收的TCP数据段由PEP本地确认
4、本地TCP重传:本地重传在TCP PEP和接收端系统之间的路径上丢失的数据段
5、TCP ACK过滤和重建:通过过滤链路一侧ACK,并在链路的另一侧重建已删除的ACK来解决由于不对称链路产生的拥塞问题
6、隧道:封装消息以跨特定链路传送消息或强制消息遍历特定路径,封装隧道另一端的PEP在最终传送到接收端系统之前移除隧道封装器 (中间链路使用UDP传输就是这种)
7、压缩:压缩各部分简要需要通过链路的字节数
8、处理与TCP断开链路的周期:TCP发送方未收到预期的确认,在重传定时器到期时会导致TCP关闭其连接
9、基于优先级的附庸:通过缓慢且昂贵的链路实现基于优先级的数据复用,可以显著提高所选应用或连接的链路性能和可用性
10、协议助推器机制:如UDP错误检测、奇偶校验分组数据包、发送PEP添加时间戳来延迟分组一边接收端重现正确的间隔

转载于:https://www.cnblogs.com/xuanxuanBOSS/p/11277716.html

TCP加速机制是如何加速的?相关推荐

  1. geth rpc无法开启_三分了解以太坊 Geth 客户端快照加速机制

    免责声明:本文旨在传递更多市场信息,不构成任何投资建议.文章仅代表作者观点,不代表火星财经官方立场. 小编:记得关注哦 来源:以太坊爱好者 原文标题:三分了解以太坊 Geth 客户端快照加速机制 原文 ...

  2. matlab2017硬件加速,现场影像增强中的硬件加速机制研究

    现场影像增强中的硬件加速机制研究 [摘要]:随着处理器性能的不断提升,图像.影像中越来越多的信息被直观化地呈现给用户.然而,面对用户在直观化成像上越来越高的应用需求,信息的数据量庞大且需要实时处理.基 ...

  3. sqlite3:锁机制、stmt加速、wal日志模式、多进程并发、写互斥

    最近需要做sqlite的并发优化,会有一些多主机多进程的操作失败问题,所以学习一下,顺便为了翻阅,做一个笔记收集. 未完成................... to be continued 目前只 ...

  4. Android 屏幕绘制机制及硬件加速

    文章目录 前言 硬件加速 CPU / GPU结构对比 OpenGL Android 的图形组件 画笔 画纸 画板 合成及显示 CPU / GPU 绘制过程 软件绘制 硬件加速 视图构建 额外点 硬件加 ...

  5. 风光电价加速下降 新能源时代加速到来

    世界经济的每一次重大转型,都与能源变革息息相关.近年来,以风力和太阳能发电为主的新能源发展势头强劲,以化石能源为主的能源开发利用方式面临挑战,一场历史性的能源变革正在全球范围内孕育.与人类历史上的前两 ...

  6. (七)深入浅出TCPIP之深入浅出TCPIP之TCP重传机制

    目录 TCP重传机制 超时重传机制 快速重传机制 专栏其他文章: 理论篇: (一)深入浅出TCPIP之理解TCP报文格式和交互流程 (二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上) (三 ...

  7. 时序数据合并场景加速分析和实现 - 复合索引,窗口分组查询加速,变态递归加速...

    时序数据合并场景加速分析和实现 - 复合索引,窗口分组查询加速,变态递归加速 作者 digoal 日期 2016-11-28 标签 PostgreSQL , 数据合并 , 时序数据 , 复合索引 , ...

  8. Netty是如何实现TCP心跳机制与断线重连的

    本文来说下Netty 是如何实现 TCP 心跳机制与断线重连的 文章目录 什么是心跳机制HeartBeat 如何实现心跳机制 Netty实现自定义的心跳机制 服务端 客户端 测试效果 客户端断线重连 ...

  9. activeMQ的源码分析 -TCP通讯机制

    2019独角兽企业重金招聘Python工程师标准>>> activeMQ的源码分析 -TCP通讯机制 博客分类: MQ <IGNORE_JS_OP style="WO ...

最新文章

  1. Elasticsearch入常用RESTful API总结
  2. day01: oracle12C在Linux7.5上图形化安装部署方法:
  3. stm32 systick定时器
  4. ansible(3)——主机列表,ssh,公钥私钥
  5. RHEL系统网络安装(kikstart)
  6. SAP Spartacus user form去除嵌套label的side effect之一
  7. 为什么我们总是「习惯性辩解」?
  8. 使用网络进行项目托管
  9. 1389. 按既定顺序创建目标数组
  10. php多图片上传封装类,php----图片上传封装类:单张,多张图片上传,生成缩略图...
  11. 常用网络测试的命令的实验报告计算机网络,实验一常用网络命令的使用实验报告-20210409133504.docx-原创力文档...
  12. win10 移动硬盘“拒绝访问”解决方案
  13. sklearn.utils.Bunch的属性
  14. Python_Turtle绘制心形线(采用函数描点法绘制)(turtle实现)【2021-10-15】
  15. java 函数式接口与Lambda表达式
  16. 玩 ChatGPT 的正确姿势「GitHub 热点速览 v.22.49」
  17. 西方经济学思想发展脉络
  18. 泡泡玛特再曝“兑奖纠纷”,昔日“盲盒第一股”面临三重难题
  19. php论坛整合,PHPCMS整合Discuz论坛
  20. oracle bulk collect into,BULK COLLECT INTO

热门文章

  1. python多进程编程实例_[python] Python多进程编程技术实例分析
  2. memcached mysql 性能测试_InnoDB memcached插件 vs 原生memcached对比性能测试
  3. infor wms 中英文对照_WMS系统中波次管理有多大作用
  4. nginx高性能web服务器详解_Nginx服务器高性能优化轻松实现10万并发访问量
  5. vue视频保存不下来_女子直播吃章鱼被“反杀”!拔不下来了,视频超痛……
  6. hadoop2.9.2安装hadoop_pid_dir_Hadoop3.2 +Spark3.0全分布式安装
  7. 虚拟文件系统模拟_容器和虚拟机到底有啥区别?
  8. C语言怎么处理多位数,急~~~~~~C语言问题~~怎么把这个计算程序改成能计算多位整数? 爱问知识人...
  9. 系统学习NLP(二十九)--BERT
  10. factorybean 代理类不能按照类型注入_Spring拓展接口之FactoryBean,我们来看看其源码实现...