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.