鱼C论坛

 找回密码
 立即注册
查看: 969|回复: 1

[庖丁解牛] 04 - 把数据包送达到主机的IP

[复制链接]
发表于 2020-2-7 08:53:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-2-7 21:34 编辑

上一讲介绍完 Chrome 的多线程架构。

本讲开始浏览器中常用到的协议部分。

在衡量 Web 页面性能的时候有一个重要的指标叫 FP(First Paint),是指:

从页面加载到首次开始绘制的时长。

这个指标直接影响了用户的跳出率,更快的页面响应意味着更多的 PV(page view,页面浏览量,或点击量)、更高的参与度,以及更高的转化率。

那什么影响 FP 指标呢?

其中一个重要的因素是网络加载速度

要想优化 Web 页面的加载速度,你需要对网络有充分的了解。

而理解网络的关键是要对网络协议有深刻的认识,不管你是使用 HTTP,还是使用 WebSocket,它们都是基于 TCP/IP 的~

如果你对这些原理有足够了解,也就清楚如何去优化 Web 性能,或者能更轻松地定位 Web 问题了。

在网络中,一个文件通常会被拆分为很多数据包来进行传输,而数据包在传输过程中又有很大概率丢失或者出错。

那么如何保证页面文件能被完整地送达浏览器呢?


IP:把数据包送达目的主机

数据包要在互联网上进行传输,就要符合网际协议(Internet Protocol,简称 IP)标准。

互联网上不同的在线设备都有唯一的地址,地址只是一个数字。

这和大部分家庭收件地址类似,你只需要知道一个家庭的具体地址,就可以往这个地址发送快递。

这样物流系统就能把物品送到目的地。

计算机的地址就称为 IP 地址。

访问任何网站实际上只是你的计算机向另外一台计算机请求信息。

如果要想把一个数据包从主机 A 发送给主机 B 。

那么在传输之前,数据包上会被附加上主机 B 的 IP 地址信息,这样在传输过程中才能正确寻址。

额外地,数据包上还会附加上主机 A 本身的 IP 地址,有了这些信息主机 B 才可以回复信息给主机 A 。

这些附加的信息会被装进一个叫 IP 头的数据结构里。

IP 头是 IP 数据包开头的信息,包含 IP 版本、源 IP 地址、目标 IP 地址、生存时间等信息。

IP 头不是本文重点,如果需要详细了解,请自行搜索

为了方便理解,我先把网络简化分为三层结构,如下图:

Snip20200207_217.png


一起来看下一个数据包从主机 A 到主机 B 的旅程:

  • 上层将含有“鱼C论坛”的数据包交给网络层
  • 网络层再将 IP 头附加到数据包上,组成新的 IP 数据包,并交给底层
  • 底层通过物理网络将数据包传输给主机 B
  • 数据包被传输到主机 B 的网络层,在这里主机 B 拆开数据包的 IP 头信息,并将拆开来的数据部分交给上层
  • 含有“鱼C论坛”信息的数据包就到达了主机 B 的上层了

下一讲我们来介绍 UDP 是如何把数据包送到应用程序滴。




如果有收获,别忘了评分


                               
登录/注册后可看大图


如果想看更多,请订阅 淘专辑传送门)(不喜欢更要订阅

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-7 09:28:18 | 显示全部楼层
沙发~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-6 03:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表