All nodes and all clients have this logic hardcoded into them. So in that sense, everybody is responsible for understanding that every 2016 blocks the difficulty changes.
The calculation that is hardcoded into each client is described here: https://en.bitcoin.it/wiki/Difficulty#What_is_the_formula_for_difficulty.3F
So it's not a piece of information that is announced or broadcast. Since each node knows about every block that appears in the network, it can calculate on its own the difficulty, without the need of a third-party.