A hub is a repeater, which is a OSI model device, the simplest possible. Hubs operate at OSI model Layer 1. Hubs are a common connection point for devices in a network and are commonly used to connect segments of a LAN. A hub takes the incoming data packet that comes into a port and copies it out to all the other ports in the hub. It doesn't perform any filtering or redirection of data. Although it's actually a little more complicated, a good analogy might be that of an Internet Chat room. Everything that everyone types in the chat room is seen by everyone else. If there are too many people trying to chat things get bogged down.
A passive hub serves simply as a conduit for the data, enabling it to go from one device (or segment) to another. So-called intelligent hubs include additional features that enables an administrator to monitor the traffic passing through the hub and to configure each port in the hub. Intelligent hubs are also called manageable hubs. A third type of hub, called a switching hub, actually reads the destination address of each packet and then forwards the packet to the correct port.
Bridges (sometimes called "Transparent bridges") work at OSI model Layer 2. This means they don't know anything about protocols, but just forward data depending on the destination address in the data packet. This address is not the IP address, but the MAC (Media Access Control) address that is unique to each network adapter card. The bridge is the device which is used to connect two local-area networks (LANs), or two segments of the same LAN that use the same protocol.
With a Bridge, all your computers are in the same network subnet, so you don't have to worry about not being able to communicate between computers or share an Internet connection. DHCP servers will work fine across Bridges, or if you assign your own IP addresses, you'll use the same first 3 "octets" of the IP address (Example: 192.168.0.X)
However, the only data that is allowed to cross the bridge is data that is being sent to a valid address on the other side of the bridge. No valid address, no data across the bridge. Bridges don't require programming. They learn the addresses of the computers connected to them by listening to the data flowing through them.
Bridges are very useful for joining networks made of different media types together into larger networks, and keeping network segments free of data that doesn't belong in a particular segment.
Switches are the same thing as Bridges, but usually have multiple ports with the same "flavor" connection (Example: 10/100BaseT). Switches work at OSI model Layer 2.
Switches can be used in heavily loaded networks to isolate data flow and improve performance. In a switch, data between two lightly used computers will be isolated from data intended for a heavily used server, for example. Or in the opposite case, in "auto sensing" switches that allow mixing of 10 and 100Mbps connections, the slower 10Mbps transfer won't slow down the faster 100Mbps flow.
Although switch prices are dropping so that there is very little difference from hub prices, most home users get very little, if any, advantage from switches, even when sharing broadband Internet connections. Broadband connections for most users are in the 1-2Mbps range, far below even 10Mbps speeds. Since you share that bandwidth, you can see that your speedy 100BaseT connection isn't even breaking a sweat when you're using the Internet. However, with the proliferation of lager and larger home networks it is in a users best interest to upgrade to a switch as opposed to a hub; assuming one can still find a hub to purchase anymore.
Routers forward data packets from one place to another, too! However routers are OSI model Layer 3 devices, and forward data depending on the Network address, not the Hardware (MAC) address. For TCP/IP networks, this means the IP address of the network interface.
Routers isolate each LAN into a separate subnet, so each network adapter's IP address will have a different third "octet" (Example: 192.168.1.1 and 192.168.2.1 are in different subnets). They are necessary in large networks because the TCP/IP addressing scheme allows only 254 addresses per (Class C) network segment.
Routers, like bridges, provide bandwidth control by keeping data out of subnets where it doesn't belong. However, routers need to be set up before they can get going, although once set up, they can communicate with other routers and learn the way to parts of a network that are added after a router is initially configured.
Routers are also the only one of these devices that will allow you to share a single IP address among multiple network clients.