3 ms·
> So it isn't "kernel choosing which packet out of bunch H1 connections to send", it near always have enough bandwidth to have all of them on the wire, it's "ju
by avianlyric 4y ago
> So it isn't "kernel choosing which packet out of bunch H1 connections to send", it near always have enough bandwidth to have all of them on the wire, it's "just" slow start making it slower
I mean, it is. Ethernet is a serial bus, you can only send one packet/Ethernet frame at a time. Even if the server has some seriously fancy hardware, that capable to doing parallel DMA reads from main memory, directly onto multiple parallel network buses, it’s basically guaranteed that somewhere been you and the server all of data is gonna be read and copied one byte at a time (just incredibly fast).
As a general rule, computers don’t do anything in parallel. Because the complexity of coordinations and synchronisation is so high, and so expensive, it’s just isn’t faster than doing stuff in a purely serial manner.
Now obviously there are exceptions to the above rules, multi-core CPU, dedicated network devices etc. But even then, only the computation is done in parallel. Actually shuffling the data in and out of the machine is almost certainly going to be done over a purely serial bus. But unless you’re moving gigabits a second or more (such as between a CPU and RAM, or between a CPU and GPU, or between network queues in a switch), doing it parallel isn’t worth the extra complexity.