BBC Optimizing UHD Video Streaming Over IP (bbc.co.uk)
johnslater writes: A friend at the BBC has written a short description of his project to deliver UHD video over IP networks. The application bypasses the OS network stack, and constructs network packets directly in a buffer shared with the network hardware, achieving a ten-fold throughput improvement. He writes: "Using this technique, we can send or receive uncompressed UHD 2160p50 video (more than 8 Gbps) using a single CPU core, leaving all the rest of the server's cores free for video processing." This is part of a broader BBC project to develop an end-to-end IP-based studio system.
Been using this for years to achieve wire line speeds on packet capture systems for years :)
>The application bypasses the OS network stack, and constructs network packets directly in a buffer shared with the network hardware, achieving a ten-fold throughput improvement.
I have trouble believing that the operating system adds so much overhead that getting rid of it gives you a ten-fold throughput improvement.
There are applications that DO use the network stack and also use zerocopy. Which is kind of old news. People doing high performance network applications ought to know about it already, oh well, good for them I guess.
I thought this was what sendfile(2) did in the case of file to socket. Maybe everything is less optimized than I thought, but I assumed that would end up just mapping the harddrive's DMA read into the NIC's DMA out buffer. Saturating IO lines is a job for the uncore of the CPU and the IO devices: it shouldn't significantly load any of the cores unless you are doing it wrong.
Kernel bypass plus zero copy are, of course, old-hat. Worked on such stuff at Lightfleet, back when it did this stuff called work. Infiniband and the RDMA Consortium had been working on it for longer yet.
What sort of performance increase can you achieve?
Well, Ethernet latencies tend to run into milliseconds for just the stack. Tens, if not hundreds, of milliseconds for anything real. Infiniband can achieve eight microsecond latencies. SPI can get down to two milliseconds.
So you can certainly achieve the sorts of latency improvements quoted. It's hard work, especially when operating purely in software, but it can actually be done. It's about bloody time, too. This stuff should have been standard in 2005, not 2015! Bloody slowpokes. Back in my day, we had to shovel our own packets! In the snow! Uphill! Both ways!
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
If people would just accept a decent MTU none of this would matter.
The max is 64 K but we're stuck with 1500 (including overhead) because you can't be sure that every hop will support your MTU.
Internally you can enable jumbo frames and shit will work, but once you need to go out over the internet all bets are off, so you limit your shit to 1500 and your performance goes to all hell.
We're basically delivering UHD movies via telegram.
https://birds-are-nice.me/musi...
I show how the concept of the public domain has been crushed by demonstrating just how little popular music exists in it.
How about the BBC stop requiring Flash for videos. That would be a better place to start.
to be able to watch Eastenders in Ultra HD...
To the Beeb's credit though, the Sky at Night in UHD would definitely be a lot more interesting, surely. But out of thousands of mediocre shows and movies released year after year after year, is it worth buying a new tv to marvel at a dozen really good programs? Somehow this don't seem to be a good value proposition.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
In order to pick up UHD I need to connect that round antenna to the back of the TV, right?
Congratulations BBC, you managed to re-invent DPDK at the license payers expense.
why not do 720p for everybody first, with no region locking or lockouts? fuck this uber hq shit. dvd quality is, quite frankly, good enough for all but the most anal of viewers.
Jesus give it up already Europe. These aren't analog devices anymore, just adopt p60 like the rest of the world.
now I can watch reruns of top gear and star trek TNG in UHD
Standard linux distros support timestamping of the packet by the kernel when the packet is received. When userspace reads the packet it can also obtain the kernel timestamp of that packet.
Intel's DPDK library is specifically built to bypass the OS and provide high-speed low-latency networking. Sems like a natural fit.