[En-Nut-Discussion] TCP/IP problems with httpd
Paolo Simoncelli
simonp at email.it
Sun Jan 16 15:53:00 CET 2011
Hi all,
shall the problem under investigation involve also
the very first packet sent over UDP ?
----- from an old post of mine -----------
... if you throw out an UDP packet
very early (seems about before 500 ms) after opening the socket
it gets lost into the TCP guts of NutOs :( ...
(workaround: added NutSleep(500); before testing incoming reply)
-------------------------------------------
Cheers,
Paolo
Ulrich Prinz wrote:
...
> Hi!
>
> So we are now with three people checking the stack. Thanks to my
> colleague Daniel, we found a thing. We don't have a soluting, but I'll
> try to describe exactly how it comes to long time unanswered pings if
> not any other TCP/UDP/FTP access is happening from/to the same host.
>
> If icmpin.c NutIcmpReflect() is requested to echo a packet, it issues
> this echo. The called routine checks if there is an ARP cache entry for
> the target and if so, the echo packet takes its way.
> If there is no ARP entry for the target, cause it is the very first
> packet ever sent to the host, or cause the ARP cache entry aged out, the
> called function from icmpin issues an ARP request.
>
> This ARP request is handled by icmpout and is sent through the line, and
> the host answers the packet. Unfortunately the icmpin routine is waiting
> for the initial echo packet to be sent and the ARP request answer is
> staying in the input buffer, never retrieved by icmpin.
>
> There are timeout mechanisms working in the background, as this blocking
> situation sometimes recoveres after some minutes.
>
> The described bug doesn't appear very often as most times a system is
> busy with transferring anything useful but icmp. Other protocols check
> the ARP cache too and request a new address if the desired is missing,
> but while their stacks are blocked until the response comes in, icmp is
> free and working.
> The problem was difficult to find as you have to meet the situation
> where 1st, the ARP cache entry aged, and an icmp echo was answered right
> before a TCP response was sent.
> The higher the icmp traffic is, the higher the chance to hit the bug.
>
> Best regards
> Ulrich
>
--
Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f
Sponsor:
Emailpaghe: le paghe in 3 click, veloce ed efficiente puoi averlo in prova gratuita fino al 31 dicembre 2010. Cosa aspetti provalo!
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=10681&d=16-1
More information about the En-Nut-Discussion
mailing list