浏览器工作原理与实践
李兵
前盛大创新院高级研究员
56402 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 46 讲
浏览器工作原理与实践
15
15
1.0x
00:00/00:00
登录|注册

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

Transmission Control Protocol
用户数据包协议
网际协议
TCP
UDP
IP
互联网中的数据传输
TCP
UDP
IP
Web世界中的TCP/IP工作
思考时间
总结
数据包的“旅程”
TCP/IP
网络加载速度
FP(First Paint)
TCP协议
参考文章

该思维导图由 AI 生成,仅供参考

在衡量 Web 页面性能的时候有一个重要的指标叫“FP(First Paint)”,是指从页面加载到首次开始绘制的时长这个指标直接影响了用户的跳出率,更快的页面响应意味着更多的 PV、更高的参与度,以及更高的转化率。那什么影响 FP 指标呢?其中一个重要的因素是网络加载速度
要想优化 Web 页面的加载速度,你需要对网络有充分的了解。而理解网络的关键是要对网络协议有深刻的认识,不管你是使用 HTTP,还是使用 WebSocket,它们都是基于 TCP/IP 的,如果你对这些原理有足够了解,也就清楚如何去优化 Web 性能,或者能更轻松地定位 Web 问题了。此外,TCP/IP 的设计思想还有助于拓宽你的知识边界,从而在整体上提升你对项目的理解和解决问题的能力。
因此,在这篇文章中,我会给你重点介绍在 Web 世界中的 TCP/IP 是如何工作的。当然,协议并不是本专栏的重点,这篇文章我会从我的角度结合 HTTP 来分析网络请求的核心路径,如果你想对网络协议有更深入的理解,那我推荐你学习刘超老师的《趣谈网络协议》专栏,以及陶辉老师的《Web 协议详解与抓包实战》视频课程。
好,接下来我们回到正题,开始今天的内容。在网络中,一个文件通常会被拆分为很多数据包来进行传输,而数据包在传输过程中又有很大概率丢失或者出错。那么如何保证页面文件能被完整地送达浏览器呢?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

TCP协议在Web页面性能中扮演着关键角色,影响着页面加载速度和用户体验。本文从数据包的角度出发,详细介绍了数据包在网络中的传输过程。通过IP协议将数据包送达目的主机,再通过UDP协议将数据包送达应用程序。TCP协议保证了数据的可靠性和完整性,通过重传机制和数据包排序机制实现了这一点。文章深入探讨了TCP连接的建立、数据传输和断开连接三个阶段,以及TCP协议与HTTP协议的关系。深入理解TCP/IP协议有助于优化Web性能,提升对项目的理解和解决问题的能力。整体而言,本文内容详实,适合想深入了解网络协议的读者。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《浏览器工作原理与实践》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(93)

  • 最新
  • 精选
  • Dongz
    HTTP协议和TCP协议都是TCP/IP协议簇的子集。 HTTP协议属于应用层,TCP协议属于传输层,HTTP协议位于TCP协议的上层。 请求方要发送的数据包,在应用层加上HTTP头以后会交给传输层的TCP协议处理,应答方接收到的数据包,在传输层拆掉TCP头以后交给应用层的HTTP协议处理。建立 TCP 连接后会顺序收发数据,请求方和应答方都必须依据 HTTP 规范构建和解析HTTP报文。

    作者回复: 赞

    2019-08-08
    4
    235
  • sheldon
    现在的浏览器可以同时打开多个页签,他们端口一样吗?如果一样,数据怎么知道去哪个页签?

    作者回复: 端口一样的,网络进程知道每个tcp链接所对应的标签是那个,所以接收到数据后,会把数据分发给对应的渲染进程

    2019-08-09
    17
    95
  • Cris
    http 和 websocket都是属于应用层的协议吗?

    作者回复: 是的,他们都是应用层协议,而且websocket名字取的比较有迷惑性,其实和socket完全不一样,你可以把websocket看出是http的改造版本,增加了服务器向客户端主动发送消息的能力。

    2019-08-09
    53
  • 美美
    tcp传送数据时 浏览器端就做渲染处理了么?如果前面数据包丢了 后面数据包先来是要等么?类似的那种实时渲染怎么处理?针对数据包的顺序性?

    作者回复: 接收到http响应头中的content-type类型时就开始准备渲染进程了, 响应体数据一旦接受到便开始做DOM解析了! 基于http不用担心数据包丢失的问题,因为丢包和重传都是在tcp层解决的。http能保证数据按照顺序接收的!

    2019-08-08
    3
    48
  • 高斯定律
    这个tcp讲的非常清晰 一次就听明白了、tcp是个梯子,http就是利用梯子来搬运货物

    作者回复: 有点形象

    2019-08-08
    3
    35
  • 黄紫茜
    我想问下,输入url回车后理论上是不是生成http请求报文,然后传给TCP,加上TCP首部,然后进行三次握手,将http请求报文数据传递,四次挥手,请求报文到达服务端,然后服务端在返回响应报文,返回到过程也是要三次握手,传递数据,四次挥手?因为网上看到不少文章都说先三次握手,然后发起http请求。

    作者回复: 先通过三次握手建立tcp链接,链接建立好之后,发送http请求行和http请求头给服务器,然后服务器返回响应行,响应头和响应体,最终完成后通过四次挥手断开tcp链接!

    2019-08-22
    3
    30
  • hogger
    我记得在网络工程里有一句话,下层为上层提供服务,TCP为HTTP提供差错校验,超时重传的机制吧.

    作者回复: 下层为上层提供服务,这句很到位

    2019-08-08
    2
    24
  • 我是辣妈
    1、IP 负责把数据包送达目的主机。 2、UDP 负责把数据包送达具体应用。 3、而 TCP 保证了数据完整地传输,它的连接可分为三个阶段:建立连接、传输数据和断开连接。 老师,这里面第二条,UDP和TCP都是把数据包送达具体应用应用的吧?

    作者回复: 对的,只不过udp有可能会丢包,而tcp采用了很多复杂的机制,保证了数据的完整性

    2019-08-10
    3
    19
  • Cris
    老师,tcp和udp都是传输层协议,这两个是同时存在还是只能选其一,我看了这期感觉是选其一?

    作者回复: 二选一

    2019-09-02
    2
    14
  • 尔冬橙
    老师,那我打开谷歌浏览器里面开了10个页面,那就是至少有40个进程?windows下我控制面板里能看到40个google.exe?插件进程页面间能公用么

    作者回复: 不用这么多啊,浏览器进程 网络进程,GPU进程都是共同的,你打开十个页面一般也就十几个进程。

    2019-08-26
    3
    13
收起评论
显示
设置
留言
93
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部