This is what TCP should look like. When an application, such as polipo, send to a tcp connection, the data is added to the TCP connection's outgoing buffer. The buffer is packaged to TCP packets and sent out by the kernel TCP/IP stack. The polipo or any user land program have no control of how the data is packaged into TCP packets. The kernel TCP/IP stack is responsive for that.
On a fast machine, lightly loaded, the kernel can come around quickly, so each write to the tcp got packaged into one tcp packet, but you can't rely on this kind of behavior. If a single write is bigger than 1500, the typical ethernet frame. The data has to be packaged into more than one tcp packet, because this the biggest the kernel and pack for the ethernet device. If the kernel is busy, when it come around to serve your tcp connection, the outgoing buffer may already has data from more then one write from an application (such as polipo), the kernel can legally package the data in anyway it like, one packet or multi-packet. The boundary of the tcp packet may not match the boundary of what the application write. TCP is a stream, so that packet is only important to the kernel, application should not concern about the packets. The application should think the data come and go like tap water, not a line of water bottles of various size Would you mind like us know what web server you are using? Ming On Tue, Oct 20, 2009 at 5:23 AM, nidhi sachdev <[email protected]>wrote: > There is another important observation and I have come across is that each > time any pipelined requests are made (in the above scenarios), the requests > are not accomodated in one TCP packet. Therefore , a part of the request is > send in the next packet. > I observed such a thing with other servers also. Everytime, if pipelined > requests >1500, it reads only the first GET request and ignores the rest. > I could not find any explaination/remark on Internet that mentions about > sending pipelined requests in a single TCP packet i.e. size<1500. > Is there any such for pipelining? > > -Thanks > Nidhi > > > > On Tue, Oct 20, 2009 at 1:30 PM, nidhi sachdev < > [email protected]>wrote: > > > >> Hi Juliusz, > >> > >> Please find attached the logs for the issue. > >> In the logs, we can see that for > >> *Src Port - 35904 GET /script/jquery-1.3.2.min.js HTTP/1.1\r\n* > >> >>response > >> *Src Port - 35904 GET /script/jquery.hover.js HTTP/1.1\r\n GET > >> /script/jquery.tabs.min.js HTTP/1.1\r\n GET /script/superfish.js > >> HTTP/1.1\r\n (pipelined)* > >> >>Connection gets closed without any response > >> > >> *Src Port - 35905 GET /script/jquery-1.3.2.min.js HTTP/1.1\r\n GET > >> /script/jquery.hover.js HTTP/1.1\r\n GET /script/jquery.tabs.min.js > >> HTTP/1.1\r\n GET /script/superfish.js HTTP/1.1\r\n (pipelined)* > >> >>It gets the response for the first, and closes the connection. > >> > >> *Src Port - 35906 GET /script/jquery.hover.js HTTP/1.1\r\n GET > >> /script/jquery.tabs.min.js HTTP/1.1\r\n GET /script/superfish.js > >> HTTP/1.1\r\n (pipelined)* > >> >>Response for first request is received; and the connection gets > closed. > >> > >> In the next request, > >> *Src Port - 35907 GET /script/jquery.tabs.min.js HTTP/1.1\r\n GET > >> /script/superfish.js HTTP/1.1\r\n GET > /script/jcarousellite_1.0.1.pack.js > >> HTTP/1.1\r\n GET /script/jquery.metadata.js HTTP/1.1\r\n (pipelined)* > >> ** > >> and so on.. > >> In each pipelined request, the response for first request is received > and > >> the connection is closed. > >> > >> > >> Thanks > >> Nidhi > >> > >> > > ------------------------------------------------------------------------------ > Come build with us! The BlackBerry(R) Developer Conference in SF, CA > is the only developer event you need to attend this year. Jumpstart your > developing skills, take BlackBerry mobile applications to market and stay > ahead of the curve. Join us from November 9 - 12, 2009. Register now! > http://p.sf.net/sfu/devconference > _______________________________________________ > Polipo-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/polipo-users > ------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference _______________________________________________ Polipo-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/polipo-users
