TCP协议(浏览器工作原理学习-课2)

441 阅读3分钟

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

FP(First Paint)是指从页面加载到首次开始绘制的时长

互联网,实际上是一套理念和协议组成的体系架构

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

    1. 计算机的地址就称为 IP 地址,访问任何网站实际上只是你的计算机向另外一台计算机请求信息
  • UDP:把数据包送达应用程序 UDP 通过端口号把数据包分发给正确的程序

    • UDP 不能保证数据可靠性,但是传输速度却非常快
  • TCP:把数据完整地送达应用程序

    • TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议
    • 数据包丢失的情况,TCP 提供重传机制;
    • TCP 引入了数据包排序机制,用来保证把乱序的数据包组合成一个完整的文件
    • 提供了用于排序的序列号,以便接收端通过序号来重排数据包
  • 一个完整的 TCP 连接的生命周期包括了“建立连接”“传输数据”和“断开连接”三个阶段

    • 首先,建立连接阶段 “三次握手”来建立客户端和服务器之间的连接

      • 所谓三次握手,是指在建立一个 TCP 连接时,客户端和服务器总共要发送三个数据包以确认连接的建立
    • 其次,传输数据阶段

    • 最后,断开连接阶段 最后一个阶段“四次挥手”来保证双方都能断开连接

    • TCP 为了保证数据传输的可靠性,牺牲了数据包的传输速度,因为“三次握手”和“数据包校验机制”等把传输过程中的数据包的数量提高了一倍

总结

  • 互联网中的数据是通过数据包来传输的,数据包在传输过程中容易丢失或出错。
  • IP 负责把数据包送达目的主机。
  • UDP 负责把数据包送达具体应用。
  • TCP 保证了数据完整地传输,它的连接可分为三个阶段:建立连接、传输数据和断开连接。
  • 其实了解 TCP 协议,是为了全方位了解 HTTP,包括其实际功能和局限性,之后才会更加深刻地理解为什么要推出 HTTP/2,以及为什么要推出 QUIC 协议,也就是未来的 HTTP/3。

问题: 你怎么理解 HTTP 和 TCP 的关系?

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

文章内容来自极客时间