首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MPTCP中进行数据包重新排序,以及它如何影响性能?

如何在MPTCP中进行数据包重新排序,以及它如何影响性能?
EN

Server Fault用户
提问于 2017-05-18 16:20:50
回答 1查看 495关注 0票数 1

我试图了解MPTCP如何区别于运行在多条路径上的“正常”TCP实现。

具体来说,我想知道TCP的最佳影响是否比MPTCP实现对数据包重新排序的鲁棒性更弱。

我遇到了两个有趣的消息来源,第一个是TCP Linux中数据包重排序的分析。它描述了TCP实现如何多多少少有效地处理重新排序的各种方法。这不是关于MPTCP的,而是多路径上的TCP!本文重点介绍了一种有趣的策略,显然是在默认的linux解决方案中实现的(有趣的是,也使用在更实验性的TCP Westwood实现中)(在这里,我所说的“有趣的策略”是使用DSACKs来区分重排序数据包和丢包之间的区别)。

不过,奇怪的是,后者将Linux解决方案与MPTCP进行了比较,并得出结论: MPTCP的效率较低。不过,这超过了每秒兆字节的低带宽。MPTCP的吞吐量非常稳定,但总体上比Linux效率低。

现在,我已经看过2012年年MPTCP性能分析,它在一些地方表明,当流量通过具有非常不同的RTT(这是数据包重排序的典型情况)的链路时,MPTCP会受到很大的影响,还有千兆字节容量的链接。

现在我的问题是..。MPTCP是如何和在哪里重新排序的?MPTCP将自己描述为为每个单独的链接创建子流,其中子流本质上是一个小TCP连接。我不明白的是,如果MPTCP在每个单独的流上验证其数据包的到达顺序,那么它怎么还会受到数据包重新排序的影响呢?

我的直觉是,当子流“合并”时,可能需要重新排序数据包,但是不应该混淆数据包是丢失的还是简单的延迟(无序),这意味着不应该因为无序的pakcet而出现显着的性能损失。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2017-05-19 13:39:30

我在这份MPTCP文件中找到了一个足够的答案。本质上,MPTCP对“总体”流以及每个流都有一个顺序顺序。这意味着,从理论上讲,MPTCP在重新排序方面不应该比TCP具有优势。

MPTCP接收机使用连接层序列号对来自不同SubFlows顺序(sic)的数据流进行重新组装,将它们传递给应用层序列(sic)。因此,MPTCP使用数据序列映射(DSM)在两个序列间隔之间进行转换。DSM可以在图1中清楚地描述,例如,数据包(5-S2)有一个等于5的数据序列号和一个子流序列号等于2。到达分组被认为是序列内的当且仅当子流序列和数据序列都是预期的。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/850940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档