toBeTheLight.github.io 荒原

阅读:《Web性能权威指南》(1)延迟、TCP

2018-01-23
toBeTheLight

第一章 延迟和带宽

  • 延迟:消息或分组从信息源发送到目的地所需的时间。
  • 带宽:逻辑或物理通信路径最大的吞吐量。

延迟组成

  1. 传播延迟:消息从发送端到接收端需要的时间。
  2. 传输延迟:消息中所有比特转移到链路中所需时间。
  3. 处理延迟:处理分组首部、检查位错误及确定分组目标所需的时间。
  4. 排队延迟:到来的分组排队等待处理的时间。

优化

从设计和优化协议及应用着手,并且牢记光速限制。可以减少数据往返、把数据部署到接近客户端的地方(CDN),以及在开发应用时通过各种技术隐藏延迟。

第二章 TCP的构成

因特网有两个核心协议:

  1. IP:负责联网主机之间的路由选择和寻址。
  2. TCP:负责在不可靠的传输信道之上提供可靠的抽象层。

TCP对精确传输做了优化,但并未过多顾及时间。需要注意的是TCP并非是HTTP标准的唯一传输协议。

三次握手(三个数据包)

所有TCP连接一开始都要经过三次握手
几个概念:

  1. tcp标志位
    • SYN:建立联机
    • ACK:确认
    • PSH:传送
    • FIN:结束
    • RST:重置
    • URG:紧急
  2. 其他
    • seq(Sequence number):顺序号码
    • ack(Acknowledge number):确认号码
  3. 过程
    1. 客户机发送位码SYN=1,随机数seq=x,其他TCP标志和选项(包1)。
    2. 服务器收到后,置位码SYN和ACK为1,和ack(number) = x+1,随机数seq=y一并发送(包2)。
    3. 客户机检查ack(number)等于x+1,ACK等于1后,置ACK=1,和ack(number)=y+1发送至服务器(包3)。
    4. 服务器检查ack(number)等于y+1,ACK等于1,建立连接。

由于短TCP连接随处可见,所以握手阶段是影响网络总延迟的一个重要因素。

拥塞预防及控制

拥塞是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象。

流量控制

流量控制是一种预防发送端向接收端发送过多数据的一种机制。为实现流量控制,TCP连接的每一方都要通告自己的接收窗口rwnd(相关:滑动窗口),其中包含能够保存数据的缓冲区空间大小的信息。
第一次建立连接时,双端都会使用自身系统的默认设置来发送rwnd。

慢启动


Content