- From: Justin Uberti <juberti@google.com>
- Date: Fri, 2 Sep 2011 13:52:19 -0400
- To: Matthew Kaufman <matthew.kaufman@skype.net>
- Cc: public-webrtc@w3.org
- Message-ID: <CAOJ7v-2ZmPjZ0TFfDpJ70tkxS9Tuonscf-R8aXcCGq42cMapWQ@mail.gmail.com>
On Fri, Sep 2, 2011 at 12:59 PM, Matthew Kaufman <matthew.kaufman@skype.net>wrote: > On 9/2/11 5:52 PM, Justin Uberti wrote: > >> Section 5 in the WEBRTC spec (http://dev.w3.org/2011/** >> webrtc/editor/webrtc.html<http://dev.w3.org/2011/webrtc/editor/webrtc.html>) >> discusses at length a mechanism for transmitting and securing datagrams over >> the PeerConnection transport. At both an API and a wire level, this >> mechanism is quite different from the existing mechanisms that are used for >> transmission of audio and video data: >> - The availability of the data stream is not easily known, whereas >> audio/video can be negotiated and stream existence learned from the *Stream >> methods/callbacks. >> > > Agree. > > - It defines its own encryption mechanism, whereas audio/video will use >> SDES-SRTP, or DTLS-SRTP >> > > Agree. > > > - Only one data stream exists, whereas audio/video can have many streams >> > > Agree. > > > >> I would like to propose an approach where we remove the send() method, and >> add a createDataStream() method to PeerConnection. This method creates a >> DataStream object, a descendant of MediaStream. This object can then be >> added/removed from PeerConnection via the existing add/removeStream APIs, >> and it will show up in localStreams/remoteStreams like any other >> MediaStream. It will also fire events indicating the stream status. >> > > Great idea. > > > >> Some specifics: >> - This stream will show up in SDP >> > > I don't like SDP, but if we do SDP, that's where it'd need to be. > > > , and it can be its own RTP session, >> > > Disagree. RTP semantics are inappropriate for sending data. The data should > be sent using one of the two methods for muxing data that were proposed (one > by me, one by cbran). > > There should be a way to demux multiple streams of data using an additional > sub-header. I'm far from sold on RTP for this, but since I think we need a sequence number (for congestion control) and a stream id (for demux), it seems we're already halfway there. Will look at the other methods - do you recall if these were mentioned in a public draft or on the mailing list? > > or muxed with other RTP sessions, just like any other audio/video stream. >> If the remote side doesn't support/want the data stream, it can signal this >> via its answer SDP. >> > > Agree. > > - For encryption, it simply uses the underlying encryption of the session, >> i.e. none, SDES-SRTP, or DTLS-SRTP, as appropriate. >> > > Absolutely correct. Possibly needs masking for the "none" case however... > need to discuss. > > > - Multiple DataStreams can be created, just like MediaStreams. This may be >> of value to certain applications, who want to have multiple flows, perhaps >> with their own QoS. >> > > Agree. Prioritization makes sense here, especially if/when we get > congestion control. > > - We can (perhaps later) add different kinds of DataStreams, i.e. datagram >> and reliable. When creating a DataStream, you can specify what kind of >> stream you want. >> > > Also a good idea. > > Matthew Kaufman > >
Received on Friday, 2 September 2011 17:53:03 UTC