I decided to shamelessly "borrow" a diagram that I used a lot lately. A diagram that shows how the various tables are traversed by IP packets as the Linux kernel processes them.

There is, in fact, a much shinier looking version of this table in circulation, but in my experience, it's incorrect. This more pedestrian version, on the other hand, seems accurate, and was extremely helpful as I was trying to debug an OpenVPN connection issue:

I found the original (along with the shinier, but less accurate version) here.