AFAIK, when a node finds a new block, it announces that to its peers and starts working on finding the next block. No explicit acknowledgment from peers is required, instead they implicitly acknowledge the new block by appending it to their version of the chain and working on finding the next block based off that version. If a node receives a broadcast with a chain that is different than the one it currently works off of, it keeps the one that is more difficult to verify ("longer"), discarding the other one.
If you would divide all nodes into two unconnected sets (by the hypothetical firewall), two parallel versions of the chain would emerge, and those chains would diverge at the block that was last found before the separation event. Once you drop the firewall, the longer version would "win" over the shorter version, and all blocks mined on the losing chain since the separation become "stale", and the transactions contained in those blocks are returned to the mempool for re-processing. This is a huge problem, since the processing order is not guaranteed and depends on the fees transactions are endorsed with. Addresses could theoretically spend BTC they do not yet possess. Not sure how this would be handled.
If this is a prolonged event, the Bitcoin community would probably work on a software fork in some way?