Xiang,

It looks like connection is still not getting closed correctly. 10.0.0.1 is
my linux box. 10.0.0.2 is the nuttx box. Here's the end of a correct close
sequence to a Linux webserver:

sudo tcpdump -n -v dst 10.0.0.1 and 'tcp[tcpflags] &
> (tcp-syn|tcp-ack|tcp-fin) > 0' -i lo
>


> 12:38:41.185547 IP (tos 0x0, ttl 64, id 34591, offset 0, flags [DF], proto
> TCP (6), length 52)
>     10.0.0.1.38890 > 10.0.0.1.80: Flags [.], cksum 0x1428 (incorrect ->
> 0x7a03), ack 860, win 506, options [nop,nop,TS val 3777231081 ecr
> 3777231081], length 0
> 12:38:41.188600 IP (tos 0x0, ttl 64, id 34592, offset 0, flags [DF], proto
> TCP (6), length 52)
>     10.0.0.1.38890 > 10.0.0.1.80: Flags [F.], cksum 0x1428 (incorrect ->
> 0x79f9), seq 73, ack 860, win 512, options [nop,nop,TS val 3777231084 ecr
> 3777231081], length 0
> 12:38:41.188652 IP (tos 0x0, ttl 64, id 52719, offset 0, flags [DF], proto
> TCP (6), length 52)
>     10.0.0.1.80 > 10.0.0.1.38890: Flags [F.], cksum 0x1428 (incorrect ->
> 0x79f5), seq 860, ack 74, win 512, options [nop,nop,TS val 3777231084 ecr
> 3777231084], length 0
> 12:38:41.188658 IP (tos 0x0, ttl 64, id 34593, offset 0, flags [DF], proto
> TCP (6), length 52)
>     10.0.0.1.38890 > 10.0.0.1.80: Flags [.], cksum 0x1428 (incorrect ->
> 0x79f5), ack 861, win 512, options [nop,nop,TS val 3777231084 ecr
> 3777231084], length 0
>

Here's the end of the incorrectly closed connection to thttpd on nuttx:

sudo tcpdump -n -v dst 10.0.0.2 and 'tcp[tcpflags] &
> (tcp-syn|tcp-ack|tcp-fin) > 0' -i ens35u2
>


>     10.0.0.1.45220 > 10.0.0.2.80: Flags [.], cksum 0xc8dc (correct), ack
> 1025, win 64368, length 0
> 12:40:15.542783 IP (tos 0x0, ttl 64, id 19580, offset 0, flags [DF], proto
> TCP (6), length 40)
>     10.0.0.1.45220 > 10.0.0.2.80: Flags [.], cksum 0xc8dc (correct), ack
> 1281, win 64112, length 0
> 12:40:15.787920 IP (tos 0x0, ttl 64, id 19581, offset 0, flags [DF], proto
> TCP (6), length 40)
>     10.0.0.1.45220 > 10.0.0.2.80: Flags [F.], cksum 0xc5f2 (correct), seq
> 72, ack 1282, win 64856, length 0
>

So it looks like the nuttx box is closing the TCP connection without
waiting for the right FIN/ACK sequence.

-adam

On Sat, Jan 11, 2020 at 12:02 PM Adam Feuer <a...@starcat.io> wrote:

> Xiang Xiao,
>
> Thanks for the PR, I updated to the latest master since this has been
> merged, and I tried it. I am getting a different error now:
>
> * Closing connection 0
> curl: (18) transfer closed with 226 bytes remaining to read
>
> I tried removing CONFIG_NET_TCP_READAHEAD from my config too, with the
> same result.
>
> It looks like the connection is now being prematurely closed, rather than
> not being closed at all. Do you have advice on how to fix this? Or where to
> look?
>
> cheers
> adam
>
> On Sat, Jan 11, 2020 at 12:08 AM Xiang Xiao <xiaoxiang781...@gmail.com>
> wrote:
>
>> On Sat, Jan 11, 2020 at 12:42 PM Adam Feuer <a...@starcat.io> wrote:
>> >
>> > After debugging, it seems like the TCP connection is not being closed
>> > correctly, and the client receive times out.
>> >
>> > Could this be the TCP close problem that has been reported? When was it
>> > introduced? I'd like to go back to a previous version and see if that
>> works
>> > correctly.
>> >
>>
>> Yes, Rob report the same issue here:
>> https://groups.google.com/forum/#!topic/nuttx/nF0pfDkd3hA
>> The fix is here:
>> https://github.com/apache/incubator-nuttx/pull/76
>> Please try it.
>>
>> > -adam
>> >
>> > On Fri, Jan 10, 2020 at 16:32 Adam Feuer <a...@starcat.io> wrote:
>> >
>> > > Hi,
>> > >
>> > > I got the uIP webserver example to work on the SAMA5D36-Xplained.
>> However,
>> > > it's not fast enough for my needs. (Probably to be expected since it's
>> > > designed for low-power devices.)
>> > >
>> > > I am trying to get the thttpd example to work. It compiles, and I can
>> run
>> > > the thttp command from the NuttX shell. It will serve about 75% of the
>> > > index page, and then appears to hang– the page never finishes
>> transmission.
>> > > I'm going to debug, but I thought I'd ask:
>> > >
>> > > Has anyone seen this before? If so, what's wrong and how do I fix it?
>> > >
>> > > cheers
>> > > adam
>> > > --
>> > > Adam Feuer <a...@starcat.io>
>> > >
>> > --
>> > Adam Feuer <a...@starcat.io>
>>
>
>
> --
> Adam Feuer <a...@starcat.io>
>


-- 
Adam Feuer <a...@starcat.io>

Reply via email to