On Tue, Jul 10, 2001 at 10:58:21AM -0700, Ben Escoto wrote:
> >>>>> "DD" == Dave Dykstra <[EMAIL PROTECTED]>
> >>>>> wrote the following on Tue, 10 Jul 2001 10:34:53 -0500
> 
>   DD> All that rsync uses ssh for is to open a bi-directional data
>   DD> pipe and run a command (another rsync program) on the remote
>   DD> side.  It then ignores ssh (or rsh, the default) and does its
>   DD> own protocol over the pipe between the two sides.
> 
> Hmm, doesn't rsync run two copies of itself on the remote side?  Maybe
> it uses three (?) unidirectional pipes instead of one bi-directional
> one?  And either way, it would be nice to have a primer on designing a
> protocol like this, since I'm sure many people have already figured
> out the best way to handle latency, errors, etc.


rsync forks itself into two copies on the receiver side, one process
for generating checksums and one for receiving updates.  It's still a
single bi-directional pipe, it's just that on the receiver side one process
is writing and one is mainly reading.

I've never read it myself, but I imagine that Andrew Tridgell's PhD thesis
covers the protocol design.  I don't think it's written down anywhere else.
You can find it on his home page, http://samba.org/~tridge.

- Dave Dykstra

Reply via email to