在本文中我会总结一些论文相关论文中关于网络中丢包的原因的论述.
网络中的丢包可以分为如下几个类型:
- 拥塞: 这个比较好理解, 就是交换机/路由器中多个端口向一个端口发送数据包, 最后导致数据包数量超过了这个端口的缓冲区的容量, 从而导致丢包. [1]
- 持续性的黑洞: 在交换机中, 和特定模式匹配的所有数据包都会丢失. 这种现象的成因是匹配-动作表的损毁或者控制器造成的转发规则配置错误. [1]
- 暂时性的黑洞: 在交换机中, 在一段较短的时间内, 和特定模式匹配的所有数据包都会丢失. 这种现象的成因是, 转发规则的非原子化更新, 或者网络级别的转发规则更新不一致. [1]
- 随机丢包: 交换机随机地但是持续性地丢包. 这种现象的成因是可能是线卡松动, 或者链路折损. [1]
在阿里巴巴的网络中, 超过60%的丢包是由流水线造成的 (比如路由黑洞, ACL规则, TTL为0, 数据包长度超过MTU, 等等), 拥塞导致的丢包占了10%左右, 链路折损等原因导致的线卡之间和交换机之间的丢包占了20%左右, 剩下的还有少量的丢包是由于ASIC芯片损毁产生的. [2]
参考文献
[1] Y. Li, R. Miao, C. Kim, and M. Yu, “LossRadar: Fast Detection of Lost Packets in Data Center Networks,” in CoNEXT, 2016, pp. 481–495.
[2] Y. Zhou et al., “Flow Event Telemetry on Programmable Data Plane,” in SIGCOMM, 2020, pp. 76–89.