On Thu, 2009-08-13 at 04:09 -0700, JM wrote: > Maybe this is a dumb question, but I've been wondering this for > awhile. Why does PBUF_POOL_SIZE have to be so large? It's been > recommended to set it at 16 or more. Say I have MSS set to the > maximum of 1460, TCP_WND is set to 2*MSS, and PBUF_POOL_BUFSIZE is > about 1520. In this case, if less than 3KB of data can be in flight > at a time, and I have no more than one connection at a time, why would > I need anymore than about 3 or 4 pbufs if they are for Rx only? >
You're assuming that the stack will only receive packets for your application. In most networks this is not true - there will be a fair number of broadcasts, and other stuff that your application will never see. These will still be passed to the stack, and each will use (at least) one PBUF_POOL pbuf. There may be other things, such as TCP ACKs for any data you send, that also come in as separate packets and each use PBUF_POOL pbufs. Chris's point about using more-but-smaller pbufs in the pool is a good one. It will mean you might get away with less memory and fewer dropped packets, at the cost of a little extra overhead for the chaining. Kieran _______________________________________________ lwip-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/lwip-users
