[PATCH] net: wget: Support retransmission a dropped packet

Fabio Estevam festevam at gmail.com
Sun Apr 14 21:04:43 CEST 2024


Hi Yasuharu,

On Sun, Apr 14, 2024 at 9:46 AM Yasuharu Shibata
<yasuharu.shibata at gmail.com> wrote:
>
> The server sends multiple packets without waiting for an ACK
> by window control and if some packets are dropped,
> wget will return an ACK including the dropped packets.
>
> Following log indicates this issue.
>
>   wget_handler() wget: Transferring, seq=97bbdd4a, ack=30,len=580
>   wget_handler() wget: Transferring, seq=97bbedca, ack=30,len=580
>
> First packet of TCP sequence number is 0x97bbdd4a.
> Second packet of TCP sequence number should be 0x97bbe2ca,
> however it is 0x97bbedca and returns its ACK, so the server
> suppose that 0x97bbe2ca and 0x97bbedca are received appropriately.
> In this case, 0x97bbe2ca was lost and the data of wget was broken.
>
> In this patch, next_data_seq_num holds the next expected
> TCP sequence number.
> If the TCP sequence number different from next_data_seq_num,
> trying to retransmit the packet.

Thanks for your patch.

I tested it in the hope that it would fix the following issue:
https://lore.kernel.org/u-boot/CAJ+vNU2U9W2NRT6hf1CAEQ_56SDQviUEzuDD1iYOpdf1CNaZBw@mail.gmail.com/

but I still get wget corruption when loading large files multiple
times in a row.

Would you happen to have any suggestions?

Thanks


More information about the U-Boot mailing list