多路径 TCP 连接可以使用 2 个不同的子流进行数据包交换吗?

网络工程 通讯协议 第4层
2021-07-08 11:09:39

只是想知道您是否启用了两端 mptcp,并说客户端有 2 个接口 eth0 和 eth1,如果我正确理解 mptcp 的工作原理(取决于路由表),它将创建 2 个不同的子流到服务器。如果是这样,客户端可以在 eth0 上发送 SYN,并从服务器在 eth1 上获得 SYN-ACK 吗?

2个回答

不。

在 SYN 中,客户端不提供有关其其他 ip 地址的任何信息,因此服务器只知道用作 SYN 源的 ip 地址,因此它只能响应该 ip 地址。维基百科有一篇很好的文章介绍了它是如何工作的,包括这种视觉表示。

客户端决定何时创建子流。

每个子流都有一个单独的三向握手。当客户端从一个 IP 地址发送一个 syn 时,它希望将 Syn-ack 发送回同一个 IP 地址。

一旦建立了子流,数据包就可以根据网络性能和本地策略的规定在不同的子流上发送(例如,客户端可能认为不同的连接具有不同的成本)。