Closed leslieqwq closed 3 months ago
如果是用 iptables / nftables 的 NAT 功能做的端口转发(第三层转发), 那通常仍然是有作用的。
如果是用 iptables / nftables 的 NAT 功能做的端口转发(第三层转发), 那通常仍然是有作用的。
如果用任意门这种就没用了是吗,中转鸡的bbr会介入
如果是传输层或者应用层转发的话, 那么整个传输路径实际上是要作为两部分考虑。
例如下面这种节点设计, A 是代理服务器, B 是国内中转机, C 是代理客户端。
A ==brutal== B ==bbr== C
这里假设 A-B 这一段由于经过国际出口, 丢包和延迟都比较高, 而 B-C 作为国内段丢包和延迟都低, 在这种情况下 brutal 仍然能有效地起到提升体验的作用。
核心思路是要将 brutal 用在整个传输路径中丢包和延迟表现最糟糕一部分上。
如果是传输层或者应用层转发的话, 那么整个传输路径实际上是要作为两部分考虑。
例如下面这种节点设计, A 是代理服务器, B 是国内中转机, C 是代理客户端。
A ==brutal== B ==bbr== C
这里假设 A-B 这一段由于经过国际出口, 丢包和延迟都比较高, 而 B-C 作为国内段丢包和延迟都低, 在这种情况下 brutal 仍然能有效地起到提升体验的作用。
核心思路是要将 brutal 用在整个传输路径中丢包和延迟表现最糟糕一部分上。
如果是第三层转发的话,那么流程是怎么样的
如果是 iptables 或者 nftables 的 NAT 的话, 那么中转机等同于是链路上的一个第三层路由器。
这种情况下中转机只转发 IP 数据包(以及修改 IP 地址、传输层的端口、根据修改修正 checksum), 不参与 TCP 层的确认、 重传, 整个传输路径的 TCP 栈与中转机无关, 也就是说中转机自身的拥塞控制算法设置(net.ipv4.tcp_congestion_control
)对经由 iptables / nftables NAT 的数据包无效。
如果是 iptables 或者 nftables 的 NAT 的话, 那么中转机等同于是链路上的一个第三层路由器。
这种情况下中转机只转发 IP 数据包(以及修改 IP 地址、传输层的端口、根据修改修正 checksum), 不参与 TCP 层的确认、 重传, 整个传输路径的 TCP 栈与中转机无关, 也就是说中转机自身的拥塞控制算法设置(
net.ipv4.tcp_congestion_control
)对经由 iptables / nftables NAT 的数据包无效。
明白了,感谢大佬,讲得很透彻
rt