Subject: TCP Soft Errors

From: "Naidu, Venkata" <[email-masked]>
Date: Mon, 14 Jan 2002 15:13:19 -0500

Guys:

  I am just wondering why there are soft errors implemented
  differently in different TCP implementations. First of
  all, why we need TCP soft errors?

  Let us consider a TCP connection is in ESTABLISHED state.
  If we pulled out cable OR disable/delete IP Interface,
  then the ifnet/destination is not reachable.

  There may be so many reasons for TCP returning an error
  before TIME OUT.
	- routing loops
      - some intermediate routers are down
      - unreliable, non-fault tolerant best effort 
        lower layers etc etc ...

  Application can still send data on those sockets but
  TCP/IP stack can not send out any message (rather  
  accumulating all the TCP messages expecting that link or 
  route to reach the destination might come back up)

  If the system is low in memory or a crazy applications/soft
  state protocol is sending thousands of messages per second,
  then, all mbufs will get used up in the system very fast 
  (before TCP connection Times Out).

  1. soft errors are recorded if tcp_output (intern ip_output)
     returns EHOSTUNREACH etc errors. If connection is in    
     ESTABLISHED then it will be ignored by some implementations.
     Don't know why?

  2. Is there any way to suppress these soft errors 
     and consider them as real errors (before clogging all
     the buffers in the system)? For example, changing TCP 
     timeouts based on system buffers etc etc.

--Venkata Naidu