Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!brutus.cs.uiuc.edu!rpi!image.soe.clarkson.edu!news From: nelson@sun.soe.clarkson.edu (Russ Nelson) Newsgroups: comp.protocols.tcp-ip Subject: Re: partial transfer recovery in RFC and OSI protocols Message-ID: Date: 24 Dec 89 04:51:28 GMT References: <8912210357.AA06303@gateway.mitre.org> Sender: news@sun.soe.clarkson.edu Reply-To: nelson@clutx.clarkson.edu Organization: Clarkson University, Potsdam NY Lines: 73 In-reply-to: barns@GATEWAY.MITRE.ORG's message of 21 Dec 89 03:57:04 GMT I'm keeping this issue alive because I'm still learning from it. I hope that others find it interesting and are also profiting from the discussion. We are trying to decide which file transfer restarting solution is more general: sender-controlled or receiver-controlled. Sender-controlled restarting relies on the sender issuing restart markers periodically, and on the receiver being able to preserve its state at these arbitrary (to it) points. Receiver-controlled restarting relies on the sender being able to suppress the initial N octets. The restart method prescribed by the FTP RFC is sender-controlled. The restart method implemented by Adams is receiver-controlled. These two methods may both be implemented at the same time provided the markers emitted by the sender-controlled restart are distinguishable from a string of decimal digits. In article <8912210357.AA06303@gateway.mitre.org> barns@GATEWAY.MITRE.ORG (Bill Barns) writes: I disagree because I don't believe that the byte number in the transfer stream is sufficient information to determine how to join the data sent during the restarted transfer with the data sent the first time in every imaginable case. It should be sufficient. It's the receiver that chose the number. Perhaps an example is in order? A Unix implementation receiving an ASCII file [1] would have two states: one for "maybe CR", and another for "expecting LF". A receiver-controlled restart mechanism would only need to remember restarts when in the first state. A sender-controlled restart mechanism would need to remember restarts in *both* states. It would also need to remember which state it was in. It would also need the ability to enter that state upon entry to the routine. [1] Unix uses a single character (newline) to indicate the end of a line. ASCII as transmitted over TCP uses two characters (CR, LF) to indicate the end of a line. Every occurrence of CR followed by a LF should be changed into a newline. The hack of ignoring CR and translating LF into newline is not correct. There would be no problem if the bytes in the transfer stream were literally stored in the file. Unfortunately, the rest of your discussion that followed was flawed. You assumed that the restart parameter must be reconstructed solely from the data file. I don't believe this is possible for invertibility reasons as you suggest. Even if it were possible to do with receiver-controlled restart, it is certainly impossible with sender-controlled restart because you have the problem of remembering the arbitrary (to the receiver) restart markers. I think that you were led into the brambles because Adam's receivers let you choose an arbitrary octet at which to restart. Receiver-controlled restarting isn't always going to be that easy. But it *is* going to be easier than sender-controlled restarting. I'm ignoring the issue of block mode, which is required by sender-controlled restart. None of the major anonymous FTP archive sites have implemented block mode. And having said all that, I'll close by saying that it doesn't really matter *which* restart method gets implemented, so long as at least one of them *does* get implemented, preferably the same one. Given that receiver-controlled is simpler to implement, and a freely copyable implementation of it for 4.3 BSD Unix already exists, I'd go with receiver-controlled. -- --russ (nelson@clutx [.bitnet | .clarkson.edu]) Russ.Nelson@$315.268.6667 Live up to the light thou hast, and more will be granted thee. A recession now appears more than 2 years away -- John D. Mathon, 4 Oct 1989. I think killing is value-neutral in and of itself. -- Gary Strand, 8 Nov 1989. Liberals run this country, by and large. -- Clayton Cramer, 20 Nov 1989. Shut up and mind your Canadian business, you meddlesome foreigner. -- TK, 23 N.