[comp.protocols.tcp-ip] Router/Gateway laziness question

zweig@brutus.cs.uiuc.edu (Johnny Zweig) (09/09/89)

I was just thinking about what would happen if I had a relatively slow
controller routing packets between two nets with lots of excess bandwidth, and
decided to punt a few things. For example, how about if the router just
checked the checksum, looked at the destination IP-address, and forwarded the
packet out the appropriate interface without checking that the options are all
acceptable, etc., etc. Basically, I would trade the possibility of wasting
bandwidth on brain-damaged packets and other garbage off against wasting
controller cycles checking things over and over again.

Would this violate any extant or soon-to-be-released conformance criteria
(i.e. RFCs, or other documents)? It seems dumb to check the correctness of the
packets over and over again if it has to go through several hops on not-too-
loaded nets, but I know RFC792 (etc.) often say "if <such-and-such is
messed up> the packet MUST be dropped".

-Johnny Speculative

pprindev@wellfleet.com (Philip Prindeville) (09/10/89)

> Would this violate any extant or soon-to-be-released conformance criteria
> (i.e. RFCs, or other documents)? It seems dumb to check the correctness of the
> packets over and over again if it has to go through several hops on not-too-
> loaded nets, but I know RFC792 (etc.) often say "if <such-and-such is
> messed up> the packet MUST be dropped".

You can start with the TTL.  That's the biggest waste of time.  Butterflies
got this right...

-Philip

CERF@A.ISI.EDU (09/11/89)

Johnny,

The temptation is clear, but even Jon Postel's dictum:

"Be liberal in what you accept and strict about what you
generate" has its limits. The propagation of malformed
packets is not helpful - especially if somewhere down the
line there is a limited capacity channel through which
the damaged packets must travel.

I would move very cautiously in the direction you seem
to be heading. 

Vint

mcc@WLV.IMSD.CONTEL.COM (Merton Campbell Crockett) (09/11/89)

Have you seen the Internet's answer to Center Court at Wimbleton?

CAMBRIDGE
RESTON
CAMBRIDGE
RESTON 
CAMBRIDGE
RESTON
CAMBRIDGE 
RESTON

almquist@JESSICA.STANFORD.EDU (Philip Almquist) (09/12/89)

Johnny,
> ...how about if the router just checked the checksum, looked at the
> destination IP-address, and forwarded the packet out the appropriate
> interface without checking that the options are all acceptable, etc...

	If you're going to play fast and loose with the rules, I
don't understand why you're bothering to verify the checksum...

	But seriously: although your scheme may save some programming
effort, I doubt it it would save very many instructions.  A router has
to do route lookup.  It may have to do an additional lookup to obtain a
link layer address to send the packet to.  It has to strip off the link
layer headers when the packet arrives and add new ones before sending it
back out.  It has to decrement the TTL if you don't like to have packets
live forever in your network (or want to be compliant with RFC1009).
Routers must process certain IP options (RFC1009 requires source route,
record route, and timestamp), and must therefore parse all IP options
sufficiently to determine their type and length.  Last but not least,
routers have to take interrupts and massage their network interface
cards.

	There may be a few instructions you can save here and there by
skipping validity checks, but the the real determinants of router
performance are the network interface cards, the bus bandwidth, and the
choices of data structures and algorithms used in performing the tasks
listed in the previous paragraph.
						Philip