campbell@maynard.UUCP (Larry Campbell) (08/12/86)
In article <2943@brl-smoke.ARPA> W8SDZ@SIMTEL20.ARPA (Keith Petersen) writes: >D.C. Hayes (the modem people) are proposing a new protocol... >Fast is a session-level file transfer protocol designed to run over an >error-free link such as X.25, X.PC or MNP. Since the link is assumed to be >error-free and packetizing is done by the network layer of the underlying >protocol, no error detection/correction mechanisms are necessary. What an irresponsible statement! Sure, the link from modem to modem may be relatively error-free, but what about the links from computer to modem on each end? Who checks them? Doing file transfers without end-to-end error checking is simply a subtle way to play Russian roulette. Responsible software engineers will avoid this protocol like the plague. -- Larry Campbell The Boston Software Works, Inc. ARPA: campbell%maynard.uucp@harvard.ARPA 120 Fulton Street, Boston MA 02109 UUCP: {alliant,wjh12}!maynard!campbell (617) 367-6846
davids@iscuva.UUCP (David Schmidt) (08/14/86)
In article <330@maynard.UUCP> campbell@maynard.UUCP (Larry Campbell) writes: >In article <2943@brl-smoke.ARPA> W8SDZ@SIMTEL20.ARPA (Keith Petersen) writes: >>D.C. Hayes (the modem people) are proposing a new protocol... > >>Fast is a session-level file transfer protocol designed to run over an >>error-free link such as X.25, X.PC or MNP. Since the link is assumed to be >>error-free and packetizing is done by the network layer of the underlying >>protocol, no error detection/correction mechanisms are necessary. > >What an irresponsible statement! Sure, the link from modem to modem >may be relatively error-free, but what about the links from computer to >modem on each end? Who checks them? Doing file transfers without >end-to-end error checking is simply a subtle way to play Russian >roulette. Responsible software engineers will avoid this protocol >like the plague. If you read the documentation carefully you will see that the FAST protocal does include the capability of using a CCITT CRC-16 check on the file sent. If this is uses (I wouldn't use FAST without it!) then you do have an error-free protocal. The only difference between FAST and KERMIT or XMODEM is that the "packet size" is indefinite (the full size of the file) instead of a fixed size. Also it is not clear to me if the file is automatically re-sent or if the recieved file is deleted (with an error message of course). It remains to be seen how often errors will occur. If I only have to re-send one file out of 100 for instance, I can save quite a bit of time overall if each file transfers twice as fast (Telenet and Tymnet transfers are SLOW!). -- +----------------+ ! II CCCCCC ! David Schmidt ! II SSSSCC ! ISC Systems Corp. ! II CC ! Spokane, WA ! IISSSS CC ! UUCP: ihnp4!tektronix!reed!iscuva!davids ! II CCCCCC ! (509)927-5479 +----------------+
tanner@ki4pv.UUCP (Tanner Andrews) (08/15/86)
The idea of doing a \fBsingle\fR CRC check on the whole file reminds me of the link they ran between two computers at school. Ran print-outs through this link. One error test, at end of job, just as proposed. Worked great, except when you transferred at 200-page printer file, and it blew one character somewhere in there. -- <std dsclm, copies upon request> Tanner Andrews
caf@omen.UUCP (Chuck Forsberg WA7KGX) (08/16/86)
In article <247@iscuva.UUCP> davids@iscuva.UUCP (David Schmidt) writes:
:
:If you read the documentation carefully you will see that the FAST
:protocal does include the capability of using a CCITT CRC-16 check
:on the file sent. If this is uses (I wouldn't use FAST without it!)
:then you do have an error-free protocal.
:
The "FAST" protocol does not have any error recovery procedures.
Although "FAST" is only very slightly more efficient than ZMODEM,
"FAST" lacks ZMODEM's error recovery, file management features, and
user interface improvements. "FAST" also lacks ZMODEM's extensibility
for process to process communications and control.
Chuck Forsberg WA7KGX ...!tektronix!reed!omen!caf CIS:70715,131
Author of Professional-YAM communications Tools for PCDOS and Unix
Omen Technology Inc 17505-V NW Sauvie Island Road Portland OR 97231
Voice: 503-621-3406 TeleGodzilla: 621-3746 300/1200 L.sys entry for omen:
omen Any ACU 1200 1-503-621-3746 se:--se: link ord: Giznoid in:--in: uucp
omen!/usr/spool/uucppublic/FILES lists all uucp-able files, updated hourly
campbell@maynard.UUCP (Larry Campbell) (08/16/86)
In article <247@iscuva.UUCP> davids@iscuva.UUCP (David Schmidt) writes: >If you read the documentation carefully you will see that the FAST >protocal does include the capability of using a CCITT CRC-16 check >on the file sent. If this is uses (I wouldn't use FAST without it!) >then you do have an error-free protocal. But the use of a CRC is optional. I think they should make it mandatory. This is especially important in the PC world, with so many people trustingly toting binaries around without sources. In source code, errors will almost certainly cause the code not to compile or link, and will thus be detected. In binary code, though, the errors will just cause the code to explode in mysterious ways that are nearly impossible to detect. Note also that FAST just has one CRC for the entire file. The longer the packet, the greater the probability that CRC-16 will fail to detect an error. For almost any reasonably large file, CRC-16 is nearly worthless. In any event, why invent yet another protocol? What's wrong with KERMIT with sliding windows? KERMIT is already implemented everywhere, and the sliding windows give reasonable performance. It just irks me no end to see people simultaneously reinventing the wheel and giving up reliability for performance. It doesn't matter how fast you can do it wrong! -- Larry Campbell The Boston Software Works, Inc. ARPA: campbell%maynard.uucp@harvard.ARPA 120 Fulton Street, Boston MA 02109 UUCP: {alliant,wjh12}!maynard!campbell (617) 367-6846
desj@brahms.BERKELEY.EDU (David desJardins) (08/17/86)
In article <333@maynard.UUCP> campbell@maynard.UUCP (Larry Campbell) writes: >Note also that FAST just has one CRC for the entire file. The longer >the packet, the greater the probability that CRC-16 will fail to >detect an error. True. >For almost any reasonably large file, CRC-16 is nearly worthless. False. If one or more errors have occurred, a 16-bit CRC will detect them with probability at least 99.9985%, no matter how large the file. If the presumption is that the total error probability is low (as it certainly should be on an error-free channel) this is more than adequate. >In any event, why invent yet another protocol? What's wrong with KERMIT >with sliding windows? KERMIT is already implemented everywhere, and the >sliding windows give reasonable performance. It just irks me no end to >see people simultaneously reinventing the wheel and giving up reliability >for performance. It doesn't matter how fast you can do it wrong! This is just stupid. If performance means nothing and reliability everything you should transmit every message 100 times, just to make sure. Obviously you have to make some sort of performance-reliability tradeoff. Large amounts of redundant error-checking on an error-free channel are simply wasteful. -- David desJardins
bishop@ecsvax.UUCP (Alan Bishop) (08/17/86)
A protocol such as FAST just adds to what the user must know about the hardware configuration on a machine. A well-designed protocol should be able to vary packet sizes according to the type of connection (modem/hardwire, normal/leased line, etc.) so that the user need not worry about which protocol is needed on a particular line. --- Alan Bishop ...!decvax!mcnc!ecsvax!bishop bishop@ecsvax.{UUCP,BITNET}
clewis@spectrix.UUCP (Chris Lewis) (08/19/86)
I have some experience with so-called "error-free" links. 4.3 BSD UUCP contains protocol "f", which is intended for X.25 links where the underlying network generally guarantees *NO* errors. Protocol "f" simply blasts the file along the line, only transmitting a checksum at the end of a file, and if incorrect, retransmits the file. Sigh.... The one thing not error-free was the network to computer connection (eg: modem or PAD to computer) - many of the links I used protocol "f" on had computers on the other end that would drop characters when talking to their modems even with X-ON/X-OFF flow control (missed interrupts). We routinely were transmitting files 500K or larger. Having to retransmit the durn things multiple times is extremely painful and expensive - especially when most of the time the effective thruput was around 1200 baud (inspite of 9600 baud or higher links all the way thru). There were times when we had to abandon attempts to transmit a large file because, after 3500 miles of error-free transmission, the link between the modem and the computer (connected by 2 feet of wire) simply refused to carry our megabyte of data error-free because the computer missed the occasional interrupt at high baud rates. PLEASE PLEASE PLEASE: even on *perfect* channels, packetize and retransmit packets on errors. If the network is reliable, make the packets *big*. Say 16K or 64K, or better still, make it a parameter. There were times when 64K packets would have reduced our line charges by an order of magnitude (no exaggeration - after 40 failures on the same file...). Think about the poor suckers trying to transmit files so large that the probability of a cosmic ray particle nailing the data register in the UART approaches unity. (probably an exaggeration, but you get the idea) Never assume that anything is ever perfectly error-free - in the real world, nothing is (and sometimes the "perfect" ones aren't even close) - don't penalize the people working with imperfect equipment (or software in my case). -- Chris Lewis UUCP: {utzoo|utcs|yetti|genat|seismo}!mnetor!spectrix!clewis Phone: (416)-474-1955
geoff@desint.UUCP (Geoff Kuenning) (08/24/86)
In article <333@maynard.UUCP> campbell@maynard.UUCP (Larry Campbell) writes: > Note also that FAST just has one CRC for the entire file. The longer > the packet, the greater the probability that CRC-16 will fail to > detect an error. For almost any reasonably large file, CRC-16 is > nearly worthless. This is quite simply untrue. CRC-16 will detect *all* error bursts that are less than 16 (17?) bits long, and a remarkably large fraction (e.g., 99.97% or some such) of all longer bursts. The length of the packet is not a factor. (This is similar to statistical sampling, where a sample of about 1200 is sufficient no matter how large the sampled population.) Note that widely-separated errors can be thought of as a very long error burst with most of the bits unchanged. Thus, you can count on CRC-16 picking up 99.97% (or whatever the right number is) of all error patterns, regardless of packet size. -- Geoff Kuenning {hplabs,ihnp4}!trwrb!desint!geoff