• 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).

  • 相关阅读:
    簇索引与非簇索引在查询中的应用与分析(转载) dodo
    都是防火墙惹的祸:sqlserver连接服务器数据库提示注册失败 dodo
    C#中如何将字符串转换成流,同时如何将流转换成字符串? dodo
    dataType参数不能为空,未处理的“System.ArgumentNullException”类型的异常出现在 mscorlib.dll 中 dodo
    错误(Client does not support authentication protocol requested by server; consider upgrading MySQL client)? dodo
    php分页函数(转) dodo
    c#2.0匿名方法三(转) dodo
    ASP.NET 2.0 中改进的缓存功能(转) dodo
    解决apache服务器默认编码为西欧编码的问题 dodo
    常用的正则表达式 dodo
  • 原文地址:https://www.cnblogs.com/fenglt/p/8570343.html
Copyright © 2020-2023  润新知