# How do network card knows each other's speed?

My old Pentium 4 machine has a 10/100M network card, I recently bought a 100M/1000M switch.

I am going to buy a PC with 1000M network card, I am pretty sure they can talk to each other at 100M speed.

How do they know each others speed limit and adjust it accordingly?

-
Here’s a couple of more articles on auto-sensing and auto-negotiation for those interested in the details. – Synetech Dec 14 '13 at 23:08

The speed is determined when a physical connection is made to the switch or whatever point the PC is directly connected to.

The switch will "auto-negotiate" to figure out what the maximum speed is.

So your 1gbps computer will connect at 1gbps, but the 100mbps computer will be 100mbps.

In the end, a transfer between the two computers will end up (theoretically) maxing out at 100mbps.

-

The speed is determined by the weakest link in the chain from point to point. The speed from your old P4 to the new machine will be 100M.

I believe that they do not know eachothers speed because they are not connected to eachother directly. The switch is what will know what their speeds are and transfer according.

-

The speed is determined not between two computers, but between two ends of the Ethernet cable – in this case, the computer ↔ the switch. When you have a computer ↔ switch ↔ computer connection, two such negotiations will happen, and the speed between the two ends will be equal to the speed of the slowest link.

The Wikipedia article on Ethernet Autonegotiation describes the exact mechanism by which speed is negotiated – both cards continuously transmit "fast link pulses" listing all Ethernet versions and speeds supported by the sender, and upon receiving the first such advertisement they will choose fastest mode common to both cards. The same pulses are used for determining whether the cable is actually connected and working.

-