Network duplex and speed settings inside of virtual machines

Virtual PC and Virtual Server only allow the emulated network card inside of the virtual machine to be configured for 100mbit full duplex or 100mbit half duplex connections.  Occasionally this has caused confusion for users who need to specify other connections types (like 10mbit half duplex).  The important thing to understand is that the emulated network card connects to our virtual network switch, which is then bridged to the physical network card – and through that out to the physical switch.  For this reason the connection setting of the emulated network card is largely meaningless – and we will adopt the connection behavior of the physical network card that we are using.

There is an odd story around our choice of connection options though.  Originally (at Connectix) no one really cared much about defining the available connection options; until one day when our Chief Scientist discovered that Windows XP was spending several seconds during boot trying out all of our connections options in an effort to ‘autosense’ the connection.  To make things even worse, Windows XP was eventually deciding to use the AUI connection (also known as thicknet).  While this did not affect performance at all it was the most archaic option available (and hence the most embarrassing).  After discovering this we removed all connection options from our emulated network card except for 100mbit full duplex.  However, we then discovered that the Linux TULIP driver (the appropriate driver for our emulated network card) tries to initialize the network card in half duplex mode, then full duplex mode.  If we only supported full duplex mode the driver would fail the first initialization and then fail to load, so we added back support for 100mibt half duplex.