Internet DRAFT - draft-mrc-banana-considerations
draft-mrc-banana-considerations
Homenet Working Group M. Cullen
Internet-Draft Painless Security
Intended status: Informational M. Zhang
Expires: April 21, 2016 Huawei Technologies
October 19, 2015
Considerations for Bandwidth Aggregation
draft-mrc-banana-considerations-00
Abstract
This document lists a number of architectural and technical topics
that should be considered in the design and implementation of
Bandwidth Agregation mechanisms.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 21, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Cullen & Zhang Expires April 21, 2016 [Page 1]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. What is Bandwidth Aggregation? . . . . . . . . . . . . . . . 3
3. Taxonomy of Solutions . . . . . . . . . . . . . . . . . . . . 3
3.1. Tunnel-Based Solutions . . . . . . . . . . . . . . . . . 3
3.2. Per-Packet vs. Per-Flow Multiplexing . . . . . . . . . . 3
4. Considerations for All Solutions . . . . . . . . . . . . . . 4
4.1. Link Characteristics and Performance . . . . . . . . . . 4
4.2. Bypass Traffic . . . . . . . . . . . . . . . . . . . . . 4
4.3. Capped or Tariffed Interfaces . . . . . . . . . . . . . . 4
4.4. Learning from History (Multilink PPP) . . . . . . . . . . 4
5. Considerations for Tunnel-Based Solutions . . . . . . . . . . 5
5.1. Tunnel Overhead . . . . . . . . . . . . . . . . . . . . . 5
5.2. MTU Issues . . . . . . . . . . . . . . . . . . . . . . . 5
5.2.1. Fragmentation Issues . . . . . . . . . . . . . . . . 5
5.2.2. Issues with MTU Changes . . . . . . . . . . . . . . . 5
6. Considerations for Per-Packet Solutions . . . . . . . . . . . 5
6.1. Packet Ordering . . . . . . . . . . . . . . . . . . . . . 5
6.2. Transport Layer Algorithms . . . . . . . . . . . . . . . 5
7. Considerations for Per-Flow Solutions . . . . . . . . . . . . 6
7.1. Granularity Issues . . . . . . . . . . . . . . . . . . . 6
7.2. Aggregated Flows . . . . . . . . . . . . . . . . . . . . 6
7.3. Encrypted Traffic . . . . . . . . . . . . . . . . . . . . 7
8. Practical Considerations . . . . . . . . . . . . . . . . . . 7
8.1. Use Available Information . . . . . . . . . . . . . . . . 7
8.2. Theory is No Substitute for Experience . . . . . . . . . 7
9. Security Considerations . . . . . . . . . . . . . . . . . . . 7
9.1. Binding Tunnel Endpoints . . . . . . . . . . . . . . . . 7
10. Appendix A: List of Solutions . . . . . . . . . . . . . . . . 7
10.1. Multilink PPP . . . . . . . . . . . . . . . . . . . . . 8
10.2. GRE Tunnel Binding . . . . . . . . . . . . . . . . . . . 8
10.3. LISP-Based Solution . . . . . . . . . . . . . . . . . . 8
10.4. MIP-Based Solution . . . . . . . . . . . . . . . . . . . 8
10.5. MP-TCP-Based Solution . . . . . . . . . . . . . . . . . 8
11. Informative References . . . . . . . . . . . . . . . . . . . 8
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction
There are currently several bandwidth aggregation solutions being
discussed within the IETF or other parts of the Internet industry.
This document discusses a number of technical and architectural facts
that should be considered in the design and implementation of those
solutions. This document is intended to provide useful information
to the community, not to state requirements or advocate for a
particular solution.
Cullen & Zhang Expires April 21, 2016 [Page 2]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
There is one simple thought underlying many of the considerations in
this document: the goals of bandwidth aggregation are to increase the
effective bandwidth available to customers and improve the
reliability of customers' Internet access by using all of the
available links, not just one of them. Intuitively, two links should
have more bandwidth and reliability than one link, but experience
shows that it is actually quite hard to design a bandwidth
aggregation solution that will achieve the desired goals in all
cases, and quite easy to design a solution that will reduce the
effective bandwidth or decrease the reliability of Internet access in
an unacceptably high number of cases. Many of the considerations in
this document are intended to point out why that happens, so that
solutions and implementations can avoid known pitfalls in this area.
[Note: This document is a work in progress. Feedback on the existing
content is welcome, as well as feeback on other considerations that
should be included. Please send any feedback to the Bandwidth
Aggregation mailing list: banana@ietf.org]
2. What is Bandwidth Aggregation?
[TBD]
3. Taxonomy of Solutions
This section attempts to catergorize bandwidth aggregation solutions
along several axes, providing a taxonomy tbat we can use to describe
and reason about individual solutions. [Note: This section is
largely TBD.]
3.1. Tunnel-Based Solutions
Many of the Bandwidth Aggregations currently under discussion are
tunnel-based solutions. They tunnel traffic over the links that are
being aggregated, and recombine the traffic on the remote end.
[Insert ASCII image of tunnel-based approach.]
There is at least one proposal for Bandwith Aggregation (the MP-TCP-
based approach) that does not use tunnels. The considerations for
tunnel-based solutions listed below may not apply to non-tunnel-based
solutions.
3.2. Per-Packet vs. Per-Flow Multiplexing
The solutions currently under discussion use several different
methods to determine which traffic will be sent over which interface.
Cullen & Zhang Expires April 21, 2016 [Page 3]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
These methods can be grouped into two categories: per-packet
multiplexing and per-flow multiplexing.
Per-packet multiplexing aggregates the bandwidth by sending the
desired proportion of packets over each interface. In these
solutions, packets from single flow (such as a TCP connection) may be
split across multiple interfaces and will need to be recombined at
the remote end. However, the ability to multiplex on a per-packet
basis makes it possible to most precisely apportion traffic across
the available bandwidth.
Per-flow multiplexing involves choosing a single interface for each
flow (i.e. TCP connection or application session) and sending all of
the packets for a single flow across that interface. In these
solutions, the flow do not need to be combined on the remote end.
However, the ability to balance traffic between multiple links may be
limited if there are only a small number of traffice flows active.
4. Considerations for All Solutions
This section desribes potential issues that should be considered in
the design and implementation of all bandwidth aggregation solutions.
4.1. Link Characteristics and Performance
4.2. Bypass Traffic
4.3. Capped or Tariffed Interfaces
In some cases, bandwith aggregation may be performed between
dedicated links and links that have traffic caps or tarifs associated
with additional use. In these cases, customer may want to use
bandwidth aggregation to increase the performance of some
applications, while other applications (e.g. firmware upgrades or
content downloads) may be limited to using the dedicated link.
Solutions that wish to support this capability will need to support
having a set of traffic that will be distributed using the bandwidth
aggregation algorithms, and a set of traffic that will not.
4.4. Learning from History (Multilink PPP)
The IETF has a venerable, standard, implemented solution to this sort
of problem: Multilink PPP. Unfortunately, it is commonly said that
experience with Multilink PPP did not find that it increased the
effective bandwidth when it was used to share two indentical ISDN
lines, compared to the bandwidth that was achieved from using only
one line...
Cullen & Zhang Expires April 21, 2016 [Page 4]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
[Note: We should attempt to determine if this is true and, if so,
find any research papers or other documentation that might help us
understand why this was true, so that we might learn from history.]
5. Considerations for Tunnel-Based Solutions
5.1. Tunnel Overhead
Tunneling involves more overhead than sending non-tunnelled traffic
for two reasons: the extra IP and tunnel headers that must be
included in each packet, and any tunnel management traffic that must
be exchanged. This means that, in order to achieve increased
effective bandwidth by aggregating traffic across more than one link,
the raw bandwidth across multiple links must be higher than the
bandwidth on a single link by a large enough margin to compensate for
the tunnel overhead, so that increased effective bandwidth will
result.
5.2. MTU Issues
There are a number of MTU Issues associated with all tunneling
mechanisms, and there is a different set of MTU issues associated
with any mechanism that changes the MTU of packets within a given
flow.
[Note: This section is TBD.]
5.2.1. Fragmentation Issues
5.2.2. Issues with MTU Changes
6. Considerations for Per-Packet Solutions
6.1. Packet Ordering
6.2. Transport Layer Algorithms
There are transport layer congestion control algorithms implemented
in every TCP/IP stack. It is the purpose of these algorithms to ramp
up the speed of a TCP connection slowly, and to back off at the first
sign of congestion (i.e. packet loss). There are also algorithms
which are designed to detect packet loss as quickly as possible by
analyzing the protocol round-trip times, and deciding that a packet
has been lost whenever there is a longer delay than expected before
an acknowledgement is received. Per-packet solutions run the risk of
interacting pathologically with these algorithms.
Cullen & Zhang Expires April 21, 2016 [Page 5]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
For example, if traffic from a single flow is being demultiplexed
across two links with significantly different round-trip times (i.e.
differnt latencies), the TCP retransmission algorithms may be
triggered for packets that traverse the higher latency link. This
may cause the TCP congestion control algorithms to inaccurately
detect congestion (even when neither link is congested) and slow down
the speed of the TCP connetion. In these cases, the throughput of
each TCP connection may be reduced, thus reducing the performance of
a customer's applications to the point where their applicaitons would
have run faster over a single link.
This problem can potentially be avoided by avoiding aggregation of
links with significantly different latencies. However, it may be
desirable to perform bandwidth aggregation across those links in some
cases.
7. Considerations for Per-Flow Solutions
This section describes some potential issues that should be
considered in the design of per-flow bandwidth aggregation solutions.
7.1. Granularity Issues
Per-Flow demultiplexing is in widespread use for traffic engineering
and load balancing in carrier and corporate networks. Within those
networks, there are a very large number of flows, so being able to
direct traffic on a per-flow basis will generally be sufficient to
achieve acceptable load-balancing or link aggregation.
However, the number of flows generated by a single home or small
office might not provide sufficient granularity to achieve the desire
level of bandwidth aggregation. Also some flows, such as streaming
video flows, might use far more bandwidth than other, such as
downloading a single image on a web page. It is not always possible
to predict which flows will be high-bandwidth flows, and which will
require less bandwidth.
7.2. Aggregated Flows
Some Internet flows are aggregated into single, larger flows at the
end-nodes. This would include VPN traffic that is tunnelled to a
corporate intranet, or other tunnelled traffic such as Teredo traffic
for IPv6. Use of these mechanisms can prevent proper classification
of traffic into separate flows, thus exacerbating the granularity
issues described above.
Cullen & Zhang Expires April 21, 2016 [Page 6]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
7.3. Encrypted Traffic
In some cases such as secure VPN traffic, the contents of packets may
be encrypted in a way that does not allow a middlebox to see the
transport-layer flow inforamtion (such as TCP or UDP ports). In
these cases, it might not be possible to properly separate multiple
flows between a single set of endpoints. This can exacerbate the
granularity issues described above.
8. Practical Considerations
8.1. Use Available Information
In many of the environments in which these mechanisms will be
deployed, there is already considerable informaiton available about
link quality, lost packets, traffic loads and effective bandwidth.
It is possible to use that information to actively tune a bandwidth
aggregation solution to achieve optimal effective bandwidth. This
information can also be used to detect situations in which the link
quality of a secondary link is not sufficient to provide enough
additional bandwidth to compensate for the bandwidth aggregation
overhead.
8.2. Theory is No Substitute for Experience
Because of the complexity of the algorithms implemented at multiple
layers of the TCP/IP Stack, many things that would appear to work in
theory or in limited simulation do not have the expected results when
deployed in a real-world environment. Therefore, it would be highly
desirable to have real-world experience running a bandwidth
aggregation mechanism in an operational network before standardizing
it within the IETF.
9. Security Considerations
9.1. Binding Tunnel Endpoints
10. Appendix A: List of Solutions
This is a (possibly incomplete) list of current or proposed solutions
for Bandwidth Aggregation. The descriptions in this section (when
present) were provided by the proponents of each solution. This list
is provided only as a source of information about possible solutions,
not as a recommendation for or against any of these solutions.
[Note: Insert information from Google Doc in this section.]
Cullen & Zhang Expires April 21, 2016 [Page 7]
Internet-Draft Considerations for Bandwidth Aggregation October 2015
10.1. Multilink PPP
10.2. GRE Tunnel Binding
10.3. LISP-Based Solution
10.4. MIP-Based Solution
10.5. MP-TCP-Based Solution
11. Informative References
[RFC6126] Chroboczek, J., "The Babel Routing Protocol", RFC 6126,
DOI 10.17487/RFC6126, April 2011,
<http://www.rfc-editor.org/info/rfc6126>.
Authors' Addresses
Margaret Cullen
Painless Security
14 Summer Street, Suite 202
Malden, MA 02148
USA
Phone: +1 781 405-7464
Email: margaret@painless-security.com
URI: http://www.painless-security.com
Mingui Zhang
Huawei Technologies
Email: zhangmingui@huawei.com
Cullen & Zhang Expires April 21, 2016 [Page 8]