[comp.protocols.tcp-ip.ibmpc] "host-based" vs. "front-end-processor" PC network interfaces

chuck@excelan.UUCP (Chuck Kollars) (05/13/88)

Currently TCP/IP protocols can be executed either in the PC, or on 
the NIC.  The "host-based" and "front-end-processor" architectures 
each have their advantages and their disadvantages.  Performance, 
reliability, usability, and cost of a product depend on the 
implementation more than the architecture.  

Some potential advantages of the Front End Processor architecture:
 o  offload packet handling from host CPU 
 o  reduce host memory requirements 
 o  larger data holding buffers and sliding window sizes 
 o  shorter latency between received packet and acknowledgement
 o  partially offload keystroke processing 
 o  many simultaneous connections 

Some of these advantages are most relevant to multiprocessor (ex:
OS/2) or multiuser (ex: Xenix) systems.  Others are especially
relevant to systems with memory address space restrictions (ex: DOS).

The interface to the transport layer is a convenient place for 
separating host and onboard portions.  Applications using an 
interface like SOCK_STREAM sockets can pass their data to the network 
with simple read() and write() calls.  Separation between the host 
and onboard portions is especially clean for "stream" or "pipeline" 
style transport layers (ex:TCP, named pipes).  

While Excelan did not invent the Front End Processor approach and does
not restrict its product line to FEP configurations, "Excelan style" 
is sometimes used to mean "outboard" or "onboard" protocols.  The 
EXOS205 Network Interface Card for PC's is usually configured for FEP 
operation.  The card uses a shared memory interface because of 
problems with DMA generic to PC's.  

The choice of host-based or FEP architecture is less final in the
world of PC's than usual (at least for vendors and other nuts-and-bolts 
developers).  Most "smart" NIC's use an Intel 8xx86 processor chip.  
Since the instruction set is identical to the one in the PC itself, 
it's particularly easy to move modules of code back and forth between 
the host and the board.  

"Host-based" vs. "front-end-processor" has been discussed to death
for years on the network, in the literature, and elsewhere.  This
posting is intended to provide a brief introduction to the topic for
people who are new to LAN's, not to rekindle old religious wars.  It 
was prompted by peripheral references to the FEP vs. Host-Based issue 
in some recent articles in this newsgroup:

in <8804281612.AA14022@vax.ftp.com>
>...TCP/IP currently resides on their...card... ...SLIP...would
>require moving it off the card...
in <21523@amdcad.AMD.COM>
>...the 286 on an AT beats the 186 in Excelan etc style boards.
in <8805110429.AA03980@vax.ftp.com>
>...classic problem with outboard protocol implementations
>is that they are complicated to talk to.
-- 
Chuck Kollars,   Excelan, Inc.   (chuck@excelan.UUCP)
mabell: (408) 434-7434	Internet: mtxinu!excelan!chuck@ucbvax.Berkeley.COM
telex: 176610		uucp: ...!{mtxinu,leadsv,cae780}!excelan!chuck
fax: (408) 434-2310	post: Excelan, 2180 Fortune Drive, San Jose CA, 95131

phil@amdcad.AMD.COM (Phil Ngai) (05/14/88)

In article <361@lalk.excelan.UUCP> chuck@excelan.UUCP (Chuck Kollars) writes:
>Some potential advantages of the Front End Processor architecture:
> o  reduce host memory requirements 

If I compare a $200 WD board with a $700 EXOS 205, I'd have to say
that's an expensive way to buy memory (not to mention the inherently
lower performance of the EXOS's 186 vs my PC's 286). 

Right now things like PC-NFS don't live in expanded or extended
memory but such is certainly possible.

> o  many simultaneous connections 

I believe some people have run into a problem with the limited number
of sockets available with the EXOS 204. I don't know about the newer
board but considering that these people's response was to ditch
Excelan and go to Wollongong, I would guess Excelan still only gives
you a very small number of sockets on the EXOS 304. 

I wonder if the VMS people could comment on the usefulness of the
204/304. Do you ever run out of sockets? How reliable is your Excelan
hardware? We have a 205 that fails a lot. Takes weeks to repair. And
at the price, you can't afford to keep spares around like you can the
WD board. 

I don't have it in for Excelan or anything but the WD board really
seems like a better piece of hardware to me. I would love to see
an extended discussion of the merits and demerits of both boards.

Actually, I hate WD the company. Trying to get technical information
out of them is difficult. But a FAST Ethernet card for $200 is worth a
lot of trouble. 

-- 
Make Japan the 51st state!

I speak for myself, not the company.
Phil Ngai, {ucbvax,decwrl,allegra}!amdcad!phil or phil@amd.com

Philip Prindeville@UDEL.EDU, philipp@larry.mcrcim.mcgill.EDU (05/14/88)

	Date: 13 May 88 01:34:23 GMT
	From: Chuck Kollars <pyramid!leadsv!excelan!chuck@decwrl.dec.com>
	Subject: "host-based" vs. "front-end-processor" PC network interfaces
	To: pcip@louie.udel.edu
	
	[ ... ]
	Some potential advantages of the Front End Processor architecture:
	 o  offload packet handling from host CPU 
	 o  reduce host memory requirements 
	 o  larger data holding buffers and sliding window sizes 
	 o  shorter latency between received packet and acknowledgement
	 o  partially offload keystroke processing 
	 o  many simultaneous connections 

A major drawback is that you can't support multihomed hosts as easily.
About the only thing a board-resident IP can do is perform checksumming.
No reason you can't support multiple sessions with a host-resident TCP/IP.
	
	Some of these advantages are most relevant to multiprocessor (ex:

I think you meant "multiprocessing" (or multitasking), not "multiprocessor".

	OS/2) or multiuser (ex: Xenix) systems.  Others are especially
	relevant to systems with memory address space restrictions (ex: DOS).
	
	The interface to the transport layer is a convenient place for 
	separating host and onboard portions.  Applications using an 
	interface like SOCK_STREAM sockets can pass their data to the network 
	with simple read() and write() calls.  Separation between the host 
	and onboard portions is especially clean for "stream" or "pipeline" 
	style transport layers (ex:TCP, named pipes).  

You will have to explain to me why streams are more convenient than
datagrams.  I would have thought it would be easier with datagrams, since
there is even less state to maintain between transactions.

	While Excelan did not invent the Front End Processor approach and does

(Not by a long-shot.  Ever hear of the Honeywell H16? [so called "Susie"])

	not restrict its product line to FEP configurations, "Excelan style" 
	is sometimes used to mean "outboard" or "onboard" protocols.

	[ ... plug deleted ... ]
	
	"Host-based" vs. "front-end-processor" has been discussed to death
	for years on the network, in the literature, and elsewhere.  This

That isn't to say that new approaches aren't being developed.  Dave
Clark or MIT-LCS (the Internet Architect) is working on a idea that merges
off-host processing with named pipes (he calles it "named buffers").  It
is an interesting concept, and could well appear in implementations fairly
soon (if only in labs)...

	posting is intended to provide a brief introduction to the topic for
	people who are new to LAN's, not to rekindle old religious wars.  It 
	was prompted by peripheral references to the FEP vs. Host-Based issue 
	in some recent articles in this newsgroup:

And I thought it was to sell Excelan cards... :-)

-Philip