HPBN

Networking 101

Primer on Latency and Bandwidth

Speed is a feature. 更快的页面响应速度能够提升

  1. 用户活跃度
  2. 用户留存
  3. 转化率

衡量性能的两个指标:延迟和带宽(吞吐量)

通信延迟的几个组成部分:

  1. 传播延迟(地理距离)
  2. 传输延迟(介质的传输速率,数据包的大小)
  3. 处理延迟(校验,编解码,处理)
  4. 排队延迟(包排队等待)

Bufferbloat和CoDel算法

  1. 很多tcp的拥塞控制算法依赖丢包率
  2. Bufferbloat降低了丢包率,增加了延迟
  3. CoDel算法可以对缓冲区包的延迟做限制

光纤中光的传播速度大概是真空中的70%。

按照光纤的传输速率,绕地球赤道一周需要200ms。

可察觉的延迟:100~200ms

CDN: 通过减少地理距离来降低延迟。

traceroute命令,原理,-q参数。

光纤的速度:400个不同波长,170Gbps,总的可以达到70Tbps,一般4条光纤组成一个cable,所以最高能达到280Tbps。

Akamai的报告: State of the Internet, average broadband speeds;2017 年数据:7.2Mbps, 44.6Mbps peek。

Building Blocks of TCP

1981年v4版本的TCP/IP发布。

TCP特性:可靠、准确,但不一定及时

  1. 在不可靠的介质和协议上进行可靠传输
  2. 丢包重传
  3. 有序传输
  4. 拥塞控制和避免
  5. 数据完整性保证

应用层所采用的方案能够代表传输性能。

TCP/IP的版本号历史:为什么是v4和v6,v1/2/3/5哪去了?

TCP握手意味着多1个rtt的延迟。

TCP Fast Open (TFO):

  • 客户端发送一个 Cookie Option
  • 服务器返回Cookie值,客户端缓存
  • 客户端使用Cookie发送数据时,服务端校验这个cookie是否有效,如果有效就绕过了三次握手,直接建立了连接

拥塞崩溃(congestion collapse):当一个包失败时,会重发这个包,导致网络上包的数量增加,各个节点缓冲区慢,导致更多的包失败,进而导致网络完全拥堵。(John Nagle RFC 896)

拥塞控制和拥塞避免

  1. 流控: rwnd, window scaling, 代表了接受方的处理速度和容量
  2. 慢启动,拥塞避免,快速重传,快速恢复:cwnd,慢启动意味着新的连接没办法最大化利用可用带宽
  3. slow start restart: keep alive的连接会被重置cwnd,同时也限制了发送带宽
  4. 丢包反馈,丢包会极大影响吞吐量。快速恢复算法的改进(PRR)

BDP: 发送窗口多大才能达到理想吞吐?带宽*延迟

2021-03-31 15:58:25 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-30 10:29:18 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 18:58:51 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 17:55:10 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 16:21:33 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 16:10:47 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 15:39:13 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 15:24:03 +0800 yajw Update 2021-03-29 HPBN.md M
2021-03-29 15:04:13 +0800 yajw Create 2021-03-29 HPBN.md A