One other thing I'm noticing--I've seen webrtc send a single packet containing "Server Hello, Certificate, Server Key Exchange, Certificate Request, Server Hello Done", and also send each of those in its own packet (this only seems to happen in the event of send/receive failure. Any idea what's going on here?
On Thursday, February 12, 2015 at 12:27:55 PM UTC-7, Jeremy Noring wrote:I'm working with licode, which has its own code for handling a DTLS handshake built on top of libsrtp, libnice and openssl. From what I can see by reading code, logs and wireshark, here's what the process looks like:
- Licode receives an event that it has a valid pair from libnice (i.e. ICE negotiation was successful). It boils this up and initiates the DTLS handshake.
- Licode starts by sending "Client Hello" to the webrtc client
- Webrtc client responds with "Server Hello, Certificate, Server Key Exchange, Certificate Request, Server Hello Done"
- Licode responds with "Certificate, Client Key Exchange, Certificate Verify, Change Cipher Spec, Encrypted Handshake Message"
- Webrtc client responds with "New Session Ticket, Change Cipher Spec, Encrypted Handshake Message"
- At this point, they freely send/receive media over the line.
Does this approach generally seem correct?Questions:
- Licode will resend the current frame, but it currently only attempts to resend the current frame a single time, one second later. It seems like the spec calls for an exponential backoff here?
- I've noticed that if I drop packets during this process, sometimes the webrtc client will re-send stuff to licode....and sometimes it won't. Does it generally follow the state machine in 4.2.4 of rfc 4347? It seems terribly easy to break the DTLS handshake when randomly dropping sent/received data, and I'm not sure if it's something simply wrong in licode.
- Why does licode initiate with a client hello? When two WebRTC clients connect, is there a convention for who sends "client hello?"
Most of the relevant code in licode can be found in https://github.com/ging/licode/blob/master/erizo/src/erizo/DtlsTransport.cpp and https://github.com/ging/licode/tree/master/erizo/src/erizo/dtls - any advice is much appreciated as always.-Jeremy
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
- Why does licode initiate with a client hello? When two WebRTC clients connect, is there a convention for who sends "client hello?"
The a=setup attribute in SDP governs this.
2015-03-05 15:53:04,090 - INFO: DtlsTransport - video - DTLSRTP Start
2015-03-05 15:53:04,090 - ERROR: dtls.DtlsSocketContext - start
2015-03-05 15:53:04,090 - INFO: dtls.DtlsSocket - mOutBio Pending: 214 and read: 214
2015-03-05 15:53:04,090 - DEBUG: DtlsTransport - video - Sending DTLS message to 1, len: 214
2015-03-05 15:53:04,091 - DEBUG: NiceConnection - video - NICE Component State Changed 1 - 3
2015-03-05 15:53:04,092 - DEBUG: DtlsTransport - video - Received DTLS message from 1, len 812
2015-03-05 15:53:04,092 - INFO: dtls.DtlsSocket - mInBio bytes to write: 812 written: 812
2015-03-05 15:53:04,092 - INFO: dtls.DtlsSocket - doing handshake!
2015-03-05 15:53:04,095 - INFO: dtls.DtlsSocket - mOutBio Pending: 831 and read: 831
2015-03-05 15:53:04,095 - INFO: Resender - Resender destructor
2015-03-05 15:53:04,095 - DEBUG: DtlsTransport - video - Sending DTLS message to 1, len: 831
2015-03-05 15:53:04,096 - DEBUG: DtlsTransport - video - Received DTLS message from 1, len 746 // THIS GETS DROPPED ON THE FLOOR
2015-03-05 15:53:05,095 - WARN: Resender - video - Resending DTLS message to 1, len: 831
2015-03-05 15:53:07,096 - WARN: Resender - video - Resending DTLS message to 1, len: 831
2015-03-05 15:53:11,096 - WARN: Resender - video - Resending DTLS message to 1, len: 831
2015-03-05 15:53:15,097 - WARN: Resender - video - Resending DTLS message to 1, len: 831
2015-03-05 15:53:19,097 - WARN: Resender - video - Resending DTLS message to 1, len: 831
| target "ECIExampleLicode" do | |
| platform :ios, :deployment_target => "8.4" | |
| xcodeproj “ECIExampleLicode/ECIExampleLicode” | |
| pod "libjingle_peerconnection", "9814.2.0" | |
| end |
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/aca61745-2b6c-4888-9b00-9dc79556868f%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/aca61745-2b6c-4888-9b00-9dc79556868f%40googlegroups.com.
--Alvaro