Ok, I didn't think that was to be RFC compliant...

But don't you think these values would have to be settable in lwipopts.h ? 
Because, even with TCP_KEEPALIVE to 0, the minimum delay to detect a loss of 
stream connection is TCP_MAXIDLE (75000*9 = 675000ms =~ 11.25 min).


/* Keepalive values */
#define  TCP_KEEPINTVL     75000                         /* Time between 
KEEPALIVE probes in miliseconds */
#define  TCP_KEEPCNT       9                             /* Counter for 
KEEPALIVE probes */
#define  TCP_MAXIDLE       TCP_KEEPCNT * TCP_KEEPINTVL   /* Maximum KEEPALIVE 
probe time */


On a basic XP pc (yes, I know, this is not the "best" reference), registry 
values (in 
"HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TCPIP\Parameters") seems 
to be TCP_KEEPCNT=5 ("TcpMaxDataRetransmissions"), TCP_KEEPINTVL=1000 
("KeepAliveInterval"), and TCP_KEEPDEFAULT=7200000 ("KeepAliveTime"). 
http://support.microsoft.com/kb/314053/en-us 
 
What do you think about this idea?
  
====================================
Frédéric BERNON 
HYMATOM SA 
Chef de projet informatique 
Microsoft Certified Professional 
Tél. : +33 (0)4-67-87-61-10 
Fax. : +33 (0)4-67-70-85-44 
Email : [EMAIL PROTECTED] 
Web Site : http://www.hymatom.fr 
====================================
P Avant d'imprimer, penser à l'environnement
 


-----Message d'origine-----
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Kieran Mansley
Envoyé : jeudi 15 février 2007 16:35
À : Mailing list for lwIP users
Objet : Re: [lwip-users] Questions about LwIP KEEPALIVE...


On Thu, 2007-02-15 at 16:17 +0100, Frédéric BERNON wrote:

> So, if I dont do any mistake, if a router between my lwip devices 
> crashs, the connection will detect it in... 39375*200 ms = 7875 sec = 
> 131.25 min !?!?!
> 
> I suppose I do a mistake somewhere, or I don't understand (because 
> more than 2 hours - by default - to detect a connection failure seems 
> to be very very long)...

I think you've read it right.  To comply with the TCP RFCs a stack MUST default 
to a TCP keepalive timeout of no less that 2 hours.  See 
http://www.freesoft.org/CIE/RFC/1122/114.htm

If you were to send any data you'd find out sooner of course - TCP keepalive is 
really only of use for connections that are idle (or I suppose uni-directional).

The algorithm is quite conservative on the side of not closing connections 
until it's really sure they are dead.

Kieran



_______________________________________________
lwip-users mailing list
[email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
BEGIN:VCARD
VERSION:2.1
N:BERNON;Frédéric;;M.
FN:Frédéric BERNON
ORG:HYMATOM SA;Recherche et Développement
TITLE:Chef de projet informatique
TEL;WORK;VOICE:04-67-87-61-10
TEL;WORK;FAX:04-67-70-85-44
ADR;WORK;ENCODING=QUOTED-PRINTABLE:;23;Zone Industrielle=0D=0A175 rue de Massacan;VENDARGUES;;34740;FRANCE;
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:23=0D=0AZone Industrielle=0D=0A175 rue de Massacan=0D=0AVENDARGUES 34740=0D=
=0AFrance
URL;WORK:http://www.hymatom.fr
ROLE:Chef de projet informatique
EMAIL;PREF;INTERNET:[EMAIL PROTECTED]
REV:20020404T083210Z
END:VCARD
_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to