TRICKLE ICE TRICKLE ICE draft-ietf-mmusic-trickle-ice Emil Ivov, - - PDF document

trickle ice trickle ice
SMART_READER_LITE
LIVE PREVIEW

TRICKLE ICE TRICKLE ICE draft-ietf-mmusic-trickle-ice Emil Ivov, - - PDF document

TRICKLE ICE TRICKLE ICE draft-ietf-mmusic-trickle-ice Emil Ivov, Eric Rescorla, Justin Uberti 90% draft-ietf-mmusic-trickle-ice-sip Emil Ivov, Enrico Marocco, Christer Holmberg 90% draft-ivov-disspatch-sdpfrag-03 Emil Ivov, Adam Roach, Anyone


slide-1
SLIDE 1

TRICKLE ICE

slide-2
SLIDE 2

TRICKLE ICE

Emil Ivov, Eric Rescorla, Justin Uberti

draft-ietf-mmusic-trickle-ice

Emil Ivov, Enrico Marocco, Christer Holmberg

draft-ietf-mmusic-trickle-ice-sip

90% 90%

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30%

slide-3
SLIDE 3

Reminder: Vanilla ICE

STUN Server STUN Server Bob Alice

Vanilla ICE as per RFC 5245

disco disco

  • ffer and

candidates … connectivity checks … answer and candidates

3/35
slide-4
SLIDE 4

Reminder: Vanilla ICE vs Trickle ICE

STUN Server STUN Server

Bob Alice

Vanilla ICE as per RFC 5245

disco disco

  • ffer and

candidates … connectivity checks … answer and candidates

STUN Server STUN Server

Bob Alice

disco disco O/A with host

  • r no cands

… more cands & conn checks …

Trickle ICE

4/35
slide-5
SLIDE 5

Vanilla ICE as per RFC 5245

STUN Server STUN Server

Bob Alice

disco disco

  • ffer and

candidates … connectivity checks … answer and candidates

STUN Server STUN Server

Bob Alice

disco disco O/A with host

  • r no cands

… more cands & conn checks …

Trickle ICE

slide-6
SLIDE 6

Emil Ivov, Eric Rescorla, Justin Uberti

draft-ietf-mmusic-trickle-ice

90%

slide-7
SLIDE 7

there was this one issue:

v=0 … c=IN IP6 :: a=ice-options:trickle a=ice-pwd:asd88fgpdd7 a=ice-ufrag:8hhY m=audio 9 RTP/AVP 0 96 a=rtpmap:0 PCMU/8000 a=rtpmap:96 opus/48000/2 m=audio 9 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 opus/48000/2 m=video 9 RTP/AVP 0 98 a=rtpmap:98 VP8/90000 m=video 9 RTP/AVP 0 99 a=rtpmap:99 VP8/90000

concerns that

multiple 9s

may anger

bundle/jsep

slide-8
SLIDE 8

there was this one issue:

v=0 … c=IN IP6 :: a=ice-options:trickle a=ice-pwd:asd88fgpdd7 a=ice-ufrag:8hhY m=audio 9 RTP/AVP 0 96 a=rtpmap:0 PCMU/8000 a=rtpmap:96 opus/48000/2 m=audio 9 RTP/AVP 0 97 a=rtpmap:0 PCMU/8000 a=rtpmap:97 opus/48000/2 m=video 9 RTP/AVP 0 98 a=rtpmap:98 VP8/90000 m=video 9 RTP/AVP 0 99 a=rtpmap:99 VP8/90000

concerns that

multiple 9s

may anger

bundle/jsep

resolved in

bundle/jsep

slide-9
SLIDE 9

Emil Ivov, Eric Rescorla, Justin Uberti

draft-ietf-mmusic-trickle-ice

90%

THERE HAVE BEEN NO CHANGES SINCE LAST TIME (IETF89) BUT THE DOCUMENT IS PRETTY MUCH READY FOR WORKING GROUP LAST CALL, SO PLEASE HAVE A READ

slide-10
SLIDE 10

Emil Ivov, Enrico Marocco, Christer Holmberg

draft-ietf-mmusic-trickle-ice-sip

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30% 90%

slide-11
SLIDE 11

individual-01

this is the boring part

Δs since

slide-12
SLIDE 12 12/35

added protocol overview and rationale

+-------------------------------+ +-------------------------------+ | Alice +--------------+ | | +--------------+ Bob | | | Offer/Answer | | | | Offer/Answer | | | +-------+ | Module | | | | Module | +-------+ | | | ICE | +--------------+ | | +--------------+ | ICE | | | | Agent | | | | | | Agent | | | +-------+ | | | | +-------+ | +-------------------------------+ +-------------------------------+ | | | | | | INVITE (Offer) | | | |--------------------->| | | | 183 (Answer) | | | |<---------------------| | | | | | | | | SIP INFO (more candidates) | |----------------------------------------------------->| | SIP INFO (more candidates) | |<-----------------------------------------------------| | | | STUN Binding Requests/Responses | |----------------------------------------------------->| | STUN Binding Requests/Responses | |<-----------------------------------------------------| | | | | | | | | 5245 SIP re-INVITE | | | |--------------------->| | | | 200 OK | | | |<---------------------| |
slide-13
SLIDE 13 13/35

asserting offer/answer delivery and state

Alice Bob | | | INVITE (Offer) | |------------------------>| | 183 (Answer) | |<------------------------| | | +----------------------+ | |Alice: I know Bob can| | |trickle and I know his| | |dialog is in the early| | |state. Send INFO! | | +----------------------+ | | | | INFO/OK (SRFLX Cand.) | |------------------------>| | | Alice Bob | | | INVITE | |------------------------>| | 183 (Offer) | |<------------------------| | PRACK (Answer) | |------------------------>| | | | +----------------------+ | |Bob: I know Alice can| | |trickle and I know her| | |dialog is in the early| | |state. Send INFO! | | +----------------------+ | | | INFO/OK (SRFLX Cand.) | |<------------------------| | |
slide-14
SLIDE 14 14/35
  • ffer/answer and working around the PRACK
Alice Bob | | | INVITE (Offer) | |------------------------>| | 183 (Answer) | |<------------------------| | | | +----------------------+ | |Bob: I don't know if | | |Alice got my 183 or if| | |her dialog is already | | |in the early state. | | | Can I send INFO??? | | +----------------------+ | | Alice Bob | | | INVITE (Offer) | |------------------------>| | 183 (Answer) | |<------------------------| | INFO/OK (SRFLX Cand.) | |------------------------>| | | | +----------------------+ | |Bob: Now I know Alice| | | is ready. Send INFO! | | +----------------------+ | INFO/OK (SRFLX Cand.) | |<------------------------| | |
slide-15
SLIDE 15 15/35

5 other ways trickle ICE makes the world a better place

  • 1. Candidates are sent incrementally. In addition to the newly discovered candidates,

every INFO message contains all local candidates an agent has previously sent. This allows misordered/lost INFOs to not be a problem.

slide-16
SLIDE 16 16/35

5 other ways trickle ICE makes the world a better place

  • 1. Candidates are sent incrementally. In addition to the newly discovered candidates,

every INFO message contains all local candidates an agent has previously sent. This allows misordered/lost INFOs to not be a problem.

  • 2. INFO requests must always carry the a=ice-ufrag and a=ice-pwd attributes (as either

session or media-level attributes) so that the requests can be matched to a specific ICE generation (i.e., or an offer/answer negotiation). a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=mid:1 a=candidate:1 1 UDP 1658497328 192.168.100.33 5000 typ host a=candidate:2 1 UDP 1658497328 96.1.2.3 5000 typ srflx a=mid:2 a=candidate:2 1 UDP 1658497328 96.1.2.3 5002 typ srflx a=end-of-candidates

slide-17
SLIDE 17 17/35

5 other ways trickle ICE makes the world a better place

  • 1. Candidates are sent incrementally. In addition to the newly discovered candidates,

every INFO message contains all local candidates an agent has previously sent. This allows misordered/lost INFOs to not be a problem.

  • 2. INFO requests must always carry the a=ice-ufrag and a=ice-pwd attributes (as either

session or media-level attributes) so that the requests can be matched to a specific ICE generation (i.e., or an offer/answer negotiation).

  • 3. SIP User Agents may be configured to force use of full trickle where maintainers

expect all endpoints to support it. This would likely be the case for WebRTC environments.

  • 4. Support for trickle ICE may also be dynamically discover with RFC 3840 but *only if*

GRUU is also supported (otherwise there is no way to guarantee that the endpoint responding to caps query will be the same as the one that will get a subsequent INVITE

  • 5. For those with an aversion to the above discovery hacks, trickle ICE for SIP can also

be used in half trickle mode where the offerer starts with a regular ICE offer and, if the answerer can trickle, it just does.

slide-18
SLIDE 18

new suggestion

this is the fun part!

courtesy of Thomas Stach. thanks!

slide-19
SLIDE 19 19/35

disco disco 5245 SIP re-INVITE / 200 OK / ACK 200 OK (Answer from 183) / ACK

media

INVITE (Offer) PRACK / INFO (more cands / end-of-candidates) 183 (Answer) 183 (Answer)

typical tricle flow

more candidates & conn checks

TURN Server Bob TURN Server Alice
slide-20
SLIDE 20 20/35

disco disco 5245 SIP re-INVITE / 200 OK / ACK or NOT! 200 OK (Answer) / ACK

media

INVITE (Offer) PRACK / INFO (more cands / end-of-candidates) 183 (trickling) 183 (trickling)

typical tricle flow

more candidates & conn checks

TURN Server Bob TURN Server Alice a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=mid:1 a=candidate:1 1 UDP 1658497328 192.168.100.33 5000 typ host a=candidate:2 1 UDP 1658497328 96.1.2.3 5000 typ srflx a=mid:2 a=candidate:2 1 UDP 1658497328 96.1.2.3 5002 typ srflx
slide-21
SLIDE 21

Content-Type: application/sdpfrag

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30%

21/35
slide-22
SLIDE 22

Content-Type: application/sdpfrag

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30%

means: any syntactically valid line of SDP

any combination of such lines in no particular order

22/35

a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=mid:1 a=candidate:1 1 UDP 165 1.18.10.33 5000 typ host a=candidate:2 1 UDP 168 91.21.2.3 5000 typ srflx a=mid:2 a=candidate:2 1 UDP 164 96.11.2.3 5002 typ srflx a=end-of-candidates

slide-23
SLIDE 23

Content-Type: application/sdpfrag

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30%

London: why don’t we give it some structure

23/35

a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY a=mid:1 a=candidate:1 1 UDP 165 1.18.10.33 5000 typ host a=candidate:2 1 UDP 168 91.21.2.3 5000 typ srflx a=mid:2 a=candidate:2 1 UDP 164 96.11.2.3 5002 typ srflx a=end-of-candidates

slide-24
SLIDE 24

Content-Type: application/sdpfrag

Emil Ivov, Adam Roach, Anyone Else?

draft-ivov-disspatch-sdpfrag-03

30%

London: why don’t we give it some structure

24/35

a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-ufrag:8hhY m=audio 54400 RTP/SAVPF 0 96 a=mid:1 a=candidate:1 1 UDP 165 1.18.10.33 5000 typ host a=candidate:2 1 UDP 168 91.21.2.3 5000 typ srflx m=video 55400 RTP/SAVPF 96 97 a=mid:2 a=candidate:2 1 UDP 164 96.11.2.3 5002 typ srflx a=end-of-candidates

but then how would that work with POF/PAN?