[Cerowrt-devel] real time text

David P. Reed dpreed at deepplum.com
Thu Apr 16 12:16:35 EDT 2020

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.taht at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20200416/fb1beb15/attachment.html>

More information about the Cerowrt-devel mailing list