Un Hub :
Lorsqu'il recoit une information sur un port, il la renvoie à tous les ports sans distinction. Donc, il est impossible que deux personnes communiquent en meme temps. On parle de domaine de collisions. Si un paquet entre en collision avec un autre, l'hote emetteur atteint un certain temps avant de renvoyer à nouveau.
Switch : Lorsqu'il recoit une donnée à transmettre, il analyse l'adresse de destination de ce paquet et ne l'envoit que sur le port de la machine de destination. Si il ne connait pas le port de cette machine (genre au démarrage), il l'envoie à tous les ports. Il analyse ce qui transite et se crée une table de commutation qui associe machine (adresse MAC)<->port.
En gros, il établit des canaux de communications entre ports et permet à plusieurs machines de communiquer en meme temps.
Voila en gros.