[comp.protocols.appletalk] Macintosh TCP/IP, what is there?

jpm@sauna.cs.hut.fi (Jussi-Pekka Mantere) (11/19/88)

In article <3fb3f279.1285f@maize.engin.umich.edu> David R  Falkenburg
 <falken@caen> writes:
< Stuff about developing TCP/IP software on a Mac deleted >
> Why not use Apple's new MacTCP product instead of NCSA's code?
Has it been released already? I've heard rumours about it, but could
you give some details about it? Hopefully
  - it supports "BSD-style" TCP/IP,
  - one can program with it using MPW or other enviroments (LightSpeed),
  - there is an "official" Apple guide concerning TCP/IP...

Apparently Kinetics has a similar product out, called "TCPort Toolkit",
with BSD 4.3 sockets and a C programming library.

>-dave falkenburg

Chape

-- 
Jussi-Pekka Mantere				jpm@cs.hut.fi
Helsinki University of Technology, Finland	jpm@finhutcs.bitnet
Laboratory of Information Processing Science	+ 358 0 451 3231

falken@caen.engin.umich.edu (David R Falkenburg) (11/20/88)

In article <17437@santra.UUCP>, jpm@sauna.cs.hut.fi (Jussi-Pekka Mantere) writes:
> In article <3fb3f279.1285f@maize.engin.umich.edu> David R  Falkenburg
>  <falken@caen> writes:
> < Stuff about developing TCP/IP software on a Mac deleted >
> > Why not use Apple's new MacTCP product instead of NCSA's code?
> Has it been released already? I've heard rumours about it, but could
> you give some details about it? Hopefully
>   - it supports "BSD-style" TCP/IP,
>   - one can program with it using MPW or other enviroments (LightSpeed),
>   - there is an "official" Apple guide concerning TCP/IP...
> 
> Apparently Kinetics has a similar product out, called "TCPort Toolkit",
> with BSD 4.3 sockets and a C programming library.
> 
> >-dave falkenburg
> 
> Chape
> 
> -- 
> Jussi-Pekka Mantere				jpm@cs.hut.fi
> Helsinki University of Technology, Finland	jpm@finhutcs.bitnet
> Laboratory of Information Processing Science	+ 358 0 451 3231

What I know about MacTCP:
   Apple currently has no plans for berkley sockets
   ( ^ THIS IS STUPID and we should all let Apple know)
     It is written in assembly language and Apple will provide
     support for using it with MPW-based developemnt environments
        No official books and or documentation has been released to
        the general public.

Kinetics TCPort DOES have a BSD socket library, and is based on
the coding done here at university of michigan...

-dave "it's all i know for now" falkenburg


-- 
Dave Falkenburg @ University of Michigan Computer Aided Engineering Network
ARPA: falken@caen.engin.umich.edu    UUCP: umix!caen.engin.umich.edu!falken

brad%cayman@HARVARD.HARVARD.EDU (Brad Parker) (11/21/88)

Dave Falkenburg @ Univ of Michigan Computer Aided Engineering Network says:

   What I know about MacTCP:
      Apple currently has no plans for berkley sockets
      ( ^ THIS IS STUPID and we should all let Apple know)

Well, that is certainly one point of view. Another is that the berkeley socket
model is not correct for the macintosh environment.

I have heard people express that a socket library is needed for the mac; it
seems they want to port code which uses sockets. I submit that porting
this code using sockets is not a good idea. The mac is not unix and blocking
is not a good idea on the mac...

The asynchronous nature of networking would suggest that using the mac's
async driver calls ("iopb's" as we call them) would work better. You end up
with a model which looks much more like so called "upcalls". It would be
interesting to hear what John Romkey's (and others) experience with upcalls
and blocking were/are on the IBM PC (Romkey authored PC/IP which ported IP/TCP
functionality to the IBM PC and led later to MacIP, the first IP on the Mac).

But, I am often wrong about these things ;-)

-brad

falken@caen.engin.umich.edu (David R Falkenburg) (11/22/88)

In article <8811201926.AA27073@cayman.Cayman.COM>, brad%cayman@HARVARD.HARVARD.EDU (Brad Parker) writes:
> 
> Dave Falkenburg @ Univ of Michigan Computer Aided Engineering Network says:
> 
>    What I know about MacTCP:
>       Apple currently has no plans for berkley sockets
>       ( ^ THIS IS STUPID and we should all let Apple know)
> 
> Well, that is certainly one point of view. Another is that the berkeley socket
> model is not correct for the macintosh environment.
> 
> I have heard people express that a socket library is needed for the mac; it
> seems they want to port code which uses sockets. I submit that porting
> this code using sockets is not a good idea. The mac is not unix and blocking
> is not a good idea on the mac...
> 
> The asynchronous nature of networking would suggest that using the mac's
> async driver calls ("iopb's" as we call them) would work better. You end up
> with a model which looks much more like so called "upcalls". It would be
> interesting to hear what John Romkey's (and others) experience with upcalls
> and blocking were/are on the IBM PC (Romkey authored PC/IP which ported IP/TCP
> functionality to the IBM PC and led later to MacIP, the first IP on the Mac).
> 
> But, I am often wrong about these things ;-)
> 
> -brad

Ever wonder why not everyone understands/programs things which rely on
big parameter blocks, etc. on the Mac?   Berkely Sockets are the ACCEPTED
way of programming for networking applications with as little pain as
possible.  Ever HAVE to write a usefule ioCompletion routine or DDP
SOcket Listener?

Apple's alternative would be to provide "high-level" calls which are similar
in nature to BSD sockets, but aren't...  People want a high level interface
for networking, otherwise they won't program for it.

-dave falkenburg
-- 
Dave Falkenburg @ University of Michigan Computer Aided Engineering Network
ARPA: falken@caen.engin.umich.edu    UUCP: umix!caen.engin.umich.edu!falken

amanda@lts.UUCP (Amanda Walker) (11/22/88)

In article <3fcd4c3b.1285f@maize.engin.umich.edu>,
	falken@caen.engin.umich.edu (David R  Falkenburg) writes:

> Ever wonder why not everyone understands/programs things which rely on
> big parameter blocks, etc. on the Mac?

They look big and scary.  Seriously. They aren't The Unix (or whatever) Way,
and so, like any other aspect of programming the Mac, you can't sit down and
immediately start writing code by pretending it's another machine with the
routine names spelled differently.  For networking in particular, and an
event-driven, asynchronous I/O system in general, I find Mac parameter
blocks actually *easier* to use.  They're certainly better than sockets,
and I come from a heavy Unix background to boot...  Ever try to teach someone
to use sockets without giving them gobs of sample code and hoping they
don't want to use OOB data or SIGIO?

> Berkely Sockets are the ACCEPTED way of programming for networking
> applications with as little pain as possible.

Well, that's debateable.  Let's say they are the COMMON way, under
UNIX.  Look, I'm glad the friendly folks at Berkeley did the 4.2 & 4.3
network code.  Yeah, it's a little grody, but, by and large, it works.
More importantly, it has been widely distributed to serve as a testbed
and basis for further development.  But just because it has done a
good job at this doesn't mean it's The One True Way to do networking,
especially on a machine that provides a different suite of basic
services.  The Mac is not a UNIX box (A/UX aside, and if you're
running it, you get sockets...).  The Mac doesn't have the cheap
multitasking of UNIX, and UNIX doesn't have the cheap asynchronous I/O
of the Mac.  This difference, among others, is why how networking is
done differently.

> Ever HAVE to write a useful ioCompletion routine or DDP SOcket Listener?

Sure.  So?  Most competent Macintosh programmers could do it with a
little work.  And most competent Unix programmers can write basic code
using sockets after a little work.  All this shows is that the
programming environment is consistent on each side.  This isn't a bad
thing.

> Apple's alternative would be to provide "high-level" calls which are similar
> in nature to BSD sockets, but aren't...  People want a high level interface
> for networking, otherwise they won't program for it.

Grin.  Methinks you mean "I want a high level interface for networking,
otherwise I won't program for it."

Sure, there's a place for a socket library on the Mac, just as there
is a place for a stdio library.  But remember that MacTCP is aimed
only at OEMs and research projects.  It wasn't designed so that Joe
Unix User can sit down and port sendmail to it.  Personally, I don't
think this is a big problem.  If you really want sockets, you can use
sockets.  The CITI TCP/IP drivers are even free for the FTPing.  If you
want something to incorporate into a Macintosh PRODUCT, however, it's
not the way to go, with all due respect to CITI.

Answer me this: how much Unix software is out there that would be useful
to have ported to the Mac, and where using sockets would be simpler
and give better performance than doing things Macintosh style?  Making
the mac look like UNIX doesn't count--that's what A/UX is for, and
good at :-).

-- 
Amanda Walker			...!uunet!lts!amanda / lts!amanda@uunet.uu.net
			  InterCon, 11732 Bowman Green Drive, Reston, VA 22090
--
"The best way to predict the future is to invent it." -- N. Negroponte

beard@ux1.lbl.gov (Patrick C Beard) (11/22/88)

In article <17437@santra.UUCP> Jussi-Pekka Mantere <jpm@cs.hut.fi> writes:
[about TCP/IP code for Mac from Kinetics & Apple]

Just for you information.  CITI's MacIP code is available via anonymous
ftp at:
citi.umich.edu
In the directory:
citi-macip/release2.0B2