Trickle ICE Incremental Provisioning of Candidates for the - - PowerPoint PPT Presentation

trickle ice
SMART_READER_LITE
LIVE PREVIEW

Trickle ICE Incremental Provisioning of Candidates for the - - PowerPoint PPT Presentation

Trickle ICE Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol draft-ivov-mmusic-trickle-ice Eric Rescorla Justin Uberti Emil Ivov draft-ivov-mmusic-trickle-ice 1/16 E. Rescorla, J. Uberti,


slide-1
SLIDE 1

Trickle ICE

Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol draft-ivov-mmusic-trickle-ice Eric Rescorla Justin Uberti Emil Ivov

draft-ivov-mmusic-trickle-ice

  • E. Rescorla, J. Uberti, E. Ivov

1/16

slide-2
SLIDE 2

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

2/16

slide-3
SLIDE 3

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

3/16

slide-4
SLIDE 4

One Main Remaining Issue

How do we handle candidate unfreezing?

4/16

draft-ivov-mmusic-trickle-ice

  • E. Rescorla, J. Uberti, E. Ivov
slide-5
SLIDE 5

Unfreezing Pairs

5/16

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-6
SLIDE 6

Unfreezing Pairs

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A1:5000/B2:5000 A2:5000/B1:5000 A2:5000/B2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 A2:5001/B1:5001 A2:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 A1:5002/B2:5002 A2:5002/B1:5002 A2:5002/B2:5002 Video.2 A1:5003/B1:5003 A1:5003/B2:5003 A2:5003/B1:5003 A2:5003/B2:5003

6/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 B2:5000/A1:5000 B2:5000/A2:5000 Audio.2 B1:5001/A1:5001 B1:5001/A2:5001 B2:5001/A1:5001 B2:5001/A2:5001 CheckList.2 Video.1 B1:5002/A1:5002 B1:5002/A2:5002 B2:5002/A1:5002 B2:5002/A2:5002 Video.2 B1:5003/A1:5003 B1:5003/A2:5003 B2:5003/A1:5003 B2:5003/A2:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-7
SLIDE 7

Initial Unfreeze

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A1:5000/B2:5000 A2:5000/B1:5000 A2:5000/B2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 A2:5001/B1:5001 A2:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 A1:5002/B2:5002 A2:5002/B1:5002 A2:5002/B2:5002 Video.2 A1:5003/B1:5003 A1:5003/B2:5003 A2:5003/B1:5003 A2:5003/B2:5003

7/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 B2:5000/A1:5000 B2:5000/A2:5000 Audio.2 B1:5001/A1:5001 B1:5001/A2:5001 B2:5001/A1:5001 B2:5001/A2:5001 CheckList.2 Video.1 B1:5002/A1:5002 B1:5002/A2:5002 B2:5002/A1:5002 B2:5002/A2:5002 Video.2 B1:5003/A1:5003 B1:5003/A2:5003 B2:5003/A1:5003 B2:5003/A2:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-8
SLIDE 8

Check List Unfreeze

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A1:5000/B2:5000 A2:5000/B1:5000 A2:5000/B2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 A2:5001/B1:5001 A2:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 A1:5002/B2:5002 A2:5002/B1:5002 A2:5002/B2:5002 Video.2 A1:5003/B1:5003 A1:5003/B2:5003 A2:5003/B1:5003 A2:5003/B2:5003

8/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 B2:5000/A1:5000 B2:5000/A2:5000 Audio.2 B1:5001/A1:5001 B1:5001/A2:5001 B2:5001/A1:5001 B2:5001/A2:5001 CheckList.2 Video.1 B1:5002/A1:5002 B1:5002/A2:5002 B2:5002/A1:5002 B2:5002/A2:5002 Video.2 B1:5003/A1:5003 B1:5003/A2:5003 B2:5003/A1:5003 B2:5003/A2:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-9
SLIDE 9

Foundation Unfreeze, All Lists

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A1:5000/B2:5000 A2:5000/B1:5000 A2:5000/B2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 A2:5001/B1:5001 A2:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 A1:5002/B2:5002 A2:5002/B1:5002 A2:5002/B2:5002 Video.2 A1:5003/B1:5003 A1:5003/B2:5003 A2:5003/B1:5003 A2:5003/B2:5003

9/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 B2:5000/A1:5000 B2:5000/A2:5000 Audio.2 B1:5001/A1:5001 B1:5001/A2:5001 B2:5001/A1:5001 B2:5001/A2:5001 CheckList.2 Video.1 B1:5002/A1:5002 B1:5002/A2:5002 B2:5002/A1:5002 B2:5002/A2:5002 Video.2 B1:5003/A1:5003 B1:5003/A2:5003 B2:5003/A1:5003 B2:5003/A2:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-10
SLIDE 10

Unfreezing Pairs with Trickle

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A2:5000 A2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 Video.2 A1:5003/B1:5003

10/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 Audio.2 B1:5001/A1:5001 B2:5001 B2:5001 CheckList.2 Video.1 B1:5002/A1:5002 Video.2 B1:5003/A1:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-11
SLIDE 11

Unfreezing Pairs with Trickle: Failure

A’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation A1B1 Foundation A1B2 Foundation A2B1 Foundation A2B2 CheckList.1 Audio.1 A1:5000/B1:5000 A2:5000 A2:5000 Audio.2 A1:5001/B1:5001 A1:5001/B2:5001 CheckList.2 Video.1 A1:5002/B1:5002 Video.2 A1:5003/B1:5003

11/16

B’s lists

Host/Host Host/Srflx Srflx/Host Srflx/Srflx Str.Cmp Foundation B1A1 Foundation B1A2 Foundation B2A1 Foundation B2A2 CheckList.1 Audio.1 B1:5000/A1:5000 B1:5000/A2:5000 Audio.2 B1:5001/A1:5001 B2:5001 B2:5001 CheckList.2 Video.1 B1:5002/A1:5002 Video.2 B1:5003/A1:5003

Alice Host: A1 Alice STUN: A2 Bob Host: B1 Bob STUN: B2 Audio.RTP: 5000 Audio.RTCP: 5001 Video.RTP: 5002 Video.RTCP: 5003

slide-12
SLIDE 12

Two ways to address this

  • We forget about freezing (Chrome, Firefox)

Slim(?) chance of timeouts if STUN & sign lag

  • We preserve component order

May slow delay ICE processing a bit in some cases

12/16

draft-ivov-mmusic-trickle-ice

  • E. Rescorla, J. Uberti, E. Ivov
slide-13
SLIDE 13

Now to the fun stuff:

Trickle ICE with SIP

draft-ivov-mmusic-trickle-ice-sip Enrico Marocco Christer Holmberg Emil Ivov

13/16

slide-14
SLIDE 14

Vague consensus on the following:

14/16

STUN/TURN Server Bob STUN /TURN Server Alice

disco disco 5245 SIP re-INVITE / 200 OK more cands & conn checks 200 OK (Answer from 180)

media

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

slide-15
SLIDE 15

15/16

Summary of trickle ICE for SIP

  • PRACK is optional
  • Can be replaced with INFO: end-of-candidates
  • Candidates are trickled with INFOs

Cumulatively or sequentially?

  • Cumulative: allows not to care for INFO delivery but
  • Sequential: easier mapping on top of current WebRTC API
slide-16
SLIDE 16

application/sdpfrag

INFO sip:alice@example.com SIP/2.0 ... Info-Package: trickle-ice Content-type: application/sdpfrag Content-Disposition: Info-Package Content-length: ... 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 Content type is application/sdpfrag defined in draft-ivov-mmusic-sdpfrag

(help needed)

16/16