lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE : [lwip-users] TCP connect timeout?


From: Frédéric BERNON
Subject: RE : [lwip-users] TCP connect timeout?
Date: Tue, 12 Dec 2006 14:11:05 +0100

>> Hi group,
>> 
>> I use lwip 1.2.0 at BSD layer.
>>
>> If I try to do a TCP connect to an "unplugged" IP device from my lwip 
>> platform, I block my socket too long. Is there some features or opts.h 
>> values to use to reduce this timeout?
>> 
>> In tcp.c, I found :
>> 
>>     if (pcb->state == SYN_SENT && pcb->nrtx == TCP_SYNMAXRTX) {
>>       ++pcb_remove;
>>       LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: max SYN retries reached\n"));
>>     }
>> 
>> So, is the connection timeout equal to TCP_SYNMAXRTX * tcp_slowtmr 
>> "period" ?
>
>Not quite.  TCP_SYNMAXRTX is the number of times it will retransmit the SYN 
>before giving up.  It doesn't send one every tcp_slowtmr period
>though - the gaps between them increase roughly exponentially.   

Ok, good information

>
>> Is reduce TCP_SYNMAXRTX the good way to reduce the TCP connect 
>> timeout?
>
>It's pretty much the only way, but I would question why you need to.  I think 
>it would be better to fix your application to be able to cope with being 
>blocked, rather than make it dependent on a non-standard TCP timeout.
>

This is always the problem to port some BSD applications to a new socket. 
Changing them give other applications portability problems. By example, under 
Winsock and others, it's possible to avoid a long timeout, using some 
setsockopt options. That's what I want to implement. The best thing for me will 
be to add a socket option to change the default behavior "per socket". I will 
study that...

Other question, about TCP receive timeout (if the peer crash without doing a 
gracefully connection, or if the network between the peer and my lwip platform 
down, etc...), is TCP_MAXRTX is the main valut to reduce the TCP receive 
timeout, and is it the "same" algorithm ("...the gaps between them increase 
roughly exponentially...")?

I already add the SO_RCVTIMEO option at socket/netconn layer for UDP 
connections, adding a "timeout" parameter to sys_mbox_fetch, if someone want 
it...

Thank you Kieran for all these informations...



_______________________________________________
lwip-users mailing list
address@hidden http://lists.nongnu.org/mailman/listinfo/lwip-users




reply via email to

[Prev in Thread] Current Thread [Next in Thread]