分享

高可靠低延迟?Google的QUIC协议简介

 北欧模式 2023-03-13 发布于陕西

互联网发展了这么多年,其基础的TCP/IP协议族一直没怎么变过,正是这些运输着字节流的标准协议,支撑起了我们几乎全部的互联网应用。

在传输层,协议主要包括TCPUDP协议,TCP协议对于计算机专业的同学们来说都很熟悉。大部分找工作的计算机专业毕业生都会熟练的背下来TCP协议的三次握手和四次挥手,因为很多面试官都会问这个问题。可见这个问题是多么的基础了。

相比于TCP的可靠连接而言,UDP协议则显得不那么可靠了。形象一点的解释TCP协议,它连接的建立过程相当于一个快递员,先提前打电话给你问你在不在家,然后确认你在家之后,他再到你家敲门,然后再亲手将快递送给你。所以这是一个可靠连接。而UDP协议则相当于快递员到了之后,把快递扔在快递超市,然后发个信息告诉你,快递放快递超市了你自己取下,如果丢了的话你找卖家重发一份。所以UDP协议显得不那么可靠,但正因为不那么可靠,所以传输效率相比于TCP来说,就快了很多。

那么有没有一种协议,能够既高效又可靠呢?Google觉得这个事情可以研究一下,于是他们搞出了QUICQuick UDP Internet Connection),以尝试提供一种兼顾低延迟和高可靠的互联网基础通信协议。

那么,QUIC是怎样兼顾这两个方面的呢?我们来看下它的结构和运行原理。

首先我们来看一下,QUIC的高效性来自于哪里。早期的TCP协议并没有考虑到后来互联网面临的巨大安全问题,所以开发人员在TCP协议之上,重新开发了安全协议TLSSSL,这样,对于一个常用网站来讲,建立连接的过程则包括了建立TCP连接和安全连接的过程,而QUIC重新编辑了其底层协议,将加密算法的协商整合到了建立连接的过程中,大大减少了建立连接所需要的数据包。相当于原来两个独立的办事部门给整合到一起了,原来想办事的话,要跑人社局民政局两个窗口,而现在直接把两个部门合并到一起了,想办的事一起办了,那么效率自然就大大提高了。下图是QUICTCP+TLS的比较,可见QUIC的执行效率远高于两者的结合。

除此之外,针对互联网资源是各自独立请求的特点,QUIC通过底层使用UDP协议方式,多路并行的传输各个请求资源。对于TCP而言,由于处理包是有严格的顺序的,因此如果其中一个包遇到问题的话,需要等待这个包传输完成之后才能继续进行。而QUIC则完全避免了因为不相干的包丢失而造成的阻塞现象,大大提升了传输效率。

另外,QUIC借鉴了互联网大数据的一些方法论,添加了一个非常独特的向前纠错(Forward Error Correction)功能。我们知道类似Hadoop这种大数据框架,一份数据都有几份备份以防出错,QUIC相当于一个流行的Hadoop他的每个数据包除了数据包本身应传输的数据之外,还带了部分其它包的数据,因此少量的丢包可以通过其它包的冗余数据直接组装起来,而不需要重传。目前QUIC默认的冗余量是10%,即每发送10个数据包,其冗余数据就可以重新构建一个丢失的数据包。

最后,QUIC还有一个更明显的好处,因为底层协议切换到了UDP协议,使得其连接不再依赖来源IP我们知道对于TCP这样的可靠连接而言,需要知道双方的IP和端口,从而保持连接。其中的任何一个参数发生了变化,连接就要重新创建。这种模式在早期互联网中并不是一个很大的问题,但是在移动网络中,这个问题就大不一样的了。因为每个人的手机都可能不断在不同WIFI网络和4G网络中切换,这个过程中TCP连接则需要重建。例如很多人都经历过,在玩王者荣耀的时候,如果网络切换了,就会导致一小段时间的460。重新连上之后发现自己已经被对方打野抓了的情况。而换成QUIC之后,这个问题就不会存在了,因为QUIC协议不再依赖于这些参数,而通过自己的UUID参数进行标记,当设备网络环境切换时,连接不会发生变化,因此无需重新握手。

看到这些优点,很多人都很期盼QUIC能够尽快成为新的互联网基础设施。但是因为协议多数是与操作系统直接绑定在一起的,因此,成为主流还需要一定的时间。不过相信通过业界人士的集体努力,这个问题很多就会得到解决。大家也会更好的享受互联网带来的生活便利。同时我们也要看到,除了互联网应用以外,TCP/IP协议还在其它很多领域得到广泛的应用,而QUIC本质上是针对互联网服务而进行了大规模的优化,这种优化舍弃了很多原本的优点,因此反而对于一些传统应用场景并不友好。因此,QUIC本质上还是一种针对互联网的应用协议。

喜欢本文的话,欢迎关注活在信息时代哦:)

活在信息时代的其它文章:
无刺鲫鱼要来了,你期待吗?
说说那些中国人发明却被外国人追捧的东西
刹车有没有问题另说,特斯拉的方向盘搞不好真有问题
又来了,为啥总有人要跟网络游戏过不去?
买电脑必备技能之如何查看硬件真实型号
工行信用卡自动还款的一个Bug,看看怎么解决比较好?
数据统计的利器:Postgresql的Grouping Sets功能简介
马斯克任命一只狗做推特的CEO,靠谱吗?
是不是城市里所有的相亲群,都会沦为剩女和癞皮狗互吹的死群?
知识更新:中国领土的最南端目前到底在哪里
北京一套房还是一个兄弟姐妹?你会选择什么呢?
VR游戏有前途吗?
一边以工代赈,一边数字化转型,被技术发展割裂的社会路向何方?
都是交通事故,为啥就特斯拉特别引起别人关注?
特斯拉又双叒叕失控了,到底是什么人在买特斯拉呢?
多模态数据的存储利器:DocArray简介
一文读懂信创:历史、未来与挑战
如何以图搜图?你需要知道的哈希感知算法
来自挪威船王的暴击:大船海工破产重整事件始末
又是这个北欧小国:记者爆料美国与挪威共同炸毁北溪管道
新思路打开胜利的大门:聊聊商务创新的那些事儿
抛弃元宇宙,拥抱ChatGPT,微软的选择是正确的吗?
为什么日本三国游戏做得那么好?
推行全电发票,中国税务终于要真正走进信息时代了
程序员应知应会之大数据如何求中位数
什么样的脑回路才能让爱奇艺想出限制投屏这招的?
机器学习基础之数学上的距离(二):字符串之间的距离
机器学习基础之数字上的距离(一):点在空间中的距离
信息帝国:从农业时代到信息时代(十七)
信息帝国:从农业时代到信息时代(十六)
信息帝国:从农业时代到信息时代(十五)
信息帝国:从农业时代到信息时代(十四)
信息帝国:从农业时代到信息时代(十三)
信息帝国:从农业时代到信息时代(十二)
信息帝国:从农业时代到信息时代(十一)
信息帝国:从农业时代到信息时代(十)
信息帝国:从农业时代到信息时代(九)
信息帝国:从农业时代到信息时代(八)
信息帝国:从农业时代到信息时代(七)
信息帝国:从农业时代到信息时代(六)
信息帝国:从农业时代到信息时代(五)
信息帝国:从农业时代到信息时代(四)
信息帝国:从农业时代到信息时代(三)
信息帝国:从农业时代到信息时代(二)
信息帝国:从农业时代到信息时代(一)
数组与链表,性能到底差多少?
某为的历史地位,可比司马懿吗?
从两弹一星到香积寺之战,谈国产芯片破局需要什么
高薪程序员应知应会之Apache Beam的那些事儿
程序员应知应会之代码投毒
特斯拉Model 3与五菱宏光Mini EV比,哪个更好?
中国的城投债会爆雷?不要杞人忧天了
何为数据编织?从失传2000余年的连山易重新现世说起
信息时代每个人都是面壁者:从王思聪打架事件说起
风水之说是无稽之谈吗?从南京爱马仕店请道士做法说起
随笔:短视频与传统文化
从羊胎素骗局看信息技术是如何被用于误导民众的
小功能也不简单,聊聊微信里面的红点提示功能
伪装成优惠活动的小额贷款?你被电信“橙分期”骗过吗?
手机定位技术简介:从俄军马克耶夫卡遇袭事件说起
比亚迪出豪车后,特斯拉路在何方?
让海空旅行不在无聊,卫星互联网服务简介
概率论:源于赌博的数学——从澳门近期发放的娱乐牌照说起
“免疫逃逸”、“共感染”,关于这次新冠奥密克戎疫情你应该知道的那些事儿
为什么华为手机相册里的图片会自动消失?
阿里云大宕机?保险公司的商机来了吗?
失踪的侃爷,保命的马斯克,还有90多种性别,现在的美国怎么了?
大数据框架中的JAVA虚拟机优化(一):概述
从排序算法到洗牌算法:Fisher-Yates Shuffle算法简介
被滥用的用户画像:从工商银行APP的最近一次改版说起
微信如何才能批量删除好友
被强制更新成鸿蒙?关不掉拼多多?说说手机上那些恶心人的事情
房地产这根支柱,还撑得起来吗?
如果没有赌球,还会有多少人看球呢?

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多