Hmm, it could be that yes.<br><br>My application doesn't require a 100% reliability, and I can imagine packets getting lost on the physical network layer every once in a while. On the other hand, since the use of nice -n-20 dramatically decreased the packet loss this probably had to do with the CPU not giving my app enough time, ie a buffer overrun, probably on kernel level. Perhaps pcap_setbuff could have helped (or still can) here.
<br><br>What I can't quite imagine is packets being magically duplicated on the physical layer. Note that I'm not talking high level packet, just plain raw ethernet (mac addresses &amp; data). What possible cause is there for a packet to get duplicated on the wire? I believe none.
<br><br>So, I didn't just post my problem here, I tried some stuff myself ;) And it looks like the problem is solved by disabling as many protocols as possible on the network interface. (In windows, right click the network adapter, select properties, and turn off the checkboxes). My guess is that the TCP/IP stack in windows does some funny things, maybe send keepalives or so?
<br><br>My receiving app isn't prepared to receive any traffic but the one I send myself, so I guess this is the answer.<br><br>Thanks anyway. Oh, and I know TCP uses error correction and stuff, but as the final product I'm developing will receive it's data from specialistic hardware, I can't quite ask these guys to build there own TCP/IP stack in an FPGA ;) (let alone have them create a hardware buffer to buffer enough data at a 350 mbit/s rate to enable retransmits ;))
<br><br><div><span class="gmail_quote">On 8/31/06, <b class="gmail_sendername">Bryan Kadzban</b> &lt;<a href="mailto:bryan@kadzban.is-a-geek.net">bryan@kadzban.is-a-geek.net</a>&gt; wrote:</span><blockquote class="gmail_quote" style="margin-top: 0; margin-right: 0; margin-bottom: 0; margin-left: 0; margin-left: 0.80ex; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; padding-left: 1ex">
Tiemen Schut wrote:<br>&gt; Now, the problem. At first I didn't even think this could happen, but<br>&gt; it does. I receive packets twice!<br><br>I am pretty sure Ethernet is not reliable -- i.e., your packets can be<br>
either dropped *or duplicated* while on the wire or being processed in<br>the NIC.&nbsp;&nbsp;This would have nothing to do with WinPcap or libpcap or the<br>network driver on either end; it'd be a property of the medium.<br><br>I know IP and UDP are not reliable; both of them can drop or duplicate
<br>packets.&nbsp;&nbsp;I believe 802.11 is *supposed* to be reliable, but since IP<br>and UDP don't care, and TCP explicitly corrects for dropped or doubled<br>packets, I doubt anyone relies on that.&nbsp;&nbsp;I'm not sure about 802.3 though.
<br><br>In any case, it seems that requiring a protocol to be reliable that<br>explicitly claims not to be (i.e., IP or UDP) is a pretty bad idea.<br>Perhaps it would be better to use TCP to send and receive your data,<br>
instead of winpcap and libpcap?&nbsp;&nbsp;Not sure on your requirements, though.<br><br><br>_______________________________________________<br>Winpcap-users mailing list<br><a href="mailto:Winpcap-users@winpcap.org">Winpcap-users@winpcap.org
</a><br><a href="https://www.winpcap.org/mailman/listinfo/winpcap-users">https://www.winpcap.org/mailman/listinfo/winpcap-users</a><br><br><br><br></blockquote></div><br>