[prev in list] [next in list] [prev in thread] [next in thread]
List: haiku-bugs
Subject: [haiku-bugs] Re: [Haiku] #18384: TCP hangs
From: "Haiku" <trac () haiku-os ! org>
Date: 2023-07-27 11:19:07
Message-ID: 056.81c68c8d487a7837ffebc279afcb3a2d () haiku-os ! org
[Download RAW message or body]
--===============4082454733440147236==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
#18384: TCP hangs
-------------------------------------+----------------------------
Reporter: axeld | Owner: axeld
Type: bug | Status: new
Priority: normal | Milestone: Unscheduled
Component: Network & Internet/TCP | Version: R1/Development
Resolution: | Keywords:
Blocked By: | Blocking:
Platform: All |
-------------------------------------+----------------------------
Comment (by pulkomandy):
A few things I noticed in Wireshark:
- Looking at the "window scaling" graph, the time where the traffic stalls
is clearly seen. Interestingly we can see some retransmission retries
(marked as dots in the graph), but the "in flight bytes" quantity never
seems to move
- Looking at the packets around that time interval, we can see packet
number 42752 where 192.168.0.14 decides to use a selective ACK for the
first time, first with one range of received packets, then with two and
later three ranges of received packets with holes in between
- 192.168.0.48 replies to this by re-sending the last packet from normal
ACKs as expected (relative sequence number 2922770) but this is never
acknowledged by the other machine
- It also sends packet 2931722 which does not seem to be matching with any
of the selective ACK ranges from 192.168.0.14. This also has no effect on
the ranges acknowledged by 192.168.0.14
As the connexion stalls so shortly after SACK is used for the first time,
that certainly raises a question about implementation of that function. It
has a history of creating problems, see #13681.
It looks like as soon as we start sending SACK options, the normal
mechanism to acknowlege received frames stops working. After that, the
transmission will stall since no new packets are ever acknowledged.
But it is also surprising that the machine sends a SACK in the first
place. Why does it think that there are such big holes in the received
data? The corresponding packets are present in the capture, so, where did
they disappear?
-- =
Ticket URL: <https://dev.haiku-os.org/ticket/18384#comment:3>
Haiku <https://dev.haiku-os.org>
The Haiku operating system.
--===============4082454733440147236==--
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic