All,
It appears many of my earlier problems were due to ADI using version 1.1.0 for
the basis of their port (not 0.6.3 as I previously indicated), which had a
problem with the Nagle algorithm. They appear to have corrected that in their
port, and my problems regarding throughput have diminished greatly. I can now
get the network utilization reported by windows XP up to around 80% and can
sustain that data rate pretty reliably.
However, I am still having a problem where the receiver appears to drop
perfectly valid data (as seen by ethereal), failing to generate an ACK.
Honestly, it appears as if the receiving socket has closed itself but does not
issue a FIN or RST to indicate this. Is it possible for a receiving socket
(utilizing winsock2 on windows XP) to simply stop responding to data reported
by ethereal? Can anyone offer any insight into what could be happening here?
Keep in mind my high bandwidth utilization, can that be causing any problems?
This problem appears to be aggravated when DHCP is used, although again
ethereal does not show anything problematic.
I have also run an experiment using a PC instead of lwip to generate the data,
and there the utilization is 99% sustained, and does not appear to have these
issues with ignored packets. Looking at the log, I noticed that very few
packets from the PC have the PSH bit set, where every packet from lwip has PSH
set. Is this intentional? Could it be related to my problems?
If someone can tell me the trick to posting a file to the list I can send some
logs of this problem. I have pasted the summary lines from one log file below.
37 is the lwip device transmitting data, 36 is the PC receiving data. The
listening socket is on the lwip device. You can see after a series of
successful transmits and acknowledgements, the retransmission in segment 151
appears to be ignored, as was the initial transmission of the sequence in
segment 150. I'm open to any suggestions at this point that would allow data
received by ethereal to not cause an acknowledgement back to the sender.
Thanks,
Paul
------------------------------
No. Time Source Destination Protocol Info
121 3.399910 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=100741 Ack=1 Win=8192 Len=1460
122 3.400067 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=102201 Ack=1 Win=8192 Len=1460
123 3.400095 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=103661 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
124 3.400266 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=103661 Ack=1 Win=8192 Len=1460
125 3.400409 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=105121 Ack=1 Win=8192 Len=1460
126 3.400435 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=106581 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
127 3.400573 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=106581 Ack=1 Win=8192 Len=1460
128 3.400702 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=108041 Ack=1 Win=8192 Len=1460
129 3.400725 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=109501 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
130 3.400874 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=109501 Ack=1 Win=8192 Len=1460
131 3.401012 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=110961 Ack=1 Win=8192 Len=1460
132 3.401036 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
133 3.401185 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=112421 Ack=1 Win=8192 Len=1460
134 3.401309 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=113881 Ack=1 Win=8192 Len=1460
135 3.401487 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=115341 Ack=1 Win=8192 Len=1460
136 3.401525 192.168.16.36 192.168.16.37 TCP [TCP
Dup ACK 132#1] 7010 > 7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM
INCORRECT] Len=0
137 3.401608 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=116801 Ack=1 Win=8192 Len=1460
138 3.401622 192.168.16.36 192.168.16.37 TCP [TCP
Dup ACK 132#2] 7010 > 7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM
INCORRECT] Len=0
139 3.401934 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=118261 Ack=1 Win=8192 Len=1460
140 3.401945 192.168.16.36 192.168.16.37 TCP [TCP
Dup ACK 132#3] 7010 > 7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM
INCORRECT] Len=0
141 3.402061 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=119721 Ack=1 Win=8192 Len=1460
142 3.402075 192.168.16.36 192.168.16.37 TCP [TCP
Dup ACK 132#4] 7010 > 7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM
INCORRECT] Len=0
143 3.402188 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=121181 Ack=1 Win=8192 Len=1460
144 3.402200 192.168.16.36 192.168.16.37 TCP [TCP
Dup ACK 132#5] 7010 > 7010 [ACK] Seq=1 Ack=112421 Win=65535 [TCP CHECKSUM
INCORRECT] Len=0
145 3.402354 192.168.16.37 192.168.16.36 TCP [TCP
Fast Retransmission] 7010 > 7010 [PSH, ACK] Seq=112421 Ack=1 Win=8192 Len=1460
146 3.402612 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=122641 Ack=1 Win=8192 Len=1460
147 3.402640 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=113881 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
148 4.756081 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=113881 Ack=1 Win=8192 Len=1460
149 4.756213 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [ACK] Seq=1 Ack=124101 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
150 4.756758 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [PSH, ACK] Seq=124101 Ack=1 Win=8192 Len=1460
151 6.256042 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=124101 Ack=1 Win=8192 Len=1460
152 8.063536 Dell_ea:aa:9e Broadcast ARP Who
has 192.168.16.200? Tell 192.168.16.2
153 9.255802 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=124101 Ack=1 Win=8192 Len=1460
154 12.976243 Dell_ea:aa:9e Broadcast ARP Who
has 192.168.16.23? Tell 192.168.16.2
155 15.256433 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=124101 Ack=1 Win=8192 Len=1460
156 25.543310 Ibm_11:83:a2 Broadcast ARP Who
has 192.168.16.22? Tell 192.168.16.32
157 27.255518 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=124101 Ack=1 Win=8192 Len=1460
158 27.259166 HewlettP_a3:5f:35 CDP/VTP/DTP/PAgP/UDLD CDP Device
ID: HP ProCurve Switch 2626(001185-a35f00) Port ID: 11
159 30.020045 Ibm_11:83:a2 Broadcast ARP Who
has 192.168.16.40? Tell 192.168.16.32
160 34.756319 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [FIN, ACK] Seq=1 Ack=124101 Win=65535 [TCP CHECKSUM INCORRECT] Len=0
161 34.756501 192.168.16.37 192.168.16.36 TCP 7010 >
7010 [ACK] Seq=125561 Ack=2 Win=8191 Len=0
162 34.786842 Wistron_34:70:ec Broadcast ARP Who
has 192.168.16.40? Tell 192.168.16.22
163 38.569883 Dell_ea:aa:9e Broadcast ARP Who
has 192.168.16.22? Tell 192.168.16.2
164 51.254659 192.168.16.37 192.168.16.36 TCP [TCP
Retransmission] 7010 > 7010 [PSH, ACK] Seq=124101 Ack=2 Win=8191 Len=1460
165 51.254751 192.168.16.36 192.168.16.37 TCP 7010 >
7010 [RST, ACK] Seq=2 Ack=125561 Win=0 Len=0
166 60.526906 HewlettP_a3:5f:00 09:00:09:00:00:67 HP HP
Switch Protocol
_______________________________________________
lwip-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/lwip-users