> First of all, BitTorrent clients do not download in random order or wait 5 minutes. They usually download the rarest block first, but can do whatever they want, whenever they want.
The problem here is that BT works so well because the clients default to "good behavior" (prioritize rare pieces first) and discourages "bad behavior" (leeching/no upload).
This tilts the balance on the whole enough to maintain the health of the network. If you change these, you'd need to introduce other mechanisms to preserve the network incentives.
>This tilts the balance on the whole enough to maintain the health of the network. If you change these, you'd need to introduce other mechanisms to preserve the network incentives.
This is the real key point here. In the P2P wars, only bittorrent was the winner (though the old networks still live on and you can find interesting stuff in them...) - the timeless lesson is leeches need to be getting the short end of the stick, people who give back, the prize bonus. It's a fundamental characteristic of human nature here, tragedy of the common leech or something like that
ish? it's pretty stupid that in the age of seedboxes with gigabit we still prioritize that. The only way to be a seed these days is to get the release microseconds after it gets released, and download it before everyone else gets their hands on it, so you can upload to them. Everyone else then has to download from you, but since everyone that's more than slightly involved has a seedbox with symmetric gigabit, the issue of leeches just isn't the same as it was before in the dial up and DSL era. That the culture hasn't been able to evolve past that, and hangs on to such outdated notions is disappointing. I'm not saying people shouldn't be incentivized to give back. Leeches suck. But in this land of plenty, theres this problem of being unable to seed because there's just too many seeders trying to seed.
With streaming, the service provider is generally also controlling the clients, so they should be much better off when it comes to client behavior.
In case of bring-your-own-client, the incentives are exactly the same: Clients would likely default to good behavior as network health equals user experience, and exactly like BitTorrent there will be neither punishment nor need for it if some clients disobey.
> exactly like BitTorrent there will be neither punishment nor need for it if some clients disobey.
"Punishment" (tit-for-tat algorithm) is one of the defining features of bit torrent, especially in comparison to what came before it.
This is not a "punishment", and what clients to differs greatly.
The original spec for the original client allocated a portion of its bandwidth to random peers instead of known-good/preferred peers, so if you had no chunks you were basically bandwidth and/or peer restricted.
If you take the arch linux ISO right now and put it into aria2c to be a new, unknown client with no data to offer, you'll find that while it takes a few seconds to join the network, fetch metadata and connect to peers, you'll quickly saturate your connection completely without ever uploading a single byte.
If you wanted, a streaming network could use direct access or low-hop access as seeding incentive - seed to get slightly lower content latency. When the streaming client is controlled by the content provider, seeding is easily forced and topology could be controlled centrally.
In video streaming the client really controls everything...unless you have your own client and customize its behavior.
You should see how people try and get HLS to pick a stream. With the default players it's not possible - the client does it.
Yes that's the intended behavior of HLS - the content provider advertises which streams are available and at what bitrates, and the client picks which to use based on the current stream performance and its own capability.
The server can control the stream by advertising a customized manifest to individual clients, although it's a bit silly. HLS is designed to be extremely easy to load distribute and throw CDN/cache proxies in front, and it's a bad sad that content providers are this bad at load management. :/
Either way, the assumption here is that you would swap out the client doing HLS with a client designed to use a P2P protocol, including the seeding portion and network health management.