[net.dcom] MNP Proposed as Industry Standard

joel@gould9.UUCP (Joel West) (12/17/85)

Quoting from Computer Systems News, 12/16/85 [(c) 1985 someone or
another]:

	MARINA DEL RAY--Modem maker Microcom Inc. last week proposed
	[to CCITT] its MNP (Microcom Networking Protocol) error-protection
	scheme as an industry standard for error detection and
	correction.
	...[The company] announced that MNP classes 1, 2, and 3
	will be put in the public domain and said the company will
	make them available for $100, including full documentation.
	   Microcom also said current licensses of MNP classes 1,2,
	and 3 will receive licenses to the new classes of 4,5 and 6
	free of charge.  New licensees of MNP will pay about $2500
	for the new classes.
	  [Mumble jumble marketing b.s. "pretty much a de facto standard"]
	  [Corporate mucky-muck] said that submitting classes 1 through
	3 for consideration as a standard would make classes 4, 5 and
	6 a standard also "since they are compatible with the other
	classes of MNP."
	  [He] said the only major opposition to the accpetance of MNP
	might come from supporters of Tymnet Inc.'s X.PC protocol.

Questions and comments:
    1.	It still seems as though Microcom is trying to make money on the
	standard itself, instead of benefiting more indirectly from
	the standard's success (e.g., Tymnet and X.PC)
    2.	$100 is pretty high for "public domain".  If the manuals are
	less than 500 pages (remember the "Inside Macintosh" 
	controversy), they're probably making a good profit margin
	on this "public domain" product.
    3.	What are the chances that this act of selfless generosity
	will be accepted?
    4.	Why would any company pay $2,500 for 4-6, when they can get
	1-3 free?
    5.	Even if it is free, is there any reason why I would want
	MNP?
-- 
	Joel West	 	(619) 457-9681
	CACI, Inc. Federal, 3344 N. Torrey Pines Ct., La Jolla, CA  92037
	{cbosgd,ihnp4,pyramid,sdcsvax,ucla-cs}!gould9!joel
	gould9!joel@nosc.ARPA

barry@adelie.UUCP (Barry A. Burke) (12/18/85)

Regarding Microcom's recent MNP announcements, Joel West asks:
>Questions and comments:
>    1.	It still seems as though Microcom is trying to make money on the
>	standard itself, instead of benefiting more indirectly from
>	the standard's success (e.g., Tymnet and X.PC)

Without as massive an end-user delivery vehicle as Tymnet, Microcom is
trying to make money the only way they can.  The hope is that the easy
availability of MNP will cause the MAJORITY of Modem manufacturers to
License MNP, while Tymet's X.PC is targetted more at Software (eg.
terminal emulator/file transfer) developers.

>    2.	$100 is pretty high for "public domain".  If the manuals are
>	less than 500 pages (remember the "Inside Macintosh" 
>	controversy), they're probably making a good profit margin
>	on this "public domain" product.

And what's wrong with making a profit?  And try licensing SNA (*ANY*
level) for $100.

>    3.	What are the chances that this act of selfless generosity
>	will be accepted?

Tremendous.  Already there's not a single major modem manufacturer
(except Hayes) that doesn't have  MNP available on at least one modem
(er, excuse me- AT&T may not have delivered a modem with MNP either).

>    4.	Why would any company pay $2,500 for 4-6, when they can get
>	1-3 free?

Because 4-6 are BETTER.  A recent article in Computer Systems News
mentioned that levels 4+ have automatic variable-length packet framing
(levels 1-3 are fixed at 64 chars).  Also, starting at level 5 (I
think), data compression is included- Microcom has announced a 4800 baud
modem which is really 2400 baud with data compression.  Level 6 is for
9600 baud (+?), Microcom has announced intent to provide modems in this
sphere, too.  The important factor of all this is that higher throughput
is available using MNP 4+ using existing modem technology and standards
(the DCA FastLink is NOT "standard" technology- it's extremely
proprietary).  

>    5.	Even if it is free, is there any reason why I would want
>	MNP?

Probably not unless you manufacture modems.  It's not clear whether
anything can be gained (or if it's even possible) by running MNP in
software in say, your PC's terminal emulator.  BUT, if you DO
manufacture modems, already it appears to be in your best interest to
invest in and implement MNP, since a growing percentage of the 2400+
baud modems are using it.  And if (as I suspect) MNP works BETTER for
interactive use than does the FastLink stuff at higher speeds- look out,
EVERYBODY will have MNP.

[Disclaimer:  I have no interest or relationship with Microcom, etc.]
[	      I provide no warrent, expressed or otherwise, that the]
[	      above information is correct.  			    ]
-- 
LIVE:	Barry A. Burke, (617) 965-8480 x26
USPS:	Adelie Corporation, 288 Walnut St., Newtonville, MA  02160
UUCP:	..!{harvard | decvax!linus!axiom}!adelie!barry
ARPA:	adelie!barry@harvard.HARVARD.EDU, barry%adelie.UUCP@harvard.HARVARD.EDU

faunt@hplabs.UUCP (Doug Faunt) (12/19/85)

> 
>  It's not clear whether
> anything can be gained (or if it's even possible) by running MNP in
> software in say, your PC's terminal emulator.  BUT, if you DO

Is this true?  If so, why?  Is there something simple here that I don't
see?
-- 
  ....!hplabs!faunt	faunt%hplabs@csnet-relay.ARPA
HP is not responsible for anything I say here.  In fact, what I say here
may have been generated by a noisy telephone line.

ralphw@ius2.cs.cmu.edu (Ralph Hyre) (12/21/85)

In article <1956@hplabs.UUCP> faunt@hplabs.UUCP (Doug Faunt) writes:
>> 
>>  It's not clear whether
>> anything can be gained (or if it's even possible) by running MNP in
>> software in say, your PC's terminal emulator.  BUT, if you DO
>
>Is this true?  If so, why?  Is there something simple here that I don't
>see?

Well, there's and end-to-end argument in computer systems design* which
claims that it's often useful to put error correction in the application
itself rather than depend on error correction at lower levels, since the
low-level correction doesn't know all the ways in which the higher-level
applications can lose or corrupt data.  MNP might get the bits back and
forth between the modems ok, but then you have to make sure that the 
modem <-> computer (memory) <-> filesystem connection is reliable.
(Generally it is, so most people will be happy with MNP and X.PC if
they're not to paranoid)

This would argue for putting MNP closer to the application itself.
In general, it's best to just to do error correction in just one place
unless the underliying communications channels are flaky enough to
require it (some LD phone lines are certainly an example of this.)

* recommended reading, it's in an ACM Transacions on (Computer Systems?)
journal that came out recently, written by two of the following people:
{Jerry Saltzer, Dave Clark, Dave Reed}

The careful file transfer discussion is very relevant.

--
					- Ralph W. Hyre, Jr.

Internet: ralphw@c.cs.cmu.edu (cmu-cs-c.arpa)	Usenet: ralphw@mit-eddie.uucp
Fido: Ralph Hyre at Net 129, Node 0 (Pitt-Bull) Phone: (412)578-2847,578-3275

-- 
					- Ralph W. Hyre, Jr.

Internet: ralphw@c.cs.cmu.edu (cmu-cs-c.arpa)	Usenet: ralphw@mit-eddie.uucp
Fido: Ralph Hyre at Net 129, Node 0 (Pitt-Bull) Phone: (412)578-2847,578-3275

karn@petrus.UUCP (Phil R. Karn) (12/21/85)

Personal opinion:

Whenever possible, and unless your lines are VERY noisy, you should ignore
this "reliable link level protocol" garbage and run TCP/IP with
serial-line-IP (SLIP) across your simple dialup modems.  If your TCPs are
properly tuned and implement the Nagle congestion control algorithm, Telnet
works very nicely.  Plus you get transparent Internet access with full
end-to-end error checking (something a link protocol can't do) to boot.

If you have a PC, you can use the MIT package. Maybe some day an enlightened
vendor will come out with a cheap, single-port TCP/IP/SLIP "PAD" that works
instead of reinventing yet another ad-hoc, "proprietary" link level
protocol. 

Phil

lauren@vortex.UUCP (Lauren Weinstein) (12/22/85)

Actually, the problems of computer<->modem data integrity are quite
serious, especially at higher speeds (but sometimes as low as 1200 bps)
and especially with hardware and operating systems which
tend to have problems with "high" speed serial data (like many computers
which run Unix, for example).

--Lauren--

faunt@hplabs.UUCP (Doug Faunt) (12/23/85)

> In article <1956@hplabs.UUCP> faunt@hplabs.UUCP (Doug Faunt) writes:
> >> 
> >>  It's not clear whether
> >> anything can be gained (or if it's even possible) by running MNP in
> >> software in say, your PC's terminal emulator.  BUT, if you DO
> >
> >Is this true?  If so, why?  Is there something simple here that I don't
> >see?
> 
> 
> This would argue for putting MNP closer to the application itself.
> In general, it's best to just to do error correction in just one place
> unless the underliying communications channels are flaky enough to
> require it (some LD phone lines are certainly an example of this.)
> 

I may have been misunderstood here.  The original statement was 
> >>  It's not clear whether
> >> anything can be gained (or if it's even possible) by running MNP in
> >> software in say, your PC's terminal emulator. 

 My question was (intended to be), can I run MNP in software
if I have a terminal emulator running on a general-purpose computer system?
or is MNP hard-tied into the data-transmission circuits/algorithms in
the modem?  

Ralph's reply, which makes sense to me, seems to say that running
any error-correction protocol "closer" to the application is
a good thing.  This would mean that running MNP in my terminal emulator
would be a good thing.
-- 
  ....!hplabs!faunt	faunt%hplabs@csnet-relay.ARPA
HP is not responsible for anything I say here.  In fact, what I say here
may have been generated by a noisy telephone line.

barry@adelie.UUCP (Barry A. Burke) (12/24/85)

>> >>  It's not clear whether
>> >> anything can be gained (or if it's even possible) by running MNP in
>> >> software in say, your PC's terminal emulator. 
>
> My question was (intended to be), can I run MNP in software
>if I have a terminal emulator running on a general-purpose computer system?
>or is MNP hard-tied into the data-transmission circuits/algorithms in
>the modem?  
>
>Ralph's reply, which makes sense to me, seems to say that running
>any error-correction protocol "closer" to the application is
>a good thing.  This would mean that running MNP in my terminal emulator
>would be a good thing.
>

I obviously was not very explicit in my original posting regarding the
above statement.  What I am saying is that MNP is quite likely a
time-based correction protocol, as it was developed to run on modem
hardware (as opposed to X.PC, which was designed to run in the PC
itself).  To maintain the high throughput of MNP (it's effectively
transparent on clean lines- low overhead), I suspect that a
time-synchronous factor is included in the missed packet/packet framing
componenet of MNP.  This would enable packets to be simply framed and
checksummed.  X.PC, on the otherhand, must have a much more X.25-like
framing in order to handle multiple sessions over the link.

What I'm driving at is that MNP is a reasonably effective and efficient
error correction protocol for the physical layer, but it probably can't
well be implemented in software on a GP PC or timesharing system,
because of it's origin as a component of a piece of comms hardware.
Running MNP in userspace on your VAX might be much like running SDLC
without any hardware to help- good luck.

And while I agree that error correction (and recovery) really must be
done at the application level, error recovery at lower levels can reduce
the overal data-flow overhead, as the higher up the problems must be
RECOVERED from, the more the overhead to perform the recovery (note that
the DETECTION overhead is predictably constant at each level).  So, for
me, I'd prefer the following (as an example):


    PC							Remote HOST
============						===========

APPLICATION     <---   (Appl. ERROR CORRECTION) --->	APPLICATION
  CLIENT   						   SERVER
    v							     v
    v                                                        v
   X.PC		<---   (X.PC ERROR CORRECTION)  --->	    X.PC
  CLIENT		[running on Host CPU]		   SERVER
    v                                                        v
    v							     v
   MNP		<---   (MNP ERROR CORRECTION)   --->	    MNP
  MODEM			[running in Modems]		   MODEM
    v                                                        v
    v                                                        v
    - - - - - - - - - - - - - - -/ /- - - - - - - - - - - - -

Too much of today's Application software assumes clean, clear data transfer
to/from the remote device- a case that's not even 99% true for direct connect
devices, much less anyhting that connectes over phone lines.  MNP (in my
opinion) tries to make the phone lines look clear, but do NOT protect from
every data error the Application may see.  Likewise, X.PC (I've worked for
years over X.25 links- the only thing that's assured is that whatever garbage
you put in one side will come out the other, in the right order!).  If you
want error-free, you have to do error correction at the application.  BUT
since pending flushes, data re-packetizing, and retransmission is expressed in
CPU & memory use overhead- you'll get a better PERFORMING package if you use
a recovery protocol at several different layers.  

Remember, the best performing error recovery implementation is one that costs
nothing to detect errors, and never has to correct any!
-- 
LIVE:	Barry A. Burke, (617) 965-8480 x26
USPS:	Adelie Corporation, 288 Walnut St., Newtonville, MA  02160
UUCP:	..!{harvard | decvax!linus!axiom}!adelie!barry
ARPA:	adelie!barry@harvard.HARVARD.EDU, barry%adelie.UUCP@harvard.HARVARD.EDU

mark@cbosgd.UUCP (Mark Horton) (12/28/85)

For true HOST-HOST communication, ala TCP/IP or UUCP or X.25 or OSI or
whatever, there are end-to-end protocols that make things like MNP
unnecessary (and the overhead could hurt throughput.)

But for ordinary RS232 "lowest common denominator" terminals, especially
over possibly noisy dialup lines, MNP could be a big win.  But it's not
perfect - lack of flow control can still cause you to drop data if the
producer creates bursts that the consumer can't handle in real time.

I'm not very familiar with MNP, but I seem to recall hearing that it
uses the start and stop bits (recall that async links send 10 bits for
each 8 bit character, using start and stop for framing) for the extra
information.  This means there is no slowdown.  It also means that you
cannot send a BREAK over such a line, and I seem to recall hearing someone
saying that you can't send a BREAK with MNP.  This only matters for users
of terminals, since host protocols don't generally use BREAK, but then the
terminal users are the ones who benefit most from MNP.

	Mark

johnl@ima.UUCP (01/02/86)

There seems to be some confusion as to whether it is possible to implement
MNP on a regular computer, rather than in the modem.  The answer seems to be
yes, since I am at this moment typing on an IBM PC running a modem program
from Microcom which implements MNP with (I think) no help from the modem.

MNP is actually a family of protocols, including reliable link mode, which
is like Telnet, and reliable file transfer which is like FTP.  The reliable
link mode does seem not to allow breaks, and is a little spazzy in very
interactive use.  I usually use it when dialing into Telenet, logging in to
some computer and having it blat a lot of data at me, which works well.  The
file transfer mode works great and seems to be faster than any other commonly
available PC protocol.  (RBBS-PC, a common bulletin board program, supports it.)
It's a big win over XMODEM.  There are also features that I don't really
understand which are supposed to help when transferring files between computers
that have different opinions about e.g. end of line characters.

John Levine, ima!johnl

henry@utzoo.UUCP (Henry Spencer) (01/03/86)

> And while I agree that error correction (and recovery) really must be
> done at the application level, error recovery at lower levels can reduce
> the overal data-flow overhead, as the higher up the problems must be
> RECOVERED from, the more the overhead to perform the recovery...

Note the key word "can", not "will".  Upper levels sometimes need do *less*
work to perform recovery, because they know more about what's going on.
An extreme case is packet voice, where it is usually better *not* to attempt
recovery at all, because the delay involved in recovery is much more audible
than just forgetting the bad packet altogether and faking it until the next
good one arrives.  (How to "fake it"?  Repeat the last packet.  Or hold the
sound output constant at the last value of the last packet.  Or do any of
several more complicated things.  All less audible than a gap.)

Also don't forget that layered protocols can exact a terrible price in
performance, because of multiple layers of overhead.

If your lines are noisy and your performance needs are both moderate and
orthodox, low-level recovery is probably a win even though one does need
end-to-end checks as well.  If you care a lot about performance and your
transmission medium is pretty good (e.g. Ethernet), the situation looks
very different.
-- 
				Henry Spencer @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!henry