Syncing files across a network? (Backup)

You have a bunch of files/directories on your computer and a network share than you need to copy these files over to. Doing a full copy takes a really long time.

Write a efficient algorithm to do a smart copy (backup) of all your files over to this network location?