Requirements: 1 perhipheral-side USB connection (likely from a USB hub), many host-side USB connections going out, one to each computer. Semi-intelligent switcher allows the keyboard to be switched from computer to computer, allows the mouse to be switched to a separate computer than the keyboard, and allows any computer to inject USB keyboard events in reverse, so that one computer can make another computer think that keys have been pressed (eg. to provide for distant TCP networks to control local computes even while booting through BIOS, among other things). Or even just be a bare USB-ethernet interface
The thing is, just like a normal switch, we don't necessarily need to parse all the way up the OSI stack, only the first couple layers, so this doesn't need to be arbitrarily complicated. It does, however, need to be FAST (USB 1.1 needs at least a 48mhz clock). Possible solutions: