It does seem awfully complicated compared to how I would imagine the 
functionality could be implemented if you just did it on top of UDP. One of the 
costs of using UDP is that one needs to support protocol-specific end-to-end 
congestion control as well as protocol-specific datagram-loss handling.
 
To me a far simpler idea would be to start with "UDP congestion control" that 
didn't assume UDP datagrams arrived in-order and at-most-once, using observed 
drops and ECN marks, or end-to-end delay (by timestamping packets).
 
Then use on that logic a sort of erasure coding (allowing reconstruction of 
packets containing backspace/delete) that allows out-of-order delivery as 
information becomes known. Erasure coding (like Digital Fountain codes) are 
more efficient than retransmission of duplicates of packets - if there are N 
packets queued in the network, you'd need some kind of SACK-like scheme, but 
SACK doesn't work very well when the buffering is a backup in the network, 
rather than in the receive endpoint's OS queueing. Digital Fountains or its 
successors work great! (and I think the patent expired finally).
 
Up to this point, encryption hasn't been mentioned. But there are encryption 
schemes that work very well for UDP - emulating a "one-time pad" based on a 
random start value fed back into a good cipher. Ideally it would be inserted 
under the erasure code layer. What you need to know to decrypt a block to feed 
into the erasure-code decoder is just a sequence number for the transmitted 
block, so you can index into the OTP.
 
Very simple.
 
But doing this on top of WebRTC (not a bad protocol, just a complicated 
platform) etc. seems to introduce problems that need to be patched around.
 
 
On Wednesday, April 15, 2020 7:34pm, "Dave Taht" <dave.t...@gmail.com> said:



> dave
> 
> I am a big fan of udp. but reading about how this was implemented made
> my head hurt. Then add crypto.
> 
> https://www.meetecho.com/blog/realtime-text-sip-and-webrtc/
> 
> --
> Make Music, Not War
> 
> Dave Täht
> CTO, TekLibre, LLC
> http://www.teklibre.com
> Tel: 1-831-435-0729
> 
_______________________________________________
Cerowrt-devel mailing list
Cerowrt-devel@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cerowrt-devel

Reply via email to