GDK is the low level drawing and events library used by GTK to wrap the
underlying diplsay hardware and to 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.