With some further digging, it seems the cable is bad quality.
When I changed Speed&Dublex down to 10Mbps it worked. I suppose XP use low-speed connection by default since its an old OS.
Thanks everyone for your valuable help, especially Neemobeer.
I have some updates. The cable works on Windows XP with Atheros AR8121 PCI-E network card.
In windows 7, with Realtek RTL8101 PCI-E network adapter, doesn't work and have exactly the same behavior with Windows 10 running a Realtek chip using PCI-e. (seems like the cable isn't connected...
That's the message I keep getting when I run diagnostics. But I just don't get it, why windows can't see the cable. I made both cables myself followed the T-568B standard of color wiring.
Some further info : The lights of ethernet mount on pc, blinks for 1-2 times and stops. Then it blinks one...
I am using an ethernet cable for a long time in a tower running win10. Today I change the cable with a new one which doesn't connect to the internet. I tested the new cable on a laptop running WinXP, where I disconnected from wifi and I was able to connect to the internet.
So the cable is good...