GDK is the low level drawing and events library used by GTK to actually draw things on the screen and react to actions by the user. You rarely need to use GDK; by design GTK should contain most of what you need to create a graphical application.

For some years now, GTK and GDK have used Cairo internally to do the bulk of their drawing work.