PREFLEX:感知拥塞的流量工程平衡方案
1. 引言
在网络流量管理中,如何根据拥塞情况平衡流量是一个关键问题。PREFLEX 提供了一种架构,使传输层和网络层能够交换相关信息,以实现更高效的流量平衡。本文将详细介绍 PREFLEX 的工作原理、流量平衡模型以及性能分析。
2. 损失暴露(Loss Exposure)
损失暴露是一种机制,主机通过标记 IP 头在网络层传达传输语义,类似于 re - ECN。如果主机不支持 LEX,所有流量将被视为传统流量。对于支持 LEX 的流量,有三种可能的代码点,如下表所示:
| 代码点 | 含义 |
| ---- | ---- |
| Not - LECT | 不支持损失暴露的传输 |
| LECT | 支持损失暴露的传输 |
| LEx | 经历损失 |
| FNE | 反馈未建立 |
2.1 FNE 代码点
当路径上的反馈尚未建立时,主机设置 FNE 代码点,此时没有拥塞控制循环。这适用于流的第一个数据包,如 TCP SYN 包,或长时间空闲后的第一个数据包,如保活包。FNE 标记的是“流段”的开始,而不是流。流段是发送方不希望重新排序的一组数据包,由端主机决定如何以及何时将流量划分为流段。操作流段而非流,允许网络以更细的粒度和与传输无关的方式平衡流量。
2.2 LECT 和 LEx 代码点
这两个代码点用于信号路径损失。默认情况下,流量被标记为支持损失暴露。主机每次经历损失时,后续数据包将被标记为“经历损失”代码点。在可靠传输协议(如 TCP)中,这对应于相应地标记每个重传数据包,也