webrtcを支えるマイナーなプロトコルsrtp/dtls/sctpを分かった気になる

52
WebRTC をををををををををををををを SRTP/DTLS/SCTP ををををををををを - kind of feel like understanding SRTP/DTLS/SCTP - @iwashi86 2014/08/01 WebRTC Meetup Tokyo #3

Upload: iwashi86

Post on 29-Nov-2014

3.103 views

Category:

Technology


1 download

DESCRIPTION

WebRTC Meetup Tokyo #3の発表資料です。 WebRTCを支えるマイナーなプロトコル SRTP/DTLS/SCTPを分かった気になる資料です。 P.38 誤記 Under the food -> hood です。

TRANSCRIPT

Page 1: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

WebRTC を支えるマイナーなプロトコルSRTP/DTLS/SCTP を分かった気になる

- kind of feel like understanding SRTP/DTLS/SCTP -

@iwashi862014/08/01 WebRTC Meetup Tokyo #3

Page 2: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

●Attribute  Name   Yoshimasa Iwase       @iwashi86  web   iwashi.co

●Work ・ Web Engineer@NTT Com ・ HTML5 Experts.jp Editor

●Recently ・ has become PHPer for 2 months   ( ついにぺちぱーになりました )

Page 3: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Takeaway本日お持ち帰りいただくこと

Page 4: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

IPUDPDTLS

SRTP SCTPAudio/Video Data

WebRTC protocol stack

Page 5: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

IPUDPDTLS

SRTP SCTPAudio/Video DataUnderstanding…

Page 6: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

After this talkyou’ll be able to answer

このお話が終わる頃には次の質問に答えられるように

Page 7: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

What’s DTLS?What’s SRTP?What’s SCTP?

DTLS,SRTP,SCTP? 何それ美味しいの ?

Page 8: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Caveat※ 注

Page 9: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Feel like understanding(Please check RFC for further information)

分かった気になってるだけ( 詳細は RFC 読んでね )

Page 10: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Main Topicここから本題

Page 11: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

IPUDPDTLS

SRTP SCTPAudio/Video Data

Let’s start with SRTP では SRTP から

Page 12: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

SRTP

Page 13: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

S + RTP

Page 14: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

S + RTPSecure

Page 15: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

S + RTPSecure

Real-timeTransportProtocol

Page 16: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

RTP?

Page 17: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Protocol forSend/Receive and Audio/Video

Real-time

音声映像をリアルタイムに送受信するプロトコルのこと

Page 18: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Why? How?何で必要なの?どう動くの?

Page 19: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Hello

Ideal( 理想 )

Page 20: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Real world with UDP/IP

Page 21: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Hello

Jitter( ゆらぎ )

Real world with UDP/IP

Page 22: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Hello

Jitter( ゆらぎ )

Out-of-order ( ホレルになった )

Holel

Real world with UDP/IP

Page 23: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Hello

Jitter( ゆらぎ )

Out-of-order ( ホレルになった )

Loss ( まさかの地獄行き )

Hello

Holel

Real world with UDP/IP

Page 24: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Problem and Solutions of RTP課題とその解決方法

Jitter( ゆらぎ )

Out-of-order( 順序逆転 )

Loss( 消失 )

Page 25: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Jitter( ゆらぎ )

Out-of-order( 順序逆転 )

Loss( 消失 )

Timestampタイムスタンプでいつ送ったか記録しておけば

タイミングよく再生できるよ

Problem and Solutions of RTP課題とその解決方法

Page 26: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Jitter( ゆらぎ )

Out-of-order( 順序逆転 )

Loss( 消失 )

Timestampタイムスタンプでいつ送ったか記録しておけば

タイミングよく再生できるよ

Sequence Numberシーケンス番号があれば並べ替えできるよ

Problem and Solutions of RTP課題とその解決方法

Page 27: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Jitter( ゆらぎ )

Out-of-order( 順序逆転 )

Loss( 消失 )

Timestampタイムスタンプでいつ送ったか記録しておけば

タイミングよく再生できるよ

Sequence Numberシーケンス番号があれば並べ替えできるよ

Give up(don’t have time of retransmission)

再送するほど暇じゃない

Problem and Solutions of RTP課題とその解決方法

Page 28: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

RTP is a thin wrapper of UDPRTP は UDP の薄皮みたいなもの

http://www.cl.cam.ac.uk/~jac22/books/mm/book/node159.html

Page 29: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

SRTP is a just secure RTPSRTP は RTP を安全にしただけ

Encrypted Payload暗号化されたペイロード

http://flylib.com/books/2/110/1/html/2/images/ct402614.jpg

Page 30: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Hey, where is encryption key?

あれ? 暗号化の鍵はどこにあるの ?

Page 31: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

IPUDPDTLS

SRTP SCTPAudio/Video Data

That’s why we have DTLS そこで DTLS ですよ

Page 32: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

DTLS

Page 33: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

D + TLS

Datagram(UDP の )

Page 34: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

D + TLS

Datagram(UDP の )

TransportLayer

Security

Page 35: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

TLS?

Page 36: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

You know!知らないとは言わせない

Page 37: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

This one!ここ!

Page 38: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Under the food of HTTPS内部ではこう動いている

https://devcentral.f5.com/Portals/0/images/metapost/News-Articles/ltwagnon/2013/Jun/Windows-Live-Writer-525a2ddcdc82_787C-Modified%20TLS%20Handshake_2.jpg

Page 39: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

What if there is a packet lossパケロスがあったら…

https://devcentral.f5.com/Portals/0/images/metapost/News-Articles/ltwagnon/2013/Jun/Windows-Live-Writer-525a2ddcdc82_787C-Modified%20TLS%20Handshake_2.jpg

Page 40: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

What if there is a packet lossパケロスがあったら…

https://devcentral.f5.com/Portals/0/images/metapost/News-Articles/ltwagnon/2013/Jun/Windows-Live-Writer-525a2ddcdc82_787C-Modified%20TLS%20Handshake_2.jpg

Can’t share key鍵を共有できない

Page 41: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

We need reliability!信頼性さえあれば!

Page 42: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

So we’ve added TCP functions to TLS

そこで TLS に TCP の機能をつけてみた

Page 43: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

DLTS = TLS + TCP (ex. Seq, Order-control)DTLS は TLS に TCP の機能つけたようなもの

Retransmission再送する

Page 44: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

IPUDPDTLS

SRTP SCTPAudio/Video Data

End with SCTP 最後は SCTP

Page 45: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

You’re using now!

使ってないとは言わせない

Page 46: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

STCP is running in LTE core NWSCTP は LTE キャリアコア網の中で動いている

https://www.nttdocomo.co.jp/binary/pdf/corporate/technology/rd/technical_journal/bn/vol19_1/vol19_1_011jp.pdf

Page 47: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

SCTP ≒ TCP結構似てる ( 似せられる )

SCTP ≒ HTTP2レイヤは違えど考え方が似ている

Page 48: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Handshake

SYN

SYN + ACK

ACK

INIT

INIT-ACK

COOKIE

COOKIE-ECHO

TCP SCTP

Page 49: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Difference between STCP and TCPで、何が違うの?

SCTP TCP UDP (参考)

Reliability到達保証

Configurable選べる

Yes No

Order順序制御

Configurable選べる

Yes No

Transmission転送志向

Messageメッセージ志向

Byteバイト志向

Messageメッセージ志向

Multi Streamマルチストリーム有無

Yes No -

Flow / CongestionControl流量 / 輻輳制御

Yes Yes No

Page 50: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Now you might be able to answer

そろそろなんとなく答えられるはず?

Page 51: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

What’s DTLS?What’s SRTP?What’s SCTP?

Page 52: WebRTCを支えるマイナーなプロトコルSRTP/DTLS/SCTPを分かった気になる

Thanks!

おしまい