A mesh node is essentially a smart repeater. Each node contains information about where all the other nodes in the mesh are located. It uses this information to determine the fastest route to send an incoming data packet to its end destination. (This is why its called a routing protocol). Also, (and this is a guess on my part), a mesh node could look at an incoming packet, determine if it is corrupt, and then request a new packet itself rather than pass the bad packet along and leave it up to the destination computer to make the request. This way requests for bad packets are distributed throughout the network of nodes and not concentrated at the outer nodes, like in the repeater model.
A mesh is also self-configuring and self-healing. Lets go back to our park model. You have a user that complains about a dead spot right at his favorite bench by the pond. Youre now using a mesh to cover the park, so this is no problem. You know that the traffic on one of your nodes is really slow, so you decide to move that node closer to the aforementioned bench. Two things happen when you do this. First, when you remove the node the nodes that were within transmitting distance notice that its no longer there. They then reconfigure their routing tables, (the set of best paths for data packets), and notify the nodes around them. This continues until all the nodes have modified their routing tables to no longer use the node you removed. Now you install the node in its new location. That node automatically begins sending out broadcasts letting the nodes around it know that its there. Those nodes in turn start sending back information to that node and telling the nodes around them until the entire network has once again reconfigured itself.