jonathan@cs.pitt.edu (Jonathan Eunice) (08/22/90)
How efficient is/are the protocol(s) used by uucp? How do they compare with zmodem? For some reason (not based on anything resembling knowledge), I have the impression that uucp uses crufty, old, slow protocol(s). Am I in left field? In a related matter, how difficult would it be to replace uucp's protocol(s) with zmodem or a similar fast protocol? Or with a slower one (!), or a compressed one, or whatever? Ie, is uucp bound to its current protocol(s)?
jeh@dcs.simpact.com (08/23/90)
In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: > How efficient is/are the protocol(s) used by uucp? How do they compare > with zmodem? For some reason (not based on anything resembling > knowledge), I have the impression that uucp uses crufty, old, slow > protocol(s). Am I in left field? Yes, you're in left field. The worldwide de facto standard for uucp dialup with 'g' protocol uses packets with 64-byte data fields and six-byte headers, thus achieving about 90% utilization of the available bandwidth. Many modern uucps can be configured to support larger packets, up to 4096 bytes, which squeezes the "overhead" down to almost nothing, but at the expense of MUCH greater retransmission cost when errors occur. Some sites with reliable connections run with 1K packets, which seems to be a good compromise. > In a related matter, how difficult would it be to replace uucp's > protocol(s) with zmodem or a similar fast protocol? Or with a slower > one (!), or a compressed one, or whatever? Ie, is uucp bound to its > current protocol(s)? There are at least three sides to the "how difficult" question. Technically: There is a "protocol negotiation" sequence in the uucp startup, so it is possible to have a uucico that supports both the standard 'g' protocol and, say, zmodem, and which will use the appropriate protocol for each host to which it connects. Legally: I think there are some copyright/licensing issues around the Zmodem protocol. Practically: There are tens of thousands (at least) of uucp sites out there. The chances of getting a significant number of them to use a new uucico just because it supports zmodem are slim to none. Now, if you came up with a "magic bullet" that offered double or triple the performance of current uucps, that would be another matter. But don't think "compression", because news batches (which are the bulk of the traffic) are already compressed, so further compression will hurt rather than help. One of zmodem's features, the ability to restart an interrupted file transfer from where it left off rather than having to start all over again, is really nifty for the PC user who is downloading tens of megabytes from BBSs at 2400 bps, but would be of limited use for most uucp traffic. At my site and the other sites I've looked at, at least, the great bulk of uucp traffic consists of news batches which are already compressed and which are already broken up into files of about 50 Kbytes each. These are moved via uucp through Trailblazer modems at 1200 to 1400 char/sec; thus the typical large file we deal with only takes 30 to 40 seconds to transfer. If the call dies before completion, on the next call we restart with that same file. It just isn't worth the hassle of putting up a new protocol to save less than a minute on the occasional interrupted call. --- Jamie Hanrahan, Simpact Associates, San Diego CA Chair, VMSnet [DECUS uucp] and Internals Working Groups, DECUS VAX Systems SIG Internet: jeh@dcs.simpact.com, or if that fails, jeh@crash.cts.com Uucp: ...{crash,scubed,decwrl}!simpact!jeh
petrilli@walt.cc.utexas.edu (Chris Petrilli) (08/23/90)
In article <1556.26d282ea@dcs.simpact.com> jeh@dcs.simpact.com writes: >In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: >> How efficient is/are the protocol(s) used by uucp? How do they compare >> with zmodem? For some reason (not based on anything resembling >> knowledge), I have the impression that uucp uses crufty, old, slow >> protocol(s). Am I in left field? > >Yes, you're in left field. > >The worldwide de facto standard for uucp dialup with 'g' protocol uses packets >with 64-byte data fields and six-byte headers, thus achieving about 90% >utilization of the available bandwidth. Many modern uucps can be configured to >support larger packets, up to 4096 bytes, which squeezes the "overhead" down to >almost nothing, but at the expense of MUCH greater retransmission cost when >errors occur. Some sites with reliable connections run with 1K packets, which >seems to be a good compromise. > One thing that was forgotten is the availability and use of the Telebit Trailblazer modem. The Trailblazer implements UUCP g-protocol in hardware, and strips all incoming framing information, and adds it when it gets there. My timings/measurements, seem to say it is about 99% efficient, which means at "9600bps" (really 11K on a trailblazer, but for example), you would get about 9504cps without the Trailblazer, but with it you would get 9598cps or so... it helps alot on long distance transmissions. + Chris Petrilli "Opinons represented here | University of Texas at Austin do not necessarily | INTERNET: petrilli@ccwf.cc.utexas.edu represent those of a sane | SNAILMAIL: 429 Brady Lane, Austin, Texas, 78746 person. Take them as + PHONE: +1 512 327 0986 simply that."
fmayhar@hermes.ladc.bull.com (Frank Mayhar) (08/24/90)
In article <1556.26d282ea@dcs.simpact.com>, jeh@dcs.simpact.com writes: |> In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: |> > How efficient is/are the protocol(s) used by uucp? How do they compare |> > with zmodem? For some reason (not based on anything resembling |> > knowledge), I have the impression that uucp uses crufty, old, slow |> > protocol(s). Am I in left field? |> [...] |> There are at least three sides to the "how difficult" question. |> [...] |> Legally: I think there are some copyright/licensing issues around the Zmodem |> protocol. Not true, actually. Chuck Forsberg developed the Zmodem protocol as part of a contract with Telenet, for use over packet-switched networks. The protocol was then contributed to the public domain. At least, that's my understanding. I'm sure Chuck will correct me if I'm wrong. |> Practically: There are tens of thousands (at least) of uucp sites out there. |> The chances of getting a significant number of them to use a new uucico just |> because it supports zmodem are slim to none. That depends. If you managed to get the support of some vendors, and they started bundling your uucp with their Unix systems (and others, for that matter), it could eventually catch on. It _would_ be a slow process, though. The other side of the coin, of course, is that those of us that _want_ to use Zmodem protocol on our uucp transfers could do so. I mean, who really cares about those tens of thousands of sites, if _your_ site, and the sites you have uucp connections with, have the capabilities you need. As far as Trailblazers supporting the g protocol, Zmodem would probably not be an improvement, as it's my understanding that the Trailblazer fakes the g protocol to the local host, and the real transfer takes place using PEP. Of course, there are still _lots_ of 2400 baud modems out there, doing a lot of these uucp transfers, and they would benefit immensely from Zmodem, IMHO. -- Frank Mayhar fmayhar@hermes.ladc.bull.com (..!{uunet,hacgate}!ladcgw!fmayhar) Bull HN Information Systems Inc. Los Angeles Development Center 5250 W. Century Blvd., LA, CA 90045 Phone: (213) 216-6241
david@actsn.fay.ar.us (David Summers) (08/24/90)
In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: > [ ... deleted ... ] > In a related matter, how difficult would it be to replace uucp's > protocol(s) with zmodem or a similar fast protocol? Or with a slower > one (!), or a compressed one, or whatever? Ie, is uucp bound to its > current protocol(s)? Replacing the protocol with your own is *fairly* easy. When we used to have a source license for Unix I played with adding my own (bi-directional) file transfer to UUCP. The source code for HDB is very well layed out and I was even able to fool UUCP into doing bi-directional file transfers (using my own protocol). It had to start up a total of 8 processes per machine to handle things correctly (and elegantly) but it seemed to work. Now if I could only get the error recovery to work 100% of the time! (sigh). If anyone is interested in discussing error recovery on a simple (bi-directional) file transfer protocol then I would very much like to talk things over with you. - David Summers - (david@actsn.fay.ar.us) -- I'm sick and tired of this machine, I wish that I could sell it. It never does just what I want, but only what I tell it! - David Summers (david@actsn.fay.ar.us)
tneff@bfmny0.BFM.COM (Tom Neff) (08/24/90)
In article <1990Aug24.155109.3373@ism.isc.com> johnan@mchale.ism.isc.com (John Antypas) writes: >There is one issue that hasn't been addressed here. A new UUCP >protocol such as "z" for zmodem, would allow use of UUCP over X.25 >networks such as Telenet where straight "g" protocol shows its age. Chuck Forsberg has put years of work into ZMODEM, adapting it for hostile environments and making it very robust. The savings over 'g' may be marginal under *ideal* circumstances, but ZMODEM's charm is that when things get bad it keeps chugging through (with decent throughput) while the others fall by the wayside. I think it's a natural for inclusion in the UUCP protocol suite. The ideal approach would be for one or more value adders like Interactive to add ZMODEM to their UUCICO implementations. Any vendor who did this would have a competitive advantage to offer buyers. On the other hand, since ZMODEM code is widely available and running in UNIX environments today (the rz/sz suite) perhaps some source licensee could simply integrate it into the SV/386 R4 UUCICO and publish the patch. Assuming AT&T doesn't want to get into the act. Ah, they call me a dreamer... -- Perestroika: could \O\ Tom Neff it happen here? \O\ uunet.bfm.com!bfmny0!tneff
les@chinet.chi.il.us (Leslie Mikesell) (08/24/90)
In article <1556.26d282ea@dcs.simpact.com> jeh@dcs.simpact.com writes: >In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: >> I have the impression that uucp uses crufty, old, slow >> protocol(s). Am I in left field? >Yes, you're in left field. >The worldwide de facto standard for uucp dialup with 'g' protocol uses packets >with 64-byte data fields and six-byte headers, thus achieving about 90% >utilization of the available bandwidth. This is true for direct connections with "real" full duplex modems where the turn-around time for the ack packets is insignificant. However, many connections currently happen over packet-switched networks, satellite links, and/or modems that pretend to be full duplex but actually take some time to switch directions. Then you can end up waiting for the ack's and reducing throughput. On a network where there is a per-packet fee, the ack's and the fact that you often send unfilled network packets can be expensive. Older g's allow a 3-packet window that can be sent before the ack's get back, newer ones allow 7 which is the limit for the g protocol field that specifies the number. Some real-world figures for satellite xfers (from todays xferstats on another machine) show about 120 cps over a 2400 baud connection to a machine with the 7-packet window, 90 cps to a machine with a window of 3. Obviously there is some room for improvement here. On top of this, there is the non-windowed per-file handshake and the fact that mail messages carry along a second small file for the uuxqt command. Increasing the packet size or window wouldn't help much with mail transfers, since the files often don't fill the existing window. Note: this applies to trailblazers as well, although you have to look at real connect time to see it - the xferstats don't count the per-file handshake time. >Technically: There is a "protocol negotiation" sequence in the uucp startup, >so it is possible to have a uucico that supports both the standard 'g' >protocol and, say, zmodem, and which will use the appropriate protocol for >each host to which it connects. The big hangup here is that you need a source license to begin with, and then you can't distribute copies. Does anyone have a HDB compatible uucico that can be freely distributed? >Practically: There are tens of thousands (at least) of uucp sites out there. >The chances of getting a significant number of them to use a new uucico just >because it supports zmodem are slim to none. The only ones that matter are the ones that cost you money for your connections. >Now, if you came up with a "magic bullet" that offered double or triple the >performance of current uucps, that would be another matter. But don't think >"compression", because news batches (which are the bulk of the traffic) are >already compressed, so further compression will hurt rather than help. My figures show that it would be possible to double the speed of the 7-window version and almost triple the 3-window version when using a satellite link. Eliminating the acks (except per-file) could cut the cost in half if you pay per network packet. I'd like to see a protocol where you could specify a minimum and maximum packet and window size per host, device and dialer. The highest maximum for the connection would then be used a starting point for negotiation with the remote, and then the sizes would dynamically adjust downward in response to errors with appropriate logging so the setup could be changed if needed. Also, file boundaries should stream through the window. Les Mikesell les@chinet.chi.il.us
johnan@mchale.ism.isc.com (John Antypas) (08/24/90)
There is one issue that hasn't been addressed here. A new UUCP protocol such as "z" for zmodem, would allow use of UUCP over X.25 networks such as Telenet where straight "g" protocol shows its age. Any ideas? John Antypas / Interactive Systems Corp. uucp: ...!uunet!ism.isc.com!johnan Internet: johnan@ism.isc.com All statements above responsability of the author.
david@twg.com (David S. Herron) (08/24/90)
The protocols that UUCP uses can be swapped out -- though you'd have a pretty steep obstacle to climb to get AT&T to put some random piece of (3rd party) software into UUCP. The `g' protocol gets about 80-90% efficiency in pushing bits around at the line speeds with which I am familiar. (300 baud up to 9600 baud) I see little reason to switch away from what I have now, especially since it would greatly limit who I can talk to. Zmodem has, on the other hand, an interesting feature in that it can restart failed transmissions in the middle. My work-around for the lack of that feature is to simply split files before uucp'ing them. But I don't always have to do that -- I've UUCP'd 30-meg+ files over trailblazers before and had 'em work ;-).. -- <- David Herron, an MMDF & WIN/MHS guy, <david@twg.com> <- Formerly: David Herron -- NonResident E-Mail Hack <david@ms.uky.edu> <- <- Sign me up for one "I survived Jaka's Story" T-shirt!
greg@cheers.Bungi.COM (Greg Onufer) (08/25/90)
jeh@dcs.simpact.com writes: > [....] >One of zmodem's features, the ability to restart an interrupted file transfer >from where it left off rather than having to start all over again, is really >nifty for the PC user who is downloading tens of megabytes from BBSs at 2400 >bps, but would be of limited use for most uucp traffic. At my site and the > [....] And, according to the S5R4 docs, there is a "Checkpointing" feature in S5R4 BNU that isn't dependent on the protocol used. If a file transfer dies in the middle, it can be restarted where it left off. The catch is that both systems have to be running S5R4 UUCP (of course). Cheers!greg
syd@DSI.COM (Syd Weinstein) (08/25/90)
>>Technically: There is a "protocol negotiation" sequence in the uucp startup, >>so it is possible to have a uucico that supports both the standard 'g' >>protocol and, say, zmodem, and which will use the appropriate protocol for >>each host to which it connects. What everyone is forgetting here, is that the protocol is only used for sending the file itself. As was stated, there is still the undrelying problem of sending small files, such as mail messages. uucico is split into two functions, one find the requests to send across, and the other actually does the data transfer. Its the data transfer that uses the protocol negotiated. Thus for a mail send, uucico doesn't know its mail. It just sees a request so send 2 files, a 'command file' which is the remote execution of the rmail command, and the 'data file'. Both are just a simple file transfer request to uucico. Thus there is still the time required to send these small files that will not be helped by changing the protocol. A new protocol will only handle the actual sending of a single request itself. Talking about zmodem's restart ability is useless, as uucico will retransmit the entire fill, (again using zmodem protocol if that is the negotiation). Yes, the newest HDB from AT&T can restart a file in the middle, but older ones cannot, and even with Zmodem, they won't even realize they need to. Zmodem, as viewed by itself, is a complete transfer system, so it knows what to do. The protocol is only a small section of uucico, and must be viewed in that context. If you are a mail site, and sending lots of small messages for mail, then you can improve your throughput by switching to a different mail protocol, such as BSMTP, still sent via uucp, instead of rmail. If its news, then selecting correct batch sized will allow for restarts effectively. If its a packet link, then just a protocol with a larger window and selective reject would be needed. Again, its only the transfer of a single file that can be improved by changing the 'protocol' module within uucico. You would need a whole different concept as a file transfer device to improve more than that, and then it wouldn't be uucico. -- ===================================================================== Sydney S. Weinstein, CDP, CCP Elm Coordinator Datacomp Systems, Inc. Voice: (215) 947-9900 syd@DSI.COM or dsinc!syd FAX: (215) 938-0235
jeh@dcs.simpact.com (08/26/90)
In article <1990Aug24.152938.7413@chinet.chi.il.us>, les@chinet.chi.il.us (Leslie Mikesell) writes: > This is true for direct connections with "real" full duplex modems where the > turn-around time for the ack packets is insignificant. However, many > connections currently happen over packet-switched networks, satellite links, > and/or modems that pretend to be full duplex but actually take some time > to switch directions. Then you can end up waiting for the ack's and > reducing throughput. These links provide an error-free path, no? There is already the "f" protocol which is intended for use through mostly-error-free, flow-controlled links. It sends a single checksum at the end of the entire file, relying on the network to get the data through and relying on the fact that while the RS232 (or whatever) connection to your local modem may not be perfect it is quite close. > Older g's allow a 3-packet window that can be sent > before the ack's get back, newer ones allow 7 which is the limit for > the g protocol field that specifies the number. You could hack 'g' fairly readily to allow larger fields for the packet number. While you're at it you'd better add selective retransmit, aka receive window size > 1, to reduce the cost of retransmission when errors occur. > On top of this, there is the non-windowed > per-file handshake and the fact that mail messages carry along a second > small file for the uuxqt command. Increasing the packet size or window > wouldn't help much with mail transfers, since the files often don't > fill the existing window. Note: this applies to trailblazers as well, > although you have to look at real connect time to see it - the xferstats > don't count the per-file handshake time. yup! > The big hangup here is that you need a source license to begin with, and > then you can't distribute copies. Does anyone have a HDB compatible > uucico that can be freely distributed? well, how "compatible" does it have to be? DECUS uucp uses old-style spool file names and a single spool directory but talks to HDB systems just fine. It also has the best login and dialer scripting capability of any uucp arround (not just my opinion). Of course it's written for VMS, but someone told me they ported the g protocol module to MS-DOS in just two days and are getting first-class performance with it, so that can't be too much of a drawback. "Freely distributed"? It used to be based on gnuucp, but the gnu folks tell me that their version has diverged wildly from what they originally sent me, and our version has too (I completely threw away their 'g' implementation and did a whole new one that does windowing, for a start), so I have declared it to be in the public domain. We are going to go to neighbor-system-specific spool directories for the next release. (Right, Mark? :-) HDB-style permissions files are so bizarre that we'll be doing something different. > I'd like to see a protocol where you could specify a minimum and > maximum packet and window size per host, device and dialer. we support this in 'g' via an options field in the entries in the systems file. > Also, file boundaries should stream through the window. This is clearly impossible for "pull-mode" ("I want to receive..."), since the slave can't very well start sending a file until it receives your request for it! But the vast majority of traffic (there I go again) is push- mode, and it would certainly be possible to start sending the file immediately after sending the "I want to send you this file" command, without waiting for a yea or nay. You could assign a simple id code to each file sent during a call; this would be sent in the S command and also in the header for each data block for the file. If the receiving system rejects an S command it would simply drop any data packets containing the same id code. I agree with you about the performance hit for small files, and doing something about it at uucp level sounds like a hell of a good idea. I've seen too many small mail messages (and X files for both mail and news) go through my trailblazer with an effective throughput in the real of 100 char/sec! (Our throughput reporting DOES take the beginning- and end-of-file overhead time into account. 50 Kbyte news batches do hit it up at around 1200-1400.) Unfortunately, in order to use this with TrailBlazer modems, we'd have to abandon their fabled 'g' protocol spoofing. a TB in g-spoof mode not only "knows about" the data link level, it looks for and interprets the "messages" (S, SY, CY, etc.) that mark the beginning and end of a file transfer. It has to, because it has to know to flush its buffers and prepare for line turnaround when the sending system sends the last packet of a file. Another way to fix it would be (for mail) to go to BSMTP, and (for news) to hack uuxqt to allow multiple commands per X file. Then you could send all of your 50 Kbyte news batches and just one (still fairly small) X file. --- Jamie Hanrahan, Simpact Associates, San Diego CA Chair, VMSnet [DECUS uucp] and Internals Working Groups, DECUS VAX Systems SIG Internet: jeh@dcs.simpact.com, or if that fails, jeh@crash.cts.com Uucp: ...{crash,scubed,decwrl}!simpact!jeh
news@m2xenix.psg.com (Randy Bush) (08/26/90)
In <1556.26d282ea@dcs.simpact.com> jeh@dcs.simpact.com writes: >In article <8464@pitt.UUCP>, jonathan@cs.pitt.edu (Jonathan Eunice) writes: >> How efficient is/are the protocol(s) used by uucp? How do they compare >> with zmodem? For some reason (not based on anything resembling >> knowledge), I have the impression that uucp uses crufty, old, slow >> protocol(s). Am I in left field? > Yes, you're in left field. Well, being out there sure has not obscured his vision, then. For those of us moving significant amounts of _mail_ with uucp-g, let me tell you it stinks. The inter-file handshaking eats it to death. While I get intra-file rates of 1000cps, for a couple of hundred mail messages, the effective overall rate is under 200cps. Some of us HDB smail3ers are hacking the stuff from BSMTP, but few sites (e.g. uunet) use it, so it is not of significant help. Also note that, while zmodem would be helpful with news on noisy lines (zmodem's restart is hot), it would not be of significant help with the many small mail files. -- ..!{uunet,qiclab,intelhf}!m2xenix!news
peter@ficc.ferranti.com (Peter da Silva) (08/26/90)
In article <1565.26d6609c@dcs.simpact.com> jeh@dcs.simpact.com writes: > "Freely distributed"? It used to be based on gnuucp, but the gnu folks tell > me that their version has diverged wildly from what they originally sent me, > and our version has too, so I have declared it to be in the public domain. Um, I was under the impression that this wasn't possible. Do you have the FSF's approval for this? -- Peter da Silva. `-_-' +1 713 274 5180. 'U` peter@ferranti.com
vixie@decwrl.dec.com (Paul A Vixie) (08/26/90)
I've got IDA sendmail, which is able to generate BSMTP scripts. Decwrl lets incoming UUCP requests execute the "bsmtp" command, and that all works fine. I need one more piece to get rid of the inter-file handshake delay: If I generate a BSMTP file, it will have in it exactly one mail transaction. This is the same as for "rmail". What's needed is a way to get many of these concat'd together into a single UUCP request, and since they can be uux'd at different times (up to the uucico interval), sendmail is not the place to put the concat logic. The only way I can think of to solve this is to put the bsmtp scripts into some non-UUCP place and concat them with a perl or sh script run from cron. This script would concat everything in, say, /var/spool/bsmtp/uunet/ into one big file and then uux that to uunet!bsmtp. Anybody else done this? Did it help at all? What was the value for N? -- Paul Vixie DEC Western Research Lab <vixie@wrl.dec.com> Palo Alto, California ...!decwrl!vixie
david@twg.com (David S. Herron) (08/27/90)
In article <VIXIE.90Aug26155329@volition.pa.dec.com> vixie@decwrl.dec.com (Paul A Vixie) writes: >I've got IDA sendmail, which is able to generate BSMTP scripts. Decwrl >lets incoming UUCP requests execute the "bsmtp" command, and that all >works fine. I need one more piece to get rid of the inter-file handshake >delay: > >If I generate a BSMTP file, it will have in it exactly one mail transaction. >This is the same as for "rmail". What's needed is a way to get many of >these concat'd together into a single UUCP request, and since they can >be uux'd at different times (up to the uucico interval), sendmail is not >the place to put the concat logic. > >The only way I can think of to solve this is to put the bsmtp scripts into >some non-UUCP place and concat them with a perl or sh script run from cron. >This script would concat everything in, say, /var/spool/bsmtp/uunet/ into >one big file and then uux that to uunet!bsmtp. > >Anybody else done this? Did it help at all? What was the value for N? Paul, You've figured this out pretty much correctly. Some guys at NCR in San Diego worked up something a few years ago did a really low-level & non-portable thing. It figured out what the file name in /usr/spool/uucp for the outgoing batch was and wrote over the end of the BSMTP file with a new BSMTP message piece. What they wanted to avoid was queueing delays -- if their UUCP neighbor called up they wanted to make sure that all of the mail for that neighbor was in the UUCP, rather than some BSMTP queue. I would do pretty much what you suggest. Though since I use MMDF this is a bit easier since the `deliver' for the channel can be run at times I select (using cron) and it would take care of sweeping the queue. I wouldn't mind losing a few times when the neighbor polls me -- just to avoid the low-level hacking around with the queue'd data files. It really "ought" to help out a lot. I haven't done it, despite all the times I've said it would help a lot. I haven't ever felt I had the time to develop it any farther than I have.. Definitely not now. -- <- David Herron, an MMDF & WIN/MHS guy, <david@twg.com> <- Formerly: David Herron -- NonResident E-Mail Hack <david@ms.uky.edu> <- <- Sign me up for one "I survived Jaka's Story" T-shirt!
vixie@decwrl.dec.com (Paul A Vixie) (08/27/90)
Dave, you wrote: # the following line should be changed to reflect the # organization of your system. /usr/bin/compress -d | /usr/bin/rsmtp exit 0 I use: exec /usr/bin/compress -d | /usr/bin/rsmtp (actually my paths are different but you get the idea.) This keeps an extra (useless) sh process from hanging around. >> Nothing to it. smail3 is simple, configurable, works on nearly >> all systems, and doesn't have a sendmail.cf file! What more could >> you want :-) I'd quibble over "simple". Some of those files you quoted look pretty daunting, and I note with terror that there are a lot more of them than in good 'ol (or is that bad 'ol) sendmail. Anyone know when smail3 is coming out of beta-test, OFFICIALLY ? -- Paul Vixie DEC Western Research Lab <vixie@wrl.dec.com> Palo Alto, California ...!decwrl!vixie
dlr@daver.bungi.com (Dave Rand) (08/27/90)
In article <VIXIE.90Aug26155329@volition.pa.dec.com> vixie@decwrl.dec.com (Paul A Vixie) writes: >If I generate a BSMTP file, it will have in it exactly one mail transaction. >This is the same as for "rmail". What's needed is a way to get many of >these concat'd together into a single UUCP request, and since they can >be uux'd at different times (up to the uucico interval), sendmail is not >the place to put the concat logic. smail3 does this right now. The transport to use is "batch_smtp". This places all outgoing messages into a special directory (user configurable), which can be queued for transmission later. Further, and better, you can compress these mail batches, for reduced size (really helps, folks!). I run this to 4 sites now, and have been running it for about 6 months now. Works great, and significantly reduces the amount of transfer time for mail on Trailblazers. Now, if we can only convince UUNET to allow this... Anyway, here's how you set it up for smail3. First, you need to add a new transport to the smail configuration file. Edit your /usr/local/lib/smail/transports (or wherever you have located the smail3 configuration files), and add: # accumulate messages into a directory on a per-host basis batch_smtp: # the appendfile driver can also accumulate in directories driver=appendfile, hbsmtp; # half-baked BSMTP, no HELO or QUIT # files whose names begin with `q' will be placed here: dir=/usr/spool/smail/outq/${lc:host}, user=uucp, # files will be owned by this user mode=0600, # and unreadable by other users Feel free to change the directory as appropriate. Now, you have to have a way for smail3 to know that a specific host should use this transport. This is done using a methods file, although I suppose you could hard-code it, if you wanted to. Edit your /usr/local/lib/smail/routers and change all the transport = xxx to "method = methodfilename". I use the name "uucp" for uucp-type transports, and "smtp" for smtp-type tranports. If you are running a uucp-only site, they perhaps my routers file will do the right thing for you; here it is: # /usr/local/lib/smail/routers # This file defines the configuration of the router subsystem as # compiled into the smail binary. By modifying the source files # conf/EDITME, src/config.h or src/default.c the actual internal # configuration can be changed. Thus, this should be matched up # against thes files before assuming this is completely correct. # paths - route using a paths file, like that produced by the pathalias program paths: driver = pathalias, # general-use paths router method = uucp; # transport = uux; # for matches, deliver over UUCP file = smap, # sorted file containing path info proto = lsearch, # use a linear search (small file) optional, # ignore if the file does not exist domain = uucp # strip ending ".uucp" before searching paths: driver = pathalias, # general-use paths router method = uucp; # transport = uux; # for matches, deliver over UUCP file = paths, # sorted file containing path info proto = bsearch, # use a binary search optional, # ignore if the file does not exist domain = uucp # strip ending ".uucp" before searching # uucp_neighbors - match neighbors accessible over UUCP uucp_neighbors: driver = uuname, # use a program which returns neighbors method = uucp; # transport = uux; cmd = /usr/bin/uuname, # specifically, use the uuname program domain = uucp # smart_host - a partically specified smarthost director # # If the config file attribute smart_path is defined as a path from the # local host to a remote host, then hostnames not matched otherwise will # be sent off to the stated remote host. The config file attribute # smart_transport can be used to specify a different transport. # # If the smart_path attribute is not defined, this router is ignored. smart_host: driver = smarthost, # special-case driver transport = uux # by default deliver over UUCP ----------------------------------------------------------------------- Note that instead of "transport = uux", I have "method = uucp". This tells smail3 to look in the /usr/local/lib/smail/methods/uucp file to see what type of transport it should use for each host. Here is what I use: apt uusmtp cheers batch_smtp chips demand_uusmtp dlb batch_smtp indetech uusmtp interex uusmtp kcdev batch_smtp lynx batch_smtp mips demand news demand_uusmtp sun demand tscs uusmtp uop uusmtp uunet biguux vw26 demand_uusmtp wombat demand * uux ----------------------------------------------------------------- Note that the last line of the file is "* uux". This is required, since smail3 must have some way of getting to a host that is not listed. The "*" matches any host name not previously matched. Anyway, that's it! You are now set up such that outgoing mail messages for the site(s) in question end up in a special spool directory. You can just cat these files together and compress them, feed the result to uux, and you are done. I do this once per hour on my site. I also have another neat trick though - when those sites that run compressed smtp mail log in, I queue all the mail waiting for them before execing uucico. This is all done with a single do-it-all script: #!/bin/sh # @(#)cbsmtp.sh 1.1 7/10/88 02:00:54 . /etc/TIMEZONE # deliver messages accumlated into subdirectories of the # outq spool directory. Subdirectory names are based on # the actual hostnames involved: OUTQ=/usr/spool/smail/outq UUX=/usr/bin/uux LOCALHOST=daver.bungi.com COMPRESS=/usr/bin/compress cd $OUTQ NAME=x case "$LOGNAME" in Ucheers) NAME=cheers ;; Ulynx) NAME=lynx ;; Udlb) NAME=dlb ;; Ukcdev) NAME=kcdev ;; esac if [ "$NAME" != "x" ] then cd $NAME list=`echo q*` # get the list of message files if [ "$list" = "q*" ]; then # no messages were found exit 0 # leave sub-shell fi # compress all of the files, adding HELO and QUIT commands (echo "HELO $LOCALHOST" cat $list echo QUIT) | $COMPRESS | $UUX -r - $NAME!rcsmtp exit 0 else # loop through all of the subdirectories for i in *; do ( cd $i list=`echo q*` # get the list of message files if [ "$list" = "q*" ]; then # no messages were found exit 0 # leave sub-shell fi # compress all of the files, adding HELO and QUIT commands (echo "HELO $LOCALHOST" cat $list echo QUIT) | $COMPRESS | $UUX -r - $i!rcsmtp rm $list ); done fi exit 0 -------------------------------------------------------------- And that does it for outbound. Incoming compressed smtp mail is handled by another simple shell script "rcsmtp": #!/bin/sh # @(#)rcsmtp.sh 1.1 G% 02:01:01 # Receive compressed batches of SMTP commands and send them # to smail. # the following line should be changed to reflect the # organization of your system. /usr/bin/compress -d | /usr/bin/rsmtp exit 0 ---------------------------------------------------------------- Nothing to it. smail3 is simple, configurable, works on nearly all systems, and doesn't have a sendmail.cf file! What more could you want :-) Drop me mail if you have questions... -- Dave Rand {pyramid|mips|bct|vsi1}!daver!dlr Internet: dlr@daver.bungi.com
vixie@decwrl.dec.com (Paul A Vixie) (08/27/90)
vix> Anyone know when smail3 is coming out of beta-test, OFFICIALLY ? dlr> Who can tell? Source is on uunet now, and I've been running it here dlr> for months (years?). Ferget the beta test, and go with it. It works well. Usually when I run a beta test of something, along comes the official version some months or years later with a few fundamental architectural changes in it such that my config files, local source patches, and brain- wave patterns are all subtly "wrong". Just ask anybody who ran my cron when it was in beta :-)... dlr> Give it a try; what have you got to lose but a dlr> few hours of your time? It's taken years to get the subtlties "right" in our sendmail setup. We have a a ring of eight mail queues such that messages get moved "outward" as they get old ("old" starts at an hour) with fewer delivery attempts as age increases; we run 27 dequeuing agents (sendmail -q) in parallel; we have a 700-line sendmail.cf with hooks and tweaks from every corner of the universe that has the look and smell of 80-year old bleu cheese. The bright side is that we're only forwarding 14,000 messages a day. It doubled every year for the last four years, and we weren't sure what kind of architecture we'd use to handle 28,000 messages a day. I think we're max'ed out on internal network bandwidth; there are 50,000 DECnet machines using us for internet forwarding, but we've only got five 56KB lines into that side of our universe so they can only throw so many bits per day. There's no way in the world that we could run a different mailer in only a few hours. Given the number of address tweaks we do and the number of messages we forward, new mailers need to be run in sidelined test machines for N days or weeks before we can put them into production. I tend to hack sendmail.cf "live", but it's a bit like running adb on a running kernel -- nobody else around here will try it :-). -- Paul Vixie DEC Western Research Lab <vixie@wrl.dec.com> Palo Alto, California ...!decwrl!vixie
dlr@daver.bungi.com (Dave Rand) (08/27/90)
In article <VIXIE.90Aug26205245@volition.pa.dec.com> vixie@decwrl.dec.com (Paul A Vixie) writes: >>> dlr@daver.bungi.com (Dave Rand) writes: >>> Nothing to it. smail3 is simple, configurable, works on nearly >>> all systems, and doesn't have a sendmail.cf file! What more could >>> you want :-) > >I'd quibble over "simple". Some of those files you quoted look pretty >daunting, and I note with terror that there are a lot more of them than >in good 'ol (or is that bad 'ol) sendmail. At most, you have to deal with 4 files: 1. directors, which tells local mail how to get delivered; 2. routers, which tells non-local mail how to get routed; 3. transports, which tells smail how to get mail out of smail; 4. and a methods file, which tells for a given machine name which transport to use to best get the mail there. Of course, the advantages are that smail configuration files are human-readable :-), and ALL ARE OPTIONAL. If you don't have them, smail will default to "sensible" values. Sensible, in this case, means values that make sense based on the configuration options you specified when smail3 was compiled (it won't try for a DNS resolution on a UUCP-only machine, for example). On various machines that I administer, only the externally-visable machine(s) have any of these files. The internal machines generally stick with the compiled-in defaults, yet still offer all of the neato-kean features (thanks to smart-hosting)! > >Anyone know when smail3 is coming out of beta-test, OFFICIALLY ? Who can tell? Source is on uunet now, and I've been running it here for months (years?). Ferget the beta test, and go with it. It works well. Like I've said before - I really like smail3. It makes my job easier, because it does the "right thing" out of the box. I can actually understand how the configuration files work (yeah, I know - people can read sendmail.cf as well, but I'm just not smart enough). For uucp-only sites, it offers many of the advantages of sendmail (.forward files with command pipes, RFC-822, etc), but without the pain. Give it a try; what have you got to lose but a few hours of your time? -- Dave Rand {pyramid|mips|bct|vsi1}!daver!dlr Internet: dlr@daver.bungi.com
dlr@daver.bungi.com (Dave Rand) (08/27/90)
In article <VIXIE.90Aug26233735@volition.pa.dec.com> vixie@decwrl.dec.com (Paul A Vixie) writes: >The bright side is that we're only forwarding 14,000 messages a day. > >There's no way in the world that we could run a different mailer in only >a few hours. Given the number of address tweaks we do and the number of >messages we forward, new mailers need to be run in sidelined test machines >for N days or weeks before we can put them into production. I tend to >hack sendmail.cf "live", but it's a bit like running adb on a running >kernel -- nobody else around here will try it :-). And that, friends, is what separates the Real Computers from the toys. daver.bungi.com only deals with about 4,500 messages per week! My hat is off (again) to Paul for: 1. Being able to administer such a system. 2. Putting up with people like me that make sweeping assumptions. Thanks, Paul. (a 700 line sendmail.cf? <shudder>) What I should have said is that for small sites, getting smail3 running is very easy. It also ports very easily to System V environments. If you are in such a catagory, please give smail3 a try. -- Dave Rand {pyramid|mips|bct|vsi1}!daver!dlr Internet: dlr@daver.bungi.com
tron@veritas.uucp (Ronald S. Karr) (08/28/90)
In article <VIXIE.90Aug26205245@volition.pa.dec.com> vixie@decwrl.dec.com (Paul A Vixie) writes: >Anyone know when smail3 is coming out of beta-test, OFFICIALLY ? Anyone can get it now. It is on uunet definitely, and have heard that it is at the OSU archive site, for annonymous uucp, as well. It hasn't been posted because of some design problems that are likely to be a problem for naive users, and partially because I have entirely insufficient available time for fielding questions or complaints from large numbers of users. However, I won't really be happy with it until the design problems are resolved, so you can probably still think of it as a generally available beta release, rather than an officially available general release. -- tron |-<=>-| ARPAnet: veritas!tron@apple.com tron@veritas.com UUCPnet: {amdahl,apple,pyramid}!veritas!tron
honey@doom.ifs.umich.edu (Peter Honeyman) (08/29/90)
jeh@dcs.simpact.com writes: >a TB in g-spoof mode not only > "knows about" the data link level, it looks for and interprets the "messages" > (S, SY, CY, etc.) that mark the beginning and end of a file transfer. It has > to, because it has to know to flush its buffers and prepare for line turnaround > when the sending system sends the last packet of a file. no, no, no, the trailblazer spoof code doesn't know anything about the format of uucp's upper layer protocol. peter
les@chinet.chi.il.us (Leslie Mikesell) (08/29/90)
In article <1990Aug25.144323.10811@DSI.COM> syd@DSI.COM writes: > >>>Technically: There is a "protocol negotiation" sequence in the uucp startup, >A new protocol will only handle the actual sending of a single request >itself. If you just drop a new protocol into the existing routines, that would be true, but it would also be possible after the protocol negotiation to drop into an entirely new mode. >If you are a mail site, and sending lots of small messages for mail, >then you can improve your throughput by switching to a different >mail protocol, such as BSMTP, still sent via uucp, instead of rmail. But only if you are willing to delay mail while your mailer attempts to bundle requests. A single message sent BSMTP will still cause 2 files to be sent via uucp. >If its a packet link, then just a protocol with a larger window and >selective reject would be needed. Again, its only the transfer of >a single file that can be improved by changing the 'protocol' module >within uucico. You would need a whole different concept as a file >transfer device to improve more than that, and then it wouldn't >be uucico. No, it would still be uucico as long as it can negotiate and use 'g' protocol. It would be much more complicated to stream files, though since you would need to delay deleting the request from the sender's queue until the ack comes back, which might cause a job to be resent later accidentally if the connection is broken at the wrong moment. Saving status between calls with a startup negotiation that includes "last packet received" could avoid that problem, though. Les Mikesell les@chinet.chi.il.us
les@chinet.chi.il.us (Leslie Mikesell) (08/29/90)
In article <1565.26d6609c@dcs.simpact.com> jeh@dcs.simpact.com writes: >These links provide an error-free path, no? There is already the "f" protocol >which is intended for use through mostly-error-free, flow-controlled links. It >sends a single checksum at the end of the entire file, relying on the network >to get the data through and relying on the fact that while the RS232 (or >whatever) connection to your local modem may not be perfect it is quite close. I believe that "f" protocol is for 7-bit links and thus adds a lot of overhead, and not everyone has it. "e" protocol works if the link is, in fact, error free (i.e. a network with end to end error control), but again, not everyone has it. >> The big hangup here is that you need a source license to begin with, and >> then you can't distribute copies. Does anyone have a HDB compatible >> uucico that can be freely distributed? >well, how "compatible" does it have to be? DECUS uucp uses old-style spool >file names and a single spool directory but talks to HDB systems just fine. It >also has the best login and dialer scripting capability of any uucp arround >(not just my opinion). I had in mind just dropping a new uucico into a standard HDB program set. Uucp, uux, uuxqt all work just fine. The only thing lacking in the dialer scripts (since \M,\m was added) is the ability to adjust speeds to match up with a modem that sync's with the answering end, and perhaps a "reset" script. > .... so I have declared it to be in the public domain. How can I get a copy? >We are going to go to neighbor-system-specific spool directories for the next >release. (Right, Mark? :-) HDB-style permissions files are so bizarre that >we'll be doing something different. Hmm, nothing wrong with HDB permissions here except that a syntax error in the file will make uucico silently fail. Perhaps under VMS you can do something better than the LOGNAME/MACHINE setup that is needed under unix. >> I'd like to see a protocol where you could specify a minimum and >> maximum packet and window size per host, device and dialer. >we support this in 'g' via an options field in the entries in the systems file. You need it for the devices file also, since you may have many choices for connections to the same host. The differences in dialers could be accomodated by multiple entries for the same device. >Unfortunately, in order to use this with TrailBlazer modems, we'd have to >abandon their fabled 'g' protocol spoofing. a TB in g-spoof mode not only >"knows about" the data link level, it looks for and interprets the "messages" >(S, SY, CY, etc.) that mark the beginning and end of a file transfer. It has >to, because it has to know to flush its buffers and prepare for line turnaround >when the sending system sends the last packet of a file. Or you could just spoof the spoofing. Pretend you were sending one big file with the normal 'g' protocol (perhaps making it look like a cpio archive of all the files you want to send) and let the other end extract them back out. This presents the problems of refusing transmissions (who cares?) and restarting after an interruption (possible, but perhaps not worth the trouble). Les Mikesell les@chinet.chi.il.us
chip@tct.uucp (Chip Salzenberg) (08/31/90)
According to vixie@decwrl.dec.com (Paul A Vixie): >we run 27 dequeuing agents (sendmail -q) in parallel; >we have a 700-line sendmail.cf ... > >The bright side is that we're only forwarding 14,000 messages a day. Exhibit A: a REAL POSTMASTER[tm]. >There's no way in the world that we could run a different mailer in only >a few hours. Granted. But when decwrl.dec.com converts to Smail 3, then I'll know it's *really* arrived. :-) -- Chip Salzenberg at Teltronics/TCT <chip@tct.uucp>, <uunet!pdn!tct!chip>
vixie@wrl.dec.com (Paul Vixie) (09/01/90)
In article <26DD637F.39E1@tct.uucp> chip@tct.uucp (Chip Salzenberg) writes:
# Exhibit A: a REAL POSTMASTER[tm].
Don't be too impressed -- postmaster@uunet.uu.net is a REAL job.
--
Paul Vixie
DEC Western Research Lab <vixie@wrl.dec.com>
Palo Alto, California ...!decwrl!vixie
rick@uunet.UU.NET (Rick Adams) (09/05/90)
In article <1990Sep1.060403.15071@wrl.dec.com>, vixie@wrl.dec.com (Paul Vixie) writes: > In article <26DD637F.39E1@tct.uucp> chip@tct.uucp (Chip Salzenberg) writes: > # Exhibit A: a REAL POSTMASTER[tm]. > > Don't be too impressed -- postmaster@uunet.uu.net is a REAL job. Actually, it's THREE real jobs (or at least I pay 3 real people to do it. They would probably claim that it's more than 3 real jobs...) --rick