In a nutshell, the USB enumeration is a process of sending some commands and receiving data from the enumerated device to gather information about the device (device name, VID and PID numbers, number of endpoinds, required power, name of the company that made the device etc.)
When you plug your device into USB port the PC (named "host") sends some commands which must be implemented by each USB device (no matter what device type is). For example, the first command which is sent by the host is command called "GetDeviceDescriptor". The DeviceDescriptor is an 18-byte data structure containing the most important information about your device. If you want to know details about how USB enumeration process works (and everything about USB interface) i recommend you read a very good article about it:
**broken link removed**