HTTP Server traffic

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

HTTP Server traffic

B B-3






From: [hidden email]
To: [hidden email]
Subject: [lwip] HTTP Server traffic
Date: Mon, 4 Dec 2006 10:11:25 +0000

Hi all,
 
I am using lwip 1.1.1 where i am running a HTTP webserver on an embedded system which is running FreeRTOS, and i have some questions regarding the
HTTP traffic.
 
I am running the demo application called "lwIP_Demo_Rowley_ARM7".
Which i have modified with the example from Adam dunkels httpd.c.
 
If i compare the traffic from the webserver to a PC client and a PC webserver to a PC client. The traffic differs, see ethereal capture below:
 
Embedded webserver -> PC client:
No. Time
1  0.000000    192.168.2.206         192.168.2.204         TCP      1906 > http [SYN] Seq=0 Len=0 MSS=1460
2  0.000726    192.168.2.204         192.168.2.206         TCP      http > 1906 [SYN, ACK] Seq=0 Ack=1 Win=1500 Len=0 MSS=1460
3  0.000786    192.168.2.206         192.168.2.204         TCP      1906 > http [ACK] Seq=1 Ack=1 Win=65535 Len=0
4  0.001161    192.168.2.206         192.168.2.204         HTTP     GET /sojlegraf.htm HTTP/1.1
5  0.002128    192.168.2.204         192.168.2.206         TCP      http > 1906 [ACK] Seq=1 Ack=423 Win=1500 Len=0
6  0.005180    192.168.2.204         192.168.2.206         HTTP     HTTP/1.1 200 OK (text/html)
7  0.107250    192.168.2.206         192.168.2.204         TCP      1906 > http [ACK] Seq=423 Ack=1461 Win=65535 Len=0
8  0.108553    192.168.2.204         192.168.2.206         HTTP     Continuation or non-HTTP traffic
9  0.307498    192.168.2.206         192.168.2.204         TCP      1906 > http [ACK] Seq=423 Ack=2073 Win=64923 Len=0
....
17 0.347766    192.168.2.206         192.168.2.204         HTTP     GET /wz_jsgraphics.js HTTP/1.1
18 0.348585    192.168.2.204         192.168.2.206         TCP      http > 1908 [ACK] Seq=1 Ack=279 Win=1500 Len=0
19 0.349381    192.168.2.204         192.168.2.206         HTTP     HTTP/1.1 200 OK (application/x-javascript)
20 0.507802    192.168.2.206         192.168.2.204         TCP      1908 > http [ACK] Seq=279 Ack=61 Win=65475 Len=0
....
56 0.536547    192.168.2.206         192.168.2.204         TCP      1908 > http [ACK] Seq=279 Ack=18061 Win=65535 Len=0
57 0.538502    192.168.2.204         192.168.2.206         HTTP     Continuation or non-HTTP traffic
58 0.708082    192.168.2.206         192.168.2.204         TCP      1908 > http [ACK] Seq=279 Ack=19442 Win=64154 Len=0
....
62 0.728996    192.168.2.204         192.168.2.206         TCP      http > 1908 [ACK] Seq=19443 Ack=280 Win=1499 Len=0
 
as you can see in the above, there are sometimes some funny jumps in time, it takes for the PC client to ACK the incomming data.
Between packet numbers: 8 and 9, 19 and 20, 57 and 58.
 
PC webserver -> PC client:
No. Time
1  0.000000    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [SYN] Seq=0 Len=0 MSS=1460
2  0.001606    xxx.xxx.207.21          192.168.2.206         TCP      http > 2447 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460
3  0.001655    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=1 Ack=1 Win=65535 Len=0
4  0.002095    192.168.2.206         xxx.xxx.207.21          HTTP     GET /performance/kurvegraf.htm HTTP/1.1
5  0.004400    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
6  0.004807    xxx.xxx.207.21          192.168.2.206         HTTP     HTTP/1.1 200 OK (text/html)
7  0.004859    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=458 Ack=2219 Win=65535 Len=0
8  0.041431    192.168.2.206         xxx.xxx.207.21          HTTP     GET /performance/wz_jsgraphics.js HTTP/1.1
9  0.044008    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
10 0.044518    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
11 0.044590    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=770 Ack=5139 Win=65535 Len=0
12 0.044617    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
13 0.046418    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
14 0.046871    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=770 Ack=7775 Win=65535 Len=0
15 0.046899    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
16 0.046938    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
17 0.047016    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=770 Ack=10411 Win=65535 Len=0
18 0.048962    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
19 0.049446    xxx.xxx.207.21          192.168.2.206         TCP      [TCP segment of a reassembled PDU]
20 0.049509    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=770 Ack=13331 Win=65535 Len=0
....
31 0.169528    192.168.2.206         xxx.xxx.207.21          TCP      2447 > http [ACK] Seq=770 Ack=21841 Win=65217 Len=0
 
as you can see in the above there isnt't those jumps in time before a packet is ACK'ed.
 
So my question is, how do i make my communication between, my embedded target and the PC client run as smoothly as running the website
on a PC webserver ?
Is that even possible with lwip ?
 
best regards,
Martin B.
 


All-in-one security and maintenance for your PC.  Get a free 90-day trial! Learn more!


Use Messenger to talk to your IM friends, even those on Yahoo! Talk now!
_______________________________________________
lwip-users mailing list
[hidden email]
http://lists.nongnu.org/mailman/listinfo/lwip-users
Reply | Threaded
Open this post in threaded view
|

Re: HTTP Server traffic

Kieran Mansley

>         So my question is, how do i make my communication between, my
>         embedded target and the PC client run as smoothly as running
>         the website
>         on a PC webserver ?
>         Is that even possible with lwip ?

My guess is that you've configured lwIP with too small a TCP_SND_BUF or
TCP_SND_QUEUELEN and this is interacting badly with the delayed ACK
algorithm.  Could you post your lwipopts.h configuration file?

Kieran



_______________________________________________
lwip-users mailing list
[hidden email]
http://lists.nongnu.org/mailman/listinfo/lwip-users