Network Working Group | P. Thatcher |
Internet-Draft | H. Zhang |
Intended status: Standards Track | T. Brandstetter |
Expires: January 2, 2017 | |
July 1, 2016 |
ICE Candidate Removal: Remove ICE candidates when they are no longer useful.
draft-thatcher-ice-remove-candidate-00
This document describes an extension to the Interactive Connectivity Establishment (ICE) that enables ICE agents to signal the removal of ICE candidates to the remote ICE agent to prevent the remote ICE agent from wasting resources by attempting to use the ICE candidate.
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 January 2, 2017.
Copyright (c) 2016 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.
In certain network conditions, ICE agents may find that a local ICE candidate is no longer useful and that the remote ICE agent should not attempt to use that ICE candidate.
For example, if an ICE agent is gathering TURN candidates and finds a set of better candidates (such as using UDP to the TURN server) than candidates already signaled (such as using TCP to the TURN server), it may choose to deallocate the worse candidates. But if it does so, the remote ICE agent may waste time and resources attempting to use the deallocated TURN candidates.
Just as trickle-ice optimizes ICE by signaling the addition of an ICE candidate, this extension optimizes further by signaling the removal of an ICE candidate.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
This specification makes use of all terminology defined by the protocol for Interactive Connectivity Establishment in [RFC5245].
This specification does not define the usage of candidate removal with any specific signaling protocol.
However, it will be noted that any signaling protocol must be able to unique identify the Removed Candidates. For example, a combination of the component, ip address, protocol (UDP or TCP), and port would unique identify a Removed Candidate.
When a removal signal, the Receiving Agent MUST NOT pair the Removed Candiates with any future candidates gathered by the Receiving Agent. The Receiving Agent MAY keep the existing candidate pairs that use the Removed Candidates and behave as though the Removed Candidates had not been removed for those candidate pairs.
Why would an Receiving Agent choose not to immediately remove existing candidate pairs? Because the Removing Agent MAY choose to keep the Removed Candidate capable of receiving ICE checks and sending responses so that any ICE checks already sent by the Receiving Agent may continue to work briefly so that media can flow as quickly as possible, even if over a candidate pair that will soon be discarded.
Both the Removing Agent and the Receiving Agent SHOULD prioritize candidate pairs with a Removed Candidate lower than those without a Removed Candidate.
This specification requests no actions from IANA.
TODO
TODO
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997. |
[RFC5245] | Rosenberg, J., "Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols", RFC 5245, DOI 10.17487/RFC5245, April 2010. |