[Top][All Lists]

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

[lwip-devel] [patch #6537] wnd_scale TCP option addition

From: Wim Dumon
Subject: [lwip-devel] [patch #6537] wnd_scale TCP option addition
Date: Wed, 08 Apr 2009 09:39:40 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/2009032609 Firefox/3.0.8 GTB5

Follow-up Comment #6, patch #6537 (project lwip):

I encountered an issue with this patch. I observed data loss and performance
degradation when receiving data over TCP connections with large window sizes
(e.g. TCP_WND=120KBytes). My shift is set at 7 (but it could be anything
This is the problem: suppose window is usually filled for about 70K, caused
by the bandwidth*delay principle. Imagine that the link works well, and at a
certain moment a single packet is dropped. The OOSEQ code queues packets, but
there is a little gap in the sequence number for the first ooseq packet. When
that gap is filled by a retransmit of the missing data, all the
out-of-sequence queued packets, amounting to 70K of data in our example, is
concatenated in one pbuf (it is called recv_data). But the tot_len field of a
pbuf is only 16bit.... The result I observe is that there is a 64K gap in the
received data stream.

Isn't the intention of this patch to allow TCP_WND to be > 64K? Any hints on
how to solve this? I have the feeling that simply changing tot_len to a u32_t
will not be sufficient. Using multiple pbufs is probably easier?


Reply to this item at:


  Message sent via/by Savannah

reply via email to

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