zoukankan      html  css  js  c++  java
  • mptcp 路径管理中的fullmesh和 ndiffports以及subflows

    来源于文章“On the Path Management of Multi-Path TCP in Internet Scenarios based on the NORNET Testbed”(Wang K, Dreibholz T, Zhou X, et al. On the Path Management of Multi-path TCP in Internet Scenarios Based on the NorNet Testbed[C]// IEEE, International Conference on Advanced Information NETWORKING and Applications. IEEE, 2017:1-8.)

     

    In Linux MPTCP [15], the most state-of-the-art implementation of MPTCP, this decision is based on the configured path manager. Four path managers are currently provided by Linux

    MPTCP:

    1) “default”: This path manager actually does not do anything. It will neither announce different IP addresses nor initiate the creation of new subflows. However, it will accept the passive creation of new subflows.

    2) “fullmesh”: As the name already says, this path manager establishes the full mesh [16] of subflows.

    3) “ndiffports”: Instead of using multiple IP addresses, this path manager always uses the same IP-address pair for its paths. However, each path uses different source and destination TCP ports. This path manager is intended to circumvent bandwidth-limiting middleboxes by mimicking different TCP connections.

    4) “binder”: This path manager [23] is using Loose Source Routing [24] to distribute the packets of subflows. Using packet relays, it allows for applications on enduser devices to benefit from gateway aggregation without requiring any modifications.

    此外,官网(http://multipath-tcp.org/pmwiki.php/Users/ConfigureMPTCP)也指出:

    Configure the path-manager:

    We have a modular structure for the path-manager. At compile-time you can enable the path-managers through "MPTCP: advanced path-manager control" and select for example the full-mesh path-manager. If you do not select a path-manager, the host will not trigger the creation of new subflows, nor advertise alternative IP-addresses through the ADD_ADDR-option.

    At run-time, to select one of the compiled path-managers just set the sysctl net.mptcp.mptcp_path_manager. You have the choice between:

    'default': This path-manager actually does not do anything. The host won't announce different IP-addresses nor initiate the creation of new subflows. However, it will accept the passive creation of new subflows.

    'fullmesh': It will create a full-mesh of subflows among all available subflows. Since v0.90 it is possible to create multiple subflows for each pair of IP-addresses. Just set /sys/module/mptcp_fullmesh/parameters/num_subflows to a value > 1.

    New in v0.92: If you want to re-create subflows after a timeout (e.g., if the NAT-mapping was lost due to idle-time), you can set /sys/module/mptcp_fullmesh/parameters/create_on_err to 1.

    'ndiffports': This one will create X subflows across the same pair of IP-addresses, modifying the source-port. To control the number of subflows (X), you can set the sysfs /sys/module/mptcp_ndiffports/parameters/num_subflows to a value > 1.

    'binder': The path-manager using Loose Source Routing from the paper Binder: a system to aggregate multiple internet gateways in community networks.

    通过跑实验证明,fullmesh构建网络同论文图2所示,ndiffports构建网络如下图:

     

    (按照指定的IP地址对传输数据)

    而num_subflows的数目是指一个IP对的子流数目,可以取任何大于等于1的值。用实验测试,取到了20,仍然是可以的。

    --------------------------------------------------

    追加更新:发了这个文后,突然看到一篇文章,对路径管理解释的更清晰,文章为:王琨, 周星, 周峰,等. 基于MPTCP路径管理算法性能分析[J]. 海南大学学报(自然科学版)自然科学版, 2017, 35(3).

  • 相关阅读:
    全世界最好听的钢琴曲
    清华“70后”院长刘云浩——生命在于运动,梦想从未止步 | 新“清”年特辑
    Android---60---Notification 通知栏的简单使用
    面向对象的三大特性
    一道淘汰85%面试者的百度开发人员面试题?
    Linux下基于Erlang的高并发TCP连接压力实验
    2014南瑞暑期实习面试笔试经历
    Oracle cloud control 12c 怎样改动sysmanpassword
    JEECG社区 一个微信教育站点案例源代码分享
    stm32智能小车之路之小车启动
  • 原文地址:https://www.cnblogs.com/fenglt/p/8570343.html
Copyright © 2011-2022 走看看