chrome为什么是4个进程和Tcp相关

01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?

在这里插入图片描述

从图中可以看出,最新的 Chrome 浏览器包括:1 个浏览器(Browser)主进程、1 个 GPU 进程、1 个网络(NetWork)进程、多个渲染进程和多个插件进程。

下面我们来逐个分析下这几个进程的功能。

浏览器进程。主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。

渲染进程。核心任务是将 HTML、CSS 和 JavaScript 转换为用户可以与之交互的网页,排版引擎 Blink 和 JavaScript 引擎 V8 都是运行在该进程中,默认情况下,Chrome 会为每个 Tab 标签创建一个渲染进程。出于安全考虑,渲染进程都是运行在沙箱模式下。

GPU 进程。其实,Chrome 刚开始发布的时候是没有 GPU 进程的。而 GPU 的使用初衷是为了实现 3D CSS 的效果,只是随后网页、Chrome 的 UI 界面都选择采用 GPU 来绘制,这使得 GPU 成为浏览器普遍的需求。最后,Chrome 在其多进程架构上也引入了 GPU 进程。

网络进程。主要负责页面的网络资源加载,之前是作为一个模块运行在浏览器进程里面的,直至最近才独立出来,成为一个单独的进程。
插件进程。主要是负责插件的运行,因插件易崩溃,所以需要通过插件进程来隔离,以保证插件进程崩溃不会对浏览器和页面造成影响。

未来面向服务的架构

为了解决这些问题,在 2016 年,Chrome 官方团队使用“面向服务的架构”(Services Oriented Architecture,简称SOA)的思想设计了新的 Chrome 架构。也就是说 Chrome 整体架构会朝向现代操作系统所采用的“面向服务的架构” 方向发展,原来的各种模块会被重构成独立的服务(Service),每个服务(Service)都可以在独立的进程中运行,访问服务(Service)必须使用定义好的接口,通过 IPC 来通信,从而构建一个更内聚、松耦合、易于维护和扩展的系统,更好实现 Chrome 简单、稳定、高速、安全的目标。如果你对面向服务的架构感兴趣,你可以去网上搜索下资料,这里就不过多介绍了。

Chrome 最终要把 UI、数据库、文件、设备、网络等模块重构为基础服务,类似操作系统底层服务,下面是 Chrome“面向服务的架构”的进程模型图:

在这里插入图片描述
在这里插入图片描述

02 | TCP协议:如何保证页面文件能被完整送达浏览器?

1、IP 负责把数据包送达目的主机。
数据包要在互联网上传输要符合网际协议标准(ip)地址;
ip地址是唯一的
访问任何互联网只是你的计算机向其他计算机请求信息;
如果把数据包从主机A传输到主机B,那么在数据传输之前,数据包要携带主机B的ip地址信息,这样就能够正确的寻址了,数据包里还要存放主机A的ip地址,有了这些信息,主机B才能回复主机A,这些附加的信息会放到IP头里,ip地址头 包含原ip,目标ip,生存时间,ip版本等;

1.上层的数据包交给网络层
2. 通过网络层 附加ip头等信息,组成新的ip数据包,并交给底层;
3. 底层把数据交给主机B
4. 主机B拆开Ip数据包,把数据部分交给上层,
5. 最后主机B的就有上层的数据了;

2、UDP 负责把数据包送达具体应用。
ip是负责把数据传送给对方的电脑,对方的电脑并不知道,把数据交给哪个程序,这时候有udp协议;
udp最重要的信息是端口号,每个绑定的程序都有一个端口号,端口号把指定数据包交给应用程序;

6.主机B拆的IP数据包,拆出来的数据部分,交给了传输层
7.在传输层中,数据包中的UDP头被拆开,并根据端口好,传输给相应的应用程序

(在使用 UDP 发送数据时,有各种因素会导致数据包出错,虽然 UDP 可以校验数据是否正确,但是对于错误的数据包,UDP 并不提供重发机制,只是丢弃当前的包,而且 UDP 在发送之后也无法知道是否能达到目的地。
虽说UDP 不能保证数据可靠性,但是传输速度却非常快,所以 UDP 会应用在一些关注速度、但不那么严格要求数据完整性的领域,如在线视频、互动游戏等。

3、而 TCP 保证了数据完整地传输,它的连接可分为三个阶段:建立连接、传输数据和断开连接。

在这里插入图片描述
在这里插入图片描述
1.首先建立连接
建立连接通过三次握手建立客户端和服务端之间的通信,TCP提供面向连接提供数据即三次握手,三次握手客户端与服务端发送三个数据包确认连接的建立;
2. 传输数据阶段 传输数据阶段会对每个数据包进行确认,接收端收到数据后,会给发送端传递数据,确认数据的接收,当发送端在确定的时间内没有收到数据,就会判断为数据丢失,会触发重发机制,一个大的数据会被拆分出好多小的数据包,接收端收到数据后,会根据TCP头部中的序号排序;
3. 断开连接 四次挥手说拜拜

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值