There is not a strong coupling between CAN address and module on the bus. The lower the ID value, the higher the priority on the bus. From memory this works in hardware since a lower number pulls the bus low and tramples on an ID with a higher ID.
Various messages can be passed around the CAN bus using their unique ID and the 8 bytes that follow to carry the signal data.
For example the ABS module would probably have a low ID to send a message to all listening nodes that the vehicle's anti skid mode is active. A low priority message (larger CAN ID) from say the fuel tank module would report the tank fill level to the instrument cluster.
The OBD protocol acts in a similar way, the scan tool joins the bus as a node using an address like 0x7DF and makes a request for data, using the 8 bytes of data that follow the ID. Any node on the bus (the ECU for example) can respond with the appropriate data that the scan tool requests, it does this using an address in the range 0x7E8->0x7EF (the range allows for multiple nodes to respond, 0x7E8 is fairly typical- wiki page explains the protocol here https://en.wikipedia.org/wiki/OBD-II_PIDs