Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
XMODEM
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===WXModem=== '''WXmodem''', short for "Windowed Xmodem", is a variant of XMODEM developed by Peter Boswell in 1986 for use on high-latency lines, specifically public [[X.25]] systems and [[PC Pursuit]]. These have latencies that are far higher than the [[plain-old telephone service]], which leads to very poor efficiency in XMODEM. Additionally, these networks often use [[control character]]s for [[Flow control (data)|flow control]] and other tasks, notably [[XON/XOFF]] will stop the data flow. Finally, in the case of an error that required a resend, it was sometimes difficult to know whether a <code>SOH</code> was a packet indicator or more noise. WXmodem adapted XMODEM-CRC to address these problems.{{sfn|Boswell|1986}} One change was to escape a small set of control characters: <code>DLE</code>, <code>XON</code>, <code>XOFF</code> and <code>SYN</code>. These were escaped by inserting a <code>DLE</code> in front of them, and then modifying the character by XORing it with 64. In theory, this meant the packet might be as long as 264 bytes if it originally consisted entirely of characters that required escaping. These inserted and modified characters are not part of the CRC calculation, they are removed and converted at the receiving end before calculating the CRC.{{sfn|Boswell|1986}} Additionally, all packets were prefixed with a <code>SYN</code> character, which meant the packet lead-in was <code>SYN</code><code>SOH</code>, reducing the chance that a stray <code>SOH</code> would be confused for a packet header in various error cases. An unescaped <code>SYN</code> found in the body of a packet was an error.{{sfn|Boswell|1986}} The major change in WXMODEM is the use of a [[sliding window]] to improve throughput on high-latency links. To do so, the <code>ACK</code> messages were followed by the packet number they were <code>ACK</code>ing or <code>NAK</code>ing. The receiver does not have to <code>ACK</code> every packet; it is allowed to <code>ACK</code> any number between one and four packets. An <code>ACK</code> with the fourth packet sequence number is assumed to <code>ACK</code> all four packets. An error causes a <code>NAK</code> to be sent immediately, with all packets from that number and after being re-sent.{{sfn|Boswell|1986}} Requiring an <code>ACK</code> every four packets makes the system work like it has a packet size of 512 bytes, but in the case of an error, typically only requires 128 bytes to be re-sent. Moreover, it reduces the amount of data flowing in the reverse direction by four times. This is of little interest in the typical modem's [[full duplex]] operation, but is important in [[half duplex]] systems like [[Telebit]] models which have 19 kB speed in one direction and 75 bits/s in the return channel.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)