You don't explain advanced computing concepts to non-technical people. You explain simple computing concepts to non-technical people. Bandwidth and CPUs and routers are simple computing concepts. And concepts that they actually want to know about.
What non-technical people rarely want to know about are things like the South Bridge on a motherboard, or the LAMP stack, or the inner workings of a MySQL database. As such, you rarely have to explain these things.
When explaining simple computing concepts, avoid using acronyms and technical terms. There's no faster way of making anyone's eyes glaze over than using vocabulary that's unfamiliar to someone. A fine example of this is when one day my boss tried to explain a tidbit of macroeconomics to me, and used no less than 5 unfamiliar terms in about 3 sentences. I was immediately utterly lost.
It's also fine to use rough approximations that might not be strictly true (something that we geeks are sticklers for), but explain it simply enough. "Bandwidth" is "the speed you're able to send information to and from the internet", "CPU" is "that one chip in the computer that does all the work - the calculations and data management", hard drives are places where information gets stored, and routers are "the boxes that separate and manage networks - and block malicious internet traffic".