сравнить два файла

День добрый всем!!!

Мнения каждого очень важно для меня и по сему всем заранее преогромнейшее спасибо.

Вообщем, смысл таков:

пишу программу клиент-сервер для локальной сети для синхронизации файлов.

проблема в том, что для того, чтобы сравнивать файлы, вообще говоря, нужны оба файла и поэтому придется передовать по сети, по сути, все файлы, которые мы синхронизируем и сравниваем, это сожрёт кучу процессорного времени, да и вообщем, наверное, так не рационально делать.

У кого какие мыслы по этому поводу, поделитесь пожалуйста?

Я пока решил делать так:

передаю информацию о файле(что-то типа структуры _finddata_t) и для каждого файла я генерирую хеш MD5, который передаю другому компьютеру, на нем я генерирую точно такой же хеш, но для его собственной копии такого же файла, ну, и сравнивая структуру и хеши делаю выводы об изминениях в этих файлах.

Как бы может оно так и неправильно делать, но в принципе экономия на трафике на глаза.

По сути, можно сделать и так: разбить файл на куски, для каждого куска генерить хеш, потом сравнивать файлы,используя хеши для кусков файла, т.е. можно более точно найти разницу в файлах.

Дорогие друзья, выскажитесь пожалуйста, может быть есть еще какие мысли у кого, буду очень благодарен.

Всем заранее спасибо!