In simple terms
There are two components to DFS.
DFS-R(Replication) which is the ability to replicate a directory and its contents from one server to another (and depending on configuration, back again)
\\Server1\c$\directory1 replicates to \\server2\C$\directoryA (the directories don’t need to be the same name but it is clearer for you if they are)
DFS-N(Namespace) which is an ability to have one name space \\domainname and mount under it “directories” that are shares from different servers.
\\domainname\users = \\Server1\users
\\domainname\profiles = \\server2\profiles
Now, you can combine these technologies. So lets use the items above to give a scenario
Your data drive is \\Server1\c$\data1 which is shared as \\server1\Data . Using DFS-N we can create a namespace \\domainname\Data and assign \\server1\Data to that namespace.
So your users can either use \\server1\Data to access the files or \\domainname\Data.
The reason you use \\domainname\Data is that if you ever want to decommission Server1, all you need to do is setup a replication partnership using DFS-R and replicated the data to \\NewServer\Data. Once replicated, you can then present \\NewServer\Data as the sole target for the namespace \\domainname\Data and them decommission the server.
Have I lost you yet? 🙂
There are other reasons to use DFS-R in conjunction with DFS-N.
Another Scenario is that you have a DR site or remote site. The replication partnership can be setup with a share on a server in each site. The namespace can be setup to use a preferential target and failover to the other target if the preferential target is unavailable. E.G Site London and site Paris Users are in Paris. The preferential target is set to Paris, all files are changed on the Paris target and replicated back to the London target. The Paris Target is made unavailable cause the server power supplied died. The users will generally not know and will be automagically pointed to the London Target( albeit limited by bandwidth and latency) Its a bit more err complicated than that but that is the general principle.
It is generally “bad form” to allow both(or multiple) targets to be updated by users “at the same time”