Rsync
初期の利用形態は、UNIXシステム群のうちの1台をサーバとし、他のシステムとの間でミラーリングやバックアップを行うものであった。cronのようなスケジューリング機構を使えば、自動スケジューリングされ暗号化された複数台の同時ミラーリングが可能である。
rsync は、転送先のコンピュータが何らかの構造体(ファイルなど)の別バージョンを既に持っている場合、その構造体を効率的に転送するアルゴリズムを使っている。このアルゴリズムは、オーストラリアのプログラマアンドリュー・トリジェルが発明した。
受信側は、そのファイルの複写を固定長のチャンク(塊)に重ならないように分割し、チャンクごとに2つのチェックサムを計算する。この分割長を S {\displaystyle S} とする。チェックサムは、MD4 ハッシュ関数と弱いローリングチェックサムである。受信側は送信側に対して、それらチェックサムを送る。
送信側は、自身の持つバージョンのファイルについて、長さ S {\displaystyle S} の各チャンクごとにローリングチェックサムを計算する。このときチャンクは重なるものも含めて計算する。重なりのあるチャンクについてのローリングチェックサムの計算は効率的にできる。バイト位置 n {\displaystyle n} から n + S − 1 {\displaystyle n+S-1} までのローリングチェックサムが R {\displaystyle R} であったとき、 n + 1 {\displaystyle n+1} から n + S {\displaystyle n+S} までのローリングチェックサムは、 R {\displaystyle R} と n {\displaystyle n} 番目のバイトの内容、 n + S {\displaystyle n+S} 番目のバイトの内容だけから計算でき、全バイトの内容を調べる必要がない。