[WinPcap-users] High speed UDP receiver
Title: Message We are working on a processing system which uses UDP to receive raw data.The burst data rate is about 325 MBit/sec andthe packet rateis about 28500 packets/sec. Our challenge is to receive these data without loosing anything (or as little as possible). We are using WinPcap 3.1 beta 2 and our software is written in VS2003/C++. Ther kernel buffer has been increased to 50 Mbyte. The computer is a 3.2 GHz dual Xeon running Win XP Prof. Data is received in bursts of up to 0,5 sec. Our experience so far is that we loose about 3-5% when we do simple processing parallell to data reception. The data receiver is running in a separate thread and I have tried to increase the priority, but this did not make a large improvement. When only receiving data and not doing anything else I am able to receive almost 100% of the data. This, however, is not a good solution for us, as we are trying to make a close to realtime processing system. My question is: is it possible to recompile the WinPcap kernel driver so that the driver gets a higher priority? Or can anyone suggest a good way to receive data without loss and do processing at the same time? I have also been thinking of moving some of our first-line processing into the kernel-driver. Has anyonetried that? Best regards, Paal
RE: [WinPcap-users] High speed UDP receiver
Paal, no, it's not possible to increase the priority of the WinPcap driver. Actually, changing the priority is a concept that doesn't make a lot of sense when talking about drivrs (the packet-capture part of the winpcap driver runs at DPC level, and therefore has higher priority than any other process of the machine), and in every case playing with priorities rarely improves things in these cases. Moving processing in the kernel is sometimes a very good solution (we have used it for our kernel-level statistics), but you really have to know what you're doing if you want to avoid months of nightmares. As for easy things to do: - make tests with different cards and NIC drivers: some are remarkably better than others - make sure that the bottleneck is not your application. WinPcap can be as fast as light, and it can have huge buffers, but if your application is slow the buffers will become full and you'll see drops - try to play with mintocopy to minimize the number of context switches Loris We are working on a processing system which uses UDP to receive raw data. The burst data rate is about 325 MBit/sec and the packet rate is about 28500 packets/sec. Our challenge is to receive these data without loosing anything (or as little as possible). We are using WinPcap 3.1 beta 2 and our software is written in VS2003/C++. Ther kernel buffer has been increased to 50 Mbyte. The computer is a 3.2 GHz dual Xeon running Win XP Prof. Data is received in bursts of up to 0,5 sec. Our experience so far is that we loose about 3-5% when we do simple processing parallell to data reception. The data receiver is running in a separate thread and I have tried to increase the priority, but this did not make a large improvement. When only receiving data and not doing anything else I am able to receive almost 100% of the data. This, however, is not a good solution for us, as we are trying to make a close to realtime processing system. My question is: is it possible to recompile the WinPcap kernel driver so that the driver gets a higher priority? Or can anyone suggest a good way to receive data without loss and do processing at the same time? I have also been thinking of moving some of our first-line processing into the kernel-driver. Has anyone tried that? Best regards, Paal == This is the WinPcap users list. It is archived at http://www.mail-archive.com/winpcap-users@winpcap.polito.it/ To unsubscribe use mailto: [EMAIL PROTECTED] ==
Re: [WinPcap-users] High speed UDP receiver
Paal Grana wrote: We are working on a processing system which uses UDP to receive raw data. The burst data rate is about 325 MBit/sec and the packet rate is about 28500 packets/sec. Our challenge is to receive these data without loosing anything (or as little as possible). We are using WinPcap 3.1 beta 2 Just out of curiosity, why are you using WinPcap rather than a UDP socket? == This is the WinPcap users list. It is archived at http://www.mail-archive.com/winpcap-users@winpcap.polito.it/ To unsubscribe use mailto: [EMAIL PROTECTED] ==
RE: [WinPcap-users] High speed UDP receiver
I have tried using UDP sockets, but this has resulted in high CPU load and lots of lost packets. Ideally I would use a zero-copy UDP socket, but this is not available yet. Even receiving UDP packets to the windows discard port (9) installed by the Simple TCP/IP Services, results in a quite high CPU load with data rates above 2-300 Mbit/sec. Actually I get a lower CPU load by sending UDP packets to a UDP port without a service installed, using WinPcap to read the data and using WinXP SP2 Firewall to stop ICMP packets (caused by an UDP port without a service). Paal -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 21. desember 2004 20:23 To: [EMAIL PROTECTED] Subject: Re: [WinPcap-users] High speed UDP receiver Paal Grana wrote: We are working on a processing system which uses UDP to receive raw data. The burst data rate is about 325 MBit/sec and the packet rate is about 28500 packets/sec. Our challenge is to receive these data without loosing anything (or as little as possible). We are using WinPcap 3.1 beta 2 Just out of curiosity, why are you using WinPcap rather than a UDP socket? == This is the WinPcap users list. It is archived at http://www.mail-archive.com/winpcap-users@winpcap.polito.it/ To unsubscribe use mailto: [EMAIL PROTECTED] == = This is the WinPcap users list. It is archived at http://www.mail-archive.com/winpcap-users@winpcap.polito.it/ To unsubscribe use mailto: [EMAIL PROTECTED] =