⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ymodem.doc

📁 XMODEM传输协议。 通信用代码。 C语言实现
💻 DOC
📖 第 1 页 / 共 5 页
字号:
                                      - 1 -                         XMODEM/YMODEM PROTOCOL REFERENCE                     A compendium of documents describing the                                XMODEM and YMODEM                             File Transfer Protocols                       This document was formatted 8-4-87.                             Edited by Chuck Forsberg                     Please distribute as widely as possible.                           Questions to Chuck Forsberg                               Omen Technology Inc                          The High Reliability Software                            17505-V Sauvie Island Road                              Portland Oregon 97231                            VOICE: 503-621-3406 :VOICE           Modem (TeleGodzilla): 503-621-3746 Speed 19200,2400,1200,300                              CompuServe: 70007,2304                                    GEnie: CAF                        UUCP: ...!tektronix!reed!omen!caf                                      - 2 -    1.  TOWER OF BABEL    A "YMODEM Tower of Babel" has descended on the microcomputing community    bringing with it confusion, frustration, bloated phone bills, and wasted    man hours.  Sadly, I (Chuck Forsberg) am partly to blame for this mess.    As author of the early 1980s batch and 1k XMODEM extensions, I assumed    readers of earlier versions of this document would implement as much of    the YMODEM protocol as their programming skills and computing environments    would permit.  This proved a rather naive assumption as programmers    motivated by competitive pressure implemented as little of YMODEM as    possible.  Some have taken whatever parts of YMODEM that appealed to them,    applied them to MODEM7 Batch, Telink, XMODEM or whatever, and called the    result YMODEM.    Jeff Garbers (Crosstalk package development director) said it all: "With    protocols in the public domain, anyone who wants to dink around with them    can go ahead." [1]    Documents containing altered examples derived from YMODEM.DOC have added    to the confusion.  In one instance, the heading in YMODEM.DOC's Figure 1    has mutated from "1024 byte Packets" to "YMODEM/CRC File Transfer    Protocol".  None of the XMODEM and YMODEM examples shown in one document    were correct.    To put an end to this confusion, we must make "perfectly clear" what    YMODEM stands for, as Ward Christensen defined it in his 1985 coining of    the term.    To the majority of you who read, understood, and respected Ward's    definition of YMODEM, I apologize for the inconvenience.    1.1  Definitions    ARC     ARC is a program that compresses one or more files into an archive            and extracts files from such archives.    XMODEM  refers to the file transfer etiquette introduced by Ward            Christensen's 1977 MODEM.ASM program.  The name XMODEM comes from            Keith Petersen's XMODEM.ASM program, an adaptation of MODEM.ASM            for Remote CP/M (RCPM) systems.  It's also called the MODEM or            MODEM2 protocol.  Some who are unaware of MODEM7's unusual batch            file mode call it MODEM7.  Other aliases include "CP/M Users'            Group" and "TERM II FTP 3".  The name XMODEM caught on partly            because it is distinctive and partly because of media interest in    __________     1. Page C/12, PC-WEEK July 12, 1987    Chapter 1    X/YMODEM Protocol Reference      08-03-87                                3            bulletin board and RCPM systems where it was accessed with an            "XMODEM" command.  This protocol is supported by every serious            communications program because of its universality, simplicity,            and reasonable performance.    XMODEM/CRC replaces XMODEM's 1 byte checksum with a two byte Cyclical            Redundancy Check (CRC-16), giving modern error detection            protection.    XMODEM-1k Refers to the XMODEM/CRC protocol with 1024 byte data blocks.    YMODEM  Refers to the XMODEM/CRC (optional 1k blocks) protocol with batch            transmission as described below.    True YMODEM(TM) In an attempt to sort out the YMODEM Tower of Babel, Omen            Technology has trademarked the term True YMODEM(TM) to represent            the complete YMODEM protocol described in this document, including            pathname, length, and modification date transmitted in block 0.            Please contact Omen Technology about certifying programs for True            YMODEM(TM) compliance.    ZMODEM  uses familiar XMODEM/CRC and YMODEM technology in a new protocol            that provides reliability, throughput, file management, and user            amenities appropriate to contemporary data communications.    ZOO     Like ARC, ZOO is a program that compresses one or more files into            a "zoo archive".  ZOO supports many different operating systems            including Unix and VMS.    Chapter 1    X/YMODEM Protocol Reference      08-03-87                                4    2.  YMODEM MINIMUM REQUIREMENTS    All programs claiming to support YMODEM must meet the following minimum    requirements:       + The sending program shall send the pathname (file name) in block 0.       + The pathname shall be a null terminated ASCII string as described         below.       + The receiving program shall use this pathname for the received file         name, unless explicitly overridden.       + The sending program shall use CRC-16 in response to a "C" pathname         nak, otherwise use 8 bit checksum.       + The receiving program must accept any mixture of 128 and 1024 byte         blocks it receives.       + The sending program must not change the length of an unacknowledged         block.       + At the end of each file, the sending program shall send EOT up to ten         times until it receives an ACK character.  (This is part of the         XMODEM spec.)       + The end of a transfer session shall be signified by a null (empty)         pathname.    Programs not meeting all of these requirements are not YMODEM compatible.    Meeting the minimum requirements does not guarantee reliable file    transfers under stress.    Chapter 2    X/YMODEM Protocol Reference      08-03-87                                5    3.  WHY YMODEM?    Since its development half a decade ago, the Ward Christensen modem    protocol has enabled a wide variety of computer systems to interchange    data.  There is hardly a communications program that doesn't at least    claim to support this protocol.    Recent advances in computing, modems and networking have revealed a number    of weaknesses in the original protocol:       + The short block length caused throughput to suffer when used with         timesharing systems, packet switched networks, satellite circuits,         and buffered (error correcting) modems.       + The 8 bit arithmetic checksum and other aspects allowed line         impairments to interfere with dependable, accurate transfers.       + Only one file could be sent per command.  The file name had to be         given twice, first to the sending program and then again to the         receiving program.       + The transmitted file could accumulate as many as 127 extraneous         bytes.       + The modification date of the file was lost.    A number of other protocols have been developed over the years, but none    have displaced XMODEM to date:       + Lack of public domain documentation and example programs have kept         proprietary protocols such as Blast, Relay, and others tightly bound         to the fortunes of their suppliers.       + Complexity discourages the widespread application of BISYNC, SDLC,         HDLC, X.25, and X.PC protocols.       + Performance compromises and complexity have limited the popularity of         the Kermit protocol, which was developed to allow file transfers in         environments hostile to XMODEM.    The XMODEM protocol extensions and YMODEM Batch address some of these    weaknesses while maintaining most of XMODEM's simplicity.    YMODEM is supported by the public domain programs YAM (CP/M),    YAM(CP/M-86), YAM(CCPM-86), IMP (CP/M), KMD (CP/M), rz/sz (Unix, Xenix,    VMS, Berkeley Unix, Venix, Xenix, Coherent, IDRIS, Regulus).  Commercial    implementations include MIRROR, and Professional-YAM.[1] Communications    Chapter 3    X/YMODEM Protocol Reference      08-03-87                                6    programs supporting these extensions have been in use since 1981.    The 1k block length (XMODEM-1k) described below may be used in conjunction    with YMODEM Batch Protocol, or with single file transfers identical to the    XMODEM/CRC protocol except for minimal changes to support 1k blocks.    Another extension is the YMODEM-g protocol.  YMODEM-g provides maximum    throughput when used with end to end error correcting media, such as X.PC    and error correcting modems, including 9600 bps units by TeleBit,    U.S.Robotics, Hayes, Electronic Vaults, Data Race, and others.    To complete this tome, edited versions of Ward Christensen's original    protocol document and John Byrns's CRC-16 document are included for    reference.    References to the MODEM or MODEM7 protocol have been changed to XMODEM to    accommodate the vernacular.  In Australia, it is properly called the    Christensen Protocol.    3.1  Some Messages from the Pioneer    #: 130940 S0/Communications 25-Apr-85  18:38:47    Sb: my protocol    Fm: Ward Christensen 76703,302 [2]    To: all    Be aware the article[3] DID quote me correctly in terms of the phrases    like "not robust", etc.    It was a quick hack I threw together, very unplanned (like everything I    do), to satisfy a personal need to communicate with "some other" people.    ONLY the fact that it was done in 8/77, and that I put it in the public    domain immediately, made it become the standard that it is.    I think its time for me to    (1) document it; (people call me and say "my product is going to include    it - what can I 'reference'", or "I'm writing a paper on it, what do I put    in the bibliography") and    __________________________________________________________________________     1. Available for IBM PC,XT,AT, Unix and Xenix     2. Edited for typesetting appearance     3. Infoworld April 29 p. 16    Chapter 3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -