Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!brutus.cs.uiuc.edu!wuarchive!wugate!uunet!yale!cs.yale.edu From: Owens-Christopher@cs.yale.edu (Christopher Owens) Newsgroups: comp.dcom.modems Subject: Re: Modem control lines Keywords: Pass-through? Message-ID: <2532@cs.yale.edu> Date: 16 Oct 89 16:50:04 GMT References: <1180@srhqla.SR.COM> Sender: news@cs.yale.edu Reply-To: Owens-Christopher@cs.yale.edu (Christopher Owens) Distribution: usa Organization: Computer Science, Yale University, New Haven, CT 06520-2158 Lines: 71 In-reply-to: tcm@srhqla.SR.COM (Tim Meighan) In article <1180@srhqla.SR.COM>, tcm@srhqla (Tim Meighan) writes: > In article <413@belltec.UUCP> lance@belltec.UUCP (Lance Norskog) writes: > > >I have a peculiar question. Do old-style analog modems pass through the > >CTS/DTS signaling along with the data, or do they ignore it? If CTS/DTS > >is part of the spec'd behavior of modems, how is it handled with high-speed > >digitally buffered and processed modems? > > Well, it's not so peculiar, although you are mixing acronyms. RTS and CTS > are lines usually used for flow control, while DTR (not DTS) is generally > used for equipment control (like resetting a modem to make sure it hangs > up the phone line). Also, you don't seem to have a good grasp of what > flow control on serial ports is for -- these are NOT signals intended > to be propagated through, like data, to appear at the remote modem's > serial port. > > RTS and CTS are used to make sure that the flow of data between the modem > and the LOCAL data producing equipment (computer, terminal, etc) is properly > maintained without data loss. > [...] > All modems that support hardware flow control, old or new, work this same > basic way. The method that modems use to exchange data on the analog side > (the phone line) doesn't change the function of RTS/CTS on the serial > port side. There is something about RTS/CTS and modem links that I have never fully understood. My understanding of flow control is as follows. I'm sorry if I am mixing up RTS and CTS -- I don't have the reference handy. By RTS I mean the line from the DTE to the modem telling the modem that the DTE is ready to accept data. By CTS I mean the line from the modem to the DTE telling the DTE that the modem is ready to accept data. Let's say I am connected and configured at both ends to use RTS/CTS. Now if I am at the receiving end of a data transfer, and I find my input buffer filling, I will drop RTS, which tells my modem to stop sending characters to me. Now, presumably, the modem's internal buffer is going to fill up pretty fast, at which point it is going to want to send some kind of signal to the other modem to tell it to stop sending data down the communications line. The exact nature of this signal would depend upon the modem protocol, of course. If the other modem obeys this signal, then pretty soon its buffer is going to fill up, at which point it wants to signal the computer at its end to stop sending characters to it, presumably by dropping CTS. By this time I have emptied my input buffer, so I re-assert RTS, which tells my modem to start sending characters to me again. When my modem's buffer begins to empty, it sends a signal to the other modem to tell it to start sending data to it again, at which point its buffer begins to empty, and it turns on the flow at the far end by re-asserting CTS. So, according to my understanding, RTS and CTS are in some indirect sense passed through the telecommunications link in that, if the DTE at one end shuts off the flow from the modem, the modem at the other end will eventually shut off the flow from the DTE to which it is connected. Now what I don't understand is, what do the modems use for this mystery signal to communicate with each other? How sophisticated a protocol does one need to be using before this happens? Does a plain analog modem (e.g.: Bell 212) do anything of this kind? If not, what happens when one drops RTS at one end of the connection? To throw in an additional monkey wrench, what if one modem is configured to use rts/cts flow control, and the other is configured to use XON/XOFF. Assuming a modem protocol like, for example, MNP5, is everything sorted out correctly such that de-asserting RTS at one end will result in an XOFF being sent at the other end? My thanks to anyone who can explain this to me. /c