rsync

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
rsync
Ontwikkelaar Oorspronkelijk: Andrew Tridgell, Paul Mackerras
Huidig: Wayne Davison
Uitgebracht 19 juni 1996
Recentste versie 3.1.1 
(22 juni 2014)
Status Actief
Besturingssysteem Windows en Unix-achtig
Geschreven in C
Categorie Gegevensoverdracht
Licentie GPL 3
Website (en) Website van rsync
Portaal  Portaalicoon   Informatica
Vrije software

Rsync is een computerprogramma dat bestanden en directory's synchroniseert van de ene computer naar de andere. Daarbij is het mogelijk gegevens te verzenden door, als de doelcomputer al een andere versie van dat bestand heeft staan, alleen het verschil (de delta) te versturen. Hiervoor hoeft het, in tegenstelling tot de meeste vergelijkbare programma's en algoritmes, maar één gegevensstroom per richting te versturen.

Rsync kan directoryinhoud tonen en directory's en bestanden kopiëren, naar keuze met gegevenscompressie en recursie, en is daardoor goed geschikt om bestanden en hele directorybomen te synchroniseren.

Voor gebruik over UDP en TCP gebruikt rsync als standaard poortnummer 873.

Algoritme[bewerken]

Rsync gebruikt een algoritme, uitgevonden door de Australische computerprogrammeur Andrew Tridgell, om een bestand efficiënt te versturen wanneer de ontvangende computer al een andere versie van dat bestand heeft.

De ontvanger deelt zijn exemplaar van het bestand op in elkaar niet overlappende blokken van vaste lengte, zeg L, en berekent twee checksums voor elk blok: de MD4-hash, en een zwakkere "doorrollende" checksum. Beide stuurt hij op naar de verzender.

De verzender berekent de doorrollende checksum voor elk blok van lengte L, dus ook voor overlappende blokken. Dit kan efficiënt vanwege een eigenschap van deze checksum: als de checksum van de bytes met nummer n tot en met n+L-1 gelijk is aan S, is het eenvoudig om de checksum van bytes n+1 tot en met n+L te berekenen zonder te kijken naar de tussenliggende bytes. Dus als je al de checksum van bytes 1–25 hebt, kan je de checksum van bytes 2–26 berekenen uit alleen de vorige checksum en de waarde van de bytes 1 en 26.

De verzender vergelijkt zijn rollende checksums vervolgens met de serie die de ontvanger heeft verstuurd, en bepaalt of er overeenkomsten zijn. Als dat zo is, verifieert hij de treffer door de MD4 te berekenen voor dat blok, en dat te vergelijken met de MD4 die de ontvanger had gestuurd.

De verzender hoeft nu alleen nog maar die delen van het bestand te versturen die niet overeenkomen met een blok dat de ontvanger al heeft, plus "montage-instructies" die aangeven waar de ontvanger die delen moet invoegen, en welke delen van zijn eigen bestand die moet schrappen om een bestand te krijgen dat identiek is aan dat van de verzender.

Hoe meer overeenkomsten tussen beide bestanden, hoe minder gegevens er verstuurd hoeven worden.

Zie ook[bewerken]

Externe link[bewerken]