Packet drop at high bit rate

Hello,

I’m running my test on WinMe. At high bit rates the IP stack(I’m using the
MS stack) above my driver seems to drop some pkts(multicast UDP pkts). When
I use netstat it tells me that some pkts have header errors Even though my
driver attaches the headers for every pkt. Can someone tell me how to
improve performance of the stack above me at high bit rate??? Can the
Microsoft stack handle bit rates of 40 - 45 mbps. Or is netstat a reliable
tool for these type of tests???

Thanks
Daniel


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>I’m running my test on WinMe. At high bit rates the IP stack(I’m using the

MS stack) above my driver seems to drop some pkts(multicast UDP pkts). When
I use netstat it tells me that some pkts have header errors Even though my
driver attaches the headers for every pkt. Can someone tell me how to
improve performance of the stack above me at high bit rate??? Can the
Microsoft stack handle bit rates of 40 - 45 mbps. Or is netstat a reliable
tool for these type of tests???

Is you application unloading the datagrams from the stack fast enough?
There is only so much buffer space available, and the stack will discard
UDP packets if it runs out.

A data rate of 45 Mbps on the wire means your app will have to handle 5
MBytes/sec of data, and perhaps more importantly, about 3000+ socket recv
calls/sec (assuming each datagram is 1500 bytes or so). An app expecting
lots of non-flow controlled data (like multicasts UDP) should probably pend
a bunch of read buffers, and do all it’s I/O overlapped. This is unlike TCP
connections, which will flow control as needed if the receiving app is slow.

Could be the error count your getting in netstat is because the UDP
datagrams are spread across multiple packets, and some fragments (like the
first) is getting dropped. This might be listed at UDP datagram header errors.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I did figure that the apps are not fast enough to read the data? But I
thought that it would not show up has pkt header errors in the IP layer.
Probably your answer about fragmentation might be logical.

I need to figure out Whats’ the maximum multicast data rate my driver can
support? Is there a better way or a tool to figure this out?

Thanks
Daniel

-----Original Message-----
From: Jan Bottorff [mailto:xxxxx@pmatrix.com]
Sent: Monday, February 26, 2001 8:55 PM
To: NT Developers Interest List
Subject: [ntdev] Re: Packet drop at high bit rate

I’m running my test on WinMe. At high bit rates the IP stack(I’m using the
MS stack) above my driver seems to drop some pkts(multicast UDP pkts). When
I use netstat it tells me that some pkts have header errors Even though my
driver attaches the headers for every pkt. Can someone tell me how to
improve performance of the stack above me at high bit rate??? Can the
Microsoft stack handle bit rates of 40 - 45 mbps. Or is netstat a reliable
tool for these type of tests???

Is you application unloading the datagrams from the stack fast enough?
There is only so much buffer space available, and the stack will discard
UDP packets if it runs out.

A data rate of 45 Mbps on the wire means your app will have to handle 5
MBytes/sec of data, and perhaps more importantly, about 3000+ socket recv
calls/sec (assuming each datagram is 1500 bytes or so). An app expecting
lots of non-flow controlled data (like multicasts UDP) should probably pend
a bunch of read buffers, and do all it’s I/O overlapped. This is unlike TCP
connections, which will flow control as needed if the receiving app is slow.

Could be the error count your getting in netstat is because the UDP
datagrams are spread across multiple packets, and some fragments (like the
first) is getting dropped. This might be listed at UDP datagram header
errors.

  • Jan

You are currently subscribed to ntdev as: xxxxx@broadlogic.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>I did figure that the apps are not fast enough to read the data? But I

thought that it would not show up has pkt header errors in the IP layer.
Probably your answer about fragmentation might be logical.

I need to figure out Whats’ the maximum multicast data rate my driver can
support? Is there a better way or a tool to figure this out?

You could try sending packets that are never fragmented, and see if the
error counters behave the same.

It seems like there are a million factors that will determine how fast an
app can digest data, from CPU speed to system load from other apps.

I assume there are two numbers you need, what is the absolute maximum data
rate, assuming top end hardware doing nothing else (the marketing number).
And the recommended system configuration number, which gives end users
guidelines about what performance can be expected from typical hardware.
This last number might actually be a performance graph for a range of
systems. You might also want some way to determine if a failure to work
correctly is the result of too slow a system, so support people can
determine when people are out of luck.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com