一个域名究竟可以维护多少个TCP连接???

3 篇文章 0 订阅
本文探讨了HTTP/1.1和HTTP/2时代浏览器对TCP连接数的不同管理方式。HTTP/1.1时代,浏览器为每个域名维护6个TCP连接以提高并行下载效率,而HTTP/2引入多路复用技术,通过单一TCP连接处理多个请求,解决了小文件下载时带宽利用率低的问题。TCP慢启动和带宽限制是决定连接数的关键因素。
摘要由CSDN通过智能技术生成

1、答案

TCP/1.1 时代 浏览器为每一个域名维护了6个TCP连接
TCP/2.0 时代 浏览器为每个域名维护1个TCP持久连接

不卖关子,答案放在这里。如果想知道为什么不同版本的 TCP 连接数不同,那么请往下看…

2、为什么是六个,而不是其他数字呢?

在 HTTP/1.1 时代,为了提升并行下载效率,浏览器为每个域名维护了 6 个 TCP 连接。这很好理解,我们有100个资源,多线程(6个)去找服务端去要,肯定比单线程(1个)快的多。

那么问题来了,既然多线程这么好,为什么域名不多维护几个呢?7个,八个…

解决这个疑问的前,先可以给大家讲一个其他的问题,讲完了,大家就明白了。

我们平时常常说的百兆网,千兆网。但是在实际生活使用时,往往达不到这个速度。

带宽是指每秒最大能发送或者接收的字节数。我们把每秒能发送的最大字节数称为上行带宽,每秒能够接收的最大字节数称为下行带宽。

也就是说,百兆网(100M),实际下载速度是(12.5M)。100/8 = 12.5。计网课,计算机三级(网络),都有相关知识。

可是在实际使用中,商家宣传的百兆网,往往仅仅能达到下行速度的零头,2.5M。

TCP慢启动

我们都知道只有 TCP三次握手之后,才可以进行数据的接收状态(下载)。而这个接收的过程是一个加速度的过程。

你可以把他理解为一辆汽车在公路行驶的起步状态。这也能解释另一个现象,下载的东西越大,网速越快。

下载一张图片,几百kb的网速
下载王者等游戏,就可以达到几兆的速度

这就好比,一条路全长100m,汽车还没来得及启动,就停下来了。
另一条路,好几千米,汽车就可以可劲的开了。

又因为我们的带宽是有一个范围的(百兆网),所以可以容纳的车道也是有限的。当然了,有的地方带宽小,有的地方带宽大,所以折中选择了 6。

所以说,我们平时下载东西的时候,手机尽量不干其他事。家里wifi连接的手机多了,卡了,就都可以解释清楚了。男孩子们快拿去给心仪的女孩科普去吧。

当然了,这就像高速路和省道的连接处一样,带宽(车道数)不一样,有时候也会发生拥挤,这个现在我在下一篇文章详细写。

现在的你理解清,一个域名最大连接数是6个了吧。还不是实力不允许。

3、TCP/2 浏览器为什么为每个域名维护1个TCP持久连接

按照之前的分析,我们只要将网速提起来,就可以增加TCP的连接数了。理论上这没有什么问题,但对于下载大文件,无所谓,但是对于小文件来讲,还是无法将带宽利用起来,联想前面的 慢启动

所以,我们有了TCP/2

TCP/2 的核心就是使用了多路复用技术,可以通过一个TCP连接发送多个请求。

怎么理解这个技术呢,就是有六堆货物,每堆货物有100个包裹。

http/1.1 在每一个车道上,每一次运送货物,都只能一个类型的。而且,还必须等这类型的货物运用完,才可以运送下一个类型。又因为1.1开启了长连接,就造成了有的车道占着茅坑不拉屎的现象。

http/2 只有一个车道,火力全开,混合运送。

这么一对比,好像http2.0不错,但是他也有缺陷,具体内容。我在下篇分析 http0.9 -http3.0 的文章给大家介绍。没错,就在等着你关注,瞅啥瞅。很快啊,微信搜索公众号 【聪明可爱小轩轩】,反手就是一个关注+点赞。

4、答疑过程

这是我的学弟对这道题目的回答,原谅我最近太忙,太累了。放了他的鸽子。
大家可以一起思考一下…
在这里插入图片描述

1、看待问题要分情况看待,就像这个问题,我们就需要考虑协议版本。

2、我们是浏览器向服务器请求,浏览器维护的TCP数量。而不是服务器可以维护多少个TCP,部分同学感觉会维护65535个(端口号),nginx只有一个80端口,难道并发只能维护一个?显然不是。

再说了,我们请求的时候,端口也没有动态的变,对吧!!!显然,这已经是另一个问题了,一台服务器,理论上,最大可以维护多少个TCP链接。如果,大家有兴趣,可以关注【聪明可爱小轩轩】,私信我。我会在后续给大家安排上。

3、一个标签页面,就是每个域名吗?域名是什么?是看请求头里面的origin字段,和打开多少个tab没有关系。

上面的文字,掺加了大量的个人思考,如果您有不同想法。希望您能私聊并赐教。

码字不易,如果您能关注,我将感激不尽。如果能点个赞,那就更好了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值