| rfc8863xml2.original.xml | rfc8863.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="windows-1252"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!ENTITY RFC0822 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .2119.xml"> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
| <!ENTITY RFC0822 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | category="std" number="8863" docName="draft-ietf-ice-pac-06" obsoletes="" | |||
| .8174.xml"> | updates="8445, 8838" submissionType="IETF" consensus="true" xml:lang="en" t | |||
| <!ENTITY RFC8445 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ocInclude="true" sortRefs="false" version="3"> | |||
| .8445.xml"> | <!-- xml2rfc v2v3 conversion 2.45.2 --> | |||
| ]> | ||||
| <?rfc toc="yes" ?> | ||||
| <?rfc compact="yes" ?> | ||||
| <?rfc subcompact="yes" ?> | ||||
| <?rfc sortrefs="no" ?> | ||||
| <?rfc strict="yes" ?> | ||||
| <rfc ipr="trust200902" category="std" docName="draft-ietf-ice-pac-06" obsoletes= | ||||
| "" updates="8445" submissionType="IETF" xml:lang="en"> | ||||
| <front> | <front> | |||
| <title abbrev="ICE PAC"> | <title abbrev="ICE PAC"> | |||
| Interactive Connectivity Establishment Patiently Awaiting Connectivity (IC E PAC) | Interactive Connectivity Establishment Patiently Awaiting Connectivity (IC E PAC) | |||
| </title> | </title> | |||
| <author initials="C.H." surname="Holmberg" fullname="Christer Holmberg"> | <seriesInfo name="RFC" value="8863"/> | |||
| <author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | ||||
| <organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>Hirsalantie 11</street> | <street>Hirsalantie 11</street> | |||
| <code>02420</code> | <code>02420</code> | |||
| <city>Jorvas</city> | <city>Jorvas</city> | |||
| <country>Finland</country> | <country>Finland</country> | |||
| </postal> | </postal> | |||
| <email>christer.holmberg@ericsson.com</email> | <email>christer.holmberg@ericsson.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="J." surname="Uberti" fullname="Justin Uberti"> | <author initials="J." surname="Uberti" fullname="Justin Uberti"> | |||
| <organization>Google</organization> | <organization>Google</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>747 6th St W</street> | <street>747 6th St W</street> | |||
| <code>98033</code> | <code>98033</code> | |||
| <city>Kirkland</city> | <city>Kirkland</city> | |||
| <country>USA</country> | <region>WA</region> | |||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>justin@uberti.name</email> | <email>justin@uberti.name</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="January" year="2021"/> | ||||
| <date year="2020"/> | ||||
| <area>Transport</area> | ||||
| <workgroup>ICE Working Group</workgroup> | ||||
| <keyword>ICE</keyword> | <keyword>ICE</keyword> | |||
| <keyword>PAC</keyword> | <keyword>PAC</keyword> | |||
| <keyword>Candidate</keyword> | <keyword>Candidate</keyword> | |||
| <abstract> | <abstract> | |||
| <t> | <t> | |||
| During the process of establishing peer-to-peer connectivity, | During the process of establishing peer-to-peer connectivity, | |||
| ICE agents can encounter situations where they have | Interactive Connectivity Establishment (ICE) agents can encounter | |||
| no candidate pairs to check, and, as a result, conclude that | situations where they have no candidate pairs to check, and, as a | |||
| ICE processing has failed. However, because additional | result, conclude that ICE processing has failed. However, because | |||
| candidate pairs can be discovered during ICE processing, | additional candidate pairs can be discovered during ICE processing, | |||
| declaring failure at this point may be premature. This | declaring failure at this point may be premature. This document | |||
| document discusses when these situations can occur and | discusses when these situations can occur. | |||
| updates RFC8445 and RFC XXXX by requiring that an ICE agent | ||||
| wait a minimum amount of time before declaring ICE failure, | ||||
| even if there are no candidate pairs left to check. | ||||
| </t> | </t> | |||
| <t> | <t> | |||
| [RFC EDITOR NOTE: Please replace RFC XXXX with the RFC number of | This document updates RFCs 8445 and 8838 by requiring that | |||
| draft-ietf-ice-trickle once it has been published. Please also | an ICE agent wait a minimum amount of time before declaring | |||
| indicate that this specification updates RFC XXXX.] | ICE failure, even if there are no candidate pairs left to check. | |||
| </t> | </t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction" toc="default"> | <section toc="default" numbered="true"> | |||
| <name>Introduction</name> | ||||
| <t> | <t> | |||
| <xref target="RFC8445"></xref> describes a protocol, Interactive Connect ivity Establishment (ICE), | <xref target="RFC8445" format="default"/> describes a protocol, Interact ive Connectivity Establishment (ICE), | |||
| for Network Address Translator (NAT) traversal for UDP-based communicati on. | for Network Address Translator (NAT) traversal for UDP-based communicati on. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When using ICE, endpoints will typically exchange ICE candidates, | When using ICE, endpoints will typically exchange ICE candidates, | |||
| form a list of candidate pairs, and then test each candidate pair to see | form a list of candidate pairs, and then test each candidate pair to see | |||
| if connectivity can be established. If the test for a given pair fails, | if connectivity can be established. If the test for a given pair fails, | |||
| it is marked accordingly, and if all pairs have failed, the overall | it is marked accordingly, and if all pairs have failed, the overall | |||
| ICE process typically is considered to have failed. | ICE process typically is considered to have failed. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| During the process of connectivity checks, additional candidates may | During the process of connectivity checks, additional candidates may | |||
| be created as a result of successful inbound checks from the remote | be created as a result of successful inbound checks from the remote | |||
| peer. Such candidates are referred to as peer-reflexive candidates, | peer. Such candidates are referred to as peer-reflexive candidates; | |||
| and once discovered, will be used to form new candidate pairs which will | once discovered, these candidates will be used to form new candidate pai | |||
| rs, which will | ||||
| be tested like any other. However, there is an inherent problem | be tested like any other. However, there is an inherent problem | |||
| here; if, before learning about any peer-reflexive candidates, an | here; if, before learning about any peer-reflexive candidates, an | |||
| endpoint runs out of candidate pairs to check, either because it has | endpoint runs out of candidate pairs to check, either because it has | |||
| none, or it considers them all to have failed, it will prematurely | none or it considers them all to have failed, it will prematurely | |||
| declare failure and terminate ICE processing. This problem can | declare failure and terminate ICE processing. This problem can | |||
| occur in many common situations. | occur in many common situations. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| This specification updates <xref target="RFC8445"></xref>, by simply | This specification updates <xref target="RFC8445" format="default"/> | |||
| and <xref target="RFC8838"/> by simply | ||||
| requiring that an ICE agent wait a minimum amount of time before | requiring that an ICE agent wait a minimum amount of time before | |||
| declaring ICE failure, even if there are no candidate pairs to check, | declaring ICE failure, even if there are no candidate pairs to check | |||
| or if all candidate pairs have failed. This delay provides enough time | or all candidate pairs have failed. This delay provides enough time | |||
| for the discovery of peer-reflexive candidates, which may eventually | for the discovery of peer-reflexive candidates, which may eventually | |||
| lead to ICE processing completing successfully. | lead to ICE processing completing successfully. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Conventions"> | <name>Conventions</name> | |||
| <t> | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
| NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>SHOULD NOT</bcp14>", | |||
| described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174 | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "></xref> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| when, and only when, they appear in all capitals, as shown here. | are to be interpreted as described in BCP 14 | |||
| </t> | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
| when, they appear in all capitals, as shown here.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Relevant Scenarios"> | <name>Relevant Scenarios</name> | |||
| <t> | <t> | |||
| As noted above, the core problem this specification attempts to | As noted above, the core problem this specification attempts to | |||
| address is the situation where even after local gathering and remote | address is the situation where even after local gathering and remote | |||
| candidate signaling has completed, the ICE agent immediately ends up | candidate signaling have completed, the ICE agent immediately ends up | |||
| with no valid pairs and no candidate pairs left to check, resulting in | with no valid pairs and no candidate pairs left to check, resulting in | |||
| a premature ICE failure. This failure is premature because not | a premature ICE failure. This failure is premature because not | |||
| enough time has elapsed to allow for discovery of peer-reflexive | enough time has elapsed to allow for discovery of peer-reflexive | |||
| candidates from inbound connectivity checks; if discovered, these | candidates from inbound connectivity checks; if discovered, these | |||
| candidates are very likely to result in a valid pair. | candidates are very likely to result in a valid pair. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In most ICE scenarios, the lengthy timeouts for connectivity check tra nsactions, | In most ICE scenarios, the lengthy timeouts for connectivity check tra nsactions, | |||
| typically tens of seconds, will prevent this problem from occurring. H owever, there | typically tens of seconds, will prevent this problem from occurring. H owever, there | |||
| are certain specific cases where this problem will frequently occur. | are certain specific cases where this problem will frequently occur. | |||
| </t> | </t> | |||
| <section title="No Candidates From Peer"> | <section numbered="true" toc="default"> | |||
| <t> | <name>No Candidates from Peer</name> | |||
| Per RFC XXXX, an ICE agent can provide zero candidates of | <t> | |||
| Per <xref target="RFC8838"/>, an ICE agent can provide zero candidat | ||||
| es of | ||||
| its own. If the agent somehow knows that the remote endpoint is | its own. If the agent somehow knows that the remote endpoint is | |||
| directly reachable, gathering local candidates is unnecessary and | directly reachable, gathering local candidates is unnecessary and | |||
| will only cause delays; the peer agent can discover the | will only cause delays; the peer agent can discover the | |||
| appropriate local candidate via connectivity checks. | appropriate local candidate via connectivity checks. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| However, following the procedures from | However, following the procedures from | |||
| <xref target="RFC8445"></xref> strictly will result in immediate | <xref target="RFC8445" format="default"/> strictly will result in im mediate | |||
| ICE failure, since the checklist at the peer agent will be | ICE failure, since the checklist at the peer agent will be | |||
| empty. | empty. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="All Candidates Discarded"> | <section numbered="true" toc="default"> | |||
| <t> | <name>All Candidates Discarded</name> | |||
| <t> | ||||
| Even if the ICE agent provides candidates, they may be discarded | Even if the ICE agent provides candidates, they may be discarded | |||
| by the peer agent if it does not know what to do with them. | by the peer agent if it does not know what to do with them. | |||
| For example, candidates may use an address family that the peer | For example, candidates may use an address family that the peer | |||
| agent does not support, (e.g., a host candidate with an IPv6 | agent does not support (e.g., a host candidate with an IPv6 | |||
| address in a NAT64 scenario), or may not be usable for some other | address in a NAT64 scenario) or that may not be usable for some othe | |||
| r | ||||
| reason. | reason. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In these scenarios, when the candidates are discarded, the | In these scenarios, when the candidates are discarded, the | |||
| checklist at the peer agent will once again be empty, leading | checklist at the peer agent will once again be empty, leading | |||
| to immediate ICE failure. | to immediate ICE failure. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section title="Immediate Candidate Pair Failure"> | <section numbered="true" toc="default"> | |||
| <t> | <name>Immediate Candidate Pair Failure</name> | |||
| Section 7.2.5.2 of <xref target="RFC8445"></xref> describes several | <t> | |||
| <xref target="RFC8445" sectionFormat="of" section="7.2.5.2"/> | ||||
| describes several | ||||
| situations in which a candidate pair will be considered to have | situations in which a candidate pair will be considered to have | |||
| failed, well before the connectivity check transaction timeout. | failed, well before the connectivity check transaction timeout. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| As a result, even if the ICE agent provides usable candidates, | As a result, even if the ICE agent provides usable candidates, | |||
| the pairs created by the peer agent may fail immediately when | the pairs created by the peer agent may fail immediately when | |||
| checked, e.g., a check to a non-routable address that receives an | checked, e.g., a check to a non-routable address that receives an | |||
| immediate ICMP error. | immediate ICMP error. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| In this situation, the checklist at the peer agent may contain | In this situation, the checklist at the peer agent may contain | |||
| only failed pairs, resulting in immediate ICE failure. | only failed pairs, resulting in immediate ICE failure. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Update to RFC 8445"> | <name>Update to RFC 8445</name> | |||
| <t> | <t> | |||
| In order to avoid the problem raised by this document, the ICE agent | In order to avoid the problem raised by this document, the ICE agent | |||
| needs to wait enough time to allow peer-reflexive candidates to be | needs to wait enough time to allow peer-reflexive candidates to be | |||
| discovered. Accordingly, when a full ICE implementation begins its | discovered. Accordingly, when a full ICE implementation begins its | |||
| ICE processing, as described in <xref target="RFC8445" />, Section | ICE processing, as described in <xref target="RFC8445" | |||
| 6.1, it MUST set a timer, henceforth known as the PAC timer, to | sectionFormat="comma" section="6.1"/>, it <bcp14>MUST</bcp14> set a | |||
| ensure ICE will run for a minimum amount of time before determining | timer, henceforth known as the "PAC timer" (Patiently Awaiting Connectiv | |||
| ity), to | ||||
| ensure that ICE will run for a minimum amount of time before determining | ||||
| failure. | failure. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Specifically, the ICE agent will start its timer once it believes | Specifically, the ICE agent will start its timer once it believes | |||
| ICE connectivity checks are starting. This occurs when the agent has | ICE connectivity checks are starting. This occurs when the agent has | |||
| sent the values needed to perform connectivity checks | sent the values needed to perform connectivity checks | |||
| (e.g., the Username Fragment and Password denoted in | (e.g., the Username Fragment and Password denoted in | |||
| <xref target="RFC8445" />, Section 5.3) | <xref target="RFC8445" sectionFormat="comma" section="5.3"/>) | |||
| and has received some indication that the remote side is | and has received some indication that the remote side is | |||
| ready to start connectivity checks, typically via receipt of the values | ready to start connectivity checks, typically via receipt of the values | |||
| mentioned above. Note that the agent will start the timer even if it | mentioned above. Note that the agent will start the timer even if it | |||
| has not sent or received any ICE candidates. | has not sent or received any ICE candidates. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| The RECOMMENDED duration for the PAC timer is equal to the agent's | The <bcp14>RECOMMENDED</bcp14> duration for the PAC timer is equal to th e agent's | |||
| connectivity check transaction timeout, including all retransmissions. | connectivity check transaction timeout, including all retransmissions. | |||
| When using default values for RTO and Rc, this amounts to 39.5 seconds, | When using default values for retransmission timeout (RTO) and Rc, this | |||
| as explained in <xref target="RFC5389" />, Section 7.2.1. | amounts to 39.5 seconds, | |||
| as explained in <xref target="RFC5389" sectionFormat="comma" | ||||
| section="7.2.1"/>. | ||||
| This timeout value is chosen to roughly coincide with the maximum | This timeout value is chosen to roughly coincide with the maximum | |||
| possible duration of ICE connectivity checks from the remote peer, | possible duration of ICE connectivity checks from the remote peer, | |||
| which, if successful, could create peer-reflexive candidates. Because | which, if successful, could create peer-reflexive candidates. Because | |||
| the ICE agent doesn't know the exact number of candidate pairs and pacin g | the ICE agent doesn't know the exact number of candidate pairs and pacin g | |||
| interval in use by the remote side, this timeout value is simply a | interval in use by the remote side, this timeout value is simply a | |||
| guess, albeit an educated one. Regardless, for this particular problem, | guess, albeit an educated one. Regardless, for this particular problem, | |||
| the desired benefits will be realized as long as the agent waits | the desired benefits will be realized as long as the agent waits | |||
| some reasonable amount of time, and, as usual, the application is in | some reasonable amount of time, and, as usual, the application is in | |||
| the best position to determine what is reasonable for its scenario. | the best position to determine what is reasonable for its scenario. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| While the timer is still running, the ICE agent MUST NOT update a checkl ist state | While the timer is still running, the ICE agent <bcp14>MUST NOT</bcp14> update a checklist state | |||
| from Running to Failed, even if there are no pairs left in the checklist to check. | from Running to Failed, even if there are no pairs left in the checklist to check. | |||
| As a result, the ICE agent will not remove any data streams or set the s tate of the | As a result, the ICE agent will not remove any data streams or set the s tate of the | |||
| ICE session to Failed as long as the timer is running. | ICE session to Failed as long as the timer is running. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| When the timer eventually elapses, the ICE agent MUST resume typical | When the timer period eventually elapses, the ICE agent <bcp14>MUST</bcp 14> resume typical | |||
| ICE processing, including setting the state of any checklists to Failed if they | ICE processing, including setting the state of any checklists to Failed if they | |||
| have no pairs left to check, and handling any consequences as indicated | have no pairs left to check and handling any consequences as indicated | |||
| in <xref target="RFC8445" />, Section 8.1.2. Naturally, if there are no | in <xref target="RFC8445" sectionFormat="comma" section="8.1.2"/>. | |||
| such checklists, no action is necessary. | Naturally, if there are no such checklists, no action is necessary. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| One consequence of this behavior is that in cases where ICE should fail, | One consequence of this behavior is that in cases where ICE should fail, | |||
| e.g., where both sides provide candidates with unsupported address famil ies, | e.g., where both sides provide candidates with unsupported address famil ies, | |||
| ICE will no longer fail immediately, and only fail when the | ICE will no longer fail immediately -- it will only fail when the | |||
| PAC timer expires. However, because most ICE scenarios | PAC timer expires. However, because most ICE scenarios | |||
| require an extended period of time to determine failure, the | require an extended period of time to determine failure, the | |||
| fact that some specific scenarios no longer fail fast should have | fact that some specific scenarios no longer fail quickly should have | |||
| minimal application impact, if any. | minimal application impact, if any. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Note also that the PAC timer is potentially relevant to the ICE nominati on | Note also that the PAC timer is potentially relevant to the ICE nominati on | |||
| procedure described in <xref target="RFC8445" />, Section 8.1.1. That | procedure described in <xref target="RFC8445" sectionFormat="comma" sect ion="8.1.1"/>. That | |||
| specification does not define a minimum duration for ICE processing | specification does not define a minimum duration for ICE processing | |||
| prior to nomination of a candidate pair, but in order to select the | prior to nomination of a candidate pair, but in order to select the | |||
| best candidate pair, ICE needs to run for enough time in order to allow | best candidate pair, ICE needs to run for enough time in order to allow | |||
| peer-reflexive candidates to be discovered and checked, as noted above. | peer-reflexive candidates to be discovered and checked, as noted above. | |||
| Accordingly, the controlling ICE agent SHOULD wait a sufficient amount | Accordingly, the controlling ICE agent <bcp14>SHOULD</bcp14> wait a suff | |||
| of time before nominating candidate pairs, and it MAY use the PAC timer | icient amount | |||
| of time before nominating candidate pairs, and it <bcp14>MAY</bcp14> use | ||||
| the PAC timer | ||||
| to do so. As always, the controlling ICE agent retains | to do so. As always, the controlling ICE agent retains | |||
| full discretion, and MAY decide, based on its own criteria, to nominate | full discretion and <bcp14>MAY</bcp14> decide, based on its own criteria | |||
| pairs prior to the PAC timer elapsing. | , to nominate | |||
| pairs prior to the PAC timer period elapsing. | ||||
| </t> | </t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Update to RFC XXXX"> | <name>Update to RFC 8838</name> | |||
| <t> | ||||
| [RFC EDITOR NOTE: Please replace RFC XXXX with the RFC number of | ||||
| draft-ietf-ice-trickle once it has been published.] | ||||
| </t> | ||||
| <t> | <t> | |||
| Trickle ICE <xref target="I-D.ietf-ice-trickle" /> | Trickle ICE <xref target="RFC8838"/> | |||
| considers a similar problem, namely whether an ICE agent should allow | considers a similar problem, namely whether an ICE agent should allow | |||
| a checklist to enter the Failed state if more candidates might | a checklist to enter the Failed state if more candidates might | |||
| still be provided by the remote peer. The solution, specified in | still be provided by the remote peer. The solution, specified in | |||
| <xref target="I-D.ietf-ice-trickle" />, Section 8, is to | <xref target="RFC8838" sectionFormat="comma" section="8"/>, is to | |||
| wait until an end-of-candidates indication has been received | wait until an end-of-candidates indication has been received | |||
| before determining ICE failure. | before determining ICE failure. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| However, for the same reasons described above, | However, for the same reasons described above, | |||
| the ICE agent may discover peer-reflexive candidates after it has | the ICE agent may discover peer-reflexive candidates after it has | |||
| received the end-of-candidates indication, and so the solution | received the end-of-candidates indication, and so the solution | |||
| proposed by this document MUST still be used even when | proposed by this document <bcp14>MUST</bcp14> still be used even when | |||
| the ICE agent is using Trickle ICE. | the ICE agent is using Trickle ICE. | |||
| </t> | </t> | |||
| <t> | <t> | |||
| Note also that sending an end-of-candidates indication is only a | Note also that sending an end-of-candidates indication is only a | |||
| SHOULD-strength requirement, which means that ICE agents will need | <bcp14>SHOULD</bcp14>-strength requirement, which means that ICE agents will need | |||
| to implement a backup mechanism to decide when all candidates | to implement a backup mechanism to decide when all candidates | |||
| have been received, typically a timer. Accordingly, ICE agents | have been received, typically a timer. Accordingly, ICE agents | |||
| MAY use the PAC timer to also serve as an end-of-candidates fallback. | <bcp14>MAY</bcp14> use the PAC timer to also serve as an end-of-candidat es fallback. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="section.sec" numbered="true" toc="default"> | ||||
| <section anchor="section.sec" title="Security Considerations"> | <name>Security Considerations</name> | |||
| <t> | <t> | |||
| The security considerations for ICE are defined in <xref target="RFC8445 | The security considerations for ICE are defined in <xref target="RFC8445 | |||
| " pageno="false" format="default"/>. | " format="default"/>. | |||
| This specification only recommends that ICE agents wait for a certain ti | This specification only recommends that ICE agents wait for a certain | |||
| me of period before they declare | period of time before they declare | |||
| ICE failure, and does not introduce new security considerations. | ICE failure; it does not introduce new security considerations. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| <section anchor="section.iana" numbered="true" toc="default"> | ||||
| <section anchor="section.iana" title="IANA considerations"> | <name>IANA Considerations</name> | |||
| <t> | <t> | |||
| This specification makes no requests to IANA. | This document has no IANA actions. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5389. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8445. | ||||
| xml"/> | ||||
| <section anchor="sec-acks" title="Acknowledgements" toc="default"> | <!-- draft-ietf-ice-trickle (RFC 8838) --> | |||
| <reference anchor="RFC8838" target="https://www.rfc-editor.org/info/rfc8838"> | ||||
| <front> | ||||
| <title>Trickle ICE: Incremental Provisioning of Candidates for the | ||||
| Interactive Connectivity Establishment (ICE) Protocol</title> | ||||
| <author initials="E" surname="Ivov" fullname="Emil Ivov"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="J" surname="Uberti" fullname="Justin Uberti"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="P" surname="Saint-Andre" fullname="Peter Saint-Andre"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="January" year="2021" /> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8838" /> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8838"/> | ||||
| </reference> | ||||
| </references> | ||||
| <section anchor="sec-acks" toc="default" numbered="false"> | ||||
| <name>Acknowledgements</name> | ||||
| <t> | <t> | |||
| Roman Shpount, Nils Ohlmeier and Peter Thatcher provided lots of useful input and | <contact fullname="Roman Shpount"/>, <contact fullname="Nils Ohlmeier"/> , and <contact fullname="Peter Thatcher"/> provided lots of useful input and | |||
| comments. | comments. | |||
| </t> | </t> | |||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| <?rfc include="reference.RFC.2119"?> | ||||
| <?rfc include="reference.RFC.5389"?> | ||||
| <?rfc include="reference.RFC.8174"?> | ||||
| <?rfc include="reference.RFC.8445"?> | ||||
| <?rfc include='reference.I-D.ietf-ice-trickle'?> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 54 change blocks. | ||||
| 138 lines changed or deleted | 162 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||