lwip-devel
[Top][All Lists]
Advanced

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

[lwip-devel] [task #7040] Work on tcp_enqueue


From: Simon Goldschmidt
Subject: [lwip-devel] [task #7040] Work on tcp_enqueue
Date: Wed, 27 Jun 2007 15:42:20 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4

Follow-up Comment #1, task #7040 (project lwip):

OK, some more details: When sending much data very fast (so fast that
tcp_pcb->snd_buf gets empty), an incomplete segment (smaller than pcb->mss)
can be queued (and will, in most cases).

When there is send buffer available again, the caller will call tcp_enqueue
again, which splits the data into pcb->mss size chunks and tries to enqueue
them. At this point, the last segment (which is smaller than mss) will not be
filled, which results in sending segments smaller than mss, although there is
enough data to be sent/enqueued.

To solve this, we can either
- in tcp_enqueue, check if the last segment on pcb->uncack is < mss or 
- at application level, check the last segment and call tcp_write with a
smaller length so that the last segment will be filled.

I'd prefer the first solution because it solves the problem for the raw api
also and is faster.

Any comments? Maybe this is intended in order to be small?

    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?7040>

_______________________________________________
  Nachricht geschickt von/durch Savannah
  http://savannah.nongnu.org/





reply via email to

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