RFC 6646
DECoupled Application Data Enroute (DECADE) Problem Statement
DECADE Problem Statement π (RFC 6646)
okay bestie, this is RFC 6646, titled "DECoupled Application Data Enroute (DECADE) Problem Statement" π. It's published as Informational (so it's a "here's the problem" doc, not a "you must implement this" doc) and dated July 2012. The ISSN is 2070-1721 β¨.
The authors are H. Song, N. Zong (both from Huawei), Y. Yang (Yale University), and R. Alimi (Google) π«Ά. The header doesn't list any RFCs that it obsoletes or updates, so it's standing on its own π¦.
Abstract
okay so peer-to-peer (P2P) apps are everywhere now and they make up a huge chunk of traffic on lots of networks π. One way to cut down on the transit and uplink P2P traffic is to put storage inside the network itself π§. Traditional caches (like P2P caches and Web caches) do provide that storage, BUT they can be super complicated (P2P caches have to explicitly support each individual P2P application protocol π), and they don't let users manage resource usage policies for the content sitting in the cache π. This doc talks about bringing in-network storage to P2P apps and shows why we need a standard protocol to access that storage π .
Status of This Memo
this one is not an Internet Standards Track spec, it's just published for info purposes πΈ.
It IS a product of the Internet Engineering Task Force (IETF) though, so it represents the consensus of the IETF community β¨. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) π₯. Not every IESG-approved doc is a candidate for any level of Internet Standard, see Section 2 of RFC 5741 π.
If you want the current status, any errata, or a way to send feedback, go to http://www.rfc-editor.org/info/rfc6646 π.
Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved π.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the publication date π. Please actually read these, because they lay out your rights and restrictions for this doc π. Any Code Components pulled out of this doc have to include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in that license π
.
Table of Contents
1. Introduction ....................................................2
2. Terminology and Concepts ........................................3
3. The Problems ....................................................4
3.1. P2P Infrastructural Stress and Inefficiency ................4
3.2. P2P Cache: A Complex Type of In-Network Storage ............5
3.3. Ineffective Integration of P2P Applications ................6
4. Usage Scenarios .................................................6
4.1. BitTorrent .................................................6
4.2. Content Publisher ..........................................7
5. Security Considerations .........................................8
5.1. Denial-of-Service Attacks ..................................8
5.2. Copyright and Legal Issues .................................8
5.3. Traffic Analysis ...........................................8
5.4. Modification of Information ................................8
5.5. Masquerade .................................................9
5.6. Disclosure .................................................9
5.7. Message Stream Modification ................................9
6. Acknowledgments .................................................9
7. Informative References .........................................10
1. Introduction β¨
okay so P2P apps, both P2P streaming and P2P file-sharing, make up a big fraction of the traffic on lots of Internet Service Provider (ISP) networks today πΆ. One way to lower the bandwidth that P2P apps eat is to add storage capabilities inside the networks π«Ά. If P2P apps can store and retrieve data from inside the network, that can cut traffic on the last-mile uplink, plus traffic on backbone and transit links π.
Existing P2P caches already do in-network storage and have been deployed in some networks πΈ. BUT the current P2P caching setup is rough for both P2P cache vendors and P2P app developers π. For vendors, it's hard to keep up with a bunch of P2P app protocols that keep evolving, because the docs are lacking, the protocols keep changing, and apps keep dropping new features π. For app developers, closed P2P caching systems stop apps from using in-network storage well π. Mainly, P2P caches usually don't let users explicitly store content into in-network storage π. They also don't let apps specify resource and access control policies for how that in-network storage gets used π . If these challenges aren't fixed, P2P apps can get less efficient and the network infrastructure can take on more load π₯.
The good news is that a standard, open protocol for accessing in-network storage can fix this [Data_Lockers] π¦. With it, P2P apps can store and retrieve content in the in-network storage and also control the resources (like bandwidth and connections) that peers in a P2P app consume β¨. As a simple example, a peer in a P2P app can upload to other peers through its in-network storage, which saves its last-mile uplink bandwidth π§.
In this doc, we split the native P2P app protocol into two functional components: signaling and data access π. Signaling covers stuff like handshaking and figuring out whether peers and content are available π€. The data access component is what moves content from one peer to another π¦.
Basically, when signaling and data access are coupled together, in-network storage gets complicated to support across different app services π. BUT these apps all have common data access requirements, which makes a standard protocol totally doable π.
2. Terminology and Concepts π
these terms have special meaning in the definition of the in-network storage system π.
- In-network storage: a service inside a network that provides storage and bandwidth to network applications. It can reduce upload, transit, and backbone traffic and improve network app performance π. Its position is in the core of a network, for example co-located with the border router (network attached storage) or inside a data center π’.
- P2P cache (peer-to-peer cache): a kind of in-network storage that understands the signaling and transport of specific P2P app protocols π§ . It caches content for those specific P2P apps so it can serve peers and reduce traffic on certain links π.
3. The Problems π€
P2P has become a major network app (especially P2P file sharing and streaming), and that opened up lots of opportunities π. The P2P paradigm can build highly scalable and robust apps at low cost, compared to the traditional client-server paradigm πΈ.
BUT P2P apps also have real design challenges π¬. A big one is the extra stress they put on the network infrastructure π. Lack of infrastructure support can also make P2P app performance unstable, especially during peer churns and flash crowds (when a big group of users starts grabbing the same content in a short window), which stresses bandwidth-constrained access uplinks π. One potential fix for reducing network stress and improving P2P performance is letting peers on bandwidth-constrained access put their data somewhere free of bandwidth constraints where other peers can also reach it π¦. We'll go through these problems in more detail now β¨.
3.1. P2P Infrastructural Stress and Inefficiency ποΈ
okay so a specific problem with the P2P paradigm is the stress that P2P app traffic puts on ISP infrastructure π΅. Multiple measurements (e.g., [ipoque_Internet_Study]) have shown that P2P traffic has become a major type of traffic on some networks π. On top of that, network-agnostic peering (at the P2P transmission level) is inefficient, which leads to unnecessary traversal across network domains or spanning a network's backbone [RFC5693] π.
Using network information alone to build more efficient P2P swarms isn't enough to cut P2P traffic on access networks π . The reason is that in a traditional P2P system, total access upload traffic equals total access download traffic π. It's also been reported that P2P traffic is becoming the dominant traffic on the access networks of some networks, hitting as high as 50-60% on the downlinks and 60-90% on the uplinks [DCIA] [ICNP] [ipoque_P2P_Survey] [P2P_File_Sharing] π₯. So it's getting more and more important to reduce upload access traffic, not just cross-domain and backbone traffic π .
P2P is also inefficient when traffic gets sent upstream once for every remote peer that's interested in the same info π« . For example, P2P app transfer completion times stay affected by potentially (relatively) slow upstream transmission β³. In the same way, the performance of real-time P2P apps may be affected by potentially (relatively) higher upstream latencies π‘.
3.2. P2P Cache: A Complex Type of In-Network Storage β¨
Okay bestie, so the big fix for P2P infrastructure stress and inefficiency is to add in-network storage π§. A survey of existing in-network storage systems is in [RFC6392], if you want the full tour π.
Right now, in-network storage shows up as P2P caches. Sometimes they sit there transparently, and sometimes they act as an explicit P2P peer π¦. Either way, to serve one specific P2P application, the P2P cache server has to support that application's own signaling and transport protocols. Which is a LOT of work for the P2P cache vendor π.
First, there are SO many P2P apps out there π. Think BitTorrent, eMule, Flashget, and Thunder for file sharing, plus Abacast, Kontiki, Octoshape, PPLive, PPStream, and UUSee for P2P streaming. So a P2P cache vendor is stuck supporting a huge pile of application protocols, which means more product complexity and higher development cost πΈ.
Second, a P2P application protocol can keep evolving to add new features or fix bugs π οΈ. That forces the vendor to keep watching application updates so they can track every change. Yet another source of product complexity and cost π.
Third, lots of P2P apps use proprietary protocols or support end-to-end encryption π. That can make P2P caches ineffective. So these three problems together make it hard to use the P2P cache as a network middlebox that supports P2P application distribution π€.
Finally, an end host has better connectivity and connection quality to a P2P cache than to a remote peer πΆ. Without a way to manage bandwidth usage, the P2P cache might end up increasing the volume of download traffic, which is totally counter to the whole goal of reducing upload access traffic π.
3.3. Ineffective Integration of P2P Applications π
It's becoming super clear that P2P apps get a better user experience when they can use in-network resources π. For example, several P2P streaming systems go looking for extra in-network resources during a flash crowd, like right before a major live streaming event π¬. In asymmetric networks, when a channel's aggregated upload bandwidth can't keep up with download demand, a P2P app may reach for additional in-network resources to keep the system stable π«Ά.
BUT, some P2P apps that use in-network infrastructure need flexibility in how they implement resource allocation policies π . Honestly, a big competitive edge for many successful P2P systems is their expertise in using peer and infrastructure resources as efficiently as possible π. Many live P2P systems have special algorithms that pick out the peers acting as stable, higher-bandwidth sources β. Those higher-bandwidth sources also often use algorithms to decide which peers they send content to π. And the developers keep fine-tuning all of this over time π₯.
So, to let developers evolve and fine-tune their algorithms and policies, in-network storage should expose basic mechanisms and give P2P applications as much flexibility as possible π¦. This follows the end-to-end systems principle, and it leaves room for innovation and for meeting specific business goals πΈ. Existing in-network storage techniques for P2P apps just don't have these capabilities yet π©.
4. Usage Scenarios π
Usage scenarios are here to show the problems in both Content Distribution Network (CDN) and P2P scenarios π§©.
4.1. BitTorrent π
Picture this: a BitTorrent client A uploads a block to multiple peers. That block crosses the last-mile uplink once for each peer π΅. Then peer B, who just got the block from A, also has to upload it through its own last-mile uplink to others when sharing it. Not an efficient use of the last-mile uplink at all π. But with an in-network storage server, the BitTorrent client can upload the block to that storage instead π¦. Peers can then grab the block from in-network storage, which cuts down the amount of data on the last-mile uplink β¨. And if the in-network storage supports it, a peer can also save the block in its own in-network storage while it's still being retrieved πΎ. After that, the block can be uploaded from in-network storage to other peers π.
As mentioned before, BitTorrent and other P2P apps currently can't explicitly control which content goes into existing P2P caches, and they also can't manage access and resource control policies π€. Apps really need to keep their flexibility to control content distribution policies and the topology among peers π .
4.2. Content Publisher π£
Content publishers can use in-network storage too π. Take a P2P live streaming app as an example. A Content Publisher usually keeps a small number of sources, and each one pushes blocks from the current play buffer out to a set of P2P peers π‘.
Some content publishers go with a hybrid approach that mixes P2P and CDN modes π. For instance, Internet TV can be built as a hybrid CDN/P2P app, where content comes from central servers through a CDN and there's also a P2P mode among end hosts and set-top boxes πΊ. In-network storage could help hybrid CDN/P2P apps too, both to support P2P distribution and to enable standard content publisher interfaces and controls π.
BUT, right now there's no standard interface for different content publishers to access in-network storage π. One streaming content publisher might need the existing in-network storage to support streaming signaling or other capabilities, like transcoding, bitmap information, intelligent retransmission, and so on π¬. Meanwhile, a different content publisher might only need in-network storage to distribute files π. It does make sense that the application services are only supported by the content publishers' original servers and clients, while the intelligent data plane transport for those publishers is handled by in-network storage π§.
A content publisher also gets a lot out of a standard interface for accessing in-network storage servers run by different providers π«Ά. That standard interface has to let content publishers keep control over the content placed in their own in-network storage. It also has to let them grant access and resources only to the end hosts and peers they want π.
In the hybrid CDN/P2P scenario, if only the end hosts can store content in the in-network storage server, then the content has to be downloaded and then uploaded over the last-mile access link before another peer can retrieve it from an in-network storage server π©. So in this deployment scenario, it may be a good idea for a content publisher or CDN provider to store content in in-network storage servers π.
5. Security Considerations π
There are several security considerations related to in-network storage π¨. Let's get into them, because they're serious π.
5.1. Denial-of-Service Attacks π
An attacker can try to consume a large portion of the in-network storage, or exhaust the connections of the in-network storage, through a denial-of-service (DoS) attack π±. Authentication, authorization, and accounting mechanisms should be considered in the cross-domain environment π. Limiting access from an administrative domain puts up barriers for content distribution π§.
5.2. Copyright and Legal Issues βοΈ
Copyright and other laws may stop certain content from being distributed in various localities π. In-network storage operators may adopt system-wide ingress or egress filters to carry out the policies they need for storing or retrieving content ποΈ. Applications may also apply Digital Rights Management (DRM) to the data stored in the network storage ποΈ. However, the specification and implementation of those policies (such as filtering and DRM) is not in scope for the problem this document is trying to solve π ββοΈ.
5.3. Traffic Analysis π
If content is stored in provider-based in-network storage, there may be a privacy risk π΅οΈββοΈ. A malicious service provider could look at some link that a victim user is interested in, guess that another user who accesses the same data may share that interest, and then use that guess to run a phishing attack on the other user π£. Yikes π.
5.4. Modification of Information βοΈ
This threat means that an unauthorized entity may alter in-transit in-network storage access messages that were generated on behalf of an authorized principal π. The alteration could cause unauthorized management operations, including falsifying the value of an object π§Ύ. This threat may result in false data being supplied, either because the data on a legitimate store was modified or because a bogus store was introduced into the network π«£.
5.5. Masquerade π
This threat means that an unauthorized entity gains access to a system or performs a malicious act by illegitimately posing as an authorized entity π. In the context of this specification, when accessing in-network storage, one malicious end host can masquerade as another authorized end host or application server to get into a protected resource in the in-network storage π.
5.6. Disclosure π
This threat is about someone eavesdropping on exchanges between in-network storage and application clients ππ». Protecting against it may be required as a matter of application policy π‘οΈ.
5.7. Message Stream Modification π
This threat means messages may be maliciously re-ordered, delayed, or replayed to a greater extent than would happen in a natural network system πͺοΈ. The goal is to carry out unauthorized management operations on in-network storage π€. If the middlebox (such as a Network Address Translator (NAT)) or proxy between an end host and in-network storage is compromised, a stream modification attack becomes easy to pull off π.
6. Acknowledgments π«Ά
We would like to thank the following people for contributing to this document π:
Ronald Bonica β¨
David Bryan β¨
Kar Ann Chew β¨
Lars Eggert β¨
Roni Even β¨
Adrian Farrel β¨
Yingjie Gu β¨
David Harrington β¨
Leif Johansson β¨
Francois Le Faucheur β¨
Hongqiang Liu β¨
Tao Ma β¨
Borje Ohlman β¨
Akbar Rahman β¨
Peter Saint-Andre β¨
Robert Sparks β¨
Sean Turner β¨
Yu-shun Wang β¨
Richard Woundy β¨
Yunfei Zhang β¨
7. Informative References β¨
okay bestie, this is the reading list π these are the sources the doc points to for extra context, and none of them are required to implement the protocol. here's the full lineup π
[DCIA] Parker, A., "P2P Media Summit presentation", Distributed
Computing Industry Association, October 2006,
<http://www.dcia.info/activities/p2pmsla2006/
CacheLogic.ppt>.
[Data_Lockers]
Yang, Y., "Open Content Distribution using Data Lockers",
CoXNet Workshop, Beijing, China, November 2010,
<http:// cs-www.cs.yale.edu/homes/yry/projects/p4p/
open-data-lockers-nov-2010-coxnet.pdf>.
[ICNP] Wu, H., "Challenges and Opportunities of Internet
Developments in China", ICNP 2007 Keynote Speech,
October 2007,
<http://www.ieee-icnp.org/2007/keynote_D.html>.
[P2P_File_Sharing]
Casadesus-Masanell, R. and A. Hervas-Drane, "Peer-to-Peer
File Sharing and the Market for Digital Information
Goods", Journal of Economics & Management Strategy,
Vol. 19, No. 2, pp. 333-373, Summer 2010.
[RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic
Optimization (ALTO) Problem Statement", RFC 5693,
October 2009.
[RFC6392] Alimi, R., Ed., Rahman, A., Ed., and Y. Yang, Ed., "A
Survey of In-Network Storage Systems", RFC 6392,
October 2011.
[ipoque_Internet_Study]
Schulze, H. and K. Mochalski, "Internet Study 2008/2009",
2009, <http://www.ipoque.com/resources/internet-studies>.
[ipoque_P2P_Survey]
"ipoque's 2007 P2P Survey to be presented at Technology
Review's Emerging Technologies Conference at MIT",
August 2007, <http://www.ipoque.com/en/news-events/
press-center/press-releases/2007/
ipoque%C2%B4s-2007-p2p-survey-to-be-presented-at-
technology>.
The best part is the RFC 6392 survey on in-network storage π§ it's giving data lockers and caching, which is exactly the vibe here π
Authors' Addresses π¦
these are the people who wrote the doc, plus where to reach them, so slide into their emails if you have questions π β¨
Haibin Song
Huawei
101 Software Avenue, Yuhua District
Nanjing, Jiangsu Province 210012
China
EMail: haibin.song@huawei.com
Ning Zong
Huawei
101 Software Avenue, Yuhua District
Nanjing, Jiangsu Province 210012
China
EMail: zongning@huawei.com
Y. Richard Yang
Yale University
EMail: yry@cs.yale.edu
Richard Alimi
Google
EMail: ralimi@google.com
and that's the whole doc, bestie ππ the squad that made it is absolutely iconic π«Ά
π¦ where this page comes from
- ietf: rfc6646 2012-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms