Getting updates from local PCs is something much easier to program than the general case of P2P traffic over the Internet. A simple UDP broadcast packet can find other peers, and wifi or the LAN will work great for transfer.
A long time ago we had to put an HTTP proxy in for debian updates so that when we updated all of our virtual machines it wouldn't saturate the T1.