Originally posted by: Lord Evermore
An uplink port is the same as every other port, it's just wired oppositely. An uplink port has the same pinout that a NIC port does, while a normal hub/switch port is wired the mirror way, send pin connecting to receive pin when using a straight-through cable. Basically it does what a crossover cable does between two NICs.
A switch uses a process known as "Flood, Learn, Forward".
When you uplink, the switch just sees the other switch as another "end-point". As an example, computer A1 on port 1 needs to connect to computer A2 on port 2 using a known IP address. (We'll assume that computer A1 already knows the MAC address of A2. Technically the first data sent would be the request for the MAC address of the computer with a certain IP.) The switch is receiving traffic for a certain MAC address, but doesn't know where it is. So it broadcasts (floods) to all the ports, just like a hub would. When computer A2 responds, the switch "learns" the MAC address is available on port 2. The switch also already learned that A1's MAC address is reachable via port 1. From now on, the traffic between them will be limited to those two ports, rather than broadcasting.
A switch doesn't exactly "see" each computer on each port. It doesn't have any clue what is physically on the other end. It only "learns" that when it needs to reach a certain MAC address, it will be reachable through a certain port so the traffic should go there.
Now, say A1 needs to talk to B2 on port 2 of Switch B. A1 sends out traffic. Switch A has no idea where the MAC address is, so it floods it to all the ports, including the uplink port to Switch B. Switch B receives the traffic, and doesn't know where B2 is located, so it floods all its ports as well (EXCEPT, it does not send the traffic to the port connected to Switch A, because it knows the traffic came from there in the first place). Now, B2 responds, and Switch B learns the MAC address, and it has already learned that the MAC of A1 is located on the port connected to Switch A. Now, when A1 sends to B2, Switch A will only forward packets to the uplink port, and switch B will only send to port 2; return traffic will only go from Switch B to the port connected to Switch A.
With the other switches, they've also received all the broadcasts sent from the other switches searching for a MAC address because none of the switches knew where the MAC was so they all forwarded the broadcast. They've now learned where computer A1 is located and which port they can send traffic to to reach it, so if computer D3 needs to reach A1, a broadcast is not needed at all. When D3 sends traffic, all the switches in between will ALSO learn where D3 is located, so they won't need to broadcast if C2 needs to reach D3. However, switch C and D did NOT learn the location of B2, because that computer did not have a broadcast of traffic reaching them; B2's response ONLY went to Switch A.
In short, when a switch is first connected and no traffic is sent, then yes, all the traffic is broadcast. But once a switch learns the location of a particular MAC address, it never needs to broadcast traffic for it again. It will only go to whichever port it has learned is where it can reach that MAC address.