Independent Submission P. Eardley Request for Comments: 6417 BT Category: Informational L. Eggert ISSN: 2070-1721 Nokia M. Bagnulo UC3M R. Winter NEC Europe November 2011
How to Contribute Research Results to Internet Standardization
Abstract
The development of new technology is driven by scientific research. The Internet, with its roots in the ARPANET and NSFNet, is no exception. Many of the fundamental, long-term improvements to the architecture, security, end-to-end protocols and management of the Internet originate in the related academic research communities. Even shorter-term, more commercially driven extensions are oftentimes derived from academic research. When interoperability is required, the IETF standardizes such new technology. Timely and relevant standardization benefits from continuous input and review from the academic research community.
For an individual researcher, it can however be quite puzzling how to begin to most effectively participate in the IETF and arguably to a much lesser degree, the IRTF. The interactions in the IETF are much different than those in academic conferences, and effective participation follows different rules. The goal of this document is to highlight such differences and provide a rough guideline that will hopefully enable researchers new to the IETF to become successful contributors more quickly.
Status of This Memo
This document is not an Internet Standards Track specification; it is published for informational purposes.
This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor has chosen to publish this document at its discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard; see Section 2 of RFC 5741.
Eardley, et al. Informational [Page 1]
RFC 6417 Contributing Research to the IETF November 2011
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6417.
Copyright Notice
Copyright (c) 2011 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.
Table of Contents
1. Introduction ....................................................3 2. Is the IETF the Right Venue? ....................................4 3. How to Get the IETF to Start Work on Your Proposal? .............6 3.1. Identify the Right Part of the IETF ........................6 3.2. Build a Community ..........................................6 3.3. Outline Your Protocol ......................................7 3.4. Establish a New Working Group ..............................8 4. How to Increase the Chances that the IETF Successfully Standardizes Your Proposal ......................................8 4.1. Commit Enough Time, Energy, and Perseverance ...............8 4.2. Be Open and Focus Out ......................................9 4.3. Seek Resolution, Not Perfection ...........................10 4.4. Implement .................................................10 5. Examples .......................................................11 5.1. Multipath TCP .............................................11 5.2. Congestion Exposure .......................................12 6. Security Considerations ........................................13 7. Acknowledgments ................................................13 8. Informative References .........................................13
Eardley, et al. Informational [Page 2]
RFC 6417 Contributing Research to the IETF November 2011
In telecommunications, standards are essential. More often than not, technology interoperability requires an agreement on a single standard for a given problem. However, unlike most research, standards developments are driven by particular real-world problems and require solutions that are not only theoretically correct, but need to be implementable with state-of-the-art technology in a cost- effective manner, and must be incrementally deployable in the actual Internet by the involved stakeholders. In other words, standards should be both theoretically correct and practically applicable. In the academic world, the former is often more important than the latter!
In the IETF, a practically applicable solution that has some well- defined and acceptable deficiencies trumps a theoretically complete and optimal solution that cannot be deployed. Likewise, a solution to an interesting theoretical problem that does not exist in the deployed Internet at large does not require urgent standardization. Finally, standardization oftentimes focuses on piecemeal improvements to existing technology in order to enhance secondary aspects, which does not excite an academic researcher looking to solve juicy problems.
These differences between academic research and Internet standardization are the main reason why many researchers initially struggle when they begin to participate in the IETF. Symptoms of this struggle occur, for example:
o for ideas that are too far outside the IETF's areas of current work
o for ideas that are too high-level for the IETF to begin protocol- level work on
o for proposals that solve problems that are not expected to arise for a very long time
o if there is a reluctance to give others a say in how a research idea is being made concrete, or giving over change control entirely
o if there is a feeling that the IETF "does not listen" to them or does not have "the right people"
o if there seems to be no working group or other venue to bring the work to
Eardley, et al. Informational [Page 3]
RFC 6417 Contributing Research to the IETF November 2011
o if the researchers are not interested in topics such as security, performance, and operational management -- topics that the IETF will consider carefully
o when the process seems too time consuming
o when the researchers do not have the resources to keep the IETF effort active for an extended period of time
o if there is not a convincing enough argument for the IETF to start working on something, despite great simulation results
o if the research idea is just not implementable in today's Internet
This document attempts to give some basic advice that researchers might want to take into account when deciding to approach the IETF with their ideas, in order to improve their success probability. It is intended to complement the more general advice in [RFC4144] about "How to Gain Prominence and Influence in Standards Organizations". Other, more general advice and detailed explanations of the structure and inner workings of the IETF can be found in "The Tao of IETF" [RFC4677].
The authors have been involved in several research projects, including collaborative ones, which have sought to standardize some of their results at the IETF, and we hope to pass on some advice (sometimes that we have learned the hard way!). The advice is split into three groups: before you approach the IETF; how to get the IETF to start work on your proposal; and finally how to increase the chances of success once work has begun.
A researcher should consider whether the IETF is the right venue before bringing a proposal to it. A way to do so is to imagine that the IETF has standardized your proposal and it has been deployed, and ask yourself two questions:
It is very important to have a clear explanation about the motivation for your proposal: what would its benefits be? What problem does it solve? Many ideas do not bring a clear benefit to the Internet in the near term (of course they may still be fine pieces of research!). In the past, the IETF has often developed protocols that ended up not being used, so it now thinks harder about the benefits before
Eardley, et al. Informational [Page 4]
RFC 6417 Contributing Research to the IETF November 2011
starting new work and makes sure that it solves a current, significant problem rather than one that may theoretically arise in the future. It is best to be specific about what improvement your proposal would make and the use cases in which this would be seen.
It is also important to have a simple description of what additions or changes are needed and to which nodes (be they end-hosts, routers, middleboxes, etc.). Is it substituting for an existing IETF protocol or supplementing one? Again, it is best to be specific: Do both ends need to adopt the new protocol? Can it fall back or interoperate with the existing IETF protocol? Do the "first movers" (the first nodes that include your protocol) get an improvement, or do the "last movers" gain most? What assumptions do you make about the network or host (perhaps that the host is multi-homed or there are no middleboxes on the path)? While thinking about these things, it is also worthwhile considering operational practices and business models. If you will likely break some of these, you will inevitably face some opposition in the IETF.
If it is hard to answer these questions, it may indicate that the idea is too high-level or abstract for the IETF. Then it may be better to approach the IRTF (the research arm of the IETF); the IETF needs a specific protocol-level proposal before it can begin work, while the IRTF considers work that is not yet mature enough for standardization. Another danger is that the IETF is the wrong standards body, as a different one would need to standardize your proposal.
If your idea involves replacing several IETF protocols and/or upgrading several types of nodes simultaneously, it is probably best to rethink: the IETF finds it almost impossible to handle radical, "clean slate" proposals that change lots of things at once. Perhaps you can trim off a subset of your idea that's a smaller initial step requiring only an incremental change to an existing protocol, but you need to consider whether it is still useful.
Finally, before bringing a proposal to the IETF, you need to be aware that there are intellectual property implications. For example, it will affect any patents you want to file. Less obviously, you grant the IETF the right to publish your contribution and you should inform the IETF if your proposal is covered by a patent. For more information about the rights you grant to the IETF, the best thing to read is the IETF's "Note Well" [NoteWell] and the documents linked to from there.
Eardley, et al. Informational [Page 5]
RFC 6417 Contributing Research to the IETF November 2011
3. How to Get the IETF to Start Work on Your Proposal?
Having decided that the IETF is the right venue, you now need to persuade the IETF to start work on your idea. We discuss three steps that should help; they can be done in parallel. We then briefly discuss how to form a new working group (WG), if that is necessary.
The IETF is a large organization; therefore, you need to communicate with the right part of it. The IETF is organized in areas such as routing, security, or transport. Within those areas, working groups are responsible for a specific topic. The IETF consists of over 100 WGs. So, a good step is to identify whether there is already a WG suitable for your work.
If yes, then join the WG's mailing list and send email and perhaps write an Internet-Draft. A WG's current set of specific items is defined in its "Charter"; be aware that if your proposal falls outside the WG's current charter, then it would have to be extended before formal work could begin. Most WGs think about re-chartering every year or two, although most allow for some limited discussion on items outside their current charter.
If no suitable WG exists, then you should identify the right Area. The WGs are clustered into "Areas" with a common theme such as security, with one or two Area Directors in charge of each Area. You may have to get a new WG created within the most relevant Area; this is a significantly difficult step (see below).
Finding the right WG is akin to finding the right conference or journal to submit to. While a poor choice of conference will get your paper rejected as irrelevant, the IETF is friendlier, as most WG Chairs and Area Directors will try to redirect your work to a better WG, if you choose poorly. However, ending up with the right "venue" is critical, as only then will you collaborate with the right group of people.
Standards require agreement and approval by a wide range of people. Therefore you need to persuade others of the merits of your idea. In practice you need to go further and persuade others to do work. At a minimum, this will be to thoroughly review your proposal and preferably it will be to develop and test it with you. The IETF community needs to see evidence of wider support, interest, and commitment. A lack of reaction means work will not go forward (silence is not consent!). At an early stage, support could be
Eardley, et al. Informational [Page 6]
RFC 6417 Contributing Research to the IETF November 2011
demonstrated through comments on the mailing list. It is a very good idea to have some Internet-Drafts jointly authored with people from beyond your research team, perhaps an industry player. For example, you could develop a "use cases" document with a "user", such as an operator.
Working with others has the extra benefit that it will help to clarify your idea and explain better its benefits and how it works. There are many experts in the IETF who can help stress test the idea technically and advise about process and culture. You need to get some of them involved as early as possible.
It may well be worth trying to hold an informal session at an IETF meeting. This can help build a community of interest for your idea; see the advice in [BAR-BOF].
You also need to describe your proposal in a way that others can understand. Your initial document should outline the protocol. It is counter-productive to detail every aspect, unless the protocol is incredibly simple. Firstly, too much detail swamps people with information that they cannot process. Most people understand things by learning about them several times at increasing levels of detail. Secondly, providing only an outline makes people feel that they have a chance of making worthwhile suggestions and changes, so they are more likely to actively engage with you. Thirdly, working out details is generally something that a wider group of people is better at than an isolated individual. Fourthly, in order for the IETF to start work, it is more important to convince the IETF that there is a problem that it needs to solve than to convince it about the merits of your solution.
A good idea is to document a "protocol model", as described in [RFC4101]: "a short description of the system in overview form ... to answer three basic questions: 1. What problem is the protocol trying to achieve? 2. What messages are being transmitted and what do they mean? 3. What are the important, but unobvious, features of the protocol?"
It is best to send your contributions in the form of an Internet- Draft (I-D). While it may seem a burden to convert your nice paper or slides into the idiosyncratic format of an I-D, this is the format that IETF people are used to reading. Also, extracting the IETF- relevant parts of publications into an I-D will often help to identify aspects that need more work by the IETF, such as protocol details glossed over.
Eardley, et al. Informational [Page 7]
RFC 6417 Contributing Research to the IETF November 2011
You only need to establish a new WG if the idea falls outside the scope of existing WGs. Establishing a new WG nearly always requires a specific session, called a "BoF" (Birds of a Feather), at one of the IETF's face-to-face meetings. Here the pros and cons of the proposed WG are debated. As part of the preparation for the BoF, you need to:
o Build a community (see above)
o Document the benefits: for example, a problem statement and/or use cases
o Document the architecture: for example covering assumptions and requirements on a solution
o Suggest specific work items for the proposed WG, typically the protocol to be standardized and the supporting informational documents
Getting approval to hold a BoF and running a successful BoF meeting are both quite difficult. Working with someone experienced and reading the guidance in [RFC5434] are highly recommended.
4. How to Increase the Chances that the IETF Successfully Standardizes Your Proposal
Congratulations, you got the IETF to agree to start working on your proposal. Now it only remains to do the actual work! In this section, we give some advice about ways of working that will increase the chances that the standardization runs smoothly.
Those new to standards bodies may be surprised how long and how much effort it takes to standardize something.
Success at the IETF requires active participation: to convince others your idea is worthwhile, to build momentum, to gain consensus. Although IETF work is done mainly through mailing lists, in practice, face-to-face time is critical, especially for new or substantial work. If possible, go to the three IETF meetings a year.
It takes quite a long time for a proposal to turn into an IETF standard, even if the proposal is mature when it is first presented. There are many steps: building a community of interest, convincing
Eardley, et al. Informational [Page 8]
RFC 6417 Contributing Research to the IETF November 2011
the IETF to start work, working through suggestions from technical experts and incorporating their improvements, gaining consensus, getting detailed reviews (any IETF publication gets significantly more reviews than an academic publication), going through the formal IETF approval process, and so on. Even if you can work full time on the proposal, effort is required from other people who can't. Also, the IETF tends to work in intensive bursts, with activity concentrated in the run-up to and then at the IETF meetings, with lulls of low activity in between.
The IETF proceeds by "rough consensus". Unlike some other standards bodies, there is no voting and no top-down process from requirements to architecture to protocol. The downside of this is that the IETF is not good at making decisions. Hence you need to persevere and guard against decisions unwinding. On the other hand, if the consensus is to reject your proposal or there is little interest in it, persevering is likely to be a waste of time -- you should probably give up or restart at Section 2.
All this means that it takes a considerable length of time to complete something at the IETF. Two years is probably a minimum. So, although a typical three-year research project sounds like plenty of time to do standardization, if you haven't already raised the idea within the first year, you're probably too late to complete standardization before your project ends. Since it's quite likely that IETF standardization won't be finished when your project ends, it is particularly important to convince others to help, so that the work is more likely to be completed afterwards.
It is helpful to come to the IETF with an open mind-set.
Co-authorship is good. Some standards bodies value trophy authors, who indicate their support but don't actually do any work. In the IETF, it is much better if co-authors are actually investing cycles on developing the proposal, whereas simple indications of support can be made on the mailing list or at the meetings.
In particular, if the IETF is going to standardize something, then in effect, it takes ownership; it is no longer "yours". Indeed, a good milestone of success is when your individual document becomes a WG draft, as then it is owned by the WG. The research mentality is a bit different, as it prizes authorship and confidentiality until publication.
It is very important to be open to working with others. One specific reason is to get help on aspects beyond your expertise or beyond what
Eardley, et al. Informational [Page 9]
RFC 6417 Contributing Research to the IETF November 2011
you've had time to think about -- perhaps how to make your protocol more secure, or how to ensure it is congestion-friendly, or how it impacts network management. The IETF ensures that any protocol it standardizes has thought carefully about such aspects.
Also, the IETF works by collaboration. For example, there may be two proposals to solve a problem. In academia their proponents may treat each other as rivals and for example write "related work" sections that point out flaws and shortcomings of the opposition. At the IETF, they will soon work together on a common document, typically a synthesis of the competing proposals, and be sensitive to each other in order to help build consensus. You will also have to get support, or at least not vehement opposition, from IETF people working on other topics. So you need to be aware of what else the IETF is doing (in case your proposal conflicts) and what other problems exist in the Internet today (in case your proposal exacerbates them).
Finally, collaborative research projects sometimes find it difficult to be open to working with others. Firstly, such projects typically have a consortium agreement about confidentiality -- it must not prevent you from engaging properly day-to-day with people outside the project. Secondly, you may have to spend considerable effort on intra-project coordination -- but, an individual researcher only has so much energy and enthusiasm for collaborating, so if you spend a lot of time liaising between different groups within your project, then you have little left for working with the IETF.
The research mind-set is often to investigate very thoroughly all possible details about an idea -- to seek perfection -- sometimes with no particular deadline. The IETF mind-set is to get something done and out there that works, albeit imperfectly; if people find it useful, then there will be another iteration to improve it, probably to meet needs that only become apparent on widescale deployment. The philosophy is to find a reasonable solution to the problem that currently exists. Time spent over-optimizing may simply mean that the solution has been superseded (perhaps the problem has been solved in some other way, or perhaps the problem was so significant that a different approach had to be found to avoid the problem).
The IETF is very impressed by actual implementations: "running code". It helps smooth the standards process, it helps people believe it really works, and it helps you and others discover any issues. An implementation that others can download and try is extremely helpful in getting your protocol actually deployed -- presumably, that is
Eardley, et al. Informational [Page 10]
RFC 6417 Contributing Research to the IETF November 2011
your real objective, not simply to get an IETF standard! In the longer term, you may need to think about how to get it incorporated in the Linux kernel, for instance.
Overall, it is very hard to get a protocol in actual widespread use. There are far more IETF protocols on paper than in use.
In this section, we include some examples in which the authors have been deeply involved and have managed (we believe) to bring the research output of a collaborative research project successfully into the IETF.
Multipath TCP (MPTCP) enables a regular TCP connection to use multiple paths simultaneously. It extends TCP to allow the use of multiple IP addresses by each endpoint. This work is one output of the Trilogy research project which was brought to the IETF for standardization, and it is currently making good progress. We provide a brief overview of the steps taken.
The first stage was doing some early socialization of the main ideas of MPTCP. Presentations were made in several relevant WGs: the Routing Research Group (July 2008) and the Transport Area Open meeting (July 2008 and March 2009). In addition, a mailing list was created, open to anyone who was interested in discussing Multipath- TCP-related issues in the IETF context, and a public Web page was created containing Multipath-TCP-related material, including papers, Internet-Drafts, presentations, and code. The feedback received was encouraging enough to continue with the effort of bringing the work to the IETF.
Once we verified that the proposed ideas had potential traction in the IETF, the next step was to identify the proper venue for the proposed work. There were two choices, namely, to go for a BoF, with a view to a new WG, or to try to add additional work items to an existing WG, in particular TCPM seemed a good candidate. After talking to the Area Directors, it seemed that having a BoF was the right approach, at least for the initial discussion stage. So, a BoF proposal was submitted to the Transport ADs for the IETF 75 meeting held in Stockholm in July 2009. The initial BoF proposal was crafted by Trilogy people, but was sent to the open mailing list for discussion and modification from the rest of the community. The BoF request was approved and the MPTCP BoF was held at the IETF 75 meeting.
Eardley, et al. Informational [Page 11]
RFC 6417 Contributing Research to the IETF November 2011
The general feedback received during the BoF was that there was enough interest and energy in the community to do this work within the IETF. A first charter draft was posted on the mailing list for comments a couple of months after the BoF. After a month or so of charter discussion on the mailing list, the MPTCP working group was created in October 2009. The charter includes deliverables due to March 2011.
The MPTCP working group has, so far, made significant progress and most of the milestones have been delivered on schedule [MPTCP].
Congestion Exposure enables sending end-hosts to inform the network about the congestion encountered by previous packets on the same flow. This allows the network devices to act upon the congestion information and the perceived user behavior. Like the MPTCP work, it is an output of the Trilogy research project and has been successfully brought to the IETF. We next describe the steps followed to do so.
In this case, early socialization included presentations at the Internet Congestion Control Research Group and the Internet Area meeting at the IETF 75 meeting in July 2009, the creation of an open mailing list to discuss Congestion Exposure related issues in the IETF, and posting the related materials such as papers, Internet drafts, and code in a public web page. In addition, an informal, open meeting (sometimes called a Bar-BoF in IETF parlance) was held during the IETF 75 meeting.
After processing the feedback received in the Bar-BoF, a BoF proposal was submitted to the Internet Area ADs for the IETF 76 meeting in November 2009. The BoF was accepted and was held as planned. While the feedback received in the BoF was positive, the IESG was uncertain about chartering a working group on this topic. (The IESG is the IETF's management body and consists of all the Area Directors.) In order to address the remaining concerns of the IESG, another BoF was held at the following IETF meeting.
After much debate, the CONEX WG was approved by the IESG, but the scope of its charter was limited compared with the original proposal. This was due to some concerns regarding the proposed allocation of the last bit in the IPv4 header. The CONEX WG serves as a good example to illustrate the kind of compromise that is necessary when research aspiration meets Internet standardization. The CONEX WG [CONEX] held its first meeting at the IETF 78 meeting in July 2010. Its charter contains deliverables through November 2011.
Eardley, et al. Informational [Page 12]
RFC 6417 Contributing Research to the IETF November 2011
Part of this work was funded by the Trilogy Project [TRILOGY], a research project supported by the European Commission under its Seventh Framework Program.
Similar material was accepted for publication in ACM CCR, July 2011 [CCR].
[BAR-BOF] Eggert, L. and G. Camarillo, "Considerations for Having a Successful "Bar BOF" Side Meeting", Work in Progress, August 2011.
[CCR] "How to Contribute Research Results to Internet Standardization". Marcelo Bagnulo, Philip Eardley, Lars Eggert and Rolf Winter. ACM Computer Communication Review (CCR), Vol. 41, No. 3, July 2011.