【tcp】 TCP的连接重连&QUIC的连接迁移

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【tcp】 TCP的连接重连&QUIC的连接迁移相关的知识,希望对你有一定的参考价值。

参考技术A 一条 TCP 连接是由四元组标识的(源 IP,源端口,目的 IP,目的端口)。什么叫连接迁移呢?就是当其中任何一个元素发生变化时,这条连接依然维持着,能够保持业务逻辑不中断。当然这里面主要关注的是客户端的变化,因为客户端不可控并且网络环境经常发生变化,而服务端的 IP 和端口一般都是固定的。

比如大家使用手机在 WIFI 和 4G 移动网络切换时,客户端的 IP 肯定会发生变化,需要重新建立和服务端的 TCP 连接。

又比如大家使用公共 NAT 出口时,有些连接竞争时需要重新绑定端口,导致客户端的端口发生变化,同样需要重新建立 TCP 连接。

从 TCP 连接的角度来讲,这个问题是无解的。

当用户的地址发生变化时,如 WIFI 切换到 4G 场景,基于 TCP 的 HTTP 协议无法保持连接的存活。QUIC 基于连接 ID 唯一识别连接。当源地址发生改变时,QUIC 仍然可以保证连接存活和数据正常收发。

那 QUIC 是如何做到连接迁移呢?
很简单,QUIC是基于UDP协议的,任何一条 QUIC 连接不再以 IP 及端口四元组标识,而是以一个 64 位的随机数作为 ID 来标识,这样就算 IP 或者端口发生变化时,只要 ID 不变,这条连接依然维持着,上层业务逻辑感知不到变化,不会中断,也就不需要重连。

由于这个 ID 是客户端随机产生的,并且长度有 64 位,所以冲突概率非常低。

什么是QUIC协议
https://help.aliyun.com/document_detail/126676.html

谈谈QUIC协议原理
https://mp.weixin.qq.com/s/pa5lLcNtsEYRBHrUAJYcJA

CDN快讯阿里云对HTTP/3新一代网络传输协议QUIC浅析

QUIC(Quick UDP Internet Connection)是谷歌制定的一种互联网传输层协议,它基于UDP传输层协议,同时兼具TCP、TLS、HTTP/2等协议的可靠性与安全性,可以有效减少连接与传输延迟,更好地应对当前传输层与应用层的挑战。


QUIC的由来:为什么是UDP而非TCP?


我们知道,大部分Web平台的数据传输都基于TCP协议。实际上,TCP在设计之初,网络环境复杂、丢包率高、网速差,所以TCP可以完美解决可靠性的问题。而如今的网络环境和网速都已经取得了巨大的改善,网络传输可靠性已经不再是棘手的问题。另外,TCP还有一个很大的问题是更新非常困难。这是因为:TCP网络协议栈的实现依赖于系统内核更新,一旦系统内核更新,终端设备、中间设备的系统更新都会非常缓慢,迭代需要花费几年甚至十几年的时间,这显然跟不上当今互联网的发展速度。所以现在解法就是,抛弃TCP而使用UDP,来实现低延迟的传输需求。

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

(QUIC is very similar to TCP+TLS+HTTP/2 implemented on UDP)


为了结合两者优点,谷歌公司推出了QUIC,它的升级不依赖于系统内核,只需要Client和Server端更新到指定版本。如此一来,基于UDP的QUIC就能月更甚至周更,很好的解决了TCP部署和更新的困难,更灵活地实现部署和更新。


为什么要用QUIC?

第一,建连延迟低。网民传统TCP三次握手+TLS1~2RTT握手+http数据,基于TCP的HTTPS一次建连至少需要2~3个RTT,而QUIC基于UDP,完整握手只需要1RTT乃至0RTT,可以显著降低延迟。

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

(握手比对)


第二,安全又可靠。QUIC具备TCP、TLS、HTTPS/2等协议的安全、可靠性的特点,通过提供安全功能(如身份验证和加密)来实现加密传输,这些功能由传输协议本身的更高层协议(如TLS)来实现。


第三,改造灵活。QUIC在应用程序层面就能实现不同的拥塞控制算法,不需要操作系统和内核支持,这相比于传统的TCP协议改造灵活性更好。


第四,改进的拥塞控制。QUIC主要实现了TCP的慢启动、拥塞避免、快重传、快恢复。在这些拥塞控制算法的基础上改进,例如单调递增的 Packet Number,解决了重传的二义性,确保RTT准确性,减少重传次数。


第五,无队头阻塞的多路复用。HTTP2实现了多路复用,可以在一条TCP流上并发多个HTTP请求,但基于TCP的HTTP2在传输层却有个问题,TCP无法识别不同的HTTP2流,实际收数据仍是一个队列,当后发的流先收到时,会因前面的流未到达而被阻塞。QUIC一个connection可以复用传输多个stream,每个stream之间都是独立的,一个stream的丢包不会影响到其他stream的接收和处理。


【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

综上所述,QUIC具有众多优点,它融合了UDP协议的速度、性能与TCP的安全与可靠,大大优化了互联网传输体验。


作为提升终端用户访问效率的CDN服务,其节点之间存在大量数据互通,节点之间的网络连接、传输架构等因素都会对CDN服务质量产生影响。而将QUIC应用在CDN系统中,CDN用户开启QUIC功能后,系统将遵循QUIC协议进行用户IP请求处理,既能满足安全传输的需求,也能提升传输效率。目前,阿里云CDN除了在资源部署、智能调度等方面进行提升之外,也在网络传输协议优化上不断钻研演进,以此确保为用户提供更低延迟、更高性能的内容分发加速服务。


早在2018年杭州云栖大会上,阿里云率先提出AliQUIC的概念,它是基于QUIC协议而推出的一种CDN last mile和middle mile的网络传输解决方案。在这个网络方案里,AliQUIC不仅仅针对Web类应用,它在游戏,实时音视频通信,互动直播和IM弹幕等各种场景中,延伸出针对性地算法和技术,以达到最佳的加速效果。


【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析


阿里云CDN全面支持QUIC协议

阿里云CDN全面支持QUIC协议,适用的产品包含静态内容分发(图片小文件、大文件下载、视音频点播)和 动态内容分发(全站加速)。QUIC基于UDP协议,可以为用户提供更高的弱网性能、更低的握手延迟、更好的多路复用和更灵活的拥塞算法。


用户只需在CDN、全站加速控制台对域名开启【QUIC协议开关】功能,支持QUIC协议的客户端即可通过QUIC协议与阿里云CDN节点通信。

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

(在阿里云CDN中使用QUIC的工作原理)


QUIC应用场景

图片小文件:明显降低文件下载总耗时,提升效率

视频点播:提升首屏秒开率,降低卡顿率,提升用户观看体验
动态请求:适用于动态请求,提升访问速度,如网页登录、交易等交互体验提升
弱网环境:在丢包和网络延迟严重的情况下仍可提供可用的服务,并优化卡顿率、请求失败率、秒开率、提高连接成功率等传输指标
大并发连接:连接可靠性强,支持页面资源数较多、并发连接数较多情况下的访问速率提升
加密连接:具备安全、可靠的传输性能

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

Pick您心目中的CDN领袖!

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

【CDN快讯】阿里云对HTTP/3新一代网络传输协议QUIC浅析

金秒奖

24 Sept 2019

2019亚太内容分发大会推出“金秒奖”,紧扣大会主题【万象连接】,在5G全新的网络连接环境下,寻找最佳的云平台服务及CDN方案,从成本、服务、技术、质量等多重角度,评选出5G时代下最具有价值的“金秒案例”。


扫码参会

2019亚太内容分发大会

长按左边二维码报名


点击下方“阅读原文”,报名参加上海CDN峰会!

↓↓↓



以上是关于【tcp】 TCP的连接重连&QUIC的连接迁移的主要内容,如果未能解决你的问题,请参考以下文章

为什么HTTP3.0抛弃传统的TCP而选择QUIC协议?

为什么HTTP3.0抛弃传统的TCP而选择QUIC协议?

微软全面推进 QUIC 协议替代 TCP/IP,或将重塑未来的互联网?

CDN快讯阿里云对HTTP/3新一代网络传输协议QUIC浅析

QUIC/HTTP3 协议简析

QUIC/HTTP3 协议简析