¿Qué significa realmente "abrir una conexión"?

Estaba tratando de explicarle a alguien por quéconexiones de bases de datos implementar IDisposable, cuando me di cuenta de que realmente no sé lo que realmente significa "abrir una conexión".
Entonces mi pregunta es: ¿qué hace prácticamente C # cuando abre una conexión?

Gracias.